re PR middle-end/47646 (Revision 169918 caused many testsuite failures)
authorAndreas Krebbel <Andreas.Krebbel@de.ibm.com>
Tue, 8 Feb 2011 16:46:20 +0000 (16:46 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Tue, 8 Feb 2011 16:46:20 +0000 (16:46 +0000)
2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

PR middle-end/47646
* gcc.dg/pr39666-2.c (foo2): If the location of the statement
using the variable is known the warning is emitted there.
* gcc.dg/uninit-pr19430.c (foo): Likewise.
* g++.dg/warn/Wuninitialized-5.C (foo): Likewise.

* c-c++-common/pr20000.c (g): Both warnings occur at the return
statement.
(vg): Likewise.
* gcc.dg/noreturn-1.c (foo5): Likewise.
* objc.dg/attributes/method-noreturn-1.m (method1): Likewise.
(method2): Likewise.

* gfortran.dg/pr25923.f90 (baz): The warning will now be issued for
the return statement using the uninitialized variable.
* gfortran.dg/pr39666-2.f90 (f): Likewise.

From-SVN: r169927

gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/pr20000.c
gcc/testsuite/g++.dg/warn/Wuninitialized-5.C
gcc/testsuite/gcc.dg/noreturn-1.c
gcc/testsuite/gcc.dg/pr39666-2.c
gcc/testsuite/gcc.dg/uninit-pr19430.c
gcc/testsuite/gfortran.dg/pr25923.f90
gcc/testsuite/gfortran.dg/pr39666-2.f90
gcc/testsuite/objc.dg/attributes/method-noreturn-1.m

index a9c1bf4a6e4b8209b79173c4bb234132476dfdbb..5a39fa6c3303a77fa4c28987d92f642cab5a9bf5 100644 (file)
@@ -1,3 +1,22 @@
+2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       PR middle-end/47646
+       * gcc.dg/pr39666-2.c (foo2): If the location of the statement
+       using the variable is known the warning is emitted there.
+       * gcc.dg/uninit-pr19430.c (foo): Likewise.
+       * g++.dg/warn/Wuninitialized-5.C (foo): Likewise.
+
+       * c-c++-common/pr20000.c (g): Both warnings occur at the return
+       statement.
+       (vg): Likewise.
+       * gcc.dg/noreturn-1.c (foo5): Likewise.
+       * objc.dg/attributes/method-noreturn-1.m (method1): Likewise.
+       (method2): Likewise.
+
+       * gfortran.dg/pr25923.f90 (baz): The warning will now be issued for
+       the return statement using the uninitialized variable.
+       * gfortran.dg/pr39666-2.f90 (f): Likewise.
+
 2011-02-08  Richard Guenther  <rguenther@suse.de>
 
        PR middle-end/47639
index 1fcd17877e8bb76b67d7732af98a845dc19e6a2b..3c0fb8841051ad1c5162843e4673964335ef4eac 100644 (file)
@@ -10,7 +10,7 @@ void h(void) __attribute__((noreturn));
 
 int g(void) {
   return 1; /* { dg-warning "function declared 'noreturn' has a 'return' statement" } */
-} /* { dg-warning "'noreturn' function does return" } */
+}           /* { dg-warning "'noreturn' function does return" "" { target *-*-* } 12 } */
 
 int g2(void) {
   h();
@@ -25,7 +25,7 @@ int vg2(void); /* { dg-bogus ".noreturn. function returns non-void value" } */
 
 int vg(void) {
   return 1; /* { dg-warning "function declared 'noreturn' has a 'return' statement" "" { target c } 27 } */
-} /* { dg-warning "'noreturn' function does return" "" { target c } 28  } */
+}           /* { dg-warning "'noreturn' function does return" "" { target c } 27  } */
 
 int vg2(void) {
   h();
index 26add34945f2304404d359e588941e30c826813c..787d3c78f638f13d77ca935443647fe159ce1a3a 100644 (file)
@@ -5,7 +5,7 @@
 int
 foo (int i)
 {
-  int j;       // { dg-warning "may be used uninitialized" }
+  int j;
   switch (i)
     {
     case -__INT_MAX__ - 1 ... -1:
@@ -18,5 +18,5 @@ foo (int i)
       j = 4;
       break;
     }
-  return j;
+  return j;    // { dg-warning "may be used uninitialized" }
 }
index 1e7a778103e226ad597a4e3649ec11784a59b16f..a3796783a3e24e2c5e5ab34aa3015b76a1519f1c 100644 (file)
@@ -35,7 +35,7 @@ void
 foo5(void)
 {
   return; /* { dg-warning "'noreturn' has a 'return' statement" "detect invalid return" } */
-} /* { dg-warning "function does return" "detect return from noreturn" } */
+}         /* { dg-warning "function does return" "detect return from noreturn" { target c } 37 } */
 
 extern void foo6(void);
 void
index e4ef1d5d2b72f0d925e8b3218f8487392095c3ab..9ca119b6a07e6979f9157e1499e3cf9e1c579664 100644 (file)
@@ -5,7 +5,7 @@
 int
 foo (int i)
 {
-  int j;       /* { dg-warning "may be used uninitialized" } */
+  int j;
   switch (i)
     {
     case -__INT_MAX__ - 1 ... -1:
@@ -18,5 +18,5 @@ foo (int i)
       j = 4;
       break;
     }
-  return j;
+  return j;    /* { dg-warning "may be used uninitialized" } */
 }
index 53810c553e1c6aebf6def1e416867ffa25e04e60..4d2b4f62cef619be9d37b0b8b9b6ee0b18854677 100644 (file)
@@ -18,8 +18,8 @@ foo (int i)
 
 
 int foo2( void ) {
-  int rc;  /* { dg-warning "'rc' is used uninitialized in this function" } */
-  return rc;
+  int rc;
+  return rc;  /* { dg-warning "'rc' is used uninitialized in this function" } */
   *&rc = 0;
 }
 
index e7f6f6e7004c895d282938a35eda96e435042aab..9140d35a7f769c1286a179d3d7663839bdc35a0c 100644 (file)
@@ -10,7 +10,7 @@ implicit none
 
 contains
 
-  function baz(arg) result(res) ! { dg-warning "res.yr' may be" "PR45505" { xfail ilp32 } }
+  function baz(arg) result(res) ! { dg-bogus "res.yr' may be" "PR45505" { xfail ilp32 } }
     type(bar), intent(in) :: arg
     type(bar) :: res
     logical, external:: some_func
@@ -19,7 +19,7 @@ contains
     else
       res = arg
     end if
-  end function baz ! { dg-bogus "res.yr' may be" "PR45505" { xfail ilp32 } }
+  end function baz ! { dg-warning "res.yr' may be" "PR45505" { xfail ilp32 } }
 
 end module foo
 
index 720a716ae3153ff52944513cea4b7b4b8ab41cea..633d0ba79c58af346a50c2b3ab15960582e5b4b0 100644 (file)
@@ -2,7 +2,7 @@
 ! { dg-do compile }
 ! { dg-options "-O2 -Wuninitialized" }
 
-FUNCTION f(n)  ! { dg-warning "may be used uninitialized" }
+FUNCTION f(n)
   INTEGER, INTENT(in) :: n
   REAL                :: f
 
@@ -11,4 +11,4 @@ FUNCTION f(n) ! { dg-warning "may be used uninitialized" }
     CASE (0);   f =  0.0
     CASE (2:);  f =  1.0
   END SELECT
-END FUNCTION
+END FUNCTION   ! { dg-warning "may be used uninitialized" }
index af051a61d34b0d0b6d9a0009661ad02440e5e9ad..717d6e65e28ee1665140ca4df03b7450406aac30 100644 (file)
 + (id) method1
 {
   return self;  /* { dg-warning "function declared .noreturn. has a .return. statement" } */
-}               /* { dg-warning ".noreturn. function does return" } */
+}               /* { dg-warning ".noreturn. function does return" "" { target *-*-* } 20 } */
 - (id) method2
 {
   return self;  /* { dg-warning "function declared .noreturn. has a .return. statement" } */
-}               /* { dg-warning ".noreturn. function does return" } */
+}               /* { dg-warning ".noreturn. function does return" "" { target *-*-* } 24 } */
 + (id) method3
 {
   abort ();