Did not detect redeclaration of formal as local
This commit is contained in:
parent
3891c03e0e
commit
2838d446ef
1 changed files with 8 additions and 6 deletions
|
@ -293,15 +293,17 @@ declare_idf(ds, dc, lvl)
|
||||||
#ifdef LINT
|
#ifdef LINT
|
||||||
check_hiding(idf, lvl, sc); /* of some idf by this idf */
|
check_hiding(idf, lvl, sc); /* of some idf by this idf */
|
||||||
#endif LINT
|
#endif LINT
|
||||||
|
if (def && lvl == L_LOCAL && def->df_level == L_FORMAL2) {
|
||||||
|
error("%s redeclared", idf->id_text);
|
||||||
|
}
|
||||||
|
|
||||||
if ((def &&
|
if (def &&
|
||||||
( def->df_level == lvl ||
|
( def->df_level == lvl ||
|
||||||
( lvl != L_GLOBAL && def->df_level > lvl )
|
( lvl != L_GLOBAL && def->df_level > lvl ) ||
|
||||||
))
|
(lvl == L_GLOBAL
|
||||||
|| (lvl == L_GLOBAL
|
&& def->df_level == L_PROTO
|
||||||
&& def && def->df_level == L_PROTO
|
|
||||||
&& def->next && def->next->df_level == L_GLOBAL)
|
&& def->next && def->next->df_level == L_GLOBAL)
|
||||||
) {
|
)) {
|
||||||
/* There is already a declaration for idf on this
|
/* There is already a declaration for idf on this
|
||||||
level, or even more inside.
|
level, or even more inside.
|
||||||
The rules differ for different levels.
|
The rules differ for different levels.
|
||||||
|
|
Loading…
Reference in a new issue