-0 assigned to a FP variable

bearophile bearophileHUGS at lycos.com
Sun Jan 9 16:27:11 PST 2011


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