pr60092.c: Remove default dg-skip-if arguments.
[gcc.git] / gcc / gengtype.h
index f71ad97049dd84bd87461628457e1458b823cdad..345a545d294d355150ff980b987a628d035c0f23 100644 (file)
@@ -1,5 +1,5 @@
 /* Process source files and output type information.
-   Copyright (C) 2002-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002-2014 Free Software Foundation, Inc.
 
    This file is part of GCC.
 
@@ -291,6 +291,17 @@ struct type {
          field the original TYPE_LANG_STRUCT type.  This is a dirty
          trick, see the new_structure function for details.  */
       type_p lang_struct;
+
+      type_p base_class; /* the parent class, if any.  */
+
+      /* The following two fields are not serialized in state files, and
+        are instead reconstructed on load.  */
+
+      /* The head of a singly-linked list of immediate descendents in
+        the inheritance hierarchy.  */
+      type_p first_subclass;
+      /* The next in that list.  */
+      type_p next_sibling_class;
     } s;
 
     /* when TYPE_SCALAR: */
@@ -422,9 +433,10 @@ extern char *xasprintf (const char *, ...) ATTRIBUTE_PRINTF_1;
 extern void do_typedef (const char *s, type_p t, struct fileloc *pos);
 extern void do_scalar_typedef (const char *s, struct fileloc *pos);
 extern type_p resolve_typedef (const char *s, struct fileloc *pos);
+extern void add_subclass (type_p base, type_p subclass);
 extern type_p new_structure (const char *name, enum typekind kind,
                             struct fileloc *pos, pair_p fields,
-                            options_p o);
+                            options_p o, type_p base);
 type_p create_user_defined_type (const char *, struct fileloc *);
 extern type_p find_structure (const char *s, enum typekind kind);
 extern type_p create_scalar_type (const char *name);
@@ -504,4 +516,12 @@ void dbgprint_count_type_at (const char *, int, const char *, type_p);
 #define DBGPRINT_COUNT_TYPE(Msg,Ty) do{/*nodbgprint_count_type*/}while (0)
 #endif /*ENABLE_CHECKING */
 
+#define FOR_ALL_INHERITED_FIELDS(TYPE, FIELD_VAR) \
+  for (type_p sub = (TYPE); sub; sub = sub->u.s.base_class) \
+    for (FIELD_VAR = sub->u.s.fields; FIELD_VAR; FIELD_VAR = FIELD_VAR->next)
+
+extern bool
+opts_have (options_p opts, const char *str);
+
+
 #endif