From cbdb4ba2dcf013c9ee4b1f28182596ab9ae135c5 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Sun, 15 Jun 2003 13:36:07 +0000 Subject: [PATCH] * gencheck.c (main): Avoid generating duplicate macros. From-SVN: r67974 --- gcc/ChangeLog | 2 ++ gcc/gencheck.c | 14 +++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 74fad5bc6cf..79f01d31b00 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -15,6 +15,8 @@ 2003-06-15 Richard Kenner + * gencheck.c (main): Avoid generating duplicate macros. + * Makefile.in (stagefeedback-start): Use $(SUBDIRS) instead of knowing names of language subdirectories. diff --git a/gcc/gencheck.c b/gcc/gencheck.c index fd037bdd7f5..aedd4965530 100644 --- a/gcc/gencheck.c +++ b/gcc/gencheck.c @@ -44,7 +44,7 @@ usage (void) int main (int argc, char **argv ATTRIBUTE_UNUSED) { - int i; + int i, j; switch (argc) { @@ -60,10 +60,18 @@ main (int argc, char **argv ATTRIBUTE_UNUSED) puts ("#ifndef GCC_TREE_CHECK_H"); puts ("#define GCC_TREE_CHECK_H\n"); + /* Print macros for checks based on each of the tree code names. However, + since we include the tree nodes from all languages, we must check + for duplicate names to avoid defining the same macro twice. */ for (i = 0; tree_codes[i]; i++) { - printf ("#define %s_CHECK(t)\tTREE_CHECK (t, %s)\n", - tree_codes[i], tree_codes[i]); + for (j = 0; j < i; j++) + if (strcmp (tree_codes[i], tree_codes[j]) == 0) + break; + + if (i == j) + printf ("#define %s_CHECK(t)\tTREE_CHECK (t, %s)\n", + tree_codes[i], tree_codes[i]); } puts ("\n#endif /* GCC_TREE_CHECK_H */");