Compiler: GCC 4.9 erhält neue Sanitizer

Die GNU Compiler Collection (GCC) erhält den Undefined Behavior Sanitizer (UBSan) aus LLVM. Dort wird er bei Clang eingesetzt. Der Address Sanitizer, den es bereits für x86- beziehungsweise x86_64-Systeme gibt, wurde zusätzlich auf die ARM-Plattform portiert. Die Neuerungen sollen in GCC 4.9 enthalten sein, das im ersten Halbjahr 2014 erscheinen wird.
Mit dem Undefined Behavior(öffnet im neuen Fenster) Sanitizer lässt sich C- und C++-Code in Echtzeit auf vielfältige Fehler überprüfen, etwa Ganzzahlenüberläufe. Teils sind solche Fehler schwierig aufzuspüren, da eine Anwendung ohne Fehlermeldung abstürzt oder gar weiterläuft. Im Vergleich zu der Debugger-Sammlung Valgrind soll UBSan deutlich schneller laufen. UBSan lässt sich während des Kompilierens über den Schalter -fsanitize=undefined aktivieren.
Address Sanitizer für ARM
Der auf die ARM-Plattform portierte Address Sanitizer spürt unter anderem Fehler bei Speicherzugriffen im C- oder C++-Code auf. Er wurde von Google entwickelt(öffnet im neuen Fenster) und in GCC 4.8 ebenfalls aus LLVM übernommen.
Zu den weiteren Neuerungen, die bereits für GCC 4.9 abgesegnet sind, gehören unter anderem die standardmäßige Verwendung von ADA 2012 statt wie bisher ADA 2005. Fortran 2003 kann künftig mit Finalization verwendet werden, das bereits von anderen Fortran-Compilern unterstützt wird(öffnet im neuen Fenster) , etwa denen von Intel oder IBM. Die Sprachen Fortran 2008 und C++14 erhalten ebenfalls Verbesserungen. Zu den künftig unterstützten Prozessoren gehören unter anderem Intels Core-AVX2 und Silvermont-CPUs.
Eine Liste der vorläufigen Änderungen gibt es im GCC-Wiki(öffnet im neuen Fenster) . Ein Termin für die Veröffentlichung von GCC 4.9 im kommenden Jahr steht noch nicht fest.



