From: Jan Beulich Date: Thu, 5 Sep 2019 08:00:07 +0000 (+0200) Subject: x86/cpu-policy: work around bogus warning in test harness X-Git-Tag: archive/raspbian/4.14.0+80-gd101b417b7-1+rpi1^2~63^2~1664 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=aa370d3c26d2899ffe950849504edfdfb79400ea;p=xen.git 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 Reported-by: Dario Faggioli Signed-off-by: Jan Beulich Acked-by: Andrew Cooper --- 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");