re PR fortran/70260 (ICE: gimplification failed)
authorThomas Koenig <tkoenig@gcc.gnu.org>
Sun, 18 Nov 2018 09:16:19 +0000 (09:16 +0000)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Sun, 18 Nov 2018 09:16:19 +0000 (09:16 +0000)
commit83fad92900e6370e4ca4f40cefe56a386399239d
tree733da04272d4bc40f47098cfc29208db9487f595
parentf163ea822bbd36328ae2af9c47f2fa05ab1077f1
re PR fortran/70260 (ICE: gimplification failed)

2018-11-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/70260
    * expr.c (gfc_check_assign): Reject assigning to an external
    symbol.
    (gfc_check_pointer_assign): Add suppress_type_test
    argument. Insert line after if. A non-proc pointer can not point
    to a constant.  Only check types if suppress_type_test is false.
    * gfortran.h (gfc_check_pointer_assign): Add optional
    suppress_type_test argument.
    * resolve.c (gfc_resolve_code):  Move up gfc_check_pointer_assign
    and give it the extra argument.
    (resolve_fl_procedure): Set error on value for a function with
    an inizializer.

2018-11-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/70260
    * gfortran.dg/proc_ptr_result_5.f90:  Add dg-error directive.
    * gfortran.dg/protected_4.f90: Split line to allow for extra error.
    * gfortran.dg/protected_6.f90: Likewise.
    * gfortran.dg/assign_11.f90: New test.
    * gfortran.dg/pointer_assign_12.f90: New test.

From-SVN: r266248
gcc/fortran/ChangeLog
gcc/fortran/expr.c
gcc/fortran/gfortran.h
gcc/fortran/resolve.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/assign_11.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/pointer_assign_12.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/proc_ptr_result_5.f90
gcc/testsuite/gfortran.dg/protected_4.f90
gcc/testsuite/gfortran.dg/protected_6.f90