mangle.c (mangle_decl): Give name collision error even without ASM_OUTPUT_DEF.
authorJason Merrill <jason@redhat.com>
Fri, 5 Mar 2010 22:44:56 +0000 (17:44 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Fri, 5 Mar 2010 22:44:56 +0000 (17:44 -0500)
* mangle.c (mangle_decl): Give name collision error even without
ASM_OUTPUT_DEF.
* g++.dg/abi/mangle40.C: Require weak and alias.

From-SVN: r157245

gcc/cp/ChangeLog
gcc/cp/mangle.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/abi/mangle40.C

index 1e07230..214f36f 100644 (file)
@@ -1,3 +1,8 @@
+2010-03-05  Jason Merrill  <jason@redhat.com>
+
+       * mangle.c (mangle_decl): Give name collision error even without
+       ASM_OUTPUT_DEF.
+
 2010-03-04  Marco Poletti  <poletti.marco@gmail.com>
 
        * pt.c (process_partial_specialization): Use error_n instead of
index 3bcefbb..ea06bf7 100644 (file)
@@ -3057,19 +3057,21 @@ mangle_decl (const tree decl)
   id = targetm.mangle_decl_assembler_name (decl, id);
   SET_DECL_ASSEMBLER_NAME (decl, id);
 
-#ifdef ASM_OUTPUT_DEF
   if (G.need_abi_warning)
     {
+#ifdef ASM_OUTPUT_DEF
       /* If the mangling will change in the future, emit an alias with the
         future mangled name for forward-compatibility.  */
       int save_ver;
       tree id2, alias;
+#endif
 
       SET_IDENTIFIER_GLOBAL_VALUE (id, decl);
       if (IDENTIFIER_GLOBAL_VALUE (id) != decl)
        inform (DECL_SOURCE_LOCATION (decl), "-fabi-version=4 (or =0) "
                "avoids this error with a change in vector mangling");
 
+#ifdef ASM_OUTPUT_DEF
       save_ver = flag_abi_version;
       flag_abi_version = 0;
       id2 = mangle_decl_string (decl);
@@ -3086,8 +3088,8 @@ mangle_decl (const tree decl)
        cgraph_same_body_alias (alias, decl);
       else
        varpool_extra_name_alias (alias, decl);
-    }
 #endif
+    }
 }
 
 /* Generate the mangled representation of TYPE.  */
index a9ea6c3..dd95858 100644 (file)
@@ -1,3 +1,7 @@
+2010-03-05  Jason Merrill  <jason@redhat.com>
+
+       * g++.dg/abi/mangle40.C: Require weak and alias.
+
 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
 
        PR middle-end/42326
index d73d943..f49b4da 100644 (file)
@@ -1,5 +1,7 @@
 // PR c++/12909
 // { dg-do compile { target i?86-*-* x86_64-*-* } }
+// { dg-require-weak }
+// { dg-require-alias }
 // { dg-options "-mavx -Wabi -fabi-version=2" }
 // { dg-final { scan-assembler "weak\[^\n\]*_Z1fIDv4_fEvT_" } }
 // { dg-final { scan-assembler "weak\[^\n\]*_Z1fIU8__vectorfEvT_" } }