This revision was automatically updated to reflect the committed changes.
Closed by commit rL328731: [ObjC++] Make parameter passing and function return
compatible with ObjC (authored by ahatanak, committed by ).
Herald added a subscriber: llvm-commits.
Changed prior to commit:
This revision was automatically updated to reflect the committed changes.
Closed by commit rC328731: [ObjC++] Make parameter passing and function return
compatible with ObjC (authored by ahatanak, committed by ).
Changed prior to commit:
https://reviews.llvm.org/D44908?vs=139935=140137#toc
rjmccall accepted this revision.
rjmccall added a comment.
This revision is now accepted and ready to land.
LGTM.
Repository:
rC Clang
https://reviews.llvm.org/D44908
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
ahatanak updated this revision to Diff 139935.
ahatanak added a comment.
Make ClangABICompat a LangOption and remove ForcePassIndirectly. Move the logic
in CodeGen that decides whether a parameter should be passed indirectly to Sema.
Repository:
rC Clang
https://reviews.llvm.org/D44908
rjmccall added a comment.
I think it's reasonable to pull that into LangOpts. It would need to be in
LangOpts anyway if we e.g. fixed an ABI bug in struct layout and needed a
compatibility handling to preserve the old behavior.
Repository:
rC Clang
https://reviews.llvm.org/D44908
ahatanak added a comment.
I tried to move the code in MicrosoftCXXABI::getRecordArgABI and
ItaniumCXXABI::passClassIndirect that determine whether a struct is passed
indirectly to Sema::CheckCompletedCXXClass, but couldn't do so since
getClangABICompat() is a method of CodeGenOpts, which Sema
ahatanak created this revision.
ahatanak added reviewers: rjmccall, doug.gregor, rsmith.
r326307 and r327870 made changes that enable __strong and __weak fields to be
declared in C structs. This patch changes the ObjC++ ABI so that structs with
__strong or __weak pointers can be passed to or