-0 assigned to a FP variable
Jim
bitcirkel at yahoo.com
Sun Jan 9 18:09:53 PST 2011
This is not really a bug.
I'd expect -0 to be an integer 0. Negative zero doesn't make sense for integers, and the behavior is consistent with C/C++.
A warning, like you proposed, could possibly help avoiding a mistake.
bearophile Wrote:
> A bug I've introduced once in my D code, are you able to spot it?
>
> void main() {
> double x = +0;
> double y = -0;
> }
>
>
> The bug: 'y' isn't the desired double -0.0
>
> To avoid this bug DMD may keep the -0 and +0 integer literals represented in two distinct ways, so they have two different values when/if assigned to a floating point. (But here D will behave a little differently from C).
> An alternative is to just add a warning to DMD.
> A third possibility is to just ignore this probably uncommon bug :-)
>
> Bye,
> bearophile
More information about the Digitalmars-d
mailing list