[cfe-dev] __has_attribute in system headers

Jean-Daniel Dupas devlists at shadowlab.org
Thu Feb 23 03:20:36 PST 2012

I got hit by this issue too. 

I tried to declare a cxx_noreturn macros (which is perfectly legal AFAIK), but it conflicted with clang  __has_feature() .

Having an alternate syntax for __has_xxx() special functions, or disabling macro evaluation in such context, would be really useful.

Le 22 févr. 2012 à 11:49, Tijl Coosemans a écrit :

> Hi,
> Currently only __has_attribute(attr) seems to work but not
> __has_attribute(__attr__), which means it cannot safely be used in
> system headers because applications may define attr. The same goes for
> things like __has_extension(attribute_deprecated_with_message).
> Should support for these alternative spellings be added?
> PS: I also noticed __has_attribute(const) produces an error:
> test.c:3:5: error: builtin feature check macro requires a parenthesized identifier
> #if     __has_attribute(const)
>        ^
> test.c:3:26: error: expected end of line in preprocessor expression                                 
> #if     __has_attribute(const)
>                             ^
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

-- Jean-Daniel

More information about the cfe-dev mailing list