OSDN Git Service

2007-11-04 Andrew Pinski <pinskia@gmail.com>
authorpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 4 Nov 2007 19:04:49 +0000 (19:04 +0000)
committerpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 4 Nov 2007 19:04:49 +0000 (19:04 +0000)
        PR middle-end/32931
        * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
        for TRUTH_NOT_EXPR to type.

2007-11-04  Andrew Pinski  <pinskia@gmail.com>

        PR middle-end/32931
        * gfortran.fortran-torture/compile/forall-1.f90: New testcase.

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

gcc/ChangeLog
gcc/fold-const.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.fortran-torture/compile/forall-1.f90 [new file with mode: 0644]

index 7a984d3..7e16d42 100644 (file)
@@ -1,3 +1,9 @@
+2007-11-04  Andrew Pinski  <pinskia@gmail.com>
+
+       PR middle-end/32931
+       * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
+       for TRUTH_NOT_EXPR to type.
+
 2007-11-04  Gerald Pfeifer  <gerald@pfeifer.com>
 
        * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez.
index a7d2756..a09c9ea 100644 (file)
@@ -11709,12 +11709,12 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
       /* bool_var != 1 becomes !bool_var. */
       if (TREE_CODE (TREE_TYPE (arg0)) == BOOLEAN_TYPE && integer_onep (arg1)
           && code == NE_EXPR)
-        return fold_build1 (TRUTH_NOT_EXPR, type, arg0);
+        return fold_build1 (TRUTH_NOT_EXPR, type, fold_convert (type, arg0));
 
       /* bool_var == 0 becomes !bool_var. */
       if (TREE_CODE (TREE_TYPE (arg0)) == BOOLEAN_TYPE && integer_zerop (arg1)
           && code == EQ_EXPR)
-        return fold_build1 (TRUTH_NOT_EXPR, type, arg0);
+        return fold_build1 (TRUTH_NOT_EXPR, type, fold_convert (type, arg0));
 
       /* If this is an equality comparison of the address of two non-weak,
         unaliased symbols neither of which are extern (since we do not
index 1f5e5ca..7d13083 100644 (file)
@@ -1,3 +1,8 @@
+2007-11-04  Andrew Pinski  <pinskia@gmail.com>
+
+       PR middle-end/32931
+       * gfortran.fortran-torture/compile/forall-1.f90: New testcase.
+
 2007-11-04  David Edelsohn  <edelsohn@gnu.org>
 
        * g++.dg/cpp/_Pragma1.C: Disable on AIX.
diff --git a/gcc/testsuite/gfortran.fortran-torture/compile/forall-1.f90 b/gcc/testsuite/gfortran.fortran-torture/compile/forall-1.f90
new file mode 100644 (file)
index 0000000..caaea08
--- /dev/null
@@ -0,0 +1,7 @@
+  integer i, a(1)
+  logical(kind=8) s(1)
+
+  s = .true.
+  a = 42
+  forall (i=1:1, .not. s(1)) a(i) = 0
+  end