------- Additional Comments From steven at gcc dot gnu dot org  2005-01-23 
22:06 -------
The tree dump already looks wrong to me on mainline: 
 
g (k, l) 
{ 
  int j.0; 
  int j; 
  _Bool D.1460; 
  int D.1459; 
  int D.1458; 
  int D.1457; 
 
<bb 0>: 
  D.1457 = f (); 
  if (D.1457 != 0) goto <L0>; else goto <L1>; 
 
<L0>:; 
  j = k + l; 
  goto <bb 6> (<L5>); 
 
<L1>:; 
  j = k + l; 
  j.0 = j + 1; 
  if (j.0 > 0) goto <L2>; else goto <L3>; 
 
<L2>:; 
  j = j + 2; 
  goto <bb 6> (<L5>); 
 
<L3>:; 
  if (j.0 < 0) goto <L5>; else goto <L10>; 
 
<L10>:; 
  j = j.0; 
 
<L5>:; 
  if ((j & 1) != 0) goto <L8>; else goto <L9>; 
 
<L8>:; 
  abort (); 
 
<L9>:; 
  return; 
 
} 
 
Note how "j0 = j + 1" is assigned to j, which is "k + l" at that point, 
but the predecrement does not happen. 
 

-- 


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

Reply via email to