http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54686
--- Comment #11 from Oleg Endo <olegendo at gcc dot gnu.org> 2012-09-23
21:50:37 UTC ---
(In reply to comment #10)
> (In reply to comment #8)
> > Thanks god (or whoever)
>
> Would that make me a half-god? seems dangerous...
>
> > that the following:
> >
> > unsigned int test_xx (unsigned int a)
> > {
> > return std::abs (a);
> > }
> >
> > ends up as a nop. *phew*.
>
> Try it with long (or long long) instead of int now...
You really scared me now.
unsigned long is also a nop.
unsigned short is also a nop.
unsigned char is also a nop.
*drumroll*
bool bleh (bool x)
{
return std::abs (x);
}
gets a fine floating treatment -- it is converted to double and then tested for
!= 0.0.