diff options
author | Jason Merrill <jason@redhat.com> | 2020-02-04 14:21:59 -0500 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2020-02-04 14:49:19 -0500 |
commit | a1c9c9ff06ab15e697d5bac6ea6e5da2df840cf5 (patch) | |
tree | af34dc70a827bcd8d370e55e2834c5d90c5f8446 /gcc/omp-simd-clone.c | |
parent | c422cec54a5495f6f42b80f35a11c5508fe8eec3 (diff) | |
download | gcc-a1c9c9ff06ab15e697d5bac6ea6e5da2df840cf5.zip gcc-a1c9c9ff06ab15e697d5bac6ea6e5da2df840cf5.tar.gz gcc-a1c9c9ff06ab15e697d5bac6ea6e5da2df840cf5.tar.bz2 |
c++: Fix ({ ... }) array mem-initializer.
Here, we were going down the wrong path in perform_member_init because of
the incorrect parens around the mem-initializer for the array. And then
cxx_eval_vec_init_1 didn't know what to do with a CONSTRUCTOR as the
initializer. The latter issue was a straightforward fix, but I also wanted
to fix us silently accepting the parens, which led to factoring out handling
of TREE_LIST and flexarrays. The latter led to adjusting the expected
behavior on flexary29.C: we should complain about the initializer, but not
complain about a missing initializer.
As I commented on PR 92812, in this process I noticed that we weren't
handling C++20 parenthesized aggregate initialization as a mem-initializer.
So my TREE_LIST handling includes a commented out section that should
probably be part of a future fix for that issue; with it uncommented we
continue to crash on the testcase in C++20 mode, but should instead complain
about the braced-init-list not being a valid initializer for an A.
PR c++/86917
* init.c (perform_member_init): Simplify.
* constexpr.c (cx_check_missing_mem_inits): Allow uninitialized
flexarray.
(cxx_eval_vec_init_1): Handle CONSTRUCTOR.
Diffstat (limited to 'gcc/omp-simd-clone.c')
0 files changed, 0 insertions, 0 deletions