Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752962Ab3ISUEh (ORCPT ); Thu, 19 Sep 2013 16:04:37 -0400 Received: from mail-wg0-f44.google.com ([74.125.82.44]:63294 "EHLO mail-wg0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752628Ab3ISUEf convert rfc822-to-8bit (ORCPT ); Thu, 19 Sep 2013 16:04:35 -0400 Date: Thu, 19 Sep 2013 22:04:30 +0200 From: "Yann E. MORIN" To: Benjamin Poirier Cc: Madhavan Srinivasan , mmarek@suse.cz, linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH]kconfig/menu.c: fix uninitialized variable warning Message-ID: <20130919200430.GC3317@free.fr> References: <1379575697-6740-1-git-send-email-maddy@linux.vnet.ibm.com> <20130919152227.GB19364@d2.synalogic.ca> <20130919172751.GA3317@free.fr> <20130919191315.GA19703@d2.synalogic.ca> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8BIT In-Reply-To: <20130919191315.GA19703@d2.synalogic.ca> User-Agent: Mutt/1.5.21 (2012-12-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3078 Lines: 76 Benjamin, All, On 2013-09-19 15:13 -0400, Benjamin Poirier spake thusly: > On 2013/09/19 19:27, Yann E. MORIN wrote: > > Benjamin, Madhavan, All, > > > > On 2013-09-19 11:22 -0400, Benjamin Poirier spake thusly: > > > On 2013/09/19 12:58, Madhavan Srinivasan wrote: > > > > In file included from scripts/kconfig/zconf.tab.c:2537:0: > > > > scripts/kconfig/menu.c: In function ‘get_symbol_str’: > > > > scripts/kconfig/menu.c:586:18: warning: ‘jump’ may be used uninitialized in > > > > this function [-Wmaybe-uninitialized] > > > ^^^^^ > > > > > > from gcc(1): > > > "These warnings are made optional because GCC is not smart > > > enough to see all the reasons why the code might be correct > > > despite appearing to have an error." > > > > > > I do not see this warning with gcc 4.7.2 or 4.8.1. Which version are you > > > using? > > > > > > The code does: > > > > > > static void get_prompt_str(struct gstr *r, struct property *prop, > > > [...] > > > if (head && location) { > > > jump = xmalloc(sizeof(struct jump_key)); > > > [... different basic block ...] > > > if (head && location && menu == location) > > > jump->offset = r->len - 1; > > > > > > If the second "if" is true, then the first one was true as well, and > > > "jump" is initilized. > > > > Exactly what I was going to say. > > > > However: > > - I believe we should strive for a warning-free code whenever possible > > - while still getting help from gcc to pinpoint potential issues. > > > > Clearly, gcc is wrong here. Setting jump to NULL will cause fault if we > > try to dereference it. Since this should never happen given the code as > > it currently is, I'm slightly in favour of acking this patch. > > > > Any other reason not to apply it? > > Did you manage to get that warning as well? I didn't. If it's only from > old versions of gcc I'd feel better leaving the warning there than > masking it, in case a future code change does really introduce a use > before initialize. No, I was not able to reproduce it with either gcc-4.4.7, gcc-4.6.4 or gcc-4.7.3 on my Ubuntu 13.04. Neither gcc-4.5 nor 4.8 are packaged, so I could not test them. Anyway, -Wmaybe-uninitialized is new with 4.7. So, the warning can't happen with gcc < 4.7. Madhavan, what gcc version are you using? Regards, Yann E. MORIN. -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/