]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/fortran/intrinsic.cc
decl.c (match_old_style_init): Use a clearer error message.
authorSteven G. Kargl <kargl@gcc.gnu.org>
Sat, 10 Aug 2019 18:26:13 +0000 (18:26 +0000)
committerSteven G. Kargl <kargl@gcc.gnu.org>
Sat, 10 Aug 2019 18:26:13 +0000 (18:26 +0000)
commit878f88b7d14a33b031aaf0ae797bb39d21f74676
treea46d0e4c5948327c1c6686fd1403fc7756bd9259
parent884efbd523b7191edd7763ae8bba8afc96e3c238
decl.c (match_old_style_init): Use a clearer error message.

2019-08-10  Steven G. Kargl  <kargl@gcc.gnu.org>

* decl.c (match_old_style_init): Use a clearer error message.
* expr.c (gfc_check_assign): Update BOZ checking to provide a stricter
adherence to the Fortran standard.  Use gfc_invalid_boz () to
relax errors into warnings.
* gfortran.h (gfc_isym_id): Add new ids GFC_ISYM_DFLOAT,
GFC_ISYM_FLOAT, GFC_ISYM_REALPART, and GFC_ISYM_SNGL
* intrinsic.c (add_functions): Use new ids to split REAL generic into
REAL, FLOAT, DFLOAT, SNGL, and REALPART generics.
(gfc_intrinsic_func_interface): Allow new intrinsics in an
initialization expression
* resolve.c (resolve_operator): Deal with BOZ as operands.
        Use gfc_invalid_boz to allow for errors or warnings via the
-fallow-invalid-boz option.  A BOZ cannot be an operand to an
unary operator.  Both operands of a binary operator cannot be BOZ.
        For binary operators, convert a BOZ operand into the type and
kind of the other operand for REAL or INTEGER operand.
* trans-intrinsic.c: Use new ids to cause conversions to happen.

2019-08-10  Steven G. Kargl  <kargl@gcc.gnu.org>

* gfortran.dg/boz_8.f90: Adjust error messages.
* gfortran.dg/nan_4.f90: Ditto.
* gfortran.dg/boz_1.f90: Add -fallow-invalid-boz to dg-options,
and test for warnings.
* gfortran.dg/boz_3.f90: Ditto.
* gfortran.dg/boz_4.f90: Ditto.
* gfortran.dg/dec_structure_6.f90: Ditto.
* gfortran.dg/ibits.f90: Ditto.

From-SVN: r274257
15 files changed:
gcc/fortran/ChangeLog
gcc/fortran/decl.c
gcc/fortran/expr.c
gcc/fortran/gfortran.h
gcc/fortran/intrinsic.c
gcc/fortran/resolve.c
gcc/fortran/trans-intrinsic.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/boz_1.f90
gcc/testsuite/gfortran.dg/boz_3.f90
gcc/testsuite/gfortran.dg/boz_4.f90
gcc/testsuite/gfortran.dg/boz_8.f90
gcc/testsuite/gfortran.dg/dec_structure_6.f90
gcc/testsuite/gfortran.dg/ibits.f90
gcc/testsuite/gfortran.dg/nan_4.f90