Skip to content

Conversation

@kparzysz
Copy link
Contributor

It doesn't need the Symbol object for anything.

It doesn't need the Symbol object for anything.
@llvmbot llvmbot added flang Flang issues not falling into any other category flang:openmp flang:semantics labels Oct 24, 2024
@llvmbot
Copy link
Member

llvmbot commented Oct 24, 2024

@llvm/pr-subscribers-flang-semantics

@llvm/pr-subscribers-flang-openmp

Author: Krzysztof Parzyszek (kparzysz)

Changes

It doesn't need the Symbol object for anything.


Full diff: https://github.com/llvm/llvm-project/pull/113586.diff

2 Files Affected:

  • (modified) flang/include/flang/Semantics/symbol.h (+1-1)
  • (modified) flang/lib/Semantics/resolve-directives.cpp (+3-4)
diff --git a/flang/include/flang/Semantics/symbol.h b/flang/include/flang/Semantics/symbol.h index cf0350735b5b94..0767d8ea84bc6b 100644 --- a/flang/include/flang/Semantics/symbol.h +++ b/flang/include/flang/Semantics/symbol.h @@ -778,7 +778,7 @@ class Symbol { void set_offset(std::size_t offset) { offset_ = offset; } // Give the symbol a name with a different source location but same chars. void ReplaceName(const SourceName &); - std::string OmpFlagToClauseName(Flag ompFlag); + static std::string OmpFlagToClauseName(Flag ompFlag); // Does symbol have this type of details? template <typename D> bool has() const { diff --git a/flang/lib/Semantics/resolve-directives.cpp b/flang/lib/Semantics/resolve-directives.cpp index 490d802cddf42f..33936ba4c2b34f 100644 --- a/flang/lib/Semantics/resolve-directives.cpp +++ b/flang/lib/Semantics/resolve-directives.cpp @@ -2320,7 +2320,7 @@ void OmpAttributeVisitor::ResolveOmpObject( if (auto *symbol{ResolveOmp(*name, ompFlag, currScope())}) { auto checkExclusivelists = [&](const Symbol *symbol1, Symbol::Flag firstOmpFlag, - Symbol *symbol2, Symbol::Flag secondOmpFlag) { + const Symbol *symbol2, Symbol::Flag secondOmpFlag) { if ((symbol1->test(firstOmpFlag) && symbol2->test(secondOmpFlag)) || (symbol1->test(secondOmpFlag) && @@ -2330,9 +2330,8 @@ void OmpAttributeVisitor::ResolveOmpObject( "appear on both %s and %s " "clauses on a %s construct"_err_en_US, symbol2->name(), - const_cast<Symbol *>(symbol1)->OmpFlagToClauseName( - firstOmpFlag), - symbol2->OmpFlagToClauseName(secondOmpFlag), + Symbol::OmpFlagToClauseName(firstOmpFlag), + Symbol::OmpFlagToClauseName(secondOmpFlag), parser::ToUpperCaseLetters( llvm::omp::getOpenMPDirectiveName( GetContext().directive) 
Copy link
Contributor

@raghavendhra raghavendhra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Copy link
Contributor

@tblah tblah left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@kparzysz kparzysz merged commit e2e7d56 into llvm:main Oct 24, 2024
8 checks passed
@kparzysz kparzysz deleted the users/kparzysz/flag-clause-name branch October 24, 2024 17:10
@frobtech frobtech mentioned this pull request Oct 25, 2024
NoumanAmir657 pushed a commit to NoumanAmir657/llvm-project that referenced this pull request Nov 4, 2024
It doesn't need the Symbol object for anything.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

flang:openmp flang:semantics flang Flang issues not falling into any other category

4 participants