https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89005
--- Comment #1 from Tom de Vries <vries at gcc dot gnu.org> ---
Tentative patch to remove initial element:
...
diff --git a/libgomp/plugin/plugin-nvptx.c b/libgomp/plugin/plugin-nvptx.c
index ff90b67cb86..cbabc8dba96 100644
--- a/libgomp/plugin/plugin-nvptx.c
+++ b/libgomp/plugin/plugin-nvptx.c
@@ -279,11 +279,7 @@ cuda_map_destroy (struct cuda_map *map)
static bool
map_init (struct ptx_stream *s)
{
- int size = getpagesize ();
-
- assert (s);
-
- s->map = cuda_map_create (size);
+ s->map = NULL;
return true;
}
@@ -291,9 +287,8 @@ map_init (struct ptx_stream *s)
static bool
map_fini (struct ptx_stream *s)
{
- assert (s->map->next == NULL);
-
- cuda_map_destroy (s->map);
+ if (s->map)
+ cuda_map_destroy (s->map);
return true;
}
@@ -323,10 +318,9 @@ map_push (struct ptx_stream *s, size_t size)
struct cuda_map **t;
assert (s);
- assert (s->map);
/* Select an element to push. */
- if (s->map->active)
+ if (!s->map || s->map->active)
map = cuda_map_create (size);
else
{
...
Passes libgomp.oacc-c/c.exp