]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/fortran/trans-decl.c
2010-08-17 Daniel Kraft <d@domob.eu>
authordomob <domob@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 17 Aug 2010 08:20:03 +0000 (08:20 +0000)
committerdomob <domob@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 17 Aug 2010 08:20:03 +0000 (08:20 +0000)
commit8f3f9eab5083b3a78a92dfb3fae63f80039689a3
treec4e60dabb6b71164f854d91556581ddd4452d41a
parentd6263c494d25347c96317361668bacbe995aad89
2010-08-17  Daniel Kraft  <d@domob.eu>

PR fortran/38936
* gfortran.h (struct gfc_association_list): New member `where'.
(gfc_is_associate_pointer) New method.
* match.c (gfc_match_associate): Remember locus for each associate
name matched and do not try to set variable flag.
* parse.c (parse_associate): Use remembered locus for symbols.
* primary.c (match_variable): Instead of variable-flag check for
associate names set it for all such names used.
* symbol.c (gfc_is_associate_pointer): New method.
* resolve.c (resolve_block_construct): Don't generate assignments
to give associate-names their values.
(resolve_fl_var_and_proc): Allow associate-names to be deferred-shape.
(resolve_symbol): Set some more attributes for associate variables,
set variable flag here and check it and don't try to build an
explicitely shaped array-spec for array associate variables.
* trans-expr.c (gfc_conv_variable): Dereference in case of association
to scalar variable.
* trans-types.c (gfc_is_nodesc_array): Handle array association symbols.
(gfc_sym_type): Return pointer type for association to scalar vars.
* trans-decl.c (gfc_get_symbol_decl): Defer association symbols.
(trans_associate_var): New method.
(gfc_trans_deferred_vars): Handle association symbols.

2010-08-17  Daniel Kraft  <d@domob.eu>

PR fortran/38936
* gfortran.dg/associate_1.f03: Extended to test newly supported
features like association to variables.
* gfortran.dg/associate_3.f03: Removed check for illegal change
of associate-name here...
* gfortran.dg/associate_5.f03: ...and added it here.
* gfortran.dg/associate_6.f03: No longer XFAIL'ed.
* gfortran.dg/associate_7.f03: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163295 138bc75d-0d04-0410-961f-82ee72b054a4
16 files changed:
gcc/fortran/ChangeLog
gcc/fortran/gfortran.h
gcc/fortran/match.c
gcc/fortran/parse.c
gcc/fortran/primary.c
gcc/fortran/resolve.c
gcc/fortran/symbol.c
gcc/fortran/trans-decl.c
gcc/fortran/trans-expr.c
gcc/fortran/trans-types.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/associate_1.f03
gcc/testsuite/gfortran.dg/associate_3.f03
gcc/testsuite/gfortran.dg/associate_5.f03
gcc/testsuite/gfortran.dg/associate_6.f03
gcc/testsuite/gfortran.dg/associate_7.f03 [new file with mode: 0644]