diff options
Diffstat (limited to 'scripts/kconfig/symbol.c')
-rw-r--r-- | scripts/kconfig/symbol.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/scripts/kconfig/symbol.c b/scripts/kconfig/symbol.c index af6e9f3de950..a796c95fe8a0 100644 --- a/scripts/kconfig/symbol.c +++ b/scripts/kconfig/symbol.c | |||
@@ -351,12 +351,16 @@ void sym_calc_value(struct symbol *sym) | |||
351 | } | 351 | } |
352 | calc_newval: | 352 | calc_newval: |
353 | if (sym->dir_dep.tri == no && sym->rev_dep.tri != no) { | 353 | if (sym->dir_dep.tri == no && sym->rev_dep.tri != no) { |
354 | struct expr *e; | ||
355 | e = expr_simplify_unmet_dep(sym->rev_dep.expr, | ||
356 | sym->dir_dep.expr); | ||
354 | fprintf(stderr, "warning: ("); | 357 | fprintf(stderr, "warning: ("); |
355 | expr_fprint(sym->rev_dep.expr, stderr); | 358 | expr_fprint(e, stderr); |
356 | fprintf(stderr, ") selects %s which has unmet direct dependencies (", | 359 | fprintf(stderr, ") selects %s which has unmet direct dependencies (", |
357 | sym->name); | 360 | sym->name); |
358 | expr_fprint(sym->dir_dep.expr, stderr); | 361 | expr_fprint(sym->dir_dep.expr, stderr); |
359 | fprintf(stderr, ")\n"); | 362 | fprintf(stderr, ")\n"); |
363 | expr_free(e); | ||
360 | } | 364 | } |
361 | newval.tri = EXPR_OR(newval.tri, sym->rev_dep.tri); | 365 | newval.tri = EXPR_OR(newval.tri, sym->rev_dep.tri); |
362 | } | 366 | } |
@@ -686,7 +690,7 @@ const char *sym_get_string_default(struct symbol *sym) | |||
686 | switch (sym->type) { | 690 | switch (sym->type) { |
687 | case S_BOOLEAN: | 691 | case S_BOOLEAN: |
688 | case S_TRISTATE: | 692 | case S_TRISTATE: |
689 | /* The visibility imay limit the value from yes => mod */ | 693 | /* The visibility may limit the value from yes => mod */ |
690 | val = EXPR_AND(expr_calc_value(prop->expr), prop->visible.tri); | 694 | val = EXPR_AND(expr_calc_value(prop->expr), prop->visible.tri); |
691 | break; | 695 | break; |
692 | default: | 696 | default: |