summaryrefslogtreecommitdiffstats
path: root/clang/lib/ARCMigrate/Transforms.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-12-15 20:29:51 +0000
committerDouglas Gregor <dgregor@apple.com>2011-12-15 20:29:51 +0000
commitdc9166c8e1120dc0df1859ba6e3d457a458fd20f (patch)
treeeb14bbba9db83cabdb68f9855daa4109c4c1940a /clang/lib/ARCMigrate/Transforms.cpp
parent918f976e66e8311ab1053b83521511ddee039783 (diff)
downloadbcm5719-llvm-dc9166c8e1120dc0df1859ba6e3d457a458fd20f.tar.gz
bcm5719-llvm-dc9166c8e1120dc0df1859ba6e3d457a458fd20f.zip
Keep track of all declarations of an Objective-C class (both forward
declarations and definitions) as ObjCInterfaceDecls within the same redeclaration chain. This new representation matches what we do for C/C++ variables/functions/classes/templates/etc., and makes it possible to answer the query "where are all of the declarations of this class?" llvm-svn: 146679
Diffstat (limited to 'clang/lib/ARCMigrate/Transforms.cpp')
-rw-r--r--clang/lib/ARCMigrate/Transforms.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/ARCMigrate/Transforms.cpp b/clang/lib/ARCMigrate/Transforms.cpp
index e208e8471bd..21df2578727 100644
--- a/clang/lib/ARCMigrate/Transforms.cpp
+++ b/clang/lib/ARCMigrate/Transforms.cpp
@@ -80,7 +80,7 @@ bool trans::canApplyWeak(ASTContext &Ctx, QualType type,
ObjCInterfaceDecl *Class = ObjT->getInterfaceDecl();
if (!AllowOnUnknownClass && (!Class || Class->getName() == "NSObject"))
return false; // id/NSObject is not safe for weak.
- if (!AllowOnUnknownClass && Class->isForwardDecl())
+ if (!AllowOnUnknownClass && !Class->hasDefinition())
return false; // forward classes are not verifiable, therefore not safe.
if (Class->isArcWeakrefUnavailable())
return false;
OpenPOWER on IntegriCloud