bug-gnulib
[Top][All Lists]
Advanced

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

[PATCH 1/2] explicit_bzero-tests: pacify GCC


From: Paul Eggert
Subject: [PATCH 1/2] explicit_bzero-tests: pacify GCC
Date: Sat, 17 Jul 2021 23:56:20 -0500

Redo to pacify -Wmaybe-uninitialized with
GCC 11.1.1 20210531 (Red Hat 11.1.1-3) x86-64.
* tests/test-explicit_bzero.c (stackbuf): New static pointer.
(do_secret_stuff): Use it.
(test_stack): Set it to a local buffer.
---
 ChangeLog                   | 7 +++++++
 tests/test-explicit_bzero.c | 8 +++++---
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 6ba44e7df..1caabff62 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2021-07-17  Paul Eggert  <eggert@cs.ucla.edu>
 
+       explicit_bzero-tests: pacify GCC
+       Redo to pacify -Wmaybe-uninitialized with
+       GCC 11.1.1 20210531 (Red Hat 11.1.1-3) x86-64.
+       * tests/test-explicit_bzero.c (stackbuf): New static pointer.
+       (do_secret_stuff): Use it.
+       (test_stack): Set it to a local buffer.
+
        posixtm: pacify latest GCC
        Also, modernize while I’m at it.
        * lib/posixtm.c: Include c-ctype.h, idx.h, intprops.h, verify.h
diff --git a/tests/test-explicit_bzero.c b/tests/test-explicit_bzero.c
index cdb839245..c42aba93f 100644
--- a/tests/test-explicit_bzero.c
+++ b/tests/test-explicit_bzero.c
@@ -126,12 +126,12 @@ test_heap (void)
 /* There are two passes:
      1. Put a secret in memory and invoke explicit_bzero on it.
      2. Verify that the memory has been erased.
-   Implement them in the same function, so that they access the same memory
-   range on the stack.  */
+   Access the memory via a volatile pointer, so the compiler
+   does not assume the pointer's value and optimize away accesses.  */
+static char *volatile stackbuf;
 static int _GL_ATTRIBUTE_NOINLINE
 do_secret_stuff (volatile int pass)
 {
-  char stackbuf[SECRET_SIZE];
   if (pass == 1)
     {
       memcpy (stackbuf, SECRET, SECRET_SIZE);
@@ -147,6 +147,8 @@ do_secret_stuff (volatile int pass)
 static void
 test_stack (void)
 {
+  char stack_buffer[SECRET_SIZE];
+  stackbuf = stack_buffer;
   int count = 0;
   int repeat;
 
-- 
2.31.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]