https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122833
Bug ID: 122833
Summary: ICE: in tsubst_expr, at cp/pt.cc
Product: gcc
Version: 15.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: 522024330006 at smail dot nju.edu.cn
Target Milestone: ---
I find this ICE on the -std=c++11 and higher.
Compiler Explorer: https://godbolt.org/z/j7djq6hYW
Program:
```c
template <typename T>
struct A {
friend void foo(int i = []() { return 0; }()) {
}
};
template <typename T>
void bar(A<T> a) {
}
int main() {
A<int> a;
bar<A<int>>(a);
return 0;
}
```
The traceback:
41093.fuzz:12:29: internal compiler error: in tsubst_expr, at cp/pt.cc:22448
12 | friend void foo(int i = []() { return 0; }()) {
| ^~~~~~~~~~~~~~~~~~
0x5da1dc8 internal_error(char const*, ...)
/workspace/install/gcc/src/gcc/gcc/diagnostic-global-context.cc:517
0x5d3f858 fancy_abort(char const*, int, char const*)
/workspace/install/gcc/src/gcc/gcc/diagnostic.cc:1749
0x15336f5 tsubst_expr(tree_node*, tree_node*, int, tree_node*)
/workspace/install/gcc/src/gcc/gcc/cp/pt.cc:22448
0x151e3e5 tsubst_non_call_postfix_expression
/workspace/install/gcc/src/gcc/gcc/cp/pt.cc:20140
0x1524279 tsubst_expr(tree_node*, tree_node*, int, tree_node*)
/workspace/install/gcc/src/gcc/gcc/cp/pt.cc:20875
0x1521620 tsubst_call_args
/workspace/install/gcc/src/gcc/gcc/cp/pt.cc:20511
0x1528617 tsubst_expr(tree_node*, tree_node*, int, tree_node*)
/workspace/install/gcc/src/gcc/gcc/cp/pt.cc:21366
0x14e157c tsubst_default_argument(tree_node*, int, tree_node*, tree_node*, int)
/workspace/install/gcc/src/gcc/gcc/cp/pt.cc:14555
0x14e1bd1 tsubst_default_arguments
/workspace/install/gcc/src/gcc/gcc/cp/pt.cc:14602
0x14ea387 tsubst_function_decl
/workspace/install/gcc/src/gcc/gcc/cp/pt.cc:15057
0x14f1dae tsubst_decl
/workspace/install/gcc/src/gcc/gcc/cp/pt.cc:15410
0x14f9ad5 tsubst(tree_node*, tree_node*, int, tree_node*)
/workspace/install/gcc/src/gcc/gcc/cp/pt.cc:16466
0x14c8268 tsubst_friend_function
/workspace/install/gcc/src/gcc/gcc/cp/pt.cc:11607
0x14d55e0 instantiate_class_template(tree_node*)
/workspace/install/gcc/src/gcc/gcc/cp/pt.cc:12965
0x168b607 complete_type(tree_node*)
/workspace/install/gcc/src/gcc/gcc/cp/typeck.cc:138
0x1313ef4 get_class_binding(tree_node*, tree_node*, bool)
/workspace/install/gcc/src/gcc/gcc/cp/name-lookup.cc:2051
0xe8fa10 build_user_type_conversion_1
/workspace/install/gcc/src/gcc/gcc/cp/call.cc:4553
0xe804e5 implicit_conversion
/workspace/install/gcc/src/gcc/gcc/cp/call.cc:2249
0xe83328 add_function_candidate
/workspace/install/gcc/src/gcc/gcc/cp/call.cc:2637
0xe8ac43 add_template_candidate_real
/workspace/install/gcc/src/gcc/gcc/cp/call.cc:3769
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
The gcc version I used is:
Using built-in specs.
COLLECT_GCC=/workspace/install/gcc/install_15.2.0/bin/gcc
COLLECT_LTO_WRAPPER=/workspace/install/gcc/install_15.2.0/libexec/gcc/x86_64-pc-linux-gnu/15.2.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /workspace/install/gcc/src/gcc/configure --enable-coverage
--enable-checking --disable-multilib --disable-shared --disable-bootstrap
--enable-languages=c,c++ --prefix=/workspace/install/gcc/install_15.2.0
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 15.2.0 (GCC)