https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126305

--- Comment #15 from dave.anglin at bell dot net ---
On 2026-07-17 4:37 p.m., John David Anglin wrote:
>> Can gfortran be configured on HPUX without REAL(16)
>> (or REAL(17)) support.  Perhaps, that should be the
>> default?
> I don't think that's currently possible.

We end up with REAL(16) support because mk-kinds-h.sh generates the following
in kinds.h:

#define GFC_REAL_16_IS_LONG_DOUBLE
typedef long double GFC_REAL_16;
typedef complex long double GFC_COMPLEX_16;
#define HAVE_GFC_REAL_16
#define HAVE_GFC_COMPLEX_16
#define GFC_REAL_16_HUGE 1.18973149535723176508575932662800702e4932l
#define GFC_REAL_16_TINY 3.36210314311209350626267781732175260e-4932l
#define GFC_REAL_16_LITERAL_SUFFIX l
#define GFC_REAL_16_LITERAL(X) (X ## l)
#define GFC_REAL_16_DIGITS 113
#define GFC_REAL_16_RADIX 2

#include "kinds-override.h"

Possibly, REAL(16) support could be disabled on hppa hpux by undef'ing the
above defines in kinds-override.h.
There is this for __powerpc64__:

/* Keep these conditions on one line so grep can filter it out.  */
#if defined(__powerpc64__)  && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__  &&
__SIZEOF_LONG_DOUBLE__ == 16
typedef _Float128 GFC_REAL_17;
typedef _Complex _Float128 GFC_COMPLEX_17;
#define HAVE_GFC_REAL_17
#define HAVE_GFC_COMPLEX_17
#define GFC_REAL_17_IS_FLOAT128
#ifdef USE_IEC_60559
#define GFC_REAL_17_USE_IEC_60559
#define GFC_REAL_17_HUGE 1.18973149535723176508575932662800702e4932f128
#define GFC_REAL_17_LITERAL_SUFFIX f128
#define GFC_REAL_17_LITERAL(X) (X ## f128)
#else
#define GFC_REAL_17_HUGE 1.18973149535723176508575932662800702e4932q
#define GFC_REAL_17_LITERAL_SUFFIX q
#define GFC_REAL_17_LITERAL(X) (X ## q)
#endif
#define GFC_REAL_17_DIGITS 113
#define GFC_REAL_17_RADIX 2
#endif

Reply via email to