postincrement behaviour (differences between dmd and gdc)
Iain Buclaw
ibuclaw at ubuntu.com
Wed Apr 20 02:33:47 PDT 2011
This was partially discussed before some time ago -
http://www.digitalmars.com/d/archives/digitalmars/D/postincrement_behaviour_differences_between_dmd_and_gdc_47334.html
The following statement has different behaviours in dmd and gdc.
int x;
x = x++;
Where the backend for DMD interprets it as:
tmp = x;
x++;
x = tmp;
And the backend for GDC interprets it as:
x = x;
x++;
Skipping all undefined behaviour/which one is correct talk, an alternative
suggestion would be to treat such nonsensical code as an error - like "Cannot
modify the value of a variable twice in the same expression." - as this kind
of thing I would expect to be almost always a bug.
Regards
More information about the Digitalmars-d
mailing list