This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/61318] New: Improve error diagnostic by pointing to the expression and not to declared-at of a USE-associated variable
- From: "burnus at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 26 May 2014 09:00:14 +0000
- Subject: [Bug fortran/61318] New: Improve error diagnostic by pointing to the expression and not to declared-at of a USE-associated variable
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61318
Bug ID: 61318
Summary: Improve error diagnostic by pointing to the expression
and not to declared-at of a USE-associated variable
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Keywords: diagnostic
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: burnus at gcc dot gnu.org
Found at https://groups.google.com/forum/#!topic/comp.lang.fortran/H-xEKHAWEZ4
- without properly checking whether it has been reported before or not.
The error message
use gbl_message
1
Error: Type mismatch in argument 'message' at (1); passed INTEGER(4) to
CHARACTER(1)
is misleading and seems to point to the "sym->declared_at" of the symbol
instead of to the "expr->where" in the call statement. Especially for
USE-associated variables, the sym->decared_at is not a very helpful daignostic
location.
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')
end program test