aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven G. Kargl <kargl@gcc.gnu.org>2018-03-21 01:07:43 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2018-03-21 01:07:43 +0000
commitf11600c98517d58c0f62df8e78f7090524f2d61b (patch)
treea1edfa4a0e9f5c6bded142cc2f6f83ee10f9d3f9
parent2ed0fd052fffa7d90a0ef305e41e9afd662d085e (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/fortran/interface.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/interface_41.f9019
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