Re: annoying new gcc 4.6.0 warnings.

From: Stratos Psomadakis
Date: Thu Apr 21 2011 - 16:30:38 EST


On 21/04/2011 10:21 ÎÎ, Dave Jones wrote:
> gcc 4.6.0 enables a new warning by default, which spews ~3000 lines
> of extra warnings to my build. The warning looks like ..
>
> arch/x86/kernel/cpu/cpufreq/powernow-k8.c: In function âpending_bit_stuckâ:
> arch/x86/kernel/cpu/cpufreq/powernow-k8.c:108:10: warning: variable âhiâ set but not used [-Wunused-but-set-variable]
> arch/x86/kernel/cpu/cpufreq/powernow-k8.c: In function âcore_voltage_pre_transitionâ:
> arch/x86/kernel/cpu/cpufreq/powernow-k8.c:340:14: warning: variable âloâ set but not used [-Wunused-but-set-variable]
>
> In those cases, there's no bug there, the code just doesn't use all the arguments
> that get passed to rdmsr... For eg,
>
> static int pending_bit_stuck(void)
> {
> u32 lo, hi;
>
> if (cpu_family == CPU_HW_PSTATE)
> return 0;
>
> rdmsr(MSR_FIDVID_STATUS, lo, hi);
> return lo & MSR_S_LO_CHANGE_PENDING ? 1 : 0;
> }
>
>
> gcc's manpage says to dismiss this warning with attribute(unused), but sprinkling thousands
> of those through the source seems pretty ugly. As does rewriting functions
> like rdmsr to handle NULL as an argument.
>
> There might be some valid bugs found (I think DaveM found a few already) from this new
> warning, but it seems like everything I've looked at so far is just noise.
>
> Any thoughts ?
>
> Dave
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
This new gcc-4.6.0 behavior can also cause build failures for archs
which use -Werror by default (sparc, ppc) [1][2].

[1] https://lkml.org/lkml/2011/4/19/383
[2] https://lkml.org/lkml/2011/4/18/287

--
Stratos Psomadakis
<psomas@xxxxxxxxxxx>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/