Corrected some warnings a bit

This commit is contained in:
ceriel 1989-04-11 14:34:21 +00:00
parent 6f8702a65e
commit 944c818096
2 changed files with 37 additions and 30 deletions

View file

@ -1 +1 @@
static char Version[] = "ACK Modula-2 compiler Version 0.49"; static char Version[] = "ACK Modula-2 compiler Version 0.50";

View file

@ -963,11 +963,34 @@ RegisterMessage(df)
} }
} }
static
df_warning(nd, df, warning)
t_node *nd;
t_def *df;
char *warning;
{
if (! (df->df_kind & (D_VARIABLE|D_PROCEDURE|D_TYPE|D_CONST|D_PROCHEAD))) {
return;
}
if (warning) {
node_warning(nd,
W_ORDINARY,
"%s \"%s\" %s",
(df->df_flags & D_VALPAR) ? "value parameter" :
(df->df_flags & D_VARPAR) ? "variable parameter" :
(df->df_kind == D_VARIABLE) ? "variable" :
(df->df_kind == D_TYPE) ? "type" :
(df->df_kind == D_CONST) ? "constant" :
"procedure",
df->df_idf->id_text, warning);
}
}
static static
UseWarnings(df) UseWarnings(df)
register t_def *df; register t_def *df;
{ {
char *warning = 0; t_node *nd = df->df_scope->sc_end;
if (is_anon_idf(df->df_idf) || if (is_anon_idf(df->df_idf) ||
!(df->df_kind&(D_IMPORTED|D_VARIABLE|D_PROCEDURE|D_CONST|D_TYPE)) || !(df->df_kind&(D_IMPORTED|D_VARIABLE|D_PROCEDURE|D_CONST|D_TYPE)) ||
@ -981,55 +1004,39 @@ UseWarnings(df)
df1->df_flags |= df->df_flags & (D_USED|D_DEFINED); df1->df_flags |= df->df_flags & (D_USED|D_DEFINED);
if (df->df_kind == D_INUSE) return; if (df->df_kind == D_INUSE) return;
if ( !(df->df_flags & D_IMP_BY_EXP)) { if ( !(df->df_flags & D_IMP_BY_EXP)) {
if (! (df->df_flags & (D_USED | D_DEFINED))) { if (df->df_flags & (D_USED | D_DEFINED)) {
if (df1->df_kind == D_VARIABLE) { return;
warning = "imported but not used/assigned";
}
else warning = "imported but not used";
goto warn;
} }
df_warning(nd,
df1,
df1->df_kind == D_VARIABLE ?
"imported but not used/assigned" :
"imported but not used");
return; return;
} }
df = df1; df = df1;
} nd = df->df_scope->sc_end;
if (! (df->df_kind & (D_VARIABLE|D_PROCEDURE|D_TYPE|D_CONST))) {
return;
} }
switch(df->df_flags & (D_USED|D_DEFINED|D_VALPAR|D_VARPAR)) { switch(df->df_flags & (D_USED|D_DEFINED|D_VALPAR|D_VARPAR)) {
case 0: case 0:
case D_VARPAR: case D_VARPAR:
warning = "never used/assigned"; df_warning(nd, df,"never used/assigned");
break; break;
case D_USED|D_VARPAR: case D_USED|D_VARPAR:
#ifdef PASS_BIG_VAL_AS_VAR #ifdef PASS_BIG_VAL_AS_VAR
if (df->df_type->tp_fund != T_EQUAL) { if (df->df_type->tp_fund != T_EQUAL) {
warning = "never assigned, could be value parameter"; df_warning(nd, df,"never assigned, could be value parameter");
} }
#endif #endif
break; break;
case D_USED: case D_USED:
warning = "never assigned"; df_warning(nd, df,"never assigned");
break; break;
case D_VALPAR: case D_VALPAR:
case D_DEFINED: case D_DEFINED:
case D_DEFINED|D_VALPAR: case D_DEFINED|D_VALPAR:
warning = "never used"; df_warning(nd, df,"never used");
break; break;
default:
return;
}
warn:
if (warning) {
node_warning(df->df_scope->sc_end,
W_ORDINARY,
"%s \"%s\" %s",
(df->df_flags & D_VALPAR) ? "value parameter" :
(df->df_flags & D_VARPAR) ? "variable parameter" :
(df->df_kind == D_VARIABLE) ? "variable" :
(df->df_kind == D_TYPE) ? "type" :
(df->df_kind == D_CONST) ? "constant" :
"procedure",
df->df_idf->id_text, warning);
} }
} }