DEC comparisons - allow Hollerith constants in comparisons.
authorMark Eggleston <mark.eggleston@codethink.com>
Mon, 25 Nov 2019 10:36:25 +0000 (10:36 +0000)
committerMark Eggleston <markeggleston@gcc.gnu.org>
Mon, 25 Nov 2019 10:36:25 +0000 (10:36 +0000)
commit32bef8ff8090a0d108fa14fc4088e55e57a5e6d5
treea4574f79a8a1d771a269addff0231d400703b7d2
parentee499b407f6c59fe71c91fa7ad9686d1a4edfce3
DEC comparisons - allow Hollerith constants in comparisons.

The -fdec option enables the use of Hollerith comparisons in comparisons
with INTEGER, COMPLEX, REAL and CHARACTER expressions.

Mark Eggleston  <mark.eggleston@codethink.com>
Jim MacArthur  <jim.macarthur@codethink.co.uk>

* gfortran.texi: Update Hollerith constants support for character types
and use in comparisons.
* invoke.texi: Tidy up list of options. Update description of
-fdec-char-conversions.
* resolve.c (is_character_based): New.
(Convert_hollerith_to_character): New.  (convert_to_numeric): New.
(resolve_operator): If both sides are character based and -fdec is
enabled convert Hollerith to character. If an operand is Hollerith, the
other is numeric and -fdec is enabled convert to numeric.
(resolve_ordinary_assign): Add check for -fdec-char-conversions for
assignment of character literals.

Mark Eggleston <mark.eggleston@codethink.com>
Jim MacArthur <jim.macarthur@codethink.co.uk>

* gfortran.dg/dec-comparison-character_1.f90: New test.
* gfortran.dg/dec-comparison-character_2.f90: New test.
* gfortran.dg/dec-comparison-character_3.f90: New test.
* gfortran.dg/dec-comparison-complex_1.f90: New test.
* gfortran.dg/dec-comparison-complex_2.f90: New test.
* gfortran.dg/dec-comparison-complex_3.f90: New test.
* gfortran.dg/dec-comparison-int_1.f90: New test.
* gfortran.dg/dec-comparison-int_2.f90: New test.
* gfortran.dg/dec-comparison-int_3.f90: New test.
* gfortran.dg/dec-comparison-real_1.f90: New test.
* gfortran.dg/dec-comparison-real_2.f90: New test.
* gfortran.dg/dec-comparison-real_3.f90: New test.
* gfortran.dg/dec-comparison.f90: New test.

Co-Authored-By: Jim MacArthur <jim.macarthur@codethink.co.uk>
From-SVN: r278674
18 files changed:
gcc/fortran/ChangeLog
gcc/fortran/gfortran.texi
gcc/fortran/invoke.texi
gcc/fortran/resolve.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/dec-comparison-character_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/dec-comparison-character_2.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/dec-comparison-character_3.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/dec-comparison-complex_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/dec-comparison-complex_2.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/dec-comparison-complex_3.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/dec-comparison-int_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/dec-comparison-int_2.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/dec-comparison-int_3.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/dec-comparison-real_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/dec-comparison-real_2.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/dec-comparison-real_3.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/dec-comparison.f90 [new file with mode: 0644]