0.9.1.38:
[sbcl.git] / src / compiler / ir1tran.lisp
index a603854..2144cbd 100644 (file)
                 (:macro
                  (let ((expansion (info :variable :macro-expansion name))
                        (type (type-specifier (info :variable :type name))))
-                   `(MACRO . (the ,type ,expansion))))
+                   `(macro . (the ,type ,expansion))))
                (:constant
                 (let ((value (info :variable :constant-value name)))
                   (make-constant :value value
                    #+sb-xc-host structure!object
                    #-sb-xc-host instance
                    (when (emit-make-load-form value)
-                     (dotimes (i (%instance-length value))
+                     (dotimes (i (- (%instance-length value)
+                                    #+sb-xc-host 0
+                                    #-sb-xc-host (layout-n-untagged-slots
+                                                  (%instance-ref value 0))))
                        (grovel (%instance-ref value i)))))
                   (t
                    (compiler-error
           (warn "reading an ignored variable: ~S" name)))
        (reference-leaf start next result var))
       (cons
-       (aver (eq (car var) 'MACRO))
+       (aver (eq (car var) 'macro))
        ;; FIXME: [Free] type declarations. -- APD, 2002-01-26
        (ir1-convert start next result (cdr var)))
       (heap-alien-info
                       (process-var it nil))))
            (cons
             ;; FIXME: non-ANSI weirdness
-            (aver (eq (car var) 'MACRO))
-            (new-vars `(,var-name . (MACRO . (the ,(first decl)
+            (aver (eq (car var) 'macro))
+            (new-vars `(,var-name . (macro . (the ,(first decl)
                                                 ,(cdr var))))))
            (heap-alien-info
             (compiler-error
       (let ((var (find-in-bindings vars name)))
        (etypecase var
          (cons
-          (aver (eq (car var) 'MACRO))
+          (aver (eq (car var) 'macro))
           (compiler-error
            "~S is a symbol-macro and thus can't be declared special."
            name))