diff options
author | Janus Weil <janus@gcc.gnu.org> | 2012-07-31 15:03:53 +0200 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2012-07-31 15:03:53 +0200 |
commit | 8539d639a863e52a59bad6ef6c7fbd7e80a4c042 (patch) | |
tree | d89feb8370f0f1f19d52dbd2d74516b16acdd884 /gcc | |
parent | 315bdf71bd62b8efd04c426a2be7d641cda8658e (diff) | |
download | gcc-8539d639a863e52a59bad6ef6c7fbd7e80a4c042.zip gcc-8539d639a863e52a59bad6ef6c7fbd7e80a4c042.tar.gz gcc-8539d639a863e52a59bad6ef6c7fbd7e80a4c042.tar.bz2 |
re PR fortran/54134 ([OOP] ICE overriding derived type bound function with allocatable character as result)
2012-07-31 Janus Weil <janus@gcc.gnu.org>
PR fortran/54134
* dependency.c (gfc_dep_compare_expr): Check if arguments are NULL.
2012-07-31 Janus Weil <janus@gcc.gnu.org>
PR fortran/54134
* gfortran.dg/typebound_override_3.f90: New.
From-SVN: r190010
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/dependency.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/typebound_override_3.f90 | 34 |
4 files changed, 47 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index fcd07f1..7eb4db4 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2012-07-31 Janus Weil <janus@gcc.gnu.org> + + PR fortran/54134 + * dependency.c (gfc_dep_compare_expr): Check if arguments are NULL. + 2012-07-31 Tobias Burnus <burnus@net-b.de> * interface.c (gfc_procedure_use): Return gfc_try instead of void. diff --git a/gcc/fortran/dependency.c b/gcc/fortran/dependency.c index 108815a..ea1245d 100644 --- a/gcc/fortran/dependency.c +++ b/gcc/fortran/dependency.c @@ -261,6 +261,9 @@ gfc_dep_compare_expr (gfc_expr *e1, gfc_expr *e2) n1 = NULL; n2 = NULL; + if (e1 == NULL && e2 == NULL) + return 0; + /* Remove any integer conversion functions to larger types. */ if (e1->expr_type == EXPR_FUNCTION && e1->value.function.isym && e1->value.function.isym->id == GFC_ISYM_CONVERSION diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index bfbf597..6a56342 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-07-31 Janus Weil <janus@gcc.gnu.org> + + PR fortran/54134 + * gfortran.dg/typebound_override_3.f90: New. + 2012-07-31 Bill Schmidt <wschmidt@linux.ibm.com> PR tree-optimization/53773 diff --git a/gcc/testsuite/gfortran.dg/typebound_override_3.f90 b/gcc/testsuite/gfortran.dg/typebound_override_3.f90 new file mode 100644 index 0000000..36d8473 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/typebound_override_3.f90 @@ -0,0 +1,34 @@ +! { dg-do compile } +! +! PR 54134: [OOP] ICE overriding derived type bound function with allocatable character as result +! +! Contributed by <koen.poppe@cs.kuleuven.be> + +module dtAs + implicit none + type :: A + contains + procedure, nopass :: name => name_A + end type +contains + function name_A() result( name ) + character(:), allocatable :: name + name = "name_A" + end function +end module + +module dtBs + use dtAs + implicit none + type, extends( A ) :: B + contains + procedure, nopass :: name => name_B + end type +contains + function name_B() result( name ) + character(:), allocatable :: name + name = "name_B" + end function +end module + +! { dg-final { cleanup-modules "dtAs dtBs" } } |