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