- fixed a small bug in the compile. [use of struct-ref with an

index out of range, generated by improper use of struct-match]
This commit is contained in:
Abdulaziz Ghuloum 2009-05-14 08:59:41 +03:00
parent 1a738c2a8d
commit 370454e4fc
3 changed files with 5 additions and 5 deletions

View File

@ -282,7 +282,7 @@
[(conditional e0 e1 e2) (or (NonTail e0) (NonTail e1) (NonTail e2))] [(conditional e0 e1 e2) (or (NonTail e0) (NonTail e1) (NonTail e2))]
[(seq e0 e1) (or (NonTail e0) (NonTail e1))] [(seq e0 e1) (or (NonTail e0) (NonTail e1))]
[(forcall op arg*) (ormap NonTail arg*)] [(forcall op arg*) (ormap NonTail arg*)]
[(known x t v) (NonTail x)] [(known x t) (NonTail x)]
[else (error who "invalid expr" x)])) [else (error who "invalid expr" x)]))
(define (Tail x) (define (Tail x)
(struct-case x (struct-case x

View File

@ -1 +1 @@
1772 1773

View File

@ -418,7 +418,7 @@
[(funcall) (prm '!= (V x) (V (K #f)))] [(funcall) (prm '!= (V x) (V (K #f)))]
[(jmpcall) (prm '!= (V x) (V (K #f)))] [(jmpcall) (prm '!= (V x) (V (K #f)))]
[(forcall) (prm '!= (V x) (V (K #f)))] [(forcall) (prm '!= (V x) (V (K #f)))]
[(known expr type val) [(known expr type)
;;; FIXME: suboptimal ;;; FIXME: suboptimal
(P expr)] (P expr)]
[else (error 'cogen-P "invalid pred expr" x)])) [else (error 'cogen-P "invalid pred expr" x)]))
@ -446,7 +446,7 @@
(make-funcall (Function rator) (map V arg*))] (make-funcall (Function rator) (map V arg*))]
[(jmpcall label rator arg*) [(jmpcall label rator arg*)
(make-jmpcall label (V rator) (map V arg*))] (make-jmpcall label (V rator) (map V arg*))]
[(known expr type val) [(known expr type)
;;; FIXME: suboptimal ;;; FIXME: suboptimal
(E expr)] (E expr)]
[else (error 'cogen-E "invalid effect expr" x)])) [else (error 'cogen-E "invalid effect expr" x)]))
@ -485,7 +485,7 @@
(K (- disp-symbol-record-proc symbol-ptag))))] (K (- disp-symbol-record-proc symbol-ptag))))]
[else (nonproc x check?)])] [else (nonproc x check?)])]
[(primref op) (V x)] [(primref op) (V x)]
[(known x t v) [(known x t)
(cond (cond
[(eq? (T:procedure? t) 'yes) [(eq? (T:procedure? t) 'yes)
;(record-optimization 'procedure x) ;(record-optimization 'procedure x)