Unzutreffende Warning C6011 bei Code Analysis?



  • Ich hab mal Code Analysis über mein aktuelles Projekt laufen lassen und bekomme an einer Stelle dabei ein warning:

    #include <iostream>
    
    using namespace std;
    
    class Foo {
    public:
       int i;
    };
    
    Foo* GetFoo()
    {
       return 0;
    }
    
    int main()
    {
       Foo* foo = GetFoo();
       if(foo && foo->i) //warning C6011: Dereferencing NULL pointer 'foo': Lines: 17, 18
          cout<<foo->i;
    
       system("pause");
    }
    

    Ist das ein Fehler von Microsofts Code Analyse? Soll ich das denen als bug-report schicken?



  • Hey kleiner Troll, hilfreich wäre,
    auf welchem System du programmierst? IDE, OS, SP?,...

    Habe eben das selbe Problem und bin durch Google direkt auf deinen Post gestoßen ^^

    Ich habe unter Eclipse Indigo das CDT Plugin installiert um in C++ entwickeln zu können.
    Jedoch verwende ich den Visual Studio C-Compiler (aus VS2005).

    Zwar kann ich meine ganzen Projekte (geschrieben in C++, wt-framework) fehlerfrei kompilieren, linken und ausführen,
    aber wenn ich den Eclipse C/C++ Code Analyzer drüberlaufen lasse, bekomme ich einen Fehler in meinem Code angezeigt? o.O
    Zum einen ist das ziemlich nervig, da ich nun nicht weiß, was ein "richtiger" Fehler ist,
    und wo einfach die Anzeige quasi spinnt,
    jedoch schlimmer ist, dass ich den Code nicht einchecken kann, das unser SVN Plugin es nicht erlaubt, fehlerhaft angezeigten Code zu commiten xD

    ... ich glaube zwar, dass das hier überhaupt nicht reingehört,
    aber falls doch jemand eine Antwort hat wär das wundervoll ^^



  • kleiner Troll schrieb:

    Ist das ein Fehler von Microsofts Code Analyse? Soll ich das denen als bug-report schicken?

    1. Ja, offensichtlich.
    2. Wenn's dich glücklich macht ... 😉
    3. system("pause") wird nicht angemeckert? 😮 *scrn*



  • ^^
    IDE: Visual Studio 2010
    OS: Windows 7
    SP: Windows: SP1
    Visual Studio Keins

    Ich update mal visual studio auf SP1 (warum hab ich das noch nicht?) und schau mal, ob das "problem" noch besteht

    ^
    Ok, system("pause") ist natürlich schlecht, ist aber nur ein test projekt um gewisse code probleme anzuschaun, darf ich doch :>



  • Bashar schrieb:

    3. system("pause") wird nicht angemeckert? 😮 *scrn*

    Nein, system("pause") wird nicht angemeckert. Du hast offensichtlich nicht verstanden was Static-Code-Analysis ist.



  • hustbaer schrieb:

    Nein, system("pause") wird nicht angemeckert. Du hast offensichtlich nicht verstanden was Static-Code-Analysis ist.

    Und du bist irgendwie humorbefreit.


Anmelden zum Antworten