summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Frontend/PCHReaderStmt.cpp8
-rw-r--r--clang/lib/Frontend/PCHWriterStmt.cpp3
2 files changed, 6 insertions, 5 deletions
diff --git a/clang/lib/Frontend/PCHReaderStmt.cpp b/clang/lib/Frontend/PCHReaderStmt.cpp
index 86dfd879ca6..6a11529b02c 100644
--- a/clang/lib/Frontend/PCHReaderStmt.cpp
+++ b/clang/lib/Frontend/PCHReaderStmt.cpp
@@ -502,11 +502,13 @@ void PCHStmtReader::VisitOffsetOfExpr(OffsetOfExpr *E) {
E->setComponent(I, Node(Start, Reader.GetIdentifier(Record[Idx++]), End));
break;
- case Node::Base:
- // FIXME: Implement this!
- llvm_unreachable("PCH for offsetof(base-specifier) not implemented");
+ case Node::Base: {
+ CXXBaseSpecifier *Base = new (*Reader.getContext()) CXXBaseSpecifier();
+ *Base = Reader.ReadCXXBaseSpecifier(DeclsCursor, Record, Idx);
+ E->setComponent(I, Node(Base));
break;
}
+ }
}
for (unsigned I = 0, N = E->getNumExpressions(); I != N; ++I)
diff --git a/clang/lib/Frontend/PCHWriterStmt.cpp b/clang/lib/Frontend/PCHWriterStmt.cpp
index e807ddff098..eee409b047d 100644
--- a/clang/lib/Frontend/PCHWriterStmt.cpp
+++ b/clang/lib/Frontend/PCHWriterStmt.cpp
@@ -483,8 +483,7 @@ void PCHStmtWriter::VisitOffsetOfExpr(OffsetOfExpr *E) {
break;
case OffsetOfExpr::OffsetOfNode::Base:
- // FIXME: Implement this!
- llvm_unreachable("PCH for offsetof(base-specifier) not implemented");
+ Writer.AddCXXBaseSpecifier(*ON.getBase(), Record);
break;
}
}
OpenPOWER on IntegriCloud