http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51714
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |ice-checking CC| |jason at gcc dot gnu.org Summary|[4.7 Regression] internal |[4.6/4.7 Regression] |compiler error: |internal compiler error: |Segmentation fault with |Segmentation fault with |-std=c++11 |-std=c++11 --- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-01-03 08:37:14 UTC --- Ah, it is a checking-only ICE. It ICEs during: 20115 #ifdef ENABLE_CHECKING 20116 /* Try to get a constant value for all non-type-dependent expressions in 20117 order to expose bugs in *_dependent_expression_p and constexpr. */ 20118 if (cxx_dialect >= cxx0x) 20119 maybe_constant_value (fold_non_dependent_expr_sfinae (expr, tf_none)); 20120 #endif which in turn calls tsubst_decl on the verbose variable, while not called from instantiate_decl of the containing function. So local_specializations is NULL, retrieve_local_specialization does nothing and finally register_local_specialization segfaults, because it expects local_specializations is non-NULL.