diff options
author | Manman Ren <manman.ren@gmail.com> | 2016-04-29 19:04:05 +0000 |
---|---|---|
committer | Manman Ren <manman.ren@gmail.com> | 2016-04-29 19:04:05 +0000 |
commit | a0f31a01f34dbde84b331cf49685c04cf02c8250 (patch) | |
tree | 5fd2008f8a310a2c91eef697bc1c068290455c28 /clang/lib/Sema/SemaDeclObjC.cpp | |
parent | b014ee467d61ad0cfbf59f721b29e27082ea878d (diff) | |
download | bcm5719-llvm-a0f31a01f34dbde84b331cf49685c04cf02c8250.tar.gz bcm5719-llvm-a0f31a01f34dbde84b331cf49685c04cf02c8250.zip |
Method Pool in modules: we make sure that if a module contains an entry for
a selector, the entry should be complete, containing everything introduced by
that module and all modules it imports.
Before writing out the method pool of a module, we sync up the out of date
selectors by pulling in methods for the selectors, from all modules it imports.
In ReadMethodPool, after pulling in the method pool entry for module A, this
lets us skip the modules that module A imports.
rdar://problem/25900131
llvm-svn: 268091
Diffstat (limited to 'clang/lib/Sema/SemaDeclObjC.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDeclObjC.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclObjC.cpp b/clang/lib/Sema/SemaDeclObjC.cpp index 8090bec4fab..400dc637754 100644 --- a/clang/lib/Sema/SemaDeclObjC.cpp +++ b/clang/lib/Sema/SemaDeclObjC.cpp @@ -3305,6 +3305,12 @@ void Sema::ReadMethodPool(Selector Sel) { ExternalSource->ReadMethodPool(Sel); } +void Sema::updateOutOfDateSelector(Selector Sel) { + if (!ExternalSource) + return; + ExternalSource->updateOutOfDateSelector(Sel); +} + void Sema::AddMethodToGlobalPool(ObjCMethodDecl *Method, bool impl, bool instance) { // Ignore methods of invalid containers. |