aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-decl.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-08-29 20:47:19 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2008-08-29 20:47:19 +0200
commit714495cdcf2425b6aa9f3eac6bd010f3030ddd41 (patch)
tree49e691559f7ca549e33b0144429949c36d71db7b /gcc/fortran/trans-decl.c
parent2599ed926b039b9f5e167e03910e7c0d3e8d48ca (diff)
downloadgcc-714495cdcf2425b6aa9f3eac6bd010f3030ddd41.zip
gcc-714495cdcf2425b6aa9f3eac6bd010f3030ddd41.tar.gz
gcc-714495cdcf2425b6aa9f3eac6bd010f3030ddd41.tar.bz2
re PR fortran/24790 (arguments are displayed as reference or pointer to normal type in GDB)
PR fortran/24790 * trans-decl.c (create_function_arglist): Set DECL_BY_REFERENCE on PARM_DECLs with pointer or reference type. From-SVN: r139777
Diffstat (limited to 'gcc/fortran/trans-decl.c')
-rw-r--r--gcc/fortran/trans-decl.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 54a1aa0..bf038f7 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -1644,6 +1644,10 @@ create_function_arglist (gfc_symbol * sym)
DECL_ARG_TYPE (parm) = TREE_VALUE (typelist);
/* All implementation args are read-only. */
TREE_READONLY (parm) = 1;
+ if (POINTER_TYPE_P (type)
+ && (!f->sym->attr.proc_pointer
+ && f->sym->attr.flavor != FL_PROCEDURE))
+ DECL_BY_REFERENCE (parm) = 1;
gfc_finish_decl (parm);