Experienced with 4.1.1, 4.1.2 and 4.2.1.  Below is the minimum test case that I
can narrow it down to while being reproducible across these versions.

$ g++ -O3 -Wall test.cpp -o test
test.cpp: In function ‘int main()’:
test.cpp:19: warning: ‘this.11’ is used uninitialized in this function
test.cpp:19: note: ‘this.11’ was declared here
ws004:/tmp$ 

---

struct base1
{
    int function() { return 1; }
};

struct base2 : public base1
{
    double val1;
    double val2;
};

struct myclass : public base2
{
public:
    int x;

    myclass()
    {
        x = this->function();
    }
};

static myclass init_instance()
{
    return myclass();
}

struct test_harness
{
    const myclass instance;

    test_harness() : instance(init_instance())
    {
    }

    int result()
    {
        return instance.x;
    }
};

int main(void)
{
    test_harness x;
    return x.result();
}


-- 
           Summary: Warning: `this.11' is used uninitialized in this
                    function
           Product: gcc
           Version: 4.2.1
            Status: UNCONFIRMED
          Severity: minor
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: matthewc at cse dot unsw dot edu dot au
 GCC build triplet: i686-pc-linux
  GCC host triplet: i686-pc-linux
GCC target triplet: i686-pc-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33665

Reply via email to