diff options
author | Richard Henderson <rth@redhat.com> | 2014-10-28 13:26:24 -0700 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2016-01-07 17:22:30 -0500 |
commit | 7f49b7c0200e745c5f0d3e9245a6e4590bd57b1d (patch) | |
tree | 7809a20e25b84bae799a452fa7f1abe779851aa2 | |
parent | 1f89b8d881b5dda6447b8be8ff40c1020b1f548e (diff) | |
download | glibc-7f49b7c0200e745c5f0d3e9245a6e4590bd57b1d.tar.gz glibc-7f49b7c0200e745c5f0d3e9245a6e4590bd57b1d.tar.xz glibc-7f49b7c0200e745c5f0d3e9245a6e4590bd57b1d.zip |
longlong.h: Disable alpha umul_ppmm for old g++
Causes "unexpected AST of kind MULT_HIGHPART" error with bootstrap from gcc 4.8.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | stdlib/longlong.h | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index a3c4d8ef12..ce42df8ce6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2016-01-07 Richard Henderson <rth@redhat.com> + + * longlong.h [__alpha] (umul_ppmm): Disable for c++. + 2016-01-07 Mike Frysinger <vapier@gentoo.org> * sysdeps/unix/sysv/linux/fxstat64.c (___fxstat64): Change diff --git a/stdlib/longlong.h b/stdlib/longlong.h index 650ef3173f..1bc3e659d0 100644 --- a/stdlib/longlong.h +++ b/stdlib/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; \ |