When walking predicate nodes, must be able to handle case where either
authorChris Hanson <org/chris-hanson/cph>
Wed, 29 Jul 1987 02:16:52 +0000 (02:16 +0000)
committerChris Hanson <org/chris-hanson/cph>
Wed, 29 Jul 1987 02:16:52 +0000 (02:16 +0000)
the consequent or alternative is nonexistent.  This is because we must
walk over incomplete graphs when generating code for operands.

v7/src/compiler/rtlgen/rtlgen.scm

index a4744a34a326097224eca96c41d9e0f4ab455e27..8a8731605f94ad44b67f4b1eeccf0ebdb1beac46 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rtlgen.scm,v 1.15 1987/05/21 15:05:03 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rtlgen.scm,v 1.16 1987/07/29 02:16:52 cph Exp $
 
 Copyright (c) 1987 Massachusetts Institute of Technology
 
@@ -125,8 +125,10 @@ MIT in each case. |#
   (lambda (node subproblem?)
     (pcfg*scfg->scfg!
      (generator node)
-     (generate/node (pnode-consequent node) subproblem?)
-     (generate/node (pnode-alternative node) subproblem?))))
+     (and (pnode-consequent node)
+         (generate/node (pnode-consequent node) subproblem?))
+     (and (pnode-alternative node)
+         (generate/node (pnode-alternative node) subproblem?)))))
 \f
 (define-integrable (node-rtl-result node)
   (node-property-get node tag/node-rtl-result))