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.

Reply via email to