diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2016-08-22 18:18:14 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2016-08-22 18:18:14 +0000 |
commit | 30364ce673723a466def350c7378ddd3cc0c6c87 (patch) | |
tree | be0b814942e26b4f91ef7f4380d3f9da39ba8c06 | |
parent | ad7a5a8fc58e29b259f8a746899772627a493e9e (diff) | |
download | gcc-30364ce673723a466def350c7378ddd3cc0c6c87.zip gcc-30364ce673723a466def350c7378ddd3cc0c6c87.tar.gz gcc-30364ce673723a466def350c7378ddd3cc0c6c87.tar.bz2 |
re PR fortran/61318 (Improve error diagnostic by pointing to the expression and not to declared-at of a USE-associated variable)
2016-08-22 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/61318
* interface.c (compare_parameter): Use better locus for error message.
2016-08-22 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/61318
* gfortran.dg/pr61318.f90: New test.
From-SVN: r239667
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/interface.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr61318.f90 | 23 |
4 files changed, 34 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 900d915..a7be7c6 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,10 +1,14 @@ 2016-08-22 Steven G. Kargl <kargl@gcc.gnu.org> + PR fortran/61318 + * interface.c (compare_parameter): Use better locus for error message. + +2016-08-22 Steven G. Kargl <kargl@gcc.gnu.org> + PR fortran/77260 * gcc/fortran/trans-decl.c (generate_local_decl): Suppress warning for unused variable if symbol is entry point. - 2016-08-19 Joseph Myers <joseph@codesourcery.com> PR c/32187 diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c index 5bd1279..b894b2f 100644 --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -2146,7 +2146,7 @@ compare_parameter (gfc_symbol *formal, gfc_expr *actual, { if (where) gfc_error ("Type mismatch in argument %qs at %L; passed %s to %s", - formal->name, &actual->where, gfc_typename (&actual->ts), + formal->name, where, gfc_typename (&actual->ts), gfc_typename (&formal->ts)); return 0; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 82b4db4..9cc5fb5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2016-08-22 Steven G. Kargl <kargl@gcc.gnu.org> + PR fortran/61318 + * gfortran.dg/pr61318.f90: New test. + +2016-08-22 Steven G. Kargl <kargl@gcc.gnu.org> + PR fortran/77260 * gfortran.dg/pr77260_1.f90: New test. * gfortran.dg/pr77260_2.f90: Ditto. diff --git a/gcc/testsuite/gfortran.dg/pr61318.f90 b/gcc/testsuite/gfortran.dg/pr61318.f90 new file mode 100644 index 0000000..4e7e862 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr61318.f90 @@ -0,0 +1,23 @@ +! { dg-do compile } +! +module gbl_message + type :: mytype + integer(kind=4) :: e + end type mytype + type(mytype), parameter :: seve = mytype(1) +end module gbl_message + +module gbl_interfaces + interface + subroutine gagout(message) + character(len=*), intent(in) :: message + end subroutine gagout + end interface +end module gbl_interfaces + +program test + use gbl_message + use gbl_interfaces + call gagout(seve%e,'Some string') ! { dg-error "Type mismatch in argument" } +end program test +! { dg-final { cleanup-modules "gbl_interfaces gbl_message" } } |