rjmccall added inline comments.

================
Comment at: include/clang/AST/Type.h:811
 
+  bool hasTrivialABIOverride() const;
+
----------------
This should get a comment, even if it's just to refer to the CXXRecordDecl 
method.


================
Comment at: lib/CodeGen/CGCall.cpp:3498
   bool HasAggregateEvalKind = hasAggregateEvaluationKind(type);
+  bool HasTrivialABIOverride = type.hasTrivialABIOverride();
 
----------------
Please sink this call to the points where you use it; it should be possible to 
avoid computing it in most cases.


================
Comment at: lib/CodeGen/CGCall.cpp:3505
+       CGM.getTarget().getCXXABI().areArgsDestroyedLeftToRightInCallee()) ||
+      HasTrivialABIOverride) {
     // If we're using inalloca, use the argument memory.  Otherwise, use a
----------------
e.g. here you can conditionalize it on HasAggregateEvalKind, which is both 
slightly faster and clearer to the reader.


================
Comment at: lib/CodeGen/CGCall.cpp:3518
+         CGM.getCXXABI().getRecordArgABI(RD) != CGCXXABI::RAA_Default) ||
+        HasTrivialABIOverride;
     if (DestroyedInCallee)
----------------
And here you can guard it by RD && RD->hasNonTrivialDestructor(), and you can 
just call hasNonTrivialABIOverride() directly on RD.


================
Comment at: lib/Sema/SemaDecl.cpp:11700
+    }
+  }
+
----------------
I think it's correct not to call CheckDestructorAccess and DiagnoseUseOfDecl 
here, since according to the standard destructor access is always supposed to 
be checked at the call-site, but please leave a comment explaining that.


https://reviews.llvm.org/D41039



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

Reply via email to