erofs: suppress false positive last_block warning
authorGao Xiang <hsiangkao@redhat.com>
Thu, 28 May 2020 08:48:44 +0000 (04:48 -0400)
committerGao Xiang <hsiangkao@redhat.com>
Fri, 29 May 2020 10:58:13 +0000 (18:58 +0800)
As Andrew mentioned, some rare specific gcc versions could report
last_block uninitialized warning. Actually last_block doesn't need
to be uninitialized first from its implementation due to bio == NULL
condition. After a bio is allocated, last_block will be assigned
then.

The detailed analysis is in this thread [1]. So let's silence those
confusing gccs simply.

[1] https://lore.kernel.org/r/20200421072839.GA13867@hsiangkao-HP-ZHAN-66-Pro-G1

Cc: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Link: https://lore.kernel.org/r/20200528084844.23359-1-hsiangkao@redhat.com
Signed-off-by: Gao Xiang <hsiangkao@redhat.com>
fs/erofs/data.c

index fc3a8d8..2812645 100644 (file)
@@ -265,7 +265,7 @@ submit_bio_out:
  */
 static int erofs_raw_access_readpage(struct file *file, struct page *page)
 {
-       erofs_off_t last_block;
+       erofs_off_t uninitialized_var(last_block);
        struct bio *bio;
 
        trace_erofs_readpage(page, true);
@@ -285,7 +285,7 @@ static int erofs_raw_access_readpages(struct file *filp,
                                      struct list_head *pages,
                                      unsigned int nr_pages)
 {
-       erofs_off_t last_block;
+       erofs_off_t uninitialized_var(last_block);
        struct bio *bio = NULL;
        gfp_t gfp = readahead_gfp_mask(mapping);
        struct page *page = list_last_entry(pages, struct page, lru);