+2005-11-11 David Edelsohn <edelsohn@gnu.org>
+
+ PR 24644
+ * common.opt (Wvolatile-register-var): New.
+ * varasm.c (make_decl_rtl): Only emit warning when option
+ specified. Clarify warning message.
+ * doc/invoke.texi (Wvolatile-register-var): Document new option.
+
+ * doc/md.texi (copysign): Document standard named pattern.
+
2005-11-11 Jie Zhang <jie.zhang@analog.com>
* config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing
Common Var(warn_unused_variable)
Warn when a variable is unused
+Wvolatile-register-var
+Common Var(warn_register_var)
+Warn when a register variable is declared volatile
+
aux-info
Common Separate
-aux-info <file> Emit declaration information into <file>
-Wunknown-pragmas -Wno-pragmas -Wunreachable-code @gol
-Wunused -Wunused-function -Wunused-label -Wunused-parameter @gol
-Wunused-value -Wunused-variable -Wvariadic-macros @gol
--Wwrite-strings}
+-Wvolatile-register-var -Wwrite-strings}
@item C-only Warning Options
@gccoptlist{-Wbad-function-cast -Wmissing-declarations @gol
alternate syntax when in pedantic ISO C99 mode. This is default.
To inhibit the warning messages, use @option{-Wno-variadic-macros}.
+@item -Wvolatile-register-var
+@opindex Wvolatile-register-var
+@opindex Wno-volatile-register-var
+Warn if a register variable is declared volatile. The volatile
+modifier does not inhibit all optimizations that may eliminate reads
+and/or writes to register variables.
+
@item -Wdisabled-optimization
@opindex Wdisabled-optimization
Warn if a requested optimization pass is disabled. This warning does
built-in function uses the mode which corresponds to the C data
type @code{float}.
+@cindex @code{copysign@var{m}3} instruction pattern
+@item @samp{copysign@var{m}3}
+Store a value with the magnitude of operand 1 and the sign of operand
+2 into operand 0.
+
+The @code{copysign} built-in function of C always uses the mode which
+corresponds to the C data type @code{double} and the @code{copysignf}
+built-in function uses the mode which corresponds to the C data
+type @code{float}.
+
@cindex @code{ffs@var{m}2} instruction pattern
@item @samp{ffs@var{m}2}
Store into operand 0 one plus the index of the least significant 1-bit
error ("global register variable has initial value");
}
if (TREE_THIS_VOLATILE (decl))
- warning (0, "volatile register variables don%'t "
- "work as you might wish");
+ warning (OPT_Wvolatile_register_var,
+ "optimization may eliminate reads and/or "
+ "writes to register variables");
/* If the user specified one of the eliminables registers here,
e.g., FRAME_POINTER_REGNUM, we don't want to get this variable