testsuite: Fix up gcc.dg/pr126464.c test [PR126464]
Checks
| Context |
Check |
Description |
| linaro-tcwg-bot/tcwg_simplebootstrap_build--master-aarch64-bootstrap |
success
|
Build passed
|
| linaro-tcwg-bot/tcwg_simplebootstrap_build--master-arm-bootstrap |
success
|
Build passed
|
| linaro-tcwg-bot/tcwg_gcc_build--master-arm |
fail
|
Patch failed to apply
|
| linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 |
fail
|
Patch failed to apply
|
Commit Message
On Tue, Aug 04, 2026 at 02:13:19PM +0200, Torbjorn SVENSSON wrote:
> This causes regression on most (all?) arm-none-eabi targets.
> /build/gcc_src/gcc/testsuite/gcc.dg/pr126464.c:56:3: warning: floating constant exceeds range of 'long double' [-Woverflow]
This patch guards it with preprocessor tests whether such floating point
constants are representable.
Tested on x86_64-linux, ok for trunk?
2026-08-04 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/126464
* gcc.dg/pr126464.c: Guard uses of 1e300 with
__DBL_MAX_10_EXP__ >= 301 and uses of 1e4000L with
__LDBL_MAX_10_EXP__ >= 4001.
Jakub
Comments
On Tue, Aug 4, 2026 at 8:35 AM Jakub Jelinek <jakub@redhat.com> wrote:
>
> On Tue, Aug 04, 2026 at 02:13:19PM +0200, Torbjorn SVENSSON wrote:
> > This causes regression on most (all?) arm-none-eabi targets.
> > /build/gcc_src/gcc/testsuite/gcc.dg/pr126464.c:56:3: warning: floating constant exceeds range of 'long double' [-Woverflow]
>
> This patch guards it with preprocessor tests whether such floating point
> constants are representable.
>
> Tested on x86_64-linux, ok for trunk?
Ok.
>
> 2026-08-04 Jakub Jelinek <jakub@redhat.com>
>
> PR tree-optimization/126464
> * gcc.dg/pr126464.c: Guard uses of 1e300 with
> __DBL_MAX_10_EXP__ >= 301 and uses of 1e4000L with
> __LDBL_MAX_10_EXP__ >= 4001.
>
> --- gcc/testsuite/gcc.dg/pr126464.c.jj 2026-07-30 09:56:33.400729346 +0200
> +++ gcc/testsuite/gcc.dg/pr126464.c 2026-08-04 17:31:18.458149999 +0200
> @@ -47,15 +47,19 @@ qux (long double x)
> int
> main ()
> {
> +#if __DBL_MAX_10_EXP__ >= 301
> if (!__builtin_isinf ((double) 1e300)
> && __builtin_isinf ((float) 1e300)
> && (foo (-1e300) != -5e299
> || baz (1e300) != 5e299))
> __builtin_abort ();
> +#endif
>
> +#if __LDBL_MAX_10_EXP__ >= 4001
> if (!__builtin_isinf ((long double) 1e4000L)
> && __builtin_isinf ((double) 1e4000L)
> && (bar (1e4000L) != 5e3999L
> || qux (-1e4000L) != -5e3999L))
> __builtin_abort ();
> +#endif
> }
>
>
> Jakub
>
Hi Jakub,
I can confirm that this fixes the problem for arm-none-eabi.
Kind regards,
Torbjörn
On 2026-08-04 17:34, Jakub Jelinek wrote:
> On Tue, Aug 04, 2026 at 02:13:19PM +0200, Torbjorn SVENSSON wrote:
>> This causes regression on most (all?) arm-none-eabi targets.
>> /build/gcc_src/gcc/testsuite/gcc.dg/pr126464.c:56:3: warning: floating constant exceeds range of 'long double' [-Woverflow]
>
> This patch guards it with preprocessor tests whether such floating point
> constants are representable.
>
> Tested on x86_64-linux, ok for trunk?
>
> 2026-08-04 Jakub Jelinek <jakub@redhat.com>
>
> PR tree-optimization/126464
> * gcc.dg/pr126464.c: Guard uses of 1e300 with
> __DBL_MAX_10_EXP__ >= 301 and uses of 1e4000L with
> __LDBL_MAX_10_EXP__ >= 4001.
>
> --- gcc/testsuite/gcc.dg/pr126464.c.jj 2026-07-30 09:56:33.400729346 +0200
> +++ gcc/testsuite/gcc.dg/pr126464.c 2026-08-04 17:31:18.458149999 +0200
> @@ -47,15 +47,19 @@ qux (long double x)
> int
> main ()
> {
> +#if __DBL_MAX_10_EXP__ >= 301
> if (!__builtin_isinf ((double) 1e300)
> && __builtin_isinf ((float) 1e300)
> && (foo (-1e300) != -5e299
> || baz (1e300) != 5e299))
> __builtin_abort ();
> +#endif
>
> +#if __LDBL_MAX_10_EXP__ >= 4001
> if (!__builtin_isinf ((long double) 1e4000L)
> && __builtin_isinf ((double) 1e4000L)
> && (bar (1e4000L) != 5e3999L
> || qux (-1e4000L) != -5e3999L))
> __builtin_abort ();
> +#endif
> }
>
>
> Jakub
>
@@ -47,15 +47,19 @@ qux (long double x)
int
main ()
{
+#if __DBL_MAX_10_EXP__ >= 301
if (!__builtin_isinf ((double) 1e300)
&& __builtin_isinf ((float) 1e300)
&& (foo (-1e300) != -5e299
|| baz (1e300) != 5e299))
__builtin_abort ();
+#endif
+#if __LDBL_MAX_10_EXP__ >= 4001
if (!__builtin_isinf ((long double) 1e4000L)
&& __builtin_isinf ((double) 1e4000L)
&& (bar (1e4000L) != 5e3999L
|| qux (-1e4000L) != -5e3999L))
__builtin_abort ();
+#endif
}