diff options
-rw-r--r-- | lib/Bitcode/Reader/BitcodeReader.cpp | 6 | ||||
-rw-r--r-- | test/Bitcode/invalid.ll | 7 | ||||
-rw-r--r-- | test/Bitcode/invalid.ll.bc | bin | 0 -> 332 bytes |
3 files changed, 8 insertions, 5 deletions
diff --git a/lib/Bitcode/Reader/BitcodeReader.cpp b/lib/Bitcode/Reader/BitcodeReader.cpp index e408cd1..1661990 100644 --- a/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/lib/Bitcode/Reader/BitcodeReader.cpp @@ -623,11 +623,7 @@ bool BitcodeReader::ParseAttrKind(uint64_t Code, Attribute::AttrKind *Kind) { *Kind = Attribute::ZExt; return false; default: - std::string Buf; - raw_string_ostream fmt(Buf); - fmt << "Unknown attribute kind (" << Code << ")"; - fmt.flush(); - return Error(Buf.c_str()); + return Error("Unknown attribute kind"); } } diff --git a/test/Bitcode/invalid.ll b/test/Bitcode/invalid.ll new file mode 100644 index 0000000..49189bf --- /dev/null +++ b/test/Bitcode/invalid.ll @@ -0,0 +1,7 @@ +; RUN: not llvm-dis < %s.bc 2>&1 | FileCheck %s + +; CHECK: llvm-dis: Unknown attribute kind + +; invalid.ll.bc has an invalid attribute number. +; The test checks that LLVM reports the error and doesn't access freed memory +; in doing so. diff --git a/test/Bitcode/invalid.ll.bc b/test/Bitcode/invalid.ll.bc Binary files differnew file mode 100644 index 0000000..b8b1c47 --- /dev/null +++ b/test/Bitcode/invalid.ll.bc |