summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2011-04-12 16:34:14 +0000
committerFariborz Jahanian <fjahanian@apple.com>2011-04-12 16:34:14 +0000
commit240400b7460f9a9eab6d5a4faad991ade8633b1e (patch)
tree04c9a9a730afdba465601b0714d945c3f94a88c1 /clang/lib
parent1ec0f46169b52b7340f76bb8317fc3c17d803280 (diff)
downloadbcm5719-llvm-240400b7460f9a9eab6d5a4faad991ade8633b1e.tar.gz
bcm5719-llvm-240400b7460f9a9eab6d5a4faad991ade8633b1e.zip
Fix a regression where the initializer implements
the initialized's protocol and yet clang warns. objective-c issue, // rdar://9267196 llvm-svn: 129363
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/AST/ASTContext.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp
index 420fcd398d2..7317928d971 100644
--- a/clang/lib/AST/ASTContext.cpp
+++ b/clang/lib/AST/ASTContext.cpp
@@ -4987,15 +4987,15 @@ bool ASTContext::canAssignObjCInterfaces(const ObjCObjectType *LHS,
// OK, if LHS is a superclass of RHS *and*
// this superclass is assignment compatible with LHS.
// false otherwise.
- ObjCInterfaceDecl *SuperClass =
- RHS->getInterface()->getImmSubClassOf(LHS->getInterface());
- if (SuperClass) {
+ bool IsSuperClass =
+ LHS->getInterface()->isSuperClassOf(RHS->getInterface());
+ if (IsSuperClass) {
// OK if conversion of LHS to SuperClass results in narrowing of types
// ; i.e., SuperClass may implement at least one of the protocols
// in LHS's protocol list. Example, SuperObj<P1> = lhs<P1,P2> is ok.
// But not SuperObj<P1,P2,P3> = lhs<P1,P2>.
llvm::SmallPtrSet<ObjCProtocolDecl *, 8> SuperClassInheritedProtocols;
- CollectInheritedProtocols(SuperClass, SuperClassInheritedProtocols);
+ CollectInheritedProtocols(RHS->getInterface(), SuperClassInheritedProtocols);
// If super class has no protocols, it is not a match.
if (SuperClassInheritedProtocols.empty())
return false;
OpenPOWER on IntegriCloud