summaryrefslogtreecommitdiffstats
path: root/clang/lib/Serialization
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-01-28 02:26:04 +0000
committerDouglas Gregor <dgregor@apple.com>2011-01-28 02:26:04 +0000
commitc03a1083afd6b96f46fea4f07e21d3c5d15ddf57 (patch)
tree0d40ab6c4cd7732d836b0abdab8d7a01c66ec163 /clang/lib/Serialization
parentdd2fe7adb548e8d38e4a685287099ab79ca004be (diff)
downloadbcm5719-llvm-c03a1083afd6b96f46fea4f07e21d3c5d15ddf57.tar.gz
bcm5719-llvm-c03a1083afd6b96f46fea4f07e21d3c5d15ddf57.zip
Give OpaqueValueExpr a source location, because its source location
might be queried in places where we absolutely require a valid location (e.g., for template instantiation). Fixes some major brokenness in the use of __is_convertible_to. llvm-svn: 124465
Diffstat (limited to 'clang/lib/Serialization')
-rw-r--r--clang/lib/Serialization/ASTReaderStmt.cpp1
-rw-r--r--clang/lib/Serialization/ASTWriterStmt.cpp1
2 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Serialization/ASTReaderStmt.cpp b/clang/lib/Serialization/ASTReaderStmt.cpp
index 79b68e63a8e..1a2284bde87 100644
--- a/clang/lib/Serialization/ASTReaderStmt.cpp
+++ b/clang/lib/Serialization/ASTReaderStmt.cpp
@@ -1327,6 +1327,7 @@ void ASTStmtReader::VisitSubstNonTypeTemplateParmPackExpr(
void ASTStmtReader::VisitOpaqueValueExpr(OpaqueValueExpr *E) {
VisitExpr(E);
+ E->Loc = ReadSourceLocation(Record, Idx);
}
Stmt *ASTReader::ReadStmt(PerFileData &F) {
diff --git a/clang/lib/Serialization/ASTWriterStmt.cpp b/clang/lib/Serialization/ASTWriterStmt.cpp
index 3962439ac5e..601de6d8f62 100644
--- a/clang/lib/Serialization/ASTWriterStmt.cpp
+++ b/clang/lib/Serialization/ASTWriterStmt.cpp
@@ -1332,6 +1332,7 @@ void ASTStmtWriter::VisitSubstNonTypeTemplateParmPackExpr(
void ASTStmtWriter::VisitOpaqueValueExpr(OpaqueValueExpr *E) {
VisitExpr(E);
+ Writer.AddSourceLocation(E->getLocation(), Record);
Code = serialization::EXPR_OPAQUE_VALUE;
}
OpenPOWER on IntegriCloud