[llvm-readelf] - Report a warning when .hash section contains a chain with a cycle.
[llvm-complete.git] / test / tools / sanstats / elf.test
blob344384721e17766b020d6d26f4fbc5d385f7fc08
1 # RUN: yaml2obj %s > %t1.o
2 # RUN: yaml2obj %s > %t2.o
4 # RUN: printf "\x04" > %t.stats
6 # RUN: printf "%%s" "%t1.o" >> %t.stats
7 # RUN: printf "\x00" >> %t.stats
8 # RUN: printf "\x01\x00\x00\x00\x01\x00\x00\x00" >> %t.stats
9 # RUN: printf "\x11\x00\x00\x00\x02\x00\x00\x20" >> %t.stats
10 # RUN: printf "\x21\x00\x00\x00\x03\x00\x00\x40" >> %t.stats
11 # RUN: printf "\x01\x00\x00\x00\x04\x00\x00\x60" >> %t.stats
12 # RUN: printf "\x11\x00\x00\x00\x05\x00\x00\x80" >> %t.stats
13 # RUN: printf "\x21\x00\x00\x00\x06\x00\x00\xa0" >> %t.stats
14 # RUN: printf "\x00\x00\x00\x00\x00\x00\x00\x00" >> %t.stats
16 # RUN: printf "%%s" "%t2.o" >> %t.stats
17 # RUN: printf "\x00" >> %t.stats
18 # RUN: printf "\x21\x00\x00\x00\x07\x00\x00\x00" >> %t.stats
19 # RUN: printf "\x11\x00\x00\x00\x08\x00\x00\x20" >> %t.stats
20 # RUN: printf "\x01\x00\x00\x00\x09\x00\x00\x40" >> %t.stats
21 # RUN: printf "\x21\x00\x00\x00\x0b\x00\x00\x60" >> %t.stats
22 # RUN: printf "\x11\x00\x00\x00\x0c\x00\x00\x80" >> %t.stats
23 # RUN: printf "\x01\x00\x00\x00\x0e\x00\x00\xa0" >> %t.stats
24 # RUN: printf "\x00\x00\x00\x00\x00\x00\x00\x00" >> %t.stats
26 # RUN: sanstats %t.stats | FileCheck %s
28 # Test that if binaries are not in the original location then sanstats
29 # searches them next to the stats file.
30 # RUN: mkdir -p %t.dir
31 # RUN: mv -f %t1.o %t2.o %t.dir
32 # RUN: sanstats %t.stats | FileCheck %s --check-prefix=INVALID
33 # RUN: mv -f %t.stats %t.dir/copy.stats
34 # RUN: cd %t.dir && sanstats copy.stats | FileCheck %s
36 # INVALID: <invalid>
37 # CHECK-NOT: <invalid>
38 # CHECK: 0x0000000000000000 /tmp{{[/\\]}}f.c:1 f1 cfi-vcall 1
39 # CHECK: 0x0000000000000010 /tmp{{[/\\]}}f.c:2 f2 cfi-nvcall 2
40 # CHECK: 0x0000000000000020 /tmp{{[/\\]}}f.c:3 f3 cfi-derived-cast 3
41 # CHECK: 0x0000000000000000 /tmp{{[/\\]}}f.c:1 f1 cfi-unrelated-cast 4
42 # CHECK: 0x0000000000000010 /tmp{{[/\\]}}f.c:2 f2 cfi-icall 5
43 # CHECK: 0x0000000000000020 /tmp{{[/\\]}}f.c:3 f3 <unknown> 6
45 # CHECK: 0x0000000000000020 /tmp{{[/\\]}}f.c:3 f3 cfi-vcall 7
46 # CHECK: 0x0000000000000010 /tmp{{[/\\]}}f.c:2 f2 cfi-nvcall 8
47 # CHECK: 0x0000000000000000 /tmp{{[/\\]}}f.c:1 f1 cfi-derived-cast 9
48 # CHECK: 0x0000000000000020 /tmp{{[/\\]}}f.c:3 f3 cfi-unrelated-cast 11
49 # CHECK: 0x0000000000000010 /tmp{{[/\\]}}f.c:2 f2 cfi-icall 12
50 # CHECK: 0x0000000000000000 /tmp{{[/\\]}}f.c:1 f1 <unknown> 14
52 --- !ELF
53 FileHeader:      
54   Class:           ELFCLASS64
55   Data:            ELFDATA2LSB
56   Type:            ET_REL
57   Machine:         EM_X86_64
58 Sections:        
59   - Name:            .text
60     Type:            SHT_PROGBITS
61     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
62     AddressAlign:    0x0000000000000010
63     Content:         554889E55DC3662E0F1F840000000000554889E55DC3662E0F1F840000000000554889E55DC3
64   - Name:            .debug_str
65     Type:            SHT_PROGBITS
66     Flags:           [ SHF_MERGE, SHF_STRINGS ]
67     AddressAlign:    0x0000000000000001
68     Content:         636C616E672076657273696F6E20332E382E3020287472756E6B203235353339332920286C6C766D2F7472756E6B203235353734352900662E63002F746D7000663100663200663300
69   - Name:            .debug_loc
70     Type:            SHT_PROGBITS
71     AddressAlign:    0x0000000000000001
72     Content:         ''
73   - Name:            .debug_abbrev
74     Type:            SHT_PROGBITS
75     AddressAlign:    0x0000000000000001
76     Content:         011101250E1305030E10171B0E110112060000022E00110112064018030E3A0B3B0B3F19000000
77   - Name:            .debug_info
78     Type:            SHT_PROGBITS
79     AddressAlign:    0x0000000000000001
80     Content:         660000000400000000000801000000000C0000000000000000000000000000000000000000002600000002000000000000000006000000015600000000010102000000000000000006000000015600000000010202000000000000000006000000015600000000010300
81   - Name:            .rela.debug_info
82     Type:            SHT_RELA
83     Link:            .symtab
84     AddressAlign:    0x0000000000000008
85     Info:            .debug_info
86     Relocations:     
87       - Offset:          0x0000000000000006
88         Type:            R_X86_64_32
89       - Offset:          0x000000000000000C
90         Type:            R_X86_64_32
91       - Offset:          0x0000000000000012
92         Type:            R_X86_64_32
93         Addend:          55
94       - Offset:          0x0000000000000016
95         Type:            R_X86_64_32
96       - Offset:          0x000000000000001A
97         Type:            R_X86_64_32
98         Addend:          59
99       - Offset:          0x000000000000001E
100         Type:            R_X86_64_64
101       - Offset:          0x000000000000002B
102         Type:            R_X86_64_64
103       - Offset:          0x0000000000000039
104         Type:            R_X86_64_32
105         Addend:          64
106       - Offset:          0x0000000000000040
107         Type:            R_X86_64_64
108         Addend:          16
109       - Offset:          0x000000000000004E
110         Type:            R_X86_64_32
111         Addend:          67
112       - Offset:          0x0000000000000055
113         Type:            R_X86_64_64
114         Addend:          32
115       - Offset:          0x0000000000000063
116         Type:            R_X86_64_32
117         Addend:          70
118   - Name:            .debug_ranges
119     Type:            SHT_PROGBITS
120     AddressAlign:    0x0000000000000001
121     Content:         ''
122   - Name:            .debug_pubnames
123     Type:            SHT_PROGBITS
124     AddressAlign:    0x0000000000000001
125     Content:         230000000200000000006A0000002A0000006631003F0000006632005400000066330000000000
126   - Name:            .rela.debug_pubnames
127     Type:            SHT_RELA
128     Link:            .symtab
129     AddressAlign:    0x0000000000000008
130     Info:            .debug_pubnames
131     Relocations:     
132       - Offset:          0x0000000000000006
133         Type:            R_X86_64_32
134   - Name:            .comment
135     Type:            SHT_PROGBITS
136     Flags:           [ SHF_MERGE, SHF_STRINGS ]
137     AddressAlign:    0x0000000000000001
138     Content:         00636C616E672076657273696F6E20332E382E3020287472756E6B203235353339332920286C6C766D2F7472756E6B203235353734352900
139   - Name:            .note.GNU-stack
140     Type:            SHT_PROGBITS
141     AddressAlign:    0x0000000000000001
142     Content:         ''
143   - Name:            .eh_frame
144     Type:            SHT_X86_64_UNWIND
145     Flags:           [ SHF_ALLOC ]
146     AddressAlign:    0x0000000000000008
147     Content:         1400000000000000017A5200017810011B0C070890010000180000001C000000000000000600000000410E108602430D060000001800000038000000000000000600000000410E108602430D060000001C00000054000000000000000600000000410E108602430D0600000000000000
148   - Name:            .rela.eh_frame
149     Type:            SHT_RELA
150     Link:            .symtab
151     AddressAlign:    0x0000000000000008
152     Info:            .eh_frame
153     Relocations:     
154       - Offset:          0x0000000000000020
155         Type:            R_X86_64_PC32
156       - Offset:          0x000000000000003C
157         Type:            R_X86_64_PC32
158         Addend:          16
159       - Offset:          0x0000000000000058
160         Type:            R_X86_64_PC32
161         Addend:          32
162   - Name:            .debug_line
163     Type:            SHT_PROGBITS
164     AddressAlign:    0x0000000000000001
165     Content:         4300000002001A0000000101FB0E0D00010101010000000100000100662E630000000000000902000000000000000001050C0A4A0500BB050C0A4A0500BB050C0A4A0202000101
166   - Name:            .rela.debug_line
167     Type:            SHT_RELA
168     Link:            .symtab
169     AddressAlign:    0x0000000000000008
170     Info:            .debug_line
171     Relocations:     
172       - Offset:          0x0000000000000027
173         Type:            R_X86_64_64
174 Symbols:
175   - Name:            f.c
176     Type:            STT_FILE
177   - Type:            STT_SECTION
178     Section:         .text
179   - Type:            STT_SECTION
180     Section:         .debug_str
181   - Type:            STT_SECTION
182     Section:         .debug_abbrev
183   - Type:            STT_SECTION
184     Section:         .debug_info
185   - Type:            STT_SECTION
186     Section:         .debug_line
187   - Name:            f1
188     Type:            STT_FUNC
189     Section:         .text
190     Size:            0x0000000000000006
191     Binding:         STB_GLOBAL
192   - Name:            f2
193     Type:            STT_FUNC
194     Section:         .text
195     Value:           0x0000000000000010
196     Size:            0x0000000000000006
197     Binding:         STB_GLOBAL
198   - Name:            f3
199     Type:            STT_FUNC
200     Section:         .text
201     Value:           0x0000000000000020
202     Size:            0x0000000000000006
203     Binding:         STB_GLOBAL