[flang-commits] [flang] 7bc7672 - [flang] Fix compilation errors due to new clang template requirements (#94204)
via flang-commits
flang-commits at lists.llvm.org
Mon Jun 3 07:21:30 PDT 2024
Author: David Spickett
Date: 2024-06-03T15:21:26+01:00
New Revision: 7bc7672925f8154be3b8220365d3f269ac43621c
URL: https://github.com/llvm/llvm-project/commit/7bc7672925f8154be3b8220365d3f269ac43621c
DIFF: https://github.com/llvm/llvm-project/commit/7bc7672925f8154be3b8220365d3f269ac43621c.diff
LOG: [flang] Fix compilation errors due to new clang template requirements (#94204)
Since https://github.com/llvm/llvm-project/pull/80801 clang requires a
template argument list after the use of the template keyword.
https://lab.llvm.org/buildbot/#/builders/176/builds/10230
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
This fixes the instances found by the AArch64 Linux builds.
Added:
Modified:
flang/include/flang/Evaluate/integer.h
flang/lib/Evaluate/fold-real.cpp
flang/runtime/reduction-templates.h
Removed:
################################################################################
diff --git a/flang/include/flang/Evaluate/integer.h b/flang/include/flang/Evaluate/integer.h
index 10a13115a39e0..4c7d88328a71e 100644
--- a/flang/include/flang/Evaluate/integer.h
+++ b/flang/include/flang/Evaluate/integer.h
@@ -315,7 +315,7 @@ class Integer {
}
result.overflow = false;
} else if constexpr (bits < FROM::bits) {
- auto back{FROM::template ConvertSigned(result.value)};
+ auto back{FROM::template ConvertSigned<Integer>(result.value)};
result.overflow = back.value.CompareUnsigned(that) != Ordering::Equal;
}
return result;
diff --git a/flang/lib/Evaluate/fold-real.cpp b/flang/lib/Evaluate/fold-real.cpp
index 238ce34adfb76..f71addcc4094a 100644
--- a/flang/lib/Evaluate/fold-real.cpp
+++ b/flang/lib/Evaluate/fold-real.cpp
@@ -381,13 +381,14 @@ Expr<Type<TypeCategory::Real, KIND>> FoldIntrinsicFunction(
std::move(funcRef),
ScalarFunc<T, T, TBY>(
[&](const Scalar<T> &x, const Scalar<TBY> &y) -> Scalar<T> {
- ValueWithRealFlags<Scalar<T>> result{x.
+ ValueWithRealFlags<Scalar<T>> result{
+ x.
// MSVC chokes on the keyword "template" here in a call to a
// member function template.
#ifndef _MSC_VER
- template
+ template
#endif
- SCALE(y)};
+ SCALE<Scalar<TBY>>(y)};
if (result.flags.test(RealFlag::Overflow) &&
context.languageFeatures().ShouldWarn(
common::UsageWarning::FoldingException)) {
diff --git a/flang/runtime/reduction-templates.h b/flang/runtime/reduction-templates.h
index d102e5642547d..a51404c963762 100644
--- a/flang/runtime/reduction-templates.h
+++ b/flang/runtime/reduction-templates.h
@@ -91,14 +91,14 @@ inline RT_API_ATTRS CppTypeFor<CAT, KIND> GetTotalReduction(const Descriptor &x,
#ifdef _MSC_VER // work around MSVC spurious error
accumulator.GetResult();
#else
- accumulator.template GetResult();
+ accumulator.template GetResult<CppType>();
#endif
} else {
CppType result;
#ifdef _MSC_VER // work around MSVC spurious error
accumulator.GetResult(&result);
#else
- accumulator.template GetResult(&result);
+ accumulator.template GetResult<CppType>(&result);
#endif
return result;
}
@@ -141,7 +141,7 @@ inline RT_API_ATTRS void ReduceDimToScalar(const Descriptor &x,
#ifdef _MSC_VER // work around MSVC spurious error
accumulator.GetResult(result, zeroBasedDim);
#else
- accumulator.template GetResult(result, zeroBasedDim);
+ accumulator.template GetResult<TYPE>(result, zeroBasedDim);
#endif
}
@@ -169,7 +169,7 @@ inline RT_API_ATTRS void ReduceDimMaskToScalar(const Descriptor &x,
#ifdef _MSC_VER // work around MSVC spurious error
accumulator.GetResult(result, zeroBasedDim);
#else
- accumulator.template GetResult(result, zeroBasedDim);
+ accumulator.template GetResult<TYPE>(result, zeroBasedDim);
#endif
}
More information about the flang-commits
mailing list