GCC Undefined Behavior Sanitizer

monarch_dodra via Digitalmars-d digitalmars-d at puremagic.com
Sun Oct 19 03:22:34 PDT 2014


On Sunday, 19 October 2014 at 09:56:44 UTC, Ola Fosheim Grøstad 
wrote:
> In C++ you should default to int and avoid uint unless you do 
> bit manipulation according to the C++ designers.
>
> There are three reasons: speed, portability to new hardware and 
> correctness.

Speed: How so?

Portability: One issue to keep in mind is that C works on *tons* 
of hardware. C allows hardware to follow either two's complement, 
or one's complement. This means that, at best, signed overflow 
can be implementation defined, but not defined by spec. 
Unfortunately, it appears C decided to outright go the undefined 
way.

Correctness: IMO, I'm not even sure. Yeah, use int for numbers, 
but stick to size_t for indexing. I've seen too many bugs on x64 
software when data becomes larger than 4G...


More information about the Digitalmars-d mailing list