Subject: factor.c selects 64 bit code from longlong.h on 32-bit hppa systems

From: John David Anglin <[email-masked]>
Date: Sun, 28 Oct 2012 15:46:44 -0400

When USE_LONGLONG_H is defined, factor.c unilaterally defines W_TYPE_SIZE
to 64.  This selects the wrong code from longlong.h on 32-bit hppa systems
causing an assembly failure.

Attached is a hack which should work on most but probably not all systems.

Dave
-- 
J. David Anglin                                  [email-masked]
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)
--- factor.c.orig	Tue Oct 23 10:14:12 2012
+++ factor.c	Sun Oct 28 15:03:04 2012
@@ -124,7 +124,7 @@
 #if USE_LONGLONG_H
 
 /* Make definitions for longlong.h to make it do what it can do for us */
-# define W_TYPE_SIZE 64          /* bitcount for uintmax_t */
+# define W_TYPE_SIZE (INT64_MAX_EQ_LONG_MAX ? 64 : 32)
 # define UWtype  uintmax_t
 # define UHWtype unsigned long int
 # undef UDWtype