Skip to contentSkip to conversation

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

PATCH In review Konstantin Khlebnikov 4 participants 4 messages May 25, 2014 – Jun 23, 2014

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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

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;
                   ^
---
 scripts/kconfig/menu.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
scripts/kconfig/menu.c +1 -1
index 3ac2c9c..5cd0f5e 100644
@@ -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;
#1 lore raw
Quoted 4 lines · Konstantin Khlebnikov

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?

Signature · 1 line
 Kirill A. Shutemov
#2 lore raw
In reply to Konstantin Khlebnikov

Hello,

Quoted 7 lines · Konstantin Khlebnikov

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

Signature · 2 lines
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
#3 lore raw
Quoted 8 lines · Uwe Kleine-König
Quoted 7 lines

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;
                   ^
Quoted 6 lines

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.