[llvm] r271849 - [BitCode] Diagnose GEPs with no indices
Filipe Cabecinhas via llvm-commits
llvm-commits at lists.llvm.org
Sun Jun 5 11:43:27 PDT 2016
Author: filcab
Date: Sun Jun 5 13:43:26 2016
New Revision: 271849
URL: http://llvm.org/viewvc/llvm-project?rev=271849&view=rev
Log:
[BitCode] Diagnose GEPs with no indices
Added:
llvm/trunk/test/Bitcode/Inputs/invalid-gep-no-operands.bc
Modified:
llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
llvm/trunk/test/Bitcode/invalid.test
Modified: llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp?rev=271849&r1=271848&r2=271849&view=diff
==============================================================================
--- llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp (original)
+++ llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp Sun Jun 5 13:43:26 2016
@@ -3090,6 +3090,9 @@ std::error_code BitcodeReader::parseCons
return error("Explicit gep operator type does not match pointee type "
"of pointer operand");
+ if (Elts.size() < 1)
+ return error("Invalid gep with no operands");
+
ArrayRef<Constant *> Indices(Elts.begin() + 1, Elts.end());
V = ConstantExpr::getGetElementPtr(PointeeType, Elts[0], Indices,
BitCode ==
Added: llvm/trunk/test/Bitcode/Inputs/invalid-gep-no-operands.bc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Bitcode/Inputs/invalid-gep-no-operands.bc?rev=271849&view=auto
==============================================================================
Binary files llvm/trunk/test/Bitcode/Inputs/invalid-gep-no-operands.bc (added) and llvm/trunk/test/Bitcode/Inputs/invalid-gep-no-operands.bc Sun Jun 5 13:43:26 2016 differ
Modified: llvm/trunk/test/Bitcode/invalid.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Bitcode/invalid.test?rev=271849&r1=271848&r2=271849&view=diff
==============================================================================
--- llvm/trunk/test/Bitcode/invalid.test (original)
+++ llvm/trunk/test/Bitcode/invalid.test Sun Jun 5 13:43:26 2016
@@ -217,3 +217,8 @@ RUN: not llvm-dis -disable-output %p/Inp
RUN: FileCheck --check-prefix=VOID-CONSTANT-TYPE %s
VOID-CONSTANT-TYPE: Invalid constant type
+
+RUN: not llvm-dis -disable-output %p/Inputs/invalid-gep-no-operands.bc 2>&1 | \
+RUN: FileCheck --check-prefix=GEP-NO-OPERANDS %s
+
+GEP-NO-OPERANDS: Invalid gep with no operands
More information about the llvm-commits
mailing list