[cfe-dev] _Generic compiles fine in c++ source
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
> int a = _Generic (1, int: 2);
> But when I pass no options, it compiles silently.
>> 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!
>>> 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 &x = a;
_Static_assert(1, "hello world");
Are (most of) c11 features treated as language extensions ?
>>>> Thanks and Regards,
>>>> cfe-dev mailing list
>>>> cfe-dev at cs.uiuc.edu
More information about the cfe-dev