r366357 - [OPENMP]Fix PR42632: crash on the analysis of the OpenMP constructs.
Alexey Bataev via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 17 11:03:40 PDT 2019
Author: abataev
Date: Wed Jul 17 11:03:39 2019
New Revision: 366357
URL: http://llvm.org/viewvc/llvm-project?rev=366357&view=rev
Log:
[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.
Modified:
cfe/trunk/lib/AST/ParentMap.cpp
cfe/trunk/test/Analysis/openmp-unsupported.c
Modified: cfe/trunk/lib/AST/ParentMap.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ParentMap.cpp?rev=366357&r1=366356&r2=366357&view=diff
==============================================================================
--- cfe/trunk/lib/AST/ParentMap.cpp (original)
+++ cfe/trunk/lib/AST/ParentMap.cpp Wed Jul 17 11:03:39 2019
@@ -83,6 +83,18 @@ static void BuildParentMap(MapTy& M, Stm
}
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) {
Modified: cfe/trunk/test/Analysis/openmp-unsupported.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/openmp-unsupported.c?rev=366357&r1=366356&r2=366357&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/openmp-unsupported.c (original)
+++ cfe/trunk/test/Analysis/openmp-unsupported.c Wed Jul 17 11:03:39 2019
@@ -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)
+ ;
}
More information about the cfe-commits
mailing list