pch'ify default argument definitions and uses.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103376 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Frontend/PCHWriterStmt.cpp b/lib/Frontend/PCHWriterStmt.cpp
index e042e77..e64ebbe 100644
--- a/lib/Frontend/PCHWriterStmt.cpp
+++ b/lib/Frontend/PCHWriterStmt.cpp
@@ -125,6 +125,7 @@
     void VisitCXXTypeidExpr(CXXTypeidExpr *E);
     void VisitCXXThisExpr(CXXThisExpr *E);
     void VisitCXXThrowExpr(CXXThrowExpr *E);
+    void VisitCXXDefaultArgExpr(CXXDefaultArgExpr *E);
   };
 }
 
@@ -934,11 +935,25 @@
 }
 
 void PCHStmtWriter::VisitCXXThrowExpr(CXXThrowExpr *E) {
+  VisitExpr(E);
   Writer.AddSourceLocation(E->getThrowLoc(), Record);
   Writer.WriteSubStmt(E->getSubExpr());
   Code = pch::EXPR_CXX_THROW;
 }
 
+void PCHStmtWriter::VisitCXXDefaultArgExpr(CXXDefaultArgExpr *E) {
+  VisitExpr(E);
+  Writer.AddSourceLocation(E->getUsedLocation(), Record);
+  if (E->isExprStored()) {
+    Record.push_back(1);
+    Writer.WriteSubStmt(E->getExpr());
+  } else {
+    Record.push_back(0);
+  }
+
+  Code = pch::EXPR_CXX_DEFAULT_ARG;
+}
+
 
 //===----------------------------------------------------------------------===//
 // PCHWriter Implementation