Subject: linux-next: build warnings after merge of the btrfs tree

From: Stephen Rothwell <[email-masked]>
Date: Tue, 12 Sep 2023 10:46:46 +1000

Hi all,

After merging the btrfs tree, today's linux-next build (powerpc
ppc64_defconfig) produced these warnings:

In file included from include/linux/swab.h:5,
                 from include/uapi/linux/byteorder/big_endian.h:14,
                 from include/linux/byteorder/big_endian.h:5,
                 from arch/powerpc/include/uapi/asm/byteorder.h:14,
                 from include/asm-generic/bitops/le.h:6,
                 from arch/powerpc/include/asm/bitops.h:336,
                 from include/linux/bitops.h:68,
                 from fs/btrfs/extent_io.c:3:
In function 'btrfs_disk_key_to_cpu',
    inlined from 'btrfs_item_key_to_cpu' at fs/btrfs/accessors.h:648:2,
    inlined from 'fiemap_find_last_extent_offset' at fs/btrfs/extent_io.c:2804:2,
    inlined from 'extent_fiemap' at fs/btrfs/extent_io.c:2879:8:
include/uapi/linux/swab.h:128:28: warning: 'disk_key.objectid' may be used uninitialized [-Wmaybe-uninitialized]
  128 | #define __swab64(x) (__u64)__builtin_bswap64((__u64)(x))
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/uapi/linux/byteorder/big_endian.h:33:26: note: in expansion of macro '__swab64'
   33 | #define __le64_to_cpu(x) __swab64((__force __u64)(__le64)(x))
      |                          ^~~~~~~~
include/linux/byteorder/generic.h:87:21: note: in expansion of macro '__le64_to_cpu'
   87 | #define le64_to_cpu __le64_to_cpu
      |                     ^~~~~~~~~~~~~
fs/btrfs/accessors.h:622:25: note: in expansion of macro 'le64_to_cpu'
  622 |         cpu->objectid = le64_to_cpu(disk->objectid);
      |                         ^~~~~~~~~~~
In file included from fs/btrfs/extent_io.c:34:
fs/btrfs/accessors.h: In function 'extent_fiemap':
fs/btrfs/accessors.h:645:31: note: 'disk_key.objectid' was declared here
  645 |         struct btrfs_disk_key disk_key;
      |                               ^~~~~~~~
In function 'fiemap_find_last_extent_offset',
    inlined from 'extent_fiemap' at fs/btrfs/extent_io.c:2879:8:
fs/btrfs/extent_io.c:2805:33: warning: 'disk_key.type' may be used uninitialized [-Wmaybe-uninitialized]
 2805 |         if (key.objectid != ino || key.type != BTRFS_EXTENT_DATA_KEY) {
fs/btrfs/accessors.h: In function 'extent_fiemap':
fs/btrfs/accessors.h:645:31: note: 'disk_key.type' was declared here
  645 |         struct btrfs_disk_key disk_key;
      |                               ^~~~~~~~

I don't really have any idea what caused this (it *may* have been my
change from gcc v12 to v13?).

-- 
Cheers,
Stephen Rothwell