1# REQUIRES: x86-registered-target 2 3# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-macos %s -o %t 4 5# RUN: llvm-objcopy --weaken %t %t2 6# RUN: llvm-readobj --symbols %t2 --sort-symbols=name | FileCheck %s 7 8# CHECK: Symbols [ 9# CHECK-NEXT: Symbol { 10# CHECK-NEXT: Name: _global ({{[0-9]+}}) 11# CHECK-NEXT: Extern 12# CHECK-NEXT: Type: Section (0xE) 13# CHECK-NEXT: Section: __text (0x1) 14# CHECK-NEXT: RefType: UndefinedNonLazy (0x0) 15# CHECK-NEXT: Flags [ (0x80) 16# CHECK-NEXT: WeakDef (0x80) 17# CHECK-NEXT: ] 18# CHECK-NEXT: Value: 0x0 19# CHECK-NEXT: } 20# CHECK-NEXT: Symbol { 21# CHECK-NEXT: Name: _global_data ({{[0-9]+}}) 22# CHECK-NEXT: Extern 23# CHECK-NEXT: Type: Section (0xE) 24# CHECK-NEXT: Section: __const (0x2) 25# CHECK-NEXT: RefType: UndefinedNonLazy (0x0) 26# CHECK-NEXT: Flags [ (0x80) 27# CHECK-NEXT: WeakDef (0x80) 28# CHECK-NEXT: ] 29# CHECK-NEXT: Value: 0x0 30# CHECK-NEXT: } 31# CHECK-NEXT: Symbol { 32# CHECK-NEXT: Name: _local ({{[0-9]+}}) 33# CHECK-NEXT: Type: Section (0xE) 34# CHECK-NEXT: Section: __text (0x1) 35# CHECK-NEXT: RefType: UndefinedNonLazy (0x0) 36# CHECK-NEXT: Flags [ (0x0) 37# CHECK-NEXT: ] 38# CHECK-NEXT: Value: 0x0 39# CHECK-NEXT: } 40# CHECK-NEXT: Symbol { 41# CHECK-NEXT: Name: _local_data ({{[0-9]+}}) 42# CHECK-NEXT: Type: Section (0xE) 43# CHECK-NEXT: Section: __const (0x2) 44# CHECK-NEXT: RefType: UndefinedNonLazy (0x0) 45# CHECK-NEXT: Flags [ (0x0) 46# CHECK-NEXT: ] 47# CHECK-NEXT: Value: 0x0 48# CHECK-NEXT: } 49# CHECK-NEXT: Symbol { 50# CHECK-NEXT: Name: _weak ({{[0-9]+}}) 51# CHECK-NEXT: Type: Section (0xE) 52# CHECK-NEXT: Section: __text (0x1) 53# CHECK-NEXT: RefType: UndefinedNonLazy (0x0) 54# CHECK-NEXT: Flags [ (0x80) 55# CHECK-NEXT: WeakDef (0x80) 56# CHECK-NEXT: ] 57# CHECK-NEXT: Value: 0x0 58# CHECK-NEXT: } 59# CHECK-NEXT: Symbol { 60# CHECK-NEXT: Name: _weak_data ({{[0-9]+}}) 61# CHECK-NEXT: Type: Section (0xE) 62# CHECK-NEXT: Section: __const (0x2) 63# CHECK-NEXT: RefType: UndefinedNonLazy (0x0) 64# CHECK-NEXT: Flags [ (0x80) 65# CHECK-NEXT: WeakDef (0x80) 66# CHECK-NEXT: ] 67# CHECK-NEXT: Value: 0x0 68# CHECK-NEXT: } 69# CHECK-NEXT: Symbol { 70# CHECK-NEXT: Name: _weak_global ({{[0-9]+}}) 71# CHECK-NEXT: Extern 72# CHECK-NEXT: Type: Section (0xE) 73# CHECK-NEXT: Section: __text (0x1) 74# CHECK-NEXT: RefType: UndefinedNonLazy (0x0) 75# CHECK-NEXT: Flags [ (0x80) 76# CHECK-NEXT: WeakDef (0x80) 77# CHECK-NEXT: ] 78# CHECK-NEXT: Value: 0x0 79# CHECK-NEXT: } 80# CHECK-NEXT: ] 81 82.globl _global 83_global: 84 85_local: 86 87.weak_definition _weak 88_weak: 89 90.weak_definition _weak_global 91.globl _weak_global 92_weak_global: 93 94.section __TEXT,__const 95.globl _global_data 96_global_data: 97_local_data: 98 99.weak_definition _weak_data 100_weak_data: 101