]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
invoke.texi: Remove the documentation about option -Wunreachable-code.
authorEric Fisher <joefoxreal@gmail.com>
Tue, 5 Jan 2010 12:30:30 +0000 (12:30 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 5 Jan 2010 12:30:30 +0000 (12:30 +0000)
2010-01-05  Eric Fisher  <joefoxreal@gmail.com>

* doc/invoke.texi: Remove the documentation about option
-Wunreachable-code.
* common.opt (Wunreachable-code):  Preserved for backward
compatibility.
* tree-cfg.c: Remove the implementation of -Wunreachable-code.
* opts.c (common_handle_option): Add OPT_Wunreachable_code to
the backward compatibility flag section.

* gcc.dg/pr12603.c: Remove -Wunreachable-code from dg-options.
* gcc.dg/Wunreachable-1.c: Remove the testcase of
-Wunreachable-code.
* gcc.dg/Wunreachable-2.c: Likewise.
* gcc.dg/Wunreachable-3.c: Likewise.
* gcc.dg/Wunreachable-4.c: Likewise.
* gcc.dg/Wunreachable-5.c: Likewise.
* gcc.dg/Wunreachable-6.c: Likewise.
* gcc.dg/Wunreachable-7.c: Likewise.
* gcc.dg/Wunreachable-8.c: Likewise.
* gcc.dg/20041231-1.c: Likewise.

From-SVN: r155645

16 files changed:
gcc/ChangeLog
gcc/common.opt
gcc/doc/invoke.texi
gcc/opts.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/20041231-1.c [deleted file]
gcc/testsuite/gcc.dg/Wunreachable-1.c [deleted file]
gcc/testsuite/gcc.dg/Wunreachable-2.c [deleted file]
gcc/testsuite/gcc.dg/Wunreachable-3.c [deleted file]
gcc/testsuite/gcc.dg/Wunreachable-4.c [deleted file]
gcc/testsuite/gcc.dg/Wunreachable-5.c [deleted file]
gcc/testsuite/gcc.dg/Wunreachable-6.c [deleted file]
gcc/testsuite/gcc.dg/Wunreachable-7.c [deleted file]
gcc/testsuite/gcc.dg/Wunreachable-8.c [deleted file]
gcc/testsuite/gcc.dg/pr12603.c
gcc/tree-cfg.c

index 9f8770fcaa07c60d5be843e3269f4f13287c2021..db624b919e9ac155bba2fdc6c44d6ecdfe017b48 100644 (file)
@@ -1,3 +1,13 @@
+2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
+
+       * doc/invoke.texi: Remove the documentation about option
+       -Wunreachable-code.
+       * common.opt (Wunreachable-code):  Preserved for backward
+       compatibility.
+       * tree-cfg.c: Remove the implementation of -Wunreachable-code.
+       * opts.c (common_handle_option): Add OPT_Wunreachable_code to
+       the backward compatibility flag section.
+
 2010-01-05  Richard Guenther  <rguenther@suse.de>
 
        * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
index ac942ee6a1fec4bc7c4a5c508bd3425c5cae6fa5..8e8ed7620052bab0fb835108bb7335bf2d2d77aa 100644 (file)
@@ -201,8 +201,8 @@ Common Var(warn_uninitialized) Init(-1) Warning
 Warn about uninitialized automatic variables
 
 Wunreachable-code
-Common Var(warn_notreached) Warning
-Warn about code that will never be executed
+Common
+Does nothing. Preserved for backward compatibility.
 
 Wunused
 Common Var(warn_unused) Init(0) Warning
index f7d3bc812543921eadfb50ee84603e6ba46fc64f..5022c4a80db9aa8b084f3de4a3a487f27d33ada0 100644 (file)
@@ -259,7 +259,7 @@ Objective-C and Objective-C++ Dialects}.
 -Wstrict-overflow -Wstrict-overflow=@var{n} @gol
 -Wswitch  -Wswitch-default  -Wswitch-enum -Wsync-nand @gol
 -Wsystem-headers  -Wtrigraphs  -Wtype-limits  -Wundef  -Wuninitialized @gol
--Wunknown-pragmas  -Wno-pragmas -Wunreachable-code @gol
+-Wunknown-pragmas  -Wno-pragmas @gol
 -Wunsuffixed-float-constants  -Wunused  -Wunused-function @gol
 -Wunused-label  -Wunused-parameter -Wno-unused-result -Wunused-value  -Wunused-variable @gol
 -Wvariadic-macros -Wvla @gol
@@ -4192,29 +4192,6 @@ cases where multiple declaration is valid and changes nothing.
 @opindex Wno-nested-externs
 Warn if an @code{extern} declaration is encountered within a function.
 
-@item -Wunreachable-code
-@opindex Wunreachable-code
-@opindex Wno-unreachable-code
-Warn if the compiler detects that code will never be executed.
-
-This option is intended to warn when the compiler detects that at
-least a whole line of source code will never be executed, because
-some condition is never satisfied or because it is after a
-procedure that never returns.
-
-It is possible for this option to produce a warning even though there
-are circumstances under which part of the affected line can be executed,
-so care should be taken when removing apparently-unreachable code.
-
-For instance, when a function is inlined, a warning may mean that the
-line is unreachable in only one inlined copy of the function.
-
-This option is not made part of @option{-Wall} because in a debugging
-version of a program there is often substantial code which checks
-correct functioning of the program and is, hopefully, unreachable
-because the program does work.  Another common use of unreachable
-code is to provide behavior which is selectable at compile-time.
-
 @item -Winline
 @opindex Winline
 @opindex Wno-inline
index 4ba0d7fd0bf93b93031e028eab11b3b9be237f6d..501deae6ea7a1832089cfa0107fe8205ef139a68 100644 (file)
@@ -2131,6 +2131,7 @@ common_handle_option (size_t scode, const char *arg, int value,
     case OPT_fforce_addr:
     case OPT_ftree_salias:
     case OPT_ftree_store_ccp:
+    case OPT_Wunreachable_code:
       /* These are no-ops, preserved for backward compatibility.  */
       break;
 
index aea6aa18026c60c99daaee6525b67c93390fb75d..42eb680f7efc9cf5dc86035ceed2220018ae6a1a 100644 (file)
@@ -1,3 +1,17 @@
+2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
+
+       * gcc.dg/pr12603.c: Remove -Wunreachable-code from dg-options.
+       * gcc.dg/Wunreachable-1.c: Remove the testcase of
+       -Wunreachable-code.
+       * gcc.dg/Wunreachable-2.c: Likewise.
+       * gcc.dg/Wunreachable-3.c: Likewise.
+       * gcc.dg/Wunreachable-4.c: Likewise.
+       * gcc.dg/Wunreachable-5.c: Likewise.
+       * gcc.dg/Wunreachable-6.c: Likewise.
+       * gcc.dg/Wunreachable-7.c: Likewise.
+       * gcc.dg/Wunreachable-8.c: Likewise.
+       * gcc.dg/20041231-1.c: Likewise.
+
 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
 
        PR other/42611
diff --git a/gcc/testsuite/gcc.dg/20041231-1.c b/gcc/testsuite/gcc.dg/20041231-1.c
deleted file mode 100644 (file)
index 37c9fe0..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/* PR17544 Incorrect -Wunreachable-code warning
-   Origin: Giovanni Bajo
-
-   In C99 we append a "return 0;" when finishing a function, but it was
-   not given a source location.  The gimplifier thinks a return statement
-   needs a locus so it would add one, making the compiler generated code
-   visible to the unreachable code warning.  */
-
-/* { dg-do compile } */
-/* { dg-options "-std=c99 -O -Wunreachable-code" } */
-
-int main (void)    // 1
-{                  // 2
-  return 0;        // 3
-}                  // 4
diff --git a/gcc/testsuite/gcc.dg/Wunreachable-1.c b/gcc/testsuite/gcc.dg/Wunreachable-1.c
deleted file mode 100644 (file)
index d6d59b4..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -Wunreachable-code" } */
-
-extern void foo (void);
-extern void baz (void);
-
-void bar (int i)
-{
-  if (i < 2)
-    {
-      baz ();
-      return;
-    }
-  else
-    {
-      if (i >= 4 && i <= 5)
-        foo ();
-      return;
-    }
-
-  baz ();      /* { dg-warning "will never be executed" "" } */
-  baz ();
-  baz ();
-}
diff --git a/gcc/testsuite/gcc.dg/Wunreachable-2.c b/gcc/testsuite/gcc.dg/Wunreachable-2.c
deleted file mode 100644 (file)
index 55a8f9c..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -Wunreachable-code" } */
-
-extern int foo (const char *);
-extern void baz (void);
-const char *a[] = { "one", "two" };
-
-void bar (void)
-{
-  int i;
-
-  for (i = 0; i < 2; i++)  /* { dg-bogus "will never be executed" "" { xfail *-*-* } } */
-    if (! foo (a[i]))  /* { dg-bogus "will never be executed" "" { xfail *-*-* } } */
-      return;
-
-  baz ();      /* { dg-bogus "will never be executed" } */
-  baz ();
-  baz ();
-}
diff --git a/gcc/testsuite/gcc.dg/Wunreachable-3.c b/gcc/testsuite/gcc.dg/Wunreachable-3.c
deleted file mode 100644 (file)
index 966d89e..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/* PR c/10175 */
-/* { dg-do compile } */
-/* { dg-options "-Wunreachable-code" } */
-
-int i,j;
-int main(void)
-{
-  if (0) {
-    i = 0;                /* { dg-warning "will never be executed" "" } */
-    j = 0;
-  } else {
-    i = 1;
-    j = 1;
-  }
-
-  return 0;
-}
diff --git a/gcc/testsuite/gcc.dg/Wunreachable-4.c b/gcc/testsuite/gcc.dg/Wunreachable-4.c
deleted file mode 100644 (file)
index 38ae6f8..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/* PR middle-end/10336 */
-/* { dg-options "-Wunreachable-code" } */
-
-void foo(int i)
-{
-  switch(i) {
-    case 0:
-      break;
-    case 1:
-      break;
-  }
-}
diff --git a/gcc/testsuite/gcc.dg/Wunreachable-5.c b/gcc/testsuite/gcc.dg/Wunreachable-5.c
deleted file mode 100644 (file)
index 11dc320..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/* PR c/10175 */
-
-/* { dg-do compile } */
-/* { dg-options "-Wunreachable-code" } */
-
-int value;
-
-int main(void)
-{
-    if (0)
-        value = 0;  /* { dg-warning "will never be executed" "" } */
-    else
-        value = 1;
-
-    return 0;
-}
-
diff --git a/gcc/testsuite/gcc.dg/Wunreachable-6.c b/gcc/testsuite/gcc.dg/Wunreachable-6.c
deleted file mode 100644 (file)
index 6aac7aa..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/* PR c/11370  */
-/* { dg-do compile } */
-/* { dg-options "-Wunreachable-code" } */
-
-extern int printf (const char *, ...);
-extern void exit (int);
-
-int main(int argc, char *argv[])
-{
-  if (argc != 1)
-    exit(1);
-
-  {
-    int ix;  /* { dg-bogus "will never be executed" } */
-    ix = printf("hello\n");
-    printf("%d\n", ix);
-  }
-
-  return 0;
-}
-
diff --git a/gcc/testsuite/gcc.dg/Wunreachable-7.c b/gcc/testsuite/gcc.dg/Wunreachable-7.c
deleted file mode 100644 (file)
index 9a4d411..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/* PR c/11370  */
-/* { dg-do compile } */
-/* { dg-options "-O2 -Wunreachable-code" } */
-
-extern int printf (const char *, ...);
-extern void exit (int);
-
-int main(int argc, char *argv[])
-{
-  if (argc != 1)
-    exit(1);
-
-  {
-    int ix;  /* { dg-bogus "will never be executed" } */
-    ix = printf("hello\n");
-    printf("%d\n", ix);
-  }
-
-  return 0;
-}
-
diff --git a/gcc/testsuite/gcc.dg/Wunreachable-8.c b/gcc/testsuite/gcc.dg/Wunreachable-8.c
deleted file mode 100644 (file)
index 1a13d64..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -Wunreachable-code" } */
-float Factorial(float X)
-{
-  float val = 1.0;
-  int k,j;
-  for (k=1; k < 5; k++) /* { dg-bogus "will never be executed" "" { xfail *-*-* } } */
-    {
-      val += 1.0; /* { dg-bogus "will never be executed" "" { xfail *-*-* } } */
-    }
-  return (val); /* { dg-bogus "will never be executed" } */
-}
-
-int main (void)
-{
-  float result;
-  result=Factorial(2.1);
-  return (0);
-}
-
index d0a4835cb1eb5b0bf71ffedb73faf67c87a90c9c..f7caef28416c5a2c7271ca12f0fca069f4e1c85c 100644 (file)
@@ -1,6 +1,6 @@
 /* PR 12603: No return statement warning on function that never returns with -O3. */
 /* { dg-do compile } */
-/* { dg-options "-O3 -Wall -Wextra -Wreturn-type -Wunreachable-code" } */
+/* { dg-options "-O3 -Wall -Wextra -Wreturn-type" } */
 int
 this_function_never_returns ()
 {
index 3a0868981470566b1060a5309ce12a9de80992ec..2eb3cd2d79cdfcd1aedb860ca4f53c11f6605e90 100644 (file)
@@ -1760,7 +1760,6 @@ static void
 remove_bb (basic_block bb)
 {
   gimple_stmt_iterator i;
-  source_location loc = UNKNOWN_LOCATION;
 
   if (dump_file)
     {
@@ -1830,24 +1829,9 @@ remove_bb (basic_block bb)
            i = gsi_last_bb (bb);
          else
            gsi_prev (&i);
-
-         /* Don't warn for removed gotos.  Gotos are often removed due to
-            jump threading, thus resulting in bogus warnings.  Not great,
-            since this way we lose warnings for gotos in the original
-            program that are indeed unreachable.  */
-         if (gimple_code (stmt) != GIMPLE_GOTO
-             && gimple_has_location (stmt))
-           loc = gimple_location (stmt);
        }
     }
 
-  /* If requested, give a warning that the first statement in the
-     block is unreachable.  We walk statements backwards in the
-     loop above, so the last statement we process is the first statement
-     in the block.  */
-  if (loc > BUILTINS_LOCATION && LOCATION_LINE (loc) > 0)
-    warning_at (loc, OPT_Wunreachable_code, "will never be executed");
-
   remove_phi_nodes_and_edges_for_unreachable_block (bb);
   bb->il.gimple = NULL;
 }