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?