OSDN Git Service

* gencheck.c (main): Avoid generating duplicate macros.
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 15 Jun 2003 13:36:07 +0000 (13:36 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 15 Jun 2003 13:36:07 +0000 (13:36 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@67974 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/gencheck.c

index 74fad5b..79f01d3 100644 (file)
@@ -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.
 
index fd037bd..aedd496 100644 (file)
@@ -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 */");