+2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 34351
+ * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
+ * c-opts.c (c_common_handle_option): Wall enables
+ Wvolatile-register-var.
+ * common.opt: Move Wvolatile-register-var to...
+ * c.opt: ...here.
+
2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* common.opt (Wlarger-than=): New.
if (warn_strict_overflow == -1)
warn_strict_overflow = value;
warn_array_bounds = value;
+ warn_volatile_register_var = value;
/* Only warn about unknown pragmas that are not in system
headers. */
C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
Warn if a variable length array is used
+Wvolatile-register-var
+C ObjC C++ ObjC++ Var(warn_volatile_register_var) Warning
+Warn when a register variable is declared volatile
+
Wwrite-strings
C ObjC C++ ObjC++ Var(warn_write_strings) Warning
In C++, nonzero means warn about deprecated conversion from string literals to `char *'. In C, similar warning, except that the conversion is of course not deprecated by the ISO C standard.
Common Var(warn_unused_variable) Warning
Warn when a variable is unused
-Wvolatile-register-var
-Common Var(warn_register_var) Warning
-Warn when a register variable is declared volatile
-
Wcoverage-mismatch
Common RejectNegative Var(warn_coverage_mismatch) Warning
Warn instead of error in case profiles in -fprofile-use do not match
-Wunused-label @gol
-Wunused-value @gol
-Wunused-variable @gol
+-Wvolatile-register-var @gol
}
Note that some warning flags are not implied by @option{-Wall}. Some of
@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.
+and/or writes to register variables. This warning is enabled by
+@option{-Wall}.
@item -Wdisabled-optimization
@opindex Wdisabled-optimization
+2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * gcc.dg/pr34351.c: New.
+
2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* gcc.dg/Wlarger-than2.c: New.
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-Wall" } */
+
+register int * volatile x asm ("r13"); /* { dg-warning "optimization may eliminate reads and/or writes to register variables" } */