Révision | cfeeeb482a5279f240407a9d7266274c67c21d2e (tree) |
---|---|
l'heure | 2022-01-21 14:52:56 |
Auteur | Thomas Huth <thuth@redh...> |
Commiter | Alistair Francis |
softmmu/device_tree: Silence compiler warning with --enable-sanitizers
If I configure my build with --enable-sanitizers, my GCC (v8.5.0)
complains:
.../softmmu/device_tree.c: In function ‘qemu_fdt_add_path’:
.../softmmu/device_tree.c:560:18: error: ‘retval’ may be used uninitialized
It's a false warning since the while loop is always executed at least
once (p has to be non-NULL, otherwise the derefence in the if-statement
earlier will crash). Thus let's switch to a do-while loop here instead
to make the compiler happy in all cases.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Andrew Jones <drjones@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Yanan Wang <wangyanan55@huawei.com>
Message-id: 20220107133844.145039-1-thuth@redhat.com
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
@@ -566,7 +566,7 @@ int qemu_fdt_add_path(void *fdt, const char *path) | ||
566 | 566 | return -1; |
567 | 567 | } |
568 | 568 | |
569 | - while (p) { | |
569 | + do { | |
570 | 570 | name = p + 1; |
571 | 571 | p = strchr(name, '/'); |
572 | 572 | namelen = p != NULL ? p - name : strlen(name); |
@@ -586,7 +586,7 @@ int qemu_fdt_add_path(void *fdt, const char *path) | ||
586 | 586 | } |
587 | 587 | |
588 | 588 | parent = retval; |
589 | - } | |
589 | + } while (p); | |
590 | 590 | |
591 | 591 | return retval; |
592 | 592 | } |