projects
/
carl9170fw.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
carl9170 toolchain: update gcc to 11.1
[carl9170fw.git]
/
config
/
expr.c
diff --git
a/config/expr.c
b/config/expr.c
index 3ff8c92c86baf925f866db5b1307c0e53ba08628..81ebf8108ca748893d469c77af1eebf8ecbf7df2 100644
(file)
--- a/
config/expr.c
+++ b/
config/expr.c
@@
-3,6
+3,8
@@
* Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
*/
* Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
*/
+#include <ctype.h>
+#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@
-11,7
+13,6
@@
#define DEBUG_EXPR 0
#define DEBUG_EXPR 0
-static int expr_eq(struct expr *e1, struct expr *e2);
static struct expr *expr_eliminate_yn(struct expr *e);
struct expr *expr_alloc_symbol(struct symbol *sym)
static struct expr *expr_eliminate_yn(struct expr *e);
struct expr *expr_alloc_symbol(struct symbol *sym)
@@
-248,10
+249,17
@@
void expr_eliminate_eq(struct expr **ep1, struct expr **ep2)
* equals some operand in the other (operands do not need to appear in the same
* order), recursively.
*/
* equals some operand in the other (operands do not need to appear in the same
* order), recursively.
*/
-
static
int expr_eq(struct expr *e1, struct expr *e2)
+int expr_eq(struct expr *e1, struct expr *e2)
{
int res, old_count;
{
int res, old_count;
+ /*
+ * A NULL expr is taken to be yes, but there's also a different way to
+ * represent yes. expr_is_yes() checks for either representation.
+ */
+ if (!e1 || !e2)
+ return expr_is_yes(e1) && expr_is_yes(e2);
+
if (e1->type != e2->type)
return 0;
switch (e1->type) {
if (e1->type != e2->type)
return 0;
switch (e1->type) {