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.]

Reply via email to