[cfe-dev] Predefined stdint macros (i.e. __UINT8_TYPE__, etc.)

Reid Kleckner rnk at google.com
Wed Jun 11 15:12:29 PDT 2014


On Wed, Jun 11, 2014 at 2:46 PM, Alp Toker <alp at nuanti.com> wrote:

>
> On 12/06/2014 00:33, Ben Smith wrote:
>
>> On Wed, Jun 11, 2014 at 12:14 PM, Chandler Carruth <chandlerc at google.com
>> <mailto:chandlerc at google.com>> wrote:
>>
>>
>>     On Wed, Jun 11, 2014 at 8:10 PM, Ben Smith <binji at chromium.org
>>     <mailto:binji at chromium.org>> wrote:
>>
>>         Hello cfe-dev,
>>
>>         Clang defines a subset of the predefined stdint macros that
>>         GCC does. In particular, GCC defines the following macros many
>>         of which are not defined in Clang:
>>
>>         __U?INT{_,_FAST,_LEAST}{8,16,32,64}_{MAX,TYPE}__
>>         __U?INT{PTR,MAX}_{MAX,TYPE}__
>>
>>         Some of these macros are used in newlib's stdint.h, if they
>>         exist. It seems that it hasn't been thoroughly tested with
>>         Clang, however, as some macros are assumed to exist.
>>
>>         Is it worth adding these to Clang?
>>
>>
>>     Yes, we should try to be compatible here, and generally it seems
>>     reasonable to define the fully expanded set of these.
>>
>>
>> Great, I'll make a CL adding these.
>>
>
> Be sure to put them behind !MSVCCompat* as we've been seeing problem
> reports about GCC definitions confusing MSVC code recently.
>

I don't agree with this necessarily.  If the macros don't actively conflict
with MSVC, I would add them to the set of integer types that we currently
define.

The problem with the __EXCEPTIONS macro was that exceptions don't work in
the MSVC ABI yet.  Once they do work, I would like to define __EXCEPTIONS
so that portable headers that detect the GCC macro will Just Work.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140611/6370805f/attachment.html>


More information about the cfe-dev mailing list