mirror of
https://github.com/cc65/cc65.git
synced 2024-07-18 00:29:02 +00:00
Check for implicit int return in all cases
git-svn-id: svn://svn.cc65.org/cc65/trunk@1851 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
82a0184c26
commit
9222de75da
@ -745,23 +745,23 @@ static FuncDesc* ParseFuncDecl (const DeclSpec* Spec)
|
|||||||
NextToken ();
|
NextToken ();
|
||||||
F->Flags |= FD_VOID_PARAM;
|
F->Flags |= FD_VOID_PARAM;
|
||||||
} else if (CurTok.Tok == TOK_IDENT &&
|
} else if (CurTok.Tok == TOK_IDENT &&
|
||||||
(NextTok.Tok == TOK_COMMA || NextTok.Tok == TOK_RPAREN)) {
|
(NextTok.Tok == TOK_COMMA || NextTok.Tok == TOK_RPAREN)) {
|
||||||
/* If the identifier is a typedef, we have a new style parameter list,
|
/* If the identifier is a typedef, we have a new style parameter list,
|
||||||
* if it's some other identifier, it's an old style parameter list.
|
* if it's some other identifier, it's an old style parameter list.
|
||||||
*/
|
*/
|
||||||
Sym = FindSym (CurTok.Ident);
|
Sym = FindSym (CurTok.Ident);
|
||||||
if (Sym == 0 || !SymIsTypeDef (Sym)) {
|
if (Sym == 0 || !SymIsTypeDef (Sym)) {
|
||||||
/* Old style (K&R) function. Assume variable param list. */
|
/* Old style (K&R) function. Assume variable param list. */
|
||||||
F->Flags |= (FD_OLDSTYLE | FD_VARIADIC);
|
F->Flags |= (FD_OLDSTYLE | FD_VARIADIC);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Check for an implicit int return in the K&R function */
|
/* Check for an implicit int return in the function */
|
||||||
if ((Spec->Flags & DS_DEF_TYPE) != 0 &&
|
if ((Spec->Flags & DS_DEF_TYPE) != 0 &&
|
||||||
Spec->Type[0] == T_INT &&
|
Spec->Type[0] == T_INT &&
|
||||||
Spec->Type[1] == T_END) {
|
Spec->Type[1] == T_END) {
|
||||||
/* Function has an implicit int return */
|
/* Function has an implicit int return */
|
||||||
F->Flags |= FD_OLDSTYLE_INTRET;
|
F->Flags |= FD_OLDSTYLE_INTRET;
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Parse params */
|
/* Parse params */
|
||||||
|
Loading…
Reference in New Issue
Block a user