Commit 83d1d065 by Thomas Schwinge Committed by Thomas Schwinge

Assert in 'libgomp/target.c:gomp_unmap_vars_internal' that we're not unmapping…

Assert in 'libgomp/target.c:gomp_unmap_vars_internal' that we're not unmapping 'tgt' while it's still in use

	libgomp/
	* target.c (gomp_unmap_vars_internal): Add a safeguard to
	'gomp_remove_var'.

From-SVN: r279534
parent cc3f11f5
2019-12-18 Thomas Schwinge <thomas@codesourcery.com>
* target.c (gomp_unmap_vars_internal): Add a safeguard to
'gomp_remove_var'.
* target.c (gomp_to_device_kind_p): Handle 'GOMP_MAP_FORCE_FROM'
like 'GOMP_MAP_FROM'.
......
......@@ -1225,7 +1225,15 @@ gomp_unmap_vars_internal (struct target_mem_desc *tgt, bool do_copyfrom,
+ tgt->list[i].offset),
tgt->list[i].length);
if (do_unmap)
gomp_remove_var (devicep, k);
{
struct target_mem_desc *k_tgt = k->tgt;
bool is_tgt_unmapped = gomp_remove_var (devicep, k);
/* It would be bad if TGT got unmapped while we're still iterating
over its LIST_COUNT, and also expect to use it in the following
code. */
assert (!is_tgt_unmapped
|| k_tgt != tgt);
}
}
if (aq)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment