[Bug fortran/98342] Allocatable component in call to assumed-rank routine causes invalid pointer
pault at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Dec 17 18:02:04 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98342
Paul Thomas <pault at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |pault at gcc dot gnu.org
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Last reconfirmed| |2020-12-17
Assignee|unassigned at gcc dot gnu.org |pault at gcc dot gnu.org
--- Comment #2 from Paul Thomas <pault at gcc dot gnu.org> ---
Googling on munmap_chunk(): invalid pointer reveals that this is quite a
frequent problem.
It originates from the call
out = sel_rank(get_tuple(x))
rather than what happens in either function. Somewhere a free is bein done on
memory that is not malloc'ed.
Bizarrely,
out = sel_rank([get_tuple(x)])
as does
z = get_tuple(x) ! z appropriately declared of course!
out = sel_rank(z)
valgrind confirms this:
....snip....
==535157== Invalid free() / delete / delete[] / realloc()
==535157== at 0x483A9F5: free (vg_replace_malloc.c:538)
==535157== by 0x40343A: MAIN__ (pr98342.f90:48)
==535157== by 0x4035BA: main (pr98342.f90:40)
==535157== Address 0x1ffeffede0 is on thread 1's stack
==535157== in frame #1, created by MAIN__ (pr98342.f90:39)
==535157==
....snip....
The problem arises somewhere in trans-expr.c(gfc_conv_procedure_call).
I am on to it :-)
Paul
More information about the Gcc-bugs
mailing list