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



--- Comment #9 from Marc Glisse <glisse at gcc dot gnu.org> 2012-11-21 17:18:47 
UTC ---

Jakub, your patch makes sense to me (or min0.is_zero() and min1.is_zero()). I

am ashamed I managed to get products with [0,n] (with n larger than MAX/2)

wrong. Good thing Kenneth Zadeck's wide_int will soon allow us to remove most

of this horrible code.



Another test that shows the error (optimizes away the call to g):



void g();

void h();

void f(unsigned __int128 x){

  if(x>(unsigned __int128)(-3))return;

  unsigned __int128 y=2*x;

  if(y==42) g();

  else h();

}

Reply via email to