Ich habe eine sehr einfache .c-Datei, mit einigen offensichtlichen Fehlern darin.scan-build make erkennt keine Bugs
Ich versuche, das statische Code-Analyse-Tool (scan-build) von clang zu verwenden, um Fehler zu erkennen. Wenn ich führen Sie das Tool direkt auf die Dateien, wie zum Beispiel mit dem folgenden Befehl:
Scan-build g ++ -o 1 1.c
ich tun, um die beabsichtigte Ausgabe erhalten, einschließlich einer Warnung vom Compiler, der die Division durch 0.
Scan-build erwähnt: Verwenden von '/usr/lib/llvm-3.8/bin/clang' für die statische Analyse
1.c: In Funktion ‚int test2 (int) ': 1.c: 16: 11: Warnung: Division durch Null [-Wert-durch-Null] zurück 5/(x-x); ^
1.c: 16: 11: Warnung: Division durch Null zurück 5/(x-x);
~^~~~~~ 1 Warnung generiert. Scan-Build: 1 Fehler gefunden. scan-build: Führen Sie 'scan-view/tmp/scan-build-2016-07-11-152043-3028-1' aus, um Fehlerberichte zu untersuchen.
Jetzt versuche ich, diesen Befehl in ein sehr einfaches Makefile zu setzen. Die Inhalte meiner Makefile sind:
all: 1.c
g++ -o 1 1.c
clean:
rm -f *.o 1
Jedes Mal, wenn ich mit Make-Scan-build ausführen, mit dem folgenden Befehl:
Scan-build
machen noch ich die bekommen Warnung vom Compiler, aber nicht vom Scan-Build Tool !!!
Scan-build: Verwenden '/usr/lib/llvm-3.8/bin/clang' für die statische Analyse
g ++ -o 1 1.c
1.c: In Funktion ' int test2 (int) ':
1.c: 16: 11: Warnung: Division durch Null [-Wwd-durch-Null] zurück 5/(xx);
^scan-build: Verzeichnis '/ tmp/scan-build-2016-07-11-152326-3055-1' entfernen, da es keine Berichte enthält. Scan-Build: Keine Fehler gefunden.
Ich habe das gleiche Verhalten in C- und C++ - Dateien beobachtet. Ich sehe, dass jemand in der Vergangenheit (2012) auf similar error gestoßen war, aber die vorgeschlagene Antwort scheint nicht zu funktionieren und scheint sich nur auf C++ Dateien zu beziehen. Irgendwelche Hinweise?
Und in der Tat, dass das Problem war, die mich von Stunden für die letzten paar gehalten nervt ... Dank viel! – user307976