*PING*
On 05.11.20 22:57, Tobias Burnus wrote:
In gfc_get_symbol_decl, if an external procedure is invoked
and sym->backend_decl is NULL_TREE,
gfc_get_extern_function_decl
is called. This searches the translation unit (or gsym) to
find the declaration – and if found, it returns it.
Well, that worked and the module procedure's decl is returned
with DECL_SOURCE_LOCATION() matching the original declaration
and the associated cfun->function_end_location is also properly
set.
But before this patch, the location is reset to the sym->declared_at,
which is the location of the "use foo" line in the example from
the PR.
Result: The DECL_SOURCE_LOCATION(cfun->decl) is *after*
cfun->function_end_location, which runs with --coverage
into an assert.
The other changes to BIND_EXPR is unrelated. It was just that
I did run with '-fdump-tree-original-lineno' and got:
foo_suite ()
[coverage.f90:17:22] {
integer(kind=4) res;
[coverage.f90:16:17] res = bar ([coverage.f90:16:17] sbr);
}
Where line 17 for '{' looked odd. With the patch, we now have:
foo_suite ()
[coverage.f90:12:0] {
integer(kind=4) res;
[coverage.f90:16:17] res = bar ([coverage.f90:16:17] sbr);
}
OK for the trunk?
Tobias
-----------------
Mentor Graphics (Deutschland) GmbH, Arnulfstraße 201, 80634 München / Germany
Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Alexander
Walter