[PATCH] Parse Microsoft __declspec appearing after class body

Alp Toker alp at nuanti.com
Sun Nov 24 10:42:17 PST 2013


On 24/11/2013 14:40, Aaron Ballman wrote:
> What happens with this patch and the following ill-formed declaration:
>
> struct S {} __declspec(deprecated);
>
> Does this compile without error? If so, that would need to be
> diagnosed (and regardless, this would be a good test to have). Note,
> that code compiled with MSVC does not issue a diagnostic, but it also
> doesn't apply the declspec to anything. I would say this should issue
> a warning for us, and not apply the declspec to anything for greatest
> compatibility vs utility.

My patch handles that correctly. Here's the test:
|||
||test/SemaCXX/MicrosoftExtensions.cpp:416:26: warning: attribute 
'deprecated' is ignored, place it after "struct" to apply attribute to 
type declaration
   struct D {} __declspec(deprecated);
|
Alp.

>
> ~Aaron
>
> On Sun, Nov 24, 2013 at 8:08 AM, Alp Toker <alp at nuanti.com> wrote:
>> Hi David,
>>
>> The attached patch fixes __declspec parsing after the class specification.
>>
>> Verified against MSVC.
>>
>> Alp.
>>
>> --
>> http://www.nuanti.com
>> the browser experts
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>

-- 
http://www.nuanti.com
the browser experts

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20131124/23fb04c9/attachment.html>


More information about the cfe-commits mailing list