"H.J. Lu" <[email protected]> writes:
> On Thu, May 8, 2014 at 12:42 PM, Jakub Jelinek <[email protected]> wrote:
>> On Thu, May 08, 2014 at 12:34:28PM -0700, H.J. Lu wrote:
>>> On Thu, May 8, 2014 at 12:18 PM, Richard Sandiford
>>> <[email protected]> wrote:
>>> > Kenneth Zadeck <[email protected]> writes:
>>> >> everyone who has a private port will hate you forever. note that i
>>> >> have 2 of them.
>>> >
>>> > Got any other ideas though? I suppose if we're prepared to break
>>> > compatibility with whatever the upstream of longlong.h is, we could
>>> > make more use of intN_t and uintN_t.
>>> >
>>> > Having a whitelist of hosts seems like the best fix though.
>>> > I'm not sure the default umul_ppmm is going to be any better
>>> > than not defining it.
>>> >
>>>
>>> Can you add a configure time check if
>>>
>>> typedef unsigned int UTItype __attribute__ ((mode (TI)));
>>>
>>> is supported?
>>
>> Why? Isn't that #ifdef __SIZEOF_INT128__ ?
Read this just after getting the configure test to work...
> Yes, we can use that. Will it work?
Seems to. How does this look?
Thanks,
Richard
gcc/
* wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
__SIZEOF_INT128__ is defined.
Index: gcc/wide-int.cc
===================================================================
--- gcc/wide-int.cc 2014-05-08 20:48:25.341583885 +0100
+++ gcc/wide-int.cc 2014-05-08 21:09:29.324386217 +0100
@@ -27,18 +27,17 @@ along with GCC; see the file COPYING3.
#include "tree.h"
#include "dumpfile.h"
-#if GCC_VERSION >= 3000
#define W_TYPE_SIZE HOST_BITS_PER_WIDE_INT
+#if GCC_VERSION >= 3000 && (W_TYPE_SIZE == 32 || defined (__SIZEOF_INT128__))
typedef unsigned HOST_HALF_WIDE_INT UHWtype;
typedef unsigned HOST_WIDE_INT UWtype;
typedef unsigned int UQItype __attribute__ ((mode (QI)));
typedef unsigned int USItype __attribute__ ((mode (SI)));
typedef unsigned int UDItype __attribute__ ((mode (DI)));
-typedef unsigned int UTItype __attribute__ ((mode (TI)));
#if W_TYPE_SIZE == 32
-# define UDWtype UDItype
-#elif W_TYPE_SIZE == 64
-# define UDWtype UTItype
+typedef unsigned int UDWtype __attribute__ ((mode (DI)));
+#else
+typedef unsigned int UDWtype __attribute__ ((mode (TI)));
#endif
#include "longlong.h"
#endif