'head' is defined as 'static struct robust_list_head' that stores the
local variable of 'struct lock_struct a' raising the Wdangling-pointer
warning.

robust_list.c: In function ‘child_circular_list’:
robust_list.c:522:24: warning: storing the address of local variable
‘a’ in ‘head.list.next’ [-Wdangling-pointer=]

  522 |         head.list.next = &a.list;
      |         ~~~~~~~~~~~~~~~^~~~~~~~~
robust_list.c:513:28: note: ‘a’ declared here
  513 |         struct lock_struct a, b, c;
      |                            ^
robust_list.c:512:40: note: ‘head’ declared here
  512 |         static struct robust_list_head head;
      |                                        ^~~~

Since 'head' doesn't need static storge duration, removing the static
keyword of it to fix this.

Signed-off-by: Ankit Khushwaha <[email protected]>
---
v3: 
https://lore.kernel.org/all/[email protected]/
Updated the patch name and msg as suggested by André.

v2: 
https://lore.kernel.org/all/[email protected]/
Added changes suggested by André.

v1: 
https://lore.kernel.org/all/[email protected]/
---
 tools/testing/selftests/futex/functional/robust_list.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/testing/selftests/futex/functional/robust_list.c 
b/tools/testing/selftests/futex/functional/robust_list.c
index e7d1254e18ca..ef21a7ec9def 100644
--- a/tools/testing/selftests/futex/functional/robust_list.c
+++ b/tools/testing/selftests/futex/functional/robust_list.c
@@ -509,7 +509,7 @@ TEST(test_robust_list_multiple_elements)

 static int child_circular_list(void *arg)
 {
-       static struct robust_list_head head;
+       struct robust_list_head head;
        struct lock_struct a, b, c;
        int ret;

--
2.53.0


Reply via email to