compnerd added inline comments.

================
Comment at: lib/Parse/ParseDecl.cpp:2989
+
+          Diag(Loc, diag::err_ms_attributes_not_enabled);
+          continue;
----------------
aaron.ballman wrote:
> compnerd wrote:
> > I think that we want to emit the diagnostic even if there is no parenthesis 
> > as `__declspec` is a reserved identifier, and we would normally diagnose 
> > the bad `__declspec` (expected '(' after '__declspec').
> Yes, but it could also lead to a rejecting code that we used to accept and 
> properly handle when __declspec is an identifier rather than a keyword. e.g.,
> ```
> struct __declspec {};
> 
> __declspec some_func(void);
> ```
> By looking for the paren, we run less risk of breaking working code, even if 
> that code abuses the implementation namespace (after all, __declspec it not a 
> keyword in this scenario).
But we would reject that code under `-fdeclspec` anyways.  I think having the 
code be more portable is a bit nicer.


https://reviews.llvm.org/D29868



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to