Skip to content

Commit 3edc459

Browse files
[Flang][OpenMP] Use uppercase names for directives in deprecation message
Change the way the deprecation message is emitted to make it easier for supporting deprecation of multiple directives.
1 parent 14db069 commit 3edc459

File tree

7 files changed

+32
-28
lines changed

7 files changed

+32
-28
lines changed

flang/lib/Semantics/resolve-directives.cpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2880,18 +2880,22 @@ void OmpAttributeVisitor::AddOmpRequiresToScope(Scope &scope,
28802880

28812881
void OmpAttributeVisitor::IssueNonConformanceWarning(
28822882
llvm::omp::Directive D, parser::CharBlock source) {
2883-
std::string warnStr = "";
2884-
std::string dirName = llvm::omp::getOpenMPDirectiveName(D).str();
2883+
std::string warnStr;
2884+
llvm::raw_string_ostream warnStrOS(warnStr);
2885+
warnStrOS << "OpenMP directive " << parser::ToUpperCaseLetters(llvm::omp::getOpenMPDirectiveName(D).str()) << " has been deprecated";
2886+
2887+
auto setAlternativeStr = [&warnStrOS](llvm::StringRef alt) {
2888+
warnStrOS << ", please use " << alt << " instead.";
2889+
};
28852890
switch (D) {
28862891
case llvm::omp::OMPD_master:
2887-
warnStr = "OpenMP directive '" + dirName +
2888-
"' has been deprecated, please use 'masked' instead.";
2892+
setAlternativeStr("MASKED");
2893+
break;
28892894
break;
28902895
case llvm::omp::OMPD_target_loop:
28912896
default:
2892-
warnStr = "OpenMP directive '" + dirName + "' has been deprecated.";
28932897
}
28942898
context_.Warn(
2895-
common::UsageWarning::OpenMPUsage, source, "%s"_warn_en_US, warnStr);
2899+
common::UsageWarning::OpenMPUsage, source, "%s"_warn_en_US, warnStrOS.str());
28962900
}
28972901
} // namespace Fortran::semantics

flang/test/Semantics/OpenMP/clause-validity01.f90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -476,14 +476,14 @@
476476
! 2.13.1 master
477477

478478
!$omp parallel
479-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
479+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
480480
!$omp master
481481
a=3.14
482482
!$omp end master
483483
!$omp end parallel
484484

485485
!$omp parallel
486-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
486+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
487487
!ERROR: NUM_THREADS clause is not allowed on the MASTER directive
488488
!$omp master num_threads(4)
489489
a=3.14

flang/test/Semantics/OpenMP/flush02.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080

8181
!$omp parallel num_threads(4)
8282
array = (/1, 2, 3, 4, 5, 6, 7, 8, 9, 10/)
83-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
83+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
8484
!$omp master
8585
!$omp flush (array)
8686
!$omp end master

flang/test/Semantics/OpenMP/nested-barrier.f90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ program omp_nest_barrier
7575
end do
7676
!$omp end critical
7777

78-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
78+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
7979
!$omp master
8080
do i = 1, 10
8181
k = k + 1
@@ -108,7 +108,7 @@ program omp_nest_barrier
108108
end do
109109
!$omp end ordered
110110

111-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
111+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
112112
!$omp master
113113
do i = 1, 10
114114
!ERROR: `DISTRIBUTE` region has to be strictly nested inside `TEAMS` region.

flang/test/Semantics/OpenMP/nested-master.f90

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ program omp_nest_master
99
!$omp do
1010
do i = 1, 10
1111
k = k + 1
12-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
12+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
1313
!ERROR: `MASTER` region may not be closely nested inside of `WORKSHARING`, `LOOP`, `TASK`, `TASKLOOP`, or `ATOMIC` region.
1414
!$omp master
1515
j = j -1
1616
!$omp end master
1717
end do
1818

1919
!$omp sections
20-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
20+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
2121
!ERROR: `MASTER` region may not be closely nested inside of `WORKSHARING`, `LOOP`, `TASK`, `TASKLOOP`, or `ATOMIC` region.
2222
!$omp master
2323
do i = 1, 10
@@ -27,7 +27,7 @@ program omp_nest_master
2727
!$omp end sections
2828

2929
!$omp single
30-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
30+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
3131
!ERROR: `MASTER` region may not be closely nested inside of `WORKSHARING`, `LOOP`, `TASK`, `TASKLOOP`, or `ATOMIC` region.
3232
!$omp master
3333
do i = 1, 10
@@ -41,7 +41,7 @@ program omp_nest_master
4141
!$omp task
4242
do i = 1, 10
4343
k = k + 1
44-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
44+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
4545
!ERROR: `MASTER` region may not be closely nested inside of `WORKSHARING`, `LOOP`, `TASK`, `TASKLOOP`, or `ATOMIC` region.
4646
!$omp master
4747
j = j -1
@@ -52,7 +52,7 @@ program omp_nest_master
5252
!$omp taskloop
5353
do i = 1, 10
5454
k = k + 1
55-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
55+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
5656
!ERROR: `MASTER` region may not be closely nested inside of `WORKSHARING`, `LOOP`, `TASK`, `TASKLOOP`, or `ATOMIC` region.
5757
!$omp master
5858
j = j -1
@@ -63,7 +63,7 @@ program omp_nest_master
6363
!$omp target parallel do simd
6464
do i = 1, 10
6565
k = k + 1
66-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
66+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
6767
!ERROR: The only OpenMP constructs that can be encountered during execution of a 'SIMD' region are the `ATOMIC` construct, the `LOOP` construct, the `SIMD` construct and the `ORDERED` construct with the `SIMD` clause.
6868
!ERROR: `MASTER` region may not be closely nested inside of `WORKSHARING`, `LOOP`, `TASK`, `TASKLOOP`, or `ATOMIC` region.
6969
!$omp master
@@ -75,7 +75,7 @@ program omp_nest_master
7575
!$omp critical
7676
do i = 1, 10
7777
k = k + 1
78-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
78+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
7979
!$omp master
8080
j = j -1
8181
!$omp end master
@@ -85,7 +85,7 @@ program omp_nest_master
8585
!$omp ordered
8686
do i = 1, 10
8787
k = k + 1
88-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
88+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
8989
!$omp master
9090
j = j -1
9191
!$omp end master
@@ -99,7 +99,7 @@ program omp_nest_master
9999
!$omp distribute
100100
do k =1, 10
101101
print *, "hello"
102-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
102+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
103103
!$omp master
104104
j = j -1
105105
!$omp end master
@@ -116,7 +116,7 @@ program omp_nest_master
116116
!$omp distribute
117117
do k =1, 10
118118
print *, "hello"
119-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
119+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
120120
!$omp master
121121
j = j -1
122122
!$omp end master
@@ -133,7 +133,7 @@ program omp_nest_master
133133
!$omp distribute
134134
do k =1, 10
135135
print *, "hello"
136-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
136+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
137137
!ERROR: `MASTER` region may not be closely nested inside of `WORKSHARING`, `LOOP`, `TASK`, `TASKLOOP`, or `ATOMIC` region.
138138
!$omp master
139139
j = j -1
@@ -151,7 +151,7 @@ program omp_nest_master
151151
!$omp distribute
152152
do k =1, 10
153153
print *, "hello"
154-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
154+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
155155
!ERROR: `MASTER` region may not be closely nested inside of `WORKSHARING`, `LOOP`, `TASK`, `TASKLOOP`, or `ATOMIC` region.
156156
!$omp master
157157
j = j -1

flang/test/Semantics/OpenMP/nested-teams.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ program main
4242
!$omp end teams
4343
end do
4444

45-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
45+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
4646
!$omp master
4747
!ERROR: TEAMS region can only be strictly nested within the implicit parallel region or TARGET region
4848
!$omp teams

flang/test/Semantics/OpenMP/ordered-simd.f90

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ SUBROUTINE ORDERED_BAD(N)
9595

9696
!$OMP CRITICAL
9797
C = C - A * B
98-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
98+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
9999
!$OMP MASTER
100100
DO I = 1,N
101101
!ERROR: `ORDERED` region may not be closely nested inside of `CRITICAL`, `ORDERED`, explicit `TASK` or `TASKLOOP` region.
@@ -108,7 +108,7 @@ SUBROUTINE ORDERED_BAD(N)
108108

109109
!$OMP ORDERED
110110
C = C - A * B
111-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
111+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
112112
!$OMP MASTER
113113
DO I = 1,N
114114
!ERROR: `ORDERED` region may not be closely nested inside of `CRITICAL`, `ORDERED`, explicit `TASK` or `TASKLOOP` region.
@@ -121,7 +121,7 @@ SUBROUTINE ORDERED_BAD(N)
121121

122122
!$OMP TASK
123123
C = C - A * B
124-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
124+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
125125
!ERROR: `MASTER` region may not be closely nested inside of `WORKSHARING`, `LOOP`, `TASK`, `TASKLOOP`, or `ATOMIC` region.
126126
!$OMP MASTER
127127
DO I = 1,N
@@ -136,7 +136,7 @@ SUBROUTINE ORDERED_BAD(N)
136136
!$OMP TASKLOOP
137137
DO J= 1,N
138138
C = C - A * B
139-
!WARNING: OpenMP directive 'master' has been deprecated, please use 'masked' instead.
139+
!WARNING: OpenMP directive MASTER has been deprecated, please use MASKED instead.
140140
!ERROR: `MASTER` region may not be closely nested inside of `WORKSHARING`, `LOOP`, `TASK`, `TASKLOOP`, or `ATOMIC` region.
141141
!$OMP MASTER
142142
DO I = 1,N

0 commit comments

Comments
 (0)