Fix test-strchr.c warnings for wide string testing.
authorJoseph Myers <joseph@codesourcery.com>
Wed, 26 Nov 2014 12:52:08 +0000 (12:52 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Wed, 26 Nov 2014 12:52:08 +0000 (12:52 +0000)
string/test-strchr.c is used for both wide and narrow string testing,
but produces a series of warnings for wide string testing because of
hardcoded use of narrow characters in the function check1.  This patch
fixes that function to use macros abstracting away the wide / narrow
string choice, adding a new such macro to handle the string and
character constants.

Tested for x86_64.

* string/test-strchr.c [!WIDE] (L): New macro.
[WIDE] (L): Likewise.
(check1): Use CHAR instead of char.  Use L on string and character
constants.

ChangeLog
string/test-strchr.c

index efd18ee..66a78e2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2014-11-26  Joseph Myers  <joseph@codesourcery.com>
+
+       * string/test-strchr.c [!WIDE] (L): New macro.
+       [WIDE] (L): Likewise.
+       (check1): Use CHAR instead of char.  Use L on string and character
+       constants.
+
 2014-11-26  Adhemerval Zanella  <azanella@linux.ibm.com>
 
        * csu/tst-atomic.c (do_test): Add atomic_exchange_and_add_{acq,rel}
index 12cd9d8..fe2dfd2 100644 (file)
@@ -44,6 +44,7 @@
 # define MIDDLE_CHAR 127
 # define SMALL_CHAR 23
 # define UCHAR unsigned char
+# define L(s) s
 #else
 # include <wchar.h>
 # define STRCHR wcschr
@@ -53,6 +54,7 @@
 # define MIDDLE_CHAR 1121
 # define SMALL_CHAR 851
 # define UCHAR wchar_t
+# define L(s) L ## s
 #endif
 
 #ifdef USE_FOR_STRCHRNUL
@@ -219,9 +221,9 @@ do_random_tests (void)
 static void
 check1 (void)
 {
-  char s[] __attribute__((aligned(16))) = "\xff";
-  char c = '\xfe';
-  char *exp_result = stupid_STRCHR (s, c);
+  CHAR s[] __attribute__((aligned(16))) = L ("\xff");
+  CHAR c = L ('\xfe');
+  CHAR *exp_result = stupid_STRCHR (s, c);
 
   FOR_EACH_IMPL (impl, 0)
     check_result (impl, s, c, exp_result);