brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.2 KiB · f53389d Raw
123 lines · plain
1// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | llvm-readobj --symbols - | FileCheck %s2// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | llvm-readobj --symbols - | FileCheck %s3 4// When making weak references to labels/procedures, we reference them directly5// if they have global symbols; otherwise, we need to create a global symbol for6// the reference to resolve to.7 8    .text9 10    .globl proc111proc1:12    ret13 14proc2:15    ret16// CHECK:      Symbol {17// CHECK:        Name: proc218// CHECK-NEXT:   Value: [[PROC2_VALUE:[0-9]+]]19// CHECK-NEXT:   Section: [[PROC2_SECTION:.*]]20// CHECK-NEXT:   BaseType: Null21// CHECK-NEXT:   ComplexType: Null22// CHECK-NEXT:   StorageClass: Static23// CHECK-NEXT:   AuxSymbolCount: 024// CHECK-NEXT: }25 26    .weak t127t1 = proc128 29// CHECK:      Symbol {30// CHECK:        Name: t131// CHECK-NEXT:   Value: 032// CHECK-NEXT:   Section: IMAGE_SYM_UNDEFINED33// CHECK-NEXT:   BaseType: Null34// CHECK-NEXT:   ComplexType: Null35// CHECK-NEXT:   StorageClass: WeakExternal36// CHECK-NEXT:   AuxSymbolCount: 137// CHECK-NEXT:   AuxWeakExternal {38// CHECK-NEXT:     Linked: proc139// CHECK-NEXT:     Search: Alias40// CHECK-NEXT:   }41// CHECK-NEXT: }42 43    .weak t244t2 = proc245 46// CHECK:      Symbol {47// CHECK:        Name: t248// CHECK-NEXT:   Value: 049// CHECK-NEXT:   Section: IMAGE_SYM_UNDEFINED50// CHECK-NEXT:   BaseType: Null51// CHECK-NEXT:   ComplexType: Null52// CHECK-NEXT:   StorageClass: WeakExternal53// CHECK-NEXT:   AuxSymbolCount: 154// CHECK-NEXT:   AuxWeakExternal {55// CHECK-NEXT:     Linked: .weak.t2.default56// CHECK-NEXT:     Search: Alias57// CHECK-NEXT:   }58// CHECK-NEXT: }59// CHECK:      Symbol {60// CHECK:        Name: .weak.t2.default61// CHECK-NEXT:   Value: [[PROC2_VALUE]]62// CHECK-NEXT:   Section: [[PROC2_SECTION]]63// CHECK-NEXT:   BaseType: Null64// CHECK-NEXT:   ComplexType: Null65// CHECK-NEXT:   StorageClass: External66// CHECK-NEXT:   AuxSymbolCount: 067// CHECK-NEXT: }68 69    .weak t370t3 = foo71 72// CHECK:      Symbol {73// CHECK:        Name: t374// CHECK-NEXT:   Value: 075// CHECK-NEXT:   Section: IMAGE_SYM_UNDEFINED76// CHECK-NEXT:   BaseType: Null77// CHECK-NEXT:   ComplexType: Null78// CHECK-NEXT:   StorageClass: WeakExternal79// CHECK-NEXT:   AuxSymbolCount: 180// CHECK-NEXT:   AuxWeakExternal {81// CHECK-NEXT:     Linked: foo82// CHECK-NEXT:     Search: Alias83// CHECK-NEXT:   }84// CHECK-NEXT: }85 86    .weak t487t4 = bar88 89    .globl bar90bar:91    ret92 93// CHECK:      Symbol {94// CHECK:        Name: t495// CHECK-NEXT:   Value: 096// CHECK-NEXT:   Section: IMAGE_SYM_UNDEFINED97// CHECK-NEXT:   BaseType: Null98// CHECK-NEXT:   ComplexType: Null99// CHECK-NEXT:   StorageClass: WeakExternal100// CHECK-NEXT:   AuxSymbolCount: 1101// CHECK-NEXT:   AuxWeakExternal {102// CHECK-NEXT:     Linked: bar103// CHECK-NEXT:     Search: Alias104// CHECK-NEXT:   }105// CHECK-NEXT: }106 107    .weak t5108t5 = t2109 110// CHECK:      Symbol {111// CHECK:        Name: t5112// CHECK-NEXT:   Value: 0113// CHECK-NEXT:   Section: IMAGE_SYM_UNDEFINED114// CHECK-NEXT:   BaseType: Null115// CHECK-NEXT:   ComplexType: Null116// CHECK-NEXT:   StorageClass: WeakExternal117// CHECK-NEXT:   AuxSymbolCount: 1118// CHECK-NEXT:   AuxWeakExternal {119// CHECK-NEXT:     Linked: t2120// CHECK-NEXT:     Search: Alias121// CHECK-NEXT:   }122// CHECK-NEXT: }123