[Bug libstdc++/93121] std::bit_cast missing

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Jul 20 08:25:05 GMT 2020


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

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

https://gcc.gnu.org/g:e4f1cbc35b1e823a0a6e58eeca61c8c6ca351875

commit r11-2225-ge4f1cbc35b1e823a0a6e58eeca61c8c6ca351875
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Mon Jul 20 10:24:19 2020 +0200

    gimple-fold: Handle bitfields in fold_const_aggregate_ref_1 [PR93121]

    When working on __builtin_bit_cast that needs to handle bitfields too,
    I've made the following change to handle at least some bitfields in
    fold_const_aggregate_ref_1 (those that have integral representative).
    It already handles some, but only those that start and end at byte
    boundaries.

    2020-07-20  Jakub Jelinek  <jakub@redhat.com>

            PR libstdc++/93121
            * gimple-fold.c (fold_const_aggregate_ref_1): For COMPONENT_REF
            of a bitfield not aligned on byte boundaries try to
            fold_ctor_reference DECL_BIT_FIELD_REPRESENTATIVE if any and
            adjust it depending on endianity.

            * gcc.dg/tree-ssa/pr93121-2.c: New test.


More information about the Gcc-bugs mailing list