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
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits