diff options
author | Martin Roth <martinroth@google.com> | 2017-03-24 08:51:51 -0600 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2017-03-27 05:53:57 +0200 |
commit | aa206478cbf1aff3ec574f5b91f2f24e96a56fee (patch) | |
tree | 5b8898d66720b2a341fdc53ac466ab0cd89a6241 | |
parent | 5029a1668e0ca99ac64210967e22c971b0395efa (diff) |
util/lint: Show an error if a symbol is created in two choice blocks
Kconfig shows a warning about this, but we want to catch it earlier
and halt the build.
Change-Id: I0acce1d40a6ca2b212c638bdb1ec65de5bd4d726
Signed-off-by: Martin Roth <martinroth@google.com>
Reviewed-on: https://review.coreboot.org/18970
Tested-by: build bot (Jenkins)
Reviewed-by: Subrata Banik <subrata.banik@intel.com>
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
-rwxr-xr-x | util/lint/kconfig_lint | 4 | ||||
-rw-r--r-- | util/lint/kconfig_lint_README | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/util/lint/kconfig_lint b/util/lint/kconfig_lint index bbf3e38142..c9ccfb970e 100755 --- a/util/lint/kconfig_lint +++ b/util/lint/kconfig_lint @@ -788,6 +788,10 @@ sub add_symbol { show_error( "$symbol entry at $filename:$line_no has already been created outside a choice block " . "at $symbols{$symbol}{0}{file}:$symbols{$symbol}{0}{line_no}." ); } + elsif ( $inside_choice && $symbols{$symbol}{choice} ) { + show_error( "$symbol entry at $filename:$line_no has already been created inside another choice block " + . "at $symbols{$symbol}{0}{file}:$symbols{$symbol}{0}{line_no}." ); + } } # add the location of this instance diff --git a/util/lint/kconfig_lint_README b/util/lint/kconfig_lint_README index c36320edb2..5bd2bdd2c1 100644 --- a/util/lint/kconfig_lint_README +++ b/util/lint/kconfig_lint_README @@ -68,7 +68,8 @@ Errors in Kconfig files: - Choice block defined with no symbols. - The 'tristate' type is not used in coreboot. - A 'select' keyword used outside of a config block. -- Symbols created both inside and outside of a choice block. +- Symbols created both inside and outside of a choice block or in two + different choice blocks. - A 'range' keyword has higher minimum than maximum value. - A config block with a prompt at the top level (the top level is currently just for menus). |