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

--- Comment #8 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:a7285c8659689e9ade53fcb996b26d874455a4f3

commit r11-5329-ga7285c8659689e9ade53fcb996b26d874455a4f3
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Wed Nov 25 10:37:58 2020 +0100

    middle-end: Reject flexible array members in __builtin_clear_padding
[PR97943]

    As mentioned in the PR, we currently ICE on flexible array members in
    structs and unions during __builtin_clear_padding processing.

    Jason said in the PR he'd prefer an error in these cases over forcefully
    handling it as [0] arrays (everything is padding then) or consider the
    arrays to have as many whole elements as would fit into the tail padding.

    So, this patch implements that.

    2020-11-25  Jakub Jelinek  <ja...@redhat.com>

            PR middle-end/97943
            * gimple-fold.c (clear_padding_union, clear_padding_type): Error on
and
            ignore flexible array member fields.  Ignore fields with
            error_mark_node type.

            * c-c++-common/builtin-clear-padding-2.c: New test.
            * c-c++-common/builtin-clear-padding-3.c: New test.
            * g++.dg/ext/builtin-clear-padding-1.C: New test.
            * gcc.dg/builtin-clear-padding-2.c: New test.

Reply via email to