Message ID | 20140525164751.28577.74072.stgit@zurg (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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?
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
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 --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;
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