summaryrefslogtreecommitdiffstats
path: root/clang/lib/Serialization
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2014-07-22 10:10:35 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2014-07-22 10:10:35 +0000
commit0162e459efac896816898588f6bbcf1fae43df41 (patch)
tree57ff192fe3ebc50146104d8f26269f0646ff3e3b /clang/lib/Serialization
parent9fb6e647e71678341e7a344051df439a1020aaf4 (diff)
downloadbcm5719-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.cpp12
-rw-r--r--clang/lib/Serialization/ASTWriterStmt.cpp7
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);
OpenPOWER on IntegriCloud