diff options
author | Janus Weil <janus@gcc.gnu.org> | 2016-11-30 14:23:17 +0100 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2016-11-30 14:23:17 +0100 |
commit | d5c50b024fbfe4255270fa4c7845b222466d2e79 (patch) | |
tree | 4cc5b48fcde522d26fe076393441cdeacef4da6a | |
parent | 4b498f721ef25cb4cd43b4349271987cb25ae357 (diff) | |
download | gcc-d5c50b024fbfe4255270fa4c7845b222466d2e79.zip gcc-d5c50b024fbfe4255270fa4c7845b222466d2e79.tar.gz gcc-d5c50b024fbfe4255270fa4c7845b222466d2e79.tar.bz2 |
re PR fortran/78593 (ICE in gfc_match_varspec, at fortran/primary.c:2053)
2016-11-30 Janus Weil <janus@gcc.gnu.org>
PR fortran/78593
* primary.c (gfc_match_varspec): Check if sym is non-null to avoid ICE.
2016-11-30 Janus Weil <janus@gcc.gnu.org>
PR fortran/78593
* gfortran.dg/derived_result.f90: New test case.
From-SVN: r243020
-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/derived_result.f90 | 10 |
4 files changed, 21 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 3b4799a..1043686 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,10 @@ 2016-11-30 Janus Weil <janus@gcc.gnu.org> + PR fortran/78593 + * primary.c (gfc_match_varspec): Check if sym is non-null to avoid ICE. + +2016-11-30 Janus Weil <janus@gcc.gnu.org> + PR fortran/78592 * interface.c (gfc_find_specific_dtio_proc): Rearrange code to avoid dereferencing a null pointer. diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c index 50d7072..2b20f8c 100644 --- a/gcc/fortran/primary.c +++ b/gcc/fortran/primary.c @@ -2050,7 +2050,7 @@ gfc_match_varspec (gfc_expr *primary, int equiv_flag, bool sub_flag, if (m != MATCH_YES) return MATCH_ERROR; - if (sym->f2k_derived) + if (sym && sym->f2k_derived) tbp = gfc_find_typebound_proc (sym, &t, name, false, &gfc_current_locus); else tbp = NULL; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 502d525..2c8b3a0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-11-30 Janus Weil <janus@gcc.gnu.org> + + PR fortran/78593 + * gfortran.dg/derived_result.f90: New test case. + 2016-11-30 Thomas Preud'homme <thomas.preudhomme@arm.com> * lib/target-supports.exp (add_options_for_arm_arch_v6m): Add diff --git a/gcc/testsuite/gfortran.dg/derived_result.f90 b/gcc/testsuite/gfortran.dg/derived_result.f90 new file mode 100644 index 0000000..76d4a49 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/derived_result.f90 @@ -0,0 +1,10 @@ +! { dg-do compile } +! +! PR 78593: [6/7 Regression] ICE in gfc_match_varspec, at fortran/primary.c:2053 +! +! Contributed by Gerhard Steinmetz <gerhard.steinmetz.fortran@t-online.de> + +type(t) function add (x, y) ! { dg-error "is not accessible" } + integer, intent(in) :: x, y + add%a = x + y ! { dg-error "Unclassifiable statement" } +end |