http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56768
Bug #: 56768 Summary: [4.7] ICE in make_decl_rtl, at varasm.c:1147 Classification: Unclassified Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: ppluzhni...@google.com Google ref b/8485258 Does *not* reproduce on trunk Does reproduce using gcc-4_7 (r197167) Test case: struct Iter { int& operator* (); void operator++ (); }; bool operator!= (Iter &, Iter &); struct Container { Iter begin () const; Iter end () const; }; struct J { virtual J *mutable_child (); }; struct M { M (const Container &); J ns_; }; namespace { J MakeNamespace (const Container &src) { J a; J *b = 0; for (const int &c: src) b = b ? b->mutable_child () : &a; return a; } } M::M (const Container &ns):ns_ (MakeNamespace (ns)) { } cc1plus pp.ii -std=c++11 -quiet && echo ok ok cc1plus pp.ii -std=c++11 -quiet -O2 pp.ii: In constructor ‘M::M(const Container&)’: pp.ii:36:1: internal compiler error: in make_decl_rtl, at varasm.c:1147 Please submit a full bug report,