[PowerPC] PR16512 - Support TLS call sequences in the asm parser
[oota-llvm.git] / test / MC / COFF / symbol-alias.s
index ede6b53c4511ab60e7e480f6b19b2b26b5c74b97..ccada3793ca3e6f261f29b7a4508098f1686f503 100644 (file)
@@ -1,62 +1,73 @@
-// The purpose of this test is to verify that symbol aliases\r
-// (@foo = alias <type> @bar) generate the correct entries in the symbol table.\r
-// They should be identical except for the name.\r
-\r
-// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | coff-dump.py | FileCheck %s\r
-// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | coff-dump.py | FileCheck %s\r
-\r
-       .def     _foo;\r
-       .scl    2;\r
-       .type   32;\r
-       .endef\r
-       .text\r
-       .globl  _foo\r
-       .align  16, 0x90\r
-_foo:                                   # @foo\r
-# BB#0:                                 # %entry\r
-       ret\r
-\r
-       .data\r
-       .globl  _bar                    # @bar\r
-       .align  4\r
-_bar:\r
-       .long   0                       # 0x0\r
-\r
-\r
-       .globl  _foo_alias\r
-_foo_alias = _foo\r
-       .globl  _bar_alias\r
-_bar_alias = _bar\r
-\r
-// CHECK:      Name               = {{_?}}foo\r
-// CHECK-NEXT: Value              = [[FOO_VALUE:.*$]]\r
-// CHECK-NEXT: SectionNumber      = [[FOO_SECTION_NUMBER:.*$]]\r
-// CHECK-NEXT: SimpleType         = [[FOO_SIMPLE_TYPE:.*$]]\r
-// CHECK-NEXT: ComplexType        = [[FOO_COMPLEX_TYPE:.*$]]\r
-// CHECK-NEXT: StorageClass       = [[FOO_STORAGE_CLASS:.*$]]\r
-// CHECK-NEXT: NumberOfAuxSymbols = [[FOO_NUMBER_OF_AUX_SYMBOLS:.*$]]\r
-\r
-// CHECK:      Name               = {{_?}}bar\r
-// CHECK-NEXT: Value              = [[BAR_VALUE:.*$]]\r
-// CHECK-NEXT: SectionNumber      = [[BAR_SECTION_NUMBER:.*$]]\r
-// CHECK-NEXT: SimpleType         = [[BAR_SIMPLE_TYPE:.*$]]\r
-// CHECK-NEXT: ComplexType        = [[BAR_COMPLEX_TYPE:.*$]]\r
-// CHECK-NEXT: StorageClass       = [[BAR_STORAGE_CLASS:.*$]]\r
-// CHECK-NEXT: NumberOfAuxSymbols = [[BAR_NUMBER_OF_AUX_SYMBOLS:.*$]]\r
-\r
-// CHECK:      Name               = {{_?}}foo_alias\r
-// CHECK-NEXT: Value              = [[FOO_VALUE]]\r
-// CHECK-NEXT: SectionNumber      = [[FOO_SECTION_NUMBER]]\r
-// CHECK-NEXT: SimpleType         = [[FOO_SIMPLE_TYPE]]\r
-// CHECK-NEXT: ComplexType        = [[FOO_COMPLEX_TYPE]]\r
-// CHECK-NEXT: StorageClass       = [[FOO_STORAGE_CLASS]]\r
-// CHECK-NEXT: NumberOfAuxSymbols = [[FOO_NUMBER_OF_AUX_SYMBOLS]]\r
-\r
-// CHECK:      Name               = {{_?}}bar_alias\r
-// CHECK-NEXT: Value              = [[BAR_VALUE]]\r
-// CHECK-NEXT: SectionNumber      = [[BAR_SECTION_NUMBER]]\r
-// CHECK-NEXT: SimpleType         = [[BAR_SIMPLE_TYPE]]\r
-// CHECK-NEXT: ComplexType        = [[BAR_COMPLEX_TYPE]]\r
-// CHECK-NEXT: StorageClass       = [[BAR_STORAGE_CLASS]]\r
-// CHECK-NEXT: NumberOfAuxSymbols = [[BAR_NUMBER_OF_AUX_SYMBOLS]]\r
-\r
+// 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: llvm-mc -filetype=obj -triple i686-pc-win32 %s | llvm-readobj -t | FileCheck %s
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | llvm-readobj -t | FileCheck %s
+
+       .def     _foo;
+       .scl    2;
+       .type   32;
+       .endef
+       .text
+       .globl  _foo
+       .align  16, 0x90
+_foo:                                   # @foo
+# BB#0:                                 # %entry
+       ret
+
+       .data
+       .globl  _bar                    # @bar
+       .align  4
+_bar:
+       .long   0                       # 0x0
+
+
+# Order is important here. Assign _bar_alias_alias before _bar_alias.
+       .globl  _foo_alias
+_foo_alias = _foo
+       .globl  _bar_alias_alias
+_bar_alias_alias = _bar_alias
+       .globl  _bar_alias
+_bar_alias = _bar
+
+// CHECK:      Name:                {{_?}}foo
+// CHECK-NEXT: Value:               [[FOO_VALUE:.*$]]
+// CHECK-NEXT: Section:             [[FOO_SECTION_NUMBER:.*$]]
+// CHECK-NEXT: BaseType:            [[FOO_SIMPLE_TYPE:.*$]]
+// CHECK-NEXT: ComplexType:         [[FOO_COMPLEX_TYPE:.*$]]
+// CHECK-NEXT: StorageClass:        [[FOO_STORAGE_CLASS:.*$]]
+// CHECK-NEXT: AuxSymbolCount:      [[FOO_NUMBER_OF_AUX_SYMBOLS:.*$]]
+
+// CHECK:      Name:                {{_?}}bar
+// CHECK-NEXT: Value:               [[BAR_VALUE:.*$]]
+// CHECK-NEXT: Section:             [[BAR_SECTION_NUMBER:.*$]]
+// CHECK-NEXT: BaseType:            [[BAR_SIMPLE_TYPE:.*$]]
+// CHECK-NEXT: ComplexType:         [[BAR_COMPLEX_TYPE:.*$]]
+// CHECK-NEXT: StorageClass:        [[BAR_STORAGE_CLASS:.*$]]
+// CHECK-NEXT: AuxSymbolCount:      [[BAR_NUMBER_OF_AUX_SYMBOLS:.*$]]
+
+// CHECK:      Name:                {{_?}}foo_alias
+// CHECK-NEXT: Value:               [[FOO_VALUE]]
+// CHECK-NEXT: Section:             [[FOO_SECTION_NUMBER]]
+// CHECK-NEXT: BaseType:            [[FOO_SIMPLE_TYPE]]
+// CHECK-NEXT: ComplexType:         [[FOO_COMPLEX_TYPE]]
+// CHECK-NEXT: StorageClass:        [[FOO_STORAGE_CLASS]]
+// CHECK-NEXT: AuxSymbolCount:      [[FOO_NUMBER_OF_AUX_SYMBOLS]]
+
+// CHECK:      Name:                {{_?}}bar_alias_alias
+// CHECK-NEXT: Value:               [[BAR_VALUE]]
+// CHECK-NEXT: Section:             [[BAR_SECTION_NUMBER]]
+// CHECK-NEXT: BaseType:            [[BAR_SIMPLE_TYPE]]
+// CHECK-NEXT: ComplexType:         [[BAR_COMPLEX_TYPE]]
+// CHECK-NEXT: StorageClass:        [[BAR_STORAGE_CLASS]]
+// CHECK-NEXT: AuxSymbolCount:      [[BAR_NUMBER_OF_AUX_SYMBOLS]]
+
+// CHECK:      Name:                {{_?}}bar_alias
+// CHECK-NEXT: Value:               [[BAR_VALUE]]
+// CHECK-NEXT: Section:             [[BAR_SECTION_NUMBER]]
+// CHECK-NEXT: BaseType:            [[BAR_SIMPLE_TYPE]]
+// CHECK-NEXT: ComplexType:         [[BAR_COMPLEX_TYPE]]
+// CHECK-NEXT: StorageClass:        [[BAR_STORAGE_CLASS]]
+// CHECK-NEXT: AuxSymbolCount:      [[BAR_NUMBER_OF_AUX_SYMBOLS]]
+