74 lines · plain
1// The purpose of this test is to verify that symbol aliases2// (@foo: alias <type> @bar) generate the correct entries in the symbol table.3// They should be identical except for the name.4 5// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | llvm-readobj --symbols - | FileCheck %s6// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | llvm-readobj --symbols - | FileCheck %s7 8 .def _foo;9 .scl 2;10 .type 32;11 .endef12 .text13 .globl _foo14 .align 16, 0x9015_foo: # @foo16# %bb.0: # %entry17 ret18 19 .data20 .globl _bar # @bar21 .align 422_bar:23 .long 0 # 0x024 25 26# Order is important here. Assign _bar_alias_alias before _bar_alias.27 .globl _foo_alias28_foo_alias = _foo29 .globl _bar_alias_alias30_bar_alias_alias = _bar_alias31 .globl _bar_alias32_bar_alias = _bar33 34// CHECK: Name: {{_?}}foo35// CHECK-NEXT: Value: [[FOO_VALUE:.*$]]36// CHECK-NEXT: Section: [[FOO_SECTION_NUMBER:.*$]]37// CHECK-NEXT: BaseType: [[FOO_SIMPLE_TYPE:.*$]]38// CHECK-NEXT: ComplexType: [[FOO_COMPLEX_TYPE:.*$]]39// CHECK-NEXT: StorageClass: [[FOO_STORAGE_CLASS:.*$]]40// CHECK-NEXT: AuxSymbolCount: [[FOO_NUMBER_OF_AUX_SYMBOLS:.*$]]41 42// CHECK: Name: {{_?}}bar43// CHECK-NEXT: Value: [[BAR_VALUE:.*$]]44// CHECK-NEXT: Section: [[BAR_SECTION_NUMBER:.*$]]45// CHECK-NEXT: BaseType: [[BAR_SIMPLE_TYPE:.*$]]46// CHECK-NEXT: ComplexType: [[BAR_COMPLEX_TYPE:.*$]]47// CHECK-NEXT: StorageClass: [[BAR_STORAGE_CLASS:.*$]]48// CHECK-NEXT: AuxSymbolCount: [[BAR_NUMBER_OF_AUX_SYMBOLS:.*$]]49 50// CHECK: Name: {{_?}}foo_alias51// CHECK-NEXT: Value: [[FOO_VALUE]]52// CHECK-NEXT: Section: [[FOO_SECTION_NUMBER]]53// CHECK-NEXT: BaseType: [[FOO_SIMPLE_TYPE]]54// CHECK-NEXT: ComplexType: Null (0x0)55// CHECK-NEXT: StorageClass: [[FOO_STORAGE_CLASS]]56// CHECK-NEXT: AuxSymbolCount: [[FOO_NUMBER_OF_AUX_SYMBOLS]]57 58// CHECK: Name: {{_?}}bar_alias_alias59// CHECK-NEXT: Value: [[BAR_VALUE]]60// CHECK-NEXT: Section: [[BAR_SECTION_NUMBER]]61// CHECK-NEXT: BaseType: [[BAR_SIMPLE_TYPE]]62// CHECK-NEXT: ComplexType: [[BAR_COMPLEX_TYPE]]63// CHECK-NEXT: StorageClass: [[BAR_STORAGE_CLASS]]64// CHECK-NEXT: AuxSymbolCount: [[BAR_NUMBER_OF_AUX_SYMBOLS]]65 66// CHECK: Name: {{_?}}bar_alias67// CHECK-NEXT: Value: [[BAR_VALUE]]68// CHECK-NEXT: Section: [[BAR_SECTION_NUMBER]]69// CHECK-NEXT: BaseType: [[BAR_SIMPLE_TYPE]]70// CHECK-NEXT: ComplexType: [[BAR_COMPLEX_TYPE]]71// CHECK-NEXT: StorageClass: [[BAR_STORAGE_CLASS]]72// CHECK-NEXT: AuxSymbolCount: [[BAR_NUMBER_OF_AUX_SYMBOLS]]73 74