diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2018-12-12 00:53:08 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2018-12-12 00:53:08 +0000 |
commit | 2f00fb3d0ba1174dee21c33162a5fdc4e583a061 (patch) | |
tree | 98c1295e1c7a1c4c700f59c22e0955fe9d750858 /gcc | |
parent | 85c223fa128516d2f428f85cb0599d464f9ddc1b (diff) | |
download | gcc-2f00fb3d0ba1174dee21c33162a5fdc4e583a061.zip gcc-2f00fb3d0ba1174dee21c33162a5fdc4e583a061.tar.gz gcc-2f00fb3d0ba1174dee21c33162a5fdc4e583a061.tar.bz2 |
re PR fortran/88155 (ICE in gfc_format_decoder, at fortran/error.c:947)
2018-12-11 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/88155
* primary.c (gfc_match_structure_constructor): Set the locus of
an expression to avoid a NULL pointer dereference.
2018-12-11 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/88155
* gfortran.dg/pr70870_1.f90: Update testcase to use -std=gnu.
* gfortran.dg/pr88155.f90: New test.
From-SVN: r267041
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/primary.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr70870_1.f90 | 1 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr88155.f90 | 9 |
5 files changed, 23 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 945bb23..78fe19a 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,11 @@ 2018-12-11 Steven G. Kargl <kargl@gcc.gnu.org> + PR fortran/88155 + * primary.c (gfc_match_structure_constructor): Set the locus of + an expression to avoid a NULL pointer dereference. + +2018-12-11 Steven G. Kargl <kargl@gcc.gnu.org> + PR fortran/88249 * gfortran.h: Update prototype for gfc_resolve_filepos(). * io.c (gfc_resolve_filepos): Check for UNIT number if ERR= is present. diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c index d94a5c4..52cc2f1 100644 --- a/gcc/fortran/primary.c +++ b/gcc/fortran/primary.c @@ -3212,6 +3212,7 @@ gfc_match_structure_constructor (gfc_symbol *sym, gfc_expr **result) e = gfc_get_expr (); e->symtree = symtree; e->expr_type = EXPR_FUNCTION; + e->where = gfc_current_locus; gcc_assert (gfc_fl_struct (sym->attr.flavor) && symtree->n.sym->attr.flavor == FL_PROCEDURE); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8c04149..bfe527a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,11 @@ 2018-12-11 Steven G. Kargl <kargl@gcc.gnu.org> + PR fortran/88155 + * gfortran.dg/pr70870_1.f90: Update testcase to use -std=gnu. + * gfortran.dg/pr88155.f90: New test. + +2018-12-11 Steven G. Kargl <kargl@gcc.gnu.org> + PR fortran/88249 * gfortran.dg/pr88249.f90: New test. diff --git a/gcc/testsuite/gfortran.dg/pr70870_1.f90 b/gcc/testsuite/gfortran.dg/pr70870_1.f90 index 0f9584a..eeec921 100644 --- a/gcc/testsuite/gfortran.dg/pr70870_1.f90 +++ b/gcc/testsuite/gfortran.dg/pr70870_1.f90 @@ -1,4 +1,5 @@ ! { dg-do compile } +! { dg-options "-std=gnu" } ! PR fortran/70870 ! Contributed by Vittorio Zecca <zeccav at gmail dot com > type t diff --git a/gcc/testsuite/gfortran.dg/pr88155.f90 b/gcc/testsuite/gfortran.dg/pr88155.f90 new file mode 100644 index 0000000..e10eaca --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr88155.f90 @@ -0,0 +1,9 @@ +! { dg-do compile } +program p + type t + integer :: a + end type + type(t) :: x + data x /t()1/ ! { dg-error "No initializer for component" } + print *, x +end |