mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
kconfig: turn missing prompt for choice members into error
Choice members must have a prompt; hence make it an error. While I was here, I moved the check to the parser to slim down _menu_finalize(). Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
parent
8c00e58005
commit
700e7a8d05
|
|
@ -507,8 +507,6 @@ static void _menu_finalize(struct menu *parent, bool inside_choice)
|
|||
menu->sym && !sym_is_choice_value(menu->sym)) {
|
||||
current_entry = menu;
|
||||
menu->sym->flags |= SYMBOL_CHOICEVAL;
|
||||
if (!menu->prompt)
|
||||
menu_warn(menu, "choice value must have a prompt");
|
||||
for (prop = menu->sym->prop; prop; prop = prop->next) {
|
||||
if (prop->type == P_DEFAULT)
|
||||
prop_warn(prop, "defaults for choice "
|
||||
|
|
|
|||
|
|
@ -30,6 +30,8 @@ static bool zconf_endtoken(const char *tokenname,
|
|||
|
||||
struct menu *current_menu, *current_entry;
|
||||
|
||||
static bool inside_choice = false;
|
||||
|
||||
%}
|
||||
|
||||
%union
|
||||
|
|
@ -145,6 +147,14 @@ config_entry_start: T_CONFIG nonconst_symbol T_EOL
|
|||
|
||||
config_stmt: config_entry_start config_option_list
|
||||
{
|
||||
if (inside_choice) {
|
||||
if (!current_entry->prompt) {
|
||||
fprintf(stderr, "%s:%d: error: choice member must have a prompt\n",
|
||||
current_entry->filename, current_entry->lineno);
|
||||
yynerrs++;
|
||||
}
|
||||
}
|
||||
|
||||
printd(DEBUG_PARSE, "%s:%d:endconfig\n", cur_filename, cur_lineno);
|
||||
};
|
||||
|
||||
|
|
@ -237,10 +247,14 @@ choice_entry: choice choice_option_list
|
|||
}
|
||||
|
||||
$$ = menu_add_menu();
|
||||
|
||||
inside_choice = true;
|
||||
};
|
||||
|
||||
choice_end: end
|
||||
{
|
||||
inside_choice = false;
|
||||
|
||||
if (zconf_endtoken($1, "choice")) {
|
||||
menu_end_menu();
|
||||
printd(DEBUG_PARSE, "%s:%d:endchoice\n", cur_filename, cur_lineno);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user