diff options
| author | Alexey Bataev <a.bataev@hotmail.com> | 2014-07-22 10:10:35 +0000 |
|---|---|---|
| committer | Alexey Bataev <a.bataev@hotmail.com> | 2014-07-22 10:10:35 +0000 |
| commit | 0162e459efac896816898588f6bbcf1fae43df41 (patch) | |
| tree | 57ff192fe3ebc50146104d8f26269f0646ff3e3b /clang/lib/Serialization | |
| parent | 9fb6e647e71678341e7a344051df439a1020aaf4 (diff) | |
| download | bcm5719-llvm-0162e459efac896816898588f6bbcf1fae43df41.tar.gz bcm5719-llvm-0162e459efac896816898588f6bbcf1fae43df41.zip | |
[OPENMP] Initial parsing and sema analysis for 'atomic' directive.
llvm-svn: 213639
Diffstat (limited to 'clang/lib/Serialization')
| -rw-r--r-- | clang/lib/Serialization/ASTReaderStmt.cpp | 12 | ||||
| -rw-r--r-- | clang/lib/Serialization/ASTWriterStmt.cpp | 7 |
2 files changed, 19 insertions, 0 deletions
diff --git a/clang/lib/Serialization/ASTReaderStmt.cpp b/clang/lib/Serialization/ASTReaderStmt.cpp index 3d6a9a70fc0..6c60745aa09 100644 --- a/clang/lib/Serialization/ASTReaderStmt.cpp +++ b/clang/lib/Serialization/ASTReaderStmt.cpp @@ -2036,6 +2036,13 @@ void ASTStmtReader::VisitOMPOrderedDirective(OMPOrderedDirective *D) { VisitOMPExecutableDirective(D); } +void ASTStmtReader::VisitOMPAtomicDirective(OMPAtomicDirective *D) { + VisitStmt(D); + // The NumClauses field was read in ReadStmtFromStream. + ++Idx; + VisitOMPExecutableDirective(D); +} + //===----------------------------------------------------------------------===// // ASTReader Implementation //===----------------------------------------------------------------------===// @@ -2595,6 +2602,11 @@ Stmt *ASTReader::ReadStmtFromStream(ModuleFile &F) { S = OMPOrderedDirective::CreateEmpty(Context, Empty); break; + case STMT_OMP_ATOMIC_DIRECTIVE: + S = OMPAtomicDirective::CreateEmpty( + Context, Record[ASTStmtReader::NumStmtFields], Empty); + break; + case EXPR_CXX_OPERATOR_CALL: S = new (Context) CXXOperatorCallExpr(Context, Empty); break; diff --git a/clang/lib/Serialization/ASTWriterStmt.cpp b/clang/lib/Serialization/ASTWriterStmt.cpp index 486f89d6770..70d834dedf0 100644 --- a/clang/lib/Serialization/ASTWriterStmt.cpp +++ b/clang/lib/Serialization/ASTWriterStmt.cpp @@ -1905,6 +1905,13 @@ void ASTStmtWriter::VisitOMPTaskDirective(OMPTaskDirective *D) { Code = serialization::STMT_OMP_TASK_DIRECTIVE; } +void ASTStmtWriter::VisitOMPAtomicDirective(OMPAtomicDirective *D) { + VisitStmt(D); + Record.push_back(D->getNumClauses()); + VisitOMPExecutableDirective(D); + Code = serialization::STMT_OMP_ATOMIC_DIRECTIVE; +} + void ASTStmtWriter::VisitOMPTaskyieldDirective(OMPTaskyieldDirective *D) { VisitStmt(D); VisitOMPExecutableDirective(D); |

