aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorHarald Anlauf <anlauf@gmx.de>2018-03-04 01:37:13 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2018-03-04 01:37:13 +0000
commitac80378f4a966aa6b5490cf087380c7324681997 (patch)
treeec595e37d677f6d9276396f5e7684aba076b4483 /gcc
parent6979a6b3d102dbbbf8a28dedb6d9938711065f6b (diff)
downloadgcc-ac80378f4a966aa6b5490cf087380c7324681997.zip
gcc-ac80378f4a966aa6b5490cf087380c7324681997.tar.gz
gcc-ac80378f4a966aa6b5490cf087380c7324681997.tar.bz2
re PR fortran/71085 (ICE with some intrinsic functions specifying array function result dimension)
2018-03-03 Harald Anlauf <anlauf@gmx.de> PR fortran/71085 * trans-expr.c (gfc_apply_interface_mapping_to_expr): Do not dereference NULL pointer. 2018-03-03 Harald Anlauf <anlauf@gmx.de> PR fortran/71085 * gfortran.dg/pr71085.f90: New test. From-SVN: r258228
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-expr.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr71085.f9012
4 files changed, 25 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index eb64c74..9a5b567 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2018-03-03 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/71085
+ * trans-expr.c (gfc_apply_interface_mapping_to_expr): Do not
+ dereference NULL pointer.
+
2018-03-03 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66128
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index a93257c..c84cd10 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -4349,6 +4349,8 @@ gfc_apply_interface_mapping_to_expr (gfc_interface_mapping * mapping,
if (expr->value.function.esym == NULL
&& expr->value.function.isym != NULL
+ && expr->value.function.actual
+ && expr->value.function.actual->expr
&& expr->value.function.actual->expr->symtree
&& gfc_map_intrinsic_function (expr, mapping))
break;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 45b72e5..63adcbe 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2018-03-03 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/71085
+ * gfortran.dg/pr71085.f90: New test.
+
2018-03-03 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66128
diff --git a/gcc/testsuite/gfortran.dg/pr71085.f90 b/gcc/testsuite/gfortran.dg/pr71085.f90
new file mode 100644
index 0000000..11d9850
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr71085.f90
@@ -0,0 +1,12 @@
+! { dg-do compile }
+! PR 71085
+!
+! Testcase from PR by Vladimir Fuka <vladimir.fuka@gmail.com>
+!
+program pr71085
+ print *, f()
+contains
+ function f()
+ integer :: f(iargc()*10)
+ end
+end