[PATCH] kconfig: check prompt for choice while parsing

From: Masahiro Yamada
Date: Sun Mar 10 2024 - 09:45:31 EST


This can be checked on-the-fly.

Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
---

scripts/kconfig/menu.c | 3 ---
scripts/kconfig/parser.y | 6 ++++++
2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
index 840ce642ec43..8498481e6afe 100644
--- a/scripts/kconfig/menu.c
+++ b/scripts/kconfig/menu.c
@@ -561,9 +561,6 @@ void menu_finalize(struct menu *parent)
if (sym->type == S_UNKNOWN)
menu_warn(parent, "config symbol defined without type");

- if (sym_is_choice(sym) && !parent->prompt)
- menu_warn(parent, "choice must have a prompt");
-
/* Check properties connected to this symbol */
sym_check_prop(sym);
sym->flags |= SYMBOL_WARNED;
diff --git a/scripts/kconfig/parser.y b/scripts/kconfig/parser.y
index 22f616334585..b45bfaf0a02b 100644
--- a/scripts/kconfig/parser.y
+++ b/scripts/kconfig/parser.y
@@ -233,6 +233,12 @@ choice: T_CHOICE T_EOL

choice_entry: choice choice_option_list
{
+ if (!current_entry->prompt) {
+ fprintf(stderr, "%s:%d: error: choice must have a prompt\n",
+ current_entry->filename, current_entry->lineno);
+ yynerrs++;
+ }
+
$$ = menu_add_menu();
};

--
2.40.1