Hi again,

Any reason to not pick this change to releases/gcc-15?
The test is failing in r15-11477-gf3cf28e2da4d6b for arm-none-eabi.

Kind regards,
Torbjörn

On 2026-08-05 07:28, Torbjorn SVENSSON wrote:
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  <[email protected]>

    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



Reply via email to