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