https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98193

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:4164e58bfd5d57e7399f91c7c27ae6ccebc7dcb0

commit r11-5874-g4164e58bfd5d57e7399f91c7c27ae6ccebc7dcb0
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Wed Dec 9 09:34:51 2020 +0100

    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  <ja...@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.

Reply via email to