diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2019-07-17 18:03:39 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2019-07-17 18:03:39 +0000 |
commit | 48f5a43bcc3b128aca54b99b565595a5fa6ad166 (patch) | |
tree | cf3b9a21568353265a5e339b659bc21bbba29c30 /clang/lib/AST/ParentMap.cpp | |
parent | f90d3dff6edc906766cfe3196d6ac1b6d76e9c5a (diff) | |
download | bcm5719-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.cpp | 12 |
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) { |