[cfe-dev] _Generic compiles fine in c++ source

Prathamesh Kulkarni bilbotheelffriend at gmail.com
Sat Jan 18 09:54:04 PST 2014


On Sat, Jan 18, 2014 at 11:17 PM, Prathamesh Kulkarni
<bilbotheelffriend at gmail.com> wrote:
> On Sat, Jan 18, 2014 at 9:53 PM, Aaron Ballman <aaron at aaronballman.com> wrote:
>> Actually, I take that back, we treat it as a language extension (not
>> certain how I missed that). You should be seeing an extension warning:
>> "generic selections are a C11-specific feature" depending on your
>> compiler flags.
>>
>> So I wouldn't file a bug just yet. What flags are you passing in to
>> the compiler?
>
> I hadn't passed any flags initially. However when i passsed -Wc11-extensions,
> i got the warning:
> x.cpp:3:11: warning: generic selections are a C11-specific feature
> [-Wc11-extensions]
>   int a = _Generic (1, int: 2);
> But when I pass no options, it compiles silently.
>
>>
>> ~Aaron
>>
>> On Sat, Jan 18, 2014 at 11:21 AM, Aaron Ballman <aaron at aaronballman.com> wrote:
>>> That appears to be a bug; if you'd like, you could file a bug report
>>> at http://llvm.org/bugs on it.
>>>
>>> Good catch!
>>>
>>> ~Aaron
>>>
>>> On Sat, Jan 18, 2014 at 2:48 AM, Prathamesh Kulkarni
>>> <bilbotheelffriend at gmail.com> wrote:
>>>> Hi, sorry to ask a daft question but why does the following code
>>>> compile fine with clang/clang++ ?
>>>>
>>>> int main()
>>>> {
>>>>   int a = _Generic(1, int: 2);
>>>>   int &x = a;
>>>> }
>>>>
>>>> As far as I know, it does not conform to either C or C++ ( I believe
>>>> _Generic is not supported by C++ ? ).
>>>> It fails to compile with g++.
>>>>
The same thing is true for _Static_assert.
This compiled without any error/warning too (without passing any option):

int main()
{
    int a;
    int &x = a;
    _Static_assert(1, "hello world");
}

Are (most of) c11 features treated as language extensions ?


>>>> Thanks and Regards,
>>>> Prathamesh
>>>> _______________________________________________
>>>> cfe-dev mailing list
>>>> cfe-dev at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev



More information about the cfe-dev mailing list