https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114619

            Bug ID: 114619
           Summary: [14 regression] ICE with -fno-elide-constructors in
                    C++14 mode for non-constant initializer in array new
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mital at mitalashok dot co.uk
  Target Milestone: ---

<https://godbolt.org/z/bc551qd51>:

    struct X {
        /*constexpr*/ X(const X&) {}
    };

    extern X x;

    int main() {
        new X[1]{x};
    }

Compiled with `-std=c++14 -fno-elide-constructors` gives an internal compiler
error:

    test.cpp: In function ‘int main()’:
    test.cpp:8:14: internal compiler error: in cp_gimplify_expr, at
cp/cp-gimplify.cc:904
        8 |     new X[1]{x};
          |              ^
    0x781b7d cp_gimplify_expr(tree_node**, gimple**, gimple**)
            ./gcc/gcc/cp/cp-gimplify.cc:904
    0x104c159 gimplify_expr(tree_node**, gimple**, gimple**, bool
(*)(tree_node*), int)
            ./gcc/gcc/gimplify.cc:17788
    0x10577ef gimplify_addr_expr
            ./gcc/gcc/gimplify.cc:6910
    0x104dca0 gimplify_expr(tree_node**, gimple**, gimple**, bool
(*)(tree_node*), int)
            ./gcc/gcc/gimplify.cc:17929
    0x105c9b3 gimplify_expr
            ./gcc/gcc/gimplify.cc:18951
    0x105c9b3 gimplify_arg(tree_node**, gimple**, unsigned int, bool)
            ./gcc/gcc/gimplify.cc:3778
    0x105d599 gimplify_call_expr
            ./gcc/gcc/gimplify.cc:4063
    0x104d280 gimplify_expr(tree_node**, gimple**, gimple**, bool
(*)(tree_node*), int)
            ./gcc/gcc/gimplify.cc:17851
    0x10504ba gimplify_stmt(tree_node**, gimple**)
            ./gcc/gcc/gimplify.cc:7576
    0x104e3ab gimplify_statement_list
            ./gcc/gcc/gimplify.cc:2249
    0x104e3ab gimplify_expr(tree_node**, gimple**, gimple**, bool
(*)(tree_node*), int)
            ./gcc/gcc/gimplify.cc:18327
    0x105eaf7 gimplify_stmt(tree_node**, gimple**)
            ./gcc/gcc/gimplify.cc:7576
    0x105eaf7 gimplify_compound_expr
            ./gcc/gcc/gimplify.cc:6761
    0x105eba1 gimplify_compound_expr
            ./gcc/gcc/gimplify.cc:6759
    0x104d440 gimplify_expr(tree_node**, gimple**, gimple**, bool
(*)(tree_node*), int)
            ./gcc/gcc/gimplify.cc:17872
    0x104d157 gimplify_stmt(tree_node**, gimple**)
            ./gcc/gcc/gimplify.cc:7576
    0x104d157 gimplify_cleanup_point_expr
            ./gcc/gcc/gimplify.cc:7314
    0x104d157 gimplify_expr(tree_node**, gimple**, gimple**, bool
(*)(tree_node*), int)
            ./gcc/gcc/gimplify.cc:18275
    0x10504ba gimplify_stmt(tree_node**, gimple**)
            ./gcc/gcc/gimplify.cc:7576
    0x104e3ab gimplify_statement_list
            ./gcc/gcc/gimplify.cc:2249
    Please submit a full bug report, with preprocessed source.
    Please include the complete backtrace with any bug report.
    See <https://gcc.gnu.org/bugs/> for instructions.


git bisect shows this starts happening with
6ffbf87ca66f4ed9cd79cff675fabe2109e46e85
  • [Bug c++/114619] New: [14 regre... mital at mitalashok dot co.uk via Gcc-bugs

Reply via email to