re PR c/34351 (Please get us the "volatile register" warning back)
authorManuel López-Ibáñez <manu@gcc.gnu.org>
Tue, 26 Feb 2008 14:04:09 +0000 (14:04 +0000)
committerManuel López-Ibáñez <manu@gcc.gnu.org>
Tue, 26 Feb 2008 14:04:09 +0000 (14:04 +0000)
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.
testsuite/
* gcc.dg/pr34351.c: New.

From-SVN: r132675

gcc/ChangeLog
gcc/c-opts.c
gcc/c.opt
gcc/common.opt
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr34351.c [new file with mode: 0644]

index fefe8c2f3dd002320a3e627c4e5332a2962a0127..4d11666e715e45326d2b6f1f95aee742bb115899 100644 (file)
@@ -1,3 +1,12 @@
+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.
index 4cb76872be3f98e63ea0f49011cf4581c3e65b84..1a59ac4696476a54826d43c2a83f86f2d35796e5 100644 (file)
@@ -407,6 +407,7 @@ c_common_handle_option (size_t scode, const char *arg, int value)
       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.  */
index 72165b96660cf352ad5de8c043f4bb4b9747f76e..d3f81b0e1c755fed783c584fc80c104cbe84d168 100644 (file)
--- a/gcc/c.opt
+++ b/gcc/c.opt
@@ -465,6 +465,10 @@ Wvla
 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.
index 5c62510f7000270fe2e58030543d58a36857135d..48a1f80c3e17c93f9a49e2f76d14d84f2fe44542 100644 (file)
@@ -232,10 +232,6 @@ Wunused-variable
 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
index 6a80373e43dd01965801d044bcae2389c7d72832..7e444c0370c1901ea84274957f26d742c58d189f 100644 (file)
@@ -2683,6 +2683,7 @@ Options} and @ref{Objective-C and Objective-C++ Dialect Options}.
 -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
@@ -4017,7 +4018,8 @@ the variable length array.
 @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
index 8fb14f23f53da0bab2f4774b7caf586ac6d4a2ee..ee8eea17bc5b6a4861af6fa02d46177ef3d10a46 100644 (file)
@@ -1,3 +1,7 @@
+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.
diff --git a/gcc/testsuite/gcc.dg/pr34351.c b/gcc/testsuite/gcc.dg/pr34351.c
new file mode 100644 (file)
index 0000000..90dcfa1
--- /dev/null
@@ -0,0 +1,4 @@
+/* { dg-do compile } */
+/* { dg-options "-Wall" } */
+
+register int * volatile x asm ("r13"); /* { dg-warning "optimization may eliminate reads and/or writes to register variables" } */