summaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>2008-11-12 06:59:33 +0000
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>2008-11-12 06:59:33 +0000
commit9b3a552ab4dc45b7b47cae9984dc0021dd63150d (patch)
tree3bc328af46b43b81b7b2cbe50863b22eb7139db9 /gcc/fortran
parentf80b0858483765771937d3358819f94a234b0659 (diff)
downloadgcc-9b3a552ab4dc45b7b47cae9984dc0021dd63150d.tar.gz
2008-11-12 Tobias Burnus <burnus@net-b.de>
PR fortran/38065 * resolve.c (resolve_fntype): Fix private derived type checking. 2008-11-12 Tobias Burnus <burnus@net-b.de> PR fortran/38065 * gfortran.dg/private_type_11.f90: New test. * gfortran.dg/private_type_12.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141780 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog13
-rw-r--r--gcc/fortran/resolve.c6
2 files changed, 13 insertions, 6 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index efa4678f30e..0b1253914b3 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,7 +1,12 @@
+2008-11-12 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/38065
+ * resolve.c (resolve_fntype): Fix private derived type checking.
+
2008-11-09 Paul Thomas <pault@gcc.gnu.org>
- PR fortran/37836
- * intrinsic.c (add_functions): Reference gfc_simplify._minval
+ PR fortran/37836
+ * intrinsic.c (add_functions): Reference gfc_simplify._minval
and gfc_simplify_maxval.
* intrinsic.h : Add prototypes for gfc_simplify._minval and
gfc_simplify_maxval.
@@ -13,8 +18,8 @@
2008-11-04 Paul Thomas <pault@gcc.gnu.org>
- PR fortran/37597
- * parse.c (gfc_fixup_sibling_symbols ): Fixup contained, even
+ PR fortran/37597
+ * parse.c (gfc_fixup_sibling_symbols ): Fixup contained, even
when symbol not found.
2008-11-03 Tobias Burnus <burnus@net-b.de>
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 4774b0bdb96..aae1ef784f4 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -10179,12 +10179,14 @@ resolve_fntype (gfc_namespace *ns)
}
if (sym->ts.type == BT_DERIVED && !sym->ts.derived->attr.use_assoc
+ && !sym->attr.contained
&& !gfc_check_access (sym->ts.derived->attr.access,
sym->ts.derived->ns->default_access)
&& gfc_check_access (sym->attr.access, sym->ns->default_access))
{
- gfc_error ("PUBLIC function '%s' at %L cannot be of PRIVATE type '%s'",
- sym->name, &sym->declared_at, sym->ts.derived->name);
+ gfc_notify_std (GFC_STD_F2003, "Fortran 2003: PUBLIC function '%s' at "
+ "%L of PRIVATE type '%s'", sym->name,
+ &sym->declared_at, sym->ts.derived->name);
}
if (ns->entries)