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)
*
* 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
* 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.
*
@ -15,7 +15,7 @@
* 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.
*
* This file contains 266 fixup descriptions.
* This file contains 267 fixup descriptions.
*
* See README for more information.
*
@ -4516,6 +4516,36 @@ static const char* apzHpux11_Cpp_Pow_InlinePatch[] = {
"",
(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
@ -10844,7 +10874,7 @@ static const char* apzX11_SprintfPatch[] = {
*/
#define REGEX_COUNT 305
#define MACH_LIST_SIZE_LIMIT 187
#define FIX_COUNT 266
#define FIX_COUNT 267
/*
* Enumerate the fixes
@ -10957,6 +10987,7 @@ typedef enum {
HPPA_HPUX_FP_MACROS_FIXIDX,
HPUX10_CPP_POW_INLINE_FIXIDX,
HPUX11_CPP_POW_INLINE_FIXIDX,
HPUX_MATH_CONSTEXPR_FIXIDX,
HPUX10_CTYPE_DECLARATIONS1_FIXIDX,
HPUX10_CTYPE_DECLARATIONS2_FIXIDX,
HPUX10_STDIO_DECLARATIONS_FIXIDX,
@ -11654,6 +11685,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
HPUX11_CPP_POW_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
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,
apzHpux10_Ctype_Declarations1Machs,
HPUX10_CTYPE_DECLARATIONS1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,

View File

@ -2282,6 +2282,24 @@ fix = {
" }\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
*/

View File

@ -57,6 +57,13 @@
#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 )
#ifdef _PA_RISC
#ifndef __cplusplus