http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56438
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu.org --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-02-25 08:17:04 UTC --- It is the maybe_constant_value now called from C++98 mode of null_ptr_cst_p. The ICE is on: 19551 /* If there are no operands, it must be an expression such 19552 as "int()". This should not happen for aggregate types 19553 because it would form non-constant expressions. */ 19554 gcc_assert (cxx_dialect >= cxx0x 19555 || INTEGRAL_OR_ENUMERATION_TYPE_P (type)); As we now call maybe_constant_value even on what isn't known to be a constant expression, can we drop this assertion, or set some flag in maybe_constant_value to allow this and reset it back afterwards?