qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: Akihiko Odaki <akihiko.odaki@daynix.com>
Subject: [PULL 07/25] configure: Avoid -Werror=maybe-uninitialized
Date: Fri, 21 Apr 2023 11:32:58 +0200	[thread overview]
Message-ID: <20230421093316.17941-8-pbonzini@redhat.com> (raw)
In-Reply-To: <20230421093316.17941-1-pbonzini@redhat.com>

From: Akihiko Odaki <akihiko.odaki@daynix.com>

The configure script used to compile some code which dereferences memory
with ubsan to verify the compiler can link with ubsan library which
detects dereferencing of uninitialized memory. However, as the
dereferenced memory was allocated in the same code, GCC can statically
detect the unitialized memory dereference and emit maybe-uninitialized
warning. If -Werror is set, this becomes an error, and the configure
script incorrectly thinks the error indicates the compiler cannot use
ubsan.

Fix this error by replacing the code with another function which adds
1 to a signed integer argument. This brings in ubsan to detect if it
causes signed integer overflow. As the value of the argument cannot be
statically determined, the new function is also immune to compiler
warnings.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-Id: <20230405070030.23148-1-akihiko.odaki@daynix.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/configure b/configure
index 6ed66ec6abda..22b8553b8d70 100755
--- a/configure
+++ b/configure
@@ -1749,13 +1749,9 @@ if test "$sanitizers" = "yes" ; then
   # detect the static linking issue of ubsan, see also:
   # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84285
   cat > $TMPC << EOF
-#include <stdlib.h>
-int main(void) {
-    void *tmp = malloc(10);
-    if (tmp != NULL) {
-        return *(int *)(tmp + 2);
-    }
-    return 1;
+int main(int argc, char **argv)
+{
+    return argc + 1;
 }
 EOF
   if compile_prog "$CPU_CFLAGS -Werror -fsanitize=undefined" ""; then
-- 
2.40.0



  parent reply	other threads:[~2023-04-21  9:34 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-21  9:32 [PULL 00/25] First batch of misc patches for QEMU 8.1 Paolo Bonzini
2023-04-21  9:32 ` [PULL 01/25] mtest2make.py: teach suite name that are just "PROJECT" Paolo Bonzini
2023-04-21  9:32 ` [PULL 02/25] build-sys: prevent meson from downloading wrapped subprojects Paolo Bonzini
2023-04-21  9:32 ` [PULL 03/25] build-sys: add slirp.wrap Paolo Bonzini
2023-04-21  9:32 ` [PULL 04/25] nvme: remove constant argument to tracepoint Paolo Bonzini
2023-04-21  9:32 ` [PULL 05/25] vnc: avoid underflow when accessing user-provided address Paolo Bonzini
2023-04-21  9:32 ` [PULL 06/25] tests: bios-tables-test: replace memset with initializer Paolo Bonzini
2023-04-21  9:32 ` Paolo Bonzini [this message]
2023-04-21  9:32 ` [PULL 08/25] target/i386: Avoid unreachable variable declaration in mmu_translate() Paolo Bonzini
2023-04-21  9:33 ` [PULL 09/25] lasi: fix RTC migration Paolo Bonzini
2023-04-21  9:33 ` [PULL 10/25] coverity: update COMPONENTS.md Paolo Bonzini
2023-04-21  9:33 ` [PULL 11/25] target/mips: tcg: detect out-of-bounds accesses to cpu_gpr and cpu_gpr_hi Paolo Bonzini
2023-04-21  9:33 ` [PULL 12/25] qapi-gen: mark coroutine QMP command functions as coroutine_fn Paolo Bonzini
2023-04-21  9:33 ` [PULL 13/25] io: mark mixed functions that can suspend Paolo Bonzini
2023-04-21  9:33 ` [PULL 14/25] migration: " Paolo Bonzini
2023-04-21  9:33 ` [PULL 15/25] monitor: " Paolo Bonzini
2023-04-21  9:33 ` [PULL 16/25] target/i386: Change wrong XFRM value in SGX CPUID leaf Paolo Bonzini
2023-04-21  9:33 ` [PULL 17/25] block-backend: remove qatomic_mb_read() Paolo Bonzini
2023-04-21  9:33 ` [PULL 18/25] postcopy-ram: do not use qatomic_mb_read Paolo Bonzini
2023-04-21  9:33 ` [PULL 19/25] qemu-coroutine: remove qatomic_mb_read() Paolo Bonzini
2023-04-21  9:33 ` [PULL 20/25] docs: explain effect of smp_read_barrier_depends() on modern architectures Paolo Bonzini
2023-04-21  9:33 ` [PULL 21/25] nbd: a BlockExport always has a BlockBackend Paolo Bonzini
2023-04-21  9:33 ` [PULL 22/25] coverity: unify Fedora dockerfiles Paolo Bonzini
2023-04-21  9:33 ` [PULL 23/25] configure: Honour cross-prefix when finding ObjC compiler Paolo Bonzini
2023-04-21  9:33 ` [PULL 24/25] tests: libvirt-ci: Update to commit '2fa24dce8bc' Paolo Bonzini
2023-04-21  9:33 ` [PULL 25/25] tests: lcitool: Switch to OpenSUSE Leap 15.4 Paolo Bonzini
2023-04-22  7:31 ` [PULL 00/25] First batch of misc patches for QEMU 8.1 Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230421093316.17941-8-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=akihiko.odaki@daynix.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).