to watch out for code like this too:
if (T.min 0) { ...
As that could possibly trigger off unsigned 0 warnings too.
Regards
Iain
Iain Buclaw:
You also need to watch out for code like this too:
if (T.min 0) { ...
As that could possibly trigger off unsigned 0 warnings too.
I was not talking about warnings. I was talking about changing the D language,
turning that into a _error_ if x is unsigned.
Bye,
bearophile
that's a little change in the D2 language itself, it's not a warning as the
one GCC shows on C code.
Recently Iain Buclaw has shown some patches for DMD:
http://d.puremagic.com/issues/show_bug.cgi?id=5490
Three cases were of unsigned 0, like:
+++ b/src/optimize.c
@@ -351,7 +351,7 @@ Expression
Do you like this little change in the D2 language?
To avoid troubles in generic code you need a little workaround:
if (__traits(isUnsigned, x) || x = 0) { ...
Bye,
bearophile
To avoid troubles in generic code you need a little workaround:
if (__traits(isUnsigned, x) || x = 0) { ...
That's not good enough yet. The first part of the test needs to be done in a
static if.
Bye,
bearophile