summaryrefslogtreecommitdiff
path: root/lisp/progmodes/cc-bytecomp.el
diff options
context:
space:
mode:
authorMartin Stjernholm <mast@lysator.liu.se>2002-11-16 01:37:44 +0000
committerMartin Stjernholm <mast@lysator.liu.se>2002-11-16 01:37:44 +0000
commit6b5bbb986bb93e37356ddd408dd80593246e6c47 (patch)
tree8c4dc068b9d95dbc3ada9f522925fd39520bf620 /lisp/progmodes/cc-bytecomp.el
parent2c26ee517f04bf37931718192e9a631c81a7cf8b (diff)
downloademacs-6b5bbb986bb93e37356ddd408dd80593246e6c47.tar.gz
emacs-6b5bbb986bb93e37356ddd408dd80593246e6c47.tar.bz2
emacs-6b5bbb986bb93e37356ddd408dd80593246e6c47.zip
(cc-bytecomp-defun): Fixed bug that caused existing function
definitions to be overridden by phonies when the bytecomp environment is restored.
Diffstat (limited to 'lisp/progmodes/cc-bytecomp.el')
-rw-r--r--lisp/progmodes/cc-bytecomp.el21
1 files changed, 9 insertions, 12 deletions
diff --git a/lisp/progmodes/cc-bytecomp.el b/lisp/progmodes/cc-bytecomp.el
index 6df60efef70..b0e33a97491 100644
--- a/lisp/progmodes/cc-bytecomp.el
+++ b/lisp/progmodes/cc-bytecomp.el
@@ -225,18 +225,15 @@ to silence the byte compiler. Don't use within `eval-when-compile'."
"Bind the symbol as a function during compilation of the file,
to silence the byte compiler. Don't use within `eval-when-compile'."
`(eval-when-compile
- (if (not (assq ',fun cc-bytecomp-original-functions))
- (setq cc-bytecomp-original-functions
- (cons (list ',fun
- nil
- (if (fboundp ',fun)
- (symbol-function ',fun)
- 'unbound))
- cc-bytecomp-original-functions)))
- (if (and (cc-bytecomp-is-compiling)
- (= cc-bytecomp-load-depth 0)
- (not (fboundp ',fun)))
- (fset ',fun 'cc-bytecomp-ignore))))
+ (if (fboundp ',fun)
+ nil
+ (if (not (assq ',fun cc-bytecomp-original-functions))
+ (setq cc-bytecomp-original-functions
+ (cons (list ',fun nil 'unbound)
+ cc-bytecomp-original-functions)))
+ (if (and (cc-bytecomp-is-compiling)
+ (= cc-bytecomp-load-depth 0))
+ (fset ',fun 'cc-bytecomp-ignore)))))
(put 'cc-bytecomp-defmacro 'lisp-indent-function 'defun)
(defmacro cc-bytecomp-defmacro (fun &rest temp-macro)