diff mbox

kconfig: plug false-positive warning in get_prompt_str() seen with gcc-4.9

Message ID 20140525164751.28577.74072.stgit@zurg (mailing list archive)
State New, archived
Headers show

Commit Message

Konstantin Khlebnikov May 25, 2014, 4:47 p.m. UTC
scripts/kconfig/menu.c: In function ‘get_symbol_str’:
scripts/kconfig/menu.c:590:18: warning: ‘jump’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     jump->offset = strlen(r->s);
                  ^
scripts/kconfig/menu.c:551:19: note: ‘jump’ was declared here
  struct jump_key *jump;
                   ^

Signed-off-by: Konstantin Khlebnikov <koct9i@gmail.com>
---
 scripts/kconfig/menu.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Kirill A. Shutemov May 25, 2014, 11:18 p.m. UTC | #1
On Sun, May 25, 2014 at 08:47:51PM +0400, Konstantin Khlebnikov wrote:
> scripts/kconfig/menu.c: In function ‘get_symbol_str’:
> scripts/kconfig/menu.c:590:18: warning: ‘jump’ may be used uninitialized in this function [-Wmaybe-uninitialized]
>      jump->offset = strlen(r->s);
>                   ^

BTW, why do we need strlen() there? what's wrong with r->len?
Uwe Kleine-König June 23, 2014, 5:48 a.m. UTC | #2
Hello,

On Sun, May 25, 2014 at 08:47:51PM +0400, Konstantin Khlebnikov wrote:
> scripts/kconfig/menu.c: In function ‘get_symbol_str’:
> scripts/kconfig/menu.c:590:18: warning: ‘jump’ may be used uninitialized in this function [-Wmaybe-uninitialized]
>      jump->offset = strlen(r->s);
>                   ^
> scripts/kconfig/menu.c:551:19: note: ‘jump’ was declared here
>   struct jump_key *jump;
>                    ^

I'm seeing that problem with a 4.8.2 toolchain on next-20140623 with
ARCH=arm, too.

Maybe better use uninitialized_var? And point out the commit that
introduced the issue please.

Best regards
Uwe
David Rientjes June 23, 2014, 9:29 a.m. UTC | #3
On Mon, 23 Jun 2014, Uwe Kleine-König wrote:

> > scripts/kconfig/menu.c: In function ‘get_symbol_str’:
> > scripts/kconfig/menu.c:590:18: warning: ‘jump’ may be used uninitialized in this function [-Wmaybe-uninitialized]
> >      jump->offset = strlen(r->s);
> >                   ^
> > scripts/kconfig/menu.c:551:19: note: ‘jump’ was declared here
> >   struct jump_key *jump;
> >                    ^
> 
> I'm seeing that problem with a 4.8.2 toolchain on next-20140623 with
> ARCH=arm, too.
> 
> Maybe better use uninitialized_var? And point out the commit that
> introduced the issue please.
> 

If the compiler can't figure out if a variable is always intialized before 
its referenced, then it indicates the code is poorly written and isn't 
clear to the code reader either.  uninitialized_var() would be a lazy way 
to solve this particular issue.
diff mbox

Patch

diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
index 3ac2c9c..5cd0f5e 100644
--- a/scripts/kconfig/menu.c
+++ b/scripts/kconfig/menu.c
@@ -548,7 +548,7 @@  static void get_prompt_str(struct gstr *r, struct property *prop,
 {
 	int i, j;
 	struct menu *submenu[8], *menu, *location = NULL;
-	struct jump_key *jump;
+	struct jump_key *jump = NULL;
 
 	str_printf(r, _("Prompt: %s\n"), _(prop->text));
 	menu = prop->menu->parent;