LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* arch/x86/include/asm/rmwcc.h:23:17: error: jump into statement expression
@ 2018-10-31 3:20 kbuild test robot
0 siblings, 0 replies; 4+ messages in thread
From: kbuild test robot @ 2018-10-31 3:20 UTC (permalink / raw)
To: Peter Zijlstra; +Cc: kbuild-all, linux-kernel, Ingo Molnar, Will Deacon
[-- Attachment #1: Type: text/plain, Size: 14693 bytes --]
Hi Peter,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 310c7585e8300ddc46211df0757c11e4299ec482
commit: 7aa54be2976550f17c11a1c3e3630002dea39303 locking/qspinlock, x86: Provide liveness guarantee
date: 2 weeks ago
config: x86_64-randconfig-j0-10290909 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4
reproduce:
git checkout 7aa54be2976550f17c11a1c3e3630002dea39303
# save the attached .config to linux build tree
make ARCH=x86_64
All errors (new ones prefixed by >>):
In file included from arch/x86/include/asm/atomic.h:5:0,
from include/linux/atomic.h:7,
from include/linux/crypto.h:20,
from arch/x86/kernel/asm-offsets.c:9:
arch/x86/include/asm/qspinlock.h: In function 'queued_fetch_set_pending_acquire':
>> arch/x86/include/asm/rmwcc.h:23:17: error: jump into statement expression
: clobbers : cc_label); \
^
include/linux/compiler.h:58:42: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:21:2: note: in expansion of macro 'asm_volatile_goto'
asm_volatile_goto (fullop "; j" #cc " %l[cc_label]" \
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:25:1: note: label 'cc_label' defined here
cc_label: c = true; \
^
include/linux/compiler.h:58:30: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
>> arch/x86/include/asm/rmwcc.h:25:1: error: duplicate label 'cc_label'
cc_label: c = true; \
^
include/linux/compiler.h:58:42: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:25:1: note: previous definition of 'cc_label' was here
cc_label: c = true; \
^
include/linux/compiler.h:58:30: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
>> arch/x86/include/asm/rmwcc.h:23:17: error: jump into statement expression
: clobbers : cc_label); \
^
include/linux/compiler.h:69:16: note: in definition of macro '__trace_if'
______r = !!(cond); \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:21:2: note: in expansion of macro 'asm_volatile_goto'
asm_volatile_goto (fullop "; j" #cc " %l[cc_label]" \
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:25:1: note: label 'cc_label' defined here
cc_label: c = true; \
^
include/linux/compiler.h:58:30: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
>> arch/x86/include/asm/rmwcc.h:25:1: error: duplicate label 'cc_label'
cc_label: c = true; \
^
include/linux/compiler.h:69:16: note: in definition of macro '__trace_if'
______r = !!(cond); \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:25:1: note: previous definition of 'cc_label' was here
cc_label: c = true; \
^
include/linux/compiler.h:58:30: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
make[2]: *** [arch/x86/kernel/asm-offsets.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [sub-make] Error 2
vim +23 arch/x86/include/asm/rmwcc.h
288e4521 Peter Zijlstra 2018-10-03 8
288e4521 Peter Zijlstra 2018-10-03 9 #define __RMWcc_CONCAT(a, b) a ## b
288e4521 Peter Zijlstra 2018-10-03 @10 #define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
288e4521 Peter Zijlstra 2018-10-03 11
700b7c54 Jan Beulich 2018-02-19 12 #define __CLOBBERS_MEM(clb...) "memory", ## clb
df340524 Kees Cook 2017-07-24 13
ba741e35 H. Peter Anvin 2016-06-08 14 #if !defined(__GCC_ASM_FLAG_OUTPUTS__) && defined(CC_HAVE_ASM_GOTO)
ba741e35 H. Peter Anvin 2016-06-08 15
ba741e35 H. Peter Anvin 2016-06-08 16 /* Use asm goto */
0c44c2d0 Peter Zijlstra 2013-09-11 17
288e4521 Peter Zijlstra 2018-10-03 18 #define __GEN_RMWcc(fullop, _var, cc, clobbers, ...) \
288e4521 Peter Zijlstra 2018-10-03 19 ({ \
288e4521 Peter Zijlstra 2018-10-03 20 bool c = false; \
18fe5822 H. Peter Anvin 2016-06-08 21 asm_volatile_goto (fullop "; j" #cc " %l[cc_label]" \
288e4521 Peter Zijlstra 2018-10-03 22 : : [var] "m" (_var), ## __VA_ARGS__ \
df340524 Kees Cook 2017-07-24 @23 : clobbers : cc_label); \
288e4521 Peter Zijlstra 2018-10-03 24 if (0) { \
288e4521 Peter Zijlstra 2018-10-03 @25 cc_label: c = true; \
288e4521 Peter Zijlstra 2018-10-03 26 } \
288e4521 Peter Zijlstra 2018-10-03 27 c; \
288e4521 Peter Zijlstra 2018-10-03 28 })
0c44c2d0 Peter Zijlstra 2013-09-11 29
:::::: The code at line 23 was first introduced by commit
:::::: df3405245a8535d2f20bcbdbb615385671cd0792 x86/asm: Add suffix macro for GEN_*_RMWcc()
:::::: TO: Kees Cook <keescook@chromium.org>
:::::: 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: 25762 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: arch/x86/include/asm/rmwcc.h:23:17: error: jump into statement expression
2018-11-01 1:11 kbuild test robot
@ 2018-11-01 9:22 ` Will Deacon
0 siblings, 0 replies; 4+ messages in thread
From: Will Deacon @ 2018-11-01 9:22 UTC (permalink / raw)
To: kbuild test robot; +Cc: Peter Zijlstra, kbuild-all, linux-kernel, Ingo Molnar
Peter,
On Thu, Nov 01, 2018 at 09:11:52AM +0800, kbuild test robot wrote:
> FYI, the error/warning still remains.
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 5b7449810ae6d652629c550d3974c8453836d229
> commit: 7aa54be2976550f17c11a1c3e3630002dea39303 locking/qspinlock, x86: Provide liveness guarantee
> date: 2 weeks ago
> config: x86_64-randconfig-j0-10290909 (attached as .config)
> compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4
> reproduce:
> git checkout 7aa54be2976550f17c11a1c3e3630002dea39303
> # save the attached .config to linux build tree
> make ARCH=x86_64
>
> All errors (new ones prefixed by >>):
>
> In file included from arch/x86/include/asm/atomic.h:5:0,
> from include/linux/atomic.h:7,
> from include/linux/crypto.h:20,
> from arch/x86/kernel/asm-offsets.c:9:
> arch/x86/include/asm/qspinlock.h: In function 'queued_fetch_set_pending_acquire':
> >> arch/x86/include/asm/rmwcc.h:23:17: error: jump into statement expression
> : clobbers : cc_label); \
You wrote a fix for this last week, right? Do we need to get it queued
someplace for -rc1?
Will
^ permalink raw reply [flat|nested] 4+ messages in thread
* arch/x86/include/asm/rmwcc.h:23:17: error: jump into statement expression
@ 2018-11-01 1:11 kbuild test robot
2018-11-01 9:22 ` Will Deacon
0 siblings, 1 reply; 4+ messages in thread
From: kbuild test robot @ 2018-11-01 1:11 UTC (permalink / raw)
To: Peter Zijlstra; +Cc: kbuild-all, linux-kernel, Ingo Molnar, Will Deacon
[-- Attachment #1: Type: text/plain, Size: 14693 bytes --]
Hi Peter,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 5b7449810ae6d652629c550d3974c8453836d229
commit: 7aa54be2976550f17c11a1c3e3630002dea39303 locking/qspinlock, x86: Provide liveness guarantee
date: 2 weeks ago
config: x86_64-randconfig-j0-10290909 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4
reproduce:
git checkout 7aa54be2976550f17c11a1c3e3630002dea39303
# save the attached .config to linux build tree
make ARCH=x86_64
All errors (new ones prefixed by >>):
In file included from arch/x86/include/asm/atomic.h:5:0,
from include/linux/atomic.h:7,
from include/linux/crypto.h:20,
from arch/x86/kernel/asm-offsets.c:9:
arch/x86/include/asm/qspinlock.h: In function 'queued_fetch_set_pending_acquire':
>> arch/x86/include/asm/rmwcc.h:23:17: error: jump into statement expression
: clobbers : cc_label); \
^
include/linux/compiler.h:58:42: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:21:2: note: in expansion of macro 'asm_volatile_goto'
asm_volatile_goto (fullop "; j" #cc " %l[cc_label]" \
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:25:1: note: label 'cc_label' defined here
cc_label: c = true; \
^
include/linux/compiler.h:58:30: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
>> arch/x86/include/asm/rmwcc.h:25:1: error: duplicate label 'cc_label'
cc_label: c = true; \
^
include/linux/compiler.h:58:42: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:25:1: note: previous definition of 'cc_label' was here
cc_label: c = true; \
^
include/linux/compiler.h:58:30: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
>> arch/x86/include/asm/rmwcc.h:23:17: error: jump into statement expression
: clobbers : cc_label); \
^
include/linux/compiler.h:69:16: note: in definition of macro '__trace_if'
______r = !!(cond); \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:21:2: note: in expansion of macro 'asm_volatile_goto'
asm_volatile_goto (fullop "; j" #cc " %l[cc_label]" \
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:25:1: note: label 'cc_label' defined here
cc_label: c = true; \
^
include/linux/compiler.h:58:30: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
>> arch/x86/include/asm/rmwcc.h:25:1: error: duplicate label 'cc_label'
cc_label: c = true; \
^
include/linux/compiler.h:69:16: note: in definition of macro '__trace_if'
______r = !!(cond); \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:25:1: note: previous definition of 'cc_label' was here
cc_label: c = true; \
^
include/linux/compiler.h:58:30: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
make[2]: *** [arch/x86/kernel/asm-offsets.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [sub-make] Error 2
vim +23 arch/x86/include/asm/rmwcc.h
288e4521 Peter Zijlstra 2018-10-03 8
288e4521 Peter Zijlstra 2018-10-03 9 #define __RMWcc_CONCAT(a, b) a ## b
288e4521 Peter Zijlstra 2018-10-03 @10 #define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
288e4521 Peter Zijlstra 2018-10-03 11
700b7c54 Jan Beulich 2018-02-19 12 #define __CLOBBERS_MEM(clb...) "memory", ## clb
df340524 Kees Cook 2017-07-24 13
ba741e35 H. Peter Anvin 2016-06-08 14 #if !defined(__GCC_ASM_FLAG_OUTPUTS__) && defined(CC_HAVE_ASM_GOTO)
ba741e35 H. Peter Anvin 2016-06-08 15
ba741e35 H. Peter Anvin 2016-06-08 16 /* Use asm goto */
0c44c2d0 Peter Zijlstra 2013-09-11 17
288e4521 Peter Zijlstra 2018-10-03 18 #define __GEN_RMWcc(fullop, _var, cc, clobbers, ...) \
288e4521 Peter Zijlstra 2018-10-03 19 ({ \
288e4521 Peter Zijlstra 2018-10-03 20 bool c = false; \
18fe5822 H. Peter Anvin 2016-06-08 21 asm_volatile_goto (fullop "; j" #cc " %l[cc_label]" \
288e4521 Peter Zijlstra 2018-10-03 22 : : [var] "m" (_var), ## __VA_ARGS__ \
df340524 Kees Cook 2017-07-24 @23 : clobbers : cc_label); \
288e4521 Peter Zijlstra 2018-10-03 24 if (0) { \
288e4521 Peter Zijlstra 2018-10-03 @25 cc_label: c = true; \
288e4521 Peter Zijlstra 2018-10-03 26 } \
288e4521 Peter Zijlstra 2018-10-03 27 c; \
288e4521 Peter Zijlstra 2018-10-03 28 })
0c44c2d0 Peter Zijlstra 2013-09-11 29
:::::: The code at line 23 was first introduced by commit
:::::: df3405245a8535d2f20bcbdbb615385671cd0792 x86/asm: Add suffix macro for GEN_*_RMWcc()
:::::: TO: Kees Cook <keescook@chromium.org>
:::::: 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: 25846 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* arch/x86/include/asm/rmwcc.h:23:17: error: jump into statement expression
@ 2018-10-30 1:51 kbuild test robot
0 siblings, 0 replies; 4+ messages in thread
From: kbuild test robot @ 2018-10-30 1:51 UTC (permalink / raw)
To: Peter Zijlstra; +Cc: kbuild-all, linux-kernel, Ingo Molnar, Will Deacon
[-- Attachment #1: Type: text/plain, Size: 14693 bytes --]
Hi Peter,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 4b42745211af552f170f38a1b97f4a112b5da6b2
commit: 7aa54be2976550f17c11a1c3e3630002dea39303 locking/qspinlock, x86: Provide liveness guarantee
date: 13 days ago
config: x86_64-randconfig-j0-10290909 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4
reproduce:
git checkout 7aa54be2976550f17c11a1c3e3630002dea39303
# save the attached .config to linux build tree
make ARCH=x86_64
All errors (new ones prefixed by >>):
In file included from arch/x86/include/asm/atomic.h:5:0,
from include/linux/atomic.h:7,
from include/linux/crypto.h:20,
from arch/x86/kernel/asm-offsets.c:9:
arch/x86/include/asm/qspinlock.h: In function 'queued_fetch_set_pending_acquire':
>> arch/x86/include/asm/rmwcc.h:23:17: error: jump into statement expression
: clobbers : cc_label); \
^
include/linux/compiler.h:58:42: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:21:2: note: in expansion of macro 'asm_volatile_goto'
asm_volatile_goto (fullop "; j" #cc " %l[cc_label]" \
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:25:1: note: label 'cc_label' defined here
cc_label: c = true; \
^
include/linux/compiler.h:58:30: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
>> arch/x86/include/asm/rmwcc.h:25:1: error: duplicate label 'cc_label'
cc_label: c = true; \
^
include/linux/compiler.h:58:42: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:25:1: note: previous definition of 'cc_label' was here
cc_label: c = true; \
^
include/linux/compiler.h:58:30: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
>> arch/x86/include/asm/rmwcc.h:23:17: error: jump into statement expression
: clobbers : cc_label); \
^
include/linux/compiler.h:69:16: note: in definition of macro '__trace_if'
______r = !!(cond); \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:21:2: note: in expansion of macro 'asm_volatile_goto'
asm_volatile_goto (fullop "; j" #cc " %l[cc_label]" \
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:25:1: note: label 'cc_label' defined here
cc_label: c = true; \
^
include/linux/compiler.h:58:30: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
>> arch/x86/include/asm/rmwcc.h:25:1: error: duplicate label 'cc_label'
cc_label: c = true; \
^
include/linux/compiler.h:69:16: note: in definition of macro '__trace_if'
______r = !!(cond); \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:25:1: note: previous definition of 'cc_label' was here
cc_label: c = true; \
^
include/linux/compiler.h:58:30: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
arch/x86/include/asm/qspinlock.h:18:2: note: in expansion of macro 'if'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
arch/x86/include/asm/rmwcc.h:54:2: note: in expansion of macro '__GEN_RMWcc'
__GEN_RMWcc(op " %[val], " arg0, var, cc, \
^
arch/x86/include/asm/rmwcc.h:58:2: note: in expansion of macro 'GEN_BINARY_RMWcc_6'
GEN_BINARY_RMWcc_6(op, var, cc, vcon, val, "%[var]")
^
arch/x86/include/asm/rmwcc.h:9:30: note: in expansion of macro 'GEN_BINARY_RMWcc_5'
#define __RMWcc_CONCAT(a, b) a ## b
^
arch/x86/include/asm/rmwcc.h:10:28: note: in expansion of macro '__RMWcc_CONCAT'
#define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
^
arch/x86/include/asm/rmwcc.h:60:32: note: in expansion of macro 'RMWcc_CONCAT'
#define GEN_BINARY_RMWcc(X...) RMWcc_CONCAT(GEN_BINARY_RMWcc_, RMWcc_ARGS(X))(X)
^
arch/x86/include/asm/qspinlock.h:18:6: note: in expansion of macro 'GEN_BINARY_RMWcc'
if (GEN_BINARY_RMWcc(LOCK_PREFIX "btsl", lock->val.counter, c,
^
make[2]: *** [arch/x86/kernel/asm-offsets.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [sub-make] Error 2
vim +23 arch/x86/include/asm/rmwcc.h
288e4521 Peter Zijlstra 2018-10-03 8
288e4521 Peter Zijlstra 2018-10-03 9 #define __RMWcc_CONCAT(a, b) a ## b
288e4521 Peter Zijlstra 2018-10-03 @10 #define RMWcc_CONCAT(a, b) __RMWcc_CONCAT(a, b)
288e4521 Peter Zijlstra 2018-10-03 11
700b7c54 Jan Beulich 2018-02-19 12 #define __CLOBBERS_MEM(clb...) "memory", ## clb
df340524 Kees Cook 2017-07-24 13
ba741e35 H. Peter Anvin 2016-06-08 14 #if !defined(__GCC_ASM_FLAG_OUTPUTS__) && defined(CC_HAVE_ASM_GOTO)
ba741e35 H. Peter Anvin 2016-06-08 15
ba741e35 H. Peter Anvin 2016-06-08 16 /* Use asm goto */
0c44c2d0 Peter Zijlstra 2013-09-11 17
288e4521 Peter Zijlstra 2018-10-03 18 #define __GEN_RMWcc(fullop, _var, cc, clobbers, ...) \
288e4521 Peter Zijlstra 2018-10-03 19 ({ \
288e4521 Peter Zijlstra 2018-10-03 20 bool c = false; \
18fe5822 H. Peter Anvin 2016-06-08 21 asm_volatile_goto (fullop "; j" #cc " %l[cc_label]" \
288e4521 Peter Zijlstra 2018-10-03 22 : : [var] "m" (_var), ## __VA_ARGS__ \
df340524 Kees Cook 2017-07-24 @23 : clobbers : cc_label); \
288e4521 Peter Zijlstra 2018-10-03 24 if (0) { \
288e4521 Peter Zijlstra 2018-10-03 @25 cc_label: c = true; \
288e4521 Peter Zijlstra 2018-10-03 26 } \
288e4521 Peter Zijlstra 2018-10-03 27 c; \
288e4521 Peter Zijlstra 2018-10-03 28 })
0c44c2d0 Peter Zijlstra 2013-09-11 29
:::::: The code at line 23 was first introduced by commit
:::::: df3405245a8535d2f20bcbdbb615385671cd0792 x86/asm: Add suffix macro for GEN_*_RMWcc()
:::::: TO: Kees Cook <keescook@chromium.org>
:::::: 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: 25854 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-11-01 9:22 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-31 3:20 arch/x86/include/asm/rmwcc.h:23:17: error: jump into statement expression kbuild test robot
-- strict thread matches above, loose matches on Subject: below --
2018-11-01 1:11 kbuild test robot
2018-11-01 9:22 ` Will Deacon
2018-10-30 1:51 kbuild test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).