[U-Boot] [PATCH] ext2fs: fix warning: 'blocknxt' may be used uninitialized with gcc 4.2

Tom Rini trini at ti.com
Tue Aug 7 18:58:34 CEST 2012


The above warning was introduced originally in 436da3c "ext2load:
increase read speed" and fixed for newer toolchains in b803273 "ext2fs:
fix warning: 'blocknxt' may be used uninitialized".  This change did not
fix the warning with gcc 4.2, as found in ELDK 4.2.

If we rework the while loop to initalize blocknxt before entering the
warning really goes away.  Tested on am335x with an approx 7mb file and
crc32 in U-Boot befor and after this change.

Cc: Wolfgang Denk <wd at denx.de>
Cc: Eric Nelson <eric.nelson at boundarydevices.com>
Cc: Thierry Reding <thierry.reding at avionic-design.de>
Cc: Jason Cooper <u-boot at lakedaemon.net>
Cc: Andreas Bießmann <andreas.devel at googlemail.com>
Cc: Reinhard Arlt <reinhard.arlt at esd-electronics.com>
Cc: Kim Phillips <kim.phillips at freescale.com>
Signed-off-by: Tom Rini <trini at ti.com>
---
 fs/ext2/ext2fs.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/ext2/ext2fs.c b/fs/ext2/ext2fs.c
index 182f0ac..418404e 100644
--- a/fs/ext2/ext2fs.c
+++ b/fs/ext2/ext2fs.c
@@ -440,9 +440,8 @@ int ext2fs_read_file
 		/* grab middle blocks in one go */
 		if (i != pos / blocksize && i < blockcnt - 1 && blockcnt > 3) {
 			int oldblk = blknr;
-			int blocknxt;
+			int blocknxt = ext2fs_read_block(node, i + 1);
 			while (i < blockcnt - 1) {
-				blocknxt = ext2fs_read_block(node, i + 1);
 				if (blocknxt == (oldblk + 1)) {
 					oldblk = blocknxt;
 					i++;
@@ -450,6 +449,7 @@ int ext2fs_read_file
 					blocknxt = ext2fs_read_block(node, i);
 					break;
 				}
+				blocknxt = ext2fs_read_block(node, i);
 			}
 
 			if (oldblk == blknr)
-- 
1.7.9.5



More information about the U-Boot mailing list