[PATCH] D151298: [clang][LoongArch] Fix the calling convention for empty struct in C++ mode

Xi Ruoyao via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue May 23 23:52:34 PDT 2023


xry111 requested changes to this revision.
xry111 added a comment.
This revision now requires changes to proceed.

Blocking this as it's a deliberate decision made in D132285 <https://reviews.llvm.org/D132285>.

Is there any imperative reason we must really pass the empty struct?  The C++ standard only treats struct {} as size 1 for the semantics of pointer comparison.  While there is no pointers to registers, ignoring it in the register calling convention will make no harm.

And AFAIK it will be an undefined behavior attempting to (mis)use the padding space of/after the empty struct to pass any information.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D151298



More information about the cfe-commits mailing list