[flang][msvc] Remove default arguments for function specializations.

C++ does not allow function template specializations to have default arguments. IIUC callers will only use the default arguments of the primary template. gcc and clang accept the syntax anyway, but msvc emits an error.

See https://en.cppreference.com/w/cpp/language/template_specialization for more details.

This patch is part of the series to [[ http://lists.llvm.org/pipermail/flang-dev/2020-July/000448.html | make flang compilable with MS Visual Studio ]].

Reviewed By: DavidTruby

Differential Revision: https://reviews.llvm.org/D85657
This commit is contained in:
Michael Kruse 2020-08-12 15:02:23 -05:00
parent 12d16de538
commit 62ef1cb207
1 changed files with 6 additions and 6 deletions

View File

@ -105,17 +105,17 @@ ConversionToBinaryResult<PREC> ConvertToBinary(
const char *&, enum FortranRounding = RoundNearest);
extern template ConversionToBinaryResult<8> ConvertToBinary<8>(
const char *&, enum FortranRounding = RoundNearest);
const char *&, enum FortranRounding);
extern template ConversionToBinaryResult<11> ConvertToBinary<11>(
const char *&, enum FortranRounding = RoundNearest);
const char *&, enum FortranRounding);
extern template ConversionToBinaryResult<24> ConvertToBinary<24>(
const char *&, enum FortranRounding = RoundNearest);
const char *&, enum FortranRounding);
extern template ConversionToBinaryResult<53> ConvertToBinary<53>(
const char *&, enum FortranRounding = RoundNearest);
const char *&, enum FortranRounding);
extern template ConversionToBinaryResult<64> ConvertToBinary<64>(
const char *&, enum FortranRounding = RoundNearest);
const char *&, enum FortranRounding);
extern template ConversionToBinaryResult<113> ConvertToBinary<113>(
const char *&, enum FortranRounding = RoundNearest);
const char *&, enum FortranRounding);
} // namespace Fortran::decimal
extern "C" {
#define NS(x) Fortran::decimal::x