#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/back/lapgn3.scm,v 4.6 1991/10/22 09:02:43 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/back/lapgn3.scm,v 4.7 1992/03/02 23:38:09 jinx Exp $
-Copyright (c) 1987-91 Massachusetts Institute of Technology
+Copyright (c) 1987-1992 Massachusetts Institute of Technology
This material was developed by the Scheme project at the Massachusetts
Institute of Technology, Department of Electrical Engineering and
(define (allocate-constant-label)
(allocate-named-label "CONSTANT-"))
+(define (warning-assoc obj pairs)
+ (let ((pair (assoc obj pairs)))
+ (if (and (pair? pair)
+ (not (eqv? obj (car pair))))
+ (warn "Coalescing constant objects" obj (car pair)))
+ pair))
+
(define-integrable (object->label find read write allocate-label)
(lambda (object)
(let ((entry (find object (read))))
(string-append (symbol->string object)
,suffix))))))))
(define constant->label
- (->label assoc *interned-constants*))
+ (->label warning-assoc *interned-constants*))
(define free-reference-label
(->label assq *interned-variables* "-READ-CELL-"))