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