aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-decl.c
diff options
context:
space:
mode:
authorErik Edelmann <eedelman@gcc.gnu.org>2005-11-09 11:27:56 +0000
committerErik Edelmann <eedelman@gcc.gnu.org>2005-11-09 11:27:56 +0000
commita01db3bf1a1430d7c4665364250ac63fab318a6a (patch)
tree196138e4184c19886262aa678dad88c2bf9930a0 /gcc/fortran/trans-decl.c
parent1508cc4663c41afdcaf9df3499b24f6537afe818 (diff)
downloadgcc-a01db3bf1a1430d7c4665364250ac63fab318a6a.zip
gcc-a01db3bf1a1430d7c4665364250ac63fab318a6a.tar.gz
gcc-a01db3bf1a1430d7c4665364250ac63fab318a6a.tar.bz2
re PR fortran/22607 (Elemental character functions don't work)
fortran/ 2005-11-09 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/22607 * trans-decl.c(build_function_decl): Don't set DECL_IS_PURE (fndecl) = 1 for return-by-reference functions. testsuite/ 2005-11-09 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/22607 * gfortran-dg/pure_byref_1.f90: New. * gfortran-dg/pure_byref_2.f90: New. From-SVN: r106683
Diffstat (limited to 'gcc/fortran/trans-decl.c')
-rw-r--r--gcc/fortran/trans-decl.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 9d71d71..04f037b 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -1203,7 +1203,7 @@ build_function_decl (gfc_symbol * sym)
/* TODO: check if a pure SUBROUTINE has no INTENT(OUT) arguments
including a alternate return. In that case it can also be
marked as PURE. See also in gfc_get_extern_function_decl(). */
- if (attr.function)
+ if (attr.function && !gfc_return_by_reference (sym))
DECL_IS_PURE (fndecl) = 1;
TREE_SIDE_EFFECTS (fndecl) = 0;
}