builtin-sprintf-10.c: Cast wchar_t to wint_t to avoid a bogus -Wformat warning in...
authorMartin Sebor <msebor@redhat.com>
Fri, 22 Feb 2019 23:08:23 +0000 (23:08 +0000)
committerMartin Sebor <msebor@gcc.gnu.org>
Fri, 22 Feb 2019 23:08:23 +0000 (16:08 -0700)
gcc/testsuite/ChangeLog:

* gcc.dg/tree-ssa/builtin-sprintf-10.c: Cast wchar_t to wint_t
to avoid a bogus -Wformat warning in ILP32 (bug 77970).

From-SVN: r269137

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-10.c

index dd0437780c848af71a642dc40e81956c19334f96..8d19215db76fa711fd931099ef6f03785492cc28 100644 (file)
@@ -1,3 +1,8 @@
+2019-02-22  Martin Sebor  <msebor@redhat.com>
+
+       * gcc.dg/tree-ssa/builtin-sprintf-10.c: Cast wchar_t to wint_t
+       to avoid a bogus -Wformat warning in ILP32 (bug 77970).
+
 2019-02-22  Harald Anlauf  <anlauf@gmx.de>
 
        PR fortran/83057
index 837b6f40c99196cb0effb33de7f3edaeb9871dc1..b64a5e0116e028ee3cc63837b71cd0760e6a3433 100644 (file)
@@ -5,6 +5,7 @@
 
 typedef __SIZE_TYPE__  size_t;
 typedef __WCHAR_TYPE__ wchar_t;
+typedef __WINT_TYPE__  wint_t;
 
 extern int snprintf (char*, size_t, const char*, ...);
 
@@ -50,23 +51,23 @@ void elim_wide_char_call (void)
   ELIM (snprintf (0, 0, "%lc", L'\0'));
   ELIM (snprintf (0, 0, "%lc", L'1'));
   ELIM (snprintf (0, 0, "%lc", L'a'));
-  ELIM (snprintf (0, 0, "%lc", ws3[0]));
-  ELIM (snprintf (0, 0, "%lc", ws3[1]));
-  ELIM (snprintf (0, 0, "%lc", ws3[3]));
+  ELIM (snprintf (0, 0, "%lc", (wint_t)ws3[0]));
+  ELIM (snprintf (0, 0, "%lc", (wint_t)ws3[1]));
+  ELIM (snprintf (0, 0, "%lc", (wint_t)ws3[3]));
 
   ELIM (snprintf (0, 0, "%C", L'\0'));
   ELIM (snprintf (0, 0, "%C", L'9'));
   ELIM (snprintf (0, 0, "%C", L'z'));
-  ELIM (snprintf (0, 0, "%C", ws3[0]));
-  ELIM (snprintf (0, 0, "%C", ws3[1]));
-  ELIM (snprintf (0, 0, "%C", ws3[3]));
+  ELIM (snprintf (0, 0, "%C", (wint_t)ws3[0]));
+  ELIM (snprintf (0, 0, "%C", (wint_t)ws3[1]));
+  ELIM (snprintf (0, 0, "%C", (wint_t)ws3[3]));
 
   /* Verify an unknown character value within the ASCII range.  */
   if (wc < 1 || 127 < wc)
     wc = 0;
 
-  ELIM (snprintf (0, 0, "%C", wc));
-  ELIM (snprintf (0, 0, "%C", wc));
+  ELIM (snprintf (0, 0, "%C", (wint_t)wc));
+  ELIM (snprintf (0, 0, "%C", (wint_t)wc));
 }
 
 void elim_wide_string_call (void)
@@ -83,21 +84,21 @@ void keep_wide_char_call (void)
 {
   KEEP (snprintf (0, 0, "%lc", L'\xff'));
   KEEP (snprintf (0, 0, "%lc", L'\xffff'));
-  KEEP (snprintf (0, 0, "%lc", wc));
-  KEEP (snprintf (0, 0, "%lc", ws3[2]));
+  KEEP (snprintf (0, 0, "%lc", (wint_t)wc));
+  KEEP (snprintf (0, 0, "%lc", (wint_t)ws3[2]));
 
   KEEP (snprintf (0, 0, "%C", L'\xff'));
   KEEP (snprintf (0, 0, "%C", L'\xffff'));
-  KEEP (snprintf (0, 0, "%C", wc));
-  KEEP (snprintf (0, 0, "%C", ws3[2]));
+  KEEP (snprintf (0, 0, "%C", (wint_t)wc));
+  KEEP (snprintf (0, 0, "%C", (wint_t)ws3[2]));
 
   /* Verify an unknown character value outside the ASCII range
      (with 128 being the only one).  */
   if (wc < 32 || 128 < wc)
     wc = 32;
 
-  KEEP (snprintf (0, 0, "%lc", wc));
-  KEEP (snprintf (0, 0, "%C", wc));
+  KEEP (snprintf (0, 0, "%lc", (wint_t)wc));
+  KEEP (snprintf (0, 0, "%C", (wint_t)wc));
 }
 
 void keep_wide_string_call (void)