Prevent the diamond rule for pblocks from generating the same block on
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Tue, 3 Apr 1990 23:20:21 +0000 (23:20 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Tue, 3 Apr 1990 23:20:21 +0000 (23:20 +0000)
both branches, the assembler will then complain because of duplicate
labels.

v7/src/compiler/back/linear.scm

index 4ebcc2aa8c33b3604e043b5ccd626e006e53079a..659b5fb480f80284227e7b18801891d94a2465e6 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/back/linear.scm,v 4.10 1990/04/01 22:26:21 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/back/linear.scm,v 4.11 1990/04/03 23:20:21 jinx Rel $
 
 Copyright (c) 1987, 1988, 1990 Massachusetts Institute of Technology
 
@@ -33,6 +33,7 @@ promotional, or sales literature without prior written consent from
 MIT in each case. |#
 
 ;;;; LAP linearizer
+;;; package: (compiler lap-syntaxer linearizer)
 
 (declare (usual-integrations))
 \f
@@ -128,7 +129,10 @@ MIT in each case. |#
                              ,@consequent
                              ,(lap:make-label-statement jlabel)
                              ,@(linearize-next cn))))))))))
-       (cond ((sblock? cn)
+       (cond ((eq? cn an)
+              (warn "bblock-linearize-lap: Identical branches" pblock)
+              (unspecial))
+             ((sblock? cn)
               (let ((cnn (find-next (snode-next cn))))
                 (cond ((eq? cnn an)
                        (consequent-first))