util/lint: Allow non-option carrying named choices

named choices can be overridden with a default later-on:

choice FOO
  config A
  config B
  config C
endchoice

...

if BOARD_FOO
choice FOO
  default A
endchoice
endif

Reflect that.

Change-Id: I6662e19685f6ab0b84c78b30aedc266c0e176039
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/29813
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Martin Roth <martinroth@google.com>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Patrick Georgi 2018-11-23 15:55:56 +01:00 committed by Martin Roth
parent 0d866f8cd8
commit cbc5b99ac9
1 changed files with 6 additions and 2 deletions

View File

@ -530,6 +530,7 @@ sub build_and_parse_kconfig_tree {
my $inside_config = ""; # set to symbol name of the config section my $inside_config = ""; # set to symbol name of the config section
my @inside_menu = (); # stack of menu names my @inside_menu = (); # stack of menu names
my $inside_choice = ""; my $inside_choice = "";
my $choice_symbol = "";
my $configs_inside_choice; my $configs_inside_choice;
my %fileinfo; my %fileinfo;
@ -617,6 +618,7 @@ sub build_and_parse_kconfig_tree {
my $symbol = $1; my $symbol = $1;
add_symbol( $symbol, \@inside_menu, $filename, $line_no, \@inside_if ); add_symbol( $symbol, \@inside_menu, $filename, $line_no, \@inside_if );
handle_type( "bool", $symbol, $filename, $line_no ); handle_type( "bool", $symbol, $filename, $line_no );
$choice_symbol = $symbol;
} }
$inside_config = ""; $inside_config = "";
$inside_choice = "$filename $line_no"; $inside_choice = "$filename $line_no";
@ -633,10 +635,12 @@ sub build_and_parse_kconfig_tree {
} }
$inside_choice = ""; $inside_choice = "";
if ( $configs_inside_choice == 0 ) { if (( $configs_inside_choice == 0 ) &&
show_error("choice block has no symbols at $filename:$line_no."); ( $choice_symbol eq "" )) {
show_error("unnamed choice block has no symbols at $filename:$line_no.");
} }
$configs_inside_choice = 0; $configs_inside_choice = 0;
$choice_symbol="";
} }
# [optional] # [optional]