aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/parse.c
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2020-06-15 15:31:32 -0400
committerMarek Polacek <polacek@redhat.com>2020-06-16 13:19:44 -0400
commit04afaf4575ff239279cfa34aff17101345451965 (patch)
treed091dc21ff9341deebe58246a414828e44ccb56d /gcc/fortran/parse.c
parent2661635323bd44410f1a154683eccecd2c163b46 (diff)
downloadgcc-04afaf4575ff239279cfa34aff17101345451965.zip
gcc-04afaf4575ff239279cfa34aff17101345451965.tar.gz
gcc-04afaf4575ff239279cfa34aff17101345451965.tar.bz2
c++: Don't allow designated initializers with non-aggregates [PR95369]
Another part of 95369 is that we accept designated initializers with non-aggregate types. That seems to be wrong since they're part of aggregate initialization. clang/icc also reject it. There are multiple contexts where we can use designated initializers: function-like casts, member list initializers, NTTP, etc. I've adjusted add_list_candidates and implicit_conversion_error in order to to detect this case. gcc/cp/ChangeLog: PR c++/95369 * call.c (add_list_candidates): Return if a designated initializer is used with a non-aggregate. (implicit_conversion_error): Give an error for the case above. gcc/testsuite/ChangeLog: PR c++/95369 * g++.dg/cpp2a/desig11.C: Adjust dg-error. * g++.dg/cpp2a/desig16.C: New test.
Diffstat (limited to 'gcc/fortran/parse.c')
0 files changed, 0 insertions, 0 deletions