[Alignment][NFC] Instructions::getLoadStoreAlignment
[llvm-complete.git] / test / tools / llvm-dwarfdump / X86 / debug_line_invalid.test
blob04bf8a7c8360c87749f62a3b68c78dde23b6d4ec
1 # Test the different error cases in the debug line parsing and how they prevent
2 # or don't prevent further dumping of section contents.
4 # RUN: llvm-mc -triple x86_64-pc-linux %S/Inputs/debug_line_reserved_length.s -filetype=obj -o %t-reserved.o
5 # RUN: llvm-dwarfdump -debug-line %t-reserved.o 2> %t-reserved.err | FileCheck %s --check-prefixes=FIRST,FATAL
6 # RUN: FileCheck %s --input-file=%t-reserved.err --check-prefix=RESERVED
7 # RUN: llvm-dwarfdump -debug-line %t-reserved.o -verbose 2> %t-reserved-verbose.err | FileCheck %s --check-prefixes=FIRST,FATAL
8 # RUN: FileCheck %s --input-file=%t-reserved-verbose.err --check-prefix=RESERVED
10 # We should still produce warnings for malformed tables after the specified unit.
11 # RUN: llvm-dwarfdump -debug-line=0 %t-reserved.o 2> %t-reserved-off-first.err | FileCheck %s --check-prefixes=FIRST,NOLATER
12 # RUN: FileCheck %s --input-file=%t-reserved-off-first.err --check-prefix=RESERVED
14 # Stop looking for the specified unit, if a fatally-bad prologue is detected.
15 # RUN: llvm-dwarfdump -debug-line=0x4b %t-reserved.o 2> %t-reserved-off-last.err | FileCheck %s --check-prefixes=NOFIRST,NOLATER
16 # RUN: FileCheck %s --input-file=%t-reserved-off-last.err --check-prefix=RESERVED
18 # RUN: llvm-mc -triple x86_64-pc-linux %S/Inputs/debug_line_malformed.s -filetype=obj -o %t-malformed.o
19 # RUN: llvm-dwarfdump -debug-line %t-malformed.o 2> %t-malformed.err | FileCheck %s --check-prefixes=FIRST,NONFATAL
20 # RUN: FileCheck %s --input-file=%t-malformed.err --check-prefixes=ALL,OTHER
21 # RUN: llvm-dwarfdump -debug-line %t-malformed.o -verbose 2> %t-malformed-verbose.err | FileCheck %s --check-prefixes=FIRST,NONFATAL
22 # RUN: FileCheck %s --input-file=%t-malformed-verbose.err --check-prefixes=ALL,OTHER
24 # RUN: llvm-dwarfdump -debug-line=0 %t-malformed.o 2> %t-malformed-off-first.err | FileCheck %s --check-prefixes=FIRST,NOLATER
25 # RUN: FileCheck %s --input-file=%t-malformed-off-first.err --check-prefix=ALL
27 # Don't stop looking for the later unit if non-fatal issues are found.
28 # RUN: llvm-dwarfdump -debug-line=0x271 %t-malformed.o 2> %t-malformed-off-last.err | FileCheck %s --check-prefixes=LASTONLY
29 # RUN: FileCheck %s --input-file=%t-malformed-off-last.err --check-prefix=ALL
31 # FIRST: debug_line[0x00000000]
32 # FIRST: 0x000000000badbeef {{.*}} end_sequence
33 # NOFIRST-NOT: debug_line[0x00000000]
34 # NOFIRST-NOT: 0x000000000badbeef {{.*}} end_sequence
35 # NOLATER-NOT: debug_line[{{.*}}]
36 # NOLATER-NOT: end_sequence
38 # For fatal issues, the following table(s) should not be dumped.
39 # FATAL: debug_line[0x00000048]
40 # FATAL-NEXT: Line table prologue
41 # FATAL-NEXT: total_length: 0xfffffffe
42 # FATAL-NOT: debug_line
44 # For non-fatal prologue issues, the table prologue should be dumped, and any subsequent tables should also be.
45 # NONFATAL: debug_line[0x00000048]
46 # NONFATAL-NEXT: Line table prologue
47 # NONFATAL-NOT: Address
48 # NONFATAL: debug_line[0x0000004e]
49 # NONFATAL-NEXT: Line table prologue
50 # NONFATAL-NOT: Address
51 # NONFATAL: debug_line[0x00000054]
52 # NONFATAL-NEXT: Line table prologue
53 # NONFATAL-NOT: Address
54 # NONFATAL: debug_line[0x00000073]
55 # NONFATAL-NEXT: Line table prologue
56 # NONFATAL-NOT: Address
57 # NONFATAL: debug_line[0x000000ad]
58 # NONFATAL-NEXT: Line table prologue
59 # NONFATAL-NOT: Address
60 # NONFATAL: debug_line[0x000000e7]
61 # Dumping prints the line table prologue and any valid operations up to the point causing the problem.
62 # NONFATAL-NEXT: Line table prologue
63 # NONFATAL: 0x00000000abbadaba {{.*}} end_sequence
64 # NONFATAL-NOT: is_stmt
66 # For minor issues, we can dump the table.
67 # NONFATAL: debug_line[0x0000013d]
68 # NONFATAL-NEXT: Line table prologue
69 # NONFATAL-NOT: debug_line[{{.*}}]
70 # NONFATAL: 0x00000000deadfade {{.*}}
71 # NONFATAL: debug_line[0x00000183]
72 # NONFATAL-NEXT: Line table prologue
73 # NONFATAL: debug_line[0x00000271]
74 # NONFATAL-NOT: debug_line[{{.*}}]
75 # NONFATAL: 0x00000000cafebabe {{.*}} end_sequence
76 # NONFATAL-NOT: debug_line[{{.*}}]
78 # LASTONLY-NOT: debug_line[{{.*}}]
79 # LASTONLY: debug_line[0x00000271]
80 # LASTONLY: 0x00000000cafebabe {{.*}} end_sequence
82 # RESERVED: warning: parsing line table prologue at offset 0x00000048 unsupported reserved unit length found of value 0xfffffffe
84 # MD5: warning: parsing line table prologue at 0x00000000 found an invalid directory or file table description at 0x0000003b
85 # MD5-NEXT: warning: failed to parse file entry because the MD5 hash is invalid
87 # ALL-NOT:  warning:
88 # ALL:      warning: parsing line table prologue at offset 0x00000048 found unsupported version 0x00
89 # ALL-NEXT: warning: parsing line table prologue at offset 0x0000004e found unsupported version 0x01
90 # ALL-NEXT: warning: parsing line table prologue at 0x00000054 found an invalid directory or file table description at 0x00000073
91 # ALL-NEXT: warning: failed to parse entry content descriptions because no path was found
92 # FIXME - The latter offset in the next line should be 0xad. The filename parsing code does not notice a missing terminating byte.
93 # ALL-NEXT: warning: parsing line table prologue at 0x00000073 should have ended at 0x000000ab but it ended at 0x000000ac
94 # ALL-NEXT: warning: parsing line table prologue at 0x000000ad should have ended at 0x000000e8 but it ended at 0x000000e7
95 # OTHER-NEXT: warning: unexpected line op length at offset 0x0000012e expected 0x02 found 0x01
96 # OTHER-NEXT: warning: last sequence in debug line table is not terminated!
97 # ALL-NEXT: warning: parsing line table prologue at 0x00000183 found an invalid directory or file table description at 0x000001a2
98 # ALL-NEXT: warning: failed to parse entry content descriptions at offset 0x000001a2 because offset extends beyond the prologue end at offset 0x0000019e
99 # ALL-NEXT: warning: parsing line table prologue at 0x000001be found an invalid directory or file table description at 0x000001eb
100 # ALL-NEXT: warning: failed to parse file entry at offset 0x000001eb because offset extends beyond the prologue end at offset 0x000001e9
101 # ALL-NEXT: warning: parsing line table prologue at 0x000001f9 found an invalid directory or file table description at 0x0000021b
102 # ALL-NEXT: warning: failed to parse directory entry at offset 0x0000021b because offset extends beyond the prologue end at offset 0x0000021b
103 # ALL-NEXT: warning: parsing line table prologue at 0x00000234 found an invalid directory or file table description at 0x00000269
104 # ALL-NEXT: warning: failed to parse file entry because the MD5 hash is invalid
105 # ALL-NOT:  warning: