diff lisp/emacs-lisp/byte-opt.el @ 36999:642a94733741

(byte-optimize-while) (byte-optimize-form-code-walker): Diagnose too few arguments for `if' and `while'.
author Gerd Moellmann <gerd@gnu.org>
date Mon, 26 Mar 2001 13:04:11 +0000
parents f1c913d16f4c
children 4a5ea0885c7b
line wrap: on
line diff
--- a/lisp/emacs-lisp/byte-opt.el	Mon Mar 26 12:28:54 2001 +0000
+++ b/lisp/emacs-lisp/byte-opt.el	Mon Mar 26 13:04:11 2001 +0000
@@ -1,6 +1,6 @@
 ;;; byte-opt.el --- the optimization passes of the emacs-lisp byte compiler.
 
-;;; Copyright (c) 1991, 1994, 2000 Free Software Foundation, Inc.
+;;; Copyright (c) 1991, 1994, 2000, 2001 Free Software Foundation, Inc.
 
 ;; Author: Jamie Zawinski <jwz@lucid.com>
 ;;	Hallvard Furuseth <hbf@ulrik.uio.no>
@@ -445,6 +445,8 @@
 	      (byte-optimize-body (cdr (cdr form)) for-effect))))
 	  
 	  ((eq fn 'if)
+	   (when (< (length form) 3)
+	     (byte-compile-warn "Too few arguments for `if'"))
 	   (cons fn
 	     (cons (byte-optimize-form (nth 1 form) nil)
 	       (cons
@@ -1014,6 +1016,8 @@
 	   (list 'progn clause nil)))))
 
 (defun byte-optimize-while (form)
+  (when (< (length form) 2)
+    (byte-compile-warn "Too few arguments for `while'"))
   (if (nth 1 form)
       form))