summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/lib/AST/ParentMap.cpp12
-rw-r--r--clang/test/Analysis/openmp-unsupported.c4
2 files changed, 16 insertions, 0 deletions
diff --git a/clang/lib/AST/ParentMap.cpp b/clang/lib/AST/ParentMap.cpp
index e09b5bbe75f..2ff5c9d8aeb 100644
--- a/clang/lib/AST/ParentMap.cpp
+++ b/clang/lib/AST/ParentMap.cpp
@@ -83,6 +83,18 @@ static void BuildParentMap(MapTy& M, Stmt* S,
}
break;
}
+ case Stmt::CapturedStmtClass:
+ for (Stmt *SubStmt : S->children()) {
+ if (SubStmt) {
+ M[SubStmt] = S;
+ BuildParentMap(M, SubStmt, OVMode);
+ }
+ }
+ if (Stmt *SubStmt = cast<CapturedStmt>(S)->getCapturedStmt()) {
+ M[SubStmt] = S;
+ BuildParentMap(M, SubStmt, OVMode);
+ }
+ break;
default:
for (Stmt *SubStmt : S->children()) {
if (SubStmt) {
diff --git a/clang/test/Analysis/openmp-unsupported.c b/clang/test/Analysis/openmp-unsupported.c
index 7e363eecbaa..b2e1a1b0217 100644
--- a/clang/test/Analysis/openmp-unsupported.c
+++ b/clang/test/Analysis/openmp-unsupported.c
@@ -4,4 +4,8 @@
void openmp_parallel_crash_test() {
#pragma omp parallel
;
+#pragma omp parallel for
+ for (int i = 0; i < 8; ++i)
+ for (int j = 0, k = 0; j < 8; ++j)
+ ;
}
OpenPOWER on IntegriCloud