1a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth// The purpose of this test is to verify that symbol aliases
2f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// (@foo:  alias <type> @bar) generate the correct entries in the symbol table.
3a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth// They should be identical except for the name.
4a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth
5f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | llvm-readobj -t | FileCheck %s
6f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | llvm-readobj -t | FileCheck %s
7a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth
8a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth	.def	 _foo;
9a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth	.scl	2;
10a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth	.type	32;
11a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth	.endef
12a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth	.text
13a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth	.globl	_foo
14a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth	.align	16, 0x90
15a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth_foo:                                   # @foo
16a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth# BB#0:                                 # %entry
17a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth	ret
18a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth
19a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth	.data
20a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth	.globl	_bar                    # @bar
21a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth	.align	4
22a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth_bar:
23a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth	.long	0                       # 0x0
24a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth
25a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth
260933134a304b47d3767aad202df9f0e09743da6dMichael J. Spencer# Order is important here. Assign _bar_alias_alias before _bar_alias.
27a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth	.globl	_foo_alias
28a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth_foo_alias = _foo
290933134a304b47d3767aad202df9f0e09743da6dMichael J. Spencer	.globl	_bar_alias_alias
300933134a304b47d3767aad202df9f0e09743da6dMichael J. Spencer_bar_alias_alias = _bar_alias
31a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth	.globl	_bar_alias
32a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth_bar_alias = _bar
33a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth
34f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK:      Name:                {{_?}}foo
35f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: Value:               [[FOO_VALUE:.*$]]
36f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: Section:             [[FOO_SECTION_NUMBER:.*$]]
37f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: BaseType:            [[FOO_SIMPLE_TYPE:.*$]]
38f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: ComplexType:         [[FOO_COMPLEX_TYPE:.*$]]
39f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: StorageClass:        [[FOO_STORAGE_CLASS:.*$]]
40f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: AuxSymbolCount:      [[FOO_NUMBER_OF_AUX_SYMBOLS:.*$]]
41a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth
42f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK:      Name:                {{_?}}bar
43f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: Value:               [[BAR_VALUE:.*$]]
44f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: Section:             [[BAR_SECTION_NUMBER:.*$]]
45f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: BaseType:            [[BAR_SIMPLE_TYPE:.*$]]
46f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: ComplexType:         [[BAR_COMPLEX_TYPE:.*$]]
47f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: StorageClass:        [[BAR_STORAGE_CLASS:.*$]]
48f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: AuxSymbolCount:      [[BAR_NUMBER_OF_AUX_SYMBOLS:.*$]]
49a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth
50f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK:      Name:                {{_?}}foo_alias
51f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: Value:               [[FOO_VALUE]]
52f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: Section:             [[FOO_SECTION_NUMBER]]
53f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: BaseType:            [[FOO_SIMPLE_TYPE]]
54f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: ComplexType:         [[FOO_COMPLEX_TYPE]]
55f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: StorageClass:        [[FOO_STORAGE_CLASS]]
56f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: AuxSymbolCount:      [[FOO_NUMBER_OF_AUX_SYMBOLS]]
57a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth
58f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK:      Name:                {{_?}}bar_alias_alias
59f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: Value:               [[BAR_VALUE]]
60f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: Section:             [[BAR_SECTION_NUMBER]]
61f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: BaseType:            [[BAR_SIMPLE_TYPE]]
62f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: ComplexType:         [[BAR_COMPLEX_TYPE]]
63f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: StorageClass:        [[BAR_STORAGE_CLASS]]
64f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: AuxSymbolCount:      [[BAR_NUMBER_OF_AUX_SYMBOLS]]
650933134a304b47d3767aad202df9f0e09743da6dMichael J. Spencer
66f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK:      Name:                {{_?}}bar_alias
67f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: Value:               [[BAR_VALUE]]
68f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: Section:             [[BAR_SECTION_NUMBER]]
69f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: BaseType:            [[BAR_SIMPLE_TYPE]]
70f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: ComplexType:         [[BAR_COMPLEX_TYPE]]
71f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: StorageClass:        [[BAR_STORAGE_CLASS]]
72f89da7210b09a0a0f7c9ee216cd54dca03c6b64aNico Rieck// CHECK-NEXT: AuxSymbolCount:      [[BAR_NUMBER_OF_AUX_SYMBOLS]]
73a4a2a03c311e7a7b64bfba1ae714ae85f74999fdChandler Carruth
74