From: Steven G. Kargl Date: Tue, 12 Jun 2018 18:28:25 +0000 (+0000) Subject: re PR fortran/44491 (Diagnostic just shows "" instead of a... X-Git-Tag: releases/gcc-7.4.0~403 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7e5b05f19fd5c635e62e1e00a844355a1deb6f0a;p=thirdparty%2Fgcc.git re PR fortran/44491 (Diagnostic just shows "" instead of a locus) 2018-06-12 Steven G. Kargl PR fortran/44491 * expr.c (gfc_check_assign): Select non-NULL locus. 2018-06-12 Steven G. Kargl PR fortran/44491 * gfortran.dg/pr44491.f90: New testcase From-SVN: r261520 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index ff1449d37032..36fa112491be 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2018-06-12 Steven G. Kargl + + PR fortran/44491 + * expr.c (gfc_check_assign): Select non-NULL locus. + 2018-06-09 Steven G. Kargl PR fortran/38351 diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c index e890c4b2861a..0d553c0bea2e 100644 --- a/gcc/fortran/expr.c +++ b/gcc/fortran/expr.c @@ -3288,6 +3288,8 @@ gfc_check_assign (gfc_expr *lvalue, gfc_expr *rvalue, int conform, /* Only DATA Statements come here. */ if (!conform) { + locus *where; + /* Numeric can be converted to any other numeric. And Hollerith can be converted to any other type. */ if ((gfc_numeric_ts (&lvalue->ts) && gfc_numeric_ts (&rvalue->ts)) @@ -3297,8 +3299,9 @@ gfc_check_assign (gfc_expr *lvalue, gfc_expr *rvalue, int conform, if (lvalue->ts.type == BT_LOGICAL && rvalue->ts.type == BT_LOGICAL) return true; + where = lvalue->where.lb ? &lvalue->where : &rvalue->where; gfc_error ("Incompatible types in DATA statement at %L; attempted " - "conversion of %s to %s", &lvalue->where, + "conversion of %s to %s", where, gfc_typename (&rvalue->ts), gfc_typename (&lvalue->ts)); return false; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7909bf580547..aed39d962440 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-06-12 Steven G. Kargl + + PR fortran/44491 + * gfortran.dg/pr44491.f90: New testcase + 2018-06-11 Peter Bergner Backport from mainline diff --git a/gcc/testsuite/gfortran.dg/pr44491.f90 b/gcc/testsuite/gfortran.dg/pr44491.f90 new file mode 100644 index 000000000000..406bb262f715 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr44491.f90 @@ -0,0 +1,5 @@ +! { dg-do compile } +! { dg-options "-std=gnu" } +! PR fortran/44491 + character*2 escape /z'1B'/ ! { dg-error "Incompatible types in DATA" } + end