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 in this function [-Werror=maybe-uninitialized] int namelen, retval; ^~~~~~ 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>
This commit is contained in:
parent
fbf43c7dbf
commit
cfeeeb482a
@ -566,7 +566,7 @@ int qemu_fdt_add_path(void *fdt, const char *path)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (p) {
|
do {
|
||||||
name = p + 1;
|
name = p + 1;
|
||||||
p = strchr(name, '/');
|
p = strchr(name, '/');
|
||||||
namelen = p != NULL ? p - name : strlen(name);
|
namelen = p != NULL ? p - name : strlen(name);
|
||||||
@ -586,7 +586,7 @@ int qemu_fdt_add_path(void *fdt, const char *path)
|
|||||||
}
|
}
|
||||||
|
|
||||||
parent = retval;
|
parent = retval;
|
||||||
}
|
} while (p);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user