Re: [PATCH v3 2/2] UBSAN: run-time undefined behavior sanity checker

From: kbuild test robot
Date: Mon Nov 30 2015 - 11:47:00 EST


Hi Andrey,

[auto build test ERROR on: v4.4-rc3]
[cannot apply to: tip/x86/core kbuild/for-next next-20151127]

url: https://github.com/0day-ci/linux/commits/Andrey-Ryabinin/kernel-printk-specify-alignment-for-struct-printk_log/20151201-000229
config: i386-allmodconfig (attached as .config)
reproduce:
# save the attached .config to linux build tree
make ARCH=i386

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

lib/ubsan.c: In function 'val_to_string':
>> lib/ubsan.c:127:15: warning: right shift count >= width of type [-Wshift-count-overflow]
(u32)(val >> 96),
^
lib/ubsan.c:128:15: warning: right shift count >= width of type [-Wshift-count-overflow]
(u32)(val >> 64),
^
--
In file included from include/linux/linkage.h:4:0,
from include/linux/fs.h:4,
from include/linux/debugfs.h:18,
from net/mac80211/debugfs.c:11:
net/mac80211/debugfs.c: In function 'hwflags_read':
>> include/linux/compiler.h:484:38: error: call to '__compiletime_assert_150' declared with attribute error: BUILD_BUG_ON failed: hw_flag_names[NUM_IEEE80211_HW_FLAGS] != (void *)0x1
_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/bug.h:74:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
^
>> net/mac80211/debugfs.c:150:2: note: in expansion of macro 'BUILD_BUG_ON'
BUILD_BUG_ON(hw_flag_names[NUM_IEEE80211_HW_FLAGS] != (void *)0x1);
^

vim +127 lib/ubsan.c

111
112 if (type_bit_width(type) == 64)
113 return *(u64 *)val;
114
115 return *(u_max *)val;
116 }
117
118 static void val_to_string(char *str, size_t size, struct type_descriptor *type,
119 unsigned long value)
120 {
121 u_max val = get_unsigned_val(type, value);
122
123 if (type_is_int(type)) {
124 if (IS_ENABLED(CONFIG_ARCH_SUPPORTS_INT128)
125 && type_bit_width(type) == 128)
126 scnprintf(str, size, "0x%08x%08x%08x%08x",
> 127 (u32)(val >> 96),
128 (u32)(val >> 64),
129 (u32)(val >> 32),
130 (u32)(val));
131 else if (type_is_signed(type))
132 scnprintf(str, size, "%lld",
133 (s64)get_signed_val(type, value));
134 else
135 scnprintf(str, size, "%llu",

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

Attachment: .config.gz
Description: Binary data