forked from OSchip/llvm-project
[AVR] Support zero-sized arguments in defined methods
It is sufficient to skip emission of these arguments as we have nothing to actually pass through the function call. The AVR-GCC reference has nothing to say about zero-sized arguments, presumably because C/C++ doesn't support them. This means we don't have to worry about ABI differences. llvm-svn: 294119
This commit is contained in:
parent
448b5790f6
commit
7a3eb290ef
|
@ -932,6 +932,12 @@ static void analyzeStandardArguments(TargetLowering::CallLoweringInfo *CLI,
|
|||
bool UsesStack = false;
|
||||
for (unsigned i = 0, pos = 0, e = Args.size(); i != e; ++i) {
|
||||
unsigned Size = Args[i];
|
||||
|
||||
// If we have a zero-sized argument, don't attempt to lower it.
|
||||
// AVR-GCC does not support zero-sized arguments and so we need not
|
||||
// worry about ABI compatibility.
|
||||
if (Size == 0) continue;
|
||||
|
||||
MVT LocVT = (IsCall) ? (*Outs)[pos].VT : (*Ins)[pos].VT;
|
||||
|
||||
// If we have plenty of regs to pass the whole argument do it.
|
||||
|
|
Loading…
Reference in New Issue