The following code snippet triggers an ICE on mainline when compiled with "-O3 -g" (on x86_64-unknown-linux-gnu):
=========================================== struct A { double x[3]; double get() const { return x[0]; } }; A bar2(const A& a) { A a1; for (int i=0; i<3; ++i) a1.x[i]=-a.x[i]; return a1; } A bar1(const A& a) { A a1=bar2(a); return a1; } double foo(const A& a) { return bar1(a).get(); } =========================================== bug.cc: In function 'double foo(const A&)': bug.cc:24: internal compiler error: in decl_ultimate_origin, at dwarf2out.c:4744 Please submit a full bug report, [etc.] -- Summary: [4.2 regression] ICE in decl_ultimate_origin Product: gcc Version: 4.2.0 Status: UNCONFIRMED Keywords: ice-on-valid-code, monitored Severity: normal Priority: P3 Component: debug AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: reichelt at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26199