summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDecl.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2010-06-15 22:44:06 +0000
committerFariborz Jahanian <fjahanian@apple.com>2010-06-15 22:44:06 +0000
commit021510e96fdd46fb1fed1cefd6dabf472656e71c (patch)
treee964a3c3d3c4ae154166fd95a14b58f198d2aafd /clang/lib/Sema/SemaDecl.cpp
parent438c35b5d160179b1b90f2b30724bc6a4e08428e (diff)
downloadbcm5719-llvm-021510e96fdd46fb1fed1cefd6dabf472656e71c.tar.gz
bcm5719-llvm-021510e96fdd46fb1fed1cefd6dabf472656e71c.zip
Patch adds support for copying of those
objective-c++ class objects which have GC'able objc object pointers and need to use ObjC's objc_memmove_collectable API (radar 8070772). llvm-svn: 106061
Diffstat (limited to 'clang/lib/Sema/SemaDecl.cpp')
-rw-r--r--clang/lib/Sema/SemaDecl.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index d1818b813ce..e3d20bd5e48 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -6232,6 +6232,12 @@ void Sema::ActOnFields(Scope* S,
(FD->getType()->isObjCObjectPointerType() ||
FD->getType().isObjCGCStrong()))
Record->setHasObjectMember(true);
+ else if (Context.getAsArrayType(FD->getType())) {
+ QualType BaseType = Context.getBaseElementType(FD->getType());
+ if (Record && BaseType->isRecordType() &&
+ BaseType->getAs<RecordType>()->getDecl()->hasObjectMember())
+ Record->setHasObjectMember(true);
+ }
// Keep track of the number of named members.
if (FD->getIdentifier())
++NumNamedMembers;
OpenPOWER on IntegriCloud