ahatanak added a comment.

We could probably do something like what this patch is doing and determine 
whether a class can be passed in registers based on whether its subobjects can 
be passed in registers. If all of the subobjects can be passed in registers, 
the current class can be passed in registers too unless something declared in 
the current class forces it to be passed indirectly (e.g., a virtual function 
is declared).

Alternatively, if we don't want to diverge too much from the existing Itanium 
ABI rules, a class annotated with `trivial_abi` should be treated as if its 
copy/move constructors are trivial and aren't inaccessible nor deleted for the 
purpose of calls.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D92361

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

Reply via email to