libgomp/
* target.c (gomp_unmap_vars_internal): Add a safeguard to
'gomp_remove_var'.
From-SVN: r279534
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'.
+ 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)