From d8c31d41989b0748e2e5b8d7fa9cf7e7023bcbff Mon Sep 17 00:00:00 2001 From: Alexey Bataev Date: Wed, 11 Dec 2019 12:59:01 -0500 Subject: [OPENMP50]Fix capturing of if condition in target parallel for simd directive. Fixed capturing of the if condition if no modifer was specified in this condition. Previously could capture it only in outer region and it could lead to a compiler crash. --- clang/lib/Sema/SemaOpenMP.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'clang/lib') diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp index 4f4c4d2e887..91d76e64861 100644 --- a/clang/lib/Sema/SemaOpenMP.cpp +++ b/clang/lib/Sema/SemaOpenMP.cpp @@ -10705,8 +10705,10 @@ static OpenMPDirectiveKind getOpenMPCaptureRegionForClause( switch (DKind) { case OMPD_target_parallel_for_simd: if (OpenMPVersion >= 50 && - (NameModifier == OMPD_unknown || NameModifier == OMPD_simd)) + (NameModifier == OMPD_unknown || NameModifier == OMPD_simd)) { CaptureRegion = OMPD_parallel; + break; + } LLVM_FALLTHROUGH; case OMPD_target_parallel: case OMPD_target_parallel_for: -- cgit v1.2.3