aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-expr.c
diff options
context:
space:
mode:
authorAsher Langton <langton2@llnl.gov>2006-05-30 23:27:38 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2006-05-30 23:27:38 +0000
commit7074ea72d10e861505f70e2e12060c3909474bf7 (patch)
treee61a9fb26be5623e3ec18415f7dc47ffb285e9c2 /gcc/fortran/trans-expr.c
parent9cb96754ae0a6af89ec8286d6a68d76c70698a65 (diff)
downloadgcc-7074ea72d10e861505f70e2e12060c3909474bf7.zip
gcc-7074ea72d10e861505f70e2e12060c3909474bf7.tar.gz
gcc-7074ea72d10e861505f70e2e12060c3909474bf7.tar.bz2
symbol.c (check_conflict): Allow external, function, and subroutine attributes with Cray pointees.
2006-05-30 Asher Langton <langton2@llnl.gov> * symbol.c (check_conflict): Allow external, function, and subroutine attributes with Cray pointees. * trans-expr.c (gfc_conv_function_val): Translate Cray pointees that point to procedures. * gfortran.texi: Document new feature. * gfortran.dg/cray_pointers_7.f90: New test. From-SVN: r114252
Diffstat (limited to 'gcc/fortran/trans-expr.c')
-rw-r--r--gcc/fortran/trans-expr.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index b91ebf6..752609c 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -1191,6 +1191,9 @@ gfc_conv_function_val (gfc_se * se, gfc_symbol * sym)
sym->backend_decl = gfc_get_extern_function_decl (sym);
tmp = sym->backend_decl;
+ if (sym->attr.cray_pointee)
+ tmp = convert (build_pointer_type (TREE_TYPE (tmp)),
+ gfc_get_symbol_decl (sym->cp_pointer));
if (!POINTER_TYPE_P (TREE_TYPE (tmp)))
{
gcc_assert (TREE_CODE (tmp) == FUNCTION_DECL);