diff options
author | johnvg | 2007-01-04 11:27:27 +0000 |
---|---|---|
committer | johnvg | 2007-01-04 11:27:27 +0000 |
commit | 739ef02e5f2f53f67dc560b1ef9c3256c6f6556d (patch) | |
tree | bff11c3494f21ef49653287cd40578863789644a | |
parent | prevent 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.c | 5 |
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); |