summaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2011-07-04 05:48:40 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2011-07-04 05:48:40 +0000
commitf981034647ef3d37462f217c9aec241a1ab4c799 (patch)
tree333c0a894c5337c5cbbeccc4e38db11b9ee43553 /gcc/fortran
parent373743d1695da5688d26874f4a74257f6d1ddb77 (diff)
downloadgcc-f981034647ef3d37462f217c9aec241a1ab4c799.tar.gz
2011-07-04 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 175793 using svnmerge. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@175795 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/expr.c5
2 files changed, 7 insertions, 3 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 055c15d29e1..e2d5d124dac 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2011-07-02 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/49562
+ * expr.c (gfc_check_vardef_context): Handle type-bound procedures.
+
2011-06-30 Jakub Jelinek <jakub@redhat.com>
PR fortran/49540
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c
index 4a7a951b6d6..6dcfda1e53a 100644
--- a/gcc/fortran/expr.c
+++ b/gcc/fortran/expr.c
@@ -4394,8 +4394,8 @@ gfc_check_vardef_context (gfc_expr* e, bool pointer, bool alloc_obj,
sym = e->value.function.esym ? e->value.function.esym : e->symtree->n.sym;
}
- if (!pointer && e->expr_type == EXPR_FUNCTION
- && sym->result->attr.pointer)
+ attr = gfc_expr_attr (e);
+ if (!pointer && e->expr_type == EXPR_FUNCTION && attr.pointer)
{
if (!(gfc_option.allow_std & GFC_STD_F2008))
{
@@ -4432,7 +4432,6 @@ gfc_check_vardef_context (gfc_expr* e, bool pointer, bool alloc_obj,
/* Find out whether the expr is a pointer; this also means following
component references to the last one. */
- attr = gfc_expr_attr (e);
is_pointer = (attr.pointer || attr.proc_pointer);
if (pointer && !is_pointer)
{