[clang] Propagate -ftime-report to offload lto (#122143)
[llvm-project.git] / llvm / test / tools / llvm-readobj / ELF / symbol-visibility.test
bloba25e1e0a253aed54f263da1c5d1d6563e6e2cf14
1 ## Show that llvm-readobj prints the symbol visibility where recognised, or
2 ## something sensible when not, for both GNU and LLVM output.
4 ## Check how we dump symbols when they have only STV_* bits set for st_other.
5 ## (This is the most common case).
7 # RUN: yaml2obj --docnum=1 %s -o %t1.o
8 # RUN: llvm-readobj --symbols %t1.o | FileCheck %s --check-prefix=LLVM
9 # RUN: llvm-readelf --symbols %t1.o | FileCheck %s --strict-whitespace --check-prefix=GNU
10 # RUN: llvm-readobj --symbols --pretty-print --elf-output-style=JSON %t1.o | FileCheck %s --check-prefix=JSON
12 # LLVM:      Name: default
13 # LLVM:      Other: 0
14 # LLVM:      Name: internal
15 # LLVM:      Other [ (0x1)
16 # LLVM-NEXT:   STV_INTERNAL (0x1)
17 # LLVM-NEXT: ]
18 # LLVM:      Name: hidden
19 # LLVM:      Other [ (0x2)
20 # LLVM-NEXT:   STV_HIDDEN (0x2)
21 # LLVM-NEXT: ]
22 # LLVM:      Name: protected
23 # LLVM:      Other [ (0x3)
24 # LLVM-NEXT:   STV_PROTECTED (0x3)
25 # LLVM-NEXT: ]
27 # GNU:      Vis       Ndx Name
28 # GNU-NEXT: DEFAULT   UND
29 # GNU-NEXT: DEFAULT   UND default
30 # GNU-NEXT: INTERNAL  UND internal
31 # GNU-NEXT: HIDDEN    UND hidden
32 # GNU-NEXT: PROTECTED UND protected
34 # JSON:      "Name": "default",
35 # JSON:      "Other": {
36 # JSON-NEXT:   "Value": 0,
37 # JSON-NEXT:   "Flags": []
38 # JSON-NEXT: },
40 # JSON:      "Name": "internal",
41 # JSON:      "Other": {
42 # JSON-NEXT:    "Value": 1,
43 # JSON-NEXT:    "Flags": [
44 # JSON-NEXT:      {
45 # JSON-NEXT:        "Name": "STV_INTERNAL",
46 # JSON-NEXT:        "Value": 1
47 # JSON-NEXT:      }
48 # JSON-NEXT:    ]
49 # JSON-NEXT:  },
51 # JSON:      "Name": "hidden",
52 # JSON:      "Other": {
53 # JSON-NEXT:    "Value": 2,
54 # JSON-NEXT:    "Flags": [
55 # JSON-NEXT:      {
56 # JSON-NEXT:        "Name": "STV_HIDDEN",
57 # JSON-NEXT:        "Value": 2
58 # JSON-NEXT:      }
59 # JSON-NEXT:    ]
60 # JSON-NEXT:  },
62 # JSON:      "Name": "protected",
63 # JSON:      "Other": {
64 # JSON-NEXT:    "Value": 3,
65 # JSON-NEXT:    "Flags": [
66 # JSON-NEXT:      {
67 # JSON-NEXT:        "Name": "STV_PROTECTED",
68 # JSON-NEXT:        "Value": 3
69 # JSON-NEXT:      }
70 # JSON-NEXT:    ]
71 # JSON-NEXT:  },
73 --- !ELF
74 FileHeader:
75   Class: ELFCLASS32
76   Data:  ELFDATA2LSB
77   Type:  ET_REL
78 Symbols:
79   - Name: default
80     Other: [ STV_DEFAULT ]
81     Binding: STB_GLOBAL
82   - Name: internal
83     Other: [ STV_INTERNAL ]
84     Binding: STB_GLOBAL
85   - Name: hidden
86     Other: [ STV_HIDDEN ]
87     Binding: STB_GLOBAL
88   - Name: protected
89     Other: [ STV_PROTECTED ]
90     Binding: STB_GLOBAL
92 ## Check the output when we have non-visibility bits set for at least one of the symbols.
94 # RUN: yaml2obj --docnum=2 %s -o %t2.o
95 # RUN: llvm-readobj --symbols %t2.o | FileCheck %s --check-prefixes=LLVM,LLVM-OTHER
96 # RUN: llvm-readelf --symbols %t2.o | FileCheck %s --strict-whitespace --check-prefix=GNU-OTHER
98 # LLVM-OTHER:      Name: other
99 # LLVM-OTHER:      Other [ (0x4)
100 # LLVM-OTHER-NEXT: ]
102 #      GNU-OTHER: Vis                    Ndx Name
103 # GNU-OTHER-NEXT: DEFAULT                UND
104 # GNU-OTHER-NEXT: DEFAULT                UND default
105 # GNU-OTHER-NEXT: INTERNAL               UND internal
106 # GNU-OTHER-NEXT: HIDDEN                 UND hidden
107 # GNU-OTHER-NEXT: PROTECTED              UND protected
108 # GNU-OTHER-NEXT: DEFAULT [<other: 0x4>] UND other
110 --- !ELF
111 FileHeader:
112   Class: ELFCLASS32
113   Data:  ELFDATA2LSB
114   Type:  ET_REL
115 Symbols:
116   - Name: default
117     Other: [ STV_DEFAULT ]
118   - Name: internal
119     Other: [ STV_INTERNAL ]
120   - Name: hidden
121     Other: [ STV_HIDDEN ]
122   - Name: protected
123     Other: [ STV_PROTECTED ]
124   - Name: other
125     Other: [ 4 ]