summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Bitcode/Reader/BitcodeReader.cpp6
-rw-r--r--llvm/test/Bitcode/invalid.ll7
-rw-r--r--llvm/test/Bitcode/invalid.ll.bcbin0 -> 332 bytes
3 files changed, 8 insertions, 5 deletions
diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
index e408cd1f981..1661990f065 100644
--- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
+++ b/llvm/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/llvm/test/Bitcode/invalid.ll b/llvm/test/Bitcode/invalid.ll
new file mode 100644
index 00000000000..49189bf8c06
--- /dev/null
+++ b/llvm/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/llvm/test/Bitcode/invalid.ll.bc b/llvm/test/Bitcode/invalid.ll.bc
new file mode 100644
index 00000000000..b8b1c47b6a3
--- /dev/null
+++ b/llvm/test/Bitcode/invalid.ll.bc
Binary files differ
OpenPOWER on IntegriCloud