diff --git a/src/cmp/cmpblock.lsp b/src/cmp/cmpblock.lsp index d741234cb..64497d1f0 100644 --- a/src/cmp/cmpblock.lsp +++ b/src/cmp/cmpblock.lsp @@ -45,6 +45,7 @@ body)))) (defun c2block (c1form blk body) + (declare (ignore c1form)) (if (plusp (var-ref (blk-var blk))) (let* ((blk-var (blk-var blk)) (*env-lvl* *env-lvl*)) @@ -104,7 +105,7 @@ output))))) (defun c2return-from (c1form blk type val var) - (declare (ignore var)) + (declare (ignore var c1form)) (case type (CCB (let ((*destination* 'VALUES)) (c2expr* val)) diff --git a/src/cmp/cmpcall.lsp b/src/cmp/cmpcall.lsp index 6519cfe72..f222be7b3 100644 --- a/src/cmp/cmpcall.lsp +++ b/src/cmp/cmpcall.lsp @@ -69,6 +69,7 @@ (cmperr "Malformed function name: ~A" fun))))) (defun c2funcall (c1form form args) + (declare (ignore c1form)) (let* ((*inline-blocks* 0) (*temp* *temp*) (form-type (c1form-primary-type form)) diff --git a/src/cmp/cmpcatch.lsp b/src/cmp/cmpcatch.lsp index 326fe3fbb..783dbbea4 100644 --- a/src/cmp/cmpcatch.lsp +++ b/src/cmp/cmpcatch.lsp @@ -21,6 +21,7 @@ (c1progn (rest args)))) (defun c2catch (c1form tag body) + (declare (ignore c1form)) (let* ((new-destination (tmp-destination *destination*))) (let* ((*destination* 'VALUE0)) (c2expr* tag)) @@ -55,6 +56,7 @@ :args form (c1progn (rest args))))) (defun c2unwind-protect (c1form form body) + (declare (ignore c1form)) (let* ((sp (make-lcl-var :rep-type :cl-index)) (nargs (make-lcl-var :rep-type :cl-index)) (*unwind-exit* `((STACK ,sp) ,@*unwind-exit*))) @@ -91,6 +93,7 @@ (make-c1form* 'THROW :args (c1expr (first args)) (c1expr (second args)))) (defun c2throw (c1form tag val &aux loc) + (declare (ignore c1form)) (case (c1form-name tag) ((VAR LOCATION) (setq loc (c1form-arg 0 tag))) (t (setq loc (make-temp-var)) diff --git a/src/cmp/cmpeval.lsp b/src/cmp/cmpeval.lsp index 009a33bcd..eff2881b9 100644 --- a/src/cmp/cmpeval.lsp +++ b/src/cmp/cmpeval.lsp @@ -187,6 +187,7 @@ (make-c1form* 'PROGN :type output-type :args fl))))) (defun c2progn (c1form forms) + (declare (ignore c1form)) ;; c1progn ensures that the length of forms is not less than 1. (do ((l forms (cdr l)) (lex *lex*)) diff --git a/src/cmp/cmpffi.lsp b/src/cmp/cmpffi.lsp index e81217969..3ac56b7d7 100755 --- a/src/cmp/cmpffi.lsp +++ b/src/cmp/cmpffi.lsp @@ -586,6 +586,7 @@ 'VALUES)))))) (defun c2c-inline (c1form arguments &rest rest) + (declare (ignore c1form)) (let ((*inline-blocks* 0) (*temp* *temp*)) (unwind-exit (apply #'produce-inline-loc (inline-args arguments) rest)) diff --git a/src/cmp/cmpflet.lsp b/src/cmp/cmpflet.lsp index 32ff731a7..e1e8fecd7 100644 --- a/src/cmp/cmpflet.lsp +++ b/src/cmp/cmpflet.lsp @@ -164,6 +164,7 @@ &aux block-p (*env* *env*) (*env-lvl* *env-lvl*) env-grows) + (declare (ignore c1form)) ;; create location for each function which is returned, ;; either in lexical: (dolist (fun funs) @@ -257,7 +258,8 @@ fun)) (defun c2call-local (c1form fun args) - (declare (type fun fun)) + (declare (type fun fun) + (ignore c1form)) (unless (c2try-tail-recursive-call fun args) (let ((*inline-blocks* 0) (*temp* *temp*)) diff --git a/src/cmp/cmpif.lsp b/src/cmp/cmpif.lsp index fdf98e8c8..56dc94497 100644 --- a/src/cmp/cmpif.lsp +++ b/src/cmp/cmpif.lsp @@ -82,6 +82,7 @@ (wt-label ,label)))) (defun c2if (c1form fmla form1 form2) + (declare (ignore c1form)) ;; FIXME! Optimize when FORM1 or FORM2 are constants (with-exit-label (normal-exit) (with-exit-label (false-label) @@ -106,6 +107,7 @@ (otherwise (return-from negate-argument nil))))))) (defun c2fmla-not (c1form arg) + (declare (ignore c1form)) (let ((dest *destination*)) (cond ((and (consp dest) (eq (car dest) 'JUMP-TRUE)) (let ((*destination* `(JUMP-FALSE ,@(cdr dest)))) @@ -130,6 +132,7 @@ (and (consp dest) (eq (car dest) 'JUMP-FALSE)))) (defun c2fmla-and (c1form butlast last) + (declare (ignore c1form)) (if (jump-false-destination?) (progn (mapc #'c2expr* butlast) @@ -142,6 +145,7 @@ (unwind-exit nil)))) (defun c2fmla-or (c1form butlast last) + (declare (ignore c1form)) (cond ((jump-true-destination?) (mapc #'c2expr* butlast) (c2expr last)) diff --git a/src/cmp/cmplet.lsp b/src/cmp/cmplet.lsp index d09016cb6..2b0a075c7 100644 --- a/src/cmp/cmplet.lsp +++ b/src/cmp/cmplet.lsp @@ -139,6 +139,9 @@ (and-form-type (var-type var) form (var-name var) :unsafe "In LET body") (let ((form-type (c1form-primary-type form))) (setf (var-type var) form-type) + (unless (var-type var) + (setf c::*compiler-break-enable* t) + (break)) (update-variable-type var form-type))) (defun c1let-unused-variable-p (var form) diff --git a/src/cmp/cmploc.lsp b/src/cmp/cmploc.lsp index af761b69f..0c74ac5b3 100644 --- a/src/cmp/cmploc.lsp +++ b/src/cmp/cmploc.lsp @@ -182,7 +182,9 @@ (defun wt-keyvars (i) (wt "keyvars[" i "]")) -(defun wt-the (type loc) (wt-loc loc)) +(defun wt-the (type loc) + (declare (ignore type)) + (wt-loc loc)) (defun loc-refers-to-special (loc) (cond ((var-p loc) @@ -230,6 +232,7 @@ (wt ";")))))))) (defun set-the-loc (loc type orig-loc) + (declare (ignore type)) (let ((*destination* orig-loc)) (set-loc loc))) diff --git a/src/cmp/cmpmulti.lsp b/src/cmp/cmpmulti.lsp index b1fda3a96..92d7412dc 100644 --- a/src/cmp/cmpmulti.lsp +++ b/src/cmp/cmpmulti.lsp @@ -59,6 +59,7 @@ (make-c1form* 'VALUES :args (c1args* args))) (defun c2values (c1form forms) + (declare (ignore c1form)) (when (and (eq *destination* 'RETURN-OBJECT) (rest forms) (consp *current-form*) @@ -225,6 +226,7 @@ output)) (defun c2multiple-value-setq (c1form vars form) + (declare (ignore c1form)) (multiple-value-bind (min-values max-values) (c1form-values-number form) (unwind-exit @@ -258,6 +260,7 @@ :args vars init-form body))))) (defun c2multiple-value-bind (c1form vars init-form body) + (declare (ignore c1form)) ;; 0) Compile the form which is going to give us the values (let ((*destination* 'VALUES)) (c2expr* init-form)) diff --git a/src/cmp/cmpprop.lsp b/src/cmp/cmpprop.lsp index 4a23251c7..43580f4b4 100644 --- a/src/cmp/cmpprop.lsp +++ b/src/cmp/cmpprop.lsp @@ -267,7 +267,7 @@ of the occurrences in those lists." (defun p1psetq (c1form assumptions vars c1forms) (loop for form in c1forms - do (multiple-value-setq (new-type assumptions) + do (multiple-value-bind (new-type assumptions) (p1propagate form assumptions))) (values 'null assumptions)) diff --git a/src/cmp/cmpspecial.lsp b/src/cmp/cmpspecial.lsp index 1178e4299..b8ab8d63e 100644 --- a/src/cmp/cmpspecial.lsp +++ b/src/cmp/cmpspecial.lsp @@ -53,6 +53,7 @@ (make-c1form 'COMPILER-LET args symbols values args)) (defun c2compiler-let (c1form symbols values body) + (declare (ignore c1form)) (progv symbols values (c2expr body))) (defun c1function (args &aux fd) @@ -83,6 +84,7 @@ (t (cmperr "The function ~s is illegal." fun))))) (defun c2function (c1form kind funob fun) + (declare (ignore c1form)) (case kind (GLOBAL (unwind-exit (list 'FDEFINITION fun))) diff --git a/src/cmp/cmpstack.lsp b/src/cmp/cmpstack.lsp index a556d4983..ec123c347 100644 --- a/src/cmp/cmpstack.lsp +++ b/src/cmp/cmpstack.lsp @@ -36,6 +36,7 @@ :args body))) (defun c2with-stack (c1form body) + (declare (ignore c1form)) (let* ((new-destination (tmp-destination *destination*)) (*temp* *temp*)) (wt-nl "{ struct ecl_stack_frame _ecl_inner_frame_aux;") @@ -66,6 +67,7 @@ :one-liner t :side-effects t))))) (defun c2stack-push-values (c1form form push-statement) + (declare (ignore c1form)) (let ((*destination* 'VALUES)) (c2expr* form)) (c2expr push-statement)) diff --git a/src/cmp/cmptag.lsp b/src/cmp/cmptag.lsp index 41e220b03..244733761 100644 --- a/src/cmp/cmptag.lsp +++ b/src/cmp/cmptag.lsp @@ -124,7 +124,8 @@ :args tag-var body)) (defun c2tagbody (c1form tag-loc body) - (declare (type var tag-loc)) + (declare (type var tag-loc) + (ignore c1form)) (if (null (var-kind tag-loc)) ;; only local goto's (let ((label (next-label))) @@ -210,6 +211,7 @@ (add-to-read-nodes var (make-c1form* 'GO :args tag (or ccb clb unw))))))) (defun c2go (c1form tag nonlocal) + (declare (ignore c1form)) (if nonlocal (let ((var (tag-var tag))) (wt-nl "cl_go(" var ",MAKE_FIXNUM(" (tag-index tag) "));")) diff --git a/src/cmp/cmptop.lsp b/src/cmp/cmptop.lsp index 87c196f07..c2e9d1d22 100644 --- a/src/cmp/cmptop.lsp +++ b/src/cmp/cmptop.lsp @@ -299,9 +299,11 @@ return f2; (c1progn 'NIL))))) (defun t2compiler-let (c1form symbols values body) + (declare (ignore c1form)) (progv symbols values (c2expr body))) (defun t2progn (c1form args) + (declare (ignore c1form)) (mapc #'t2expr args)) (defun exported-fname (name) @@ -510,6 +512,7 @@ return f2; (p1propagate form assumptions)) (defun t2ordinary (c1form form) + (declare (ignore c1form)) (let* ((*exit* (next-label)) (*unwind-exit* (list *exit*)) (*destination* 'TRASH)) @@ -554,18 +557,21 @@ return f2; (make-c1form* 'LOCATION :type t :args loc))) (defun t2load-time-value (c1form vv-loc form) + (declare (ignore c1form)) (let* ((*exit* (next-label)) (*unwind-exit* (list *exit*)) (*destination* vv-loc)) (c2expr form) (wt-label *exit*))) (defun t2make-form (c1form vv-loc form) + (declare (ignore c1form)) (let* ((*exit* (next-label)) (*unwind-exit* (list *exit*)) (*destination* vv-loc)) (c2expr form) (wt-label *exit*))) (defun t2init-form (c1form vv-loc form) + (declare (ignore c1form)) (let* ((*exit* (next-label)) (*unwind-exit* (list *exit*)) (*destination* 'TRASH)) (c2expr form) diff --git a/src/cmp/cmptype-assert.lsp b/src/cmp/cmptype-assert.lsp index 7bd85f4da..57a5c6295 100644 --- a/src/cmp/cmptype-assert.lsp +++ b/src/cmp/cmptype-assert.lsp @@ -33,6 +33,7 @@ :args var expressions))))) (defun c2compiler-typecase (c1form var expressions) + (declare (ignore c1form)) (loop with var-type = (var-type var) for (type form) in expressions when (or (member type '(t otherwise)) diff --git a/src/cmp/cmpvar.lsp b/src/cmp/cmpvar.lsp index a5cf20aeb..aa1cd99bc 100644 --- a/src/cmp/cmpvar.lsp +++ b/src/cmp/cmpvar.lsp @@ -372,6 +372,7 @@ `(setf name ,form))) (defun c2setq (c1form vref form) + (declare (ignore c1form)) ;; First comes the assignement (let ((*destination* vref)) (c2expr* form)) @@ -389,6 +390,7 @@ :args symbols values forms))) (defun c2progv (c1form symbols values body) + (declare (ignore c1form)) (let* ((*lcl* *lcl*) (lcl (next-lcl)) (sym-loc (make-lcl-var)) @@ -439,6 +441,7 @@ forms)))) (defun c2psetq (c1form vrefs forms &aux (*lcl* *lcl*) (saves nil) (blocks 0)) + (declare (ignore c1form)) ;; similar to inline-args (do ((vrefs vrefs (cdr vrefs)) (forms forms (cdr forms))