]> gcc.gnu.org Git - gcc.git/blobdiff - gcc/cp/cp-tree.h
cp-tree.h (popclass): Change declaration.
[gcc.git] / gcc / cp / cp-tree.h
index 6d0b2735bd23f138df3a88200ffcabd82aa25b89..0ec7f8e91a4a130f8215702cd1623dd23e712686 100644 (file)
@@ -33,7 +33,7 @@ Boston, MA 02111-1307, USA.  */
       TREE_INDIRECT_USING (in NAMESPACE_DECL).
       IDENTIFIER_MARKED (used by search routines).
       LOCAL_BINDING_P (in CPLUS_BINDING)
-   1:  IDENTIFIER_VIRTUAL_P.
+   1: IDENTIFIER_VIRTUAL_P.
       TI_PENDING_TEMPLATE_FLAG.
       TEMPLATE_PARMS_FOR_INLINE.
       DELETE_EXPR_USE_VEC (in DELETE_EXPR).
@@ -41,6 +41,7 @@ Boston, MA 02111-1307, USA.  */
       TYPE_USES_COMPLEX_INHERITANCE (in _TYPE).
       C_DECLARED_LABEL_FLAG.
       INHERITED_VALUE_BINDING_P (in CPLUS_BINDING)
+      BASELINK_P (in TREE_LIST)
    2: IDENTIFIER_OPNAME_P.
       BINFO_VBASE_MARKED.
       BINFO_FIELDS_MARKED.
@@ -191,6 +192,14 @@ struct tree_overload
   tree function;
 };
 
+/* A `baselink' is a TREE_LIST whose TREE_PURPOSE is a BINFO
+   indicating a particular base class, and whose TREE_VALUE is a
+   (possibly overloaded) function from that base class.  */
+#define BASELINK_P(NODE) \
+  (TREE_CODE ((NODE)) == TREE_LIST && TREE_LANG_FLAG_1 ((NODE)))
+#define SET_BASELINK_P(NODE) \
+  (TREE_LANG_FLAG_1 ((NODE)) = 1)
+
 #define WRAPPER_PTR(NODE) (((struct tree_wrapper*)NODE)->u.ptr)
 #define WRAPPER_INT(NODE) (((struct tree_wrapper*)NODE)->u.i)
 
@@ -727,11 +736,12 @@ struct lang_type
       unsigned non_aggregate : 1;
       unsigned is_partial_instantiation : 1;
       unsigned has_mutable : 1;
+      unsigned com_interface : 1;
 
       /* The MIPS compiler gets it wrong if this struct also
         does not fill out to a multiple of 4 bytes.  Add a
         member `dummy' with new bits if you go over the edge.  */
-      unsigned dummy : 11;
+      unsigned dummy : 10;
     } type_flags;
 
   int vsize;
@@ -1001,6 +1011,10 @@ struct lang_type
 #define CLASSTYPE_HAS_MUTABLE(NODE) (TYPE_LANG_SPECIFIC(NODE)->type_flags.has_mutable)
 #define TYPE_HAS_MUTABLE_P(NODE) (cp_has_mutable_p (NODE))
 
+/* Nonzero means that this type is meant for communication via COM.  */
+#define CLASSTYPE_COM_INTERFACE(NODE) \
+  (TYPE_LANG_SPECIFIC(NODE)->type_flags.com_interface)
+
 /* A list of class types of which this type is a friend.  The
    TREE_VALUE is normally a TYPE, but will be a TEMPLATE_DECL in the
    case of a template friend.  */
@@ -2622,6 +2636,8 @@ extern tree current_class_name;   /* IDENTIFIER_NODE: name of current class */
 #define COMPARE_REDECLARATION 4 /* The comparsion is being done when
                                   another declaration of an existing
                                   entity is seen.  */
+#define COMPARE_NO_ATTRIBUTES 8 /* The comparison should ignore
+                                  extra-linguistic type attributes.  */
 
 /* Used with push_overloaded_decl.  */
 #define PUSH_GLOBAL          0  /* Push the DECL into namespace scope,
@@ -2705,15 +2721,15 @@ extern int resolves_to_fixed_type_p             PROTO((tree, int *));
 extern void init_class_processing              PROTO((void));
 extern int is_empty_class                      PROTO((tree));
 extern void pushclass                          PROTO((tree, int));
-extern void popclass                           PROTO((int));
+extern void popclass                           PROTO((void));
 extern void push_nested_class                  PROTO((tree, int));
-extern void pop_nested_class                   PROTO((int));
+extern void pop_nested_class                   PROTO((void));
 extern void push_lang_context                  PROTO((tree));
 extern void pop_lang_context                   PROTO((void));
 extern tree instantiate_type                   PROTO((tree, tree, int));
 extern void print_class_statistics             PROTO((void));
 extern void maybe_push_cache_obstack           PROTO((void));
-extern unsigned HOST_WIDE_INT skip_rtti_stuff  PROTO((tree *));
+extern unsigned HOST_WIDE_INT skip_rtti_stuff  PROTO((tree *, tree));
 extern void build_self_reference               PROTO((void));
 extern void warn_hidden                                PROTO((tree));
 extern tree get_enclosing_class                        PROTO((tree));
@@ -2759,7 +2775,6 @@ extern void insert_block                  PROTO((tree));
 extern void add_block_current_level            PROTO((tree));
 extern void set_block                          PROTO((tree));
 extern void pushlevel_class                    PROTO((void));
-extern tree poplevel_class                     PROTO((int));
 extern void print_binding_stack                        PROTO((void));
 extern void print_binding_level                        PROTO((struct binding_level *));
 extern void push_namespace                     PROTO((tree));
@@ -2943,6 +2958,7 @@ extern void cp_pedwarn                            PVPROTO((const char *, ...));
 extern void cp_pedwarn_at                      PVPROTO((const char *, ...));
 extern void cp_compiler_error                  PVPROTO((const char *, ...));
 extern void cp_sprintf                         PVPROTO((const char *, ...));
+extern void cp_deprecated                       PROTO((const char*));
 
 /* in error.c */
 extern void init_error                         PROTO((void));
@@ -3356,6 +3372,7 @@ extern tree build_dummy_object                    PROTO((tree));
 extern tree maybe_dummy_object                 PROTO((tree, tree *));
 extern int is_dummy_object                     PROTO((tree));
 extern tree search_tree                         PROTO((tree, tree (*)(tree)));
+extern int cp_valid_lang_attribute             PROTO((tree, tree, tree, tree));
 
 #define scratchalloc expralloc
 #define scratch_tree_cons expr_tree_cons
This page took 0.033614 seconds and 5 git commands to generate.