summaryrefslogtreecommitdiff
path: root/lib/Serialization
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2015-08-19 21:09:32 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2015-08-19 21:09:32 +0000
commite0066399c8da505d027ff10c42824ea046d01c08 (patch)
treee36f9237ee607bbe2d2ab78f05b2b6a56e85b965 /lib/Serialization
parent42b16e6936d5bf91afe89d3811c4d4c7cc1407aa (diff)
downloadclang-e0066399c8da505d027ff10c42824ea046d01c08.tar.gz
[modules] Don't needlessly bounce through Sema when updating exception specifications.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@245501 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Serialization')
-rw-r--r--lib/Serialization/ASTReader.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp
index fc9d29a908..440ca6d74b 100644
--- a/lib/Serialization/ASTReader.cpp
+++ b/lib/Serialization/ASTReader.cpp
@@ -8439,8 +8439,9 @@ void ASTReader::FinishedDeserializing() {
PendingExceptionSpecUpdates.clear();
for (auto Update : Updates) {
auto *FPT = Update.second->getType()->castAs<FunctionProtoType>();
- SemaObj->UpdateExceptionSpec(Update.second,
- FPT->getExtProtoInfo().ExceptionSpec);
+ auto ESI = FPT->getExtProtoInfo().ExceptionSpec;
+ for (auto *Redecl : Update.second->redecls())
+ Context.adjustExceptionSpec(cast<FunctionDecl>(Redecl), ESI);
}
}