re PR fortran/24534 (PUBLIC derived types with private components)
authorPaul Thomas <pault@gcc.gnu.org>
Sun, 6 Nov 2005 20:05:12 +0000 (20:05 +0000)
committerPaul Thomas <pault@gcc.gnu.org>
Sun, 6 Nov 2005 20:05:12 +0000 (20:05 +0000)
commit4075a94ef5610e42839970b49f25ae1bbf176520
treecf705dd04dbbcc1d3afb58821a83148e48c5ea47
parentc5a35c3c50228be69ecbb579b53925d7be73377d
re PR fortran/24534 (PUBLIC derived types with private components)

2005-11-06  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/24534
* resolve.c (resolve_symbol): Exclude case of PRIVATE declared
within derived type from error associated with PRIVATE type
components within derived type.

PR fortran/20838
PR fortran/20840
* gfortran.h: Add prototype for gfc_has_vector_index.
* io.c (gfc_resolve_dt): Error if internal unit has a vector index.
* expr.c (gfc_has_vector_index): New function to check if any of
the array references of an expression have vector inidices.
(gfc_check_pointer_assign): Error if internal unit has a vector index.

PR fortran/17737
* data.c (gfc_assign_data_value): Remove gcc_assert that caused the ICE
and replace by a standard dependent warning/error if overwriting an
existing initialization.
* decl.c (gfc_data_variable): Remove old error for already initialized
variable and the unused error check for common block variables.  Add
error for hots associated variable and standard dependent error for
common block variables, outside of blockdata.
* symbol.c (check_conflict): Add constraints for DATA statement.

2005-11-06  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/24534
gfortran.dg/private_type_2.f90: Modified to check that case with
PRIVATE declaration within derived type is accepted.

PR fortran/20838
gfortran.dg/pointer_assign_1.f90: New test.

PR fortran/20840
* gfortran.dg/arrayio_0.f90: New test.

PR fortran/17737
gfortran.dg/data_initialized.f90: New test.
gfortran.dg/data_constraints_1.f90: New test.
gfortran.dg/data_constraints_2.f90: New test.

From-SVN: r106567
15 files changed:
gcc/fortran/ChangeLog
gcc/fortran/data.c
gcc/fortran/decl.c
gcc/fortran/expr.c
gcc/fortran/gfortran.h
gcc/fortran/io.c
gcc/fortran/resolve.c
gcc/fortran/symbol.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/arrayio_0.f90 [new file with mode: 0755]
gcc/testsuite/gfortran.dg/data_constraints_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/data_constraints_2.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/data_initialized.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/pointer_assign_1.f90 [new file with mode: 0755]
gcc/testsuite/gfortran.dg/private_type_2.f90