2017-09-25 23:23 GMT+02:00 Steve Kargl <[email protected]>:
> On Mon, Sep 25, 2017 at 11:14:42PM +0200, Janus Weil wrote:
>> 2017-09-25 17:07 GMT+02:00 David Edelsohn <[email protected]>:
>> > promotion_3.f90 and promotion_4.f90 are failing on at least PowerPC
>> > and AArch64. Are these new tests limited to x86 or some long double
>> > assumptions?
>>
>> These tests require the availability of a 10- or 16-byte-wide REAL
>> type, respectively. I have to admit that I do not have a complete
>> overview of which targets in GCC's wide portfolio provide such a type.
>>
>> It seems that REAL(16) is supported via libquadmath on 32-bit x86,
>> x86-64 and Itanium at least. I'm not sure about REAL(10).
>>
>> Targets that do not support such a type probably need to be XFAILed.
>>
>
> Janus, I think you can control with a dg option
>
> dg-require-effective-target fortran_large_real
>
> See, for example, gfortran.dg/random_3.f90
Thanks for the pointer, Steve.
However, it seems that "fortran_large_real" only requires some real
type that is larger than 8 byte, but makes no assumptions on its
actual size (10 or 16 byte). Therefore it's probably not very useful
for promotion_{3,4}.
But: I found that there's also a "fortran_real_16", which should be
suitable for promotion_3. Can someone verify if the following fixes
the problem on the failing targets:
Index: promotion_3.f90
===================================================================
--- promotion_3.f90 (revision 253134)
+++ promotion_3.f90 (working copy)
@@ -1,5 +1,6 @@
! { dg-do run }
! { dg-options "-fdefault-real-16" }
+! { dg-require-effective-target fortran_real_16 }
!
! PR 82143: add a -fdefault-real-16 flag
!
If it does, I'll be happy to commit that. For promotion_4, we probably
need to add an effective target "fortran_real_10" (which does not seem
to exists yet).
Cheers,
Janus