summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/PCHReader.cpp
diff options
context:
space:
mode:
authorSebastian Redl <sebastian.redl@getdesigned.at>2009-05-27 22:11:52 +0000
committerSebastian Redl <sebastian.redl@getdesigned.at>2009-05-27 22:11:52 +0000
commit5068f77ac7bc4fd898d2abb38d2cd1956c4e2a6f (patch)
tree2d30ff42b1d67fc92fd4addf5de38cbf1d4ae234 /clang/lib/Frontend/PCHReader.cpp
parent54eb224c3b46e58f603f1447d92d2d9c94b25d48 (diff)
downloadbcm5719-llvm-5068f77ac7bc4fd898d2abb38d2cd1956c4e2a6f.tar.gz
bcm5719-llvm-5068f77ac7bc4fd898d2abb38d2cd1956c4e2a6f.zip
Reintroduce the home for exception specs, and make Sema fill it. However, keep the spec out of the canonical type this time. Net effect is currently nothing, because the spec isn't checked anywhere.
llvm-svn: 72498
Diffstat (limited to 'clang/lib/Frontend/PCHReader.cpp')
-rw-r--r--clang/lib/Frontend/PCHReader.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/clang/lib/Frontend/PCHReader.cpp b/clang/lib/Frontend/PCHReader.cpp
index 46f4fb72542..63e4337c886 100644
--- a/clang/lib/Frontend/PCHReader.cpp
+++ b/clang/lib/Frontend/PCHReader.cpp
@@ -1670,8 +1670,16 @@ QualType PCHReader::ReadTypeRecord(uint64_t Offset) {
ParamTypes.push_back(GetType(Record[Idx++]));
bool isVariadic = Record[Idx++];
unsigned Quals = Record[Idx++];
+ bool hasExceptionSpec = Record[Idx++];
+ bool hasAnyExceptionSpec = Record[Idx++];
+ unsigned NumExceptions = Record[Idx++];
+ llvm::SmallVector<QualType, 2> Exceptions;
+ for (unsigned I = 0; I != NumExceptions; ++I)
+ Exceptions.push_back(GetType(Record[Idx++]));
return Context->getFunctionType(ResultType, ParamTypes.data(), NumParams,
- isVariadic, Quals);
+ isVariadic, Quals, hasExceptionSpec,
+ hasAnyExceptionSpec, NumExceptions,
+ Exceptions.data());
}
case pch::TYPE_TYPEDEF:
OpenPOWER on IntegriCloud