[v11,27/29] string: Hook up the default implementation on test-strcpy

Message ID 20230201170406.303978-28-adhemerval.zanella@linaro.org
State Superseded
Headers
Series Improve generic string routines |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent

Commit Message

Adhemerval Zanella Feb. 1, 2023, 5:04 p.m. UTC
  ---
 string/test-strcpy.c | 34 ++++++++++++++++++++++++----------
 1 file changed, 24 insertions(+), 10 deletions(-)
  

Comments

Richard Henderson Feb. 1, 2023, 5:56 p.m. UTC | #1
On 2/1/23 07:04, Adhemerval Zanella wrote:
> ---
>   string/test-strcpy.c | 34 ++++++++++++++++++++++++----------
>   1 file changed, 24 insertions(+), 10 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~

> 
> diff --git a/string/test-strcpy.c b/string/test-strcpy.c
> index 8183c4b7f3..3e04c754d0 100644
> --- a/string/test-strcpy.c
> +++ b/string/test-strcpy.c
> @@ -47,23 +47,37 @@
>   # endif
>   # include "test-string.h"
>   # ifndef WIDE
> -#  define SIMPLE_STRCPY simple_strcpy
>   #  define STRCPY strcpy
>   # else
> -#  define SIMPLE_STRCPY simple_wcscpy
>   #  define STRCPY wcscpy
>   # endif
>   
>   IMPL (STRCPY, 1)
>   
> -/* Naive implementation to verify results.  */
> -CHAR *
> -SIMPLE_STRCPY (CHAR *dst, const CHAR *src)
> -{
> -  CHAR *ret = dst;
> -  while ((*dst++ = *src++) != '\0');
> -  return ret;
> -}
> +/* Also check the generic implementation.  */
> +#undef STRCPY
> +#undef libc_hidden_builtin_def
> +#define libc_hidden_builtin_def(a)
> +#undef libc_hidden_def
> +#define libc_hidden_def(a)
> +#undef weak_alias
> +#define weak_alias(a,b)
> +#undef attribute_hidden
> +#define attribute_hidden
> +# ifndef WIDE
> +#  define STPCPY __stpcpy_default
> +#  include "string/stpcpy.c"
> +#  define STRCPY __strcpy_default
> +#  define __stpcpy __stpcpy_default
> +#  include "string/strcpy.c"
> +IMPL (__strcpy_default, 1)
> +# else
> +#  define __wcslen wcslen
> +#  define __wmemcpy wmemcpy
> +#  define WCSCPY __wcscpy_default
> +#  include "wcsmbs/wcscpy.c"
> +IMPL (__wcscpy_default, 1)
> +# endif
>   #endif
>   
>   typedef CHAR *(*proto_t) (CHAR *, const CHAR *);
  

Patch

diff --git a/string/test-strcpy.c b/string/test-strcpy.c
index 8183c4b7f3..3e04c754d0 100644
--- a/string/test-strcpy.c
+++ b/string/test-strcpy.c
@@ -47,23 +47,37 @@ 
 # endif
 # include "test-string.h"
 # ifndef WIDE
-#  define SIMPLE_STRCPY simple_strcpy
 #  define STRCPY strcpy
 # else
-#  define SIMPLE_STRCPY simple_wcscpy
 #  define STRCPY wcscpy
 # endif
 
 IMPL (STRCPY, 1)
 
-/* Naive implementation to verify results.  */
-CHAR *
-SIMPLE_STRCPY (CHAR *dst, const CHAR *src)
-{
-  CHAR *ret = dst;
-  while ((*dst++ = *src++) != '\0');
-  return ret;
-}
+/* Also check the generic implementation.  */
+#undef STRCPY
+#undef libc_hidden_builtin_def
+#define libc_hidden_builtin_def(a)
+#undef libc_hidden_def
+#define libc_hidden_def(a)
+#undef weak_alias
+#define weak_alias(a,b)
+#undef attribute_hidden
+#define attribute_hidden
+# ifndef WIDE
+#  define STPCPY __stpcpy_default
+#  include "string/stpcpy.c"
+#  define STRCPY __strcpy_default
+#  define __stpcpy __stpcpy_default
+#  include "string/strcpy.c"
+IMPL (__strcpy_default, 1)
+# else
+#  define __wcslen wcslen
+#  define __wmemcpy wmemcpy
+#  define WCSCPY __wcscpy_default
+#  include "wcsmbs/wcscpy.c"
+IMPL (__wcscpy_default, 1)
+# endif
 #endif
 
 typedef CHAR *(*proto_t) (CHAR *, const CHAR *);