// PR tree-optimization/22488 // This testcase is really a C++ FE bug in represnting virtual inheritance // It gives the appearance to the middle end that the fields exist twice // which resulted in a very confused structure analyzer // { dg-do compile } // { dg-options "-O" } struct X { int i0, i1; char c; }; struct A { int i; char c0, c1; virtual ~A(); }; struct B : virtual A {}; struct C : B { X x; void bar(X y) { x = y; } }; void foo() { C().bar(X()); }