This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Warning for converting (possibly) negative float/double to unsigned int


On Sat, Feb 27, 2016 at 10:39:59AM +0000, Andrew Haley wrote:
> On 26/02/16 21:28, Bradley Lucier wrote:
> > Any advice on how to proceed?  I'd be willing to write and test the few 
> > lines of code myself if I knew where to put them.
> 
> The best thing, rather than warning, would be to define this
> conversion as a GCC extension and implement it consistently
> everywhere.  Then we wouldn't need a warning, and there'd be
> one fewer trap.

I disagree.  That would slow down most of uses that use it when they know
the floating point value must be non-negative, for the benefit
of the few that invoke implementation defined behavior.
Just use -fsanitize=float-cast-overflow and you will be notified at runtime
when you run into this.

E.g.
(/lib64/libubsan.so.0+0x9202): runtime error: value -2 is outside the range of representable values of type 'unsigned int'

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]