https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100101
Bug ID: 100101 Summary: [11 Regression] ICE with -Wzero-as-null-pointer-constant Product: gcc Version: 11.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: reichelt at gcc dot gnu.org Target Milestone: --- Compiling the following valid code snippet with "-Wzero-as-null-pointer-constant" triggers an assertion on trunk. This is a recent regression from within the last month. ============================================================================== template <typename T> struct A { template <typename U> static char foo(U*, int* = 0); static const bool value = sizeof(foo(static_cast<T*>(nullptr))) > 0; }; template <bool b> struct B { static const bool value = b; }; template <typename T> struct C { typedef B<A<T>::value> type; }; template <typename T> void bar() noexcept(A<T>::value && C<T>::type::value) {} void baz() { bar<void>(); } ============================================================================== ' Internal compiler error: Error reporting routines re-entered. 0x8cfbf8 convert_default_arg(tree_node*, tree_node*, tree_node*, int, int) ../../gcc/gcc/cp/call.c:8348 0x8dc177 build_over_call ../../gcc/gcc/cp/call.c:9230 0x8da248 build_new_method_call_1 ../../gcc/gcc/cp/call.c:10783 0x8db2af build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, tree_node**, int) ../../gcc/gcc/cp/call.c:10858 0xae76dd finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**, bool, bool, int) ../../gcc/gcc/cp/semantics.c:2751 0xa99115 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc/gcc/cp/pt.c:20484 0xa969ec tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc/gcc/cp/pt.c:19958 0xa957f3 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc/gcc/cp/pt.c:19876 0xaa0e48 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/gcc/cp/pt.c:19164 0xaaaa06 instantiate_decl(tree_node*, bool, bool) ../../gcc/gcc/cp/pt.c:26117 0x98fc9a maybe_instantiate_decl(tree_node*) ../../gcc/gcc/cp/decl2.c:5460 0x990ff8 maybe_instantiate_decl(tree_node*) ../../gcc/gcc/cp/decl2.c:5663 0x990ff8 mark_used(tree_node*, int) ../../gcc/gcc/cp/decl2.c:5689 0xa951f0 tsubst_qualified_id ../../gcc/gcc/cp/pt.c:16466 0xa96ee8 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc/gcc/cp/pt.c:19914 0xaa0e48 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/gcc/cp/pt.c:19164 0xab59ce tsubst_template_args(tree_node*, tree_node*, int, tree_node*) ../../gcc/gcc/cp/pt.c:13384 0xabed23 tsubst_aggr_type ../../gcc/gcc/cp/pt.c:13587 0xa9dd10 tsubst_decl ../../gcc/gcc/cp/pt.c:14847 0xacc3dd instantiate_class_template_1 ../../gcc/gcc/cp/pt.c:12031 Please submit a full bug report, [etc.]