Patchwork hw/openrisc/openrisc_sim: Avoid using uninitialised variable 'entry'

login
register
mail settings
Submitter Peter Maydell
Date Aug. 5, 2013, 6:24 p.m.
Message ID <1375727067-22126-1-git-send-email-peter.maydell@linaro.org>
Download mbox | patch
Permalink /patch/264735/
State New
Headers show

Comments

Peter Maydell - Aug. 5, 2013, 6:24 p.m.
clang warns that cpu_openrisc_load_kernel() can use 'entry' uninitialized:

hw/openrisc/openrisc_sim.c:69:9: error: variable 'entry' is used
      uninitialized whenever '&&' condition is false [-Werror,-Wsometimes-uninitialized]
    if (kernel_filename && !qtest_enabled()) {
        ^~~~~~~~~~~~~~~
hw/openrisc/openrisc_sim.c:91:19: note: uninitialized use occurs here
    cpu->env.pc = entry;
                  ^~~~~

Fix this by not attempting to change the CPU's starting PC unless
we actually loaded a kernel.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 hw/openrisc/openrisc_sim.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Jia Liu - Aug. 6, 2013, 1:24 a.m.
Hi Peter,

On Tue, Aug 6, 2013 at 2:24 AM, Peter Maydell <peter.maydell@linaro.org> wrote:
> clang warns that cpu_openrisc_load_kernel() can use 'entry' uninitialized:
>
> hw/openrisc/openrisc_sim.c:69:9: error: variable 'entry' is used
>       uninitialized whenever '&&' condition is false [-Werror,-Wsometimes-uninitialized]
>     if (kernel_filename && !qtest_enabled()) {
>         ^~~~~~~~~~~~~~~
> hw/openrisc/openrisc_sim.c:91:19: note: uninitialized use occurs here
>     cpu->env.pc = entry;
>                   ^~~~~
>
> Fix this by not attempting to change the CPU's starting PC unless
> we actually loaded a kernel.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
>  hw/openrisc/openrisc_sim.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/hw/openrisc/openrisc_sim.c b/hw/openrisc/openrisc_sim.c
> index a08f27c..4595fa9 100644
> --- a/hw/openrisc/openrisc_sim.c
> +++ b/hw/openrisc/openrisc_sim.c
> @@ -86,9 +86,9 @@ static void cpu_openrisc_load_kernel(ram_addr_t ram_size,
>                      kernel_filename);
>              exit(1);
>          }
> -    }
>
> -    cpu->env.pc = entry;
> +        cpu->env.pc = entry;
> +    }
>  }
>
>  static void openrisc_sim_init(QEMUMachineInitArgs *args)

Thank you for using clang test it.

Reviewed-by: Jia Liu <proljc@gmail.com>

> --
> 1.7.9.5
>

Regards,
Jia
Peter Maydell - Aug. 20, 2013, 1 p.m.
Ping for qemu-trivial now 1.7 is open.

thanks
-- PMM

On 5 August 2013 19:24, Peter Maydell <peter.maydell@linaro.org> wrote:
> clang warns that cpu_openrisc_load_kernel() can use 'entry' uninitialized:
>
> hw/openrisc/openrisc_sim.c:69:9: error: variable 'entry' is used
>       uninitialized whenever '&&' condition is false [-Werror,-Wsometimes-uninitialized]
>     if (kernel_filename && !qtest_enabled()) {
>         ^~~~~~~~~~~~~~~
> hw/openrisc/openrisc_sim.c:91:19: note: uninitialized use occurs here
>     cpu->env.pc = entry;
>                   ^~~~~
>
> Fix this by not attempting to change the CPU's starting PC unless
> we actually loaded a kernel.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
>  hw/openrisc/openrisc_sim.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/hw/openrisc/openrisc_sim.c b/hw/openrisc/openrisc_sim.c
> index a08f27c..4595fa9 100644
> --- a/hw/openrisc/openrisc_sim.c
> +++ b/hw/openrisc/openrisc_sim.c
> @@ -86,9 +86,9 @@ static void cpu_openrisc_load_kernel(ram_addr_t ram_size,
>                      kernel_filename);
>              exit(1);
>          }
> -    }
>
> -    cpu->env.pc = entry;
> +        cpu->env.pc = entry;
> +    }
>  }
>
>  static void openrisc_sim_init(QEMUMachineInitArgs *args)
> --
> 1.7.9.5
>
>
Jia Liu - Aug. 20, 2013, 1:24 p.m.
Hi Peter,

On Tue, Aug 20, 2013 at 9:00 PM, Peter Maydell <peter.maydell@linaro.org> wrote:
> Ping for qemu-trivial now 1.7 is open.

Thank you, I'll send a PULL very soon.

>
> thanks
> -- PMM
>
> On 5 August 2013 19:24, Peter Maydell <peter.maydell@linaro.org> wrote:
>> clang warns that cpu_openrisc_load_kernel() can use 'entry' uninitialized:
>>
>> hw/openrisc/openrisc_sim.c:69:9: error: variable 'entry' is used
>>       uninitialized whenever '&&' condition is false [-Werror,-Wsometimes-uninitialized]
>>     if (kernel_filename && !qtest_enabled()) {
>>         ^~~~~~~~~~~~~~~
>> hw/openrisc/openrisc_sim.c:91:19: note: uninitialized use occurs here
>>     cpu->env.pc = entry;
>>                   ^~~~~
>>
>> Fix this by not attempting to change the CPU's starting PC unless
>> we actually loaded a kernel.
>>
>> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
>> ---
>>  hw/openrisc/openrisc_sim.c |    4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/openrisc/openrisc_sim.c b/hw/openrisc/openrisc_sim.c
>> index a08f27c..4595fa9 100644
>> --- a/hw/openrisc/openrisc_sim.c
>> +++ b/hw/openrisc/openrisc_sim.c
>> @@ -86,9 +86,9 @@ static void cpu_openrisc_load_kernel(ram_addr_t ram_size,
>>                      kernel_filename);
>>              exit(1);
>>          }
>> -    }
>>
>> -    cpu->env.pc = entry;
>> +        cpu->env.pc = entry;
>> +    }
>>  }
>>
>>  static void openrisc_sim_init(QEMUMachineInitArgs *args)
>> --
>> 1.7.9.5
>>
>>

Regards,
Jia

Patch

diff --git a/hw/openrisc/openrisc_sim.c b/hw/openrisc/openrisc_sim.c
index a08f27c..4595fa9 100644
--- a/hw/openrisc/openrisc_sim.c
+++ b/hw/openrisc/openrisc_sim.c
@@ -86,9 +86,9 @@  static void cpu_openrisc_load_kernel(ram_addr_t ram_size,
                     kernel_filename);
             exit(1);
         }
-    }
 
-    cpu->env.pc = entry;
+        cpu->env.pc = entry;
+    }
 }
 
 static void openrisc_sim_init(QEMUMachineInitArgs *args)