diff options
Diffstat (limited to 'flang/lib/Evaluate/fold-character.cpp')
| -rw-r--r-- | flang/lib/Evaluate/fold-character.cpp | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/flang/lib/Evaluate/fold-character.cpp b/flang/lib/Evaluate/fold-character.cpp index 76ac497e1664..a43742ae8dc6 100644 --- a/flang/lib/Evaluate/fold-character.cpp +++ b/flang/lib/Evaluate/fold-character.cpp @@ -58,13 +58,10 @@ Expr<Type<TypeCategory::Character, KIND>> FoldIntrinsicFunction( return FoldElementalIntrinsic<T, IntT>(context, std::move(funcRef), ScalarFunc<T, IntT>([&](const Scalar<IntT> &i) { if (i.IsNegative() || i.BGE(Scalar<IntT>{0}.IBSET(8 * KIND))) { - if (context.languageFeatures().ShouldWarn( - common::UsageWarning::FoldingValueChecks)) { - context.messages().Say(common::UsageWarning::FoldingValueChecks, - "%s(I=%jd) is out of range for CHARACTER(KIND=%d)"_warn_en_US, - parser::ToUpperCaseLetters(name), - static_cast<std::intmax_t>(i.ToInt64()), KIND); - } + context.Warn(common::UsageWarning::FoldingValueChecks, + "%s(I=%jd) is out of range for CHARACTER(KIND=%d)"_warn_en_US, + parser::ToUpperCaseLetters(name), + static_cast<std::intmax_t>(i.ToInt64()), KIND); } return CharacterUtils<KIND>::CHAR(i.ToUInt64()); })); @@ -106,12 +103,9 @@ Expr<Type<TypeCategory::Character, KIND>> FoldIntrinsicFunction( static_cast<std::intmax_t>(n)); } else if (static_cast<double>(n) * str.size() > (1 << 20)) { // sanity limit of 1MiB - if (context.languageFeatures().ShouldWarn( - common::UsageWarning::FoldingLimit)) { - context.messages().Say(common::UsageWarning::FoldingLimit, - "Result of REPEAT() is too large to compute at compilation time (%g characters)"_port_en_US, - static_cast<double>(n) * str.size()); - } + context.Warn(common::UsageWarning::FoldingLimit, + "Result of REPEAT() is too large to compute at compilation time (%g characters)"_port_en_US, + static_cast<double>(n) * str.size()); } else { return Expr<T>{Constant<T>{CharacterUtils<KIND>::REPEAT(str, n)}}; } |
