# RUN: llvm-mc -filetype=obj -triple x86_64 %s -o %t # RUN: llvm-readelf -s %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. ## In addition, its st_size inherits from other_var. # CHECK: 0: {{.*}} # CHECK-NEXT: 0000000000000001 42 OBJECT GLOBAL DEFAULT [[#A:]] a # CHECK-NEXT: 0000000000000005 0 NOTYPE GLOBAL DEFAULT [[#A]] b # CHECK-NEXT: 0000000000000001 42 OBJECT GLOBAL DEFAULT [[#A]] a1 # CHECK-NEXT: 0000000000000002 42 OBJECT GLOBAL DEFAULT [[#A]] c # CHECK-NEXT: 000000000000000d 42 OBJECT GLOBAL DEFAULT [[#A]] d # CHECK-NEXT: 000000000000000d 42 OBJECT GLOBAL DEFAULT [[#A]] d1 # CHECK-NEXT: 000000000000000d 42 OBJECT GLOBAL DEFAULT [[#A]] d2 # CHECK-NEXT: 0000000000000001 41 OBJECT GLOBAL DEFAULT [[#A]] e # CHECK-NEXT: 0000000000000001 41 OBJECT GLOBAL DEFAULT [[#A]] e1 # CHECK-NEXT: 0000000000000001 41 OBJECT GLOBAL DEFAULT [[#A]] e2 # CHECK-NEXT: 0000000000000002 42 OBJECT GLOBAL DEFAULT [[#A]] e3 # CHECK-NEXT: 0000000000000005 0 NOTYPE GLOBAL DEFAULT [[#A]] test2_a # CHECK-NEXT: 0000000000000005 0 NOTYPE GLOBAL DEFAULT [[#A]] test2_b # CHECK-NEXT: 0000000000000009 0 NOTYPE GLOBAL DEFAULT [[#A]] test2_c # CHECK-NEXT: 0000000000000009 0 NOTYPE GLOBAL DEFAULT [[#A]] test2_d # CHECK-NEXT: 0000000000000004 0 NOTYPE GLOBAL DEFAULT ABS test2_e # CHECK-NEXT: 0000000000000001 41 OBJECT GLOBAL DEFAULT [[#A]] e@v1 .data .globl a .size a, 42 .byte 42 .type a, @object a: .long 42 .globl b, a1, c, d, d1, d2, e, e1, e2, e3 b: a1 = a c = a + 1 ## These st_size fields inherit from a. d = a + (b - a) * 3 .set d1, d d2 = d1 e = a + (1 - 1) .size e, 41 ## These st_size fields inherit from e instead of a. ## TODO e3's st_size should inherit from e. .set e1, e .set e2, e1 e3 = e1 + 1 .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 ## e@v1's st_size equals e's st_size. .symver e, e@v1