diff options
author | Marek Polacek <polacek@redhat.com> | 2022-01-27 18:11:03 -0500 |
---|---|---|
committer | Marek Polacek <polacek@redhat.com> | 2022-01-31 15:35:59 -0500 |
commit | 874ad5d6745bf3bbe4aa138cef09c669b3fb9b07 (patch) | |
tree | d054a1aea8a313a793097818b6401b86faf9badf /libcpp | |
parent | b1a8b92f8f78536a00012e2e53a0d12ddbe6836d (diff) | |
download | gcc-874ad5d6745bf3bbe4aa138cef09c669b3fb9b07.zip gcc-874ad5d6745bf3bbe4aa138cef09c669b3fb9b07.tar.gz gcc-874ad5d6745bf3bbe4aa138cef09c669b3fb9b07.tar.bz2 |
c++: ICE with auto[] and VLA [PR102414]
Here we ICE in unify_array_domain when we're trying to deduce the type
of an array, as in
auto(*p)[i] = (int(*)[i])0;
but unify_array_domain doesn't arbitrarily complex bounds. Another
test is, e.g.,
auto (*b)[0/0] = &a;
where the type of the array is
<<< Unknown tree: template_type_parm >>>[0:(sizetype) ((ssizetype) (0 / 0) - 1)]
It seems to me that we need not handle these.
PR c++/102414
PR c++/101874
gcc/cp/ChangeLog:
* decl.cc (create_array_type_for_decl): Use template_placeholder_p.
Sorry on a variable-length array of auto.
gcc/testsuite/ChangeLog:
* g++.dg/cpp23/auto-array3.C: New test.
* g++.dg/cpp23/auto-array4.C: New test.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions