Re: [PATCH 06/45] C++: Do some basic C++ type definition

kbuild test robot
2018-04-02T04:38:14Z

[-- Attachment #1: Type: text/plain, Size: 12312 bytes --]

Hi David,

I love your patch! Yet something to improve:

[auto build test ERROR on v4.16-rc7]
[cannot apply to linus/master tip/x86/core tip/locking/core v4.16 next-20180329]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/David-Howells/C-Convert-the-kernel-to-C/20180402-120344
config: x86_64-randconfig-x002-201813 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64

All errors (new ones prefixed by >>):

include/linux/types.h:188:1: warning: empty declaration
struct list_head {
^~~~~~
include/linux/types.h:192:1: warning: empty declaration
struct hlist_head {
^~~~~~
include/linux/types.h:196:1: warning: empty declaration
struct hlist_node {
^~~~~~
include/linux/types.h:201:2: error: expected specifier-qualifier-list before '__kernel_daddr_t'
__kernel_daddr_t f_tfree;
^~~~~~~~~~~~~~~~
include/linux/types.h:200:1: warning: empty declaration
struct ustat {
^~~~~~
include/linux/types.h:226:1: warning: empty declaration
struct callback_head {
^~~~~~
include/linux/types.h:232:16: error: storage class specified for parameter 'rcu_callback_t'
typedef void (*rcu_callback_t)(struct rcu_head *head);
^~~~~~~~~~~~~~
include/linux/types.h:233:56: error: expected declaration specifiers or '...' before 'rcu_callback_t'
typedef void (*call_rcu_func_t)(struct rcu_head *head, rcu_callback_t func);
^~~~~~~~~~~~~~
In file included from include/asm-generic/bug.h:5:0,
from arch/x86/include/asm/bug.h:83,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
include/linux/compiler.h:187:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/compiler.h:205:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/compiler.h:210:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
In file included from arch/x86/include/asm/barrier.h:5:0,
from include/linux/compiler.h:245,
from include/asm-generic/bug.h:5,
from arch/x86/include/asm/bug.h:83,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
arch/x86/include/asm/alternative.h:48:1: warning: empty declaration
struct alt_instr {
^~~~~~
arch/x86/include/asm/alternative.h:61:12: error: storage class specified for parameter 'alternatives_patched'
extern int alternatives_patched;
^~~~~~~~~~~~~~~~~~~~
arch/x86/include/asm/alternative.h:63:13: error: storage class specified for parameter 'alternative_instructions'
extern void alternative_instructions(void);
^~~~~~~~~~~~~~~~~~~~~~~~
arch/x86/include/asm/alternative.h:64:13: error: storage class specified for parameter 'apply_alternatives'
extern void apply_alternatives(struct alt_instr *start, struct alt_instr *end);
^~~~~~~~~~~~~~~~~~
arch/x86/include/asm/alternative.h:66:1: warning: empty declaration
struct module;
^~~~~~
arch/x86/include/asm/alternative.h:79:41: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
void *text, void *text_end) {}
^
arch/x86/include/asm/alternative.h:80:68: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
static inline void alternatives_smp_module_del(struct module *mod) {}
^
arch/x86/include/asm/alternative.h:81:50: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
static inline void alternatives_enable_smp(void) {}
^
arch/x86/include/asm/alternative.h:83:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
In file included from arch/x86/include/asm/barrier.h:6:0,
from include/linux/compiler.h:245,
from include/asm-generic/bug.h:5,
from arch/x86/include/asm/bug.h:83,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
arch/x86/include/asm/nops.h:143:37: error: storage class specified for parameter 'ideal_nops'
extern const unsigned char * const *ideal_nops;
^~~~~~~~~~
arch/x86/include/asm/nops.h:144:13: error: storage class specified for parameter 'arch_init_ideal_nops'
extern void arch_init_ideal_nops(void);
^~~~~~~~~~~~~~~~~~~~
In file included from include/linux/compiler.h:245:0,
from include/asm-generic/bug.h:5,
from arch/x86/include/asm/bug.h:83,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
arch/x86/include/asm/barrier.h:38:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
In file included from include/linux/compiler.h:246:0,
from include/asm-generic/bug.h:5,
from arch/x86/include/asm/bug.h:83,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
>> include/linux/kasan-checks.h:10:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{ }
^
include/linux/kasan-checks.h:12:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{ }
^
In file included from include/asm-generic/bug.h:5:0,
from arch/x86/include/asm/bug.h:83,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
include/linux/compiler.h:268:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
In file included from include/linux/kernel.h:6:0,
from include/asm-generic/bug.h:18,
from arch/x86/include/asm/bug.h:83,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:40:27: error: storage class specified for parameter '__gnuc_va_list'
typedef __builtin_va_list __gnuc_va_list;
^~~~~~~~~~~~~~
In file included from include/linux/kernel.h:6:0,
from include/asm-generic/bug.h:18,
from arch/x86/include/asm/bug.h:83,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:99:24: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'va_list'
typedef __gnuc_va_list va_list;
^~~~~~~
In file included from include/linux/linkage.h:7:0,
from include/linux/kernel.h:7,
from include/asm-generic/bug.h:18,
from arch/x86/include/asm/bug.h:83,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
include/linux/export.h:27:1: warning: empty declaration
struct kernel_symbol
^~~~~~
In file included from include/linux/kernel.h:11:0,
from include/asm-generic/bug.h:18,
from arch/x86/include/asm/bug.h:83,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
include/linux/bitops.h:29:21: error: storage class specified for parameter '__sw_hweight8'
extern unsigned int __sw_hweight8(unsigned int w);
^~~~~~~~~~~~~
include/linux/bitops.h:30:21: error: storage class specified for parameter '__sw_hweight16'
extern unsigned int __sw_hweight16(unsigned int w);
^~~~~~~~~~~~~~
include/linux/bitops.h:31:21: error: storage class specified for parameter '__sw_hweight32'
extern unsigned int __sw_hweight32(unsigned int w);
^~~~~~~~~~~~~~
include/linux/bitops.h:32:22: error: storage class specified for parameter '__sw_hweight64'
extern unsigned long __sw_hweight64(__u64 w);
^~~~~~~~~~~~~~
In file included from include/linux/bitops.h:38:0,
from include/linux/kernel.h:11,
from include/asm-generic/bug.h:18,
from arch/x86/include/asm/bug.h:83,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
arch/x86/include/asm/bitops.h:74:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
arch/x86/include/asm/bitops.h:96:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
arch/x86/include/asm/bitops.h:112:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
arch/x86/include/asm/bitops.h:133:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
arch/x86/include/asm/bitops.h:139:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
arch/x86/include/asm/bitops.h:143:24: error: unknown type name 'bool'
static __always_inline bool clear_bit_unlock_is_negative_byte(long nr, volatile unsigned long *addr)
^~~~
arch/x86/include/asm/bitops.h:144:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
arch/x86/include/asm/bitops.h:169:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
arch/x86/include/asm/bitops.h:184:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
arch/x86/include/asm/bitops.h:198:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
arch/x86/include/asm/bitops.h:218:24: error: unknown type name 'bool'
static __always_inline bool test_and_set_bit(long nr, volatile unsigned long *addr)
^~~~
arch/x86/include/asm/bitops.h:219:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token

vim +10 include/linux/kasan-checks.h

64f8ebaf Andrey Ryabinin 2016-05-20 4
64f8ebaf Andrey Ryabinin 2016-05-20 5 #ifdef CONFIG_KASAN
f06e8c58 Dmitry Vyukov 2017-06-22 6 void kasan_check_read(const volatile void *p, unsigned int size);
f06e8c58 Dmitry Vyukov 2017-06-22 7 void kasan_check_write(const volatile void *p, unsigned int size);
64f8ebaf Andrey Ryabinin 2016-05-20 8 #else
f06e8c58 Dmitry Vyukov 2017-06-22 9 static inline void kasan_check_read(const volatile void *p, unsigned int size)
f06e8c58 Dmitry Vyukov 2017-06-22 @10 { }
f06e8c58 Dmitry Vyukov 2017-06-22 11 static inline void kasan_check_write(const volatile void *p, unsigned int size)
f06e8c58 Dmitry Vyukov 2017-06-22 12 { }
64f8ebaf Andrey Ryabinin 2016-05-20 13 #endif
64f8ebaf Andrey Ryabinin 2016-05-20 14

:::::: The code at line 10 was first introduced by commit
:::::: f06e8c584fa0d05312c11ea66194f3d2efb93c21 kasan: Allow kasan_check_read/write() to accept pointers to volatiles

:::::: TO: Dmitry Vyukov <dvyukov@google.com>
:::::: CC: Ingo Molnar <mingo@kernel.org>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 27654 bytes --]