aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/expr.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2012-11-27 23:20:44 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2012-11-27 23:20:44 +0100
commit916bad5528903202476629ae03d4af03779b4f88 (patch)
treeb89e89d0758864c6437f331fd445a29614b32b29 /gcc/fortran/expr.c
parentce940020f8ddc157806d642dddfb6e7bcec51f34 (diff)
downloadgcc-916bad5528903202476629ae03d4af03779b4f88.zip
gcc-916bad5528903202476629ae03d4af03779b4f88.tar.gz
gcc-916bad5528903202476629ae03d4af03779b4f88.tar.bz2
re PR fortran/55476 (Bogus warning "Pointer might outlive the pointer target")
2012-11-27 Tobias Burnus <burnus@net-b.de> PR fortran/55476 * expr.c (gfc_check_pointer_assign): Fix check pointer-might-outlive-target check for host_assoc. 2012-11-27 Tobias Burnus <burnus@net-b.de> PR fortran/55476 * gfortran.dg/warn_target_lifetime_3.f90: New. From-SVN: r193872
Diffstat (limited to 'gcc/fortran/expr.c')
-rw-r--r--gcc/fortran/expr.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c
index 211f304..15570af 100644
--- a/gcc/fortran/expr.c
+++ b/gcc/fortran/expr.c
@@ -3693,7 +3693,9 @@ gfc_check_pointer_assign (gfc_expr *lvalue, gfc_expr *rvalue)
warn = lvalue->symtree->n.sym->attr.dummy
|| lvalue->symtree->n.sym->attr.result
|| lvalue->symtree->n.sym->attr.function
- || lvalue->symtree->n.sym->attr.host_assoc
+ || (lvalue->symtree->n.sym->attr.host_assoc
+ && lvalue->symtree->n.sym->ns
+ != rvalue->symtree->n.sym->ns)
|| lvalue->symtree->n.sym->attr.use_assoc
|| lvalue->symtree->n.sym->attr.in_common;