summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMichael J. Spencer <bigcheesegs@gmail.com>2010-10-07 06:29:33 +0000
committerMichael J. Spencer <bigcheesegs@gmail.com>2010-10-07 06:29:33 +0000
commitb5814a3c152bbb7097a6d90168ce6eabde788c60 (patch)
treea197e32332342cefb2dc0c2a28fc160c9925fd1a /test
parent68a1a9bff71bbdb4b29067d51b57fe2de4daa80a (diff)
downloadllvm-b5814a3c152bbb7097a6d90168ce6eabde788c60.tar.gz
llvm-b5814a3c152bbb7097a6d90168ce6eabde788c60.tar.bz2
llvm-b5814a3c152bbb7097a6d90168ce6eabde788c60.tar.xz
MC-COFF: Fix symbol aliases. Fixes PR8251.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115909 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/MC/COFF/symbol-alias.ll48
1 files changed, 48 insertions, 0 deletions
diff --git a/test/MC/COFF/symbol-alias.ll b/test/MC/COFF/symbol-alias.ll
new file mode 100644
index 0000000000..3c00117f16
--- /dev/null
+++ b/test/MC/COFF/symbol-alias.ll
@@ -0,0 +1,48 @@
+; The purpose of this test is to verify that symbol aliases
+; (@foo = alias <type> @bar) generate the correct entries in the symbol table.
+; They should be identical except for the name.
+
+; RUN: llc -filetype=obj -mtriple i686-pc-win32 %s -o - | coff-dump.py | FileCheck %s
+; RUN: llc -filetype=obj -mtriple x86_64-pc-win32 %s -o - | coff-dump.py | FileCheck %s
+
+define void @foo() {
+entry:
+ ret void
+}
+
+@bar = global i32 zeroinitializer
+
+@foo_alias = alias void ()* @foo
+@bar_alias = alias i32* @bar
+
+; CHECK: Name = {{_?}}foo
+; CHECK-NEXT: Value = [[FOO_VALUE:.*$]]
+; CHECK-NEXT: SectionNumber = [[FOO_SECTION_NUMBER:.*$]]
+; CHECK-NEXT: SimpleType = [[FOO_SIMPLE_TYPE:.*$]]
+; CHECK-NEXT: ComplexType = [[FOO_COMPLEX_TYPE:.*$]]
+; CHECK-NEXT: StorageClass = [[FOO_STORAGE_CLASS:.*$]]
+; CHECK-NEXT: NumberOfAuxSymbols = [[FOO_NUMBER_OF_AUX_SYMBOLS:.*$]]
+
+; CHECK: Name = {{_?}}bar
+; CHECK-NEXT: Value = [[BAR_VALUE:.*$]]
+; CHECK-NEXT: SectionNumber = [[BAR_SECTION_NUMBER:.*$]]
+; CHECK-NEXT: SimpleType = [[BAR_SIMPLE_TYPE:.*$]]
+; CHECK-NEXT: ComplexType = [[BAR_COMPLEX_TYPE:.*$]]
+; CHECK-NEXT: StorageClass = [[BAR_STORAGE_CLASS:.*$]]
+; CHECK-NEXT: NumberOfAuxSymbols = [[BAR_NUMBER_OF_AUX_SYMBOLS:.*$]]
+
+; CHECK: Name = {{_?}}foo_alias
+; CHECK-NEXT: Value = [[FOO_VALUE]]
+; CHECK-NEXT: SectionNumber = [[FOO_SECTION_NUMBER]]
+; CHECK-NEXT: SimpleType = [[FOO_SIMPLE_TYPE]]
+; CHECK-NEXT: ComplexType = [[FOO_COMPLEX_TYPE]]
+; CHECK-NEXT: StorageClass = [[FOO_STORAGE_CLASS]]
+; CHECK-NEXT: NumberOfAuxSymbols = [[FOO_NUMBER_OF_AUX_SYMBOLS]]
+
+; CHECK: Name = {{_?}}bar_alias
+; CHECK-NEXT: Value = [[BAR_VALUE]]
+; CHECK-NEXT: SectionNumber = [[BAR_SECTION_NUMBER]]
+; CHECK-NEXT: SimpleType = [[BAR_SIMPLE_TYPE]]
+; CHECK-NEXT: ComplexType = [[BAR_COMPLEX_TYPE]]
+; CHECK-NEXT: StorageClass = [[BAR_STORAGE_CLASS]]
+; CHECK-NEXT: NumberOfAuxSymbols = [[BAR_NUMBER_OF_AUX_SYMBOLS]]