[PATCH] D35056: GCC ABI incompatibility when passing object with trivial copy ctor, trivial dtor, and non-trivial move ctor

Vassil Vassilev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Aug 8 07:03:22 PDT 2017


v.g.vassilev added a comment.

I do not feel qualified enough to review this patch but I added few minor comments.



================
Comment at: include/clang/AST/DeclCXX.h:827
+    return data().DefaultedCopyConstructorIsDeleted;
+  }
+  /// \brief \c true if a defaulted move constructor for this class would be
----------------
Is there a reason for not keeping the default (for the file) 1 empty line between methods? Looks like if we add one new line before and after `hasSimpleMoveAssignment` is will be all consistent.


================
Comment at: lib/Sema/SemaDeclCXX.cpp:5731
+/// registers, per C++ [class.temporary]p3.
+static bool computeCanPassInRegisters(Sema &S, CXXRecordDecl *D) {
+  if (D->isDependentType() || D->isInvalidDecl())
----------------
It would be very useful if we somehow assert if this function is called before the class triviality is computed?


Repository:
  rL LLVM

https://reviews.llvm.org/D35056





More information about the cfe-commits mailing list