Linked by Thom Holwerda on Thu 7th Oct 2010 19:10 UTC, submitted by tyrione
General Development LLVM 2.8 has been released. The release notes describe this new, ehm, release in greater detail, so head on over and give it a read.
Permalink for comment 444509
To read all comments associated with this story, please click here.
RE[4]: Comment by kaiwai
by Neolander on Fri 8th Oct 2010 14:10 UTC in reply to "RE[3]: Comment by kaiwai"
Neolander
Member since:
2010-03-08

Nor know the size of the integers you're using (...)

When I read this again, I fear that this is going to be misinterpreted, so I prefer to say it right away : I know that I can use sizeof() to know the size of integer types. But it doesn't make the results less platform- and compiler-specific.

If I use, say, "short" or "long", there's no way I can know what the size in bits of those are on a random platform and compiler, which is highly inconvenient in some cases (like if you want to be sure you can store number X in an integer data type, or for low-level development tasks) while not being exactly advantageous in any way. See http://en.wikipedia.org/wiki/64-bit#Specific_C-language_data_models as an example of this horrible mess.

We wouldn't have this if C, back in the day, had been defined with stdint-like fixed-size integer types in the first place and only "char" and "int" as vaguely-sized types (char because it's used to store characters anyway and int because it's a convenient shortcut to the machine's fastest integer type), or if its horrible integer types were not copied by C++ for compatibility reasons.

But well, I can't go back in time and change this... And thanks to the introduction of stdint.h in the C99 revision of C, the thing has been fixed there. So I can only hope that this fix is ported to C++ someday. Fixed-sized integers are just the way it should have been done in the first place.

Edited 2010-10-08 14:18 UTC

Reply Parent Score: 2