* [linux-next:master 8608/9128] lib/maple_tree.c:473:7: warning: variable 'shift' is used uninitialized whenever switch case is taken
@ 2022-02-26 19:14 kernel test robot
2022-02-26 19:21 ` Liam Howlett
0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2022-02-26 19:14 UTC (permalink / raw)
To: Liam R. Howlett
Cc: llvm, kbuild-all, Linux Memory Management List, Matthew Wilcox (Oracle)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 06aeb1495c39c86ccfaf1adadc1d2200179f16eb
commit: 564eadc47f5f72d5fc25b3740452e4fb61cf694e [8608/9128] Maple Tree: Add new data structure
config: mips-buildonly-randconfig-r005-20220225 (https://download.01.org/0day-ci/archive/20220226/202202262240.NbkCh7vR-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project d271fc04d5b97b12e6b797c6067d3c96a8d7470e)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install mips cross compiling tool for clang build
# apt-get install binutils-mips-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=564eadc47f5f72d5fc25b3740452e4fb61cf694e
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout 564eadc47f5f72d5fc25b3740452e4fb61cf694e
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> lib/maple_tree.c:473:7: warning: variable 'shift' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
case maple_dense:
^~~~~~~~~~~
lib/maple_tree.c:480:18: note: uninitialized use occurs here
val |= (slot << shift) | type;
^~~~~
lib/maple_tree.c:474:7: warning: variable 'shift' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
case maple_leaf_64:
^~~~~~~~~~~~~
lib/maple_tree.c:480:18: note: uninitialized use occurs here
val |= (slot << shift) | type;
^~~~~
lib/maple_tree.c:463:21: note: initialize the variable 'shift' to silence this warning
unsigned long shift;
^
= 0
>> lib/maple_tree.c:473:7: warning: variable 'type' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
case maple_dense:
^~~~~~~~~~~
lib/maple_tree.c:480:27: note: uninitialized use occurs here
val |= (slot << shift) | type;
^~~~
lib/maple_tree.c:474:7: warning: variable 'type' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
case maple_leaf_64:
^~~~~~~~~~~~~
lib/maple_tree.c:480:27: note: uninitialized use occurs here
val |= (slot << shift) | type;
^~~~
lib/maple_tree.c:464:20: note: initialize the variable 'type' to silence this warning
unsigned long type;
^
= 0
lib/maple_tree.c:5547:6: warning: no previous prototype for function 'mas_wr_store_setup' [-Wmissing-prototypes]
void mas_wr_store_setup(struct ma_wr_state *wr_mas)
^
lib/maple_tree.c:5547:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void mas_wr_store_setup(struct ma_wr_state *wr_mas)
^
static
lib/maple_tree.c:6175:5: warning: no previous prototype for function 'mtree_alloc_range' [-Wmissing-prototypes]
int mtree_alloc_range(struct maple_tree *mt, unsigned long *startp,
^
lib/maple_tree.c:6175:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int mtree_alloc_range(struct maple_tree *mt, unsigned long *startp,
^
static
lib/maple_tree.c:6210:5: warning: no previous prototype for function 'mtree_alloc_rrange' [-Wmissing-prototypes]
int mtree_alloc_rrange(struct maple_tree *mt, unsigned long *startp,
^
lib/maple_tree.c:6210:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int mtree_alloc_rrange(struct maple_tree *mt, unsigned long *startp,
^
static
lib/maple_tree.c:76:28: warning: unused variable 'mt_max' [-Wunused-const-variable]
static const unsigned long mt_max[] = {
^
lib/maple_tree.c:322:20: warning: unused function 'mte_set_full' [-Wunused-function]
static inline void mte_set_full(const struct maple_enode *node)
^
lib/maple_tree.c:327:20: warning: unused function 'mte_clear_full' [-Wunused-function]
static inline void mte_clear_full(const struct maple_enode *node)
^
lib/maple_tree.c:837:35: warning: unused function 'mas_get_slot' [-Wunused-function]
static inline struct maple_enode *mas_get_slot(struct ma_state *mas,
^
lib/maple_tree.c:4599:19: warning: unused function 'mas_dead_node' [-Wunused-function]
static inline int mas_dead_node(struct ma_state *mas, unsigned long index)
^
lib/maple_tree.c:4621:21: warning: unused function 'mas_first_entry' [-Wunused-function]
static inline void *mas_first_entry(struct ma_state *mas, struct maple_node *mn,
^
13 warnings generated.
vim +/shift +473 lib/maple_tree.c
448
449 /*
450 * mte_set_parent() - Set the parent node and encode the slot
451 * @enode: The encoded maple node.
452 * @parent: The encoded maple node that is the parent of @enode.
453 * @slot: The slot that @enode resides in @parent.
454 *
455 * Slot number is encoded in the enode->parent bit 3-6 or 2-6, depending on the
456 * parent type.
457 */
458 static inline
459 void mte_set_parent(struct maple_enode *enode, const struct maple_enode *parent,
460 unsigned char slot)
461 {
462 unsigned long val = (unsigned long) parent;
463 unsigned long shift;
464 unsigned long type;
465 enum maple_type p_type = mte_node_type(parent);
466
467 switch(p_type) {
468 case maple_range_64:
469 case maple_arange_64:
470 shift = MAPLE_PARENT_SLOT_SHIFT;
471 type = MAPLE_PARENT_RANGE64;
472 break;
> 473 case maple_dense:
474 case maple_leaf_64:
475 BUG_ON(1);
476 break;
477 }
478
479 val &= ~MAPLE_NODE_MASK; /* Clear all node metadata in parent */
> 480 val |= (slot << shift) | type;
481 mte_to_node(enode)->parent = ma_parent_ptr(val);
482 }
483
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [linux-next:master 8608/9128] lib/maple_tree.c:473:7: warning: variable 'shift' is used uninitialized whenever switch case is taken
2022-02-26 19:14 [linux-next:master 8608/9128] lib/maple_tree.c:473:7: warning: variable 'shift' is used uninitialized whenever switch case is taken kernel test robot
@ 2022-02-26 19:21 ` Liam Howlett
0 siblings, 0 replies; 2+ messages in thread
From: Liam Howlett @ 2022-02-26 19:21 UTC (permalink / raw)
To: kernel test robot
Cc: llvm, kbuild-all, Linux Memory Management List, Matthew Wilcox (Oracle)
* kernel test robot <lkp@intel.com> [220226 14:15]:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head: 06aeb1495c39c86ccfaf1adadc1d2200179f16eb
> commit: 564eadc47f5f72d5fc25b3740452e4fb61cf694e [8608/9128] Maple Tree: Add new data structure
> config: mips-buildonly-randconfig-r005-20220225 (https://download.01.org/0day-ci/archive/20220226/202202262240.NbkCh7vR-lkp@intel.com/config)
> compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project d271fc04d5b97b12e6b797c6067d3c96a8d7470e)
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # install mips cross compiling tool for clang build
> # apt-get install binutils-mips-linux-gnu
> # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=564eadc47f5f72d5fc25b3740452e4fb61cf694e
> git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
> git fetch --no-tags linux-next master
> git checkout 564eadc47f5f72d5fc25b3740452e4fb61cf694e
> # save the config file to linux build tree
> mkdir build_dir
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All warnings (new ones prefixed by >>):
>
> >> lib/maple_tree.c:473:7: warning: variable 'shift' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
> case maple_dense:
> ^~~~~~~~~~~
> lib/maple_tree.c:480:18: note: uninitialized use occurs here
> val |= (slot << shift) | type;
> ^~~~~
> lib/maple_tree.c:474:7: warning: variable 'shift' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
> case maple_leaf_64:
> ^~~~~~~~~~~~~
> lib/maple_tree.c:480:18: note: uninitialized use occurs here
> val |= (slot << shift) | type;
> ^~~~~
> lib/maple_tree.c:463:21: note: initialize the variable 'shift' to silence this warning
> unsigned long shift;
> ^
> = 0
> >> lib/maple_tree.c:473:7: warning: variable 'type' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
> case maple_dense:
> ^~~~~~~~~~~
> lib/maple_tree.c:480:27: note: uninitialized use occurs here
> val |= (slot << shift) | type;
> ^~~~
> lib/maple_tree.c:474:7: warning: variable 'type' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
> case maple_leaf_64:
> ^~~~~~~~~~~~~
> lib/maple_tree.c:480:27: note: uninitialized use occurs here
> val |= (slot << shift) | type;
> ^~~~
> lib/maple_tree.c:464:20: note: initialize the variable 'type' to silence this warning
> unsigned long type;
> ^
> = 0
> lib/maple_tree.c:5547:6: warning: no previous prototype for function 'mas_wr_store_setup' [-Wmissing-prototypes]
> void mas_wr_store_setup(struct ma_wr_state *wr_mas)
> ^
> lib/maple_tree.c:5547:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
> void mas_wr_store_setup(struct ma_wr_state *wr_mas)
> ^
> static
> lib/maple_tree.c:6175:5: warning: no previous prototype for function 'mtree_alloc_range' [-Wmissing-prototypes]
> int mtree_alloc_range(struct maple_tree *mt, unsigned long *startp,
> ^
> lib/maple_tree.c:6175:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
> int mtree_alloc_range(struct maple_tree *mt, unsigned long *startp,
> ^
> static
> lib/maple_tree.c:6210:5: warning: no previous prototype for function 'mtree_alloc_rrange' [-Wmissing-prototypes]
> int mtree_alloc_rrange(struct maple_tree *mt, unsigned long *startp,
> ^
> lib/maple_tree.c:6210:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
> int mtree_alloc_rrange(struct maple_tree *mt, unsigned long *startp,
> ^
> static
> lib/maple_tree.c:76:28: warning: unused variable 'mt_max' [-Wunused-const-variable]
> static const unsigned long mt_max[] = {
> ^
> lib/maple_tree.c:322:20: warning: unused function 'mte_set_full' [-Wunused-function]
> static inline void mte_set_full(const struct maple_enode *node)
> ^
> lib/maple_tree.c:327:20: warning: unused function 'mte_clear_full' [-Wunused-function]
> static inline void mte_clear_full(const struct maple_enode *node)
> ^
> lib/maple_tree.c:837:35: warning: unused function 'mas_get_slot' [-Wunused-function]
> static inline struct maple_enode *mas_get_slot(struct ma_state *mas,
> ^
> lib/maple_tree.c:4599:19: warning: unused function 'mas_dead_node' [-Wunused-function]
> static inline int mas_dead_node(struct ma_state *mas, unsigned long index)
> ^
> lib/maple_tree.c:4621:21: warning: unused function 'mas_first_entry' [-Wunused-function]
> static inline void *mas_first_entry(struct ma_state *mas, struct maple_node *mn,
> ^
> 13 warnings generated.
>
>
> vim +/shift +473 lib/maple_tree.c
>
> 448
> 449 /*
> 450 * mte_set_parent() - Set the parent node and encode the slot
> 451 * @enode: The encoded maple node.
> 452 * @parent: The encoded maple node that is the parent of @enode.
> 453 * @slot: The slot that @enode resides in @parent.
> 454 *
> 455 * Slot number is encoded in the enode->parent bit 3-6 or 2-6, depending on the
> 456 * parent type.
> 457 */
> 458 static inline
> 459 void mte_set_parent(struct maple_enode *enode, const struct maple_enode *parent,
> 460 unsigned char slot)
> 461 {
> 462 unsigned long val = (unsigned long) parent;
> 463 unsigned long shift;
> 464 unsigned long type;
> 465 enum maple_type p_type = mte_node_type(parent);
> 466
> 467 switch(p_type) {
> 468 case maple_range_64:
> 469 case maple_arange_64:
> 470 shift = MAPLE_PARENT_SLOT_SHIFT;
> 471 type = MAPLE_PARENT_RANGE64;
> 472 break;
> > 473 case maple_dense:
> 474 case maple_leaf_64:
> 475 BUG_ON(1);
> 476 break;
> 477 }
> 478
> 479 val &= ~MAPLE_NODE_MASK; /* Clear all node metadata in parent */
> > 480 val |= (slot << shift) | type;
> 481 mte_to_node(enode)->parent = ma_parent_ptr(val);
> 482 }
> 483
>
I had dropped the setting of shift = type = 0 in this case statement to
remove another warning of the code not being executed. It is obvious
that the shift and type will not be used in this case. I'll rework my
BUG_ON() checks outside the switch to satisfy the bot overlords.
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-02-26 19:22 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-26 19:14 [linux-next:master 8608/9128] lib/maple_tree.c:473:7: warning: variable 'shift' is used uninitialized whenever switch case is taken kernel test robot
2022-02-26 19:21 ` Liam Howlett
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox