;;; -*- Mode:LISP; Package:SYSTEM-INTERNALS; Base:8; Readtable:ZL -*- (defun quoted-args-p (fef) (let ((args-info (args-info fef))) (or (ldb-test %%arg-desc-quoted-rest args-info) (ldb-test %%arg-desc-fef-quote-hair args-info)))) (defun find-functions-with-quoted-args (&aux result) (gc:without-flipping (gc:reclaim-oldspace) (for-every-region-in-area (region macro-compiled-program) (cond ((zerop (%region-free-pointer region))) (t (do ((adr (%make-pointer dtp-locative (%region-origin region)) (%make-pointer-offset dtp-locative adr (%structure-total-size adr)))) (()) (loop while (and (= (%p-data-type adr) dtp-header) (= (%p-ldb %%header-type-field adr) %header-type-list)) do (if (<= (%pointer-difference (%region-free-pointer region) adr) 2) (setq adr (%make-pointer-offset dtp-locative adr 1)) (let ((start-adr (%make-pointer dtp-locative (%region-origin region)))) (loop while (and (= (%p-data-type start-adr) dtp-header) (= (%p-ldb %%header-type-field start-adr) %header-type-list)) when (>= start-adr (%region-length region)) do (ferror nil "bad region") do (setq start-adr (%make-pointer-offset dtp-locative start-adr 1))) (do ((adr start-adr (%make-pointer-offset dtp-locative adr (%sturcture-total-size adr))) (obj (%find-structure-header