Visual C++ 2008: Problem mit den Warnungen!



  • Hallo

    Ich kompiliere meine Projekte jeweils auf höchster Warnstufe ( /W4 und mit /WX ; alle Warnungen werden als fatale Fehler interpretiert und der Build Prozess abgebrochen). Nun habe ich in meinem Projekt einige neue Klassen hinzugefügt und ich bekomme eine Warnung C4702: unreachable code in einer sehr alten, bisher immer (also seit 2006 immer) fehlerfrei kompilierenden Template-Klasse, aber erst bei der Link Time Code Generation. Wenn ich das Flag /WX rausnehme, kompiliert alles und das Projekt läuft fehlerfrei. Es funktioniert auch, wenn ich vom Release auf Debug Modus zurückschalte (dann kann ich sogar mit /WX kompilieren), weshalb ich vermute, dass das Problem bei gewissen Optimierungen liegt. Ich habe aber keine Ahnung, wonach ich suchen soll 😡

    Die Stelle, an welcher der Fehler auftritt, ist reichlich uninteressant; es handelt sich um die einzeilige Initialisierung im Copy-Konstruktor eines Smart Pointers 🙄

    I just don't know what to do...



  • Dann würde ich erstmal die Optimierungen im Release-MOde ausschalten und dann variieren. Oder einfach mit der Warnung leben. Aber ok, das ist Geschmackssache :D.
    rya.



  • Und, ist der Code unerreichbar? Oder phantasiert der Compiler? 😃



  • Hallo

    Ich habe immer noch keinen Erfolg; habe den ganzen Tag nach dem Problem gesucht (okay... nicht den ganzen Tag, aber doch von Zeit zu Zeit). Bin für jegliche Ideen (egal wie weit hergeholt) dankbar...

    Scorcher24 schrieb:

    Dann würde ich erstmal die Optimierungen im Release-MOde ausschalten und dann variieren. Oder einfach mit der Warnung leben. Aber ok, das ist Geschmackssache :D.
    rya.

    Das ist für mich keine Option, ich will, dass alles ohne Warnungen kompiliert... momentan muss ich darauf aber wohl wirklich verzichten 😞

    Artchi schrieb:

    Und, ist der Code unerreichbar? Oder phantasiert der Compiler? 😃

    Der Code ist erreichbar und wird auch ausgeführt, sonst würde nichts mehr funktionieren. Der Copy-Konstruktor wird ein paar tausend mal aufgerufen.

    Ich fürchte, mein Projekt ist einfach ein wenig zu viel für den guten Compiler und ich muss mich bis Visual C++ 2010 mit weniger begnügen. Ich kompiliere für x86-64 und CLR (das ist optional, jedoch gehen einige sehr interessante Features verloren, wenn ich es ausschalte), benutze ein modifiziertes boost 1.40.0 und .NET Framework 3.5 mit WPF (optional) und OpenGL (ebenfalls optional), habe einzelne Funktionen vollständig in Assembler mit nasm geschrieben (habe nasm in Visual Studio "eingebaut"). Das alles muss aus Performancegründen selbstverständlich auf höchsten Optimierungsstufen gemacht werden, da ich nicht 10263 Jahre warten mag, bis mein Program fertig gerechnet hat. Eigentlich bin ich erstaunt, dass ich bis jetzt so wenig Probleme hatte 🤡 👍

    MfG


Anmelden zum Antworten