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



--- Comment #6 from Dan Gohman <sunfish at google dot com> 2013-04-15 05:14:27 
UTC ---

(In reply to comment #3)

> Pulling the unary minus out into a separate statement, like this:

> 

>   uint64_t y = -x;

>   return x <= INT64_MAX ? x : -y;

> 

> causes the program to execute correctly.



Actually, I meant to write this:



  uint64_t y = -x;

  return x <= INT64_MAX ? x : y;



and it still executes correctly, with no trap.

Reply via email to