aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaul Brook <pbrook@gcc.gnu.org>2004-05-13 23:22:13 +0000
committerPaul Brook <pbrook@gcc.gnu.org>2004-05-13 23:22:13 +0000
commitc39373da4911f9246dec9b50011ed2aa9247c2c1 (patch)
treedefda8dbed3925b82febb0f106ee66bfb41d35b5 /gcc
parent6b9bee8ee6bd4925078813d6d0b198b2d19f3853 (diff)
downloadgcc-c39373da4911f9246dec9b50011ed2aa9247c2c1.zip
gcc-c39373da4911f9246dec9b50011ed2aa9247c2c1.tar.gz
gcc-c39373da4911f9246dec9b50011ed2aa9247c2c1.tar.bz2
re PR fortran/15314 (ICE caused by array initializer in derived type definition)
PR fortran/15314 * gfortran.fortran-torture/execute/der_init_s.f90: New test. From-SVN: r81818
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/execute/der_init_2.f9015
3 files changed, 21 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index e32d188..8939fc4 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,4 +1,4 @@
-2004-05-13 Paul Brook <paul@codesourcery.com>
+2004-05-13 Victor Leikehman <lei@haifasphere.co.il>
PR fortran/15314
* trans-expr.c (gfc_conv_structure): Use field type, not expr type.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 65705ec..4ac96da 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2004-05-13 Paul Brook <paul@codesourcery.com>
+
+ PR fortran/15314
+ * gfortran.fortran-torture/execute/der_init_s.f90: New test.
+
2004-05-13 Andrew Pinski <pinskia@physics.uc.edu>
* gcc.dg/uninit-H.c: Test for __PPC__ and __ppc__
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/der_init_2.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/der_init_2.f90
new file mode 100644
index 0000000..d0448a5
--- /dev/null
+++ b/gcc/testsuite/gfortran.fortran-torture/execute/der_init_2.f90
@@ -0,0 +1,15 @@
+! PR 15314
+! We were looking at the type of the initialization expression, not the type
+! of the field.
+program der_init_2
+ implicit none
+ type foo
+ integer :: a(3) = 42
+ integer :: b = 123
+ end type
+
+ type (foo) :: v
+
+ if ((v%b .ne. 123) .or. any (v%a .ne. 42)) call abort ();
+end program
+