[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / tools / llvm-objcopy / ELF / redefine-symbol.test
blobe6d52f8b7659be7e42bbdf6b9b66663dba2704dd
1 # RUN: yaml2obj %s > %t
2 # RUN: llvm-objcopy --redefine-sym foo=oof --redefine-sym empty= %t %t2
3 # RUN: llvm-readobj --symbols %t2 | FileCheck %s
4 # RUN: not llvm-objcopy --redefine-sym barbar %t %t2 2>&1 | FileCheck %s --check-prefix=BAD-FORMAT
5 # RUN: not llvm-objcopy --redefine-sym foo=f1 --redefine-sym foo=f2 %t %t2 2>&1 | FileCheck %s --check-prefix=MULTIPLE-REDEFINITION
6 # RUN: echo "  foo   oof #rename foo  " > %t.rename.txt
7 # RUN: echo "empty" >> %t.rename.txt
8 # RUN: not llvm-objcopy --redefine-syms %t.rename.txt %t %t3 2>&1 | FileCheck %s --check-prefix=MISSING-SYM-NAME
9 # RUN: not llvm-objcopy --redefine-syms %t.rename-none.txt %t %t-none 2>&1 | FileCheck %s --check-prefix=NO-FILE
10 # RUN: echo "  bar   rab #rename bar  " > %t.rename2.txt
11 # RUN: echo "  foo   oof #rename foo  " > %t.rename3.txt
12 # RUN: echo "  empty   ytpme #rename empty  " >> %t.rename3.txt
13 # RUN: llvm-objcopy --redefine-syms %t.rename2.txt --redefine-syms %t.rename3.txt %t %t4
14 # RUN: llvm-readobj --symbols %t4 | FileCheck %s --check-prefix=MULTIPLE-FILES
16 !ELF
17 FileHeader:
18   Class:           ELFCLASS64
19   Data:            ELFDATA2LSB
20   Type:            ET_EXEC
21   Machine:         EM_X86_64
22 Sections:
23   - Name:            .text
24     Type:            SHT_PROGBITS
25     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
26     Address:         0x1000
27     AddressAlign:    0x0000000000000010
28     Content:         "0000000000000000"
29   - Name:            .data
30     Type:            SHT_PROGBITS
31     Flags:           [ SHF_ALLOC ]
32     Address:         0x2000
33     AddressAlign:    0x0000000000000010
34     Content:         "0000000000000000"
35 Symbols:
36   - Name:     foo
37     Type:     STT_FUNC
38     Section:  .text
39     Value:    0x1004
40     Binding:  STB_GLOBAL
41   - Name:     bar
42     Type:     STT_OBJECT
43     Section:  .data
44     Value:    0x2000
45     Size:     4
46     Binding:  STB_GLOBAL
47   - Name:     empty
48     Type:     STT_FUNC
49     Section:  .text
50     Value:    0x1008
51     Binding:  STB_GLOBAL
53 #CHECK: Symbols [
54 #CHECK-NEXT:  Symbol {
55 #CHECK-NEXT:    Name:
56 #CHECK-NEXT:    Value: 0x0
57 #CHECK-NEXT:    Size: 0
58 #CHECK-NEXT:    Binding: Local
59 #CHECK-NEXT:    Type: None
60 #CHECK-NEXT:    Other: 0
61 #CHECK-NEXT:    Section: Undefined
62 #CHECK-NEXT:  }
63 #CHECK-NEXT:  Symbol {
64 #CHECK-NEXT:    Name: oof
65 #CHECK-NEXT:    Value: 0x1004
66 #CHECK-NEXT:    Size: 0
67 #CHECK-NEXT:    Binding: Global
68 #CHECK-NEXT:    Type: Function
69 #CHECK-NEXT:    Other: 0
70 #CHECK-NEXT:    Section: .text
71 #CHECK-NEXT:  }
72 #CHECK-NEXT:  Symbol {
73 #CHECK-NEXT:    Name: bar
74 #CHECK-NEXT:    Value: 0x2000
75 #CHECK-NEXT:    Size: 4
76 #CHECK-NEXT:    Binding: Global
77 #CHECK-NEXT:    Type: Object
78 #CHECK-NEXT:    Other: 0
79 #CHECK-NEXT:    Section: .data
80 #CHECK-NEXT:  }
81 #CHECK-NEXT:  Symbol {
82 #CHECK-NEXT:    Name: 
83 #CHECK-NEXT:    Value: 0x1008
84 #CHECK-NEXT:    Size: 0
85 #CHECK-NEXT:    Binding: Global
86 #CHECK-NEXT:    Type: Function
87 #CHECK-NEXT:    Other: 0
88 #CHECK-NEXT:    Section: .text
89 #CHECK-NEXT:  }
91 #BAD-FORMAT: bad format for --redefine-sym
92 #MULTIPLE-REDEFINITION: multiple redefinition of symbol 'foo'
93 #MISSING-SYM-NAME: error: {{.*}}.rename.txt:2: missing new symbol name
94 #NO-FILE: error: '{{.*}}.rename-none.txt': {{[Nn]}}o such file or directory
96 #MULTIPLE-FILES:        Name: oof
97 #MULTIPLE-FILES-NEXT:   Value: 0x1004
98 #MULTIPLE-FILES:        Name: rab
99 #MULTIPLE-FILES-NEXT:   Value: 0x2000
100 #MULTIPLE-FILES:        Name: ytpme
101 #MULTIPLE-FILES-NEXT:   Value: 0x1008