]> granicus.if.org Git - llvm/commitdiff
Allow '@' to appear in x86 mingw symbols
authorReid Kleckner <rnk@google.com>
Thu, 29 Aug 2019 21:15:02 +0000 (21:15 +0000)
committerReid Kleckner <rnk@google.com>
Thu, 29 Aug 2019 21:15:02 +0000 (21:15 +0000)
Summary:
There is no reason to differ in assembler behavior here between -msvc
and -gnu targets. Without this setting, the text after the '@' is
interpreted as a symbol variable, like foo@IMGREL.

Reviewers: mstorsjo

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D66974

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@370408 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
test/MC/X86/stdcall.s [new file with mode: 0644]

index e1125c176b253488d162ec0475cef48e078be90d..d986c829d98ebff9c738ed541220fc5d270e54e8 100644 (file)
@@ -163,5 +163,7 @@ X86MCAsmInfoGNUCOFF::X86MCAsmInfoGNUCOFF(const Triple &Triple) {
 
   TextAlignFillValue = 0x90;
 
+  AllowAtInName = true;
+
   UseIntegratedAssembler = true;
 }
diff --git a/test/MC/X86/stdcall.s b/test/MC/X86/stdcall.s
new file mode 100644 (file)
index 0000000..7302dc3
--- /dev/null
@@ -0,0 +1,19 @@
+# RUN: llvm-mc %s -filetype=obj -o - -triple i686-windows-msvc | llvm-nm - | FileCheck %s
+# RUN: llvm-mc %s -filetype=obj -o - -triple i686-windows-gnu | llvm-nm - | FileCheck %s
+
+# CHECK: T _mystdcall@8{{$}}
+# CHECK: T foo
+
+.text
+.global _mystdcall@8
+_mystdcall@8:
+       movl 4(%esp), %eax
+       addl 8(%esp), %eax
+       retl $8
+
+.global foo
+foo:
+       pushl $1
+       pushl $2
+       calll _mystdcall@8
+       retl