]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/Bitcode/invalid.test
Vendor import of llvm trunk r351319 (just before the release_80 branch
[FreeBSD/FreeBSD.git] / test / Bitcode / invalid.test
1 RUN: not llvm-dis -disable-output %p/Inputs/invalid-empty.bc 2>&1 | \
2 RUN:   FileCheck --check-prefix=INVALID-EMPTY %s
3 RUN: not llvm-dis -disable-output %p/Inputs/invalid-pr20485.bc 2>&1 | \
4 RUN:   FileCheck --check-prefix=INVALID-ENCODING %s
5 RUN: not llvm-dis -disable-output %p/Inputs/invalid-abbrev.bc 2>&1 | \
6 RUN:   FileCheck --check-prefix=BAD-ABBREV %s
7 RUN: not llvm-dis -disable-output %p/Inputs/invalid-unexpected-eof.bc 2>&1 | \
8 RUN:   FileCheck --check-prefix=UNEXPECTED-EOF %s
9 RUN: not llvm-dis -disable-output %p/Inputs/invalid-bad-abbrev-number.bc 2>&1 | \
10 RUN:   FileCheck --check-prefix=BAD-ABBREV-NUMBER %s
11 RUN: not llvm-dis -disable-output %p/Inputs/invalid-type-table-forward-ref.bc 2>&1 | \
12 RUN:   FileCheck --check-prefix=BAD-TYPE-TABLE-FORWARD-REF %s
13 RUN: not llvm-dis -disable-output %p/Inputs/invalid-bitwidth.bc 2>&1 | \
14 RUN:   FileCheck --check-prefix=BAD-BITWIDTH %s
15 RUN: not llvm-dis -disable-output %p/Inputs/invalid-align.bc  2>&1 | \
16 RUN:   FileCheck --check-prefix=BAD-ALIGN %s
17 RUN: not llvm-dis -disable-output %p/Inputs/invalid-gep-mismatched-explicit-type.bc 2>&1 | \
18 RUN:   FileCheck --check-prefix=MISMATCHED-EXPLICIT-GEP %s
19 RUN: not llvm-dis -disable-output %p/Inputs/invalid-load-mismatched-explicit-type.bc 2>&1 | \
20 RUN:   FileCheck --check-prefix=MISMATCHED-EXPLICIT-LOAD %s
21 RUN: not llvm-dis -disable-output %p/Inputs/invalid-gep-operator-mismatched-explicit-type.bc 2>&1 | \
22 RUN:   FileCheck --check-prefix=MISMATCHED-EXPLICIT-GEP-OPERATOR %s
23 RUN: not llvm-dis -disable-output %p/Inputs/invalid-call-mismatched-explicit-type.bc 2>&1 | \
24 RUN:   FileCheck --check-prefix=MISMATCHED-EXPLICIT-CALL %s
25 RUN: not llvm-dis -disable-output %p/Inputs/invalid-call-non-function-explicit-type.bc 2>&1 | \
26 RUN:   FileCheck --check-prefix=NON-FUNCTION-EXPLICIT-CALL %s
27 RUN: not llvm-dis -disable-output %p/Inputs/invalid-invoke-mismatched-explicit-type.bc 2>&1 | \
28 RUN:   FileCheck --check-prefix=MISMATCHED-EXPLICIT-INVOKE %s
29 RUN: not llvm-dis -disable-output %p/Inputs/invalid-invoke-non-function-explicit-type.bc 2>&1 | \
30 RUN:   FileCheck --check-prefix=NON-FUNCTION-EXPLICIT-INVOKE %s
31
32 INVALID-EMPTY: Invalid bitcode signature
33 INVALID-ENCODING: Invalid encoding
34 BAD-ABBREV: Malformed block
35 UNEXPECTED-EOF: Malformed block
36 BAD-ABBREV-NUMBER: Malformed block
37 BAD-TYPE-TABLE-FORWARD-REF: Invalid TYPE table: Only named structs can be forward referenced
38 BAD-BITWIDTH: Malformed block
39 BAD-ALIGN: Invalid alignment value
40 MISMATCHED-EXPLICIT-GEP: Explicit gep type does not match pointee type of pointer operand
41 MISMATCHED-EXPLICIT-LOAD: Explicit load/store type does not match pointee type of pointer operand
42 MISMATCHED-EXPLICIT-GEP-OPERATOR: Explicit gep operator type does not match pointee type of pointer operand
43 MISMATCHED-EXPLICIT-CALL: Explicit call type does not match pointee type of callee operand
44 NON-FUNCTION-EXPLICIT-CALL: Explicit call type is not a function type
45 MISMATCHED-EXPLICIT-INVOKE: Explicit invoke type does not match pointee type of callee operand
46 NON-FUNCTION-EXPLICIT-INVOKE: Explicit invoke type is not a function type
47
48 RUN: not llvm-dis -disable-output %p/Inputs/invalid-extractval-array-idx.bc 2>&1 | \
49 RUN:   FileCheck --check-prefix=EXTRACT-ARRAY %s
50 RUN: not llvm-dis -disable-output %p/Inputs/invalid-extractval-struct-idx.bc 2>&1 | \
51 RUN:   FileCheck --check-prefix=EXTRACT-STRUCT %s
52 RUN: not llvm-dis -disable-output %p/Inputs/invalid-extractval-too-many-idxs.bc 2>&1 | \
53 RUN:   FileCheck --check-prefix=EXTRACT-IDXS %s
54 RUN: not llvm-dis -disable-output %p/Inputs/invalid-insertval-array-idx.bc 2>&1 | \
55 RUN:   FileCheck --check-prefix=INSERT-ARRAY %s
56 RUN: not llvm-dis -disable-output %p/Inputs/invalid-insertval-struct-idx.bc 2>&1 | \
57 RUN:   FileCheck --check-prefix=INSERT-STRUCT %s
58 RUN: not llvm-dis -disable-output %p/Inputs/invalid-insertval-too-many-idxs.bc 2>&1 | \
59 RUN:   FileCheck --check-prefix=INSERT-IDXS %s
60
61
62 EXTRACT-ARRAY: EXTRACTVAL: Invalid array index
63 EXTRACT-STRUCT: EXTRACTVAL: Invalid struct index
64 EXTRACT-IDXS: EXTRACTVAL: Invalid type
65 INSERT-ARRAY: INSERTVAL: Invalid array index
66 INSERT-STRUCT: INSERTVAL: Invalid struct index
67 INSERT-IDXS: INSERTVAL: Invalid type
68
69 RUN: not llvm-dis -disable-output %p/Inputs/invalid-no-proper-module.bc 2>&1 | \
70 RUN:   FileCheck --check-prefix=NO-MODULE %s
71
72 NO-MODULE: Expected a single module
73
74 RUN: not llvm-dis -disable-output %p/Inputs/invalid-fp-shift.bc 2>&1 | \
75 RUN:   FileCheck --check-prefix=FP-SHIFT %s
76
77 FP-SHIFT: Invalid record
78
79 RUN: not llvm-dis -disable-output %p/Inputs/invalid-abbrev-vbr-size-too-big.bc 2>&1 | \
80 RUN:   FileCheck --check-prefix=HUGE-ABBREV-OP %s
81 RUN: not llvm-dis -disable-output %p/Inputs/invalid-abbrev-fixed-size-too-big.bc 2>&1 | \
82 RUN:   FileCheck --check-prefix=HUGE-ABBREV-OP %s
83
84 HUGE-ABBREV-OP: Fixed or VBR abbrev record with size > MaxChunkData
85
86 RUN: not llvm-dis -disable-output %p/Inputs/invalid-array-type.bc 2>&1 | \
87 RUN:   FileCheck --check-prefix=ARRAY-TYPE %s
88
89 ARRAY-TYPE: Array element type can't be an Array or a Blob
90
91 RUN: not llvm-dis -disable-output %p/Inputs/invalid-non-vector-extractelement.bc 2>&1 | \
92 RUN:   FileCheck --check-prefix=INVALID-TYPE %s
93 RUN: not llvm-dis -disable-output %p/Inputs/invalid-non-vector-insertelement.bc 2>&1 | \
94 RUN:   FileCheck --check-prefix=INVALID-TYPE %s
95 RUN: not llvm-dis -disable-output %p/Inputs/invalid-non-vector-shufflevector.bc 2>&1 | \
96 RUN:   FileCheck --check-prefix=INVALID-TYPE %s
97
98 INVALID-TYPE: Invalid type for value
99
100 RUN: not llvm-dis -disable-output %p/Inputs/invalid-fwdref-type-mismatch.bc 2>&1 | \
101 RUN:   FileCheck --check-prefix=FWDREF-TYPE %s
102
103 FWDREF-TYPE: Invalid record
104
105 RUN: not llvm-dis -disable-output %p/Inputs/invalid-fwdref-type-mismatch-2.bc 2>&1 | \
106 RUN:   FileCheck --check-prefix=FWDREF-TYPE-MISMATCH %s
107
108 FWDREF-TYPE-MISMATCH: Malformed block
109
110 RUN: not llvm-dis -disable-output %p/Inputs/invalid-array-element-type.bc 2>&1 | \
111 RUN:   FileCheck --check-prefix=ELEMENT-TYPE %s
112 RUN: not llvm-dis -disable-output %p/Inputs/invalid-vector-element-type.bc 2>&1 | \
113 RUN:   FileCheck --check-prefix=ELEMENT-TYPE %s
114 RUN: not llvm-dis -disable-output %p/Inputs/invalid-pointer-element-type.bc 2>&1 | \
115 RUN:   FileCheck --check-prefix=ELEMENT-TYPE %s
116
117 ELEMENT-TYPE: Invalid type
118
119 RUN: not llvm-dis -disable-output %p/Inputs/invalid-cast.bc 2>&1 | \
120 RUN:   FileCheck --check-prefix=INVALID-CAST %s
121
122 INVALID-CAST: Invalid cast
123
124 RUN: not llvm-dis -disable-output %p/Inputs/invalid-array-op-not-2nd-to-last.bc 2>&1 | \
125 RUN:   FileCheck --check-prefix=ARRAY-NOT-2LAST %s
126
127 ARRAY-NOT-2LAST: Array op not second to last
128
129 RUN: not llvm-dis -disable-output %p/Inputs/invalid-too-big-fwdref.bc 2>&1 | \
130 RUN:   FileCheck --check-prefix=HUGE-FWDREF %s
131
132 HUGE-FWDREF: Invalid record
133
134 RUN: not llvm-dis -disable-output %p/Inputs/invalid-load-pointer-type.bc 2>&1 | \
135 RUN:   FileCheck --check-prefix=LOAD-BAD-TYPE %s
136
137 LOAD-BAD-TYPE: Load/Store operand is not a pointer type
138
139 RUN: not llvm-dis -disable-output %p/Inputs/invalid-GCTable-overflow.bc 2>&1 | \
140 RUN:   FileCheck --check-prefix=GCTABLE-OFLOW %s
141
142 GCTABLE-OFLOW: Invalid ID
143
144 RUN: not llvm-dis -disable-output %p/Inputs/invalid-insert-0-indices.bc 2>&1 | \
145 RUN:   FileCheck --check-prefix=INSERT-0-IDXS %s
146
147 INSERT-0-IDXS: INSERTVAL: Invalid instruction with 0 indices
148
149 RUN: not llvm-dis -disable-output %p/Inputs/invalid-extract-0-indices.bc 2>&1 | \
150 RUN:   FileCheck --check-prefix=EXTRACT-0-IDXS %s
151
152 EXTRACT-0-IDXS: EXTRACTVAL: Invalid instruction with 0 indices
153
154 RUN: not llvm-dis -disable-output %p/Inputs/invalid-load-ptr-type.bc 2>&1 | \
155 RUN:   FileCheck --check-prefix=BAD-LOAD-PTR-TYPE %s
156
157 BAD-LOAD-PTR-TYPE: Malformed block
158
159 RUN: not llvm-dis -disable-output %p/Inputs/invalid-inserted-value-type-mismatch.bc 2>&1 | \
160 RUN:   FileCheck --check-prefix=INSERT-TYPE-MISMATCH %s
161
162 INSERT-TYPE-MISMATCH: Inserted value type doesn't match aggregate type
163
164 RUN: not llvm-dis -disable-output %p/Inputs/invalid-code-len-width.bc 2>&1 | \
165 RUN:   FileCheck --check-prefix=INVALID-CODELENWIDTH %s
166
167 INVALID-CODELENWIDTH: Malformed block
168
169 RUN: not llvm-dis -disable-output %p/Inputs/invalid-function-argument-type.bc 2>&1 | \
170 RUN:   FileCheck --check-prefix=INVALID-ARGUMENT-TYPE %s
171
172 INVALID-ARGUMENT-TYPE: Invalid function argument type
173
174 RUN: not llvm-dis -disable-output %p/Inputs/invalid-function-comdat-id.bc 2>&1 | \
175 RUN:   FileCheck --check-prefix=INVALID-FCOMDAT-ID %s
176
177 INVALID-FCOMDAT-ID: Malformed block
178
179 RUN: not llvm-dis -disable-output %p/Inputs/invalid-global-var-comdat-id.bc 2>&1 | \
180 RUN:   FileCheck --check-prefix=INVALID-GVCOMDAT-ID %s
181
182 INVALID-GVCOMDAT-ID: Invalid global variable comdat ID
183
184 RUN: not llvm-dis -disable-output %p/Inputs/invalid-abbrev-no-operands.bc 2>&1 | \
185 RUN:   FileCheck --check-prefix=ABBREV-NO-OPS %s
186
187 ABBREV-NO-OPS: Abbrev record with no operands
188
189 RUN: not llvm-dis -disable-output %p/Inputs/invalid-array-operand-encoding.bc 2>&1 | \
190 RUN:   FileCheck --check-prefix=ARRAY-OP-ENC %s
191
192 ARRAY-OP-ENC: Malformed block
193
194 RUN: not llvm-dis -disable-output %p/Inputs/invalid-metadata-not-followed-named-node.bc 2>&1 | \
195 RUN:   FileCheck --check-prefix=META-NOT-FOLLOWED-BY-NAMED-META %s
196
197 META-NOT-FOLLOWED-BY-NAMED-META: Malformed block
198
199 RUN: not llvm-dis -disable-output %p/Inputs/invalid-vector-length.bc 2>&1 | \
200 RUN:   FileCheck --check-prefix=VECTOR-LENGTH %s
201
202 VECTOR-LENGTH: Invalid vector length
203
204 RUN: not llvm-dis -disable-output %p/Inputs/invalid-alias-type-mismatch.bc 2>&1 | \
205 RUN:   FileCheck --check-prefix=ALIAS-TYPE-MISMATCH %s
206
207 ALIAS-TYPE-MISMATCH: Alias and aliasee types don't match
208
209 RUN: not llvm-dis -disable-output %p/Inputs/invalid-no-function-block.bc 2>&1 | \
210 RUN:   FileCheck --check-prefix=NO-FUNCTION-BLOCK %s
211
212 NO-FUNCTION-BLOCK: Trying to materialize functions before seeing function blocks (Producer: 'LLVM3.8.0git' Reader: 'LLVM
213
214 RUN: not llvm-dis -disable-output %p/Inputs/invalid-name-with-0-byte.bc 2>&1 | \
215 RUN:   FileCheck --check-prefix=NAME-WITH-0 %s
216
217 NAME-WITH-0: Malformed block
218
219 RUN: not llvm-dis -disable-output %p/Inputs/invalid-void-constant.bc 2>&1 | \
220 RUN:   FileCheck --check-prefix=VOID-CONSTANT-TYPE %s
221
222 VOID-CONSTANT-TYPE: Invalid constant type
223
224 RUN: not llvm-dis -disable-output %p/Inputs/invalid-gep-no-operands.bc 2>&1 | \
225 RUN:   FileCheck --check-prefix=GEP-NO-OPERANDS %s
226
227 GEP-NO-OPERANDS: Invalid gep with no operands
228
229 RUN: not llvm-dis -disable-output %p/Inputs/invalid-nonpointer-storeatomic.bc 2>&1 | \
230 RUN:   FileCheck --check-prefix=NONPOINTER-STOREATOMIC %s
231
232 NONPOINTER-STOREATOMIC: Invalid record
233
234 RUN: not llvm-dis -disable-output %p/Inputs/invalid-nonpointer-atomicrmw.bc 2>&1 | \
235 RUN:   FileCheck --check-prefix=NONPOINTER-ATOMICRMW %s
236
237 NONPOINTER-ATOMICRMW: Invalid record