Now checks for correct parameters to main()
git-svn-id: http://picoc.googlecode.com/svn/trunk@517 21eae674-98b7-11dd-bd71-f92a316d2d60
This commit is contained in:
parent
6dd3e69fa5
commit
19b22261d3
11
parse.c
11
parse.c
|
@ -127,6 +127,17 @@ struct Value *ParseFunctionDefinition(struct ParseState *Parser, struct ValueTyp
|
|||
if (FuncValue->Val->FuncDef.NumParams != 0 && Token != TokenCloseBracket && Token != TokenComma && Token != TokenEllipsis)
|
||||
ProgramFail(&ParamParser, "bad parameter");
|
||||
|
||||
if (strcmp(Identifier, "main") == 0)
|
||||
{
|
||||
/* make sure it's int main() */
|
||||
if (FuncValue->Val->FuncDef.ReturnType != &IntType)
|
||||
ProgramFail(Parser, "main() should return an int");
|
||||
|
||||
if (FuncValue->Val->FuncDef.NumParams != 0 &&
|
||||
(FuncValue->Val->FuncDef.NumParams != 2 || FuncValue->Val->FuncDef.ParamType[0] != &IntType) )
|
||||
ProgramFail(Parser, "bad parameters to main()");
|
||||
}
|
||||
|
||||
/* look for a function body */
|
||||
Token = LexGetToken(Parser, NULL, FALSE);
|
||||
if (Token == TokenSemicolon)
|
||||
|
|
Loading…
Reference in a new issue