aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-decl.c
diff options
context:
space:
mode:
authorErik Edelmann <eedelman@gcc.gnu.org>2005-12-30 15:02:44 +0000
committerErik Edelmann <eedelman@gcc.gnu.org>2005-12-30 15:02:44 +0000
commitcf013e9fdbd98b7798cbd88f126000c72361c56c (patch)
treeb1309c080ace37470b0f763d098f2b1fed68196b /gcc/fortran/trans-decl.c
parentae21215e5c1d35711ff7a275bebb255525e83b5b (diff)
downloadgcc-cf013e9fdbd98b7798cbd88f126000c72361c56c.zip
gcc-cf013e9fdbd98b7798cbd88f126000c72361c56c.tar.gz
gcc-cf013e9fdbd98b7798cbd88f126000c72361c56c.tar.bz2
re PR fortran/22607 (Elemental character functions don't work)
fortran/ 2005-12-30 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/22607 * trans-decl.c(gfc_get_extern_function_decl): Don't set DECL_IS_PURE (fndecl) = 1 for return-by-reference functions. fortran/PR 25396 * interface.c (gfc_extend_expr): Initialize e->value.function.name to NULL. testsuite/ 2005-12-30 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/22607 * gfortran-dg/pure_byref_3.f90: New. fortran/PR 25396 * gfortran.dg/userdef_operator_1.f90: New. From-SVN: r109171
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 b3f153b..aa4a3b0 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -1093,7 +1093,7 @@ gfc_get_extern_function_decl (gfc_symbol * sym)
sense. */
if (sym->attr.pure || sym->attr.elemental)
{
- if (sym->attr.function)
+ if (sym->attr.function && !gfc_return_by_reference (sym))
DECL_IS_PURE (fndecl) = 1;
/* TODO: check if pure SUBROUTINEs don't have INTENT(OUT)
parameters and don't use alternate returns (is this