From 8061bab6a9a3fd9a7480fb363c8fb4df582c3c8f Mon Sep 17 00:00:00 2001 From: ceriel Date: Thu, 27 Oct 1994 14:57:48 +0000 Subject: [PATCH] removed warning and fixed two problems: - remove_def was wrong, and parameter defs should not be removed at the end of a scope --- lang/pc/comp/lookup.c | 2 +- lang/pc/comp/scope.c | 2 +- lang/pc/comp/typequiv.c | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lang/pc/comp/lookup.c b/lang/pc/comp/lookup.c index 882971a0b..bcf4704a0 100644 --- a/lang/pc/comp/lookup.c +++ b/lang/pc/comp/lookup.c @@ -23,8 +23,8 @@ remove_def(df) else { while( df1 && df1->df_next != df ) df1 = df1->df_next; df1->df_next = df->df_next; - free_def(df); } + free_def(df); } struct def * diff --git a/lang/pc/comp/scope.c b/lang/pc/comp/scope.c index 5bb6aa46f..f0f9e2cba 100644 --- a/lang/pc/comp/scope.c +++ b/lang/pc/comp/scope.c @@ -55,7 +55,7 @@ close_scope(doclean) df = CurrentScope->sc_def; if (doclean) while (df) { struct def *next = df->df_nextinscope; - remove_def(df); + if (! (df->df_flags & (D_VARPAR|D_VALPAR))) remove_def(df); df = next; } CurrVis = CurrVis->next; diff --git a/lang/pc/comp/typequiv.c b/lang/pc/comp/typequiv.c index b80c0463d..bb00760ce 100644 --- a/lang/pc/comp/typequiv.c +++ b/lang/pc/comp/typequiv.c @@ -86,8 +86,10 @@ TstCompat(tp1, tp2) if( IsPacked(tp1) != IsPacked(tp2) ) return 0; if( TstCompat(ElementType(tp1), ElementType(tp2)) ) { + /* if( ElementType(tp1) != ElementType(tp2) ) warning("base-types of sets not equal"); + */ return 1; } else return 0; -- 2.34.1