Re: [PATCH] perf: enum overflow in uapi/linux/perf_event.h
From: Luc Van Oostenryck <hidden>
Date: 2018-09-07 18:44:06
Also in:
lkml
On Fri, Sep 07, 2018 at 04:15:33PM +0200, Christophe LEROY wrote:
Le 07/09/2018 à 15:58, Peter Zijlstra a écrit :quoted
On Fri, Sep 07, 2018 at 01:50:18PM +0000, Christophe Leroy wrote:quoted
On 09/07/2018 01:42 PM, Peter Zijlstra wrote:quoted
On Fri, Sep 07, 2018 at 01:27:19PM +0000, Christophe Leroy wrote:quoted
On PPC32, enums are 32 bits, so __PERF_SAMPLE_CALLCHAIN_EARLY is out of scope. The following sparse warning is encountered: CHECK arch/powerpc/kernel/process.c ./include/uapi/linux/perf_event.h:147:56: warning: cast truncates bits from constant value (8000000000000000 becomes 0)Urgh... what compiler is that? I've not seen anything like that from the build bots.[root@pc16082vm linux-powerpc]# sparse --version 0.5.2 [root@pc16082vm linux-powerpc]# ppc-linux-gcc --version ppc-linux-gcc (GCC) 5.4.0Ah, that's a sparse warning. But does your GCC agree? The thing is, sparse uses the C enum spec, but I suspect GCC uses the C++ enum spec and it all works fine.
Sparse is a bit weird about the exact underlying type used for enums.
Ah yes, it seems that GCC is happy. So sparse should be fixed instead ?
I'll investigate (I suppose the same is given on x86-32). -- Luc