GCC Undefined Behavior Sanitizer

via Digitalmars-d digitalmars-d at puremagic.com
Fri Oct 17 08:58:02 PDT 2014


On Friday, 17 October 2014 at 15:17:12 UTC, ketmar via 
Digitalmars-d wrote:
> it's good. but this not justifies the decision to make 2's 
> complement
> overflow undefined.

If you want a circular type, then call it something to that 
effect. Not uint or int. Call it bits or wrapint.

> yes. what's wrong with using long/ulong when you need 64 bits?

What is wrong and arbitrary is promoting to 32-bits by default.

> did you noticed long/ulong types in D specs? and reserved 
> 'cent' type
> for that matter?

If you want fixed width, make it part of the name: i8, i16, i24, 
i32, i64…

Seriously, if you are going to stick to fixed register sizes you 
have to support 24 bit and other common register sizes too. 
Otherwise you'll get 24bit wrapping 32bit ints.

> i was trying to use C for Z80, and that wasn't a huge success 
> that days.

How did you manage to compile with it? ;-) The first good 
programming tool I had was an assembler written in Basic… I had 
to load the assembler from tape… slooow. And if my program hung I 
had to reset and reload it. Patience… Then again, that makes you 
a very careful programmer ;)

> have D5 or so. nobody using K&R C now, right?

ANSI-C is pretty much the same, plenty of codebases are converted 
over from K&R. With roots in the 70s… :-P

> around. let's talk about this when we'll have widespreaded HW 
> with this feature.

That goes real fast, because is probably cheaper to have it built 
into all CPUs of the same generation and just disable it on the 
ones that have to be sold cheap because they are slow/market 
demand.

> and i must spend time to make some silicon crap happy, again?

If you want a high level language, no.

If you want a system level language, yes!!!!!!!!!!


More information about the Digitalmars-d mailing list