From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Mon, 30 Nov 2015 11:03:53 +0100 Subject: [U-Boot] [PATCH] arm, ubifs: fix gcc5.x compiler warning In-Reply-To: <565C14E9.2000105@myspectrum.nl> References: <1448869662-23191-1-git-send-email-hs@denx.de> <565C14E9.2000105@myspectrum.nl> Message-ID: <565C1F09.4090100@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Jeroen, Am 30.11.2015 um 10:20 schrieb Jeroen Hofstee: > Hello Heiko, > > On 30-11-15 08:47, Heiko Schocher wrote: >> compiling U-Boot for openrd_base_defconfig with >> gcc 5.x shows the following warning: >> >> CC fs/ubifs/super.o >> In file included from fs/ubifs/ubifs.h:35:0, >> from fs/ubifs/super.c:37: >> fs/ubifs/super.c: In function 'atomic_inc': >> ./arch/arm/include/asm/atomic.h:55:2: warning: 'flags' is used uninitialized in this function >> [-Wuninitialized] >> local_irq_save(flags); >> ^ >> fs/ubifs/super.c: In function 'atomic_dec': >> ./arch/arm/include/asm/atomic.h:64:2: warning: 'flags' is used uninitialized in this function >> [-Wuninitialized] >> local_irq_save(flags); >> ^ >> CC fs/ubifs/sb.o >> [...] >> CC fs/ubifs/lpt.o >> In file included from include/linux/bitops.h:123:0, >> from include/common.h:20, >> from include/ubi_uboot.h:17, >> from fs/ubifs/ubifs.h:37, >> from fs/ubifs/lpt.c:35: >> fs/ubifs/lpt.c: In function 'test_and_set_bit': >> ./arch/arm/include/asm/bitops.h:57:2: warning: 'flags' is used uninitialized in this function >> [-Wuninitialized] >> local_irq_save(flags); >> ^ >> CC fs/ubifs/lpt_commit.o >> In file included from include/linux/bitops.h:123:0, >> from include/common.h:20, >> from include/ubi_uboot.h:17, >> from fs/ubifs/ubifs.h:37, >> from fs/ubifs/lpt_commit.c:26: >> fs/ubifs/lpt_commit.c: In function 'test_and_set_bit': >> ./arch/arm/include/asm/bitops.h:57:2: warning: 'flags' is used uninitialized in this function >> [-Wuninitialized] >> local_irq_save(flags); >> ^ >> CC fs/ubifs/scan.o >> CC fs/ubifs/lprops.o >> CC fs/ubifs/tnc.o >> In file included from include/linux/bitops.h:123:0, >> from include/common.h:20, >> from include/ubi_uboot.h:17, >> from fs/ubifs/ubifs.h:37, >> from fs/ubifs/tnc.c:30: >> fs/ubifs/tnc.c: In function 'test_and_set_bit': >> ./arch/arm/include/asm/bitops.h:57:2: warning: 'flags' is used uninitialized in this function >> [-Wuninitialized] >> local_irq_save(flags); >> ^ >> CC fs/ubifs/tnc_misc.o >> >> Fix it. >> >> Signed-off-by: Heiko Schocher >> --- >> >> arch/arm/include/asm/atomic.h | 14 +++++++------- >> arch/arm/include/asm/bitops.h | 4 ++-- >> 2 files changed, 9 insertions(+), 9 deletions(-) >> >> diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h >> index 34c07fe..9b79506 100644 >> --- a/arch/arm/include/asm/atomic.h >> +++ b/arch/arm/include/asm/atomic.h >> @@ -32,7 +32,7 @@ typedef struct { volatile int counter; } atomic_t; >> static inline void atomic_add(int i, volatile atomic_t *v) >> { >> - unsigned long flags; >> + unsigned long flags = 0; >> local_irq_save(flags); >> v->counter += i; >> @@ -41,7 +41,7 @@ static inline void atomic_add(int i, volatile atomic_t *v) > > Since flags is an "out" argument, something else must be wrong. > There should be no need to initialize it, since local_irq_save should > do that afaik. yes, you are right, it should be, but gcc 5.x seems to have problems with it ... compiled code size for the openrd_base config is same with my patch ... Hmm... for the openrd_base compile local_irq_save() is used from: arch/arm/thumb1/include/asm/proc-armv/system.h with: static inline void local_irq_save( unsigned long flags __attribute__((unused))) { __asm__ __volatile__ ("" : : : "memory"); } flasg marked as unused ... seems correct to me, but I have no idea, why gcc 5.x prints a warning ... any ideas? bye, Heiko -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany