diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-06-15 13:36:07 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-06-15 13:36:07 +0000 |
commit | e2ee731bf11cf905827479625d69351f71201055 (patch) | |
tree | 8dc04abc6c35d920aca6b99fee3c42ba914df9c8 | |
parent | 839151adeebaaf0dd12395ad390eb2dbcd955879 (diff) | |
download | gcc-e2ee731bf11cf905827479625d69351f71201055.tar.gz |
* gencheck.c (main): Avoid generating duplicate macros.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@67974 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 2 | ||||
-rw-r--r-- | 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 <kenner@vlsi1.ultra.nyu.edu> + * 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 */"); |