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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
      Known to work|                            |4.3.5
           Keywords|                            |wrong-code
   Last reconfirmed|                            |2011-10-04
     Ever Confirmed|0                           |1
            Summary|Virtual inheritance         |[4.4/4.5/4.6/4.7
                   |segfault                    |Regression] Virtual
                   |                            |inheritance segfault
   Target Milestone|---                         |4.4.7
      Known to fail|                            |4.4.1, 4.5.1, 4.6.1, 4.7.0

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> 2011-10-04 
20:45:50 UTC ---
Here is a simplier testcase:
struct Base
{
    const int text;
    Base():text(1) {}
    Base(int aText)
    : text(aText) {}
};
struct SubA : public virtual Base
{
protected:
  int x;
public:
  SubA(int aX)
  : x(aX) {}
};
class SubB : public virtual Base
{};
struct Diamond : public SubA, public SubB
{
    Diamond(int text)
    : Base(text), SubA(5), SubB() {}

    void printText()
    {
        if(text != 2)
          __builtin_abort();
        if(x!=5)
          __builtin_abort();
    }
};

int main(int, char**)
{
    Diamond x(2);
    x.printText();
}

Reply via email to