From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7814) id 332C93857C7B; Sat, 28 Aug 2021 00:38:54 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 332C93857C7B Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Fangrui Song To: glibc-cvs@sourceware.org Subject: [glibc/google/grte/v5-2.27/master] More aggressively prevent a buffer from being optimized out X-Act-Checkin: glibc X-Git-Author: Shu-Chun Weng X-Git-Refname: refs/heads/google/grte/v5-2.27/master X-Git-Oldrev: a21d58a0dcd816bd97b9de328ad1870cc7098d9b X-Git-Newrev: df64d523104d05a17c9ef66345077154588a5424 Message-Id: <20210828003854.332C93857C7B@sourceware.org> Date: Sat, 28 Aug 2021 00:38:54 +0000 (GMT) X-BeenThere: glibc-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Glibc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Aug 2021 00:38:54 -0000 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=df64d523104d05a17c9ef66345077154588a5424 commit df64d523104d05a17c9ef66345077154588a5424 Author: Shu-Chun Weng Date: Mon May 3 16:12:44 2021 -0700 More aggressively prevent a buffer from being optimized out The volatile global variable was first introduced in e86f9654c. I have noticed the compiler still optimizing the buffer out on AArch64 presumably because the assignment is after all other observable behaviors so it's still valid to eliminate it. Diff: --- string/tst-xbzero-opt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/string/tst-xbzero-opt.c b/string/tst-xbzero-opt.c index e9c411b2ef..4f16c4d678 100644 --- a/string/tst-xbzero-opt.c +++ b/string/tst-xbzero-opt.c @@ -119,17 +119,17 @@ static void setup_no_clear (void) { unsigned char buf[TEST_BUFFER_SIZE]; - prepare_test_buffer (buf); vol_glob = buf; + prepare_test_buffer (buf); } static void setup_ordinary_clear (void) { unsigned char buf[TEST_BUFFER_SIZE]; + vol_glob = buf; prepare_test_buffer (buf); memset (buf, 0, TEST_BUFFER_SIZE); - vol_glob = buf; } static void