aaron.ballman marked 7 inline comments as done.
aaron.ballman added inline comments.


================
Comment at: lib/Sema/SemaDeclAttr.cpp:8623
+  } else if (A.hasScope()) {
+#define ATTR(A)
+#define ATTR_NAMESPACE(A) .Case(#A, false)
----------------
dblaikie wrote:
> dblaikie wrote:
> > Not sure how it's done elsewhere - but I'd sink these #defines down to 
> > immediately before the #include
> I think most other uses of .inc files only #define the macros they need to - 
> assuming the others aren't defined, rather than explicitly providing an empty 
> definition? (but I'm not sure - I guess that means teh .inc file needs a 
> #ifndef X \ #define X #endif - but perhaps .inc files usually have those?)
This file is generated without a default for `ATTR`, so there are a few places 
where we have to define it to an empty macro. I could add it to the emitter and 
remove a few of these spurious definitions, but that can be done in a follow-up.


================
Comment at: lib/Sema/SemaDeclAttr.cpp:8623-8624
+  } else if (A.hasScope()) {
+#define ATTR(A)
+#define ATTR_NAMESPACE(A) .Case(#A, false)
+    if (llvm::StringSwitch<bool>(A.getScopeName()->getName())
----------------
aaron.ballman wrote:
> dblaikie wrote:
> > dblaikie wrote:
> > > Not sure how it's done elsewhere - but I'd sink these #defines down to 
> > > immediately before the #include
> > I think most other uses of .inc files only #define the macros they need to 
> > - assuming the others aren't defined, rather than explicitly providing an 
> > empty definition? (but I'm not sure - I guess that means teh .inc file 
> > needs a #ifndef X \ #define X #endif - but perhaps .inc files usually have 
> > those?)
> This file is generated without a default for `ATTR`, so there are a few 
> places where we have to define it to an empty macro. I could add it to the 
> emitter and remove a few of these spurious definitions, but that can be done 
> in a follow-up.
I think it's pretty awkward either way, so I'll go with your approach.


================
Comment at: lib/Sema/SemaDeclAttr.cpp:8629-8630
+      Warning = diag::warn_unknown_attribute_namespace_ignored;
+#undef ATTR_NAMESPACE
+#undef ATTR
+  } else if (A.isC2xAttribute() || A.isCXX11Attribute()) {
----------------
dblaikie wrote:
> Should AttrList.inc handle undefing all its attributes - so all its users 
> don't have to?
Good catch -- it already does that for me. I'll remove.


================
Comment at: utils/TableGen/ClangAttrEmitter.cpp:2553
 
+    void copyAttrNamespaces(std::set<std::string> &S) const {
+      for (const Record *R : Attrs) {
----------------
dblaikie wrote:
> Maybe "addAttrNamespacesTo" (not clear whether this would overwrite the 
> contens of the std::set, or add to it)
Good catch, I missed renaming it after a signature change where it was 
accepting an iterator instead of the container directly.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60872/new/

https://reviews.llvm.org/D60872



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

Reply via email to