https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63853
--- Comment #9 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
I just completed a clean bootstrap of r217511 with the following patch
--- ../_clean/gcc/gcc.c 2014-11-13 15:29:00.000000000 +0100
+++ gcc/gcc.c 2014-11-13 17:59:47.000000000 +0100
@@ -3375,12 +3375,16 @@ handle_foffload_option (const char *arg)
if (arg[0] == '-')
return;
- end = strchrnul (arg, '=');
+ end = strchr (arg, '=');
+ if (end == NULL)
+ end = strchr (arg, '\0');
cur = arg;
while (cur < end)
{
- next = strchrnul (cur, ',');
+ next = strchr (cur, ',');
+ if (next == NULL)
+ next = strchr (cur, '\0');
next = (next > end) ? end : next;
target = XNEWVEC (char, next - cur + 1);
@@ -3400,7 +3404,9 @@ handle_foffload_option (const char *arg)
c = OFFLOAD_TARGETS;
while (c)
{
- n = strchrnul (c, ',');
+ n = strchr (c, ',');
+ if (n == NULL)
+ n = strchr (c, '\0');
if (strlen (target) == (size_t) (n - c)
&& strncmp (target, c, n - c) == 0)
@@ -3421,7 +3427,9 @@ handle_foffload_option (const char *arg)
c = offload_targets;
do
{
- n = strchrnul (c, ':');
+ n = strchr (c, ':');
+ if (n == NULL)
+ n = strchr (c, '\0');
if (strlen (target) == (size_t) (n - c)
&& strncmp (c, target, n - c) == 0)
--- ../_clean/gcc/lto-wrapper.c 2014-11-13 15:29:00.000000000 +0100
+++ gcc/lto-wrapper.c 2014-11-13 17:54:48.000000000 +0100
@@ -424,7 +424,9 @@ parse_env_var (const char *str, char ***
values = (char**) xmalloc (num * sizeof (char*));
curval = str;
- nextval = strchrnul (curval, ':');
+ nextval = strchr (curval, ':');
+ if (nextval == NULL)
+ nextval = strchr (curval, '\0');
int append_len = append ? strlen (append) : 0;
for (i = 0; i < num; i++)
@@ -436,7 +438,9 @@ parse_env_var (const char *str, char ***
if (append)
strcat (values[i], append);
curval = nextval + 1;
- nextval = strchrnul (curval, ':');
+ nextval = strchr (curval, ':');
+ if (nextval == NULL)
+ nextval = strchr (curval, '\0');
}
*pvalues = values;
return num;
@@ -581,7 +585,9 @@ append_offload_options (obstack *argv_ob
while (cur < opts)
{
- next = strchrnul (cur, ',');
+ next = strchr (cur, ',');
+ if (next == NULL)
+ next = strchr (cur, '\0');
next = (next > opts) ? opts : next;
if (strlen (target) == (size_t) (next - cur)