1 // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -t - | FileCheck %s
3 // Test that a variable declared with "var = other_var + cst" is in the same
4 // section as other_var and its value is the value of other_var + cst.
15 // CHECK-NEXT: Value: 0x1
16 // CHECK-NEXT: Size: 42
17 // CHECK-NEXT: Binding: Global
18 // CHECK-NEXT: Type: Object
19 // CHECK-NEXT: Other: 0
20 // CHECK-NEXT: Section: .data
30 // CHECK-NEXT: Value: 0x1
31 // CHECK-NEXT: Size: 42
32 // CHECK-NEXT: Binding: Global
33 // CHECK-NEXT: Type: Object
34 // CHECK-NEXT: Other: 0
35 // CHECK-NEXT: Section: .data
42 // CHECK-NEXT: Value: 0x2
43 // CHECK-NEXT: Size: 42
44 // CHECK-NEXT: Binding: Global
45 // CHECK-NEXT: Type: Object
46 // CHECK-NEXT: Other: 0
47 // CHECK-NEXT: Section: .data
51 sym_e = sym_a + (sym_b - sym_a) * 3
54 // CHECK-NEXT: Value: 0xD
55 // CHECK-NEXT: Size: 42
56 // CHECK-NEXT: Binding: Global
57 // CHECK-NEXT: Type: Object
58 // CHECK-NEXT: Other: 0
59 // CHECK-NEXT: Section: .data
64 sym_f = sym_a + (1 - 1)
67 // CHECK-NEXT: Value: 0x1
68 // CHECK-NEXT: Size: 42
69 // CHECK-NEXT: Binding: Global
70 // CHECK-NEXT: Type: Object
71 // CHECK-NEXT: Other: 0
72 // CHECK-NEXT: Section: .data
87 test2_e = test2_d - test2_b
89 // CHECK: Name: test2_a
90 // CHECK-NEXT: Value: 0x5
91 // CHECK-NEXT: Size: 0
92 // CHECK-NEXT: Binding: Global
93 // CHECK-NEXT: Type: None
94 // CHECK-NEXT: Other: 0
95 // CHECK-NEXT: Section: .data
97 // CHECK-NEXT: Symbol {
98 // CHECK-NEXT: Name: test2_b
99 // CHECK-NEXT: Value: 0x5
100 // CHECK-NEXT: Size: 0
101 // CHECK-NEXT: Binding: Global
102 // CHECK-NEXT: Type: None
103 // CHECK-NEXT: Other: 0
104 // CHECK-NEXT: Section: .data
106 // CHECK-NEXT: Symbol {
107 // CHECK-NEXT: Name: test2_c
108 // CHECK-NEXT: Value: 0x9
109 // CHECK-NEXT: Size: 0
110 // CHECK-NEXT: Binding: Global
111 // CHECK-NEXT: Type: None
112 // CHECK-NEXT: Other: 0
113 // CHECK-NEXT: Section: .data
115 // CHECK-NEXT: Symbol {
116 // CHECK-NEXT: Name: test2_d
117 // CHECK-NEXT: Value: 0x9
118 // CHECK-NEXT: Size: 0
119 // CHECK-NEXT: Binding: Global
120 // CHECK-NEXT: Type: None
121 // CHECK-NEXT: Other: 0
122 // CHECK-NEXT: Section: .data
124 // CHECK-NEXT: Symbol {
125 // CHECK-NEXT: Name: test2_e
126 // CHECK-NEXT: Value: 0x4
127 // CHECK-NEXT: Size: 0
128 // CHECK-NEXT: Binding: Global
129 // CHECK-NEXT: Type: None
130 // CHECK-NEXT: Other: 0
131 // CHECK-NEXT: Section: Absolute