diff options
| author | pault <pault@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-11-16 14:47:31 +0000 |
|---|---|---|
| committer | pault <pault@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-11-16 14:47:31 +0000 |
| commit | 1b44c7ef97ba35d49dbe0554598bd81fcb8d8a0f (patch) | |
| tree | 727b197952b036bc87e12eea803c0341debe75b2 /gcc/fortran/trans-stmt.c | |
| parent | db561be736a732378aa856d2d5389ba551315adb (diff) | |
| download | ppe42-gcc-1b44c7ef97ba35d49dbe0554598bd81fcb8d8a0f.tar.gz ppe42-gcc-1b44c7ef97ba35d49dbe0554598bd81fcb8d8a0f.zip | |
2007-11-16 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34008
* trans-stmt.c (gfc_conv_elemental_dependencies): Add check for
INTENT_INOUT as well as INTENT_OUT.
(gfc_trans_call): Remove redundant gcc_asserts in dependency
check.
2007-11-16 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34008
* gfortran.dg/interface_assignment_3.f90.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130232 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/trans-stmt.c')
| -rw-r--r-- | gcc/fortran/trans-stmt.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c index cbb15a5ce45..ee176dcb75d 100644 --- a/gcc/fortran/trans-stmt.c +++ b/gcc/fortran/trans-stmt.c @@ -246,8 +246,9 @@ gfc_conv_elemental_dependencies (gfc_se * se, gfc_se * loopse, fsym = formal ? formal->sym : NULL; if (e->expr_type == EXPR_VARIABLE && e->rank && fsym - && fsym->attr.intent == INTENT_OUT - && gfc_check_fncall_dependency (e, INTENT_OUT, sym, arg0)) + && fsym->attr.intent != INTENT_IN + && gfc_check_fncall_dependency (e, fsym->attr.intent, + sym, arg0)) { /* Make a local loopinfo for the temporary creation, so that none of the other ss->info's have to be renormalized. */ @@ -380,14 +381,11 @@ gfc_trans_call (gfc_code * code, bool dependency_check) gfc_copy_loopinfo_to_se (&loopse, &loop); loopse.ss = ss; - /* For operator assignment, we need to do dependency checking. - We also check the intent of the parameters. */ + /* For operator assignment, do dependency checking. */ if (dependency_check) { gfc_symbol *sym; sym = code->resolved_sym; - gcc_assert (sym->formal->sym->attr.intent == INTENT_OUT); - gcc_assert (sym->formal->next->sym->attr.intent == INTENT_IN); gfc_conv_elemental_dependencies (&se, &loopse, sym, code->ext.actual); } |

