http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55032
Bug #: 55032 Summary: [4.7 Regression] Internal compiler error: in strip_typedefs, at cp/tree.c:1199 Classification: Unclassified Product: gcc Version: 4.7.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: bruno-...@defraine.net Some variations of bug #53989 still seem to exist (or gcc 4.7.2 does not contain a complete fix for that bug). $ cat Test.cpp template<typename T> struct vec3t { T c[3]; }; typedef vec3t<float> vec3; class Bounds { public: Bounds(const vec3 bb[2]); void foo(const vec3 & v) { v.c[0]; } }; template<typename T> void work(T& value); void foo() { vec3 bb[2]; work(bb); } $ g++ -Wall -c Test.cpp Test.cpp: In member function 'void Bounds::foo(const vec3&)': Test.cpp:11:38: warning: statement has no effect [-Wunused-value] Test.cpp: In function 'void foo()': Test.cpp:19:10: internal compiler error: in strip_typedefs, at cp/tree.c:1199 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. $ g++ -v Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/opt/gcc-4.7.2/libexec/gcc/x86_64-unknown-linux-gnu/4.7.2/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../configure --prefix=/opt/gcc-4.7.2 --enable-languages=c,c++,fortran --disable-multilib Thread model: posix gcc version 4.7.2 (GCC)