Re: [PATCH] perf/x86: Fix 'may be used uninitialized' build warnings in core.c

From: Ingo Molnar
Date: Thu Jan 12 2017 - 03:30:10 EST



* Augusto Mecking Caringi <augustocaringi@xxxxxxxxx> wrote:

> This patch fixes the following build warnings in core.c:
>
> linux/arch/x86/events/core.c: In function âinit_hw_perf_eventsâ:
> linux/include/linux/printk.h:292:2: warning: âreg_failâ may be used
> uninitialized in this function [-Wmaybe-uninitialized]
> printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
> ^
> linux/arch/x86/events/core.c:194:14: note: âreg_failâ was declared here
> int i, reg, reg_fail, ret = 0;
>
> linux/include/linux/printk.h:292:2: warning: âval_failâ may be used
> uninitialized in this function [-Wmaybe-uninitialized]
> printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
> ^
> linux/arch/x86/events/core.c:193:11: note: âval_failâ was declared here
> u64 val, val_fail, val_new= ~0;
>
> Signed-off-by: Augusto Mecking Caringi <augustocaringi@xxxxxxxxx>
> ---
> arch/x86/events/core.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
> index 019c588..f6e41b4 100644
> --- a/arch/x86/events/core.c
> +++ b/arch/x86/events/core.c
> @@ -190,8 +190,8 @@ static void release_pmc_hardware(void) {}
>
> static bool check_hw_exists(void)
> {
> - u64 val, val_fail, val_new= ~0;
> - int i, reg, reg_fail, ret = 0;
> + u64 val, val_fail = 0, val_new= ~0;
> + int i, reg, reg_fail = 0, ret = 0;
> int bios_fail = 0;
> int reg_safe = -1;

What's not mentioned in the changelog is whether the warning was right or wrong -
i.e. whether this patch changes behavior or silences a false positive warning.

Whether the compiler changed object code as result of this change would be good to
know as well.

Thanks,

Ingo