breakpoint_test.c: In function 'read_var':
  breakpoint_test.c:186:33: warning: dereferencing type-punned pointer will 
break strict-aliasing rules [-Wstrict-aliasing]
    186 |                         sval = *(short *)&dummy_var[i];
        |                                 ^~~~~~~~~~~~~~~~~~~~~~
  breakpoint_test.c:189:33: warning: dereferencing type-punned pointer will 
break strict-aliasing rules [-Wstrict-aliasing]
    189 |                         ival = *(int *)&dummy_var[i];
        |                                 ^~~~~~~~~~~~~~~~~~~~
  breakpoint_test.c:177:52: warning: variable 'lval' set but not used 
[-Wunused-but-set-variable]
  breakpoint_test.c:177:36: warning: variable 'ival' set but not used 
[-Wunused-but-set-variable]
  breakpoint_test.c:177:26: warning: variable 'sval' set but not used 
[-Wunused-but-set-variable]
  breakpoint_test.c:177:14: warning: variable 'cval' set but not used 
[-Wunused-but-set-variable]
  breakpoint_test.c: In function 'trigger_tests':
  breakpoint_test.c:206:14: warning: unused variable 'val' [-Wunused-variable]
  breakpoint_test.c: In function 'launch_tests':
  breakpoint_test.c:335:33: warning: unused variable 'i' [-Wunused-variable]
  breakpoint_test.c: In function 'main':
  breakpoint_test.c:390:13: warning: unused variable 'ret' [-Wunused-variable]
  breakpoint_test.c: In function 'toggle_breakpoint':
  breakpoint_test.c:91:22: warning: 'xlen' may be used uninitialized 
[-Wmaybe-uninitialized]
     91 |         vdr7 = (xlen | xtype) << 16;
        |                ~~~~~~^~~~~~~~

Fix the following warnings:
- [-Wstrict-aliasing] and [-Wunused-but-set-variable] in read_var():
   The volatile pointer dereferences alone don't suppress the
   strict-aliasing warning. Add a GCC diagnostic pragma to silence it --
   the type-punned reads are intentional here: we need sized memory
   accesses at specific addresses to trigger hardware breakpoints.
- [-Wmaybe-uninitialized]: initialize xlen in toggle_breakpoint().
- [-Wunused-variable]: remove unused variables val, i, ret.

https://virtuozzo.atlassian.net/browse/VSTOR-127529
Signed-off-by: Konstantin Khorenko <[email protected]>

Feature: fix selftests
Made-with: Cursor
---
 .../selftests/breakpoints/breakpoint_test.c        | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/tools/testing/selftests/breakpoints/breakpoint_test.c 
b/tools/testing/selftests/breakpoints/breakpoint_test.c
index d46962a24724..675640aadf0f 100644
--- a/tools/testing/selftests/breakpoints/breakpoint_test.c
+++ b/tools/testing/selftests/breakpoints/breakpoint_test.c
@@ -55,7 +55,7 @@ static void toggle_breakpoint(int n, int type, int len,
 {
        int ret;
 
-       int xtype, xlen;
+       int xtype, xlen = 0;
        unsigned long vdr7, dr7;
 
        switch (type) {
@@ -172,6 +172,13 @@ static void write_var(int len)
        }
 }
 
+/*
+ * Type-punned reads are intentional here: we need sized memory accesses
+ * at specific addresses to trigger hardware breakpoints.
+ */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
 static void read_var(int len)
 {
        char cval; short sval; int ival; long long lval;
@@ -195,6 +202,7 @@ static void read_var(int len)
                check_trapped();
        }
 }
+#pragma GCC diagnostic pop
 
 /*
  * Do the r/w/x accesses to trigger the breakpoints. And run
@@ -203,7 +211,6 @@ static void read_var(int len)
 static void trigger_tests(void)
 {
        int len, local, global, i;
-       char val;
        int ret;
 
        ret = ptrace(PTRACE_TRACEME, 0, NULL, 0);
@@ -332,7 +339,7 @@ static void launch_tests(void)
 {
        char buf[1024];
        unsigned int tests = 0;
-       int len, local, global, i;
+       int len, local, global;
 
        tests += 3 * COUNT_ISN_BPS;
        tests += sizeof(long) / 2 * 3 * COUNT_WPS;
@@ -387,7 +394,6 @@ static void launch_tests(void)
 int main(int argc, char **argv)
 {
        pid_t pid;
-       int ret;
 
        ksft_print_header();
 
-- 
2.47.1

_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to