aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikael Morin <mikael@gcc.gnu.org>2014-02-02 11:50:28 +0000
committerMikael Morin <mikael@gcc.gnu.org>2014-02-02 11:50:28 +0000
commit792f73016efe3024ff55d0bb462dbec25196af55 (patch)
tree63b787efc8b15dbc708ff2e4488e33b04fdceed7
parente36c121143a67997b91789031f366595737ce1da (diff)
downloadgcc-792f73016efe3024ff55d0bb462dbec25196af55.zip
gcc-792f73016efe3024ff55d0bb462dbec25196af55.tar.gz
gcc-792f73016efe3024ff55d0bb462dbec25196af55.tar.bz2
re PR fortran/57033 (ICE on extended derived type and default initialization)
fortran/ PR fortran/57033 * primary.c (gfc_convert_to_structure_constructor): Avoid null pointer dereference. testsuite/ PR fortran/57033 * gfortran.dg/default_initialization_7.f90: New test. From-SVN: r207396
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/primary.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/default_initialization_7.f9022
4 files changed, 35 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 5e3a48a..102d5f2 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2014-02-02 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/57033
+ * primary.c (gfc_convert_to_structure_constructor): Avoid null pointer
+ dereference.
+
2014-02-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/59906
diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c
index c77b4ec..7d7fbad 100644
--- a/gcc/fortran/primary.c
+++ b/gcc/fortran/primary.c
@@ -2544,7 +2544,8 @@ gfc_convert_to_structure_constructor (gfc_expr *e, gfc_symbol *sym, gfc_expr **c
if (parent && !comp)
break;
- actual = actual->next;
+ if (actual)
+ actual = actual->next;
}
if (!build_actual_constructor (&comp_head, &ctor_head, sym))
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 8af85b5..b64dfac 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2014-01-26 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/57033
+ * gfortran.dg/default_initialization_7.f90: New test.
+
2014-02-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/59906
diff --git a/gcc/testsuite/gfortran.dg/default_initialization_7.f90 b/gcc/testsuite/gfortran.dg/default_initialization_7.f90
new file mode 100644
index 0000000..fc8be98
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/default_initialization_7.f90
@@ -0,0 +1,22 @@
+! { dg-do compile }
+!
+! PR fortran/57033
+! ICE on a structure constructor of an extended derived type whose parent
+! type last component has a default initializer
+!
+! Contributed by Tilo Schwarz <tilo@tilo-schwarz.de>
+
+program ice
+
+type m
+ integer i
+ logical :: f = .false.
+end type m
+
+type, extends(m) :: me
+end type me
+
+type(me) meo
+
+meo = me(1) ! ICE
+end program ice