From 7008421bd4afb93219ca6fa56ee9afa8464e27eb Mon Sep 17 00:00:00 2001 From: Nimish Mishra Date: Sat, 13 Nov 2021 20:20:34 +0530 Subject: [PATCH 1/2] Relaced UnknownDetails with MiscDetails --- flang/lib/Semantics/resolve-directives.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flang/lib/Semantics/resolve-directives.cpp b/flang/lib/Semantics/resolve-directives.cpp index 09fd779e71883..ff07a472d0530 100644 --- a/flang/lib/Semantics/resolve-directives.cpp +++ b/flang/lib/Semantics/resolve-directives.cpp @@ -1510,7 +1510,7 @@ void OmpAttributeVisitor::ResolveOmpName( } else if (ompFlag == Symbol::Flag::OmpCriticalLock) { // Create a new symbol. const auto pair{GetContext().scope.try_emplace( - name.source, Attrs{}, UnknownDetails{})}; + name.source, Attrs{}, MiscDetails::Kind::ConstructName)}; CHECK(pair.second); name.symbol = &pair.first->second.get(); } From 04a4c55e5254f0e4a96b4be6357dc98a420a1d72 Mon Sep 17 00:00:00 2001 From: Nimish Mishra Date: Tue, 14 Dec 2021 00:39:24 +0530 Subject: [PATCH 2/2] Added an XFAIL test case for critical construct name collision --- flang/test/Semantics/critical05.f90 | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 flang/test/Semantics/critical05.f90 diff --git a/flang/test/Semantics/critical05.f90 b/flang/test/Semantics/critical05.f90 new file mode 100644 index 0000000000000..6bc3644c0cafb --- /dev/null +++ b/flang/test/Semantics/critical05.f90 @@ -0,0 +1,18 @@ +! RUN: %python %S/test_symbols.py %s %flang_fc1 -fopenmp +! XFAIL: * +!Checking for name collision of a critical construct with other elements of a program + +!DEF: /check_symbols MainProgram +program check_symbols + !DEF: /check_symbols/i ObjectEntity INTEGER(4) + integer i, bar + !REF: /check_symbols/i + foo: do i = 1, 10 + end do foo + + !$omp critical (foo) + !$omp end critical (foo) + + !$omp critical (bar) + !$omp end critical (bar) +end program check_symbols