• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s -o - \
2// RUN:   | llvm-readobj -t -r | FileCheck %s
3
4local1:
5external_aliased_to_local = local1
6
7        .globl  global_aliased_to_external
8global_aliased_to_external = external1
9
10        .globl  global_aliased_to_local
11local2:
12global_aliased_to_local = local2
13
14        .weak   weak_aliased_to_external
15weak_aliased_to_external = external2
16
17// Generate relocs against the above aliases.
18        .long external_aliased_to_local
19        .long global_aliased_to_external
20        .long global_aliased_to_local
21        .long weak_aliased_to_external
22
23// CHECK:      Relocations [
24// CHECK:        0x0 IMAGE_REL_I386_DIR32 external_aliased_to_local
25// CHECK:        0x4 IMAGE_REL_I386_DIR32 external1
26// CHECK:        0x8 IMAGE_REL_I386_DIR32 global_aliased_to_local
27// CHECK:        0xC IMAGE_REL_I386_DIR32 external2
28// CHECK:      ]
29// CHECK:      Symbols [
30// CHECK-NEXT:   Symbol {
31// CHECK-NEXT:     Name: .text
32// CHECK-NEXT:     Value: 0
33// CHECK-NEXT:     Section: .text (1)
34// CHECK-NEXT:     BaseType: Null (0x0)
35// CHECK-NEXT:     ComplexType: Null (0x0)
36// CHECK-NEXT:     StorageClass: Static (0x3)
37// CHECK-NEXT:     AuxSymbolCount: 1
38// CHECK:        }
39// CHECK:        Symbol {
40// CHECK:          Name: local1
41// CHECK-NEXT:     Value: 0
42// CHECK-NEXT:     Section: .text (1)
43// CHECK-NEXT:     BaseType: Null (0x0)
44// CHECK-NEXT:     ComplexType: Null (0x0)
45// CHECK-NEXT:     StorageClass: Static (0x3)
46// CHECK-NEXT:     AuxSymbolCount: 0
47// CHECK-NEXT:   }
48// CHECK-NEXT:   Symbol {
49// CHECK:          Name: global_aliased_to_external
50// CHECK-NEXT:     Value: 0
51// CHECK-NEXT:     Section: IMAGE_SYM_UNDEFINED (0)
52// CHECK-NEXT:     BaseType: Null (0x0)
53// CHECK-NEXT:     ComplexType: Null (0x0)
54// CHECK-NEXT:     StorageClass: External (0x2)
55// CHECK-NEXT:     AuxSymbolCount: 0
56// CHECK-NEXT:   }
57// CHECK-NEXT:   Symbol {
58// CHECK-NEXT:     Name: external1
59// CHECK-NEXT:     Value: 0
60// CHECK-NEXT:     Section: IMAGE_SYM_UNDEFINED (0)
61// CHECK-NEXT:     BaseType: Null (0x0)
62// CHECK-NEXT:     ComplexType: Null (0x0)
63// CHECK-NEXT:     StorageClass: External (0x2)
64// CHECK-NEXT:     AuxSymbolCount: 0
65// CHECK-NEXT:   }
66// CHECK-NEXT:   Symbol {
67// CHECK-NEXT:     Name: global_aliased_to_local
68// CHECK-NEXT:     Value: 0
69// CHECK-NEXT:     Section: .text (1)
70// CHECK-NEXT:     BaseType: Null (0x0)
71// CHECK-NEXT:     ComplexType: Null (0x0)
72// CHECK-NEXT:     StorageClass: External (0x2)
73// CHECK-NEXT:     AuxSymbolCount: 0
74// CHECK-NEXT:   }
75// CHECK-NEXT:   Symbol {
76// CHECK-NEXT:     Name: local2
77// CHECK-NEXT:     Value: 0
78// CHECK-NEXT:     Section: .text (1)
79// CHECK-NEXT:     BaseType: Null (0x0)
80// CHECK-NEXT:     ComplexType: Null (0x0)
81// CHECK-NEXT:     StorageClass: Static (0x3)
82// CHECK-NEXT:     AuxSymbolCount: 0
83// CHECK-NEXT:   }
84// CHECK-NEXT:   Symbol {
85// CHECK-NEXT:     Name: weak_aliased_to_external
86// CHECK-NEXT:     Value: 0
87// CHECK-NEXT:     Section: IMAGE_SYM_UNDEFINED (0)
88// CHECK-NEXT:     BaseType: Null (0x0)
89// CHECK-NEXT:     ComplexType: Null (0x0)
90// CHECK-NEXT:     StorageClass: WeakExternal (0x69)
91// CHECK-NEXT:     AuxSymbolCount: 1
92// CHECK-NEXT:     AuxWeakExternal {
93// CHECK-NEXT:       Linked: external2
94// CHECK-NEXT:       Search: Library (0x2)
95// CHECK-NEXT:     }
96// CHECK-NEXT:   }
97// CHECK-NEXT:   Symbol {
98// CHECK-NEXT:     Name: external2
99// CHECK-NEXT:     Value: 0
100// CHECK-NEXT:     Section: IMAGE_SYM_UNDEFINED (0)
101// CHECK-NEXT:     BaseType: Null (0x0)
102// CHECK-NEXT:     ComplexType: Null (0x0)
103// CHECK-NEXT:     StorageClass: External (0x2)
104// CHECK-NEXT:     AuxSymbolCount: 0
105// CHECK-NEXT:   }
106// CHECK-NEXT: ]
107