Message ID | 20230927112117.3935537-1-smostafa@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [kvmtool] arm: Initialize target in kvm_cpu__arch_init | expand |
On 2023/9/27 19:21, Mostafa Saleh wrote: > arm/kvm-cpu.c: In function ‘kvm_cpu__arch_init’: > arm/kvm-cpu.c:119:41: error: ‘target’ may be used uninitialized [-Werror=maybe-uninitialized] > 119 | vcpu->cpu_compatible = target->compatible; > | ~~~~~~^~~~~~~~~~~~ > arm/kvm-cpu.c:40:32: note: ‘target’ was declared here > 40 | struct kvm_arm_target *target; > | ^~~~~~ Already addressed by 426e875213d3 ("arm/kvm-cpu: Fix new build warning"). Zenghui
Hi Zenghui, On Wed, Sep 27, 2023 at 08:21:47PM +0800, Zenghui Yu wrote: > On 2023/9/27 19:21, Mostafa Saleh wrote: > > arm/kvm-cpu.c: In function ‘kvm_cpu__arch_init’: > > arm/kvm-cpu.c:119:41: error: ‘target’ may be used uninitialized [-Werror=maybe-uninitialized] > > 119 | vcpu->cpu_compatible = target->compatible; > > | ~~~~~~^~~~~~~~~~~~ > > arm/kvm-cpu.c:40:32: note: ‘target’ was declared here > > 40 | struct kvm_arm_target *target; > > | ^~~~~~ > > Already addressed by 426e875213d3 ("arm/kvm-cpu: Fix new build > warning"). Oh, I see that now, I was on the wrong branch, thanks for pointing this! > Zenghui Thanks, Mostafa
diff --git a/arm/kvm-cpu.c b/arm/kvm-cpu.c index 98bc5fd..57f92ee 100644 --- a/arm/kvm-cpu.c +++ b/arm/kvm-cpu.c @@ -37,7 +37,7 @@ int kvm_cpu__register_kvm_arm_target(struct kvm_arm_target *target) struct kvm_cpu *kvm_cpu__arch_init(struct kvm *kvm, unsigned long cpu_id) { - struct kvm_arm_target *target; + struct kvm_arm_target *target = NULL; struct kvm_cpu *vcpu; int coalesced_offset, mmap_size, err = -1; unsigned int i;
After updating my toolchain to: aarch64-linux-gnu-gcc (Debian 13.2.0-2) 13.2.0 I hit compilation error: arm/kvm-cpu.c: In function ‘kvm_cpu__arch_init’: arm/kvm-cpu.c:119:41: error: ‘target’ may be used uninitialized [-Werror=maybe-uninitialized] 119 | vcpu->cpu_compatible = target->compatible; | ~~~~~~^~~~~~~~~~~~ arm/kvm-cpu.c:40:32: note: ‘target’ was declared here 40 | struct kvm_arm_target *target; | ^~~~~~ target is guaranteed to be initialized, as targets would be registered from other compilation units (arm/aarch(32|64)/arm-cpu.c). Initializing the variable to NULL is sufficient to silence the compiler. Signed-off-by: Mostafa Saleh <smostafa@google.com> --- arm/kvm-cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)