On Wed, Jan 30, 2019 at 9:51 PM Janne Blomqvist <blomqvist.ja...@gmail.com> wrote: > > On Wed, Jan 30, 2019 at 9:12 PM Uros Bizjak <ubiz...@gmail.com> wrote: >> >> On Wed, Jan 30, 2019 at 10:37 AM Uros Bizjak <ubiz...@gmail.com> wrote: >> >> > > Your decription suggests that this fixes PR fortran/88678. >> > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88678 >> > >> > Actually, additional patch is needed to fully fix PR88678. >> > support_fpu_trap enables and disables exceptions and this may fire >> > spurious exceptions. Just assume that all supported flags can generate >> > exceptions, as is done in the additional patch, posted to PR88678. >> >> The remaining ieee_*.f90 tests and large_1.f90 test failures on >> powerpc64 are fixed by the attached patch. >> >> 2019-01-30 Uroš Bizjak <ubiz...@gmail.com> >> >> PR fortran/88678 >> * config/fpu-glibc.h (support_fpu_trap): Do not try to enable >> exceptions to determine if exception is supported. >> >> Bootstrapped and regression tested on x86_64-linux-gnu {,-m32} (with >> appropriate config.host tweak to select fpu-glibc.header), >> alphaev68-linux-gnu and as reported in the PR, on >> powerpc64le-linux-gnu by Peter. >> >> OK for mainline? > > > This seems to change the only user of support_fpu_trap() that is different > from support_fpu_flag(), so with this change one could remove > support_fpu_trap() entirely and modify all callers (since it's an internal > function it's not used outside libgfortran) to call support_fpu_flag() > directly. Otherwise Ok.
Some targets only support IEEE flags (so, flags in some FP status register), but not exceptions (traps) based on these flags that halt the program. Currently, fpu-glibc.h assumes that all flags can generate exceptions (that is true for the current set of gfortran targets), but some future target wants to return 0 from support_fpu_trap. Uros.