2016-06-08 14 views
0

Ich verlasse mich auf Clang's #pragma message, um TODO Hinweise zu erinnern. Zum BeispielDeklaration von Clang's -fno-caret-diagnostics nur für eine bestimmte Art von #pragma

int 
main(void) 
{ 
#pragma message "TODO: do something" 
} 

, die gibt diese Ausgabe für clang -o todo todo.c:

todo.c:4:9: warning: TODO: do something [-W#pragma-messages] 
#pragma message "TODO: do something" 
     ^
1 warning generated. 

Dies ist jedoch überflüssig. Ich weiß, dass ich das Flag -fno-caret-diagnostics mit Clang verwenden kann, um die Zeile #pragma in der Compiler-Ausgabe zu vermeiden, aber dies deaktiviert auch die Caret-Diagnose für andere Warnungen und Fehler, die ich vermeiden möchte.

Gibt es eine Möglichkeit, -fno-caret-diagnostics nur für diese Art von #pragma zu deklarieren?

+1

Gibt es einen Grund, warum Sie '// TODO' nicht schreiben können und dann eine Textsuche durch das Projekt durchführen? Zu einfach? – Lundin

+1

Erweitern auf @ Lundins Kommentar: Grundsätzlich ein XY-Problem. Einige Editoren wie kwrite heben solche Kommentare hervor ('// TODO',' // NOTE', etc.). Auch Doxygen (welches ohnehin in einem größeren Projekt verwendet werden sollte) sammelt "todo" markierte Absätze und präsentiert sie in einem separaten Kapitel. – Olaf

+0

Sie haben Recht. '// TODO' ist aus Kompatibilitätsgründen ein besserer Weg, um das zu tun, was ich vorhabe, und auch jetzt, wo ich darüber nachdenke, scheint es bei einer inkrementellen Kompilierung nicht ratsam, nur auf' #pragma message' zu ​​setzen. – Pablo

Antwort

0

Wenn ich richtig verstehe, ist die Antwort Teil von this question. Tut -Wno#pragma-messages tun, was Sie wollen?

+0

Nein, '-Wno- # pragma-messages' verbirgt alle Ausgaben dieser '# Pragma's, während das Ziel darin besteht, diese Nachrichten zu drucken, ohne auch ihre Quelle im Code anzuzeigen. Die obigen Kommentare von @Lundin und @ Olaf haben mir jedoch gezeigt, dass das, wonach ich gefragt habe, nicht der beste Weg ist, den Überblick über TODOs zu behalten. – Pablo