| // REQUIRES: x86 | 
 | // RUN: llvm-mc %s -o %t.o -filetype=obj -triple=x86_64-pc-linux | 
 | // RUN: ld.lld %t.o -o %t.so -shared | 
 | // RUN: ld.lld %t.o -o %t.gc.so -shared --gc-sections | 
 | // RUN: llvm-readobj -s -section-data %t.so | FileCheck %s | 
 | // RUN: llvm-readobj -s -section-data %t.gc.so | FileCheck --check-prefix=GC %s | 
 |  | 
 |  | 
 | // CHECK:      Name: .rodata | 
 | // CHECK-NEXT: Type: SHT_PROGBITS | 
 | // CHECK-NEXT: Flags [ | 
 | // CHECK-NEXT:   SHF_ALLOC | 
 | // CHECK-NEXT:   SHF_MERGE | 
 | // CHECK-NEXT:   SHF_STRINGS | 
 | // CHECK-NEXT: ] | 
 | // CHECK-NEXT: Address: | 
 | // CHECK-NEXT: Offset: | 
 | // CHECK-NEXT: Size: 8 | 
 | // CHECK-NEXT: Link: 0 | 
 | // CHECK-NEXT: Info: 0 | 
 | // CHECK-NEXT: AddressAlignment: 1 | 
 | // CHECK-NEXT: EntrySize: 1 | 
 | // CHECK-NEXT: SectionData ( | 
 | // CHECK-NEXT:   0000: 666F6F00 62617200                    |foo.bar.| | 
 | // CHECK-NEXT: ) | 
 |  | 
 | // GC:      Name: .rodata | 
 | // GC-NEXT: Type: SHT_PROGBITS | 
 | // GC-NEXT: Flags [ | 
 | // GC-NEXT:   SHF_ALLOC | 
 | // GC-NEXT:   SHF_MERGE | 
 | // GC-NEXT:   SHF_STRINGS | 
 | // GC-NEXT: ] | 
 | // GC-NEXT: Address: | 
 | // GC-NEXT: Offset: | 
 | // GC-NEXT: Size: 4 | 
 | // GC-NEXT: Link: 0 | 
 | // GC-NEXT: Info: 0 | 
 | // GC-NEXT: AddressAlignment: 1 | 
 | // GC-NEXT: EntrySize: 1 | 
 | // GC-NEXT: SectionData ( | 
 | // GC-NEXT:   0000: 666F6F00                                |foo.| | 
 | // GC-NEXT: ) | 
 |  | 
 |         .section        .text.f,"ax",@progbits | 
 |         .globl  f | 
 | f: | 
 |         leaq    .L.str(%rip), %rax | 
 |         retq | 
 |  | 
 |         .section        .text.g,"ax",@progbits | 
 |         .hidden g | 
 |         .globl  g | 
 | g: | 
 |         leaq    .L.str.1(%rip), %rax | 
 |         retq | 
 |  | 
 |         .section        .rodata.str1.1,"aMS",@progbits,1 | 
 | .L.str: | 
 |         .asciz  "foo" | 
 | .L.str.1: | 
 |         .asciz  "bar" |