kconfig: plug false-positive warning in get_prompt_str() seen with gcc-4.9
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
@@ -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;
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
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/ |
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.