[Bug c++/93689] ICE with default argument in lambda used as non type template argument

mpolacek at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Feb 11 21:33:00 GMT 2020


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

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2020-02-11
                 CC|                            |mpolacek at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Confirmed.

$ ./cc1plus -quiet  93689.C -std=c++2a 
93689.C: In instantiation of ‘int f() [with auto Z = <lambda closure
object>main()::<lambda(int)>{}]’:
93689.C:9:14:   required from here
93689.C:5:14: internal compiler error: unexpected expression ‘(int)(0)’ of kind
cast_expr
    5 |     return Z();
      |              ^
0x9a013c cxx_eval_constant_expression
        /home/mpolacek/src/gcc/gcc/cp/constexpr.c:6203
0x98cafa cxx_bind_parameters_in_call
        /home/mpolacek/src/gcc/gcc/cp/constexpr.c:1522
0x99018a cxx_eval_call_expression
        /home/mpolacek/src/gcc/gcc/cp/constexpr.c:2291
0x99ce51 cxx_eval_constant_expression
        /home/mpolacek/src/gcc/gcc/cp/constexpr.c:5395
0x9a14a5 cxx_eval_outermost_constant_expr
        /home/mpolacek/src/gcc/gcc/cp/constexpr.c:6404
0x9a2641 maybe_constant_value(tree_node*, tree_node*, bool, bool)
        /home/mpolacek/src/gcc/gcc/cp/constexpr.c:6692
0xa94da4 fold_for_warn(tree_node*)
        /home/mpolacek/src/gcc/gcc/cp/expr.c:401
0xcb3a85 maybe_warn_about_returning_address_of_local
        /home/mpolacek/src/gcc/gcc/cp/typeck.c:9472
0xcb6c2f check_return_expr(tree_node*, bool*)
        /home/mpolacek/src/gcc/gcc/cp/typeck.c:10081
0xc358a5 finish_return_stmt(tree_node*)
        /home/mpolacek/src/gcc/gcc/cp/semantics.c:955
0xbe0b11 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        /home/mpolacek/src/gcc/gcc/cp/pt.c:17691
0xbe3622 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        /home/mpolacek/src/gcc/gcc/cp/pt.c:17999
0xc07109 instantiate_decl(tree_node*, bool, bool)
        /home/mpolacek/src/gcc/gcc/cp/pt.c:25523
0xc07ac6 instantiate_pending_templates(int)
        /home/mpolacek/src/gcc/gcc/cp/pt.c:25639
0xa6c433 c_parse_final_cleanups()
        /home/mpolacek/src/gcc/gcc/cp/decl2.c:4875
0xd4adb6 c_common_parse_file()
        /home/mpolacek/src/gcc/gcc/c-family/c-opts.c:1208


More information about the Gcc-bugs mailing list