| // 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 | coff-dump.py | FileCheck %s |
| // RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | coff-dump.py | 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: 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_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]] |
| |
| // 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]] |
| |