diff options
author | pbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-07-12 01:23:39 +0000 |
---|---|---|
committer | pbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-07-12 01:23:39 +0000 |
commit | bda1f1529579629892f0df73cda21ae4ca6cdbf6 (patch) | |
tree | 965224cf14305213a75803cd0d6ba965b02e9514 /gcc/fortran/expr.c | |
parent | 7881bc34f365874a9f2008fcd63852ac05c9d048 (diff) | |
download | ppe42-gcc-bda1f1529579629892f0df73cda21ae4ca6cdbf6.tar.gz ppe42-gcc-bda1f1529579629892f0df73cda21ae4ca6cdbf6.zip |
* expr.c (gfc_check_assign_symbol): Handle pointer assignments.
* trans-array.c (gfc_trans_auto_array_allocation): Remove
initialization code.
* trans-common.c (create_common): Use gfc_conv_initializer.
* trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer.
* trans-expr.c (gfc_conv_initializer): New function.
(gfc_conv_structure): Use it.
* trans.h (gfc_conv_initializer): Add prototype.
testsuite/
* gfortran.dg/pointer_init_1.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84542 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/expr.c')
-rw-r--r-- | gcc/fortran/expr.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c index f332b3415d5..74b785a5175 100644 --- a/gcc/fortran/expr.c +++ b/gcc/fortran/expr.c @@ -1855,7 +1855,7 @@ gfc_check_pointer_assign (gfc_expr * lvalue, gfc_expr * rvalue) /* Relative of gfc_check_assign() except that the lvalue is a single - symbol. */ + symbol. Used for initialization assignments. */ try gfc_check_assign_symbol (gfc_symbol * sym, gfc_expr * rvalue) @@ -1873,7 +1873,10 @@ gfc_check_assign_symbol (gfc_symbol * sym, gfc_expr * rvalue) lvalue.symtree->n.sym = sym; lvalue.where = sym->declared_at; - r = gfc_check_assign (&lvalue, rvalue, 1); + if (sym->attr.pointer) + r = gfc_check_pointer_assign (&lvalue, rvalue); + else + r = gfc_check_assign (&lvalue, rvalue, 1); gfc_free (lvalue.symtree); |