aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjohnvg2007-01-04 11:27:27 +0000
committerjohnvg2007-01-04 11:27:27 +0000
commit739ef02e5f2f53f67dc560b1ef9c3256c6f6556d (patch)
treebff11c3494f21ef49653287cd40578863789644a
parentprevent compiler crash if a macro with a non constructor application as (diff)
Fix strictness analysis of a guard with no default, followed by a pattern match,
for example the following function was incorrectly analysed as strict in b: f a b | a==0 = []; f a [] = []; git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1632 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
-rw-r--r--backendC/CleanCompilerSources/sa.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/backendC/CleanCompilerSources/sa.c b/backendC/CleanCompilerSources/sa.c
index d71a500..ca777d4 100644
--- a/backendC/CleanCompilerSources/sa.c
+++ b/backendC/CleanCompilerSources/sa.c
@@ -4267,10 +4267,7 @@ static MatchKind MatchAlternative (Exp *ep,Exp *args_act,Exp *args_for,Alts alt,
case InfiniteMatch:
if (new_e==NULL)
new_e=⊥
- if (m==TotalMatch)
- m=InfiniteMatch;
- else
- m=PartialInfiniteMatch;
+ m=PartialMatch;
break;
case PartialMatch:
new_e=TakeContextLub (&new_e,&next_e,p,context);