diff --git a/flang/include/flang/Semantics/symbol.h b/flang/include/flang/Semantics/symbol.h index cf0350735b5b9..0767d8ea84bc6 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 bool has() const { diff --git a/flang/lib/Semantics/resolve-directives.cpp b/flang/lib/Semantics/resolve-directives.cpp index 490d802cddf42..33936ba4c2b34 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(symbol1)->OmpFlagToClauseName( - firstOmpFlag), - symbol2->OmpFlagToClauseName(secondOmpFlag), + Symbol::OmpFlagToClauseName(firstOmpFlag), + Symbol::OmpFlagToClauseName(secondOmpFlag), parser::ToUpperCaseLetters( llvm::omp::getOpenMPDirectiveName( GetContext().directive)