aaron.ballman added inline comments.
================
Comment at: clang/lib/Sema/ParsedAttr.cpp:141
 
+static ParsedAttrInfo DefaultParsedAttrInfo;
 static const ParsedAttrInfo &getInfo(const ParsedAttr &A) {
----------------
Might as well lower this variable into the function -- no real need for it to 
have file scope.


================
Comment at: clang/utils/TableGen/ClangAttrEmitter.cpp:3400
 
-static std::string GenerateAppertainsTo(const Record &Attr, raw_ostream &OS) {
+static void GenerateAppertainsTo(const Record &Attr, raw_ostream &SS,
+                                 raw_ostream &OS) {
----------------
erichkeane wrote:
> john.brawn wrote:
> > erichkeane wrote:
> > > Why does this take SS AND OS.  What is the difference here?  Does this 
> > > actually use OS anymore?
> > It's because of GenerateCustomAppertainsTo.  That generates a function that 
> > expects to be at file scope (because emitAttributeMatchRules re-uses the 
> > same function), but at the time GenerateAppertainsTo is called SS is in the 
> > middle of the ParsedAttrInfo. Previously both the function that 
> > GenerateCustomAppertainsTo generates and that this file generates would be 
> > at file scope, so both were written to OS.
> Thanks!
I think the stream parameter names should be a bit more descriptive here (and 
perhaps some comments on the function would be a good idea as well). Perhaps 
`FileScopeStream` and `LexicalScopeStream`?


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

https://reviews.llvm.org/D31337



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

Reply via email to