jfb added inline comments.

================
Comment at: clang/include/clang/AST/Decl.h:1472
 
+  /// Do we need to emit an exit-time destructor for this variable?
+  bool isNoDestroy(const ASTContext &) const;
----------------
This is only valid for static variables, right? It's probably better to 
document the function name that way, e.g. `isStaticWithNoDestroy`.


================
Comment at: clang/include/clang/Basic/Attr.td:2999
+
+def NoDestroy : InheritableAttr {
+  let Spellings = [Clang<"no_destroy", 0>];
----------------
Ditto for these, I think the names of the variables should clarify that it's 
only for `static`. Note that I wouldn't rename the attributes themselves! Usage 
in context is unambiguous, and the docs should be clear. I just think the 
variable names don't provide the required context.


================
Comment at: clang/include/clang/Basic/AttrDocs.td:3494
+The ``always_destroy`` attribute specifies that a variable with static or 
thread
+storage duration should have it's exit-time destructor run. This attribute does
+nothing unless clang was invoked with -fno-c++-static-destructors.
----------------
"its"


================
Comment at: clang/include/clang/Basic/AttrDocs.td:3495
+storage duration should have it's exit-time destructor run. This attribute does
+nothing unless clang was invoked with -fno-c++-static-destructors.
+  }];
----------------
"does nothing" is more "is the default".


================
Comment at: clang/include/clang/Basic/AttrDocs.td:3503
+The ``no_destroy`` attribute specifies that a variable with static or thread
+storage duration shouldn't have it's exit-time destructor run. Annotating every
+static or thread duration variable with this attribute is equalivant to 
invoking
----------------
"its"


================
Comment at: clang/include/clang/Basic/AttrDocs.td:3504
+storage duration shouldn't have it's exit-time destructor run. Annotating every
+static or thread duration variable with this attribute is equalivant to 
invoking
+clang with -fno-c++-static-destructors.
----------------
"static and thread"


================
Comment at: clang/lib/Sema/SemaDeclAttr.cpp:5931
+    handleSimpleAttributeWithExclusions<NoDestroyAttr, AlwaysDestroyAttr>(S, 
D, A);
+  }
+}
----------------
This allows a variable with both attributes :)
Looking at the code above it seems like having both attributes is equivalent to 
no-destroy.


Repository:
  rC Clang

https://reviews.llvm.org/D50994



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

Reply via email to