https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61541
Bug ID: 61541 Summary: Unexpected error: 'identifier' was not declared in this scope, or ICE in gimplify.c:7871 Product: gcc Version: 4.8.4 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: roman at binarylife dot net $ cat test1.cc struct foo { template <int size> struct bar { char* p = new char[size]; }; }; foo::bar<10> moo; $ g++ -std=c++11 -c test1.cc test1.cc:4:24: error: ‘size’ was not declared in this scope char* p = new char[size]; ^ $ cat test2.cc struct zoo { zoo(char*); }; struct foo { template <int size> struct bar { static constexpr int s = size; zoo p = zoo(new char[s]); }; }; foo::bar<10> moo; $ g++ -std=c++11 -c test2.cc |& head -4 test2.cc: In constructor ‘constexpr foo::bar<10>::bar()’: test2.cc:9:27: internal compiler error: in gimplify_expr, at gimplify.c:7871 zoo p = zoo(new char[s]); ^ $ g++ --version | head -1 g++ (GCC) 4.8.4 20140617 (prerelease) GCC 4.9 and later don't show these errors.