re PR fortran/41608 ([OOP] ICE with CLASS and invalid code)
authorJanus Weil <janus@gcc.gnu.org>
Sat, 17 Oct 2009 18:09:25 +0000 (20:09 +0200)
committerPaul Thomas <pault@gcc.gnu.org>
Sat, 17 Oct 2009 18:09:25 +0000 (18:09 +0000)
commit2e23972ecbc374ca535d8fd40d18550e95bdd69d
tree03b99fc40494c871043fba245074cae8252f0e8a
parent1ee41d433d6d0fe65a719a5bb704de31043b2b78
re PR fortran/41608 ([OOP] ICE with CLASS and invalid code)

2009-10-17  Janus Weil  <janus@gcc.gnu.org>
    Paul Thomas  <pault@gcc.gnu.org>

PR fortran/41608
* decl.c (gfc_match_data_decl): Add BT_CLASS for undefined type
and empty type errors.
* parse.c (gfc_build_block_ns): Only set recursive if parent ns
has a proc_name.

PR fortran/41629
PR fortran/41618
PR fortran/41587
* gfortran.h : Add class_ok bitfield to symbol_attr.
* decl.c (build_sym): Set attr.class_ok if dummy, pointer or
allocatable.
(build_struct): Use gfc_try 't' to carry errors past the call
to encapsulate_class_symbol.
(attr_decl1): For a CLASS object, apply the new attribute to
the data component.
* match.c (gfc_match_select_type): Set attr.class_ok for an
assigned selector.
* resolve.c (resolve_fl_variable_derived): Check a CLASS object
is dummy, pointer or allocatable by testing the class_ok and
the use_assoc attribute.

2009-10-17  Janus Weil  <janus@gcc.gnu.org>
    Paul Thomas  <pault@gcc.gnu.org>

PR fortran/41629
* gfortran.dg/class_6.f90: New test.

PR fortran/41608
PR fortran/41587
* gfortran.dg/class_7.f90: New test.

PR fortran/41618
* gfortran.dg/class_8.f90: New test.

Co-Authored-By: Paul Thomas <pault@gcc.gnu.org>
From-SVN: r152955
gcc/fortran/ChangeLog
gcc/fortran/decl.c
gcc/fortran/gfortran.h
gcc/fortran/match.c
gcc/fortran/parse.c
gcc/fortran/resolve.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/class_6.f03 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/class_7.f03 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/class_8.f03 [new file with mode: 0644]