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

            Bug ID: 102017
           Summary: libgcc ieee754-df.S for arm does not support
                    exceptions
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libgcc
          Assignee: unassigned at gcc dot gnu.org
          Reporter: clyon at gcc dot gnu.org
  Target Milestone: ---

As stated in libgcc/config/arm/ieee754-df.S:

* Exceptions aren't supported yet, but that can be added quite easily
* if necessary without impacting performances.

Since I upgraded the newlib version I use in validation (moved from 3.3.0 to
4.1.0), fenv support is not enabled, thus enabling new tests in the GCC
testsuite.

Some of them fail at execution time on some targets because the code in libgcc
does not raise exception as those tests expect:
gcc.dg/torture/float32x-nan.c
gcc.dg/torture/float64-nan.c
gcc.dg/torture/inf-compare-1.c
gcc.dg/torture/inf-compare-2.c
gcc.dg/torture/inf-compare-3.c
gcc.dg/torture/inf-compare-4.c
gcc.dg/torture/pr52451.c

This happens when targeting cortex-m4 or cortex-m33/-march=armv8-m.main+fp+dsp.

These tests pass when targeting cortex-m7, because it has a DP FPU, and does
not use the libgcc emulation code.

Some of these tests already have xfail { powerpc*-*-* } or dg-skip-if "fenv" {
powerpc-ibm-aix* }, but I am not sure whether and how we want to do this on arm
(maybe using a dg-skip-if checking for -mcpu/march, but that could be painful).

Or do we want to update libgcc to raise exceptions properly?

Reply via email to