am 0a01a5db: Handle functions with anonymous arguments

Merge commit '0a01a5db5672b65f81732eaed6fb9fcccea16d06'

* commit '0a01a5db5672b65f81732eaed6fb9fcccea16d06':
  Handle functions with anonymous arguments
This commit is contained in:
Jack Palevich 2009-08-19 11:18:30 -07:00 committed by Android Git Automerger
commit 337b972f93
3 changed files with 19 additions and 2 deletions

View File

@ -4891,11 +4891,15 @@ class Compiler : public ErrorSink {
int argCount = 0;
for (Type* pP = pDecl->pTail; pP; pP = pP->pTail) {
Type* pArg = pP->pHead;
addLocalSymbol(pArg);
if (pArg->id) {
addLocalSymbol(pArg);
}
/* read param name and compute offset */
size_t alignment = pGen->stackAlignmentOf(pArg);
a = (a + alignment - 1) & ~ (alignment-1);
VI(pArg->id)->pAddress = (void*) a;
if (pArg->id) {
VI(pArg->id)->pAddress = (void*) a;
}
a = a + pGen->stackSizeOf(pArg);
argCount++;
}

View File

@ -0,0 +1,8 @@
int f(int a,int, int c) {
return a + c;
}
int main() {
return f(1,2,3);
}

View File

@ -437,6 +437,11 @@ result: 0
def testDefines(self):
self.compileCheck(["-R", "data/defines.c"], """Executing compiled code:
result: 3
""","""""")
def testFuncArgs(self):
self.compileCheck(["-R", "data/funcargs.c"], """Executing compiled code:
result: 4
""","""""")
def main():