[cfe-commits] [cfe-dev] [patch] add cxx_auto and cxx_for_range to has_extension

Jean-Daniel Dupas devlists at shadowlab.org
Wed Sep 7 01:03:22 PDT 2011


Le 6 sept. 2011 à 20:06, Richard Smith a écrit :

> Hi,
> 
> On Mon, September 5, 2011 14:02, Richard Smith wrote:
>> On Mon, September 5, 2011 09:20, Chandler Carruth wrote:
>>> On Mon, Sep 5, 2011 at 12:46 AM, Jean-Daniel Dupas
>>> <jddupas at gmail.com>wrote:
>>> 
>>>> I just saw that a recent commit add support of "auto type" and "for
>>>> range" to c++98 as language extension. (r39102: PR10458: Finesse behaviour
>>>> of C++0x features when in pre-0x mode. Accept for-range and auto with an
>>>> ExtWarn,
>>>> and produce a -Wc++0x-compat warning in C++98 mode when auto is used as a
>>>> storage class.)
>>> 
>>>> Shouldn't be this changed reflected in the __has_extension macro like
>>>> other language extensions ?
>>>> 
>>>> I attach a patch to fix this inconsistency.
>>> 
>>> Seems likely good, but I'll let the person who flipped the switch chime in.
>> 
>> The for-range part seems fine.
> 
> I've checked in the for-range half of the patch as r139149.
> 
>> If we want to enable __has_extension(cxx_auto_type), we should also update
>> the documentation to indicate precisely what it means, and we might benefit
>> from a separate __has_feature() flag for (a). My current preference would be
>> to promote the warning to an error (and use the "extension" for error recovery
>> only).
> 
> Keeping the extension, but not advertising cxx_auto_type, seems like the best
> compromise: we don't support the full syntax of cxx_auto_type in C++98.

Thanks.

-- Jean-Daniel








More information about the cfe-commits mailing list