diff options
author | Erik Edelmann <eedelman@gcc.gnu.org> | 2005-10-22 17:02:42 +0000 |
---|---|---|
committer | Erik Edelmann <eedelman@gcc.gnu.org> | 2005-10-22 17:02:42 +0000 |
commit | 6019a1a447626909b671b617003d4b259872a950 (patch) | |
tree | 907681fadb91f7e08c1c9b66644c93467088e0db | |
parent | e7c84bf8e9064b10e11d77e3a9161b9e9534315c (diff) | |
download | gcc-6019a1a447626909b671b617003d4b259872a950.zip gcc-6019a1a447626909b671b617003d4b259872a950.tar.gz gcc-6019a1a447626909b671b617003d4b259872a950.tar.bz2 |
re PR fortran/24426 (gfortran ICE for valid derived type definition with default initialization)
2005-10-22 Erik Edelmann <eedelman@gcc.gnu.org>
PR fortran/24426
* decl.c (variable_decl): Don't assign default initializers to
pointers.
2005-10-22 Erik Edelmann <eedelman@gcc.gnu.org>
PR fortran/24426
* gfortran.dg/der_pointer_4.f90: New.
From-SVN: r105792
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/decl.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/der_pointer_4.f90 | 11 |
4 files changed, 23 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index be1b909..51178f2 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2005-10-22 Erik Edelmann <eedelman@gcc.gnu.org> + + PR fortran/24426 + * decl.c (variable_decl): Don't assign default initializers to + pointers. + 2005-10-21 Jakub Jelinek <jakub@redhat.com> * interface.c (compare_actual_formal): Issue error when attempting diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index 21f1089..7a605d6 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -1094,7 +1094,7 @@ variable_decl (int elem) t = add_init_expr_to_sym (name, &initializer, &var_locus); else { - if (current_ts.type == BT_DERIVED && !initializer) + if (current_ts.type == BT_DERIVED && !current_attr.pointer && !initializer) initializer = gfc_default_initializer (¤t_ts); t = build_struct (name, cl, &initializer, &as); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ef1d49c..6dbf511 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-10-22 Erik Edelmann <eedelman@gcc.gnu.org> + + PR fortran/24426 + * gfortran.dg/der_pointer_4.f90: New. + 2005-10-22 David Ayers <d.ayers@inode.at> * obj-c++.dg/except-1.mm: Simplify. diff --git a/gcc/testsuite/gfortran.dg/der_pointer_4.f90 b/gcc/testsuite/gfortran.dg/der_pointer_4.f90 new file mode 100644 index 0000000..6bc499d --- /dev/null +++ b/gcc/testsuite/gfortran.dg/der_pointer_4.f90 @@ -0,0 +1,11 @@ +! {dg-do compile } +! PR 24426 +! Pointer-components of derived type with initialized components +module crash + implicit none + type foo + integer :: i = 0 + type (foo), pointer :: next + end type foo + type (foo) :: bar +end module crash |