|
From: | Anthony Liguori |
Subject: | Re: [Qemu-devel] [PATCH 2/5] CODING_STYLE: add C type rules |
Date: | Tue, 17 Aug 2010 15:29:45 -0500 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.11) Gecko/20100713 Lightning/1.0b1 Thunderbird/3.0.6 |
On 08/17/2010 02:43 PM, Jes Sorensen wrote:
On 08/17/10 21:24, malc wrote:On Tue, 17 Aug 2010, Jes Sorensen wrote:On 08/17/10 20:55, malc wrote:On Tue, 17 Aug 2010, Blue Swirl wrote:The other thing that might be worth mentioning in the int/long section is that long is complicated in broken development environments such as Windows where it is only 32 bit :(There's absolutely nothing broken about LLP64 it's as valid as any other ABI. (That's to Jes)Well it works if you program for it, but it still doesn't make it any good when you can't keep a pointer in a long to apply arithmetic to it. Anyway point with the documentation is to make it clear that we rely on being able to do long foo = (long)ptr;Which isn't (and never was) sanctioned by any standard, IOW not good.Well maybe this is where the problem is. Not being able to do this means that we need a special integer type to cover this case if we wanted to work on win64. Switching to long long would generate bad code on 32 bit archs so thats not an option.
FWIW, that type is intptr_t and it was introduced in C99. Regards, Anthony Liguori
Depending on your viewpoint it is either it not being a standard that is bad, or the LLP64 that is bad. Anyway this is personal preference. Jes
[Prev in Thread] | Current Thread | [Next in Thread] |