summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-objcopy/COFF/weak-external.test
blob: b5a311fbfb6c193d9531f4d855c10baccd04a3b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# RUN: yaml2obj %s > %t.in.o

# RUN: llvm-objdump -t %t.in.o | FileCheck %s --check-prefixes=SYMBOLS,SYMBOLS-PRE

# RUN: llvm-objcopy -N func %t.in.o %t.out.o
# RUN: llvm-objdump -t %t.out.o | FileCheck %s --check-prefixes=SYMBOLS,SYMBOLS-POST

# RUN: not llvm-objcopy -N .weak.foobar.file1 %t.in.o %t.err.o 2>&1 | FileCheck %s --check-prefix=ERROR

# SYMBOLS: SYMBOL TABLE:
# SYMBOLS-PRE-NEXT: func
# SYMBOLS-NEXT: .weak.foobar.file1
# SYMBOLS-NEXT: foobar
# SYMBOLS-PRE-NEXT: AUX indx 1
# SYMBOLS-POST-NEXT: AUX indx 0
# SYMBOLS-EMPTY:

# ERROR: symbol 'foobar' is missing its weak target

--- !COFF
header:          
  Machine:         IMAGE_FILE_MACHINE_AMD64
  Characteristics: [  ]
sections:        
  - Name:            .text
    Characteristics: [  ]
symbols:         
  - Name:            func
    Value:           0
    SectionNumber:   1
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_NULL
    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
  - Name:            .weak.foobar.file1
    Value:           1
    SectionNumber:   1
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_NULL
    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
  - Name:            foobar
    Value:           0
    SectionNumber:   0
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
    StorageClass:    IMAGE_SYM_CLASS_WEAK_EXTERNAL
    WeakExternal:    
      TagIndex:        1
      Characteristics: IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY
...
OpenPOWER on IntegriCloud