diff options
author | Janus Weil <janus@gcc.gnu.org> | 2013-11-07 23:39:15 +0100 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2013-11-07 23:39:15 +0100 |
commit | 50c7654b96ef45499bdde32d5a0acd097a911ece (patch) | |
tree | 76d7bb558705f141bfc1dff4081f820744d680b4 /gcc | |
parent | 9de84e84f26b9bf2009f3ea7acc18059dacc04f9 (diff) | |
download | gcc-50c7654b96ef45499bdde32d5a0acd097a911ece.zip gcc-50c7654b96ef45499bdde32d5a0acd097a911ece.tar.gz gcc-50c7654b96ef45499bdde32d5a0acd097a911ece.tar.bz2 |
re PR fortran/58471 (ICE on invalid with missing type constructor and -Wall)
2013-11-07 Janus Weil <janus@gcc.gnu.org>
PR fortran/58471
* primary.c (gfc_expr_attr): Check for result symbol.
2013-11-07 Janus Weil <janus@gcc.gnu.org>
PR fortran/58471
* gfortran.dg/constructor_9.f90: New.
From-SVN: r204547
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/primary.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/constructor_9.f90 | 22 |
4 files changed, 33 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index c709621..8e2e10c 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2013-11-07 Janus Weil <janus@gcc.gnu.org> + + PR fortran/58471 + * primary.c (gfc_expr_attr): Check for result symbol. + 2013-11-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> * gfortran.texi: Fix typo. diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c index 80d45ea..c9a26b0 100644 --- a/gcc/fortran/primary.c +++ b/gcc/fortran/primary.c @@ -2258,7 +2258,7 @@ gfc_expr_attr (gfc_expr *e) case EXPR_FUNCTION: gfc_clear_attr (&attr); - if (e->value.function.esym != NULL) + if (e->value.function.esym && e->value.function.esym->result) { gfc_symbol *sym = e->value.function.esym->result; attr = sym->attr; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0e85081..e83d64e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-11-07 Janus Weil <janus@gcc.gnu.org> + + PR fortran/58471 + * gfortran.dg/constructor_9.f90: New. + 2013-11-07 Joseph Myers <joseph@codesourcery.com> * gcc.dg/atomic-compare-exchange-1.c, diff --git a/gcc/testsuite/gfortran.dg/constructor_9.f90 b/gcc/testsuite/gfortran.dg/constructor_9.f90 new file mode 100644 index 0000000..5196703 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/constructor_9.f90 @@ -0,0 +1,22 @@ +! { dg-do compile } +! { dg-options "-Wall" } +! +! PR 58471: [4.8/4.9 Regression] ICE on invalid with missing type constructor and -Wall +! +! Contributed by Andrew Benson <abensonca@gmail.com> + +module cf + implicit none + type :: cfmde + end type + interface cfmde + module procedure mdedc ! { dg-error "is neither function nor subroutine" } + end interface +contains + subroutine cfi() + type(cfmde), pointer :: cfd + cfd=cfmde() ! { dg-error "Can't convert" } + end subroutine +end module + +! { dg-final { cleanup-modules "cf" } } |