This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Fix PR69574


I've bootstrapped and tested the followgn safe patch on 
x86_64-unknown-linux-gnu.

Applied.

Richard.

2016-02-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69574
	* tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
	of asserting return chrec_dont_know.

	* gcc.dg/torture/pr69574.c: New testcase.

Index: gcc/tree-chrec.c
===================================================================
*** gcc/tree-chrec.c	(revision 233033)
--- gcc/tree-chrec.c	(working copy)
*************** hide_evolution_in_other_loops_than_loop
*** 728,739 ****
  	/* There is no evolution in this loop.  */
  	return initial_condition (chrec);
  
        else
! 	{
! 	  gcc_assert (flow_loop_nested_p (loop, chloop));
! 	  return hide_evolution_in_other_loops_than_loop (CHREC_LEFT (chrec),
! 							  loop_num);
! 	}
  
      default:
        return chrec;
--- 728,739 ----
  	/* There is no evolution in this loop.  */
  	return initial_condition (chrec);
  
+       else if (flow_loop_nested_p (loop, chloop))
+ 	return hide_evolution_in_other_loops_than_loop (CHREC_LEFT (chrec),
+ 							loop_num);
+ 
        else
! 	return chrec_dont_know;
  
      default:
        return chrec;
Index: gcc/testsuite/gcc.dg/torture/pr69574.c
===================================================================
*** gcc/testsuite/gcc.dg/torture/pr69574.c	(revision 0)
--- gcc/testsuite/gcc.dg/torture/pr69574.c	(working copy)
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ 
+ typedef unsigned mytype;
+ 
+ struct S {
+     mytype *pu;
+ };
+ 
+ mytype f(struct S *e)
+ {
+   mytype x;
+   if(&x != e->pu)
+     __builtin_memcpy(&x, e->pu, sizeof(unsigned));
+   return x;
+ }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]