]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/24790 (arguments are displayed as reference or pointer to normal type...
authorJakub Jelinek <jakub@redhat.com>
Fri, 29 Aug 2008 18:47:19 +0000 (20:47 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 29 Aug 2008 18:47:19 +0000 (20:47 +0200)
PR fortran/24790
* trans-decl.c (create_function_arglist): Set DECL_BY_REFERENCE on
PARM_DECLs with pointer or reference type.

From-SVN: r139777

gcc/fortran/ChangeLog
gcc/fortran/trans-decl.c

index 55d452fdcdd424cc3a3d700c9d0af71d9bf0664c..671ef074d655022cd3c0182b428a8a92d05cb636 100644 (file)
@@ -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.
 
index 54a1aa0159f704d9a12ffe18fc83a58e952a075a..bf038f7cf94d4469bbab295c190a07f2da9484e4 100644 (file)
@@ -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);