aboutsummaryrefslogtreecommitdiff
path: root/gcc
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
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')
-rw-r--r--gcc/fortran/ChangeLog4
-rw-r--r--gcc/fortran/trans-decl.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 55d452f..671ef07 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,5 +1,9 @@
2008-08-29 Jakub Jelinek <jakub@redhat.com>
+ PR fortran/24790
+ * trans-decl.c (create_function_arglist): Set DECL_BY_REFERENCE on
+ PARM_DECLs with pointer or reference type.
+
* trans-decl.c (gfc_build_qualified_array): Build non-flat
array type for debug info purposes.
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);