summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>2004-05-14 22:52:04 +0000
committerpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>2004-05-14 22:52:04 +0000
commit8ffad0f932536b558d7cae26b9bfb0b9fe670549 (patch)
tree939f71ae9665cb55420bcc4ffa9d70f3850da94c
parent7d6057da505086c7c53a82e3bebc099aa1101d6b (diff)
downloadppe42-gcc-8ffad0f932536b558d7cae26b9bfb0b9fe670549.tar.gz
ppe42-gcc-8ffad0f932536b558d7cae26b9bfb0b9fe670549.zip
fortran/
* decl.c (variable_decl): Always apply default initializer. libgfortran/ * gfortran.fortran-torture/execute/def_init_3.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@81865 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/fortran/ChangeLog4
-rw-r--r--gcc/fortran/decl.c9
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/execute/der_init_3.f9012
4 files changed, 25 insertions, 4 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 605a5726b05..19a66ce588a 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,7 @@
+2004-05-14 Victor Leikehman <lei@haifasphere.co.il>
+
+ * decl.c (variable_decl): Always apply default initializer.
+
2004-05-08 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
PR fortran/15206
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c
index 9d6bf948dd7..2aed9b248d6 100644
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -619,10 +619,11 @@ variable_decl (void)
if (m != MATCH_YES)
goto cleanup;
}
- else if (current_ts.type == BT_DERIVED)
- {
- initializer = default_initializer ();
- }
+ }
+
+ if (current_ts.type == BT_DERIVED && !initializer)
+ {
+ initializer = default_initializer ();
}
/* Add the initializer. Note that it is fine if &initializer is
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 77a80bad099..7e146718672 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2004-05-14 Victor Leikehman <lei@haifasphere.co.il>
+
+ * gfortran.fortran-torture/execute/def_init_3.f90: New test.
+
2004-05-14 Jeff Law <law@redhat.com>
* gcc.dg/tree-ssa/20040514-2.c: New test.
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/der_init_3.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/der_init_3.f90
new file mode 100644
index 00000000000..16f203a3059
--- /dev/null
+++ b/gcc/testsuite/gfortran.fortran-torture/execute/der_init_3.f90
@@ -0,0 +1,12 @@
+! PR15365
+! Default initializers were being missed
+program main
+ type xyz
+ integer :: x = 123
+ end
+
+ type (xyz) :: a !! ok
+ type (xyz) b !!! not initialized !!!
+ if (a%x.ne.123) call abort
+ if (b%x.ne.123) call abort
+end
OpenPOWER on IntegriCloud