diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-03-10 01:41:22 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-03-10 01:41:22 +0000 |
commit | f81340096ddf2b5a75eee94a09ad30a7501ed816 (patch) | |
tree | b3786a40e60f737643a705af917ae285ecf0a903 /clang/lib/Frontend/MultiplexConsumer.cpp | |
parent | 63acdfdeb26616dfa1d9657fa666afc9b9440a2a (diff) | |
download | bcm5719-llvm-f81340096ddf2b5a75eee94a09ad30a7501ed816.tar.gz bcm5719-llvm-f81340096ddf2b5a75eee94a09ad30a7501ed816.zip |
[modules] Don't clobber a destructor's operator delete when adding another one;
move the operator delete updating into a separate update record so we can cope
with updating another module's destructor's operator delete.
llvm-svn: 231735
Diffstat (limited to 'clang/lib/Frontend/MultiplexConsumer.cpp')
-rw-r--r-- | clang/lib/Frontend/MultiplexConsumer.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/Frontend/MultiplexConsumer.cpp b/clang/lib/Frontend/MultiplexConsumer.cpp index 3c4fed1d18e..0d69f570be5 100644 --- a/clang/lib/Frontend/MultiplexConsumer.cpp +++ b/clang/lib/Frontend/MultiplexConsumer.cpp @@ -99,6 +99,8 @@ public: void AddedCXXTemplateSpecialization(const FunctionTemplateDecl *TD, const FunctionDecl *D) override; void DeducedReturnType(const FunctionDecl *FD, QualType ReturnType) override; + void ResolvedOperatorDelete(const CXXDestructorDecl *DD, + const FunctionDecl *Delete) override; void CompletedImplicitDefinition(const FunctionDecl *D) override; void StaticDataMemberInstantiated(const VarDecl *D) override; void AddedObjCCategoryToInterface(const ObjCCategoryDecl *CatD, @@ -154,6 +156,11 @@ void MultiplexASTMutationListener::DeducedReturnType(const FunctionDecl *FD, for (size_t i = 0, e = Listeners.size(); i != e; ++i) Listeners[i]->DeducedReturnType(FD, ReturnType); } +void MultiplexASTMutationListener::ResolvedOperatorDelete( + const CXXDestructorDecl *DD, const FunctionDecl *Delete) { + for (auto *L : Listeners) + L->ResolvedOperatorDelete(DD, Delete); +} void MultiplexASTMutationListener::CompletedImplicitDefinition( const FunctionDecl *D) { for (size_t i = 0, e = Listeners.size(); i != e; ++i) |