SOURCES: gcc-branch.diff - up from gcc-4_2-branch branch

arekm arekm at pld-linux.org
Sat Jun 9 12:20:51 CEST 2007


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  <kkojima at gcc.gnu.org>
++
++	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  <iant at google.com>
++
++	* fold-const.c (merge_ranges): If range_successor or
++	range_predecessor fail, just return 0.
++
++2007-06-05  Ian Lance Taylor  <iant at google.com>
++
++	* 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  <iant at google.com>
++
++	* 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  <hongjiu.lu at intel.com>
 +
 +	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  <stuart at apple.com>
  
  	PR 31281
@@ -629,8 +841,8 @@
  2007-04-03  Jakub Jelinek  <jakub at redhat.com>
 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 <stephaniechc-gccbug at yahoo.com> */
@@ -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  <dmueller at suse.de>
++
++	PR c++/31809
++	Backport from mainline:
++	2007-05-30  Jakub Jelinek  <jakub at redhat.com>
++
++	* g++.dg/opt/static5.C: New test.
++
++2007-06-06  Ian Lance Taylor  <iant at google.com>
++
++	* g++.dg/conversion/enum1.C: New test.
++
++2007-06-05  Ian Lance Taylor  <iant at google.com>
++
++	* gcc.dg/Wstrict-overflow-19.c: New test.
++
++2007-06-04  Ian Lance Taylor  <iant at google.com>
++
++	* gcc.dg/Wstrict-overflow-18.c: New test.
++
 +2007-05-31  H.J. Lu  <hongjiu.lu at intel.com>
 +
 +	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



More information about the pld-cvs-commit mailing list