https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104837
Bug ID: 104837
Summary: tree check fail: in tree_operand_check, at tree.h:3948
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: dcb314 at hotmail dot com
Target Milestone: ---
Created attachment 52581
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52581&action=edit
C++ source code
The attached C++ code does this on recent gcc trunk:
bug797.cc: In substitution of ‘template<class ... T> int Nested::f1(X<T, T
...>.
..) [with T = <missing>]’:
bug797.cc:11:14: required from here
bug797.cc:11:14: internal compiler error: tree check: expected class
‘expression
’, have ‘type’ (integer_type) in tree_operand_check, at tree.h:3948
11 | int a1 = f1(X<int, int, double>(), X<double, int, double>());
| ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0x13a35ba tree_class_check_failed(tree_node const*, tree_code_class, char
const*
, int, char const*)
../../trunk.git/gcc/tree.cc:8737
0x94257d unify_pack_expansion(tree_node*, tree_node*, tree_node*, tree_node*,
un
ification_kind_t, bool, bool)
The code is a copy from clang test suite, file
./SemaTemplate/pack-deduction.cpp