@node Compiler Errors
@section Compiler Errors
@cindex compiler errors
+@cindex byte-compiler errors
Error and warning messages from byte compilation are printed in a
buffer named @file{*Compile-Log*}. These messages include file names
the cause of the error might be nearby. @xref{Syntax Errors}, for
some tips for locating syntax errors.
+@cindex byte-compiler warnings
+@cindex free variable, byte-compiler warning
+@cindex reference to free variable, compilation warning
+@cindex function not known to be defined, compilation warning
A common type of warning issued by the byte compiler is for
functions and variables that were used but not defined. Such warnings
report the line number for the end of the file, not the locations
@item
You can tell the compiler that a function is defined using
-@code{declare-function}. @xref{Declaring Functions}.
+@code{declare-function}. @xref{Declaring Functions}.
@item
Likewise, you can tell the compiler that a variable is defined using
@code{defvar} with no initial value. (Note that this marks the
-variable as special.) @xref{Defining Variables}.
+variable as special, i.e.@: dynamically bound.) @xref{Defining
+Variables}.
@end itemize
You can also suppress any and all compiler warnings within a certain
evaluated and @var{symbol} is set to the result. But if @var{symbol}
is not void, @var{value} is not evaluated, and @var{symbol}'s value is
left unchanged. If @var{value} is omitted, the value of @var{symbol}
-is not changed in any case.
+is not changed in any case. Using @code{defvar} with no value is one
+method of suppressing byte compilation warnings, see @ref{Compiler
+Errors}.
If @var{symbol} has a buffer-local binding in the current buffer,
@code{defvar} acts on the default value, which is buffer-independent,