On Feb 20, 2013, at 14:42 , Hal Finkel <[email protected]> wrote:

> ----- Original Message -----
>> From: "Jordan Rose" <[email protected]>
>> To: [email protected]
>> Sent: Wednesday, February 20, 2013 4:28:41 PM
>> Subject: r175681 - Revert "intmax_t is long long on Darwin, not long."
>> 
>> Author: jrose
>> Date: Wed Feb 20 16:28:41 2013
>> New Revision: 175681
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=175681&view=rev
>> Log:
>> Revert "intmax_t is long long on Darwin, not long."
>> 
>> 'long' and 'long long' are different for the purposes of mangling.
>> This caused <rdar://problem/13254874>.
> 
> Can you please explain this? I understand the name-mangling difference, but 
> if long long is larger than long, then intmax_t needs to be long long, no?
> 
> -Hal

The commit message was actually imprecise -- on iOS and 32-bit OS X, intmax_t 
is a 64-bit 'long long', but on x86_64 OS X both 'long' and 'long long' are 64 
bits, so in theory it doesn't matter. Our ancient GCC 4.2 seems to pick 'long' 
for its __INTMAX_TYPE__, though, so I guess we originally stayed compatible 
with that. Now we're stuck.

I should really have thought the change through more than I did...it was a 
heavy hammer to fix a diagnostic. John set me straight on how ill-thought-out 
this was.

Jordan
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to