diff options
author | Daniel Franke <franke.daniel@gmail.com> | 2009-12-10 16:03:40 -0500 |
---|---|---|
committer | Daniel Franke <dfranke@gcc.gnu.org> | 2009-12-10 16:03:40 -0500 |
commit | b94e5176d7e1ed624db4678244e421248421392d (patch) | |
tree | 5722d6834512dd86afc9564c3c0eb19b260aa731 /gcc | |
parent | 47cb0d7da16c57888fdc04437530d86f33ee3c1b (diff) | |
download | gcc-b94e5176d7e1ed624db4678244e421248421392d.zip gcc-b94e5176d7e1ed624db4678244e421248421392d.tar.gz gcc-b94e5176d7e1ed624db4678244e421248421392d.tar.bz2 |
re PR fortran/41369 (Empty derived-type wrongly rejected as function return type)
2009-12-10 Daniel Franke <franke.daniel@gmail.com>
PR fortran/41369
* parse.c (match_deferred_characteristics): Removed check for empty
types in function return values.
2009-12-10 Daniel Franke <franke.daniel@gmail.com>
PR fortran/41369
* gfortran.dg/func_derived_5.f90: New.
From-SVN: r155141
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/parse.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/func_derived_5.f90 | 14 |
4 files changed, 26 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 7280dd7..b1bec37 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,11 @@ 2009-12-10 Daniel Franke <franke.daniel@gmail.com> + PR fortran/41369 + * parse.c (match_deferred_characteristics): Removed check for empty + types in function return values. + +2009-12-10 Daniel Franke <franke.daniel@gmail.com> + PR fortran/34402 * expr.c (check_alloc_comp_init): New. (check_init_expr): Verify that allocatable components diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c index c5d3548..98d684f 100644 --- a/gcc/fortran/parse.c +++ b/gcc/fortran/parse.c @@ -2340,7 +2340,7 @@ match_deferred_characteristics (gfc_typespec * ts) { ts->kind = 0; - if (!ts->u.derived || !ts->u.derived->components) + if (!ts->u.derived) m = MATCH_ERROR; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index fd0628f..2b1220b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-12-10 Daniel Franke <franke.daniel@gmail.com> + + PR fortran/41369 + * gfortran.dg/func_derived_5.f90: New. + 2009-12-10 Jan Hubicka <jh@suse.cz> PR middle-end/42110 diff --git a/gcc/testsuite/gfortran.dg/func_derived_5.f90 b/gcc/testsuite/gfortran.dg/func_derived_5.f90 new file mode 100644 index 0000000..afe5ec0 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/func_derived_5.f90 @@ -0,0 +1,14 @@ +! { dg-do "compile" } +! PR fortran/41369 - rejected empty type in function return values + +module m + type t + end type t +end module + +type(t) function foo() + use m + foo = t() +end function foo + +! { dg-final { cleanup-modules "m" } } |