diff mbox

kconfig: display recursive dependency resolution hint just once

Message ID 1513351722-14196-1-git-send-email-yamada.masahiro@socionext.com (mailing list archive)
State New, archived
Headers show

Commit Message

Masahiro Yamada Dec. 15, 2017, 3:28 p.m. UTC
Commit 1c199f2878f6 ("kbuild: document recursive dependency limitation
/ resolution") probably intended to show a hint along with "recursive
dependency detected!" error, but it missed to add {...} guard, and the
hint is displayed in every loop of the dep_stack traverse, annoyingly.

This error was detected by GCC's -Wmisleading-indentation when switching
to build-time generation of lexer/parser.

scripts/kconfig/symbol.c: In function ‘sym_check_print_recursive’:
scripts/kconfig/symbol.c:1150:3: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
   if (stack->sym == last_sym)
   ^~
scripts/kconfig/symbol.c:1153:4: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
    fprintf(stderr, "For a resolution refer to Documentation/kbuild/kconfig-language.txt\n");
    ^~~~~~~

I could simply add {...} to surround the three fprintf(), but I rather
chose to move the hint after the loop to make the whole message readable.

Fixes: 1c199f2878f6 ("kbuild: document recursive dependency limitation / resolution"
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

 scripts/kconfig/symbol.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

Comments

Luis Chamberlain Dec. 15, 2017, 5:28 p.m. UTC | #1
On Sat, Dec 16, 2017 at 12:28:42AM +0900, Masahiro Yamada wrote:
> Commit 1c199f2878f6 ("kbuild: document recursive dependency limitation
> / resolution") probably intended to show a hint along with "recursive
> dependency detected!" error, but it missed to add {...} guard, and the
> hint is displayed in every loop of the dep_stack traverse, annoyingly.
> 
> This error was detected by GCC's -Wmisleading-indentation when switching
> to build-time generation of lexer/parser.
> 
> scripts/kconfig/symbol.c: In function ‘sym_check_print_recursive’:
> scripts/kconfig/symbol.c:1150:3: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
>    if (stack->sym == last_sym)
>    ^~
> scripts/kconfig/symbol.c:1153:4: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
>     fprintf(stderr, "For a resolution refer to Documentation/kbuild/kconfig-language.txt\n");
>     ^~~~~~~
> 
> I could simply add {...} to surround the three fprintf(), but I rather
> chose to move the hint after the loop to make the whole message readable.
> 
> Fixes: 1c199f2878f6 ("kbuild: document recursive dependency limitation / resolution"
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

Acked-by: Luis R. Rodriguez <mcgrof@kernel.org>

  Luis
--
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
diff mbox

Patch

diff --git a/scripts/kconfig/symbol.c b/scripts/kconfig/symbol.c
index 3c8bd9b..35e0937 100644
--- a/scripts/kconfig/symbol.c
+++ b/scripts/kconfig/symbol.c
@@ -1150,8 +1150,7 @@  static void sym_check_print_recursive(struct symbol *last_sym)
 		if (stack->sym == last_sym)
 			fprintf(stderr, "%s:%d:error: recursive dependency detected!\n",
 				prop->file->name, prop->lineno);
-			fprintf(stderr, "For a resolution refer to Documentation/kbuild/kconfig-language.txt\n");
-			fprintf(stderr, "subsection \"Kconfig recursive dependency limitations\"\n");
+
 		if (stack->expr) {
 			fprintf(stderr, "%s:%d:\tsymbol %s %s value contains %s\n",
 				prop->file->name, prop->lineno,
@@ -1181,6 +1180,11 @@  static void sym_check_print_recursive(struct symbol *last_sym)
 		}
 	}
 
+	fprintf(stderr,
+		"For a resolution refer to Documentation/kbuild/kconfig-language.txt\n"
+		"subsection \"Kconfig recursive dependency limitations\"\n"
+		"\n");
+
 	if (check_top == &cv_stack)
 		dep_stack_remove();
 }