From 4a397c3e09d7909f4585b864da9660544d8349f3 Mon Sep 17 00:00:00 2001
From: Kai Tietz <ktietz@redhat.com>
Date: Tue, 20 Nov 2012 17:17:16 +0100
Subject: [PATCH] re PR target/55268 (gcc4.8 mingw-w64 wrong stdcall import
 symbols generated after rev 193204)

        PR target/55268
        * i386.c (ix86_mangle_decl_assembler_name): Use
        SUBTARGET_MANGLE_DECL_ASSEMBLER_NAME if defined.
        * cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Rename
        to SUBTARGET_MANGLE_DECL_ASSEMBLER_NAME.

From-SVN: r193666
---
 gcc/ChangeLog             | 8 ++++++++
 gcc/config/i386/cygming.h | 2 +-
 gcc/config/i386/i386.c    | 5 ++++-
 3 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7c07c325d102..050014417a38 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2012-11-20  Kai Tietz  <ktietz@redhat.com>
+
+	PR target/55268
+	* i386.c (ix86_mangle_decl_assembler_name): Use
+	SUBTARGET_MANGLE_DECL_ASSEMBLER_NAME if defined.
+	* cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Rename
+	to SUBTARGET_MANGLE_DECL_ASSEMBLER_NAME.
+
 2012-11-20  Uros Bizjak  <ubizjak@gmail.com>
 
 	* config/i386/i386.c (ix86_expand_call): Emit CLOBBERs in VOIDmode.
diff --git a/gcc/config/i386/cygming.h b/gcc/config/i386/cygming.h
index 8455a67b7a5e..55c800e15c1d 100644
--- a/gcc/config/i386/cygming.h
+++ b/gcc/config/i386/cygming.h
@@ -471,7 +471,7 @@ do {						\
 
 #define TARGET_VALID_DLLIMPORT_ATTRIBUTE_P i386_pe_valid_dllimport_attribute_p
 #define TARGET_CXX_ADJUST_CLASS_AT_DEFINITION i386_pe_adjust_class_at_definition
-#define TARGET_MANGLE_DECL_ASSEMBLER_NAME i386_pe_mangle_decl_assembler_name
+#define SUBTARGET_MANGLE_DECL_ASSEMBLER_NAME i386_pe_mangle_decl_assembler_name
 
 #undef TARGET_ASM_ASSEMBLE_VISIBILITY
 #define TARGET_ASM_ASSEMBLE_VISIBILITY i386_pe_assemble_visibility
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 84cc5c94e516..8ce32be07bfb 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -28980,7 +28980,10 @@ ix86_mangle_decl_assembler_name (tree decl, tree id)
   /* For function version, add the target suffix to the assembler name.  */
   if (TREE_CODE (decl) == FUNCTION_DECL
       && DECL_FUNCTION_VERSIONED (decl))
-    return ix86_mangle_function_version_assembler_name (decl, id);
+    id = ix86_mangle_function_version_assembler_name (decl, id);
+#ifdef SUBTARGET_MANGLE_DECL_ASSEMBLER_NAME
+  id = SUBTARGET_MANGLE_DECL_ASSEMBLER_NAME (decl, id);
+#endif
 
   return id;
 }
-- 
GitLab