[Bug tree-optimization/27090] FRE does loop past previous type casts

2006-04-10 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2006-04-10 18:12 ---
Well really more like:
int f(int *a)
{
  int t = *a;
  unsigned *b = (unsigned *)a;
  int *c = (int*)b;
  return *c + t;
}

Which should be the same as:
int f(int *a)
{
  return *a * 2;
}


-- 


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



[Bug tree-optimization/27090] FRE does loop past previous type casts

2006-04-09 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2006-04-09 17:40 ---
Actually this testcase comes down to:

int f(int *a)
{
  *a = 1;
  unsigned *b = (unsigned *)a;
  int *c = (int*)b;
  return *c;
}


And this is caught correctly at the RTL level.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||TREE
   Last reconfirmed|-00-00 00:00:00 |2006-04-09 17:40:40
   date||
Summary|FRE does not value number   |FRE does loop past previous
   |effective types |type casts


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