Ich arbeite an einem C ++ - Projekt, das unzählige Warnungen generiert. Die meisten Warnungen wurden angezeigt, nachdem der Code geschrieben wurde:
- Ursprünglich verwendete das Projekt Visual C ++ 8 und wechselte bald zu 9, aber die generierten Warnungen unterscheiden sich kaum. Die Warnungen wurden entweder behoben oder zum Schweigen gebracht, sodass es damals keine Warnungen gab.
- Dann wurde ein 64-Bit-Ziel hinzugefügt. Es wurden eine große Anzahl von Warnungen generiert, hauptsächlich aufgrund der schlampigen Verwendung von Typen (z . B.
unsigned
vs.size_t
). Niemand machte sich die Mühe oder hatte Zeit, sie zu reparieren, sobald der Code für diesen Zweck funktionierte. - Dann wurde die Unterstützung für andere Plattformen mit GCC (4.5 und 4.6, anfangs einige 4.4) hinzugefügt. GCC ist viel wählerischer, daher wurden viel mehr Warnungen generiert. Wieder machte sich niemand die Mühe oder hatte Zeit, sie zu reparieren. Dies wurde durch die Tatsache erschwert, dass GCC bis 4.5 kein Pragma hatte, um eine Warnung in einem bestimmten Code-Bit zum Schweigen zu bringen, und laut Dokumentation ist es immer noch nicht das, was man brauchen würde.
- In der Zwischenzeit tauchten einige veraltete Warnungen auf.
Jetzt haben wir ein Projekt, das Tausende von Warnungen generiert. Und ich kann nicht einmal sagen, an wie vielen Stellen, da selbst .cpp
Dateien mehrmals von verschiedenen Compilern kompiliert werden und Warnungen in Headern immer wieder gedruckt werden.
Gibt es eine bewährte Methode, um so etwas zu bereinigen? Oder zumindest einige positive Erfahrungen damit?