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

--- 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:364539710f828851b9fac51c39033cd09aa620de

commit r12-5441-g364539710f828851b9fac51c39033cd09aa620de
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Sun Nov 21 21:06:23 2021 +0100

    i386: Fix up handling of target attribute [PR101180]

    As shown in the testcase below, if a function has multiple target
attributes
    (rather than a single one with one or more arguments) or if a function
    gets one target attribute on one declaration and another one on another
    declaration, on x86 their effect is not combined into
    DECL_FUNCTION_SPECIFIC_TARGET, but instead only the last processed target
    attribute wins.  aarch64 handles this right, the following patch follows
    what it does, i.e. only start with target_option_default_node if
    DECL_FUNCTION_SPECIFIC_TARGET is previously NULL (i.e. the first target
    attribute being processed on a function) and otherwise start from the
    previous DECL_FUNCTION_SPECIFIC_TARGET.

    2021-11-21  Jakub Jelinek  <ja...@redhat.com>

            PR c++/101180
            * config/i386/i386-options.c (ix86_valid_target_attribute_p): If
            fndecl already has DECL_FUNCTION_SPECIFIC_TARGET, use that as base
            instead of target_option_default_node.

            * gcc.target/i386/pr101180.c: New test.

Reply via email to