[llvm] c1a9dd9 - [AbstractCallSite] Check that callback callee index is within call arguments
Sergey Dmitriev via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 14 09:24:18 PDT 2020
Author: Sergey Dmitriev
Date: 2020-04-14T09:24:00-07:00
New Revision: c1a9dd9aea498dd78d6583f29f15a690ddd5466a
URL: https://github.com/llvm/llvm-project/commit/c1a9dd9aea498dd78d6583f29f15a690ddd5466a
DIFF: https://github.com/llvm/llvm-project/commit/c1a9dd9aea498dd78d6583f29f15a690ddd5466a.diff
LOG: [AbstractCallSite] Check that callback callee index is within call arguments
Summary:
AbstractCallSite::getCallbackUses() does not check that callback callee index from
the callback metadata does not exceed the total number of call arguments. This patch
add such validation check.
Reviewers: jdoerfert, sstefan1
Reviewed By: jdoerfert
Subscribers: hiraditya, arphaman, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D78112
Added:
Modified:
llvm/lib/IR/AbstractCallSite.cpp
llvm/test/Transforms/OpenMP/rtf_type_checking.ll
Removed:
################################################################################
diff --git a/llvm/lib/IR/AbstractCallSite.cpp b/llvm/lib/IR/AbstractCallSite.cpp
index 19b35665c3fa..e415c48fefe5 100644
--- a/llvm/lib/IR/AbstractCallSite.cpp
+++ b/llvm/lib/IR/AbstractCallSite.cpp
@@ -48,7 +48,8 @@ void AbstractCallSite::getCallbackUses(ImmutableCallSite ICS,
auto *CBCalleeIdxAsCM = cast<ConstantAsMetadata>(OpMD->getOperand(0));
uint64_t CBCalleeIdx =
cast<ConstantInt>(CBCalleeIdxAsCM->getValue())->getZExtValue();
- CBUses.push_back(ICS.arg_begin() + CBCalleeIdx);
+ if (CBCalleeIdx < ICS.arg_size())
+ CBUses.push_back(ICS.arg_begin() + CBCalleeIdx);
}
}
diff --git a/llvm/test/Transforms/OpenMP/rtf_type_checking.ll b/llvm/test/Transforms/OpenMP/rtf_type_checking.ll
index 57c09bcc7e06..6c392e75b4c4 100644
--- a/llvm/test/Transforms/OpenMP/rtf_type_checking.ll
+++ b/llvm/test/Transforms/OpenMP/rtf_type_checking.ll
@@ -1,4 +1,5 @@
; RUN: opt -S -openmpopt -stats < %s 2>&1 | FileCheck %s
+; RUN: opt -S -attributor -attributor-disable=false -openmpopt -stats < %s 2>&1 | FileCheck %s
; REQUIRES: asserts
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
More information about the llvm-commits
mailing list