forked from OSchip/llvm-project
Add asserts that the function signature matches the other arguments provide
to CGCall functions. llvm-svn: 63775
This commit is contained in:
parent
4cf5f3a7e5
commit
a45bdbbb6a
|
@ -1167,6 +1167,8 @@ void CodeGenFunction::EmitFunctionProlog(const CGFunctionInfo &FI,
|
||||||
++AI;
|
++AI;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert(FI.arg_size() == Args.size() &&
|
||||||
|
"Mismatch between function signature & arguments.");
|
||||||
CGFunctionInfo::const_arg_iterator info_it = FI.arg_begin();
|
CGFunctionInfo::const_arg_iterator info_it = FI.arg_begin();
|
||||||
for (FunctionArgList::const_iterator i = Args.begin(), e = Args.end();
|
for (FunctionArgList::const_iterator i = Args.begin(), e = Args.end();
|
||||||
i != e; ++i, ++info_it) {
|
i != e; ++i, ++info_it) {
|
||||||
|
@ -1316,6 +1318,8 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo &CallInfo,
|
||||||
assert(0 && "Invalid ABI kind for return argument");
|
assert(0 && "Invalid ABI kind for return argument");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert(CallInfo.arg_size() == CallArgs.size() &&
|
||||||
|
"Mismatch between function signature & arguments.");
|
||||||
CGFunctionInfo::const_arg_iterator info_it = CallInfo.arg_begin();
|
CGFunctionInfo::const_arg_iterator info_it = CallInfo.arg_begin();
|
||||||
for (CallArgList::const_iterator I = CallArgs.begin(), E = CallArgs.end();
|
for (CallArgList::const_iterator I = CallArgs.begin(), E = CallArgs.end();
|
||||||
I != E; ++I, ++info_it) {
|
I != E; ++I, ++info_it) {
|
||||||
|
|
|
@ -76,6 +76,8 @@ namespace CodeGen {
|
||||||
arg_iterator arg_begin() { return Args + 1; }
|
arg_iterator arg_begin() { return Args + 1; }
|
||||||
arg_iterator arg_end() { return Args + 1 + NumArgs; }
|
arg_iterator arg_end() { return Args + 1 + NumArgs; }
|
||||||
|
|
||||||
|
unsigned arg_size() const { return NumArgs; }
|
||||||
|
|
||||||
QualType getReturnType() const { return Args[0].type; }
|
QualType getReturnType() const { return Args[0].type; }
|
||||||
|
|
||||||
ABIArgInfo &getReturnInfo() { return Args[0].info; }
|
ABIArgInfo &getReturnInfo() { return Args[0].info; }
|
||||||
|
|
Loading…
Reference in New Issue