summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2013-02-07 19:13:24 +0000
committerDouglas Gregor <dgregor@apple.com>2013-02-07 19:13:24 +0000
commit560b7fa0c44df3cc4f03b396957aaf7e8e6a8fc8 (patch)
treead58d2b0add10e0ac3f549f02e29320ded54b94c /clang/lib
parent0b62f8a632693b0091f3b2c7a77af18ec9773e09 (diff)
downloadbcm5719-llvm-560b7fa0c44df3cc4f03b396957aaf7e8e6a8fc8.tar.gz
bcm5719-llvm-560b7fa0c44df3cc4f03b396957aaf7e8e6a8fc8.zip
Retain all hidden methods in the global method pool, because they may become visible <rdar://problem/13172858>.
llvm-svn: 174648
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Sema/SemaDeclObjC.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclObjC.cpp b/clang/lib/Sema/SemaDeclObjC.cpp
index 0b09697a8f6..43b097d1f2b 100644
--- a/clang/lib/Sema/SemaDeclObjC.cpp
+++ b/clang/lib/Sema/SemaDeclObjC.cpp
@@ -2045,6 +2045,10 @@ bool Sema::MatchTwoMethodDeclarations(const ObjCMethodDecl *left,
left->getResultType(), right->getResultType()))
return false;
+ // If either is hidden, it is not considered to match.
+ if (left->isHidden() || right->isHidden())
+ return false;
+
if (getLangOpts().ObjCAutoRefCount &&
(left->hasAttr<NSReturnsRetainedAttr>()
!= right->hasAttr<NSReturnsRetainedAttr>() ||
OpenPOWER on IntegriCloud