diff options
Diffstat (limited to 'scripts/kconfig/menu.c')
-rw-r--r-- | scripts/kconfig/menu.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c index 5f77dcb8977e..5fdf10dc1d8a 100644 --- a/scripts/kconfig/menu.c +++ b/scripts/kconfig/menu.c | |||
@@ -203,7 +203,7 @@ void menu_add_option(int token, char *arg) | |||
203 | } | 203 | } |
204 | } | 204 | } |
205 | 205 | ||
206 | static int menu_range_valid_sym(struct symbol *sym, struct symbol *sym2) | 206 | static int menu_validate_number(struct symbol *sym, struct symbol *sym2) |
207 | { | 207 | { |
208 | return sym2->type == S_INT || sym2->type == S_HEX || | 208 | return sym2->type == S_INT || sym2->type == S_HEX || |
209 | (sym2->type == S_UNKNOWN && sym_string_valid(sym, sym2->name)); | 209 | (sym2->type == S_UNKNOWN && sym_string_valid(sym, sym2->name)); |
@@ -221,6 +221,15 @@ static void sym_check_prop(struct symbol *sym) | |||
221 | prop_warn(prop, | 221 | prop_warn(prop, |
222 | "default for config symbol '%s'" | 222 | "default for config symbol '%s'" |
223 | " must be a single symbol", sym->name); | 223 | " must be a single symbol", sym->name); |
224 | if (prop->expr->type != E_SYMBOL) | ||
225 | break; | ||
226 | sym2 = prop_get_symbol(prop); | ||
227 | if (sym->type == S_HEX || sym->type == S_INT) { | ||
228 | if (!menu_validate_number(sym, sym2)) | ||
229 | prop_warn(prop, | ||
230 | "'%s': number is invalid", | ||
231 | sym->name); | ||
232 | } | ||
224 | break; | 233 | break; |
225 | case P_SELECT: | 234 | case P_SELECT: |
226 | sym2 = prop_get_symbol(prop); | 235 | sym2 = prop_get_symbol(prop); |
@@ -240,8 +249,8 @@ static void sym_check_prop(struct symbol *sym) | |||
240 | if (sym->type != S_INT && sym->type != S_HEX) | 249 | if (sym->type != S_INT && sym->type != S_HEX) |
241 | prop_warn(prop, "range is only allowed " | 250 | prop_warn(prop, "range is only allowed " |
242 | "for int or hex symbols"); | 251 | "for int or hex symbols"); |
243 | if (!menu_range_valid_sym(sym, prop->expr->left.sym) || | 252 | if (!menu_validate_number(sym, prop->expr->left.sym) || |
244 | !menu_range_valid_sym(sym, prop->expr->right.sym)) | 253 | !menu_validate_number(sym, prop->expr->right.sym)) |
245 | prop_warn(prop, "range is invalid"); | 254 | prop_warn(prop, "range is invalid"); |
246 | break; | 255 | break; |
247 | default: | 256 | default: |