summaryrefslogtreecommitdiffstats
path: root/clang/lib/Serialization
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2015-08-06 12:30:57 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2015-08-06 12:30:57 +0000
commita889917493e990c314a088c3611523f8cf908eb0 (patch)
tree2c1ac345c6eb0bd85960a939f5ee45e8e9b30bc2 /clang/lib/Serialization
parent3abb97e4c65a12089ca45d4d1c2b2038ee2231a1 (diff)
downloadbcm5719-llvm-a889917493e990c314a088c3611523f8cf908eb0.tar.gz
bcm5719-llvm-a889917493e990c314a088c3611523f8cf908eb0.zip
[OPENMP 4.1] Allow references in init expression for loop-based constructs.
OpenMP 4.1 allows to use variables with reference types in private clauses and, therefore, in init expressions of the cannonical loop forms. llvm-svn: 244209
Diffstat (limited to 'clang/lib/Serialization')
-rw-r--r--clang/lib/Serialization/ASTReaderStmt.cpp4
-rw-r--r--clang/lib/Serialization/ASTWriterStmt.cpp3
2 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/Serialization/ASTReaderStmt.cpp b/clang/lib/Serialization/ASTReaderStmt.cpp
index 83c46253547..f95e66fc071 100644
--- a/clang/lib/Serialization/ASTReaderStmt.cpp
+++ b/clang/lib/Serialization/ASTReaderStmt.cpp
@@ -2113,6 +2113,10 @@ void ASTStmtReader::VisitOMPLoopDirective(OMPLoopDirective *D) {
Sub.clear();
for (unsigned i = 0; i < CollapsedNum; ++i)
Sub.push_back(Reader.ReadSubExpr());
+ D->setPrivateCounters(Sub);
+ Sub.clear();
+ for (unsigned i = 0; i < CollapsedNum; ++i)
+ Sub.push_back(Reader.ReadSubExpr());
D->setUpdates(Sub);
Sub.clear();
for (unsigned i = 0; i < CollapsedNum; ++i)
diff --git a/clang/lib/Serialization/ASTWriterStmt.cpp b/clang/lib/Serialization/ASTWriterStmt.cpp
index 74a37fd4f9b..b9c14e548c4 100644
--- a/clang/lib/Serialization/ASTWriterStmt.cpp
+++ b/clang/lib/Serialization/ASTWriterStmt.cpp
@@ -1957,6 +1957,9 @@ void ASTStmtWriter::VisitOMPLoopDirective(OMPLoopDirective *D) {
for (auto I : D->counters()) {
Writer.AddStmt(I);
}
+ for (auto I : D->private_counters()) {
+ Writer.AddStmt(I);
+ }
for (auto I : D->updates()) {
Writer.AddStmt(I);
}
OpenPOWER on IntegriCloud