[PATCH] -fms-extensions: Implement half of #pragma init_seg

Aaron Ballman aaron at aaronballman.com
Mon Jul 21 19:25:13 PDT 2014


On Mon, Jul 21, 2014 at 8:42 PM, Reid Kleckner <rnk at google.com> wrote:
> Thanks!  I made the ExpectAndConsume changes.
>
> On Mon, Jul 21, 2014 at 8:09 AM, Aaron Ballman <aaron at aaronballman.com>
> wrote:
>>
>> > Index: test/SemaCXX/pragma-init_seg.cpp
>> > ===================================================================
>> > --- /dev/null
>> > +++ test/SemaCXX/pragma-init_seg.cpp
>> > @@ -0,0 +1,15 @@
>> > +// RUN: %clang_cc1 -fsyntax-only -verify -fms-extensions %s -triple
>> > x86_64-pc-win32
>> > +
>> > +#pragma init_seg(L".my_seg") // expected-warning {{expected 'compiler',
>> > 'lib', 'user', or a string literal}}
>> > +#pragma init_seg( // expected-warning {{expected 'compiler', 'lib',
>> > 'user', or a string literal}}
>> > +#pragma init_seg asdf // expected-warning {{missing '('}}
>> > +#pragma init_seg) // expected-warning {{missing '('}}
>> > +#pragma init_seg("a" "b") // no warning
>> > +#pragma init_seg("a", "b") // expected-warning {{missing ')'}}
>> > +#pragma init_seg("a") asdf // expected-warning {{extra tokens at end of
>> > '#pragma init_seg'}}
>> > +#pragma init_seg("\x") // expected-error {{\x used with no following
>> > hex digits}}
>> > +#pragma init_seg("a" L"b") // expected-warning {{expected non-wide
>> > string literal in '#pragma init_seg'}}
>>
>> I think these should be in test/Preprocessor instead of test/SemaCXX.
>
>
> I don't think Preprocessor is right, since -E won't trigger this processing.
> This is a parser test mushed into the same file as the SemaCXX test below.
> I'm going to leave this as-is and submit.

Ah, I thought -E would be sufficient to trigger it. I'm fine with
committing as-is.

~Aaron



More information about the cfe-commits mailing list