Re: [PATCH] err.h: add type checking to IS_ERR_VALUE macro

From: kbuild test robot
Date: Fri Dec 18 2015 - 06:29:20 EST


Hi Andrzej,

[auto build test ERROR on v4.4-rc5]
[also build test ERROR on next-20151217]

url: https://github.com/0day-ci/linux/commits/Andrzej-Hajda/err-h-add-type-checking-to-IS_ERR_VALUE-macro/20151218-185839
config: i386-randconfig-s1-201550 (attached as .config)
reproduce:
# save the attached .config to linux build tree
make ARCH=i386

All error/warnings (new ones prefixed by >>):

In file included from include/linux/linkage.h:4:0,
from include/linux/preempt.h:9,
from include/linux/spinlock.h:50,
from include/linux/mmzone.h:7,
from include/linux/gfp.h:5,
from include/linux/mm.h:9,
from drivers/char/mem.c:11:
drivers/char/mem.c: In function 'memory_lseek':
>> include/linux/compiler.h:484:38: error: call to '__compiletime_assert_698' declared with attribute error: Invalid IS_ERR_VALUE argument type
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^
include/linux/compiler.h:467:4: note: in definition of macro '__compiletime_assert'
prefix ## suffix(); \
^
include/linux/compiler.h:484:2: note: in expansion of macro '_compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^
include/linux/bug.h:50:37: note: in expansion of macro 'compiletime_assert'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
>> include/linux/err.h:24:5: note: in expansion of macro 'BUILD_BUG_ON_MSG'
BUILD_BUG_ON_MSG((typeof(x))(-MAX_ERRNO) != (unsigned long)-MAX_ERRNO, "Invalid IS_ERR_VALUE argument type");\
^
>> drivers/char/mem.c:698:7: note: in expansion of macro 'IS_ERR_VALUE'
if (IS_ERR_VALUE((unsigned long long)offset)) {
^

vim +/__compiletime_assert_698 +484 include/linux/compiler.h

9a8ab1c3 Daniel Santos 2013-02-21 478 *
9a8ab1c3 Daniel Santos 2013-02-21 479 * In tradition of POSIX assert, this macro will break the build if the
9a8ab1c3 Daniel Santos 2013-02-21 480 * supplied condition is *false*, emitting the supplied error message if the
9a8ab1c3 Daniel Santos 2013-02-21 481 * compiler has support to do so.
9a8ab1c3 Daniel Santos 2013-02-21 482 */
9a8ab1c3 Daniel Santos 2013-02-21 483 #define compiletime_assert(condition, msg) \
9a8ab1c3 Daniel Santos 2013-02-21 @484 _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
9a8ab1c3 Daniel Santos 2013-02-21 485
47933ad4 Peter Zijlstra 2013-11-06 486 #define compiletime_assert_atomic_type(t) \
47933ad4 Peter Zijlstra 2013-11-06 487 compiletime_assert(__native_word(t), \

:::::: The code at line 484 was first introduced by commit
:::::: 9a8ab1c39970a4938a72d94e6fd13be88a797590 bug.h, compiler.h: introduce compiletime_assert & BUILD_BUG_ON_MSG

:::::: TO: Daniel Santos <daniel.santos@xxxxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>

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

Attachment: .config.gz
Description: Binary data