From: kargl Date: Wed, 12 Dec 2018 00:53:08 +0000 (+0000) Subject: 2018-12-11 Steven G. Kargl X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=928ac93cd2fcba79baf1101d0d71d05d40d5fb7b;p=thirdparty%2Fgcc.git 2018-12-11 Steven G. Kargl 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 PR fortran/88155 * gfortran.dg/pr70870_1.f90: Update testcase to use -std=gnu. * gfortran.dg/pr88155.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@267041 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 945bb23e369b..78fe19a6736a 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2018-12-11 Steven G. Kargl + + 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 PR fortran/88249 diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c index d94a5c48adfe..52cc2f17cd4d 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 8c04149484ce..bfe527a7ad7a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2018-12-11 Steven G. Kargl + + 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 PR fortran/88249 diff --git a/gcc/testsuite/gfortran.dg/pr70870_1.f90 b/gcc/testsuite/gfortran.dg/pr70870_1.f90 index 0f9584a36dbf..eeec92143f43 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 type t diff --git a/gcc/testsuite/gfortran.dg/pr88155.f90 b/gcc/testsuite/gfortran.dg/pr88155.f90 new file mode 100644 index 000000000000..e10eaca2ba67 --- /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