Fix declarations of _DINFINITY, _SINFINITY and _SQNAN

The declarations of _DINFINITY, _SINFINITY and _SQNAN need to be constant
expressions.

2022-02-27  John David Anglin  <danglin@gcc.gnu.org>

fixincludes/ChangeLog:
	* inclhack.def (hpux_math_constexpr): New hack.
	* fixincl.x: Regenerate.
	* tests/base/math.h: Update.
This commit is contained in:
John David Anglin 2022-02-27 19:47:25 +00:00
parent ae957797a1
commit d1574a9b82
3 changed files with 65 additions and 4 deletions

View File

@ -2,11 +2,11 @@
* *
* DO NOT EDIT THIS FILE (fixincl.x) * DO NOT EDIT THIS FILE (fixincl.x)
* *
* It has been AutoGen-ed January 15, 2022 at 10:54:24 PM by AutoGen 5.18.16 * It has been AutoGen-ed February 27, 2022 at 07:47:03 PM by AutoGen 5.18.16
* From the definitions inclhack.def * From the definitions inclhack.def
* and the template file fixincl * and the template file fixincl
*/ */
/* DO NOT SVN-MERGE THIS FILE, EITHER Sat Jan 15 22:54:24 UTC 2022 /* DO NOT SVN-MERGE THIS FILE, EITHER Sun Feb 27 19:47:03 UTC 2022
* *
* You must regenerate it. Use the ./genfixes script. * You must regenerate it. Use the ./genfixes script.
* *
@ -15,7 +15,7 @@
* certain ANSI-incompatible system header files which are fixed to work * certain ANSI-incompatible system header files which are fixed to work
* correctly with ANSI C and placed in a directory that GNU C will search. * correctly with ANSI C and placed in a directory that GNU C will search.
* *
* This file contains 266 fixup descriptions. * This file contains 267 fixup descriptions.
* *
* See README for more information. * See README for more information.
* *
@ -4516,6 +4516,36 @@ static const char* apzHpux11_Cpp_Pow_InlinePatch[] = {
"", "",
(char*)NULL }; (char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
* Description of Hpux_Math_Constexpr fix
*/
tSCC zHpux_Math_ConstexprName[] =
"hpux_math_constexpr";
/*
* File name selection pattern
*/
tSCC zHpux_Math_ConstexprList[] =
"math.h\0";
/*
* Machine/OS name selection pattern
*/
tSCC* apzHpux_Math_ConstexprMachs[] = {
"*-hp-hpux11*",
(const char*)NULL };
#define HPUX_MATH_CONSTEXPR_TEST_CT 0
#define aHpux_Math_ConstexprTests (tTestDesc*)NULL
/*
* Fix Command Arguments for Hpux_Math_Constexpr
*/
static const char* apzHpux_Math_ConstexprPatch[] = { sed_cmd_z,
"-e", "s@^[ \t]*extern[ \t]*const[ \t]*double[ \t]*_DINFINITY;[ \t]*$@# define _DINFINITY (__builtin_inf ())@",
"-e", "s@^[ \t]*extern[ \t]*const[ \t]*float[ \t]*_SINFINITY;[ \t]*$@# define _SINFINITY (__builtin_inff ())@",
"-e", "s@^[ \t]*extern[ \t]*const[ \t]*float[ \t]*_SQNAN;[ \t]*$@# define _SQNAN (__builtin_nanf (\\\"\\\"))@",
(char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * * /* * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* Description of Hpux10_Ctype_Declarations1 fix * Description of Hpux10_Ctype_Declarations1 fix
@ -10844,7 +10874,7 @@ static const char* apzX11_SprintfPatch[] = {
*/ */
#define REGEX_COUNT 305 #define REGEX_COUNT 305
#define MACH_LIST_SIZE_LIMIT 187 #define MACH_LIST_SIZE_LIMIT 187
#define FIX_COUNT 266 #define FIX_COUNT 267
/* /*
* Enumerate the fixes * Enumerate the fixes
@ -10957,6 +10987,7 @@ typedef enum {
HPPA_HPUX_FP_MACROS_FIXIDX, HPPA_HPUX_FP_MACROS_FIXIDX,
HPUX10_CPP_POW_INLINE_FIXIDX, HPUX10_CPP_POW_INLINE_FIXIDX,
HPUX11_CPP_POW_INLINE_FIXIDX, HPUX11_CPP_POW_INLINE_FIXIDX,
HPUX_MATH_CONSTEXPR_FIXIDX,
HPUX10_CTYPE_DECLARATIONS1_FIXIDX, HPUX10_CTYPE_DECLARATIONS1_FIXIDX,
HPUX10_CTYPE_DECLARATIONS2_FIXIDX, HPUX10_CTYPE_DECLARATIONS2_FIXIDX,
HPUX10_STDIO_DECLARATIONS_FIXIDX, HPUX10_STDIO_DECLARATIONS_FIXIDX,
@ -11654,6 +11685,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
HPUX11_CPP_POW_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, HPUX11_CPP_POW_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aHpux11_Cpp_Pow_InlineTests, apzHpux11_Cpp_Pow_InlinePatch, 0 }, aHpux11_Cpp_Pow_InlineTests, apzHpux11_Cpp_Pow_InlinePatch, 0 },
{ zHpux_Math_ConstexprName, zHpux_Math_ConstexprList,
apzHpux_Math_ConstexprMachs,
HPUX_MATH_CONSTEXPR_TEST_CT, FD_MACH_ONLY,
aHpux_Math_ConstexprTests, apzHpux_Math_ConstexprPatch, 0 },
{ zHpux10_Ctype_Declarations1Name, zHpux10_Ctype_Declarations1List, { zHpux10_Ctype_Declarations1Name, zHpux10_Ctype_Declarations1List,
apzHpux10_Ctype_Declarations1Machs, apzHpux10_Ctype_Declarations1Machs,
HPUX10_CTYPE_DECLARATIONS1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, HPUX10_CTYPE_DECLARATIONS1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,

View File

@ -2282,6 +2282,24 @@ fix = {
" }\n"; " }\n";
}; };
/*
* This hack fixes the declarations of _DINFINITY, _SINFINITY and _SQNAN.
*/
fix = {
hackname = hpux_math_constexpr;
mach = "*-hp-hpux11*";
files = math.h;
sed = "s@^[ \t]*extern[ \t]*const[ \t]*double[ \t]*_DINFINITY;"
"[ \t]*$@# define _DINFINITY (__builtin_inf ())@";
sed = "s@^[ \t]*extern[ \t]*const[ \t]*float[ \t]*_SINFINITY;"
"[ \t]*$@# define _SINFINITY (__builtin_inff ())@";
sed = "s@^[ \t]*extern[ \t]*const[ \t]*float[ \t]*_SQNAN;"
"[ \t]*$@# define _SQNAN (__builtin_nanf (\\\"\\\"))@";
test_text = " extern const double _DINFINITY;\n"
" extern const float _SINFINITY;\n"
" extern const float _SQNAN;";
};
/* /*
* Fix hpux 10.X missing ctype declarations 1 * Fix hpux 10.X missing ctype declarations 1
*/ */

View File

@ -57,6 +57,13 @@
#endif /* HPUX11_CPP_POW_INLINE_CHECK */ #endif /* HPUX11_CPP_POW_INLINE_CHECK */
#if defined( HPUX_MATH_CONSTEXPR_CHECK )
# define _DINFINITY (__builtin_inf ())
# define _SINFINITY (__builtin_inff ())
# define _SQNAN (__builtin_nanf (""))
#endif /* HPUX_MATH_CONSTEXPR_CHECK */
#if defined( HPUX11_FABSF_CHECK ) #if defined( HPUX11_FABSF_CHECK )
#ifdef _PA_RISC #ifdef _PA_RISC
#ifndef __cplusplus #ifndef __cplusplus