Author: arekm                        Date: Sat Jun  9 10:20:51 2007 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- up from gcc-4_2-branch branch

---- Files affected:
SOURCES:
   gcc-branch.diff (1.3 -> 1.4) 

---- Diffs:

================================================================
Index: SOURCES/gcc-branch.diff
diff -u SOURCES/gcc-branch.diff:1.3 SOURCES/gcc-branch.diff:1.4
--- SOURCES/gcc-branch.diff:1.3 Sun Jun  3 14:56:21 2007
+++ SOURCES/gcc-branch.diff     Sat Jun  9 12:20:46 2007
@@ -1,7 +1,7 @@
 Index: configure
 ===================================================================
---- configure  (.../tags/gcc_4_2_0_release)    (revision 125292)
-+++ configure  (.../branches/gcc-4_2-branch)   (revision 125292)
+--- configure  (.../tags/gcc_4_2_0_release)    (wersja 125589)
++++ configure  (.../branches/gcc-4_2-branch)   (wersja 125589)
 @@ -7337,6 +7337,12 @@
  #line 7338 "configure"
  #include "confdefs.h"
@@ -17,8 +17,8 @@
  ; return 0; }
 Index: gcc/tree-vrp.c
 ===================================================================
---- gcc/tree-vrp.c     (.../tags/gcc_4_2_0_release)    (revision 125292)
-+++ gcc/tree-vrp.c     (.../branches/gcc-4_2-branch)   (revision 125292)
+--- gcc/tree-vrp.c     (.../tags/gcc_4_2_0_release)    (wersja 125589)
++++ gcc/tree-vrp.c     (.../branches/gcc-4_2-branch)   (wersja 125589)
 @@ -195,7 +195,28 @@
              || operand_equal_p (val, TYPE_MIN_VALUE (TREE_TYPE (val)), 0)));
  }
@@ -85,7 +85,18 @@
  }
  
  
-@@ -1028,6 +1036,8 @@
+@@ -763,7 +771,9 @@
+       if (!TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (val1)))
+       return -2;
+ 
+-      if (strict_overflow_p != NULL)
++      if (strict_overflow_p != NULL
++        && (code1 == SSA_NAME || !TREE_NO_WARNING (val1))
++        && (code2 == SSA_NAME || !TREE_NO_WARNING (val2)))
+       *strict_overflow_p = true;
+ 
+       if (code1 == SSA_NAME)
+@@ -1028,6 +1038,8 @@
        cond_code = swap_tree_comparison (TREE_CODE (cond));
      }
  
@@ -94,7 +105,25 @@
    type = TREE_TYPE (limit);
    gcc_assert (limit != var);
  
-@@ -1619,7 +1629,7 @@
+@@ -1167,6 +1179,8 @@
+           {
+             tree one = build_int_cst (type, 1);
+             max = fold_build2 (MINUS_EXPR, type, max, one);
++            if (EXPR_P (max))
++              TREE_NO_WARNING (max) = 1;
+           }
+ 
+         set_value_range (vr_p, VR_RANGE, min, max, vr_p->equiv);
+@@ -1200,6 +1214,8 @@
+           {
+             tree one = build_int_cst (type, 1);
+             min = fold_build2 (PLUS_EXPR, type, min, one);
++            if (EXPR_P (min))
++              TREE_NO_WARNING (min) = 1;
+           }
+ 
+         set_value_range (vr_p, VR_RANGE, min, max, vr_p->equiv);
+@@ -1619,7 +1635,7 @@
    if (TREE_CODE (op0) == SSA_NAME)
      vr0 = *(get_value_range (op0));
    else if (is_gimple_min_invariant (op0))
@@ -103,7 +132,7 @@
    else
      set_value_range_to_varying (&vr0);
  
-@@ -1627,7 +1637,7 @@
+@@ -1627,7 +1643,7 @@
    if (TREE_CODE (op1) == SSA_NAME)
      vr1 = *(get_value_range (op1));
    else if (is_gimple_min_invariant (op1))
@@ -112,7 +141,7 @@
    else
      set_value_range_to_varying (&vr1);
  
-@@ -2006,7 +2016,7 @@
+@@ -2006,7 +2022,7 @@
    if (TREE_CODE (op0) == SSA_NAME)
      vr0 = *(get_value_range (op0));
    else if (is_gimple_min_invariant (op0))
@@ -121,7 +150,7 @@
    else
      set_value_range_to_varying (&vr0);
  
-@@ -2393,7 +2403,10 @@
+@@ -2393,7 +2409,10 @@
         its type may be different from _Bool.  Convert VAL to EXPR's
         type.  */
        val = fold_convert (TREE_TYPE (expr), val);
@@ -133,7 +162,7 @@
      }
    else
      set_value_range_to_varying (vr);
-@@ -2424,7 +2437,7 @@
+@@ -2424,7 +2443,7 @@
    else if (TREE_CODE_CLASS (code) == tcc_comparison)
      extract_range_from_comparison (vr, expr);
    else if (is_gimple_min_invariant (expr))
@@ -142,7 +171,84 @@
    else
      set_value_range_to_varying (vr);
  
-@@ -4156,7 +4169,7 @@
+@@ -2545,6 +2564,13 @@
+             if (compare_values (min, max) == 1)
+               return;
+           }
++
++        /* According to the loop information, the variable does not
++           overflow.  If we think it does, probably because of an
++           overflow due to arithmetic on a different INF value,
++           reset now.  */
++        if (is_negative_overflow_infinity (min))
++          min = tmin;
+       }
+       else
+       {
+@@ -2557,13 +2583,62 @@
+             if (compare_values (min, max) == 1)
+               return;
+           }
++
++        if (is_positive_overflow_infinity (max))
++          max = tmax;
+       }
+ 
+       set_value_range (vr, VR_RANGE, min, max, vr->equiv);
+     }
+ }
+ 
++/* Return true if VAR may overflow at STMT.  This checks any available
++   loop information to see if we can determine that VAR does not
++   overflow.  */
+ 
++static bool
++vrp_var_may_overflow (tree var, tree stmt)
++{
++  struct loop *l;
++  tree chrec, init, step;
++
++  if (current_loops == NULL)
++    return true;
++
++  l = loop_containing_stmt (stmt);
++  if (l == NULL)
++    return true;
++
++  chrec = instantiate_parameters (l, analyze_scalar_evolution (l, var));
++  if (TREE_CODE (chrec) != POLYNOMIAL_CHREC)
++    return true;
++
++  init = initial_condition_in_loop_num (chrec, l->num);
++  step = evolution_part_in_loop_num (chrec, l->num);
++
++  if (step == NULL_TREE
++      || !is_gimple_min_invariant (step)
++      || !valid_value_p (init))
++    return true;
++
++  /* If we get here, we know something useful about VAR based on the
++     loop information.  If it wraps, it may overflow.  */
++
++  if (scev_probably_wraps_p (init, step, stmt,
++                           current_loops->parray[CHREC_VARIABLE (chrec)],
++                           true))
++    return true;
++
++  if (dump_file && (dump_flags & TDF_DETAILS) != 0)
++    {
++      print_generic_expr (dump_file, var, 0);
++      fprintf (dump_file, ": loop information indicates does not overflow\n");
++    }
++
++  return false;
++}
++
++
+ /* Given two numeric value ranges VR0, VR1 and a comparison code COMP:
+    
+    - Return BOOLEAN_TRUE_NODE if VR0 COMP VR1 always returns true for
+@@ -4156,7 +4231,7 @@
        t = retval = NULL_TREE;
        EXECUTE_IF_SET_IN_BITMAP (e2, 0, i2, bi2)
        {
@@ -151,17 +257,55 @@
  
          value_range_t vr2 = *(vr_value[i2]);
  
+@@ -4773,7 +4848,8 @@
+             if (vrp_val_is_max (vr_result.max))
+               goto varying;
+ 
+-            if (!needs_overflow_infinity (TREE_TYPE (vr_result.min)))
++            if (!needs_overflow_infinity (TREE_TYPE (vr_result.min))
++                || !vrp_var_may_overflow (lhs, phi))
+               vr_result.min = TYPE_MIN_VALUE (TREE_TYPE (vr_result.min));
+             else if (supports_overflow_infinity (TREE_TYPE (vr_result.min)))
+               vr_result.min =
+@@ -4791,7 +4867,8 @@
+             if (vrp_val_is_min (vr_result.min))
+               goto varying;
+ 
+-            if (!needs_overflow_infinity (TREE_TYPE (vr_result.max)))
++            if (!needs_overflow_infinity (TREE_TYPE (vr_result.max))
++                || !vrp_var_may_overflow (lhs, phi))
+               vr_result.max = TYPE_MAX_VALUE (TREE_TYPE (vr_result.max));
+             else if (supports_overflow_infinity (TREE_TYPE (vr_result.max)))
+               vr_result.max =
+@@ -4971,6 +5048,8 @@
+       {
+         tree one = build_int_cst (TREE_TYPE (op0), 1);
+         max = fold_build2 (MINUS_EXPR, TREE_TYPE (op0), max, one);
++        if (EXPR_P (max))
++          TREE_NO_WARNING (max) = 1;
+       }
+     }
+   else if (cond_code == GE_EXPR || cond_code == GT_EXPR)
+@@ -4984,6 +5063,8 @@
+       {
+         tree one = build_int_cst (TREE_TYPE (op0), 1);
+         min = fold_build2 (PLUS_EXPR, TREE_TYPE (op0), min, one);
++        if (EXPR_P (min))
++          TREE_NO_WARNING (min) = 1;
+       }
+     }
+ 
 Index: gcc/DATESTAMP
 ===================================================================
---- gcc/DATESTAMP      (.../tags/gcc_4_2_0_release)    (revision 125292)
-+++ gcc/DATESTAMP      (.../branches/gcc-4_2-branch)   (revision 125292)
+--- gcc/DATESTAMP      (.../tags/gcc_4_2_0_release)    (wersja 125589)
++++ gcc/DATESTAMP      (.../branches/gcc-4_2-branch)   (wersja 125589)
 @@ -1 +1 @@
 -20070514
-+20070603
++20070609
 Index: gcc/pointer-set.c
 ===================================================================
---- gcc/pointer-set.c  (.../tags/gcc_4_2_0_release)    (revision 125292)
-+++ gcc/pointer-set.c  (.../branches/gcc-4_2-branch)   (revision 125292)
+--- gcc/pointer-set.c  (.../tags/gcc_4_2_0_release)    (wersja 125589)
++++ gcc/pointer-set.c  (.../branches/gcc-4_2-branch)   (wersja 125589)
 @@ -22,13 +22,12 @@
  #include "system.h"
  #include "pointer-set.h"
@@ -385,8 +529,8 @@
 +}
 Index: gcc/pointer-set.h
 ===================================================================
---- gcc/pointer-set.h  (.../tags/gcc_4_2_0_release)    (revision 125292)
-+++ gcc/pointer-set.h  (.../branches/gcc-4_2-branch)   (revision 125292)
+--- gcc/pointer-set.h  (.../tags/gcc_4_2_0_release)    (wersja 125589)
++++ gcc/pointer-set.h  (.../branches/gcc-4_2-branch)   (wersja 125589)
 @@ -22,11 +22,21 @@
  #define POINTER_SET_H
  
@@ -412,9 +556,50 @@
  #endif  /* POINTER_SET_H  */
 Index: gcc/fold-const.c
 ===================================================================
---- gcc/fold-const.c   (.../tags/gcc_4_2_0_release)    (revision 125292)
-+++ gcc/fold-const.c   (.../branches/gcc-4_2-branch)   (revision 125292)
-@@ -12634,9 +12634,14 @@
+--- gcc/fold-const.c   (.../tags/gcc_4_2_0_release)    (wersja 125589)
++++ gcc/fold-const.c   (.../branches/gcc-4_2-branch)   (wersja 125589)
+@@ -4450,13 +4450,24 @@
+       {
+         low = range_successor (high1);
+         high = high0;
+-        in_p = (low != 0);
++        in_p = 1;
++        if (low == 0)
++          {
++            /* We are in the weird situation where high0 > high1 but
++               high1 has no successor.  Punt.  */
++            return 0;
++          }
+       }
+       else if (! subset || highequal)
+       {
+         low = low0;
+         high = range_predecessor (low1);
+-        in_p = (high != 0);
++        in_p = 1;
++        if (high == 0)
++          {
++            /* low0 < low1 but low1 has no predecessor.  Punt.  */
++            return 0;
++          }
+       }
+       else
+       return 0;
+@@ -4476,7 +4487,12 @@
+       {
+         low = range_successor (high0);
+         high = high1;
+-        in_p = (low != 0);
++        in_p = 1;
++        if (low == 0)
++          {
++            /* high1 > high0 but high0 has no successor.  Punt.  */
++            return 0;
++          }
+       }
+     }
+ 
+@@ -12634,9 +12650,14 @@
        /* ... fall through ...  */
  
      default:
@@ -434,15 +619,42 @@
    /* We don't know sign of `t', so be conservative and return false.  */
 Index: gcc/DEV-PHASE
 ===================================================================
---- gcc/DEV-PHASE      (.../tags/gcc_4_2_0_release)    (revision 125292)
-+++ gcc/DEV-PHASE      (.../branches/gcc-4_2-branch)   (revision 125292)
+--- gcc/DEV-PHASE      (.../tags/gcc_4_2_0_release)    (wersja 125589)
++++ gcc/DEV-PHASE      (.../branches/gcc-4_2-branch)   (wersja 125589)
 @@ -0,0 +1 @@
 +prerelease
 Index: gcc/ChangeLog
 ===================================================================
---- gcc/ChangeLog      (.../tags/gcc_4_2_0_release)    (revision 125292)
-+++ gcc/ChangeLog      (.../branches/gcc-4_2-branch)   (revision 125292)
-@@ -1,3 +1,174 @@
+--- gcc/ChangeLog      (.../tags/gcc_4_2_0_release)    (wersja 125589)
++++ gcc/ChangeLog      (.../branches/gcc-4_2-branch)   (wersja 125589)
+@@ -1,3 +1,201 @@
++2007-06-08  Kaz Kojima  <[EMAIL PROTECTED]>
++
++      PR target/32163
++      Backport from mainline.
++      * config/sh/sh.md (symGOT_load): Don't schedule insns when
++      the symbol is generated with the stack protector.
++
++2007-06-06  Ian Lance Taylor  <[EMAIL PROTECTED]>
++
++      * fold-const.c (merge_ranges): If range_successor or
++      range_predecessor fail, just return 0.
++
++2007-06-05  Ian Lance Taylor  <[EMAIL PROTECTED]>
++
++      * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
++      PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
++      (extract_range_from_assert): Set TREE_NO_WARNING when creating an
++      expression.
++      (test_for_singularity): Likewise.
++
++2007-06-04  Ian Lance Taylor  <[EMAIL PROTECTED]>
++
++      * tree-vrp.c (adjust_range_with_scev): When loop is not expected
++      to overflow, reduce overflow infinity to regular infinity.
++      (vrp_var_may_overflow): New static function.
++      (vrp_visit_phi_node): Check vrp_var_may_overflow.
++
 +2007-05-31  H.J. Lu  <[EMAIL PROTECTED]>
 +
 +      Backport from mainline:
@@ -617,7 +829,7 @@
  2007-05-13  Release Manager
  
        * GCC 4.2.0 released.
-@@ -307,7 +478,8 @@
+@@ -307,7 +505,8 @@
  2007-04-03  Stuart Hastings  <[EMAIL PROTECTED]>
  
        PR 31281
@@ -629,8 +841,8 @@
  2007-04-03  Jakub Jelinek  <[EMAIL PROTECTED]>
 Index: gcc/testsuite/gcc.c-torture/execute/vrp-7.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/vrp-7.c        
(.../tags/gcc_4_2_0_release)    (revision 0)
-+++ gcc/testsuite/gcc.c-torture/execute/vrp-7.c        
(.../branches/gcc-4_2-branch)   (revision 125292)
+--- gcc/testsuite/gcc.c-torture/execute/vrp-7.c        
(.../tags/gcc_4_2_0_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/execute/vrp-7.c        
(.../branches/gcc-4_2-branch)   (wersja 125589)
 @@ -0,0 +1,20 @@
 +
 +void abort (void);
@@ -654,8 +866,8 @@
 +}
 Index: gcc/testsuite/gcc.c-torture/execute/20070517-1.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/20070517-1.c   
(.../tags/gcc_4_2_0_release)    (revision 0)
-+++ gcc/testsuite/gcc.c-torture/execute/20070517-1.c   
(.../branches/gcc-4_2-branch)   (revision 125292)
+--- gcc/testsuite/gcc.c-torture/execute/20070517-1.c   
(.../tags/gcc_4_2_0_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/execute/20070517-1.c   
(.../branches/gcc-4_2-branch)   (wersja 125589)
 @@ -0,0 +1,41 @@
 +/* PR rtl-optimization/31691 */
 +/* Origin: Chi-Hua Chen <[EMAIL PROTECTED]> */
@@ -700,8 +912,8 @@
 +}
 Index: gcc/testsuite/gcc.c-torture/compile/pr31953.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr31953.c      
(.../tags/gcc_4_2_0_release)    (revision 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr31953.c      
(.../branches/gcc-4_2-branch)   (revision 125292)
+--- gcc/testsuite/gcc.c-torture/compile/pr31953.c      
(.../tags/gcc_4_2_0_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr31953.c      
(.../branches/gcc-4_2-branch)   (wersja 125589)
 @@ -0,0 +1,14 @@
 +struct WView
 +{
@@ -719,8 +931,8 @@
 +}
 Index: gcc/testsuite/gcc.target/i386/sse2-vec-3.c
 ===================================================================
---- gcc/testsuite/gcc.target/i386/sse2-vec-3.c (.../tags/gcc_4_2_0_release)    
(revision 0)
-+++ gcc/testsuite/gcc.target/i386/sse2-vec-3.c (.../branches/gcc-4_2-branch)   
(revision 125292)
+--- gcc/testsuite/gcc.target/i386/sse2-vec-3.c (.../tags/gcc_4_2_0_release)    
(wersja 0)
++++ gcc/testsuite/gcc.target/i386/sse2-vec-3.c (.../branches/gcc-4_2-branch)   
(wersja 125589)
 @@ -0,0 +1,37 @@
 +/* { dg-do run { target i?86-*-* x86_64-*-* } } */
 +/* { dg-options "-O2 -msse2" } */
@@ -761,8 +973,8 @@
 +}
 Index: gcc/testsuite/gcc.target/i386/pr31167.c
 ===================================================================
---- gcc/testsuite/gcc.target/i386/pr31167.c    (.../tags/gcc_4_2_0_release)    
(revision 0)
-+++ gcc/testsuite/gcc.target/i386/pr31167.c    (.../branches/gcc-4_2-branch)   
(revision 125292)
+--- gcc/testsuite/gcc.target/i386/pr31167.c    (.../tags/gcc_4_2_0_release)    
(wersja 0)
++++ gcc/testsuite/gcc.target/i386/pr31167.c    (.../branches/gcc-4_2-branch)   
(wersja 125589)
 @@ -0,0 +1,20 @@
 +/* { dg-do compile { target x86_64-*-* } } */
 +/* { dg-options "-O" } */
@@ -786,8 +998,8 @@
 +}
 Index: gcc/testsuite/gcc.target/i386/sse2-vec-4.c
 ===================================================================
---- gcc/testsuite/gcc.target/i386/sse2-vec-4.c (.../tags/gcc_4_2_0_release)    
(revision 0)
-+++ gcc/testsuite/gcc.target/i386/sse2-vec-4.c (.../branches/gcc-4_2-branch)   
(revision 125292)
+--- gcc/testsuite/gcc.target/i386/sse2-vec-4.c (.../tags/gcc_4_2_0_release)    
(wersja 0)
++++ gcc/testsuite/gcc.target/i386/sse2-vec-4.c (.../branches/gcc-4_2-branch)   
(wersja 125589)
 @@ -0,0 +1,41 @@
 +/* { dg-do run { target i?86-*-* x86_64-*-* } } */
 +/* { dg-options "-O2 -msse2" } */
@@ -832,8 +1044,8 @@
 +}
 Index: gcc/testsuite/gcc.target/i386/sse2-check.h
 ===================================================================
---- gcc/testsuite/gcc.target/i386/sse2-check.h (.../tags/gcc_4_2_0_release)    
(revision 0)
-+++ gcc/testsuite/gcc.target/i386/sse2-check.h (.../branches/gcc-4_2-branch)   
(revision 125292)
+--- gcc/testsuite/gcc.target/i386/sse2-check.h (.../tags/gcc_4_2_0_release)    
(wersja 0)
++++ gcc/testsuite/gcc.target/i386/sse2-check.h (.../branches/gcc-4_2-branch)   
(wersja 125589)
 @@ -0,0 +1,20 @@
 +#include <stdio.h>
 +#include <stdlib.h>
@@ -857,8 +1069,8 @@
 +}
 Index: gcc/testsuite/gcc.target/i386/sse2-vec-1.c
 ===================================================================
---- gcc/testsuite/gcc.target/i386/sse2-vec-1.c (.../tags/gcc_4_2_0_release)    
(revision 0)
-+++ gcc/testsuite/gcc.target/i386/sse2-vec-1.c (.../branches/gcc-4_2-branch)   
(revision 125292)
+--- gcc/testsuite/gcc.target/i386/sse2-vec-1.c (.../tags/gcc_4_2_0_release)    
(wersja 0)
++++ gcc/testsuite/gcc.target/i386/sse2-vec-1.c (.../branches/gcc-4_2-branch)   
(wersja 125589)
 @@ -0,0 +1,35 @@
 +/* { dg-do run { target i?86-*-* x86_64-*-* } } */
 +/* { dg-options "-O2 -msse2" } */
@@ -897,8 +1109,8 @@
 +}
 Index: gcc/testsuite/gcc.target/i386/sse2-vec-5.c
 ===================================================================
---- gcc/testsuite/gcc.target/i386/sse2-vec-5.c (.../tags/gcc_4_2_0_release)    
(revision 0)
-+++ gcc/testsuite/gcc.target/i386/sse2-vec-5.c (.../branches/gcc-4_2-branch)   
(revision 125292)
+--- gcc/testsuite/gcc.target/i386/sse2-vec-5.c (.../tags/gcc_4_2_0_release)    
(wersja 0)
++++ gcc/testsuite/gcc.target/i386/sse2-vec-5.c (.../branches/gcc-4_2-branch)   
(wersja 125589)
 @@ -0,0 +1,49 @@
 +/* { dg-do run { target i?86-*-* x86_64-*-* } } */
 +/* { dg-options "-O2 -msse2" } */
@@ -951,8 +1163,8 @@
 +}
 Index: gcc/testsuite/gcc.target/i386/sse2-vec-2.c
 ===================================================================
---- gcc/testsuite/gcc.target/i386/sse2-vec-2.c (.../tags/gcc_4_2_0_release)    
(revision 0)
-+++ gcc/testsuite/gcc.target/i386/sse2-vec-2.c (.../branches/gcc-4_2-branch)   
(revision 125292)
+--- gcc/testsuite/gcc.target/i386/sse2-vec-2.c (.../tags/gcc_4_2_0_release)    
(wersja 0)
++++ gcc/testsuite/gcc.target/i386/sse2-vec-2.c (.../branches/gcc-4_2-branch)   
(wersja 125589)
 @@ -0,0 +1,35 @@
 +/* { dg-do run { target i?86-*-* x86_64-*-* } } */
 +/* { dg-options "-O2 -msse2" } */
@@ -991,8 +1203,8 @@
 +}
 Index: gcc/testsuite/gcc.target/i386/sse2-vec-6.c
 ===================================================================
---- gcc/testsuite/gcc.target/i386/sse2-vec-6.c (.../tags/gcc_4_2_0_release)    
(revision 0)
-+++ gcc/testsuite/gcc.target/i386/sse2-vec-6.c (.../branches/gcc-4_2-branch)   
(revision 125292)
+--- gcc/testsuite/gcc.target/i386/sse2-vec-6.c (.../tags/gcc_4_2_0_release)    
(wersja 0)
++++ gcc/testsuite/gcc.target/i386/sse2-vec-6.c (.../branches/gcc-4_2-branch)   
(wersja 125589)
 @@ -0,0 +1,69 @@
 +/* { dg-do run { target i?86-*-* x86_64-*-* } } */
 +/* { dg-options "-O2 -msse2" } */
@@ -1063,11 +1275,78 @@
 +      abort ();
 +    }
 +}
+Index: gcc/testsuite/gcc.dg/Wstrict-overflow-18.c
+===================================================================
+--- gcc/testsuite/gcc.dg/Wstrict-overflow-18.c (.../tags/gcc_4_2_0_release)    
(wersja 0)
++++ gcc/testsuite/gcc.dg/Wstrict-overflow-18.c (.../branches/gcc-4_2-branch)   
(wersja 125589)
+@@ -0,0 +1,22 @@
++/* { dg-do compile } */
++/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow" } */
++
++/* Don't warn about an overflow when folding i > 0.  The loop analysis
++   should determine that i does not wrap.  */
++
++struct c { unsigned int a; unsigned int b; };
++extern void bar (struct c *);
++int
++foo (struct c *p)
++{
++  int i;
++  int sum = 0;
++
++  for (i = 0; i < p->a - p->b; ++i)
++    {
++      if (i > 0)
++      sum += 2;
++      bar (p);
++    }
++  return sum;
++}
+Index: gcc/testsuite/gcc.dg/Wstrict-overflow-19.c
+===================================================================
+--- gcc/testsuite/gcc.dg/Wstrict-overflow-19.c (.../tags/gcc_4_2_0_release)    
(wersja 0)
++++ gcc/testsuite/gcc.dg/Wstrict-overflow-19.c (.../branches/gcc-4_2-branch)   
(wersja 125589)
+@@ -0,0 +1,15 @@
++/* { dg-do compile } */
++/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow" } */
++
++/* Don't warn about an overflow when threading jumps.  We used to get
++   a warning from comparing bounds generated by VRP.  */
++
++int
++bar(int a, int b, int n)
++{
++  if (b > a)
++    n = a - b;
++  if (a >= b)
++    n = 1;
++  return n;
++}
 Index: gcc/testsuite/ChangeLog
 ===================================================================
---- gcc/testsuite/ChangeLog    (.../tags/gcc_4_2_0_release)    (revision 
125292)
-+++ gcc/testsuite/ChangeLog    (.../branches/gcc-4_2-branch)   (revision 
125292)
-@@ -1,3 +1,104 @@
+--- gcc/testsuite/ChangeLog    (.../tags/gcc_4_2_0_release)    (wersja 125589)
++++ gcc/testsuite/ChangeLog    (.../branches/gcc-4_2-branch)   (wersja 125589)
+@@ -1,3 +1,124 @@
++2007-06-08  Dirk Mueller  <[EMAIL PROTECTED]>
++
++      PR c++/31809
++      Backport from mainline:
++      2007-05-30  Jakub Jelinek  <[EMAIL PROTECTED]>
++
++      * g++.dg/opt/static5.C: New test.
++
++2007-06-06  Ian Lance Taylor  <[EMAIL PROTECTED]>
++
++      * g++.dg/conversion/enum1.C: New test.
++
++2007-06-05  Ian Lance Taylor  <[EMAIL PROTECTED]>
++
++      * gcc.dg/Wstrict-overflow-19.c: New test.
++
++2007-06-04  Ian Lance Taylor  <[EMAIL PROTECTED]>
++
++      * gcc.dg/Wstrict-overflow-18.c: New test.
++
 +2007-05-31  H.J. Lu  <[EMAIL PROTECTED]>
 +
 +      Backport from mainline:
@@ -1174,8 +1453,8 @@
        * GCC 4.2.0 released.
 Index: gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_bitops.f90
 ===================================================================
---- gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_bitops.f90        
(.../tags/gcc_4_2_0_release)    (revision 125292)
-+++ gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_bitops.f90        
(.../branches/gcc-4_2-branch)   (revision 125292)
+--- gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_bitops.f90        
(.../tags/gcc_4_2_0_release)    (wersja 125589)
++++ gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_bitops.f90        
(.../branches/gcc-4_2-branch)   (wersja 125589)
 @@ -8,7 +8,8 @@
     i = 2
     j = 3
@@ -1193,10 +1472,25 @@
 +   if (ishftc (a, 1, bit_size(a)) .ne. 10) call abort
 +   if (ishftc (1, 1, 32) .ne. 2) call abort
  end program
+Index: gcc/testsuite/g++.dg/conversion/enum1.C
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/SOURCES/gcc-branch.diff?r1=1.3&r2=1.4&f=u

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to