Hi,
this patch adds missing string builtins to builtin_fnspec.
Bootstrapped/regtested x86_64-linux, OK?

gcc/ChangeLog:

2020-10-26  Jan Hubicka  <hubi...@ucw.cz>

        * builtins.c (builtin_fnspec): Add bzero, memcmp, memcmp_eq, bcmp,
        strncmp, strncmp_eq, strncasecmp, rindex, strlen, strlnen, strcasecmp,
        strcspn, strspn, strcmp, strcmp_eq.

diff --git a/gcc/builtins.c b/gcc/builtins.c
index e7d4ff38083..3a3eb5562df 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -12960,6 +12960,15 @@ builtin_fnspec (tree callee)
        return ".cO3R3";
       case BUILT_IN_BCOPY:
        return ".cR3O3";
+      case BUILT_IN_BZERO:
+       return ".cO2";
+      case BUILT_IN_MEMCMP:
+      case BUILT_IN_MEMCMP_EQ:
+      case BUILT_IN_BCMP:
+      case BUILT_IN_STRNCMP:
+      case BUILT_IN_STRNCMP_EQ:
+      case BUILT_IN_STRNCASECMP:
+       return ".cR3R3";
 
       /* The following functions read memory pointed to by their
         first argument.  */
@@ -12987,9 +12996,13 @@ builtin_fnspec (tree callee)
        return ".cR ";
 
       case BUILT_IN_INDEX:
+      case BUILT_IN_RINDEX:
       case BUILT_IN_STRCHR:
+      case BUILT_IN_STRLEN:
       case BUILT_IN_STRRCHR:
        return ".cR ";
+      case BUILT_IN_STRNLEN:
+       return ".cR2";
 
       /* These read memory pointed to by the first argument.
         Allocating memory does not have any side-effects apart from
@@ -13014,6 +13027,11 @@ builtin_fnspec (tree callee)
       /* These read memory pointed to by the first and second arguments.  */
       case BUILT_IN_STRSTR:
       case BUILT_IN_STRPBRK:
+      case BUILT_IN_STRCASECMP:
+      case BUILT_IN_STRCSPN:
+      case BUILT_IN_STRSPN:
+      case BUILT_IN_STRCMP:
+      case BUILT_IN_STRCMP_EQ:
        return ".cR R ";
       /* Freeing memory kills the pointed-to memory.  More importantly
         the call has to serve as a barrier for moving loads and stores

Reply via email to