From cdb3f7e02603da24e537af83af4b83e8b30e46dc Mon Sep 17 00:00:00 2001 From: Tom Eccles Date: Tue, 20 May 2025 20:43:29 +0000 Subject: [PATCH] [flang][OpenMP] fix diagnostic for bad cancel type Fixes #133685 --- flang/lib/Semantics/check-omp-structure.cpp | 8 ++++---- flang/test/Semantics/OpenMP/cancel-bad-cancel-type.f90 | 6 ++++++ 2 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 flang/test/Semantics/OpenMP/cancel-bad-cancel-type.f90 diff --git a/flang/lib/Semantics/check-omp-structure.cpp b/flang/lib/Semantics/check-omp-structure.cpp index c6c4fdf8a8198..606014276e7ca 100644 --- a/flang/lib/Semantics/check-omp-structure.cpp +++ b/flang/lib/Semantics/check-omp-structure.cpp @@ -2575,8 +2575,8 @@ void OmpStructureChecker::CheckCancellationNest( } break; default: - // This should have been diagnosed by this point. - llvm_unreachable("Unexpected directive"); + // This is diagnosed later. + return; } if (!eligibleCancellation) { context_.Say(source, @@ -2614,8 +2614,8 @@ void OmpStructureChecker::CheckCancellationNest( parser::ToUpperCaseLetters(typeName.str())); break; default: - // This should have been diagnosed by this point. - llvm_unreachable("Unexpected directive"); + // This is diagnosed later. + return; } } } diff --git a/flang/test/Semantics/OpenMP/cancel-bad-cancel-type.f90 b/flang/test/Semantics/OpenMP/cancel-bad-cancel-type.f90 new file mode 100644 index 0000000000000..ea5e7be23e2f9 --- /dev/null +++ b/flang/test/Semantics/OpenMP/cancel-bad-cancel-type.f90 @@ -0,0 +1,6 @@ +!RUN: %python %S/../test_errors.py %s %flang_fc1 %openmp_flags + +program test +!ERROR: PARALLEL DO is not a cancellable construct +!$omp cancel parallel do +end