rsmith accepted this revision.
rsmith added a comment.
This revision is now accepted and ready to land.

Thanks, looks good subject to some comment fixes + a tiny change to 
`RecursiveASTVisitor`.



================
Comment at: clang/include/clang/AST/DeclCXX.h:3055
 
+/// Implicit declartion of a temporary that was materialized by
+/// MaterializeTemporaryExpr
----------------
Typo: declartion -> declaration


================
Comment at: clang/include/clang/AST/DeclCXX.h:3056
+/// Implicit declartion of a temporary that was materialized by
+/// MaterializeTemporaryExpr
+class LifetimeExtendedTemporaryDecl final : public Decl {
----------------
"a MaterializeTemporaryExpr."

We should probably also mention here that this only applies to 
`MaterializeTemporaryExpr`s that are lifetime-extended.


================
Comment at: clang/include/clang/AST/DeclCXX.h:3098
+
+  /// this isn't necessarily the initializer of the temporary due to the C++98
+  /// delayed materialization rules, but that skipRValueSubobjectAdjustments 
can
----------------
Start this comment by explaining what the function returns: "Retrieve the 
expression to which the temporary materialization conversion was applied."

"this" -> "This"


================
Comment at: clang/include/clang/AST/DeclCXX.h:3099
+  /// this isn't necessarily the initializer of the temporary due to the C++98
+  /// delayed materialization rules, but that skipRValueSubobjectAdjustments 
can
+  /// be used to find said initializer within the subexpression.
----------------
Remove "that" here.


================
Comment at: clang/include/clang/AST/RecursiveASTVisitor.h:1438
 
+DEF_TRAVERSE_DECL(LifetimeExtendedTemporaryDecl, {})
+
----------------
We should traverse the subexpression from here. (If someone directly starts a 
recursive visitation from the `LifetimeExtendedTemporaryDecl`, they should 
reach the subexpression.) ...


================
Comment at: clang/include/clang/AST/RecursiveASTVisitor.h:2642-2643
+  if (S->getLifetimeExtendedTemporaryDecl())
+    TRY_TO(TraverseLifetimeExtendedTemporaryDecl(
+        S->getLifetimeExtendedTemporaryDecl()));
+})
----------------
... and we should set `ShouldVisitChildren = false;` here because we already 
visited the children when visiting the `LifetimeExtendedTemporaryDecl`.


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

https://reviews.llvm.org/D69360



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

Reply via email to