]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/69917 (gcc.target/i386/chkp-hidden-def.c FAILs)
authorIlya Enkovich <enkovich.gnu@gmail.com>
Wed, 23 Mar 2016 10:55:37 +0000 (10:55 +0000)
committerIlya Enkovich <ienkovich@gcc.gnu.org>
Wed, 23 Mar 2016 10:55:37 +0000 (10:55 +0000)
gcc/

PR target/69917
* config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
transparent alias chain for decl assembler name.
* config/sol2.c (solaris_assemble_visibility): Likewise.

From-SVN: r234423

gcc/ChangeLog
gcc/config/i386/sol2.h
gcc/config/sol2.c

index f4251133922f0ccf1da527a42caf0bbf18be3040..21366dc2061cb061aedc1d356cd04d1d92bf0a90 100644 (file)
@@ -1,3 +1,10 @@
+2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
+
+       PR target/69917
+       * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
+       transparent alias chain for decl assembler name.
+       * config/sol2.c (solaris_assemble_visibility): Likewise.
+
 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        * config/arm/arm1020e.md (1020call_op): Reduce reservation
index e56e554a7403c73fc90509461e2dfebc38cb7255..368c2d2d211aaaeb876a48847c70722be01a06ce 100644 (file)
@@ -137,8 +137,9 @@ along with GCC; see the file COPYING3.  If not see
 /* The Solaris assembler wants a .local for non-exported aliases.  */
 #define ASM_OUTPUT_DEF_FROM_DECLS(FILE, DECL, TARGET)  \
   do {                                                 \
-    const char *declname =                             \
-      IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (DECL)); \
+    tree id = DECL_ASSEMBLER_NAME (DECL);              \
+    ultimate_transparent_alias_target (&id);           \
+    const char *declname = IDENTIFIER_POINTER (id);    \
     ASM_OUTPUT_DEF ((FILE), declname,                  \
                    IDENTIFIER_POINTER (TARGET));       \
     if (! TREE_PUBLIC (DECL))                          \
index 560a07b6060566720220c7f8a9293a574cc54365..47b41fd14085746d64a24349f7ea34ca9a179d66 100644 (file)
@@ -142,8 +142,11 @@ solaris_assemble_visibility (tree decl, int vis ATTRIBUTE_UNUSED)
   };
 
   const char *name, *type;
+  tree id = DECL_ASSEMBLER_NAME (decl);
 
-  name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
+  while (IDENTIFIER_TRANSPARENT_ALIAS (id))
+    id = TREE_CHAIN (id);
+  name = IDENTIFIER_POINTER (id);
   type = visibility_types[vis];
 
   fprintf (asm_out_file, "\t.%s\t", type);