[Bug middle-end/38140] [4.4 Regression] ice for C code with -O2

2008-11-17 Thread jakub at gcc dot gnu dot org


--- Comment #4 from jakub at gcc dot gnu dot org  2008-11-17 08:48 ---
Created an attachment (id=16708)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16708action=view)
gcc44-pr38140.patch

Patch I'm ATM bootstrapping/regtesting.  tree-ssa-forwprop.c was creating
invalid GIMPLE.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38140



[Bug middle-end/38140] [4.4 Regression] ice for C code with -O2

2008-11-17 Thread jakub at gcc dot gnu dot org


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P1


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38140



[Bug middle-end/38140] [4.4 Regression] ice for C code with -O2

2008-11-17 Thread jakub at gcc dot gnu dot org


--- Comment #5 from jakub at gcc dot gnu dot org  2008-11-17 21:00 ---
Subject: Bug 38140

Author: jakub
Date: Mon Nov 17 20:58:52 2008
New Revision: 141949

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=141949
Log:
PR middle-end/38140
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If
propagating x = a into *x = b, add a cast if not useless
type conversion or don't optimize if another stmt would be
needed.

* gcc.dg/pr38140.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/pr38140.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-forwprop.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38140



[Bug middle-end/38140] [4.4 Regression] ice for C code with -O2

2008-11-17 Thread jakub at gcc dot gnu dot org


--- Comment #6 from jakub at gcc dot gnu dot org  2008-11-17 21:00 ---
Fixed.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38140



[Bug middle-end/38140] [4.4 Regression] ice for C code with -O2

2008-11-16 Thread jakub at gcc dot gnu dot org


--- Comment #3 from jakub at gcc dot gnu dot org  2008-11-16 12:33 ---
Shorter testcase:
int foo (void *x)
{
  int (*fn) (int);
  *(void **)fn = x;
  return fn (6);
}


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38140