mirror of
https://github.com/intel/llvm.git
synced 2026-01-26 21:53:12 +08:00
[flang][OpenMP] Deprecation message for DESTROY with no argument (#114988)
[5.2:625:17] The syntax of the DESTROY clause on the DEPOBJ construct with no argument was deprecated.
This commit is contained in:
committed by
GitHub
parent
76f993b6f6
commit
5f8b83e40c
@@ -2687,11 +2687,19 @@ void OmpStructureChecker::Enter(const parser::OmpClause::Destroy &x) {
|
||||
llvm::omp::Directive dir{GetContext().directive};
|
||||
unsigned version{context_.langOptions().OpenMPVersion};
|
||||
if (dir == llvm::omp::Directive::OMPD_depobj) {
|
||||
if (version < 52) {
|
||||
context_.Say(GetContext().clauseSource,
|
||||
"The object parameter in DESTROY clause in DEPOPJ construct "
|
||||
"was introduced in %s"_port_en_US,
|
||||
ThisVersion(52));
|
||||
unsigned argSince{52}, noargDeprecatedIn{52};
|
||||
if (x.v) {
|
||||
if (version < argSince) {
|
||||
context_.Say(GetContext().clauseSource,
|
||||
"The object parameter in DESTROY clause on DEPOPJ construct is not allowed in %s, %s"_warn_en_US,
|
||||
ThisVersion(version), TryVersion(argSince));
|
||||
}
|
||||
} else {
|
||||
if (version >= noargDeprecatedIn) {
|
||||
context_.Say(GetContext().clauseSource,
|
||||
"The DESTROY clause without argument on DEPOBJ construct is deprecated in %s"_warn_en_US,
|
||||
ThisVersion(noargDeprecatedIn));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,6 @@ end
|
||||
subroutine f03
|
||||
integer :: obj, jbo
|
||||
!ERROR: The DESTROY clause must refer to the same object as the DEPOBJ construct
|
||||
!PORTABILITY: The object parameter in DESTROY clause in DEPOPJ construct was introduced in OpenMP v5.2
|
||||
!WARNING: The object parameter in DESTROY clause on DEPOPJ construct is not allowed in OpenMP v5.0, try -fopenmp-version=52
|
||||
!$omp depobj(obj) destroy(jbo)
|
||||
end
|
||||
|
||||
@@ -13,3 +13,9 @@ subroutine f03
|
||||
!ERROR: The DESTROY clause must refer to the same object as the DEPOBJ construct
|
||||
!$omp depobj(obj) destroy(jbo)
|
||||
end
|
||||
|
||||
subroutine f06
|
||||
integer :: obj
|
||||
!WARNING: The DESTROY clause without argument on DEPOBJ construct is deprecated in OpenMP v5.2
|
||||
!$omp depobj(obj) destroy
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user