diff options
author | Jakub Jelinek <jakub@redhat.com> | 2020-12-09 09:34:51 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2020-12-09 09:34:51 +0100 |
commit | 4164e58bfd5d57e7399f91c7c27ae6ccebc7dcb0 (patch) | |
tree | e9f70fb13606ba8e2fead253f67b67e68dbd85d0 /gcc/c/c-parser.c | |
parent | c3a63fb3854392af65a191154e3586e7f5a1066e (diff) | |
download | gcc-4164e58bfd5d57e7399f91c7c27ae6ccebc7dcb0.zip gcc-4164e58bfd5d57e7399f91c7c27ae6ccebc7dcb0.tar.gz gcc-4164e58bfd5d57e7399f91c7c27ae6ccebc7dcb0.tar.bz2 |
fold-const: Fix up native_encode_initializer missing field handling [PR98193]
When native_encode_initializer is called with non-NULL mask (i.e. ATM
bit_cast only), it checks if the current index in the CONSTRUCTOR (if any)
is the next initializable FIELD_DECL, and if not, decrements cnt and
performs the iteration with that FIELD_DECL as field and val of zero
(so that it computes mask properly). As the testcase shows, I forgot to
set pos to the byte position of the field though (like it is done
for e.g. index referenced FIELD_DECLs in the constructor.
2020-12-09 Jakub Jelinek <jakub@redhat.com>
PR c++/98193
* fold-const.c (native_encode_initializer): Set pos to field's
byte position if iterating over a field with missing initializer.
* g++.dg/cpp2a/bit-cast7.C: New test.
Diffstat (limited to 'gcc/c/c-parser.c')
0 files changed, 0 insertions, 0 deletions