]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/bitmap.h
gengtype-parse.c: New file.
[thirdparty/gcc.git] / gcc / bitmap.h
index 515527c08e8fcd0e7d3d96e1513f4bd000c546f1..9a33646ccb1156f62d38f3e7cac63bdc1b92e7d3 100644 (file)
@@ -70,29 +70,20 @@ typedef struct bitmap_element_def GTY(())
 } bitmap_element;
 
 struct bitmap_descriptor;
-/* Head of bitmap linked list.  
-   The gengtype doesn't cope with ifdefs inside the definition,
-   but for statistics we need bitmap descriptor pointer in.
-   Trick it by two copies of the definition.  This is safe
-   because the bitmap descriptor is not grabagecollected.  */
-#ifndef GATHER_STATISTICS
+/* Head of bitmap linked list.  gengtype ignores ifdefs, but for
+   statistics we need to add a bitmap descriptor pointer.  As it is
+   not collected, we can just GTY((skip)) it.   */
+
 typedef struct bitmap_head_def GTY(()) {
   bitmap_element *first;       /* First element in linked list.  */
   bitmap_element *current;     /* Last element looked at.  */
   unsigned int indx;           /* Index of last element looked at.  */
   bitmap_obstack *obstack;     /* Obstack to allocate elements from.
                                   If NULL, then use ggc_alloc.  */
-} bitmap_head;
-#else
-typedef struct bitmap_head_def {
-  bitmap_element *first;       /* First element in linked list.  */
-  bitmap_element *current;     /* Last element looked at.  */
-  unsigned int indx;           /* Index of last element looked at.  */
-  bitmap_obstack *obstack;     /* Obstack to allocate elements from.
-                                  If NULL, then use ggc_alloc.  */
-  struct bitmap_descriptor *desc;
-} bitmap_head;
+#ifndef GATHER_STATISTICS
+  struct bitmap_descriptor GTY((skip)) *desc;
 #endif
+} bitmap_head;
 
 /* Global data */
 extern bitmap_element bitmap_zero_bits;        /* Zero bitmap element */