Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
longlong.h: Disable alpha umul_ppmm for old g++
Causes "unexpected AST of kind MULT_HIGHPART" error with bootstrap from gcc 4.8.
  • Loading branch information
Richard Henderson authored and Mike Frysinger committed Jan 7, 2016
1 parent 1f89b8d commit 7f49b7c
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 0 deletions.
4 changes: 4 additions & 0 deletions 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
Expand Down
4 changes: 4 additions & 0 deletions stdlib/longlong.h
Expand Up @@ -139,13 +139,17 @@ 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); \
(ph) = __builtin_alpha_umulh (__m0, __m1); \
(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; \
Expand Down

0 comments on commit 7f49b7c

Please sign in to comment.