[Issue 10093] wrong unsigned arithmetic

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu May 16 12:49:28 PDT 2013


http://d.puremagic.com/issues/show_bug.cgi?id=10093



--- Comment #8 from luka8088 <luka8088 at owave.net> 2013-05-16 12:49:27 PDT ---
(In reply to comment #6)
> > We don't talk about implicitly converting -1 to unsigned, right? That's a different case.
> ^ Am I missing something? ^
> 
> We're not talking about:
> func:
> void SetText(char* text, uint len);
> call:
> SetText(text, -1);
> ^ here -1 is a special constant meaning e.g. calculate the len of a null
> terminated string.
> 
> We're talking about:
> uint len = strlen(text);
> // ...
> Func(-len); // Why would you ever need this?

The original issue was:

auto offset = text1.length - text2.length;
func(offset);

and offset turned out to be around 4294967291

I was thinking, setting a uint to a negative value is kind of an overflow,
should it maybe be treated the same way like array bounds and be checked by
druntime (with optional disabling in production release)?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list