diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-10-28 20:22:40 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-10-28 20:22:40 +0000 |
commit | ec4adff1327f08ee222b22b71c583742e50dc2d6 (patch) | |
tree | 5cdf4c74b6ce26a951fabde718696ab67a4520d9 /include | |
parent | 6a281cd7aba892b583c9bf3c6b0f509644aaabcc (diff) | |
download | gcc-ec4adff1327f08ee222b22b71c583742e50dc2d6.tar.gz |
longlong.h: Disable alpha umul_ppmm for old g++
Causes "unexpected AST of kind MULT_HIGHPART" error with
bootstrap from gcc 4.8.
* longlong.h [__alpha] (umul_ppmm): Disable for c++.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216811 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'include')
-rw-r--r-- | include/ChangeLog | 4 | ||||
-rw-r--r-- | include/longlong.h | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/include/ChangeLog b/include/ChangeLog index d2d14721f09..e48268296bf 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2014-10-28 Richard Henderson <rth@redhat.com> + + * longlong.h [__alpha] (umul_ppmm): Disable for c++. + 2014-10-28 Yury Gribov <y.gribov@samsung.com> * libiberty.h (strtol, strtoul, strtoll, strtoull): New prototypes. diff --git a/include/longlong.h b/include/longlong.h index 42c68ddd62d..8cd2c79898c 100644 --- a/include/longlong.h +++ b/include/longlong.h @@ -139,6 +139,9 @@ extern const UQItype __clz_tab[256] attribute_hidden; #endif /* __aarch64__ */ #if defined (__alpha) && W_TYPE_SIZE == 64 +/* There is a bug in g++ before version 5 that + errors on __builtin_alpha_umulh. */ +#if !defined(__cplusplus) || __GNUC__ >= 5 #define umul_ppmm(ph, pl, m0, m1) \ do { \ UDItype __m0 = (m0), __m1 = (m1); \ @@ -146,6 +149,7 @@ extern const UQItype __clz_tab[256] attribute_hidden; (pl) = __m0 * __m1; \ } while (0) #define UMUL_TIME 46 +#endif /* !c++ */ #ifndef LONGLONG_STANDALONE #define udiv_qrnnd(q, r, n1, n0, d) \ do { UDItype __r; \ |