Created
June 16, 2019 08:39
-
-
Save thierer/534faf0772ee66c51fdfcf964ebb1655 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 94801184df727b94bf7b8d64b1f98a22f51325d7 Mon Sep 17 00:00:00 2001 | |
From: Elliot Saba <staticfloat@gmail.com> | |
Date: Mon, 22 Apr 2019 19:58:09 -0400 | |
Subject: [PATCH] Remove double `tempate <>` declarations in `wide-int.h` | |
This fixes compilation of GCC 5.2.0 with very recent compilers such as | |
GCC 8.3.0, which would otherwise fail with errors such as `error: too | |
many template-parameter-lists` | |
--- | |
gcc/wide-int.h | 10 ---------- | |
1 file changed, 10 deletions(-) | |
diff --git a/gcc/wide-int.h b/gcc/wide-int.h | |
index 46f45453c015..9a71c4fea61b 100644 | |
--- a/gcc/wide-int.h | |
+++ b/gcc/wide-int.h | |
@@ -365,21 +365,18 @@ namespace wi | |
inputs. Note that CONST_PRECISION and VAR_PRECISION cannot be | |
mixed, in order to give stronger type checking. When both inputs | |
are CONST_PRECISION, they must have the same precision. */ | |
- template <> | |
template <typename T1, typename T2> | |
struct binary_traits <T1, T2, FLEXIBLE_PRECISION, FLEXIBLE_PRECISION> | |
{ | |
typedef widest_int result_type; | |
}; | |
- template <> | |
template <typename T1, typename T2> | |
struct binary_traits <T1, T2, FLEXIBLE_PRECISION, VAR_PRECISION> | |
{ | |
typedef wide_int result_type; | |
}; | |
- template <> | |
template <typename T1, typename T2> | |
struct binary_traits <T1, T2, FLEXIBLE_PRECISION, CONST_PRECISION> | |
{ | |
@@ -389,14 +386,12 @@ namespace wi | |
<int_traits <T2>::precision> > result_type; | |
}; | |
- template <> | |
template <typename T1, typename T2> | |
struct binary_traits <T1, T2, VAR_PRECISION, FLEXIBLE_PRECISION> | |
{ | |
typedef wide_int result_type; | |
}; | |
- template <> | |
template <typename T1, typename T2> | |
struct binary_traits <T1, T2, CONST_PRECISION, FLEXIBLE_PRECISION> | |
{ | |
@@ -406,7 +401,6 @@ namespace wi | |
<int_traits <T1>::precision> > result_type; | |
}; | |
- template <> | |
template <typename T1, typename T2> | |
struct binary_traits <T1, T2, CONST_PRECISION, CONST_PRECISION> | |
{ | |
@@ -417,7 +411,6 @@ namespace wi | |
<int_traits <T1>::precision> > result_type; | |
}; | |
- template <> | |
template <typename T1, typename T2> | |
struct binary_traits <T1, T2, VAR_PRECISION, VAR_PRECISION> | |
{ | |
@@ -881,7 +874,6 @@ generic_wide_int <storage>::dump () const | |
namespace wi | |
{ | |
- template <> | |
template <typename storage> | |
struct int_traits < generic_wide_int <storage> > | |
: public wi::int_traits <storage> | |
@@ -960,7 +952,6 @@ inline wide_int_ref_storage <SE>::wide_int_ref_storage (const T &x, | |
namespace wi | |
{ | |
- template <> | |
template <bool SE> | |
struct int_traits <wide_int_ref_storage <SE> > | |
{ | |
@@ -1147,7 +1138,6 @@ class GTY(()) fixed_wide_int_storage | |
namespace wi | |
{ | |
- template <> | |
template <int N> | |
struct int_traits < fixed_wide_int_storage <N> > | |
{ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment