From: Liam Howlett <liam.howlett@oracle.com>
To: kernel test robot <lkp@intel.com>
Cc: "llvm@lists.linux.dev" <llvm@lists.linux.dev>,
"kbuild-all@lists.01.org" <kbuild-all@lists.01.org>,
Linux Memory Management List <linux-mm@kvack.org>,
"Matthew Wilcox (Oracle)" <willy@infradead.org>
Subject: Re: [linux-next:master 8608/9128] lib/maple_tree.c:473:7: warning: variable 'shift' is used uninitialized whenever switch case is taken
Date: Sat, 26 Feb 2022 19:21:37 +0000 [thread overview]
Message-ID: <20220226192126.h2yjv5gjy3ytmaf3@revolver> (raw)
In-Reply-To: <202202262240.NbkCh7vR-lkp@intel.com>
* 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
prev parent reply other threads:[~2022-02-26 19:22 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-26 19:14 kernel test robot
2022-02-26 19:21 ` Liam Howlett [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220226192126.h2yjv5gjy3ytmaf3@revolver \
--to=liam.howlett@oracle.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-mm@kvack.org \
--cc=lkp@intel.com \
--cc=llvm@lists.linux.dev \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox