[ARM] MVE big endian bitcasts
[llvm-complete.git] / test / tools / llvm-objcopy / ELF / add-symbol.test
blobbf75b4fd8ebb50dc4700fb2a6045d1fb14a4724f
1 # RUN: yaml2obj %s -o %t
2 # RUN: llvm-objcopy --add-symbol='abs1=1' \ 
3 # RUN:              --add-symbol='abs2=2,LoCaL,HiDdEn,FuNcTiOn' \
4 # RUN:              --add-symbol='abs3=3,global,default,object' \
5 # RUN:              --add-symbol='foo.cpp=0,file' \
6 # RUN:              --add-symbol='=.text:0,section' \
7 # RUN:              --add-symbol='data=.data:0x100,weak' \
8 # RUN:              --add-symbol='ifunc=.text:0,indirect-function' \
9 # RUN:              %t %t2
10 # RUN: llvm-readelf -s %t2 | FileCheck %s
12 # Checked ignored options
13 # RUN: llvm-objcopy \
14 # RUN:   --add-symbol='dummy1=0,indirect,constructor,debug,synthetic' \
15 # RUN:   --add-symbol='dummy2=0,before=foo,unique-object,warning' %t %t3
16 # RUN: llvm-readelf -s %t3 | FileCheck %s --check-prefix=IGNORED
18 # Check errors
19 # RUN: not llvm-objcopy --add-symbol='test' %t %t4 2>&1 | FileCheck %s --check-prefix=ERR1
20 # RUN: not llvm-objcopy --add-symbol='test=:0' %t %t5 2>&1 | FileCheck %s --check-prefix=ERR2
21 # RUN: not llvm-objcopy --add-symbol='test=foo:' %t %t6 2>&1 | FileCheck %s --check-prefix=ERR2
22 # RUN: not llvm-objcopy --add-symbol='test=0,cool' %t %t7 2>&1 | FileCheck %s --check-prefix=ERR3
23 # RUN: not llvm-objcopy --add-symbol='test=0,foo,bar' %t %t8 2>&1 | FileCheck %s --check-prefix=ERR4
24 # RUN: not llvm-objcopy --add-symbol='test=xyz' %t %t9 2>&1 | FileCheck %s --check-prefix=ERR5
26 !ELF
27 FileHeader:
28   Class:           ELFCLASS32
29   Data:            ELFDATA2LSB
30   Type:            ET_EXEC
31   Machine:         EM_ARM
32 Sections:
33   - Name:            .text
34     Type:            SHT_PROGBITS
35     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
36     Address:         0x1000
37     AddressAlign:    0x0000000000001000
38     Size:            64
39   - Name:            .data
40     Type:            SHT_PROGBITS
41     Flags:           [ SHF_ALLOC ]
42     Address:         0x2000
43     AddressAlign:    0x0000000000001000
44     Size:            64
45 ProgramHeaders:
46   - Type: PT_LOAD
47     Flags: [ PF_X, PF_R ]
48     VAddr: 0x1000
49     PAddr: 0x1000
50     Align: 0x1000
51     Sections:
52       - Section: .text
53   - Type: PT_LOAD
54     Flags: [ PF_R, PF_W ]
55     VAddr: 0x2000
56     PAddr: 0x2000
57     Align: 0x1000
58     Sections:
59       - Section: .data
61 # CHECK:      0: 00000000 0 NOTYPE LOCAL DEFAULT UND 
62 # CHECK-NEXT: 1: 00000001 0 NOTYPE GLOBAL DEFAULT ABS abs1
63 # CHECK-NEXT: 2: 00000002 0 FUNC LOCAL HIDDEN ABS abs2
64 # CHECK-NEXT: 3: 00000003 0 OBJECT GLOBAL DEFAULT ABS abs3
65 # CHECK-NEXT: 4: 00000000 0 FILE GLOBAL DEFAULT ABS foo.cpp
66 # CHECK-NEXT: 5: 00001000 0 SECTION GLOBAL DEFAULT 1 
67 # CHECK-NEXT: 6: 00002100 0 NOTYPE WEAK DEFAULT 2 data
68 # CHECK-NEXT: 7: 00001000 0 IFUNC GLOBAL DEFAULT 1 ifunc
70 # IGNORED:       1: 00000000 0 NOTYPE GLOBAL DEFAULT ABS dummy1
71 # IGNORED-NEXT:  2: 00000000 0 NOTYPE GLOBAL DEFAULT ABS dummy2
73 # ERR1: error: bad format for --add-symbol, missing '=' after 'test'
74 # ERR2: error: bad format for --add-symbol, missing section name or symbol value
75 # ERR3: error: unsupported flag for --add-symbol: 'cool'
76 # ERR4: error: unsupported flags for --add-symbol: 'foo', 'bar'
77 # ERR5: error: bad symbol value: 'xyz'