aboutsummaryrefslogtreecommitdiff
path: root/lib/Bitcode
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Bitcode')
-rw-r--r--lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp b/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp
index 1e524db3de..bff4afb0c3 100644
--- a/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp
+++ b/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp
@@ -1643,6 +1643,10 @@ bool NaClBitcodeReader::ParseFunctionBody(Function *F) {
Value *Arg;
if (popValue(Record, &OpNum, NextValueNo, &Arg))
Error("Invalid argument in CALL record");
+ if (BitCode == naclbitc::FUNC_CODE_INST_CALL_INDIRECT &&
+ FTy->getParamType(Index)->isPointerTy()) {
+ return Error("Pointer arguments not allowed for indirect calls");
+ }
Arg = ConvertOpToType(Arg, FTy->getParamType(Index), CurBBNo);
Args.push_back(Arg);
}