mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-23 00:20:25 +00:00
Add hasByValArgument() to test if a call instruction has byval argument(s).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45913 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -404,6 +404,17 @@ bool CallInst::isStructReturn() const {
|
||||
return paramHasAttr(1, ParamAttr::StructRet);
|
||||
}
|
||||
|
||||
/// @brief Determine if any call argument is an aggregate passed by value.
|
||||
bool CallInst::hasByValArgument() const {
|
||||
const Value *Callee = getCalledValue();
|
||||
const PointerType *CalleeTy = cast<PointerType>(Callee->getType());
|
||||
const FunctionType *FTy = cast<FunctionType>(CalleeTy->getElementType());
|
||||
for (unsigned i = 1, e = FTy->getNumParams()+1; i != e; ++i)
|
||||
if (paramHasAttr(i, ParamAttr::ByVal))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
void CallInst::setDoesNotThrow(bool doesNotThrow) {
|
||||
const ParamAttrsList *PAL = getParamAttrs();
|
||||
if (doesNotThrow)
|
||||
|
||||
Reference in New Issue
Block a user