@naota344の今週のLKML

今週は

  • annoying new gcc 4.6.0 warnings.

のみで……ちょっと諸事情によりこれ以上読めなさそうな事態なのでとりあえずここで更新しておきます。

annoying new gcc 4.6.0 warnings.

http://permalink.gmane.org/gmane.linux.kernel/1129679

gcc 4.6.0に -Wunused-but-set-variable というものが入りました。

これは

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; 
}

のようなコードがある時に、

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]

のような警告が出るもので、値が設定されている様子であるのに使われていないものについて警告を出します。

しかし、上記のコードのように特にバグと言えるようなところはないことが多くLinux カーネルだと3000行もの警告が出てくることになります。 Linus も "it's like the f*cking sign-compare warning: most of them are just inane noise, and as such the warning is not worth the pain." と言っています。

http://permalink.gmane.org/gmane.linux.kernel/1129742
ということで、この警告を使わないようにするパッチが書かれました。