dblaikie marked 2 inline comments as done. dblaikie added inline comments.
================ Comment at: clang/lib/CodeGen/MicrosoftCXXABI.cpp:4478-4480 // MSVC Windows on Arm64 considers a type not HFA if it is not an // aggregate according to the C++14 spec. This is not consistent with the // AAPCS64, but is defacto spec on that platform. ---------------- rnk wrote: > These comments seem stale. Are the checks below almost equivalent to C++14 > isAggregate? In any case, they associate with the logic below, which is > arm-specific. > > The arm check deserves some kind of comment to say that all aggregates are > permitted to be HFAs for non-ARM platforms, which mostly affects vectorcall > on x64/x86. Not especially equivalent to C++14 aggregate, despite Microsoft's reports, I think. For instance - the first requirement of a C++14 aggregate is that it has no user-provided ctors, but that's not a requirement for HFA: https://godbolt.org/z/Whazeha7v & the no base classes requirement doesn't apply to HFA either - only no non-HFA base classes (& empty classes are considered non-HFA). Updated the comment as best I could understand (I couldn't actually find the AAPCS64 rules to compare/contrast, so I'm hand waving a bit there - perhaps these ( https://github.com/ARM-software/abi-aa/blob/main/aapcs64/aapcs64.rst#homogeneous-aggregates ) are all the rules, though they're pretty slim, and don't discuss special members at all, for instance, nor refer to any particular C++ standard for further clarification, so far as I can see) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134688/new/ https://reviews.llvm.org/D134688 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits