diff options
author | Tobias Burnus <burnus@net-b.de> | 2007-11-22 22:40:22 +0100 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2007-11-22 22:40:22 +0100 |
commit | d4d757e6b5d3d66ea683f53d6f65e7718d4df6b4 (patch) | |
tree | ff380a1fff144a45ba2d38687700f27bd1bf96cb | |
parent | cd9a21ca0b5ee9e1c4d5ae0140a0ac26564e5143 (diff) | |
download | gcc-d4d757e6b5d3d66ea683f53d6f65e7718d4df6b4.zip gcc-d4d757e6b5d3d66ea683f53d6f65e7718d4df6b4.tar.gz gcc-d4d757e6b5d3d66ea683f53d6f65e7718d4df6b4.tar.bz2 |
primary.c (gfc_match_structure_constructor): Allow constructor for types without components.
2007-11-22 Tobias Burnus <burnus@net-b.de>
* primary.c (gfc_match_structure_constructor): Allow
constructor for types without components.
2007-11-22 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/derived_constructor_comps_3.f90: New.
From-SVN: r130358
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/primary.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/derived_constructor_comps_3.f90 | 22 |
4 files changed, 32 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 43f6229..3939e0b 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,10 @@ 2007-11-22 Tobias Burnus <burnus@net-b.de> + * primary.c (gfc_match_structure_constructor): Allow + constructor for types without components. + +2007-11-22 Tobias Burnus <burnus@net-b.de> + PR fortran/34079 * trans-expr.c (gfc_conv_function_call): Do not append string length arguments when calling bind(c) procedures. diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c index 7e3d539..52977f7 100644 --- a/gcc/fortran/primary.c +++ b/gcc/fortran/primary.c @@ -1979,7 +1979,7 @@ gfc_match_structure_constructor (gfc_symbol *sym, gfc_expr **result) if (gfc_match_char (')') != MATCH_YES) goto syntax; - if (comp->next != NULL) + if (comp && comp->next != NULL) { gfc_error ("Too few components in structure constructor at %C"); goto cleanup; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ccd81e9..4bde178 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2007-11-22 Tobias Burnus <burnus@net-b.de> + + * gfortran.dg/derived_constructor_comps_3.f90: New. + 2007-11-22 Jakub Jelinek <jakub@redhat.com> PR c++/34094 diff --git a/gcc/testsuite/gfortran.dg/derived_constructor_comps_3.f90 b/gcc/testsuite/gfortran.dg/derived_constructor_comps_3.f90 new file mode 100644 index 0000000..688c38d --- /dev/null +++ b/gcc/testsuite/gfortran.dg/derived_constructor_comps_3.f90 @@ -0,0 +1,22 @@ +! { dg-compile } +! +! gfortran was ICEing for the constructor of +! componentfree types. +! +! Contributed by James Van Buskirk +! http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/c8dd08d6da052499/ +! + module bug4_mod + implicit none + type bug4 ! no components + end type bug4 +end module bug4_mod + +program bug4_structure + use bug4_mod + implicit none + type(bug4) t + t = bug4() + write(*,*) t +end program bug4_structure +! { dg-final { cleanup-modules "bug4_mod" } } |