aaron.ballman marked 3 inline comments as done. aaron.ballman added inline comments.
================ Comment at: lib/Parse/ParseDecl.cpp:2989 + + Diag(Loc, diag::err_ms_attributes_not_enabled); + continue; ---------------- compnerd wrote: > 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. After discussing in IRC, I decided that I agree with @compnerd on this and have changed the patch accordingly. https://reviews.llvm.org/D29868 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits