diff options
Diffstat (limited to 'scripts/parse_kconfig/cnfbuild.c')
| -rw-r--r-- | scripts/parse_kconfig/cnfbuild.c | 33 | 
1 files changed, 17 insertions, 16 deletions
| diff --git a/scripts/parse_kconfig/cnfbuild.c b/scripts/parse_kconfig/cnfbuild.c index 398a934..26a9265 100644 --- a/scripts/parse_kconfig/cnfbuild.c +++ b/scripts/parse_kconfig/cnfbuild.c @@ -14,14 +14,10 @@ void cnf_or(struct symlist *sl, struct boolexpr *bl);  void cnf_not(struct symlist *sl, struct boolexpr *bl);  void cnf_boolexpr(struct symlist *sl, struct boolexpr *bl) { -    if (bl->type == BT_TRUE) { -        // Term is always true. No write required. +    if (bl->type == BT_TRUE || bl->type == BT_FALSE) +        return; +    if (bl->id != 0)          return; -    } else if (bl->type == BT_FALSE) { -        fprintf(stderr, -                "E: Trying to write false term. This shouldn't happen.\n"); -        exit(6); -    }      struct stck *stack = stack_create();      while (bl != NULL) { @@ -131,13 +127,18 @@ void cnf_or(struct symlist *sl, struct boolexpr *bl) {  void cnf_not(struct symlist *sl, struct boolexpr *bl) {      if (bl->id != 0)          return; -    bl->id = symlist_adddummy(sl); -    // bl->id <-> !bl->left->id -    // (bl->id || bl->left->id) && (!bl->id || !bl->left->id) -    output_rules_symbol((int) bl->id); -    output_rules_symbol((int) bl->left->id); -    output_rules_endterm(); -    output_rules_symbol(-(int) bl->id); -    output_rules_symbol(-(int) bl->left->id); -    output_rules_endterm(); +    bl->id = -1 * bl->left->id; +    /* +       bl->id = symlist_adddummy(sl); +       // bl->id <-> !bl->left->id +       // (bl->id || bl->left->id) && (!bl->id || !bl->left->id) +       output_rules_symbol((int) bl->id); +       output_rules_symbol((int) bl->left->id); +       output_rules_endterm(); +       output_rules_symbol(-(int) bl->id); +       output_rules_symbol(-(int) bl->left->id); +       output_rules_endterm(); +       output_rules_symbol((int) bl->id); +       output_rules_symbol((int) bl->left->id); +     */  } | 
