aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2012-04-15 13:47:49 +0200
committerJanus Weil <janus@gcc.gnu.org>2012-04-15 13:47:49 +0200
commit9b63dcab1e9c9243604c8762ff9145951e485b9e (patch)
treed267d4a18b3c610c373995a9be40e5f5368961db /gcc/fortran
parentcdd244b8325261c691418991eaf78018e4be1d36 (diff)
downloadgcc-9b63dcab1e9c9243604c8762ff9145951e485b9e.zip
gcc-9b63dcab1e9c9243604c8762ff9145951e485b9e.tar.gz
gcc-9b63dcab1e9c9243604c8762ff9145951e485b9e.tar.bz2
re PR fortran/51082 ([F03] Wrong result for a pointer to a proc-pointer component)
2012-04-15 Janus Weil <janus@gcc.gnu.org> PR fortran/51082 * trans-expr.c (gfc_conv_expr_reference): Check if the expression is a simple function call (or a more involved PPC reference). 2012-04-15 Janus Weil <janus@gcc.gnu.org> PR fortran/51082 * gfortran.dg/proc_ptr_comp_34.f90: New test case. From-SVN: r186465
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-expr.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 9bb46ac..4db00bb 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2012-04-15 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/51082
+ * trans-expr.c (gfc_conv_expr_reference): Check if the expression is a
+ simple function call (or a more involved PPC reference).
+
2012-04-15 Tobias Burnus <burnus@net-b.de>
PR fortran/52916
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index 036b55b..cd48d5a 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -5650,7 +5650,7 @@ gfc_conv_expr_reference (gfc_se * se, gfc_expr * expr)
&& ((expr->value.function.esym
&& expr->value.function.esym->result->attr.pointer
&& !expr->value.function.esym->result->attr.dimension)
- || (!expr->value.function.esym
+ || (!expr->value.function.esym && !expr->ref
&& expr->symtree->n.sym->attr.pointer
&& !expr->symtree->n.sym->attr.dimension)))
{