Changeset 14075


Ignore:
Timestamp:
08/12/12 20:42:48 (8 years ago)
Author:
ehuelsmann
Message:

Fix #214: NOTINLINE declaration in expansion of compiler macro is ignored.

Note: The truth be told, but all optimization declarations (inline/

notinnline) were ignored in pass1, except in some rare cases.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/compiler-pass1.lisp

    r14067 r14075  
    490490      (dolist (variable (let-free-specials block))
    491491        (push variable *visible-variables*)))
    492     (let ((*blocks* (cons block *blocks*)))
    493       (setf body (p1-body body)))
    494     (setf (let-form block) (list* op varlist body))
    495     block))
     492    (with-saved-compiler-policy
     493      (process-optimization-declarations body)
     494      (let ((*blocks* (cons block *blocks*)))
     495        (setf body (p1-body body)))
     496      (setf (let-form block) (list* op varlist body))
     497      block)))
    496498
    497499(defun p1-locally (form)
     
    505507      (push special *visible-variables*))
    506508    (let ((*blocks* (cons block *blocks*)))
    507       (setf (locally-form block)
    508             (list* 'LOCALLY (p1-body (cdr form))))
    509       block)))
     509      (with-saved-compiler-policy
     510        (process-optimization-declarations (cdr form))
     511        (setf (locally-form block)
     512              (list* 'LOCALLY (p1-body (cdr form))))
     513        block))))
    510514
    511515(defknown p1-m-v-b (t) t)
     
    539543        (push special *visible-variables*))
    540544      (setf (m-v-b-vars block) (nreverse vars)))
    541     (setf body (p1-body body))
    542     (setf (m-v-b-form block)
    543           (list* 'MULTIPLE-VALUE-BIND varlist values-form body))
    544     block))
     545    (with-saved-compiler-policy
     546      (process-optimization-declarations body)
     547      (setf body (p1-body body))
     548      (setf (m-v-b-form block)
     549            (list* 'MULTIPLE-VALUE-BIND varlist values-form body))
     550      block)))
    545551
    546552(defun p1-block (form)
     
    957963      (dolist (special (labels-free-specials block))
    958964        (push special *visible-variables*))
    959       (setf (labels-form block)
    960             (list* (car form) local-functions (p1-body (cddr form))))
    961       block)))
     965      (with-saved-compiler-policy
     966        (process-optimization-declarations (cddr form))
     967        (setf (labels-form block)
     968              (list* (car form) local-functions (p1-body (cddr form))))
     969        block))))
    962970
    963971(defknown p1-funcall (t) t)
Note: See TracChangeset for help on using the changeset viewer.