Danke für die Antworten.
Inzwischen habe ich die gcc-testsuite gefunden, aber das ist nur eine Annsammlung einzelner Tests, die ich für den Microcontroller (MSP430) anpassen müsste, denn stdin u. stdout gibt es da nicht.
Deshalb suche ich erstmal ganz grundlegende Tests, die testen ob a) die verwendeten Funktionen zumindest bekannt sind und b) nötige Fehlermeldungen z. B. bei { a == b; } auch wirklich ausgegeben werden.
Unabhängig von der Zielplattform u. der Ausführung kann man damit schonmal einen ersten Test vornehmen, der die Ausgaben über die Compiler-Ausgaben realisiert.
Wie ich hörte, bestehen nämlich nicht nur die Compiler von IAR sondern auch die von KEIL solche Tests nicht.
Deshalb habe ich mal angefangen mit diesem minimalen Test-Programm:
Code:
// Minimal compiler test for C compiler.
//
// The compiler MUST produce the warnings like these in the comments
// below if he should be used for programming more than hello world programs,
// because humans do produce often such semantik errors!
void
main (void)
{
int a, b, c, d, e, f, g, h;
if (a = b) // warning: suggest parentheses around assignment used as
c = d << e + f; // warning: suggest parentheses around + or - inside shift
g == h; // warning: statement with no effect
}
Ob der Code dann wirklich korrekt ausgeführt wird, müsste mit Ausgabe in ein Log-File in eine Speicherkarte o. ä. realisiert werden, aber so wie es aussieht, kommen nur gcc-Varianten wie MCPGCC in Frage.
Also momentan müssen einige Projekte mit dem Compiler beendet bzw. vorläufig weitergeführt werden, so dass da workarounds nötig sind.
Deshalb habe ich mal versucht den splint zu benutzen, aber die Include-Files konnte ich ihm nur mit Links vermitteln und bekomme dan nur Fehler wie
Parse Error:
Inconsistent function declaration: sfrb :
Hat da irgendjemand eine Lösung?
Ein anderer Semantik-Checker, der zumindest die obigen 3 Fehler in dem Programm finden würde, wäre auch erstmal ausreichend. Welche Semantik-Checker außer splint gibt es denn dafür?
Edit: Wie gesagt besteht der gcc diesen Test und der ICC430 vom IAR Embedded
Workbench 1.26A Vollversion (mit Dongle) versagt auch bei allen
aktivierten Warnungen/Fehlermeldungen völlig!
Lesezeichen