Hi Nathan,
kernel test robot noticed the following build errors:
[auto build test ERROR on ebd297a2affadb6f6f4d2e5d975c1eda18ac762d]
url: https://github.com/intel-lab-lkp/linux/commits/Nathan-Chancellor/kbuild-Disa... base: ebd297a2affadb6f6f4d2e5d975c1eda18ac762d patch link: https://lore.kernel.org/r/20250501-default-const-init-clang-v1-2-3d2c6c185db... patch subject: [PATCH 2/2] include/linux/typecheck.h: Zero initialize dummy variables config: arc-randconfig-002-20250502 (https://download.01.org/0day-ci/archive/20250502/202505021716.olmL8WzB-lkp@i...) compiler: arc-linux-gcc (GCC) 12.4.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250502/202505021716.olmL8WzB-lkp@i...)
If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot lkp@intel.com | Closes: https://lore.kernel.org/oe-kbuild-all/202505021716.olmL8WzB-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from include/linux/preempt.h:11, from include/linux/sched.h:15, from arch/arc/kernel/asm-offsets.c:6: include/linux/irqflags.h: In function 'class_irqsave_destructor':
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/cleanup.h:385:25: note: in definition of macro '__DEFINE_UNLOCK_GUARD' 385 | if (_T->lock) { _unlock; } \ | ^~~~~~~ include/linux/irqflags.h:266:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_0' 266 | DEFINE_LOCK_GUARD_0(irqsave, | ^~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:223:22: note: in expansion of macro 'raw_irqs_disabled_flags' 223 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:268:21: note: in expansion of macro 'local_irq_restore' 268 | local_irq_restore(_T->flags), | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/cleanup.h:385:25: note: in definition of macro '__DEFINE_UNLOCK_GUARD' 385 | if (_T->lock) { _unlock; } \ | ^~~~~~~ include/linux/irqflags.h:266:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_0' 266 | DEFINE_LOCK_GUARD_0(irqsave, | ^~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:223:22: note: in expansion of macro 'raw_irqs_disabled_flags' 223 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:268:21: note: in expansion of macro 'local_irq_restore' 268 | local_irq_restore(_T->flags), | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/cleanup.h:385:25: note: in definition of macro '__DEFINE_UNLOCK_GUARD' 385 | if (_T->lock) { _unlock; } \ | ^~~~~~~ include/linux/irqflags.h:266:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_0' 266 | DEFINE_LOCK_GUARD_0(irqsave, | ^~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:223:22: note: in expansion of macro 'raw_irqs_disabled_flags' 223 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:268:21: note: in expansion of macro 'local_irq_restore' 268 | local_irq_restore(_T->flags), | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/cleanup.h:385:25: note: in definition of macro '__DEFINE_UNLOCK_GUARD' 385 | if (_T->lock) { _unlock; } \ | ^~~~~~~ include/linux/irqflags.h:266:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_0' 266 | DEFINE_LOCK_GUARD_0(irqsave, | ^~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:223:22: note: in expansion of macro 'raw_irqs_disabled_flags' 223 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:268:21: note: in expansion of macro 'local_irq_restore' 268 | local_irq_restore(_T->flags), | ^~~~~~~~~~~~~~~~~
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/cleanup.h:385:25: note: in definition of macro '__DEFINE_UNLOCK_GUARD' 385 | if (_T->lock) { _unlock; } \ | ^~~~~~~ include/linux/irqflags.h:266:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_0' 266 | DEFINE_LOCK_GUARD_0(irqsave, | ^~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:177:17: note: in expansion of macro 'typecheck' 177 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:225:17: note: in expansion of macro 'raw_local_irq_restore' 225 | raw_local_irq_restore(flags); \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:268:21: note: in expansion of macro 'local_irq_restore' 268 | local_irq_restore(_T->flags), | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/cleanup.h:385:25: note: in definition of macro '__DEFINE_UNLOCK_GUARD' 385 | if (_T->lock) { _unlock; } \ | ^~~~~~~ include/linux/irqflags.h:266:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_0' 266 | DEFINE_LOCK_GUARD_0(irqsave, | ^~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:177:17: note: in expansion of macro 'typecheck' 177 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:225:17: note: in expansion of macro 'raw_local_irq_restore' 225 | raw_local_irq_restore(flags); \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:268:21: note: in expansion of macro 'local_irq_restore' 268 | local_irq_restore(_T->flags), | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/cleanup.h:385:25: note: in definition of macro '__DEFINE_UNLOCK_GUARD' 385 | if (_T->lock) { _unlock; } \ | ^~~~~~~ include/linux/irqflags.h:266:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_0' 266 | DEFINE_LOCK_GUARD_0(irqsave, | ^~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:177:17: note: in expansion of macro 'typecheck' 177 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:225:17: note: in expansion of macro 'raw_local_irq_restore' 225 | raw_local_irq_restore(flags); \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:268:21: note: in expansion of macro 'local_irq_restore' 268 | local_irq_restore(_T->flags), | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/cleanup.h:385:25: note: in definition of macro '__DEFINE_UNLOCK_GUARD' 385 | if (_T->lock) { _unlock; } \ | ^~~~~~~ include/linux/irqflags.h:266:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_0' 266 | DEFINE_LOCK_GUARD_0(irqsave, | ^~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:177:17: note: in expansion of macro 'typecheck' 177 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:225:17: note: in expansion of macro 'raw_local_irq_restore' 225 | raw_local_irq_restore(flags); \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:268:21: note: in expansion of macro 'local_irq_restore' 268 | local_irq_restore(_T->flags), | ^~~~~~~~~~~~~~~~~ include/linux/irqflags.h: In function 'class_irqsave_constructor':
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/cleanup.h:403:9: note: in definition of macro '__DEFINE_LOCK_GUARD_0' 403 | _lock; \ | ^~~~~ include/linux/irqflags.h:266:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_0' 266 | DEFINE_LOCK_GUARD_0(irqsave, | ^~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:267:21: note: in expansion of macro 'local_irq_save' 267 | local_irq_save(_T->flags), | ^~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/cleanup.h:403:9: note: in definition of macro '__DEFINE_LOCK_GUARD_0' 403 | _lock; \ | ^~~~~ include/linux/irqflags.h:266:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_0' 266 | DEFINE_LOCK_GUARD_0(irqsave, | ^~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:267:21: note: in expansion of macro 'local_irq_save' 267 | local_irq_save(_T->flags), | ^~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/cleanup.h:403:9: note: in definition of macro '__DEFINE_LOCK_GUARD_0' 403 | _lock; \ | ^~~~~ include/linux/irqflags.h:266:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_0' 266 | DEFINE_LOCK_GUARD_0(irqsave, | ^~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:267:21: note: in expansion of macro 'local_irq_save' 267 | local_irq_save(_T->flags), | ^~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/cleanup.h:403:9: note: in definition of macro '__DEFINE_LOCK_GUARD_0' 403 | _lock; \ | ^~~~~ include/linux/irqflags.h:266:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_0' 266 | DEFINE_LOCK_GUARD_0(irqsave, | ^~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:267:21: note: in expansion of macro 'local_irq_save' 267 | local_irq_save(_T->flags), | ^~~~~~~~~~~~~~
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/cleanup.h:403:9: note: in definition of macro '__DEFINE_LOCK_GUARD_0' 403 | _lock; \ | ^~~~~ include/linux/irqflags.h:266:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_0' 266 | DEFINE_LOCK_GUARD_0(irqsave, | ^~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:217:22: note: in expansion of macro 'raw_irqs_disabled_flags' 217 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:267:21: note: in expansion of macro 'local_irq_save' 267 | local_irq_save(_T->flags), | ^~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/cleanup.h:403:9: note: in definition of macro '__DEFINE_LOCK_GUARD_0' 403 | _lock; \ | ^~~~~ include/linux/irqflags.h:266:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_0' 266 | DEFINE_LOCK_GUARD_0(irqsave, | ^~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:217:22: note: in expansion of macro 'raw_irqs_disabled_flags' 217 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:267:21: note: in expansion of macro 'local_irq_save' 267 | local_irq_save(_T->flags), | ^~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/cleanup.h:403:9: note: in definition of macro '__DEFINE_LOCK_GUARD_0' 403 | _lock; \ | ^~~~~ include/linux/irqflags.h:266:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_0' 266 | DEFINE_LOCK_GUARD_0(irqsave, | ^~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:217:22: note: in expansion of macro 'raw_irqs_disabled_flags' 217 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:267:21: note: in expansion of macro 'local_irq_save' 267 | local_irq_save(_T->flags), | ^~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/cleanup.h:403:9: note: in definition of macro '__DEFINE_LOCK_GUARD_0' 403 | _lock; \ | ^~~~~ include/linux/irqflags.h:266:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_0' 266 | DEFINE_LOCK_GUARD_0(irqsave, | ^~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:217:22: note: in expansion of macro 'raw_irqs_disabled_flags' 217 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:267:21: note: in expansion of macro 'local_irq_save' 267 | local_irq_save(_T->flags), | ^~~~~~~~~~~~~~ In file included from include/linux/bitops.h:7, from include/linux/thread_info.h:27, from include/linux/sched.h:14: include/linux/spinlock_api_smp.h: In function '__raw_spin_lock_irqsave':
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/spinlock_api_smp.h:108:9: note: in expansion of macro 'local_irq_save' 108 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/spinlock_api_smp.h:108:9: note: in expansion of macro 'local_irq_save' 108 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/spinlock_api_smp.h:108:9: note: in expansion of macro 'local_irq_save' 108 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/spinlock_api_smp.h:108:9: note: in expansion of macro 'local_irq_save' 108 | local_irq_save(flags); | ^~~~~~~~~~~~~~
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:217:22: note: in expansion of macro 'raw_irqs_disabled_flags' 217 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_api_smp.h:108:9: note: in expansion of macro 'local_irq_save' 108 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:217:22: note: in expansion of macro 'raw_irqs_disabled_flags' 217 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_api_smp.h:108:9: note: in expansion of macro 'local_irq_save' 108 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:217:22: note: in expansion of macro 'raw_irqs_disabled_flags' 217 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_api_smp.h:108:9: note: in expansion of macro 'local_irq_save' 108 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:217:22: note: in expansion of macro 'raw_irqs_disabled_flags' 217 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_api_smp.h:108:9: note: in expansion of macro 'local_irq_save' 108 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/spinlock_api_smp.h: In function '__raw_spin_unlock_irqrestore':
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:223:22: note: in expansion of macro 'raw_irqs_disabled_flags' 223 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_api_smp.h:151:9: note: in expansion of macro 'local_irq_restore' 151 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:223:22: note: in expansion of macro 'raw_irqs_disabled_flags' 223 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_api_smp.h:151:9: note: in expansion of macro 'local_irq_restore' 151 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:223:22: note: in expansion of macro 'raw_irqs_disabled_flags' 223 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_api_smp.h:151:9: note: in expansion of macro 'local_irq_restore' 151 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:223:22: note: in expansion of macro 'raw_irqs_disabled_flags' 223 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_api_smp.h:151:9: note: in expansion of macro 'local_irq_restore' 151 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:177:17: note: in expansion of macro 'typecheck' 177 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:225:17: note: in expansion of macro 'raw_local_irq_restore' 225 | raw_local_irq_restore(flags); \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_api_smp.h:151:9: note: in expansion of macro 'local_irq_restore' 151 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:177:17: note: in expansion of macro 'typecheck' 177 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:225:17: note: in expansion of macro 'raw_local_irq_restore' 225 | raw_local_irq_restore(flags); \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_api_smp.h:151:9: note: in expansion of macro 'local_irq_restore' 151 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:177:17: note: in expansion of macro 'typecheck' 177 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:225:17: note: in expansion of macro 'raw_local_irq_restore' 225 | raw_local_irq_restore(flags); \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_api_smp.h:151:9: note: in expansion of macro 'local_irq_restore' 151 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:177:17: note: in expansion of macro 'typecheck' 177 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:225:17: note: in expansion of macro 'raw_local_irq_restore' 225 | raw_local_irq_restore(flags); \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_api_smp.h:151:9: note: in expansion of macro 'local_irq_restore' 151 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h: In function '__raw_read_lock_irqsave':
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:158:9: note: in expansion of macro 'local_irq_save' 158 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:158:9: note: in expansion of macro 'local_irq_save' 158 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:158:9: note: in expansion of macro 'local_irq_save' 158 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:158:9: note: in expansion of macro 'local_irq_save' 158 | local_irq_save(flags); | ^~~~~~~~~~~~~~
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:217:22: note: in expansion of macro 'raw_irqs_disabled_flags' 217 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:158:9: note: in expansion of macro 'local_irq_save' 158 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:217:22: note: in expansion of macro 'raw_irqs_disabled_flags' 217 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:158:9: note: in expansion of macro 'local_irq_save' 158 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:217:22: note: in expansion of macro 'raw_irqs_disabled_flags' 217 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:158:9: note: in expansion of macro 'local_irq_save' 158 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:217:22: note: in expansion of macro 'raw_irqs_disabled_flags' 217 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:158:9: note: in expansion of macro 'local_irq_save' 158 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h: In function '__raw_write_lock_irqsave':
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:184:9: note: in expansion of macro 'local_irq_save' 184 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:184:9: note: in expansion of macro 'local_irq_save' 184 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:184:9: note: in expansion of macro 'local_irq_save' 184 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:184:9: note: in expansion of macro 'local_irq_save' 184 | local_irq_save(flags); | ^~~~~~~~~~~~~~
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:217:22: note: in expansion of macro 'raw_irqs_disabled_flags' 217 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:184:9: note: in expansion of macro 'local_irq_save' 184 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:217:22: note: in expansion of macro 'raw_irqs_disabled_flags' 217 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:184:9: note: in expansion of macro 'local_irq_save' 184 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:217:22: note: in expansion of macro 'raw_irqs_disabled_flags' 217 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:184:9: note: in expansion of macro 'local_irq_save' 184 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:217:22: note: in expansion of macro 'raw_irqs_disabled_flags' 217 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:184:9: note: in expansion of macro 'local_irq_save' 184 | local_irq_save(flags); | ^~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h: In function '__raw_read_unlock_irqrestore':
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:223:22: note: in expansion of macro 'raw_irqs_disabled_flags' 223 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:241:9: note: in expansion of macro 'local_irq_restore' 241 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:223:22: note: in expansion of macro 'raw_irqs_disabled_flags' 223 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:241:9: note: in expansion of macro 'local_irq_restore' 241 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:223:22: note: in expansion of macro 'raw_irqs_disabled_flags' 223 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:241:9: note: in expansion of macro 'local_irq_restore' 241 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:223:22: note: in expansion of macro 'raw_irqs_disabled_flags' 223 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:241:9: note: in expansion of macro 'local_irq_restore' 241 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:177:17: note: in expansion of macro 'typecheck' 177 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:225:17: note: in expansion of macro 'raw_local_irq_restore' 225 | raw_local_irq_restore(flags); \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:241:9: note: in expansion of macro 'local_irq_restore' 241 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:177:17: note: in expansion of macro 'typecheck' 177 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:225:17: note: in expansion of macro 'raw_local_irq_restore' 225 | raw_local_irq_restore(flags); \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:241:9: note: in expansion of macro 'local_irq_restore' 241 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:177:17: note: in expansion of macro 'typecheck' 177 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:225:17: note: in expansion of macro 'raw_local_irq_restore' 225 | raw_local_irq_restore(flags); \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:241:9: note: in expansion of macro 'local_irq_restore' 241 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:177:17: note: in expansion of macro 'typecheck' 177 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:225:17: note: in expansion of macro 'raw_local_irq_restore' 225 | raw_local_irq_restore(flags); \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:241:9: note: in expansion of macro 'local_irq_restore' 241 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h: In function '__raw_write_unlock_irqrestore':
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:223:22: note: in expansion of macro 'raw_irqs_disabled_flags' 223 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:265:9: note: in expansion of macro 'local_irq_restore' 265 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:223:22: note: in expansion of macro 'raw_irqs_disabled_flags' 223 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:265:9: note: in expansion of macro 'local_irq_restore' 265 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:223:22: note: in expansion of macro 'raw_irqs_disabled_flags' 223 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:265:9: note: in expansion of macro 'local_irq_restore' 265 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:223:22: note: in expansion of macro 'raw_irqs_disabled_flags' 223 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:265:9: note: in expansion of macro 'local_irq_restore' 265 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:177:17: note: in expansion of macro 'typecheck' 177 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:225:17: note: in expansion of macro 'raw_local_irq_restore' 225 | raw_local_irq_restore(flags); \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:265:9: note: in expansion of macro 'local_irq_restore' 265 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/irqflags.h:177:17: note: in expansion of macro 'typecheck' 177 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:225:17: note: in expansion of macro 'raw_local_irq_restore' 225 | raw_local_irq_restore(flags); \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:265:9: note: in expansion of macro 'local_irq_restore' 265 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:177:17: note: in expansion of macro 'typecheck' 177 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:225:17: note: in expansion of macro 'raw_local_irq_restore' 225 | raw_local_irq_restore(flags); \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:265:9: note: in expansion of macro 'local_irq_restore' 265 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/irqflags.h:177:17: note: in expansion of macro 'typecheck' 177 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:225:17: note: in expansion of macro 'raw_local_irq_restore' 225 | raw_local_irq_restore(flags); \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/rwlock_api_smp.h:265:9: note: in expansion of macro 'local_irq_restore' 265 | local_irq_restore(flags); | ^~~~~~~~~~~~~~~~~ include/linux/spinlock.h: In function 'spin_unlock_irqrestore':
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/spinlock.h:281:17: note: in expansion of macro 'typecheck' 281 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/spinlock.h:406:9: note: in expansion of macro 'raw_spin_unlock_irqrestore' 406 | raw_spin_unlock_irqrestore(&lock->rlock, flags); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/spinlock.h:281:17: note: in expansion of macro 'typecheck' 281 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/spinlock.h:406:9: note: in expansion of macro 'raw_spin_unlock_irqrestore' 406 | raw_spin_unlock_irqrestore(&lock->rlock, flags); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/spinlock.h:281:17: note: in expansion of macro 'typecheck' 281 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/spinlock.h:406:9: note: in expansion of macro 'raw_spin_unlock_irqrestore' 406 | raw_spin_unlock_irqrestore(&lock->rlock, flags); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/spinlock.h:281:17: note: in expansion of macro 'typecheck' 281 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/spinlock.h:406:9: note: in expansion of macro 'raw_spin_unlock_irqrestore' 406 | raw_spin_unlock_irqrestore(&lock->rlock, flags); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock.h: In function 'class_raw_spinlock_irqsave_destructor':
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/cleanup.h:385:25: note: in definition of macro '__DEFINE_UNLOCK_GUARD' 385 | if (_T->lock) { _unlock; } \ | ^~~~~~~ include/linux/spinlock.h:557:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_1' 557 | DEFINE_LOCK_GUARD_1(raw_spinlock_irqsave, raw_spinlock_t, | ^~~~~~~~~~~~~~~~~~~ include/linux/spinlock.h:281:17: note: in expansion of macro 'typecheck' 281 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/spinlock.h:559:21: note: in expansion of macro 'raw_spin_unlock_irqrestore' 559 | raw_spin_unlock_irqrestore(_T->lock, _T->flags), | ^~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/cleanup.h:385:25: note: in definition of macro '__DEFINE_UNLOCK_GUARD' 385 | if (_T->lock) { _unlock; } \ | ^~~~~~~ include/linux/spinlock.h:557:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_1' 557 | DEFINE_LOCK_GUARD_1(raw_spinlock_irqsave, raw_spinlock_t, | ^~~~~~~~~~~~~~~~~~~ include/linux/spinlock.h:281:17: note: in expansion of macro 'typecheck' 281 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/spinlock.h:559:21: note: in expansion of macro 'raw_spin_unlock_irqrestore' 559 | raw_spin_unlock_irqrestore(_T->lock, _T->flags), | ^~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/cleanup.h:385:25: note: in definition of macro '__DEFINE_UNLOCK_GUARD' 385 | if (_T->lock) { _unlock; } \ | ^~~~~~~ include/linux/spinlock.h:557:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_1' 557 | DEFINE_LOCK_GUARD_1(raw_spinlock_irqsave, raw_spinlock_t, | ^~~~~~~~~~~~~~~~~~~ include/linux/spinlock.h:281:17: note: in expansion of macro 'typecheck' 281 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/spinlock.h:559:21: note: in expansion of macro 'raw_spin_unlock_irqrestore' 559 | raw_spin_unlock_irqrestore(_T->lock, _T->flags), | ^~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/cleanup.h:385:25: note: in definition of macro '__DEFINE_UNLOCK_GUARD' 385 | if (_T->lock) { _unlock; } \ | ^~~~~~~ include/linux/spinlock.h:557:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_1' 557 | DEFINE_LOCK_GUARD_1(raw_spinlock_irqsave, raw_spinlock_t, | ^~~~~~~~~~~~~~~~~~~ include/linux/spinlock.h:281:17: note: in expansion of macro 'typecheck' 281 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/spinlock.h:559:21: note: in expansion of macro 'raw_spin_unlock_irqrestore' 559 | raw_spin_unlock_irqrestore(_T->lock, _T->flags), | ^~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock.h: In function 'class_raw_spinlock_irqsave_constructor':
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/cleanup.h:394:9: note: in definition of macro '__DEFINE_LOCK_GUARD_1' 394 | _lock; \ | ^~~~~ include/linux/spinlock.h:557:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_1' 557 | DEFINE_LOCK_GUARD_1(raw_spinlock_irqsave, raw_spinlock_t, | ^~~~~~~~~~~~~~~~~~~ include/linux/spinlock.h:243:17: note: in expansion of macro 'typecheck' 243 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/spinlock.h:558:21: note: in expansion of macro 'raw_spin_lock_irqsave' 558 | raw_spin_lock_irqsave(_T->lock, _T->flags), | ^~~~~~~~~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/cleanup.h:394:9: note: in definition of macro '__DEFINE_LOCK_GUARD_1' 394 | _lock; \ | ^~~~~ include/linux/spinlock.h:557:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_1' 557 | DEFINE_LOCK_GUARD_1(raw_spinlock_irqsave, raw_spinlock_t, | ^~~~~~~~~~~~~~~~~~~ include/linux/spinlock.h:243:17: note: in expansion of macro 'typecheck' 243 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/spinlock.h:558:21: note: in expansion of macro 'raw_spin_lock_irqsave' 558 | raw_spin_lock_irqsave(_T->lock, _T->flags), | ^~~~~~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/cleanup.h:394:9: note: in definition of macro '__DEFINE_LOCK_GUARD_1' 394 | _lock; \ | ^~~~~ include/linux/spinlock.h:557:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_1' 557 | DEFINE_LOCK_GUARD_1(raw_spinlock_irqsave, raw_spinlock_t, | ^~~~~~~~~~~~~~~~~~~ include/linux/spinlock.h:243:17: note: in expansion of macro 'typecheck' 243 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/spinlock.h:558:21: note: in expansion of macro 'raw_spin_lock_irqsave' 558 | raw_spin_lock_irqsave(_T->lock, _T->flags), | ^~~~~~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/cleanup.h:394:9: note: in definition of macro '__DEFINE_LOCK_GUARD_1' 394 | _lock; \ | ^~~~~ include/linux/spinlock.h:557:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_1' 557 | DEFINE_LOCK_GUARD_1(raw_spinlock_irqsave, raw_spinlock_t, | ^~~~~~~~~~~~~~~~~~~ include/linux/spinlock.h:243:17: note: in expansion of macro 'typecheck' 243 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/spinlock.h:558:21: note: in expansion of macro 'raw_spin_lock_irqsave' 558 | raw_spin_lock_irqsave(_T->lock, _T->flags), | ^~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock.h: In function 'class_raw_spinlock_irqsave_try_constructor':
include/linux/typecheck.h:10:24: error: empty scalar initializer
10 | ({ type __dummy = {}; \ | ^ include/linux/cleanup.h:255:25: note: in definition of macro 'EXTEND_CLASS' 255 | { class_##_name##_t t = _init; return t; } | ^~~~~ include/linux/spinlock.h:562:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_1_COND' 562 | DEFINE_LOCK_GUARD_1_COND(raw_spinlock_irqsave, _try, | ^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/spinlock.h:298:9: note: in expansion of macro 'local_irq_save' 298 | local_irq_save(flags); \ | ^~~~~~~~~~~~~~ include/linux/spinlock.h:563:26: note: in expansion of macro 'raw_spin_trylock_irqsave' 563 | raw_spin_trylock_irqsave(_T->lock, _T->flags)) | ^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: note: (near initialization for '__dummy') 10 | ({ type __dummy = {}; \ | ^ include/linux/cleanup.h:255:25: note: in definition of macro 'EXTEND_CLASS' 255 | { class_##_name##_t t = _init; return t; } | ^~~~~ include/linux/spinlock.h:562:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_1_COND' 562 | DEFINE_LOCK_GUARD_1_COND(raw_spinlock_irqsave, _try, | ^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/spinlock.h:298:9: note: in expansion of macro 'local_irq_save' 298 | local_irq_save(flags); \ | ^~~~~~~~~~~~~~ include/linux/spinlock.h:563:26: note: in expansion of macro 'raw_spin_trylock_irqsave' 563 | raw_spin_trylock_irqsave(_T->lock, _T->flags)) | ^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: error: empty scalar initializer 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/cleanup.h:255:25: note: in definition of macro 'EXTEND_CLASS' 255 | { class_##_name##_t t = _init; return t; } | ^~~~~ include/linux/spinlock.h:562:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_1_COND' 562 | DEFINE_LOCK_GUARD_1_COND(raw_spinlock_irqsave, _try, | ^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/spinlock.h:298:9: note: in expansion of macro 'local_irq_save' 298 | local_irq_save(flags); \ | ^~~~~~~~~~~~~~ include/linux/spinlock.h:563:26: note: in expansion of macro 'raw_spin_trylock_irqsave' 563 | raw_spin_trylock_irqsave(_T->lock, _T->flags)) | ^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/typecheck.h:11:30: note: (near initialization for '__dummy2') 11 | typeof(x) __dummy2 = {}; \ | ^ include/linux/cleanup.h:255:25: note: in definition of macro 'EXTEND_CLASS' 255 | { class_##_name##_t t = _init; return t; } | ^~~~~ include/linux/spinlock.h:562:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_1_COND' 562 | DEFINE_LOCK_GUARD_1_COND(raw_spinlock_irqsave, _try, | ^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:172:17: note: in expansion of macro 'typecheck' 172 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:216:17: note: in expansion of macro 'raw_local_irq_save' 216 | raw_local_irq_save(flags); \ | ^~~~~~~~~~~~~~~~~~ include/linux/spinlock.h:298:9: note: in expansion of macro 'local_irq_save' 298 | local_irq_save(flags); \ | ^~~~~~~~~~~~~~ include/linux/spinlock.h:563:26: note: in expansion of macro 'raw_spin_trylock_irqsave' 563 | raw_spin_trylock_irqsave(_T->lock, _T->flags)) | ^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/typecheck.h:10:24: error: empty scalar initializer 10 | ({ type __dummy = {}; \ | ^ include/linux/cleanup.h:255:25: note: in definition of macro 'EXTEND_CLASS' 255 | { class_##_name##_t t = _init; return t; } | ^~~~~ include/linux/spinlock.h:562:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_1_COND' 562 | DEFINE_LOCK_GUARD_1_COND(raw_spinlock_irqsave, _try, | ^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/irqflags.h:188:17: note: in expansion of macro 'typecheck' 188 | typecheck(unsigned long, flags); \ | ^~~~~~~~~ include/linux/irqflags.h:217:22: note: in expansion of macro 'raw_irqs_disabled_flags' 217 | if (!raw_irqs_disabled_flags(flags)) \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock.h:298:9: note: in expansion of macro 'local_irq_save' 298 | local_irq_save(flags); \
vim +10 include/linux/typecheck.h
4 5 /* 6 * Check at compile time that something is of a particular type. 7 * Always evaluates to 1 so you may use it easily in comparisons. 8 */ 9 #define typecheck(type,x) \
10 ({ type __dummy = {}; \
11 typeof(x) __dummy2 = {}; \ 12 (void)(&__dummy == &__dummy2); \ 13 1; \ 14 }) 15