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

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

https://gcc.gnu.org/g:0aa277bf0b4b794314ab3f11bab438d17b57465d

commit r13-57-g0aa277bf0b4b794314ab3f11bab438d17b57465d
Author: Jason Merrill <ja...@redhat.com>
Date:   Fri Apr 15 16:27:05 2022 -0400

    c-family: attribute ((aligned, mode)) [PR100545]

    The problem here was that handle_mode_attribute clobbered the changes of
any
    previous attribute, only copying type qualifiers to the new type.  And
    common_handle_aligned_attribute had previously set up the typedef, so when
    we later called set_underlying_type it saw DECL_ORIGINAL_TYPE set and just
    returned, even though handle_mode_attribute had messed up the TREE_TYPE.
    So, let's fix handle_mode_attribute to copy attributes, alignment, and
    typedefness to the new type.

            PR c/100545

    gcc/c-family/ChangeLog:

            * c-attribs.cc (handle_mode_attribute): Copy attributes, aligned,
            and typedef.
            * c-common.cc (set_underlying_type): Add assert.

    gcc/testsuite/ChangeLog:

            * c-c++-common/attr-mode-1.c: New test.
            * c-c++-common/attr-mode-2.c: New test.

Reply via email to