https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97318
--- Comment #1 from Tom de Vries <vries at gcc dot gnu.org> ---
Tentative patch:
...
diff --git a/gcc/config/nvptx/nvptx.c b/gcc/config/nvptx/nvptx.c
index afac1bda45d..7b6a42893f9 100644
--- a/gcc/config/nvptx/nvptx.c
+++ b/gcc/config/nvptx/nvptx.c
@@ -365,6 +365,30 @@ nvptx_name_replacement (const char *name)
return "__nvptx_free";
if (strcmp (name, "realloc") == 0)
return "__nvptx_realloc";
+
+ if (strchr (name, '.') != NULL)
+ {
+ static char *p = NULL;
+ static size_t p_size = 0;
+ size_t len = strlen (name);
+ size_t len_0 = len + 1;
+ if (p == NULL)
+ {
+ p_size = len_0;
+ p = XNEWVEC (char, p_size);
+ }
+ else if (len_0 > p_size)
+ {
+ p_size = len_0;
+ p = XRESIZEVEC (char, p, p_size);
+ }
+ strncpy (p, name, len_0);
+ for (size_t i = 0; i < len_0; ++i)
+ if (p[i] == '.')
+ p[i] = '$';
+ return p;
+ }
+
return name;
}
...