diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2018-03-21 01:07:43 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2018-03-21 01:07:43 +0000 |
commit | f11600c98517d58c0f62df8e78f7090524f2d61b (patch) | |
tree | a1edfa4a0e9f5c6bded142cc2f6f83ee10f9d3f9 | |
parent | 2ed0fd052fffa7d90a0ef305e41e9afd662d085e (diff) | |
download | gcc-f11600c98517d58c0f62df8e78f7090524f2d61b.zip gcc-f11600c98517d58c0f62df8e78f7090524f2d61b.tar.gz gcc-f11600c98517d58c0f62df8e78f7090524f2d61b.tar.bz2 |
re PR fortran/85001 (ICE in gfc_build_array_type, at fortran/trans-types.c:1420)
2018-03-20 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/85001
* interface.c (symbol_rank): Remove bogus null pointer check that
crept in when translating a ternary operator into an if-else
constructor.
2018-03-20 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/85001
* gfortran.dg/interface_41.f90: New test.
From-SVN: r258698
-rw-r--r-- | gcc/fortran/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/fortran/interface.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/interface_41.f90 | 19 |
4 files changed, 32 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 8db0754..8bcaabb 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2018-03-20 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/85001 + * interface.c (symbol_rank): Remove bogus null pointer check that + crept in when translating a ternary operator into an if-else + constructor. + 2018-03-19 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/84931 diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c index cb326e5..7f7b2c6 100644 --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -1268,7 +1268,7 @@ symbol_rank (gfc_symbol *sym) { gfc_array_spec *as = NULL; - if (sym->ts.type == BT_CLASS && CLASS_DATA (sym) && CLASS_DATA (sym)->as) + if (sym->ts.type == BT_CLASS && CLASS_DATA (sym)) as = CLASS_DATA (sym)->as; else as = sym->as; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 79cc52c..c4c0815 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-03-20 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/85001 + * gfortran.dg/interface_41.f90: New test. + 2018-03-20 Jakub Jelinek <jakub@redhat.com> PR debug/84875 diff --git a/gcc/testsuite/gfortran.dg/interface_41.f90 b/gcc/testsuite/gfortran.dg/interface_41.f90 new file mode 100644 index 0000000..b5ea8af --- /dev/null +++ b/gcc/testsuite/gfortran.dg/interface_41.f90 @@ -0,0 +1,19 @@ +! { dg-do compile } +! PR fortran/85001 +! Contributed by Gerhard Steinmetz. +program p + type t + end type + call s +contains + real function f(x) + class(t) :: x + dimension :: x(:) + f = 1.0 + end + subroutine s + type(t) :: x(2) + real :: z + z = f(x) ! { dg-error "Rank mismatch in argument" } + end +end |