OSDN Git Service

2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
authormanu <manu@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 26 Feb 2008 14:04:09 +0000 (14:04 +0000)
committermanu <manu@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 26 Feb 2008 14:04:09 +0000 (14:04 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@132675 138bc75d-0d04-0410-961f-82ee72b054a4

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 fefe8c2..4d11666 100644 (file)
@@ -1,5 +1,14 @@
 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.
        * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
        -Wlarger-than=.
index 4cb7687..1a59ac4 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 72165b9..d3f81b0 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 5c62510..48a1f80 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 6a80373..7e444c0 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 8fb14f2..ee8eea1 100644 (file)
@@ -1,4 +1,8 @@
 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" } */