Consider the base pointer for setting the symbol type.
[oota-llvm.git] / test / MC / ELF / offset.s
1 // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -t - | FileCheck %s
2
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.
5
6         .data
7         .globl  sym_a
8         .byte 42
9         .type sym_a, @object
10 sym_a:
11
12 // CHECK:       Symbol {
13 // CHECK:         Name: sym_a
14 // CHECK-NEXT:    Value: 0x1
15 // CHECK-NEXT:    Size: 0
16 // CHECK-NEXT:    Binding: Global
17 // CHECK-NEXT:    Type: Object
18 // CHECK-NEXT:    Other: 0
19 // CHECK-NEXT:    Section: .data
20 // CHECK-NEXT:  }
21
22         .long 42
23         .globl sym_b
24 sym_b:
25         .globl sym_c
26 sym_c = sym_a
27 // CHECK:       Symbol {
28 // CHECK:         Name: sym_c
29 // CHECK-NEXT:    Value: 0x1
30 // CHECK-NEXT:    Size: 0
31 // CHECK-NEXT:    Binding: Global
32 // CHECK-NEXT:    Type: Object
33 // CHECK-NEXT:    Other: 0
34 // CHECK-NEXT:    Section: .data
35 // CHECK-NEXT:  }
36
37         .globl sym_d
38 sym_d = sym_a + 1
39 // CHECK:       Symbol {
40 // CHECK:         Name: sym_d
41 // CHECK-NEXT:    Value: 0x2
42 // CHECK-NEXT:    Size: 0
43 // CHECK-NEXT:    Binding: Global
44 // CHECK-NEXT:    Type: Object
45 // CHECK-NEXT:    Other: 0
46 // CHECK-NEXT:    Section: .data
47 // CHECK-NEXT:  }
48
49         .globl sym_e
50 sym_e = sym_a + (sym_b - sym_a) * 3
51 // CHECK:       Symbol {
52 // CHECK:         Name: sym_e
53 // CHECK-NEXT:    Value: 0xD
54 // CHECK-NEXT:    Size: 0
55 // CHECK-NEXT:    Binding: Global
56 // CHECK-NEXT:    Type: Object
57 // CHECK-NEXT:    Other: 0
58 // CHECK-NEXT:    Section: .data
59 // CHECK-NEXT:  }
60
61
62         .globl sym_f
63 sym_f = sym_a + (1 - 1)
64 // CHECK:       Symbol {
65 // CHECK:         Name: sym_f
66 // CHECK-NEXT:    Value: 0x1
67 // CHECK-NEXT:    Size: 0
68 // CHECK-NEXT:    Binding: Global
69 // CHECK-NEXT:    Type: Object
70 // CHECK-NEXT:    Other: 0
71 // CHECK-NEXT:    Section: .data
72 // CHECK-NEXT:  }