Subject: Re: bug#21963: Spurious byte compile message: "Warning: the function `bar' might not be defined at runtime."

From: Eli Zaretskii <[email-masked]>
Date: Fri, 20 Nov 2015 13:19:19 +0200

> Date: Fri, 20 Nov 2015 10:44:19 +0000
> From: Alan Mackenzie <[email-masked]>
> 
> This bug is a variant of bug #11918, which hasn't yet been resolved.

I'm not sure this is the same issue.

> 1. Create two Emacs Lisp source files, ~/warnings-bar.el and
> ~/warnings-foo.el with the following contents:
> 
> ;;;;;;;; warnings-bar.el ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> (defun bar ()
>   "Doc string"
>   "bar")
> 
> (provide 'warning-bar)
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> 
> 
> ;;;;;;;; warnings-foo.el ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> (eval-when-compile (require 'warning-bar))
> (require 'warning-bar)
> 
> (defun foo ()
>   (bar))
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> 
> 
> 
> 2. (Optional) byte compile warnings-bar.el.
> 3. Byte compile warnings-foo.el with:
>     emacs -Q -batch -L ~ -f batch-byte-compile warning-foo.el
> 
> .  This produces the spurious warning message:
> 
>     warning-foo.el:6:1:Warning: the function `bar' might not be defined
>     at runtime.
> 
> .

eval-when-compile has no effect at run time, and the warning is
explicitly about what might happen at runtime.

IOW, I don't think this is a bug.