On Mon, Jul 21, 2025 at 6:28 PM Stefan Schulze Frielinghaus
<stefa...@gcc.gnu.org> wrote:
>
> Bootstrapped successfully on s390x and tests dg.exp=asm-hard-reg-\*.c
> and s390.exp=asm-hard-reg-\*.c are successful, too.  Ok for mainline?

OK.

Richard.

> -- >8 --
>
> The GNU extension rawmemchr cannot be used.  Therefore, replace it by a
> simple loop.
>
> gcc/ChangeLog:
>
>         * genpreds.cc (write_insn_constraint_len): Replace rawmemchr by
>         a loop.
> ---
>  gcc/genpreds.cc | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/gcc/genpreds.cc b/gcc/genpreds.cc
> index c6a2983419a..4f8beeb0514 100644
> --- a/gcc/genpreds.cc
> +++ b/gcc/genpreds.cc
> @@ -1184,7 +1184,12 @@ write_insn_constraint_len (void)
>    puts ("    default: break;\n"
>         "    }\n"
>         "  if (str[0] == '{')\n"
> -       "      return ((const char *) rawmemchr (str + 1, '}') - str) + 1;\n"
> +       "    {\n"
> +       "      size_t len = 1;\n"
> +       "      while (str[len] != '}' && str[len] != '\\0')\n"
> +       "        ++len;\n"
> +       "      return len + 1;\n"
> +       "    }\n"
>         "  return 1;\n"
>         "}\n");
>  }
> --
> 2.49.0
>

Reply via email to