aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorHarald Anlauf <anlauf@gmx.de>2016-05-15 18:34:57 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2016-05-15 18:34:57 +0000
commit228eb42aabc806d874a330a02f225311a09bb998 (patch)
tree8ec1dbb77f7149c13474f2bd59ce3040a98e78b9 /gcc
parent3a33c74b35c096128cf217ad6cc9185555055ce0 (diff)
downloadgcc-228eb42aabc806d874a330a02f225311a09bb998.zip
gcc-228eb42aabc806d874a330a02f225311a09bb998.tar.gz
gcc-228eb42aabc806d874a330a02f225311a09bb998.tar.bz2
re PR fortran/69603 (ICE: segfault with -fimplicit-none and proc_ptr_comp_24.f90)
2016-05-15 Harald Anlauf <anlauf@gmx.de> PR fortran/69603 * interface.c (compare_parameter): Check for non-NULL pointer. 2016-05-15 Harald Anlauf <anlauf@gmx.de> PR fortran/69603 * gfortran.dg/pr69603.f90: New testcase. From-SVN: r236253
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/interface.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr69603.f9016
4 files changed, 27 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index fff7bde..704c1f1 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2016-05-15 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/69603
+ * interface.c (compare_parameter): Check for non-NULL pointer.
+
2016-05-14 Fritz Reese <fritzoreese@gmail.com>
* gfortran.texi: Update example of DEC UNION extension.
diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c
index b981e7c..5bd1279 100644
--- a/gcc/fortran/interface.c
+++ b/gcc/fortran/interface.c
@@ -2113,7 +2113,7 @@ compare_parameter (gfc_symbol *formal, gfc_expr *actual,
}
ppc = gfc_get_proc_ptr_comp (actual);
- if (ppc)
+ if (ppc && ppc->ts.interface)
{
if (!gfc_compare_interfaces (formal, ppc->ts.interface, ppc->name, 0, 1,
err, sizeof(err), NULL, NULL))
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 78789c2..8ac56b5 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2016-05-15 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/69603
+ * gfortran.dg/pr69603.f90: New testcase.
+
2016-05-14 Fritz Reese <fritzoreese@gmail.com>
* gfortran.dg/dec_union_4.f90: Fix endian issue.
diff --git a/gcc/testsuite/gfortran.dg/pr69603.f90 b/gcc/testsuite/gfortran.dg/pr69603.f90
new file mode 100644
index 0000000..dca4eb1
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr69603.f90
@@ -0,0 +1,16 @@
+! { dg-do compile }
+! { dg-options "-fimplicit-none" }
+! PR fortran/69603 - segfault with -fimplicit-none and proc_ptr_comp_24.f90
+! Based on reduced testcase by Dominique d'Humieres
+PROGRAM prog
+ implicit none
+ TYPE object
+ PROCEDURE(), POINTER, NOPASS :: f
+ END TYPE object
+ TYPE (object) :: o1
+ CALL set_func(o1%f)
+CONTAINS
+ SUBROUTINE set_func(f)
+ PROCEDURE(), POINTER :: f
+ END SUBROUTINE set_func
+END PROGRAM prog