diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-11-15 06:20:27 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-11-15 06:20:27 +0000 |
commit | 64482c6ddba162c0c4df07ed4791fb08736d5a4c (patch) | |
tree | e001a4c9b06d9df014d378585a59f9dc31a4f1d3 /lib/Serialization | |
parent | e7bbab91f5cc899104d0a1dee6059d8413c70eeb (diff) |
[PCH] When serializing an PseudoObjectExpr or AtomicExpr, the serialization code must be set
otherwise it will crash with asserts on or it will be written as null pointer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144626 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Serialization')
-rw-r--r-- | lib/Serialization/ASTWriterStmt.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Serialization/ASTWriterStmt.cpp b/lib/Serialization/ASTWriterStmt.cpp index e25a20b353..e3311e9d90 100644 --- a/lib/Serialization/ASTWriterStmt.cpp +++ b/lib/Serialization/ASTWriterStmt.cpp @@ -753,6 +753,8 @@ void ASTStmtWriter::VisitPseudoObjectExpr(PseudoObjectExpr *E) { if (OpaqueValueExpr *OVE = dyn_cast<OpaqueValueExpr>(*i)) Writer.AddStmt(OVE->getSourceExpr()); } + + Code = serialization::EXPR_PSEUDO_OBJECT; } void ASTStmtWriter::VisitAtomicExpr(AtomicExpr *E) { @@ -768,6 +770,8 @@ void ASTStmtWriter::VisitAtomicExpr(AtomicExpr *E) { } Writer.AddSourceLocation(E->getBuiltinLoc(), Record); Writer.AddSourceLocation(E->getRParenLoc(), Record); + + Code = serialization::EXPR_ATOMIC; } //===----------------------------------------------------------------------===// |