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: [email protected]
ReportedBy: [email protected]
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,