|  | // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -t - | FileCheck %s | 
|  |  | 
|  | // Test that a variable declared with "var = other_var + cst" is in the same | 
|  | // section as other_var and its value is the value of other_var + cst. | 
|  |  | 
|  | .data | 
|  | .globl	sym_a | 
|  | .size sym_a, 42 | 
|  | .byte 42 | 
|  | .type sym_a, @object | 
|  | sym_a: | 
|  |  | 
|  | // CHECK:       Symbol { | 
|  | // CHECK:         Name: sym_a | 
|  | // CHECK-NEXT:    Value: 0x1 | 
|  | // CHECK-NEXT:    Size: 42 | 
|  | // CHECK-NEXT:    Binding: Global | 
|  | // CHECK-NEXT:    Type: Object | 
|  | // CHECK-NEXT:    Other: 0 | 
|  | // CHECK-NEXT:    Section: .data | 
|  | // CHECK-NEXT:  } | 
|  |  | 
|  | .long 42 | 
|  | .globl sym_b | 
|  | sym_b: | 
|  | .globl sym_c | 
|  | sym_c = sym_a | 
|  | // CHECK:       Symbol { | 
|  | // CHECK:         Name: sym_c | 
|  | // CHECK-NEXT:    Value: 0x1 | 
|  | // CHECK-NEXT:    Size: 42 | 
|  | // CHECK-NEXT:    Binding: Global | 
|  | // CHECK-NEXT:    Type: Object | 
|  | // CHECK-NEXT:    Other: 0 | 
|  | // CHECK-NEXT:    Section: .data | 
|  | // CHECK-NEXT:  } | 
|  |  | 
|  | .globl sym_d | 
|  | sym_d = sym_a + 1 | 
|  | // CHECK:       Symbol { | 
|  | // CHECK:         Name: sym_d | 
|  | // CHECK-NEXT:    Value: 0x2 | 
|  | // CHECK-NEXT:    Size: 42 | 
|  | // CHECK-NEXT:    Binding: Global | 
|  | // CHECK-NEXT:    Type: Object | 
|  | // CHECK-NEXT:    Other: 0 | 
|  | // CHECK-NEXT:    Section: .data | 
|  | // CHECK-NEXT:  } | 
|  |  | 
|  | .globl sym_e | 
|  | sym_e = sym_a + (sym_b - sym_a) * 3 | 
|  | // CHECK:       Symbol { | 
|  | // CHECK:         Name: sym_e | 
|  | // CHECK-NEXT:    Value: 0xD | 
|  | // CHECK-NEXT:    Size: 42 | 
|  | // CHECK-NEXT:    Binding: Global | 
|  | // CHECK-NEXT:    Type: Object | 
|  | // CHECK-NEXT:    Other: 0 | 
|  | // CHECK-NEXT:    Section: .data | 
|  | // CHECK-NEXT:  } | 
|  |  | 
|  |  | 
|  | .globl sym_f | 
|  | sym_f = sym_a + (1 - 1) | 
|  | // CHECK:       Symbol { | 
|  | // CHECK:         Name: sym_f | 
|  | // CHECK-NEXT:    Value: 0x1 | 
|  | // CHECK-NEXT:    Size: 42 | 
|  | // CHECK-NEXT:    Binding: Global | 
|  | // CHECK-NEXT:    Type: Object | 
|  | // CHECK-NEXT:    Other: 0 | 
|  | // CHECK-NEXT:    Section: .data | 
|  | // CHECK-NEXT:  } | 
|  |  | 
|  |  | 
|  | .globl test2_a | 
|  | .globl test2_b | 
|  | .globl test2_c | 
|  | .globl test2_d | 
|  | .globl test2_e | 
|  | test2_a: | 
|  | .long 0 | 
|  | test2_b = test2_a | 
|  | test2_c: | 
|  | .long 0 | 
|  | test2_d = test2_c | 
|  | test2_e = test2_d - test2_b | 
|  | // CHECK:      Symbol { | 
|  | // CHECK:        Name: test2_a | 
|  | // CHECK-NEXT:   Value: 0x5 | 
|  | // CHECK-NEXT:   Size: 0 | 
|  | // CHECK-NEXT:   Binding: Global | 
|  | // CHECK-NEXT:   Type: None | 
|  | // CHECK-NEXT:   Other: 0 | 
|  | // CHECK-NEXT:   Section: .data | 
|  | // CHECK-NEXT: } | 
|  | // CHECK-NEXT: Symbol { | 
|  | // CHECK-NEXT:   Name: test2_b | 
|  | // CHECK-NEXT:   Value: 0x5 | 
|  | // CHECK-NEXT:   Size: 0 | 
|  | // CHECK-NEXT:   Binding: Global | 
|  | // CHECK-NEXT:   Type: None | 
|  | // CHECK-NEXT:   Other: 0 | 
|  | // CHECK-NEXT:   Section: .data | 
|  | // CHECK-NEXT: } | 
|  | // CHECK-NEXT: Symbol { | 
|  | // CHECK-NEXT:   Name: test2_c | 
|  | // CHECK-NEXT:   Value: 0x9 | 
|  | // CHECK-NEXT:   Size: 0 | 
|  | // CHECK-NEXT:   Binding: Global | 
|  | // CHECK-NEXT:   Type: None | 
|  | // CHECK-NEXT:   Other: 0 | 
|  | // CHECK-NEXT:   Section: .data | 
|  | // CHECK-NEXT: } | 
|  | // CHECK-NEXT: Symbol { | 
|  | // CHECK-NEXT:   Name: test2_d | 
|  | // CHECK-NEXT:   Value: 0x9 | 
|  | // CHECK-NEXT:   Size: 0 | 
|  | // CHECK-NEXT:   Binding: Global | 
|  | // CHECK-NEXT:   Type: None | 
|  | // CHECK-NEXT:   Other: 0 | 
|  | // CHECK-NEXT:   Section: .data | 
|  | // CHECK-NEXT: } | 
|  | // CHECK-NEXT: Symbol { | 
|  | // CHECK-NEXT:   Name: test2_e | 
|  | // CHECK-NEXT:   Value: 0x4 | 
|  | // CHECK-NEXT:   Size: 0 | 
|  | // CHECK-NEXT:   Binding: Global | 
|  | // CHECK-NEXT:   Type: None | 
|  | // CHECK-NEXT:   Other: 0 | 
|  | // CHECK-NEXT:   Section: Absolute | 
|  | // CHECK-NEXT: } |