[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen staging] x86/cpu-policy: work around bogus warning in test harness



commit aa370d3c26d2899ffe950849504edfdfb79400ea
Author:     Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Thu Sep 5 10:00:07 2019 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Thu Sep 5 10:00:07 2019 +0200

    x86/cpu-policy: work around bogus warning in test harness
    
    Despite %.12s properly limiting the number of characters read from
    ident[], gcc 9 (at least up to 9.2.0) warns about the strings not
    being nul-terminated:
    
    test-cpu-policy.c:64:18: error: '%.12s' directive argument is not a 
nul-terminated string [-Werror=format-overflow=]
       64 |             fail("  Test '%.12s', expected vendor %u, got %u\n",
          |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    test-cpu-policy.c:20:12: note: in definition of macro 'fail'
       20 |     printf(fmt, ##__VA_ARGS__);                 \
          |            ^~~
    test-cpu-policy.c:64:27: note: format string is defined here
       64 |             fail("  Test '%.12s', expected vendor %u, got %u\n",
          |                           ^~~~~
    test-cpu-policy.c:44:7: note: referenced argument declared here
       44 |     } tests[] = {
          |       ^~~~~
    
    The issue was reported against gcc in their bugzilla (bug 91667).
    
    Re-order array entries, oddly enough suppressing the warning.
    
    Reported-by: Christopher Clark <christopher.w.clark@xxxxxxxxx>
    Reported-by: Dario Faggioli <dfaggioli@xxxxxxxx>
    Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
    Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
 tools/tests/cpu-policy/test-cpu-policy.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/tools/tests/cpu-policy/test-cpu-policy.c 
b/tools/tests/cpu-policy/test-cpu-policy.c
index ca3b8dd45f..fe00cd4276 100644
--- a/tools/tests/cpu-policy/test-cpu-policy.c
+++ b/tools/tests/cpu-policy/test-cpu-policy.c
@@ -42,15 +42,16 @@ static void test_vendor_identification(void)
         };
         unsigned int vendor;
     } tests[] = {
+        /* The 1st entry should remain here to work around gcc bug 91667. */
+        { { ""             }, X86_VENDOR_UNKNOWN },
+        { { "            " }, X86_VENDOR_UNKNOWN },
+        { { "xxxxxxxxxxxx" }, X86_VENDOR_UNKNOWN },
+
         { { "GenuineIntel" }, X86_VENDOR_INTEL },
         { { "AuthenticAMD" }, X86_VENDOR_AMD },
         { { "CentaurHauls" }, X86_VENDOR_CENTAUR },
         { { "  Shanghai  " }, X86_VENDOR_SHANGHAI },
         { { "HygonGenuine" }, X86_VENDOR_HYGON },
-
-        { { ""             }, X86_VENDOR_UNKNOWN },
-        { { "            " }, X86_VENDOR_UNKNOWN },
-        { { "xxxxxxxxxxxx" }, X86_VENDOR_UNKNOWN },
     };
 
     printf("Testing CPU vendor identification:\n");
--
generated by git-patchbot for /home/xen/git/xen.git#staging

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.