Strip target_clones in copy attribute (PR lto/90500).
authorMartin Liska <mliska@suse.cz>
Wed, 22 May 2019 07:45:17 +0000 (09:45 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Wed, 22 May 2019 07:45:17 +0000 (07:45 +0000)
2019-05-22  Martin Liska  <mliska@suse.cz>

PR lto/90500
* c-attribs.c (handle_copy_attribute): Do not copy
target_clones attribute.
2019-05-22  Martin Liska  <mliska@suse.cz>

PR lto/90500
* gcc.target/i386/pr90500-1.c: Make the test-case valid
now.
2019-05-22  Martin Liska  <mliska@suse.cz>

PR lto/90500
* doc/extend.texi: Document the change.

From-SVN: r271504

gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c-attribs.c
gcc/doc/extend.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr90500-1.c

index ff5ffdd2f7625074b068d786015afb319cc06ab9..d31ac86bdff8332bf247b3b476c7b60106e33199 100644 (file)
@@ -1,3 +1,8 @@
+2019-05-22  Martin Liska  <mliska@suse.cz>
+
+       PR lto/90500
+       * doc/extend.texi: Document the change.
+
 2019-05-22  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/90450
index 71cb361b8d6cb09922c7f81a2998720740c9b96a..ae990feeaba2c7d4ea01263ad3f2a3de2b97f988 100644 (file)
@@ -1,3 +1,9 @@
+2019-05-22  Martin Liska  <mliska@suse.cz>
+
+       PR lto/90500
+       * c-attribs.c (handle_copy_attribute): Do not copy
+       target_clones attribute.
+
 2019-05-21  Eric Botcazou  <ebotcazou@adacore.com>
 
        * c-ada-spec.h (enum cpp_operation): Add IS_ASSIGNMENT_OPERATOR.
index 03203470955abccc1846485845a21fb9b0cda548..517b7e0dd01e6372c92ada140c33e0c31ea5fb12 100644 (file)
@@ -2486,7 +2486,8 @@ handle_copy_attribute (tree *node, tree name, tree args,
              || is_attribute_p ("noinline", atname)
              || is_attribute_p ("visibility", atname)
              || is_attribute_p ("weak", atname)
-             || is_attribute_p ("weakref", atname))
+             || is_attribute_p ("weakref", atname)
+             || is_attribute_p ("target_clones", atname))
            continue;
 
          /* Attribute leaf only applies to extern functions.
index e8563fd0803ee878d51a6ac967211f88b52e2b15..78197661424498dde5c17a4b05953f5a014627ff 100644 (file)
@@ -2749,7 +2749,8 @@ or variable) must match the kind of symbol to which the argument refers.
 The @code{copy} attribute copies only syntactic and semantic attributes
 but not attributes that affect a symbol's linkage or visibility such as
 @code{alias}, @code{visibility}, or @code{weak}.  The @code{deprecated}
-attribute is also not copied.  @xref{Common Type Attributes}.
+and @code{target_clones} attribute are also not copied.
+@xref{Common Type Attributes}.
 @xref{Common Variable Attributes}.
 
 For example, the @var{StrongAlias} macro below makes use of the @code{alias}
index 5fbb80c052ed04a515f4f4a257f694e1fb6bbd81..270b54f6ab71482fb4a18029857812e0e1ea6973 100644 (file)
@@ -1,3 +1,9 @@
+2019-05-22  Martin Liska  <mliska@suse.cz>
+
+       PR lto/90500
+       * gcc.target/i386/pr90500-1.c: Make the test-case valid
+       now.
+
 2019-05-22  Richard Biener  <rguenther@suse.de>
 
        * gcc.dg/tree-ssa/ssa-lim-13.c: New testcase.
index e90e5ed4674146ec4e49a737bfe403d7af3bbec4..4282a3e8691eace6944d821a21f50588458f50db 100644 (file)
@@ -3,6 +3,5 @@
 /* { dg-require-ifunc "" } */
 
 __attribute__((target_clones("arch=haswell", "default"))) int __tanh() {}
-__typeof(__tanh) tanhf64 __attribute__((alias("__tanh")))/* { dg-error "clones for .target_clones. attribute cannot be created" } */
-  /* { dg-message "'target_clones' cannot be combined with 'alias' attribute" "" { target *-*-* } .-1 } */
+__typeof(__tanh) tanhf64 __attribute__((alias("__tanh")))
 __attribute__((__copy__(__tanh)));