Ich habe ein Legacy-Projekt mit vielen Typ-Konvertierungen und Castings. Normalerweise den Überlauf dynamische Verhalten zu überprüfen, gcc (und C lang) eine eingebaute Funktion für die:Catching Typ Konvertierung Überläufe mit GCC
eingebaute Funktion: bool __builtin_add_overflow (Typ1 a, Typ2 b, type3 * res)
Wenn das Ergebnis überläuft, gibt die Funktion true zurück. Dann kann mein Programm diesen Zustand erfassen und entsprechend handeln.
Aus Gründen der gleichen Funktionalität, ohne Änderung von Legacy-Code, ist es möglich, GCC anweisen solche Builtins zu verwenden und eine bereitgestellte Funktion als Catcher aufzurufen, wenn die eingebauten True zurückgeben? Ich wünschte, ich so etwas wie finden:
Leere _cyg_add_overflow_catcher (A, B, __FILE, LINE);
GCC bereits können instrument functions, für die Rückverfolgbarkeit und Profilierung, so das Konzept ist nicht komisch. Irgendwelche Ideen?
Gibt es eine Chance, dass Sie einfach [UBSan] (http://developers.redhat.com/blog/2014/10/16/gcc-undefined-behavior-sanitizer-ubsan) verwenden könnten? – yugr