summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/ParentMap.cpp
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2019-07-17 18:03:39 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2019-07-17 18:03:39 +0000
commit48f5a43bcc3b128aca54b99b565595a5fa6ad166 (patch)
treecf3b9a21568353265a5e339b659bc21bbba29c30 /clang/lib/AST/ParentMap.cpp
parentf90d3dff6edc906766cfe3196d6ac1b6d76e9c5a (diff)
downloadbcm5719-llvm-48f5a43bcc3b128aca54b99b565595a5fa6ad166.tar.gz
bcm5719-llvm-48f5a43bcc3b128aca54b99b565595a5fa6ad166.zip
[OPENMP]Fix PR42632: crash on the analysis of the OpenMP constructs.
Fixed processing of the CapturedStmt children to fix the crash of the OpenMP constructs during analysis. llvm-svn: 366357
Diffstat (limited to 'clang/lib/AST/ParentMap.cpp')
-rw-r--r--clang/lib/AST/ParentMap.cpp12
1 files changed, 12 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) {
OpenPOWER on IntegriCloud