ahatanak added a comment.
This was reverted in r327294 because it caused module-enabled builders to fail
after I moved CXXRecordDecl::CanPassInRegisters to RecordDecl. I'm recommitting
this patch with fixes to ASTDeclReader and ASTWriter.
Repository:
rC Clang
https://reviews.llvm.org/D44095
This revision was automatically updated to reflect the committed changes.
Closed by commit rC327206: [ObjC] Allow declaring __weak pointer fields in C
structs in ARC. (authored by ahatanak, committed by ).
Repository:
rC Clang
https://reviews.llvm.org/D44095
Files:
include/clang/AST/Decl.h
This revision was automatically updated to reflect the committed changes.
Closed by commit rL327206: [ObjC] Allow declaring __weak pointer fields in C
structs in ARC. (authored by ahatanak, committed by ).
Herald added a subscriber: llvm-commits.
Changed prior to commit:
https://reviews.llvm.or
rjmccall accepted this revision.
rjmccall added a comment.
This revision is now accepted and ready to land.
LGTM, thanks.
Comment at: lib/CodeGen/CGNonTrivialStruct.cpp:764
+Object = CGF->EmitObjCConsumeObject(QT, Object);
+CGF->EmitARCStoreWeak(Addrs[DstIdx], Object, t
ahatanak added inline comments.
Comment at: include/clang/AST/Decl.h:3631
+PassedIndirectly = true;
+ }
+
rjmccall wrote:
> I feel like this flag should be set by Sema for C++ types that have to be
> passed indirectly as well; it can then become the single
ahatanak updated this revision to Diff 137500.
ahatanak marked 2 inline comments as done.
ahatanak added a comment.
Address review comments.
https://reviews.llvm.org/D44095
Files:
include/clang/AST/Decl.h
include/clang/AST/DeclCXX.h
include/clang/AST/Type.h
lib/AST/ASTImporter.cpp
lib
rjmccall added inline comments.
Comment at: include/clang/AST/Decl.h:3631
+PassedIndirectly = true;
+ }
+
I feel like this flag should be set by Sema for C++ types that have to be
passed indirectly as well; it can then become the single point of truth for
ahatanak created this revision.
ahatanak added reviewers: rjmccall, doug.gregor, rsmith.
This patch makes changes that are needed to allow `__weak` fields in C structs
when ARC is enabled.
Repository:
rC Clang
https://reviews.llvm.org/D44095
Files:
include/clang/AST/Decl.h
include/clang