1RUN: export LSAN_OPTIONS=detect_leaks=0 2RUN: not llvm-dis -disable-output %p/Inputs/invalid-empty.bc 2>&1 | \ 3RUN: FileCheck --check-prefix=INVALID-EMPTY %s 4RUN: not llvm-dis -disable-output %p/Inputs/invalid-pr20485.bc 2>&1 | \ 5RUN: FileCheck --check-prefix=INVALID-ENCODING %s 6RUN: not llvm-dis -disable-output %p/Inputs/invalid-abbrev.bc 2>&1 | \ 7RUN: FileCheck --check-prefix=BAD-ABBREV %s 8RUN: not llvm-dis -disable-output %p/Inputs/invalid-unexpected-eof.bc 2>&1 | \ 9RUN: FileCheck --check-prefix=UNEXPECTED-EOF %s 10RUN: not llvm-dis -disable-output %p/Inputs/invalid-bad-abbrev-number.bc 2>&1 | \ 11RUN: FileCheck --check-prefix=BAD-ABBREV-NUMBER %s 12RUN: not llvm-dis -disable-output %p/Inputs/invalid-type-table-forward-ref.bc 2>&1 | \ 13RUN: FileCheck --check-prefix=BAD-TYPE-TABLE-FORWARD-REF %s 14RUN: not llvm-dis -disable-output %p/Inputs/invalid-bitwidth.bc 2>&1 | \ 15RUN: FileCheck --check-prefix=BAD-BITWIDTH %s 16RUN: not llvm-dis -disable-output %p/Inputs/invalid-align.bc 2>&1 | \ 17RUN: FileCheck --check-prefix=BAD-ALIGN %s 18RUN: not llvm-dis -disable-output %p/Inputs/invalid-call-non-function-explicit-type.bc 2>&1 | \ 19RUN: FileCheck --check-prefix=NON-FUNCTION-EXPLICIT-CALL %s 20RUN: not llvm-dis -disable-output %p/Inputs/invalid-invoke-mismatched-explicit-type.bc 2>&1 | \ 21RUN: FileCheck --check-prefix=MISMATCHED-EXPLICIT-INVOKE %s 22RUN: not llvm-dis -disable-output %p/Inputs/invalid-invoke-non-function-explicit-type.bc 2>&1 | \ 23RUN: FileCheck --check-prefix=NON-FUNCTION-EXPLICIT-INVOKE %s 24 25INVALID-EMPTY: error: file too small to contain bitcode header 26INVALID-ENCODING: Invalid encoding 27BAD-ABBREV: error: can't skip to bit 28UNEXPECTED-EOF: error: can't skip to bit 29BAD-ABBREV-NUMBER: error: can't skip to bit 30BAD-TYPE-TABLE-FORWARD-REF: Invalid TYPE table: Only named structs can be forward referenced 31BAD-BITWIDTH: error: can't skip to bit 32BAD-ALIGN: Invalid alignment value 33NON-FUNCTION-EXPLICIT-CALL: Explicit call type is not a function type 34MISMATCHED-EXPLICIT-INVOKE: Insufficient operands to call 35NON-FUNCTION-EXPLICIT-INVOKE: Explicit invoke type is not a function type 36 37RUN: not llvm-dis -disable-output %p/Inputs/invalid-extractval-array-idx.bc 2>&1 | \ 38RUN: FileCheck --check-prefix=EXTRACT-ARRAY %s 39RUN: not llvm-dis -disable-output %p/Inputs/invalid-extractval-struct-idx.bc 2>&1 | \ 40RUN: FileCheck --check-prefix=EXTRACT-STRUCT %s 41RUN: not llvm-dis -disable-output %p/Inputs/invalid-extractval-too-many-idxs.bc 2>&1 | \ 42RUN: FileCheck --check-prefix=EXTRACT-IDXS %s 43RUN: not llvm-dis -disable-output %p/Inputs/invalid-insertval-array-idx.bc 2>&1 | \ 44RUN: FileCheck --check-prefix=INSERT-ARRAY %s 45RUN: not llvm-dis -disable-output %p/Inputs/invalid-insertval-struct-idx.bc 2>&1 | \ 46RUN: FileCheck --check-prefix=INSERT-STRUCT %s 47RUN: not llvm-dis -disable-output %p/Inputs/invalid-insertval-too-many-idxs.bc 2>&1 | \ 48RUN: FileCheck --check-prefix=INSERT-IDXS %s 49 50 51EXTRACT-ARRAY: EXTRACTVAL: Invalid array index 52EXTRACT-STRUCT: EXTRACTVAL: Invalid struct index 53EXTRACT-IDXS: EXTRACTVAL: Invalid type 54INSERT-ARRAY: INSERTVAL: Invalid array index 55INSERT-STRUCT: INSERTVAL: Invalid struct index 56INSERT-IDXS: INSERTVAL: Invalid type 57 58RUN: not llvm-dis -disable-output %p/Inputs/invalid-fp-shift.bc 2>&1 | \ 59RUN: FileCheck --check-prefix=FP-SHIFT %s 60 61FP-SHIFT: Invalid record 62 63RUN: not llvm-dis -disable-output %p/Inputs/invalid-abbrev-vbr-size-too-big.bc 2>&1 | \ 64RUN: FileCheck --check-prefix=HUGE-ABBREV-OP %s 65RUN: not llvm-dis -disable-output %p/Inputs/invalid-abbrev-fixed-size-too-big.bc 2>&1 | \ 66RUN: FileCheck --check-prefix=HUGE-ABBREV-OP %s 67 68HUGE-ABBREV-OP: Fixed or VBR abbrev record with size > MaxChunkData 69 70RUN: not llvm-dis -disable-output %p/Inputs/invalid-array-type.bc 2>&1 | \ 71RUN: FileCheck --check-prefix=ARRAY-TYPE %s 72 73ARRAY-TYPE: Array element type can't be an Array or a Blob 74 75RUN: not llvm-dis -disable-output %p/Inputs/invalid-non-vector-extractelement.bc 2>&1 | \ 76RUN: FileCheck --check-prefix=INVALID-TYPE %s 77RUN: not llvm-dis -disable-output %p/Inputs/invalid-non-vector-insertelement.bc 2>&1 | \ 78RUN: FileCheck --check-prefix=INVALID-TYPE %s 79RUN: not llvm-dis -disable-output %p/Inputs/invalid-non-vector-shufflevector.bc 2>&1 | \ 80RUN: FileCheck --check-prefix=INVALID-TYPE %s 81 82INVALID-TYPE: Invalid type for value 83 84RUN: not llvm-dis -disable-output %p/Inputs/invalid-fwdref-type-mismatch.bc 2>&1 | \ 85RUN: FileCheck --check-prefix=FWDREF-TYPE %s 86 87FWDREF-TYPE: Invalid record 88 89RUN: not llvm-dis -disable-output %p/Inputs/invalid-fwdref-type-mismatch-2.bc 2>&1 | \ 90RUN: FileCheck --check-prefix=FWDREF-TYPE-MISMATCH %s 91 92FWDREF-TYPE-MISMATCH: Malformed block 93 94RUN: not llvm-dis -disable-output %p/Inputs/invalid-array-element-type.bc 2>&1 | \ 95RUN: FileCheck --check-prefix=ELEMENT-TYPE %s 96RUN: not llvm-dis -disable-output %p/Inputs/invalid-vector-element-type.bc 2>&1 | \ 97RUN: FileCheck --check-prefix=ELEMENT-TYPE %s 98RUN: not llvm-dis -disable-output %p/Inputs/invalid-pointer-element-type.bc 2>&1 | \ 99RUN: FileCheck --check-prefix=ELEMENT-TYPE %s 100 101ELEMENT-TYPE: Invalid type 102 103RUN: not llvm-dis -disable-output %p/Inputs/invalid-cast.bc 2>&1 | \ 104RUN: FileCheck --check-prefix=INVALID-CAST %s 105 106INVALID-CAST: Invalid cast 107 108RUN: not llvm-dis -disable-output %p/Inputs/invalid-array-op-not-2nd-to-last.bc 2>&1 | \ 109RUN: FileCheck --check-prefix=ARRAY-NOT-2LAST %s 110 111ARRAY-NOT-2LAST: Array op not second to last 112 113RUN: not llvm-dis -disable-output %p/Inputs/invalid-too-big-fwdref.bc 2>&1 | \ 114RUN: FileCheck --check-prefix=HUGE-FWDREF %s 115 116HUGE-FWDREF: Invalid record 117 118RUN: not llvm-dis -disable-output %p/Inputs/invalid-load-pointer-type.bc 2>&1 | \ 119RUN: FileCheck --check-prefix=LOAD-BAD-TYPE %s 120 121LOAD-BAD-TYPE: Load operand is not a pointer type 122 123RUN: not llvm-dis -disable-output %p/Inputs/invalid-GCTable-overflow.bc 2>&1 | \ 124RUN: FileCheck --check-prefix=GCTABLE-OFLOW %s 125 126GCTABLE-OFLOW: Invalid ID 127 128RUN: not llvm-dis -disable-output %p/Inputs/invalid-insert-0-indices.bc 2>&1 | \ 129RUN: FileCheck --check-prefix=INSERT-0-IDXS %s 130 131INSERT-0-IDXS: INSERTVAL: Invalid instruction with 0 indices 132 133RUN: not llvm-dis -disable-output %p/Inputs/invalid-extract-0-indices.bc 2>&1 | \ 134RUN: FileCheck --check-prefix=EXTRACT-0-IDXS %s 135 136EXTRACT-0-IDXS: EXTRACTVAL: Invalid instruction with 0 indices 137 138RUN: not llvm-dis -disable-output %p/Inputs/invalid-load-ptr-type.bc 2>&1 | \ 139RUN: FileCheck --check-prefix=BAD-LOAD-PTR-TYPE %s 140 141BAD-LOAD-PTR-TYPE: error: can't skip to bit 142 143RUN: not llvm-dis -disable-output %p/Inputs/invalid-inserted-value-type-mismatch.bc 2>&1 | \ 144RUN: FileCheck --check-prefix=INSERT-TYPE-MISMATCH %s 145 146INSERT-TYPE-MISMATCH: Inserted value type doesn't match aggregate type 147 148RUN: not llvm-dis -disable-output %p/Inputs/invalid-code-len-width.bc 2>&1 | \ 149RUN: FileCheck --check-prefix=INVALID-CODELENWIDTH %s 150 151INVALID-CODELENWIDTH: error: can't skip to bit 152 153RUN: not llvm-dis -disable-output %p/Inputs/invalid-function-argument-type.bc 2>&1 | \ 154RUN: FileCheck --check-prefix=INVALID-ARGUMENT-TYPE %s 155 156INVALID-ARGUMENT-TYPE: Invalid function argument type 157 158RUN: not llvm-dis -disable-output %p/Inputs/invalid-function-comdat-id.bc 2>&1 | \ 159RUN: FileCheck --check-prefix=INVALID-FCOMDAT-ID %s 160 161INVALID-FCOMDAT-ID: Malformed block 162 163RUN: not llvm-dis -disable-output %p/Inputs/invalid-global-var-comdat-id.bc 2>&1 | \ 164RUN: FileCheck --check-prefix=INVALID-GVCOMDAT-ID %s 165 166INVALID-GVCOMDAT-ID: Invalid global variable comdat ID 167 168RUN: not llvm-dis -disable-output %p/Inputs/invalid-abbrev-no-operands.bc 2>&1 | \ 169RUN: FileCheck --check-prefix=ABBREV-NO-OPS %s 170 171ABBREV-NO-OPS: Abbrev record with no operands 172 173RUN: not llvm-dis -disable-output %p/Inputs/invalid-array-operand-encoding.bc 2>&1 | \ 174RUN: FileCheck --check-prefix=ARRAY-OP-ENC %s 175 176ARRAY-OP-ENC: Malformed block 177 178RUN: not llvm-dis -disable-output %p/Inputs/invalid-metadata-not-followed-named-node.bc 2>&1 | \ 179RUN: FileCheck --check-prefix=META-NOT-FOLLOWED-BY-NAMED-META %s 180 181META-NOT-FOLLOWED-BY-NAMED-META: Malformed block 182 183RUN: not llvm-dis -disable-output %p/Inputs/invalid-vector-length.bc 2>&1 | \ 184RUN: FileCheck --check-prefix=VECTOR-LENGTH %s 185 186VECTOR-LENGTH: Invalid vector length 187 188RUN: not llvm-dis -disable-output %p/Inputs/invalid-alias-type-mismatch.bc 2>&1 | \ 189RUN: FileCheck --check-prefix=ALIAS-TYPE-MISMATCH %s 190 191ALIAS-TYPE-MISMATCH: Insufficient function protos 192 193RUN: not llvm-dis -disable-output %p/Inputs/invalid-no-function-block.bc 2>&1 | \ 194RUN: FileCheck --check-prefix=NO-FUNCTION-BLOCK %s 195 196NO-FUNCTION-BLOCK: Trying to materialize functions before seeing function blocks (Producer: 'LLVM3.8.0git' Reader: 'LLVM 197 198RUN: not llvm-dis -disable-output %p/Inputs/invalid-name-with-0-byte.bc 2>&1 | \ 199RUN: FileCheck --check-prefix=NAME-WITH-0 %s 200 201NAME-WITH-0: Malformed block 202 203RUN: not llvm-dis -disable-output %p/Inputs/invalid-void-constant.bc 2>&1 | \ 204RUN: FileCheck --check-prefix=VOID-CONSTANT-TYPE %s 205 206VOID-CONSTANT-TYPE: Invalid constant type 207 208RUN: not llvm-dis -disable-output %p/Inputs/invalid-gep-no-operands.bc 2>&1 | \ 209RUN: FileCheck --check-prefix=GEP-NO-OPERANDS %s 210 211GEP-NO-OPERANDS: Constant GEP record must have at least two elements 212 213RUN: not llvm-dis -disable-output %p/Inputs/invalid-constant-gep.bc 2>&1 | \ 214RUN: FileCheck --check-prefix=INVALID-CONSTANT-GEP %s 215 216INVALID-CONSTANT-GEP: Constant GEP record must have at least two elements 217 218RUN: not llvm-dis -disable-output %p/Inputs/invalid-nonpointer-storeatomic.bc 2>&1 | \ 219RUN: FileCheck --check-prefix=NONPOINTER-STOREATOMIC %s 220 221NONPOINTER-STOREATOMIC: Invalid record 222 223RUN: not llvm-dis -disable-output %p/Inputs/invalid-nonpointer-atomicrmw.bc 2>&1 | \ 224RUN: FileCheck --check-prefix=NONPOINTER-ATOMICRMW %s 225 226NONPOINTER-ATOMICRMW: Invalid record 227 228RUN: not llvm-dis -disable-output %p/Inputs/invalid-fcmp-opnum.bc 2>&1 | \ 229RUN: FileCheck --check-prefix=INVALID-FCMP-OPNUM %s 230 231INVALID-FCMP-OPNUM: Invalid record: operand number exceeded available operands 232 233RUN: not llvm-dis -disable-output %p/Inputs/invalid-cmpxchg-ordering.bc 2>&1 | \ 234RUN: FileCheck --check-prefix=CMPXCHG-ORDERING %s 235RUN: not llvm-dis -disable-output %p/Inputs/invalid-cmpxchg-ordering-2.bc 2>&1 | \ 236RUN: FileCheck --check-prefix=CMPXCHG-ORDERING %s 237RUN: not llvm-dis -disable-output %p/Inputs/invalid-cmpxchg-ordering-3.bc 2>&1 | \ 238RUN: FileCheck --check-prefix=CMPXCHG-ORDERING %s 239RUN: not llvm-dis -disable-output %p/Inputs/invalid-cmpxchg-ordering-4.bc 2>&1 | \ 240RUN: FileCheck --check-prefix=CMPXCHG-ORDERING %s 241 242CMPXCHG-ORDERING: Invalid cmpxchg {{failure|success}} ordering 243 244RUN: not llvm-dis -disable-output %p/Inputs/invalid-abbrev-number.bc 2>&1 | \ 245RUN: FileCheck --check-prefix=INVALID-ABBREV-NUMBER %s 246 247INVALID-ABBREV-NUMBER: Invalid abbrev number 248 249RUN: not llvm-dis -disable-output %p/Inputs/invalid-attribute-group-entry.bc 2>&1 | \ 250RUN: FileCheck --check-prefix=INVALID-ATTRIBUTE-GROUP-ENTRY %s 251 252INVALID-ATTRIBUTE-GROUP-ENTRY: Invalid attribute group entry 253 254RUN: not llvm-dis -disable-output %p/Inputs/unterminated-blob.bc 2>&1 | \ 255RUN: FileCheck --check-prefix=UNTERMINATED-BLOB %s 256 257UNTERMINATED-BLOB: Blob ends too soon 258 259RUN: not llvm-dis -disable-output %p/Inputs/invalid-value-symbol-table.bc 2>&1 | \ 260RUN: FileCheck --check-prefix=INVALID-VALUE-SYMBOL-TABLE %s 261 262INVALID-VALUE-SYMBOL-TABLE: Invalid value reference in symbol table 263 264RUN: not llvm-dis -disable-output %p/Inputs/unterminated-vbr.bc 2>&1 | \ 265RUN: FileCheck --check-prefix=UNTERMINATED-VBR %s 266 267UNTERMINATED-VBR: Failed to read size: Unterminated VBR 268 269RUN: not llvm-dis -disable-output %p/Inputs/comdat-name-too-large.bc 2>&1 | \ 270RUN: FileCheck --check-prefix=COMDAT-NAME-TOO-LARGE %s 271 272COMDAT-NAME-TOO-LARGE: Comdat name size too large 273 274RUN: not llvm-dis -disable-output %p/Inputs/invalid-chunk-size.bc 2>&1 | \ 275RUN: FileCheck --check-prefix=INVALID-CHUNK-SIZE %s 276 277INVALID-CHUNK-SIZE: Fixed or VBR abbrev record with size > MaxChunkData 278 279RUN: not llvm-dis -disable-output %p/Inputs/invalid-diimportedentity-record.bc 2>&1 | \ 280RUN: FileCheck --check-prefix=INVALID-DIIMPORTEDENTITY-RECORD %s 281 282INVALID-DIIMPORTEDENTITY-RECORD: Invalid DIImportedEntity record 283 284RUN: not llvm-dis -disable-output %p/Inputs/invalid-forward-declare.bc 2>&1 | \ 285RUN: FileCheck --check-prefix=INVALID-FORWARD-DECLARE %s 286 287INVALID-FORWARD-DECLARE: Assigned value does not match type of forward declaration 288 289RUN: not llvm-dis -disable-output %p/Inputs/invalid-initializer.bc 2>&1 | \ 290RUN: FileCheck --check-prefix=INVALID-INITIALIZER %s 291 292INVALID-INITIALIZER: Invalid record 293