mescc: Tinycc support: uniquify strings per compilation unit.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sat, 29 Jul 2017 07:08:44 +0000 (09:08 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sat, 29 Jul 2017 07:08:44 +0000 (09:08 +0200)
* module/mes/M1.mes (object->M1): Add file-name to string id.

module/mes/M1.mes

index 7a4251ca3ee45b4ed6ce2af6c70b905801275f3f..908312a86905b0c469d870b4b017af2122742d3b 100644 (file)
 (define (object->M1 o)
   (let* ((functions (assoc-ref o 'functions))
          (function-names (map car functions))
+         (file-name (car (or (assoc-ref o 'file-names) function-names)))
          (globals (assoc-ref o 'globals))
          (global-names (map car globals))
          (strings (filter (lambda (g) (and (pair? g) (eq? (car g) #:string))) global-names)))
     (define (string->label o)
       (let ((index (list-index (lambda (s) (equal? s o)) strings)))
-       (format #f "string_~a" index)))
+       (format #f "string_~a_~a" file-name index)))
     (define (text->M1 o)
       (pmatch o
         ;; FIXME