[Bug c++/98372] New: ICE tree check: accessed elt 2 of ‘tree_vec’ with 1 elts in tsubst, at cp/pt.c:15500 since r11-5942-g059da609fa8b3a08
marxin at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Dec 18 12:33:30 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98372
Bug ID: 98372
Summary: ICE tree check: accessed elt 2 of ‘tree_vec’ with 1
elts in tsubst, at cp/pt.c:15500 since
r11-5942-g059da609fa8b3a08
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: marxin at gcc dot gnu.org
CC: nathan at gcc dot gnu.org
Target Milestone: ---
Reduced from libcamera package:
$ cat ipa-key.ii
template <typename _Tp> using remove_pointer_t = typename _Tp ::type;
template <bool> struct enable_if;
template <bool _Cond, typename>
using enable_if_t = typename enable_if<_Cond>::type;
template <typename> bool is_convertible_v;
template <typename, unsigned long = 0> class Span;
template <typename T, unsigned long> class Span {
using element_type = T;
template <unsigned long N>
Span(element_type (&arr)[N],
enable_if_t<is_convertible_v<remove_pointer_t<decltype(data(arr))>>,
decltype(nullptr)>);
};
template <typename T> class Span<T> {
using element_type = T;
template <unsigned long N>
Span(element_type (&arr)[N],
enable_if_t<is_convertible_v<remove_pointer_t<decltype(data(arr))>>,
decltype(nullptr)>);
};
struct aaa
{
Span<char> data0;
};
$ g++ ipa-key.ii -c
ipa-key.ii: In instantiation of ‘class Span<char>’:
ipa-key.ii:24:14: required from here
ipa-key.ii:10:23: internal compiler error: tree check: accessed elt 2 of
‘tree_vec’ with 1 elts in tsubst, at cp/pt.c:15511
10 | Span(element_type (&arr)[N],
| ~~~~~~~~~~~~~~~^~~~~~~
0x83963e tree_vec_elt_check_failed(int, int, char const*, int, char const*)
/home/marxin/Programming/gcc/gcc/tree.c:10011
0x94f182 tree_vec_elt_check(tree_node*, int, char const*, int, char const*)
/home/marxin/Programming/gcc/gcc/tree.h:3559
0xad3dae tsubst(tree_node*, tree_node*, int, tree_node*)
/home/marxin/Programming/gcc/gcc/cp/pt.c:15511
0xab7c28 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
/home/marxin/Programming/gcc/gcc/cp/pt.c:20744
0xac10d8 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
/home/marxin/Programming/gcc/gcc/cp/pt.c:19004
0xad5a83 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
/home/marxin/Programming/gcc/gcc/cp/pt.c:12247
0xad5a83 tsubst_template_arg(tree_node*, tree_node*, int, tree_node*)
/home/marxin/Programming/gcc/gcc/cp/pt.c:12258
0xad5a83 tsubst_template_arg(tree_node*, tree_node*, int, tree_node*)
/home/marxin/Programming/gcc/gcc/cp/pt.c:12246
0xad5b98 tsubst_template_args(tree_node*, tree_node*, int, tree_node*)
/home/marxin/Programming/gcc/gcc/cp/pt.c:13316
0xad4c57 tsubst(tree_node*, tree_node*, int, tree_node*)
/home/marxin/Programming/gcc/gcc/cp/pt.c:15395
0xad2d14 tsubst(tree_node*, tree_node*, int, tree_node*)
/home/marxin/Programming/gcc/gcc/cp/pt.c:15434
0xad2d14 tsubst(tree_node*, tree_node*, int, tree_node*)
/home/marxin/Programming/gcc/gcc/cp/pt.c:15434
0xabe8ef tsubst_decl
/home/marxin/Programming/gcc/gcc/cp/pt.c:14461
0xab479f tsubst_copy
/home/marxin/Programming/gcc/gcc/cp/pt.c:16514
0xab5f50 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
/home/marxin/Programming/gcc/gcc/cp/pt.c:20609
0xab6703 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
/home/marxin/Programming/gcc/gcc/cp/pt.c:19526
0xab6a03 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
/home/marxin/Programming/gcc/gcc/cp/pt.c:20033
0xad31ea tsubst(tree_node*, tree_node*, int, tree_node*)
/home/marxin/Programming/gcc/gcc/cp/pt.c:16086
0xad3296 tsubst(tree_node*, tree_node*, int, tree_node*)
/home/marxin/Programming/gcc/gcc/cp/pt.c:15979
0xad5b98 tsubst_template_args(tree_node*, tree_node*, int, tree_node*)
/home/marxin/Programming/gcc/gcc/cp/pt.c:13316
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
More information about the Gcc-bugs
mailing list