removed warning and fixed two problems:
- remove_def was wrong, and parameter defs should not be removed at the end of a scope
This commit is contained in:
parent
4c26480d25
commit
8061bab6a9
3 changed files with 4 additions and 2 deletions
|
@ -23,8 +23,8 @@ remove_def(df)
|
||||||
else {
|
else {
|
||||||
while( df1 && df1->df_next != df ) df1 = df1->df_next;
|
while( df1 && df1->df_next != df ) df1 = df1->df_next;
|
||||||
df1->df_next = df->df_next;
|
df1->df_next = df->df_next;
|
||||||
free_def(df);
|
|
||||||
}
|
}
|
||||||
|
free_def(df);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct def *
|
struct def *
|
||||||
|
|
|
@ -55,7 +55,7 @@ close_scope(doclean)
|
||||||
df = CurrentScope->sc_def;
|
df = CurrentScope->sc_def;
|
||||||
if (doclean) while (df) {
|
if (doclean) while (df) {
|
||||||
struct def *next = df->df_nextinscope;
|
struct def *next = df->df_nextinscope;
|
||||||
remove_def(df);
|
if (! (df->df_flags & (D_VARPAR|D_VALPAR))) remove_def(df);
|
||||||
df = next;
|
df = next;
|
||||||
}
|
}
|
||||||
CurrVis = CurrVis->next;
|
CurrVis = CurrVis->next;
|
||||||
|
|
|
@ -86,8 +86,10 @@ TstCompat(tp1, tp2)
|
||||||
if( IsPacked(tp1) != IsPacked(tp2) )
|
if( IsPacked(tp1) != IsPacked(tp2) )
|
||||||
return 0;
|
return 0;
|
||||||
if( TstCompat(ElementType(tp1), ElementType(tp2)) ) {
|
if( TstCompat(ElementType(tp1), ElementType(tp2)) ) {
|
||||||
|
/*
|
||||||
if( ElementType(tp1) != ElementType(tp2) )
|
if( ElementType(tp1) != ElementType(tp2) )
|
||||||
warning("base-types of sets not equal");
|
warning("base-types of sets not equal");
|
||||||
|
*/
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else return 0;
|
else return 0;
|
||||||
|
|
Loading…
Reference in a new issue