[PATCH] Add tree and rtl accessor functions for debuggers

Ira Ruben ira@apple.com
Thu May 10 10:12:00 GMT 2001


Below is a patch to add a new configuration option, --enable-idebug.
With this set two additional files become part of the cc1 and cc1plus
link; idebug.c and cp/idebug.c.  These files define most of the
tree and rtl accessor macros as functions which have the same name
and arguments as their corresponding macros (the functions are
defined in terms of their macros).  Doing this allows debuggers
like gdb to use them like the source uses the macros. This makes
debugging the tree and rtl references easier.

Note, that the following patch adds file cp-idebug.c to the gcc
directory.  It needs to be "manually" moved to the gcc/cp
directory.

                          ------------------

2001-05-04  Ira Ruben	<ira@apple.com>

	Add debugger support for tree and rtl accessor macros.  This
	allows these macro accessor macros to be used as functions
	from a debugger like gdb.
	* configure.in: Add --enable-idebug.
	* cp/Make-lang.in (CXX_OBJS): Add cp/cp-idebug.o target.
	* Makefile.in (C_AND_OBJC_OBJS): Add idebug.o target.
	* idebug.c: New file of C tree & rtl accessor functions.
	* cp/cp-idebug.c: New file of C++ tree & rtl accessor functions.

Index: Makefile.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Makefile.in,v
retrieving revision 1.658
diff -c -3 -p -r1.658 Makefile.in
*** Makefile.in	2001/05/09 14:16:45	1.658
--- Makefile.in	2001/05/09 23:40:18
*************** CXX_TARGET_OBJS=@cxx_target_objs@
*** 725,731 ****
   # Language-specific object files for C and Objective C.
   C_AND_OBJC_OBJS = c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o \
     c-convert.o c-aux-info.o c-common.o c-format.o c-semantics.o c-dump.o \
!   libcpp.a $(C_TARGET_OBJS)

   # Language-specific object files for C.
   C_OBJS = c-parse.o c-lang.o $(C_AND_OBJC_OBJS)
--- 725,732 ----
   # Language-specific object files for C and Objective C.
   C_AND_OBJC_OBJS = c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o \
     c-convert.o c-aux-info.o c-common.o c-format.o c-semantics.o c-dump.o \
!   libcpp.a $(C_TARGET_OBJS) \
!   idebug.o

   # Language-specific object files for C.
   C_OBJS = c-parse.o c-lang.o $(C_AND_OBJC_OBJS)
*************** ifcvt.o : ifcvt.c $(CONFIG_H) $(SYSTEM_H
*** 1575,1580 ****
--- 1576,1582 ----
   dependence.o : dependence.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) \
      $(C_COMMON_H) flags.h varray.h $(EXPR_H)
   params.o : params.c $(CONFIG_H) $(SYSTEM_H) params.h toplev.h
+ idebug.o : idebug.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h $(C_COMMON_H)

   $(out_object_file): $(out_file) $(CONFIG_H) $(TREE_H) $(GGC_H) \
      $(RTL_H) $(REGS_H) hard-reg-set.h real.h insn-config.h conditions.h \
Index: configure.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/configure.in,v
retrieving revision 1.520
diff -c -3 -p -r1.520 configure.in
*** configure.in	2001/05/01 17:45:02	1.520
--- configure.in	2001/05/09 23:40:19
*************** AC_ARG_ENABLE(sjlj-exceptions,
*** 1743,1748 ****
--- 1743,1763 ----
   AC_DEFINE_UNQUOTED(CONFIG_SJLJ_EXCEPTIONS, $sjlj,
     [Define 0/1 to force the choice for exception handling model.])])

+ # Disable ENABLE_IDEBUG support by default
+ AC_ARG_ENABLE(idebug,
+   [  --enable-idebug            Define functions for most tree and 
rtl accessors
+                                 for use with debugger.],
+   , enable_idebug=)
+ AC_MSG_CHECKING([whether debugging functions for tree and rtl nodes 
requested])
+ if test x${enable_idebug} = xyes; then
+ cat >> confdefs.h <<EOF
+ EOF
+   AC_MSG_RESULT(yes)
+   AC_DEFINE(ENABLE_IDEBUG, 1, [Define if you want tree and rtl 
debugger function accessors.])
+ else
+   AC_MSG_RESULT(no)
+ fi
+
   # Make empty files to contain the specs and options for each language.
   # Then add #include lines to for a compiler that has specs and/or options.

Index: cp/Make-lang.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/Make-lang.in,v
retrieving revision 1.84
diff -c -3 -p -r1.84 Make-lang.in
*** Make-lang.in	2001/04/30 22:46:00	1.84
--- Make-lang.in	2001/05/09 23:40:19
*************** CXX_OBJS = cp/call.o cp/decl.o cp/errfn.
*** 100,106 ****
    cp/class.o cp/decl2.o cp/error.o cp/lex.o cp/parse.o cp/ptree.o cp/rtti.o \
    cp/spew.o cp/typeck.o cp/cvt.o cp/except.o cp/friend.o cp/init.o 
cp/method.o \
    cp/search.o cp/semantics.o cp/tree.o cp/xref.o cp/repo.o cp/dump.o \
!  cp/optimize.o cp/mangle.o

   # Use loose warnings for this front end.
   cp-warn =
--- 100,107 ----
    cp/class.o cp/decl2.o cp/error.o cp/lex.o cp/parse.o cp/ptree.o cp/rtti.o \
    cp/spew.o cp/typeck.o cp/cvt.o cp/except.o cp/friend.o cp/init.o 
cp/method.o \
    cp/search.o cp/semantics.o cp/tree.o cp/xref.o cp/repo.o cp/dump.o \
!  cp/optimize.o cp/mangle.o \
!  cp/cp-idebug.o

   # Use loose warnings for this front end.
   cp-warn =
*************** cp/dump.o: cp/dump.c $(CXX_TREE_H) c-dum
*** 276,281 ****
--- 277,283 ----
   cp/optimize.o: cp/optimize.c $(CXX_TREE_H) rtl.h integrate.h insn-config.h \
     input.h params.h
   cp/mangle.o: cp/mangle.c $(CXX_TREE_H) toplev.h
+ cp/cp-idebug.o: cp/cp-idebug.c $(CXX_TREE_H) $(RTL_H) flags.h idebug.c

   cp/parse.o: cp/parse.c $(CXX_TREE_H) flags.h cp/lex.h except.h output.h \
   	$(SYSTEM_H) toplev.h $(GGC_H)

diff -rc3pN gcc/cp/cp-idebug.c gcc-patched/cp/cp-idebug.c
*** gcc/cp/cp-idebug.c	Wed Dec 31 16:00:00 1969
--- gcc-patched/cp/cp-idebug.c	Wed May  9 16:51:46 2001
***************
*** 0 ****
--- 1,467 ----
+ /* C++ tree & rtl accessors defined as functions for use in a debugger.
+    Copyright (C) 2001  Free Software Foundation, Inc.
+    Contributed by Ira L. Ruben (ira@apple.com)
+
+ This file is part of GNU CC.
+
+ GNU CC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU CC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU CC; see the file COPYING.  If not, write to
+ the Free Software Foundation, 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.  */
+
+ /* What we do here is to instantiate each macro as a function *BY
+    THE SAME NAME*.  Depends on the macro not being expanded when
+    it is surrounded by parens.
+
+    Note that this file includes idebug.c so that only debugging
+    macros for cp-tree.h are actually defined here.  For C++ only
+    this file is included in the link while for C only idebug.c
+    is built and inlcuded in the link.  */
+
+ #include "idebug.c"
+
+ #ifdef ENABLE_IDEBUG
+
+ #include "cp/cp-tree.h"
+
+ /* C++ TREE debugging macro functions.  From cp-tree.h.
+    I made special-case meta-macros for the most common
+    one-parameter ones, that take a node and return either
+    a node or an int.  */
+
+ #define fn_noden( m ) fn_1(m, tree, tree)
+ #define fn_nodei( m ) fn_1(m, int, tree)
+
+ /* Macros from cp-tree.h */
+
+ fn_nodei( C_IS_RESERVED_WORD )
+ fn_1( C_RID_CODE, enum rid, struct lang_identifier * )
+ fn_1( C_RID_YYCODE, short, struct lang_identifier * )
+ fn_1( LANG_IDENTIFIER_CAST, struct lang_identifier *, tree )
+ fn_nodei( LOCAL_BINDING_P )
+ fn_nodei( INHERITED_VALUE_BINDING_P )
+ fn_noden( BINDING_SCOPE )
+ fn_nodei( BINDING_HAS_LEVEL_P )
+ fn_noden( BINDING_VALUE )
+ fn_noden( BINDING_TYPE )
+ fn_noden( IDENTIFIER_GLOBAL_VALUE )
+ fn_noden( IDENTIFIER_NAMESPACE_VALUE )
+ fn_nodei( CLEANUP_P )
+ fn_noden( CLEANUP_DECL )
+ fn_noden( CLEANUP_EXPR )
+ fn_2( same_type_p, int, tree, tree )
+ fn_2( same_type_ignoring_top_level_qualifiers_p, int, tree, tree )
+ fn_nodei( DECL_MAIN_P )
+ fn_noden( OVL_FUNCTION )
+ fn_noden( OVL_CHAIN )
+ fn_noden( OVL_CURRENT )
+ fn_noden( OVL_NEXT )
+ fn_nodei( OVL_USED )
+ fn_nodei( BASELINK_P )
+ fn_nodei( SET_BASELINK_P )
+ fn_noden( WRAPPER_PTR )
+ fn_nodei( WRAPPER_INT )
+ fn_1( SRCLOC_FILE, char*, tree )
+ fn_nodei( SRCLOC_LINE )
+ fn_noden( IDENTIFIER_NAMESPACE_BINDINGS )
+ fn_noden( IDENTIFIER_TEMPLATE )
+ fn_noden( IDENTIFIER_BINDING )
+ fn_noden( IDENTIFIER_VALUE )
+ fn_noden( IDENTIFIER_CLASS_VALUE )
+ fn_noden( IDENTIFIER_TYPE_VALUE )
+ fn_noden( REAL_IDENTIFIER_TYPE_VALUE )
+ fn_nodei( IDENTIFIER_HAS_TYPE_VALUE )
+ fn_noden( IDENTIFIER_LABEL_VALUE )
+ fn_noden( IDENTIFIER_IMPLICIT_DECL )
+ fn_noden( IDENTIFIER_ERROR_LOCUS )
+ fn_nodei( IDENTIFIER_VIRTUAL_P )
+ fn_nodei( IDENTIFIER_OPNAME_P )
+ fn_nodei( IDENTIFIER_TYPENAME_P )
+ fn_nodei( IDENTIFIER_CTOR_OR_DTOR_P )
+ fn_nodei( C_TYPE_FIELDS_READONLY )
+ /*fn_nodei( C_EXP_ORIGINAL_CODE )  already declared in c-common.h  */
+ fn_2( C_SET_EXP_ORIGINAL_CODE, int, tree, tree )
+ fn_1( ansi_opname, tree, int )
+ fn_1( ansi_assopname, tree, int )
+ fn_noden( TYPE_IDENTIFIER )
+ fn_1( TYPE_NAME_STRING, char*, tree )
+ fn_nodei( TYPE_NAME_LENGTH )
+ fn_1( TYPE_ASSEMBLER_NAME_STRING, char*, tree )
+ fn_nodei( TYPE_ASSEMBLER_NAME_LENGTH )
+ fn_noden( TYPE_MAIN_DECL )
+ fn_nodei( IS_AGGR_TYPE )
+ fn_nodei( CLASS_TYPE_P )
+ fn_1( IS_AGGR_TYPE_CODE, int, int )
+ fn_2( IS_AGGR_TYPE_2, int, tree, tree )
+ fn_nodei( IS_OVERLOAD_TYPE )
+ fn_nodei( TYPE_BUILT_IN )
+ fn_nodei( TYPE_FOR_JAVA )
+ fn_nodei( CP_TYPE_QUALS )
+ fn_nodei( CP_TYPE_CONST_P )
+ fn_nodei( CP_TYPE_VOLATILE_P )
+ fn_nodei( CP_TYPE_RESTRICT_P )
+ fn_nodei( CP_TYPE_CONST_NON_VOLATILE_P )
+ fn_noden( FNADDR_FROM_VTABLE_ENTRY )
+ fn_noden( FUNCTION_ARG_CHAIN )
+ fn_noden( FUNCTION_FIRST_USER_PARMTYPE )
+ fn_noden( FUNCTION_FIRST_USER_PARM )
+ fn_2( PROMOTES_TO_AGGR_TYPE, int, tree, unsigned )
+ fn_2( UNIQUELY_DERIVED_FROM_P, int, tree, tree )
+ fn_2( ACCESSIBLY_DERIVED_FROM_P, int, tree, tree )
+ fn_2( ACCESSIBLY_UNIQUELY_DERIVED_P, int, tree, tree )
+ fn_2( PUBLICLY_UNIQUELY_DERIVED_P, int, tree, tree )
+ fn_2( DERIVED_FROM_P, int, tree, tree )
+ fn_nodei( CLASSTYPE_USE_TEMPLATE )
+ fn_noden( CLASSTYPE_INLINE_FRIENDS )
+ fn_nodei( TYPE_GETS_DELETE )
+ fn_nodei( TYPE_GETS_REG_DELETE )
+ fn_nodei( TYPE_VEC_DELETE_TAKES_SIZE )
+ fn_nodei( TYPE_VEC_NEW_USES_COOKIE )
+ fn_nodei( TYPE_HAS_CONVERSION )
+ fn_nodei( TYPE_HAS_ASSIGN_REF )
+ fn_nodei( TYPE_HAS_CONST_ASSIGN_REF )
+ fn_nodei( TYPE_HAS_INIT_REF )
+ fn_nodei( TYPE_HAS_CONST_INIT_REF )
+ fn_nodei( TYPE_HAS_NEW_OPERATOR )
+ fn_nodei( TYPE_HAS_ARRAY_NEW_OPERATOR )
+ fn_nodei( TYPE_BEING_DEFINED )
+ fn_nodei( TYPE_REDEFINED )
+ fn_noden( CLASSTYPE_RTTI )
+ fn_nodei( TYPE_OVERLOADS_CALL_EXPR )
+ fn_nodei( TYPE_OVERLOADS_ARRAY_REF )
+ fn_nodei( TYPE_OVERLOADS_ARROW )
+ fn_nodei( TYPE_USES_MULTIPLE_INHERITANCE )
+ fn_nodei( TYPE_USES_VIRTUAL_BASECLASSES )
+ fn_noden( CLASSTYPE_METHOD_VEC )
+ fn_noden( CLASSTYPE_CONSTRUCTORS )
+ fn_noden( CLASSTYPE_DESTRUCTORS )
+ fn_2( CLASSTYPE_MARKED_N, int, tree, int )
+ fn_nodei( CLASSTYPE_MARKED )
+ fn_nodei( CLASSTYPE_MARKED2 )
+ fn_nodei( CLASSTYPE_MARKED3 )
+ fn_nodei( CLASSTYPE_MARKED4 )
+ fn_nodei( CLASSTYPE_MARKED5 )
+ fn_nodei( CLASSTYPE_MARKED6 )
+ fn_noden( CLASSTYPE_TAGS )
+ fn_nodei( CLASSTYPE_HAS_PRIMARY_BASE_P )
+ fn_noden( CLASSTYPE_PRIMARY_BINFO )
+ fn_nodei( CLASSTYPE_VSIZE )
+ fn_noden( CLASSTYPE_VBASECLASSES )
+ fn_2( CANONICAL_BINFO, tree, tree, tree )
+ fn_nodei( CLASSTYPE_N_BASECLASSES )
+ fn_noden( CLASSTYPE_SIZE )
+ fn_noden( CLASSTYPE_SIZE_UNIT )
+ fn_nodei( CLASSTYPE_ALIGN )
+ fn_nodei( CLASSTYPE_USER_ALIGN )
+ fn_nodei( CLASSTYPE_ALIGN_UNIT )
+ fn_nodei( TYPE_JAVA_INTERFACE )
+ fn_noden( CLASSTYPE_PURE_VIRTUALS )
+ fn_nodei( CLASSTYPE_GOT_SEMICOLON )
+ fn_nodei( CLASSTYPE_NEEDS_VIRTUAL_REINIT )
+ fn_nodei( TYPE_HAS_DEFAULT_CONSTRUCTOR )
+ fn_nodei( CLASSTYPE_HAS_MUTABLE )
+ fn_nodei( TYPE_HAS_MUTABLE_P )
+ fn_nodei( CLASSTYPE_NON_POD_P )
+ fn_nodei( CLASSTYPE_NEARLY_EMPTY_P )
+ fn_nodei( CLASSTYPE_COM_INTERFACE )
+ fn_noden( CLASSTYPE_FRIEND_CLASSES )
+ fn_noden( CLASSTYPE_BEFRIENDING_CLASSES )
+ fn_nodei( CLASSTYPE_DECLARED_CLASS )
+ fn_nodei( CLASSTYPE_READONLY_FIELDS_NEED_INIT )
+ fn_nodei( CLASSTYPE_REF_FIELDS_NEED_INIT )
+ fn_nodei( CLASSTYPE_INTERFACE_ONLY )
+ fn_nodei( CLASSTYPE_INTERFACE_KNOWN )
+ fn_nodei( CLASSTYPE_INTERFACE_UNKNOWN )
+ fn_2( SET_CLASSTYPE_INTERFACE_UNKNOWN_X, int, tree, int )
+ fn_nodei( SET_CLASSTYPE_INTERFACE_UNKNOWN )
+ fn_nodei( SET_CLASSTYPE_INTERFACE_KNOWN )
+ fn_nodei( CLASSTYPE_DEBUG_REQUESTED )
+ fn_nodei( BINFO_MARKED )
+ fn_nodei( BINFO_VTABLE_PATH_MARKED )
+ fn_2( BINFO_NEW_VTABLE_MARKED, int, tree, tree )
+ fn_nodei( BINFO_PUSHDECLS_MARKED )
+ fn_nodei( BINFO_PRIMARY_P )
+ fn_noden( BINFO_SUBVTT_INDEX )
+ fn_noden( BINFO_VPTR_INDEX )
+ fn_noden( BINFO_PRIMARY_BASE_OF )
+ fn_nodei( BINFO_LOST_PRIMARY_P )
+ fn_nodei( BINFO_INDIRECT_PRIMARY_P )
+ fn_nodei( IDENTIFIER_MARKED )
+ fn_noden( CLASSTYPE_VFIELDS )
+ fn_noden( VF_BINFO_VALUE )
+ fn_noden( VF_BASETYPE_VALUE )
+ fn_noden( VF_DERIVED_VALUE )
+ fn_noden( BV_DELTA )
+ fn_noden( BV_VCALL_INDEX )
+ fn_noden( BV_FN )
+ fn_nodei( BV_USE_VCALL_INDEX_P )
+ fn_nodei( BV_GENERATE_THUNK_WITH_VTABLE_P )
+ fn_nodei( TREE_PARMLIST )
+ fn_nodei( PARMLIST_ELLIPSIS_P )
+ fn_noden( TYPE_RAISES_EXCEPTIONS )
+ fn_nodei( TYPE_NOTHROW_P )
+ fn_1( NAMESPACE_LEVEL, struct binding_level*, tree )
+ fn_nodei( CAN_HAVE_FULL_LANG_DECL_P )
+ fn_1( DEFARG_POINTER, char*, tree )
+ fn_nodei( TREE_READONLY_DECL_P )
+ fn_nodei( DECL_NEEDED_P )
+ fn_nodei( DECL_IN_MEMORY_P )
+ fn_nodei( DECL_LANGUAGE )
+ fn_nodei( DECL_CONSTRUCTOR_P )
+ fn_nodei( DECL_COMPLETE_CONSTRUCTOR_P )
+ fn_nodei( DECL_BASE_CONSTRUCTOR_P )
+ fn_nodei( DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P )
+ fn_nodei( DECL_COPY_CONSTRUCTOR_P )
+ fn_nodei( DECL_DESTRUCTOR_P )
+ fn_nodei( DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P )
+ fn_nodei( DECL_COMPLETE_DESTRUCTOR_P )
+ fn_nodei( DECL_BASE_DESTRUCTOR_P )
+ fn_nodei( DECL_DELETING_DESTRUCTOR_P )
+ fn_nodei( DECL_CLONED_FUNCTION_P )
+ fn_noden( DECL_CLONED_FUNCTION )
+ fn_noden( DECL_INLINED_FNS )
+ fn_nodei( DECL_DISCRIMINATOR_P )
+ fn_nodei( DECL_DISCRIMINATOR )
+ fn_nodei( DECL_HAS_VTT_PARM_P )
+ fn_nodei( DECL_NEEDS_VTT_PARM_P )
+ fn_nodei( DECL_CONV_FN_P )
+ fn_2( SET_OVERLOADED_OPERATOR_CODE, enum tree_code, tree, enum tree_code )
+ fn_nodei( DECL_OVERLOADED_OPERATOR_P )
+ fn_nodei( DECL_ASSIGNMENT_OPERATOR_P )
+ fn_nodei( DECL_HAS_IN_CHARGE_PARM_P )
+ fn_nodei( DECL_ARRAY_DELETE_OPERATOR_P )
+ fn_nodei( DECL_IN_AGGR_P )
+ fn_nodei( DECL_INITIALIZED_IN_CLASS_P )
+ fn_nodei( DECL_FRIEND_P )
+ fn_noden( DECL_BEFRIENDING_CLASSES )
+ fn_nodei( DECL_STATIC_FUNCTION_P )
+ fn_nodei( DECL_NONSTATIC_MEMBER_FUNCTION_P )
+ fn_nodei( DECL_FUNCTION_MEMBER_P )
+ fn_nodei( DECL_CONST_MEMFUNC_P )
+ fn_nodei( DECL_VOLATILE_MEMFUNC_P )
+ fn_nodei( DECL_NONSTATIC_MEMBER_P )
+ fn_nodei( DECL_MUTABLE_P )
+ fn_nodei( DECL_NONCONVERTING_P )
+ fn_nodei( DECL_PURE_VIRTUAL_P )
+ fn_nodei( DECL_NEEDS_FINAL_OVERRIDER_P )
+ fn_nodei( DECL_THUNK_P )
+ fn_nodei( DECL_NON_THUNK_FUNCTION_P )
+ fn_nodei( DECL_EXTERN_C_P )
+ fn_nodei( DECL_EXTERN_C_FUNCTION_P )
+ fn_nodei( SET_DECL_THUNK_P )
+ fn_nodei( DECL_PRETTY_FUNCTION_P )
+ fn_noden( DECL_CLASS_CONTEXT )
+ fn_noden( DECL_FRIEND_CONTEXT )
+ fn_2( SET_DECL_FRIEND_CONTEXT, tree, tree, tree )
+ fn_noden( CP_DECL_CONTEXT )
+ fn_noden( FROB_CONTEXT )
+ fn_noden( DECL_VIRTUAL_CONTEXT )
+ fn_nodei( DECL_NAMESPACE_SCOPE_P )
+ fn_nodei( DECL_CLASS_SCOPE_P )
+ fn_nodei( DECL_FUNCTION_SCOPE_P )
+ fn_nodei( LOCAL_CLASS_P )
+ fn_noden( DECL_NAMESPACE_USING )
+ fn_noden( DECL_NAMESPACE_USERS )
+ fn_noden( DECL_NAMESPACE_ALIAS )
+ fn_noden( ORIGINAL_NAMESPACE )
+ fn_nodei( DECL_NAMESPACE_STD_P )
+ fn_nodei( DECL_INIT_PRIORITY )
+ fn_nodei( TREE_INDIRECT_USING )
+ fn_noden( DECL_SHADOWED_FOR_VAR )
+ fn_nodei( DECL_PENDING_INLINE_P )
+ fn_1( DECL_PENDING_INLINE_INFO, struct unparsed_text *, tree )
+ fn_noden( DECL_SORTED_FIELDS )
+ fn_nodei( DECL_DEFERRED_FN )
+ fn_noden( DECL_TEMPLATE_INFO )
+ fn_noden( CLASSTYPE_TEMPLATE_INFO )
+ fn_noden( ENUM_TEMPLATE_INFO )
+ fn_noden( TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO )
+ fn_noden( TYPE_TEMPLATE_INFO )
+ fn_2( SET_TYPE_TEMPLATE_INFO, tree, tree, tree )
+ fn_noden( TI_TEMPLATE )
+ fn_noden( TI_ARGS )
+ fn_nodei( TI_PENDING_TEMPLATE_FLAG )
+ fn_nodei( TMPL_ARGS_HAVE_MULTIPLE_LEVELS )
+ fn_nodei( TMPL_ARGS_DEPTH )
+ fn_2( TMPL_ARGS_LEVEL, tree, tree, int )
+ fn_3( SET_TMPL_ARGS_LEVEL, tree, tree, int, tree )
+ fn_3( TMPL_ARG, tree, tree, int, int )
+ fn_4( SET_TMPL_ARG, tree, tree, int, int, tree )
+ fn_nodei( NUM_TMPL_ARGS )
+ fn_noden( INNERMOST_TEMPLATE_ARGS )
+ fn_1( TMPL_PARMS_DEPTH, unsigned HOST_WIDE_INT, tree )
+ fn_noden( DECL_TI_TEMPLATE )
+ fn_noden( DECL_TI_ARGS )
+ fn_noden( CLASSTYPE_TI_TEMPLATE )
+ fn_noden( CLASSTYPE_TI_ARGS )
+ fn_noden( ENUM_TI_TEMPLATE )
+ fn_noden( ENUM_TI_ARGS )
+ fn_noden( TYPE_TI_TEMPLATE )
+ fn_noden( TYPE_TI_ARGS)
+ fn_noden( INNERMOST_TEMPLATE_PARMS )
+ fn_nodei( TEMPLATE_PARMS_FOR_INLINE )
+ fn_1( DECL_SAVED_FUNCTION_DATA, struct cp_language_function *, tree )
+ fn_nodei( NEW_EXPR_USE_GLOBAL )
+ fn_nodei( DELETE_EXPR_USE_GLOBAL )
+ fn_nodei( DELETE_EXPR_USE_VEC )
+ fn_nodei( LOOKUP_EXPR_GLOBAL )
+ fn_nodei( AGGR_INIT_VIA_CTOR_P )
+ fn_nodei( CLASSTYPE_IS_TEMPLATE )
+ fn_noden( TYPENAME_TYPE_FULLNAME )
+ fn_nodei( IMPLICIT_TYPENAME_P )
+ fn_nodei( IMPLICIT_TYPENAME_TYPE_DECL_P )
+ fn_nodei( TREE_NEGATED_INT )
+ fn_nodei( TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P )
+ fn_nodei( TYPE_POLYMORPHIC_P )
+ fn_nodei( TYPE_CONTAINS_VPTR_P )
+ fn_nodei( DECL_DEAD_FOR_LOCAL )
+ fn_nodei( DECL_ERROR_REPORTED )
+ fn_nodei( DECL_LOCAL_FUNCTION_P )
+ fn_nodei( DECL_ANTICIPATED )
+ fn_nodei( C_TYPEDEF_EXPLICITLY_SIGNED )
+ fn_nodei( DECL_EXTERNAL_LINKAGE_P )
+ fn_1( INTEGRAL_CODE_P, int, int )
+ fn_nodei( CP_INTEGRAL_TYPE_P )
+ fn_nodei( ARITHMETIC_TYPE_P )
+ fn_nodei( TYPE_HAS_CONSTRUCTOR )
+ fn_nodei( TREE_HAS_CONSTRUCTOR )
+ fn_nodei( EMPTY_CONSTRUCTOR_P )
+ fn_nodei( TYPE_HAS_DESTRUCTOR )
+ fn_nodei( CLASSTYPE_NON_AGGREGATE )
+ fn_nodei( TYPE_NON_AGGREGATE_CLASS )
+ fn_nodei( TYPE_HAS_REAL_ASSIGN_REF )
+ fn_nodei( TYPE_HAS_COMPLEX_ASSIGN_REF )
+ fn_nodei( TYPE_HAS_ABSTRACT_ASSIGN_REF )
+ fn_nodei( TYPE_HAS_COMPLEX_INIT_REF )
+ fn_nodei( TYPE_HAS_TRIVIAL_DESTRUCTOR1 )
+ fn_nodei( TYPE_HAS_NONTRIVIAL_DESTRUCTOR )
+ fn_nodei( TYPE_HAS_TRIVIAL_INIT_REF )
+ fn_nodei( TYPE_HAS_TRIVIAL_ASSIGN_REF )
+ fn_nodei( TYPE_PTRMEM_P )
+ fn_nodei( TYPE_PTR_P )
+ fn_nodei( TYPE_PTROB_P )
+ fn_nodei( TYPE_PTROBV_P )
+ fn_nodei( TYPE_PTRFN_P )
+ fn_nodei( TYPE_PTRMEMFUNC_P )
+ fn_nodei( TYPE_PTRMEMFUNC_FLAG )
+ fn_nodei( PTRMEM_OK_P )
+ fn_noden( TYPE_PTRMEMFUNC_FN_TYPE )
+ fn_noden( TYPE_PTRMEMFUNC_OBJECT_TYPE )
+ fn_noden( TYPE_GET_PTRMEMFUNC_TYPE )
+ fn_2( TYPE_SET_PTRMEMFUNC_TYPE, struct lang_type *, tree, struct lang_type*)
+ fn_noden( DELTA2_FROM_PTRMEMFUNC )
+ fn_noden( PFN_FROM_PTRMEMFUNC )
+ fn_noden( TYPE_PTRMEM_CLASS_TYPE )
+ fn_noden( TYPE_PTRMEM_POINTED_TO_TYPE )
+ fn_noden( PTRMEM_CST_CLASS )
+ fn_noden( PTRMEM_CST_MEMBER )
+ fn_nodei( DECL_THIS_EXTERN )
+ fn_nodei( DECL_THIS_STATIC )
+ fn_nodei( ANON_AGGR_TYPE_P )
+ fn_nodei( SET_ANON_AGGR_TYPE_P )
+ fn_nodei( ANON_UNION_TYPE_P )
+ fn_nodei( TYPE_WAS_ANONYMOUS )
+ fn_noden( DECL_FRIENDLIST )
+ fn_noden( FRIEND_NAME )
+ fn_noden( FRIEND_DECLS )
+ fn_noden( DECL_ACCESS )
+ fn_nodei( DECL_GLOBAL_CTOR_P )
+ fn_nodei( DECL_GLOBAL_DTOR_P )
+ fn_nodei( GLOBAL_INIT_PRIORITY )
+ fn_noden( DECL_TEMPLATE_PARMS )
+ fn_noden( DECL_INNERMOST_TEMPLATE_PARMS )
+ fn_nodei( DECL_NTPARMS )
+ fn_noden( DECL_TEMPLATE_RESULT )
+ fn_noden( DECL_TEMPLATE_INSTANTIATIONS )
+ fn_noden( DECL_TEMPLATE_SPECIALIZATIONS )
+ fn_nodei( DECL_TEMPLATE_PARM_P )
+ fn_nodei( SET_DECL_TEMPLATE_PARM_P )
+ fn_nodei( DECL_TEMPLATE_TEMPLATE_PARM_P )
+ fn_nodei( DECL_FUNCTION_TEMPLATE_P )
+ fn_nodei( DECL_CLASS_TEMPLATE_P )
+ fn_nodei( DECL_DECLARES_TYPE_P )
+ fn_nodei( DECL_IMPLICIT_TYPEDEF_P )
+ fn_nodei( SET_DECL_IMPLICIT_TYPEDEF_P )
+ fn_noden( DECL_PRIMARY_TEMPLATE )
+ fn_nodei( PRIMARY_TEMPLATE_P )
+ fn_nodei( CLASSTYPE_TEMPLATE_LEVEL )
+ fn_nodei( DECL_USE_TEMPLATE )
+ fn_nodei( DECL_TEMPLATE_INSTANTIATION )
+ fn_nodei( CLASSTYPE_TEMPLATE_INSTANTIATION )
+ fn_nodei( DECL_TEMPLATE_SPECIALIZATION )
+ fn_nodei( SET_DECL_TEMPLATE_SPECIALIZATION )
+ fn_nodei( CLASSTYPE_TEMPLATE_SPECIALIZATION )
+ fn_nodei( SET_CLASSTYPE_TEMPLATE_SPECIALIZATION )
+ fn_nodei( DECL_IMPLICIT_INSTANTIATION )
+ fn_nodei( SET_DECL_IMPLICIT_INSTANTIATIO )
+ fn_nodei( CLASSTYPE_IMPLICIT_INSTANTIATION )
+ fn_nodei( SET_CLASSTYPE_IMPLICIT_INSTANTIATION )
+ fn_nodei( DECL_EXPLICIT_INSTANTIATION )
+ fn_nodei( SET_DECL_EXPLICIT_INSTANTIATION )
+ fn_nodei( CLASSTYPE_EXPLICIT_INSTANTIATION )
+ fn_nodei( SET_CLASSTYPE_EXPLICIT_INSTANTIATION )
+ fn_nodei( DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION )
+ fn_nodei( PARTIAL_INSTANTIATION_P )
+ fn_0( PROCESSING_REAL_TEMPLATE_DECL_P, int )
+ fn_nodei( DECL_MAYBE_TEMPLATE )
+ fn_nodei( DECL_TEMPLATE_INSTANTIATED )
+ fn_nodei( DECL_INTERFACE_KNOWN )
+ fn_nodei( DECL_DECLARED_INLINE_P )
+ fn_nodei( DECL_NOT_REALLY_EXTERN )
+ fn_nodei( DECL_REALLY_EXTERN )
+ fn_nodei( THUNK_DELTA )
+ fn_noden( THUNK_VCALL_OFFSET )
+ fn_nodei( THUNK_GENERATE_WITH_VTABLE_P )
+ fn_noden( TRY_STMTS )
+ fn_noden( TRY_HANDLERS )
+ fn_noden( EH_SPEC_STMTS )
+ fn_noden( EH_SPEC_RAISES )
+ fn_nodei( FN_TRY_BLOCK_P )
+ fn_noden( HANDLER_PARMS )
+ fn_noden( HANDLER_BODY )
+ fn_noden( SUBOBJECT_CLEANUP )
+ fn_noden( START_CATCH_TYPE )
+ fn_nodei( CTOR_BEGIN_P )
+ fn_nodei( CTOR_END_P )
+ fn_noden( CALL_DECLARATOR_PARMS )
+ fn_noden( CALL_DECLARATOR_QUALS )
+ fn_noden( CALL_DECLARATOR_EXCEPTION_SPEC )
+ fn_noden( TINST_DECL )
+ fn_nodei( TINST_LINE )
+ fn_1( TINST_FILE, char*, tree )
+ fn_nodei( THIS_NAME_P )
+ fn_nodei( VPTR_NAME_P )
+ fn_nodei( DESTRUCTOR_NAME_P )
+ fn_nodei( VTABLE_NAME_P )
+ fn_nodei( VBASE_NAME_P )
+ fn_nodei( TEMP_NAME_P )
+ fn_nodei( VFIELD_NAME_P )
+ fn_nodei( ANON_AGGRNAME_P )
+ fn_nodei( ANON_PARMNAME_P )
+ fn_2( same_or_base_type_p, int, tree, tree )
+ fn_1( TEMPLATE_PARM_INDEX_CAST, template_parm_index*, tree )
+ fn_nodei( TEMPLATE_PARM_IDX )
+ fn_nodei( TEMPLATE_PARM_LEVEL )
+ fn_noden( TEMPLATE_PARM_DESCENDANTS )
+ fn_nodei( TEMPLATE_PARM_ORIG_LEVEL )
+ fn_noden( TEMPLATE_PARM_DECL )
+ fn_noden( TEMPLATE_TYPE_PARM_INDEX )
+ fn_nodei( TEMPLATE_TYPE_IDX )
+ fn_nodei( TEMPLATE_TYPE_LEVEL )
+ fn_nodei( TEMPLATE_TYPE_ORIG_LEVEL )
+ fn_noden( TEMPLATE_TYPE_DECL )
+ fn_noden( TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL )
+ fn_2( cp_build_qualified_type, tree, tree, int )
+ fn_3( cp_build_binary_op, tree, enum tree_code, tree, tree )
+
+ #endif /* ENABLE_IDEBUG */
diff -rc3pN gcc/idebug.c gcc-patched/idebug.c
*** gcc/idebug.c	Wed Dec 31 16:00:00 1969
--- gcc-patched/idebug.c	Wed May  9 16:51:21 2001
***************
*** 0 ****
--- 1,573 ----
+ /* C tree & rtl accessors defined as functions for use in a debugger.
+    Copyright (C) 2001  Free Software Foundation, Inc.
+    Contributed by Ira L. Ruben (ira@apple.com)
+
+ This file is part of GNU CC.
+
+ GNU CC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU CC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU CC; see the file COPYING.  If not, write to
+ the Free Software Foundation, 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.  */
+
+ /* What we do here is to instantiate each macro as a function *BY
+    THE SAME NAME*.  Depends on the macro not being expanded when
+    it is surrounded by parens.
+
+    Note that this file is included by cp/cp-idebug.c for C++ builds
+    instead of being explicitly built as it is for C.  */
+
+ #include "config.h"
+
+ #ifdef ENABLE_IDEBUG
+
+ #include "system.h"
+ #include "tree.h"
+ #include "rtl.h"
+ #include "flags.h"
+ #include "c-common.h"
+
+ #define fn_0(name,rt)             rt (name) (void); \
+ 				  rt (name) (void)                { 
return name(); }
+ #define fn_1(name,rt,p1)          rt (name)(p1); \
+ 			          rt (name) (p1 a)           { return 
name(a); }
+ #define fn_2(name,rt,p1,p2)       rt (name)(p1,p2); \
+ 			          rt (name) (p1 a,p2 b)      { return 
name(a,b); }
+ #define fn_3(name,rt,p1,p2,p3)    rt (name)(p1,p2,p3); \
+ 			          rt (name) (p1 a,p2 b,p3 c) { return 
name(a,b,c); }
+ #define fn_4(name,rt,p1,p2,p3,p4) rt (name) (p1,p2,p3,p4); \
+ 				  rt (name) (p1 a,p2 b,p3 c,p4 d) { 
return name(a,b,c,d);}
+
+ /* Macros from tree.h  */
+
+ fn_1( TREE_CODE_CLASS, int, int )
+ fn_1( IS_EXPR_CODE_CLASS, int, int )
+ fn_1( TREE_CODE_LENGTH, int, int )
+ fn_1( TREE_CODE, int, tree )
+ fn_1( TREE_TYPE, tree, tree )
+ fn_1( TREE_CHAIN, tree, tree )
+ fn_1( INTEGRAL_TYPE_P, int, tree )
+ fn_1( FLOAT_TYPE_P, int, tree )
+ fn_1( AGGREGATE_TYPE_P, int, tree )
+ fn_1( POINTER_TYPE_P, int, tree )
+ fn_1( BOUNDED_INDIRECT_TYPE_P, int, tree )
+ fn_1( BOUNDED_POINTER_TYPE_P, int, tree )
+ fn_1( BOUNDED_REFERENCE_TYPE_P, int, tree )
+ fn_1( MAYBE_BOUNDED_INDIRECT_TYPE_P, int, tree )
+ fn_1( MAYBE_BOUNDED_POINTER_TYPE_P, int, tree )
+ fn_1( MAYBE_BOUNDED_REFERENCE_TYPE_P, int, tree )
+ fn_1( COMPLETE_TYPE_P, int, tree )
+ fn_1( VOID_TYPE_P, int, tree )
+ fn_1( COMPLETE_OR_VOID_TYPE_P, int, tree )
+ fn_1( COMPLETE_OR_UNBOUND_ARRAY_TYPE_P, int, tree )
+ fn_1( TYPE_P, int, tree )
+ fn_1( TREE_ADDRESSABLE, int, tree )
+ fn_1( TREE_STATIC, int, tree )
+ fn_1( TREE_NO_UNUSED_WARNING, int, tree )
+ fn_1( TREE_VIA_VIRTUAL, int, tree )
+ fn_1( TREE_CONSTANT_OVERFLOW, int, tree )
+ fn_1( TREE_SYMBOL_REFERENCED, int, tree )
+ fn_1( TREE_OVERFLOW, int, tree )
+ fn_1( TREE_PUBLIC, int, tree )
+ fn_1( TREE_VIA_PUBLIC, int, tree )
+ fn_1( TREE_VIA_PRIVATE, int, tree )
+ fn_1( TREE_VIA_PROTECTED, int, tree )
+ fn_1( TREE_SIDE_EFFECTS, int, tree )
+ fn_1( TREE_THIS_VOLATILE, int, tree )
+ fn_1( TREE_READONLY, int, tree )
+ fn_1( TREE_CONSTANT, int, tree )
+ fn_1( TREE_UNSIGNED, int, tree )
+ fn_1( TYPE_TRAP_SIGNED, int, tree )
+ fn_1( TREE_ASM_WRITTEN, int, tree )
+ fn_1( TREE_USED, int, tree )
+ fn_1( TREE_NOTHROW, int, tree )
+ fn_1( TREE_PRIVATE, int, tree )
+ fn_1( TREE_PROTECTED, int, tree )
+ fn_1( TREE_BOUNDED, int, tree )
+ fn_1( TREE_DEPRECATED, int, tree )
+ fn_1( TREE_LANG_FLAG_0, int, tree )
+ fn_1( TREE_LANG_FLAG_1, int, tree )
+ fn_1( TREE_LANG_FLAG_2, int, tree )
+ fn_1( TREE_LANG_FLAG_3, int, tree )
+ fn_1( TREE_LANG_FLAG_4, int, tree )
+ fn_1( TREE_LANG_FLAG_5, int, tree )
+ fn_1( TREE_LANG_FLAG_6, int, tree )
+ fn_1( TREE_INT_CST_LOW, unsigned HOST_WIDE_INT, tree )
+ fn_1( TREE_INT_CST_HIGH, HOST_WIDE_INT, tree )
+ fn_2( INT_CST_LT, int, tree, tree )
+ fn_2( INT_CST_LT_UNSIGNED, int, tree, tree )
+ fn_1( TREE_CST_RTL, rtx, tree )
+ fn_1( TREE_REAL_CST, REAL_VALUE_TYPE, tree )
+ fn_1( TREE_STRING_LENGTH, int, tree )
+ fn_1( TREE_STRING_POINTER, char*, tree )
+ fn_1( TREE_REALPART, tree, tree )
+ fn_1( TREE_IMAGPART, tree, tree )
+ fn_1( IDENTIFIER_LENGTH, int, tree )
+ fn_1( IDENTIFIER_POINTER, char*, tree )
+ fn_1( TREE_PURPOSE, tree, tree )
+ fn_1( TREE_VALUE, tree, tree )
+ fn_1( TREE_VEC_LENGTH, int, tree )
+ fn_2( TREE_VEC_ELT, tree, tree, int )
+ fn_1( SAVE_EXPR_CONTEXT, tree, tree )
+ fn_1( SAVE_EXPR_RTL, rtx, tree )
+ fn_1( SAVE_EXPR_NOPLACEHOLDER, int, tree )
+ fn_1( SAVE_EXPR_PERSISTENT_P, int, tree )
+ fn_1( RTL_EXPR_SEQUENCE, rtx, tree )
+ fn_1( RTL_EXPR_RTL, rtx, tree )
+ fn_1( CONSTRUCTOR_ELTS, tree, tree )
+ fn_2( TREE_OPERAND, tree, tree, int )
+ fn_1( TREE_COMPLEXITY, int, tree )
+ fn_1( LABELED_BLOCK_LABEL, tree, tree )
+ fn_1( LABELED_BLOCK_BODY, tree, tree )
+ fn_1( EXIT_BLOCK_LABELED_BLOCK, tree, tree )
+ fn_1( EXIT_BLOCK_RETURN, tree, tree )
+ fn_1( LOOP_EXPR_BODY, tree, tree )
+ fn_1( EXPR_WFL_NODE, tree, tree )
+ fn_1( EXPR_WFL_FILENAME, char*, tree )
+ fn_1( EXPR_WFL_FILENAME_NODE, tree, tree )
+ fn_1( EXPR_WFL_LINENO, int, tree )
+ fn_1( EXPR_WFL_COLNO, int, tree )
+ fn_1( EXPR_WFL_LINECOL, int, tree )
+ fn_3( EXPR_WFL_SET_LINECOL, int, tree, int, int )
+ fn_1( EXPR_WFL_EMIT_LINE_NOTE, int, tree )
+ fn_1( BLOCK_VARS, tree, tree )
+ fn_1( BLOCK_SUBBLOCKS, tree, tree )
+ fn_1( BLOCK_SUPERCONTEXT, tree, tree )
+ fn_1( BLOCK_CHAIN, tree, tree )
+ fn_1( BLOCK_ABSTRACT_ORIGIN, tree, tree )
+ fn_1( BLOCK_ABSTRACT, int, tree )
+ fn_1( BLOCK_HANDLER_BLOCK, int, tree )
+ fn_1( BLOCK_NUMBER, int, tree )
+ fn_1( TYPE_UID, int, tree )
+ fn_1( TYPE_SIZE, tree, tree )
+ fn_1( TYPE_SIZE_UNIT, tree, tree )
+ fn_1( TYPE_MODE, int, tree )
+ fn_1( TYPE_VALUES, tree, tree )
+ fn_1( TYPE_DOMAIN, tree, tree )
+ fn_1( TYPE_FIELDS, tree, tree )
+ fn_1( TYPE_METHODS, tree, tree )
+ fn_1( TYPE_VFIELD, tree, tree )
+ fn_1( TYPE_ARG_TYPES, tree, tree )
+ fn_1( TYPE_METHOD_BASETYPE, tree, tree )
+ fn_1( TYPE_OFFSET_BASETYPE, tree, tree )
+ fn_1( TYPE_POINTER_TO, tree, tree )
+ fn_1( TYPE_REFERENCE_TO, tree, tree )
+ fn_1( TYPE_MIN_VALUE, tree, tree )
+ fn_1( TYPE_MAX_VALUE, tree, tree )
+ fn_1( TYPE_PRECISION, int, tree )
+ fn_1( TYPE_SYMTAB_ADDRESS, int, tree )
+ fn_1( TYPE_SYMTAB_POINTER, char*, tree )
+ fn_1( TYPE_NAME, tree, tree )
+ fn_1( TYPE_NEXT_VARIANT, tree, tree )
+ fn_1( TYPE_MAIN_VARIANT, tree, tree )
+ fn_1( TYPE_NONCOPIED_PARTS, tree, tree )
+ fn_1( TYPE_CONTEXT, tree, tree )
+ fn_1( TYPE_LANG_SPECIFIC, struct lang_type*, tree )
+ fn_1( TYPE_DEBUG_REPRESENTATION_TYPE, tree, tree )
+ fn_2( TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P, int, tree, tree )
+ fn_1( TYPE_MAIN_PHYSICAL_VARIANT, tree, tree )
+ fn_1( TYPE_BINFO, tree, tree )
+ fn_1( TYPE_ALIAS_SET, int, tree )
+ fn_1( TYPE_ALIAS_SET_KNOWN_P, int, tree )
+ fn_1( TYPE_ATTRIBUTES, tree, tree )
+ fn_1( TYPE_ALIGN, int, tree )
+ fn_1( TYPE_USER_ALIGN, int, tree )
+ fn_1( TYPE_ALIGN_UNIT, int, tree )
+ fn_1( TYPE_STUB_DECL, tree, tree )
+ fn_1( TYPE_NO_FORCE_BLK, int, tree )
+ fn_1( TYPE_IS_SIZETYPE, int, tree )
+ fn_1( TYPE_RETURNS_STACK_DEPRESSED, int, tree )
+ fn_1( TYPE_VOLATILE, int, tree )
+ fn_1( TYPE_READONLY, int, tree )
+ fn_1( TYPE_RESTRICT, int, tree )
+ fn_1( TYPE_BOUNDED, int, tree )
+ fn_1( TYPE_QUALS, int, tree )
+ fn_1( TREE_EXPR_QUALS, int, tree )
+ fn_1( TREE_FUNC_QUALS, int, tree )
+ fn_1( TYPE_LANG_FLAG_0, int, tree )
+ fn_1( TYPE_LANG_FLAG_1, int, tree )
+ fn_1( TYPE_LANG_FLAG_2, int, tree )
+ fn_1( TYPE_LANG_FLAG_3, int, tree )
+ fn_1( TYPE_LANG_FLAG_4, int, tree )
+ fn_1( TYPE_LANG_FLAG_5, int, tree )
+ fn_1( TYPE_LANG_FLAG_6, int, tree )
+ fn_1( TYPE_STRING_FLAG, int, tree )
+ fn_1( TYPE_ARRAY_MAX_SIZE, tree, tree )
+ fn_1( TYPE_VECTOR_SUBPARTS, int, tree )
+ fn_1( TYPE_NEEDS_CONSTRUCTING, int, tree )
+ fn_1( TYPE_TRANSPARENT_UNION, int, tree )
+ fn_1( TYPE_NONALIASED_COMPONENT, int, tree )
+ fn_1( TYPE_PACKED, int, tree )
+ fn_1( TYPE_BOUNDED_VALUE, tree, tree )
+ fn_1( TYPE_BOUNDED_BASE, tree, tree )
+ fn_1( TYPE_BOUNDED_EXTENT, tree, tree )
+ fn_1( TYPE_BOUNDED_SUBTYPE, tree, tree )
+ fn_1( TYPE_UNBOUNDED_VARIANT, tree, tree )
+ fn_1( TYPE_POINTER_DEPTH, int, tree )
+ fn_1( TYPE_AMBIENT_BOUNDEDNESS, int, tree )
+ fn_1( BINFO_TYPE, tree, tree )
+ fn_1( BINFO_OFFSET, tree, tree )
+ fn_1( TYPE_BINFO_OFFSET, tree, tree )
+ fn_1( BINFO_OFFSET_ZEROP, int, tree )
+ fn_1( BINFO_VTABLE, tree, tree )
+ fn_1( TYPE_BINFO_VTABLE, tree, tree )
+ fn_1( BINFO_VIRTUALS, tree, tree )
+ fn_1( TYPE_BINFO_VIRTUALS, tree, tree )
+ fn_1( BINFO_BASETYPES, tree, tree )
+ fn_1( TYPE_BINFO_BASETYPES, tree, tree )
+ fn_1( BINFO_N_BASETYPES, int, tree )
+ fn_2( BINFO_BASETYPE, tree, tree, int )
+ fn_2( TYPE_BINFO_BASETYPE, tree, tree, int )
+ fn_1( BINFO_VPTR_FIELD, tree, tree )
+ fn_1( BINFO_SIZE, tree, tree )
+ fn_1( BINFO_SIZE_UNIT, tree, tree )
+ fn_1( TYPE_BINFO_SIZE, tree, tree )
+ fn_1( TYPE_BINFO_SIZE_UNIT, tree, tree )
+ fn_1( BINFO_INHERITANCE_CHAIN, tree, tree )
+ fn_1( DECL_P, int, tree )
+ fn_1( DECL_NAME, tree, tree )
+ fn_1( DECL_ASSEMBLER_NAME, tree, tree )
+ fn_1( DECL_ASSEMBLER_NAME_SET_P, int, tree )
+ fn_1( DECL_SECTION_NAME, tree, tree )
+ fn_1( DECL_CONTEXT, tree, tree )
+ fn_1( DECL_FIELD_CONTEXT, tree, tree )
+ fn_1( DECL_MACHINE_ATTRIBUTES, tree, tree )
+ fn_1( DECL_FIELD_OFFSET, tree, tree )
+ fn_1( DECL_FIELD_BIT_OFFSET, tree, tree )
+ fn_1( DECL_BIT_FIELD_TYPE, tree, tree )
+ fn_1( DECL_ARGUMENTS, tree, tree )
+ fn_1( DECL_RESULT_FLD, tree, tree )
+ fn_1( DECL_RESULT, tree, tree )
+ fn_1( DECL_ORIGINAL_TYPE, tree, tree )
+ fn_1( DECL_ARG_TYPE_AS_WRITTEN, tree, tree )
+ fn_1( DECL_INITIAL, tree, tree )
+ fn_1( DECL_ARG_TYPE, tree, tree )
+ fn_1( DECL_QUALIFIER, tree, tree )
+ fn_1( DECL_SOURCE_FILE, char*, tree )
+ fn_1( DECL_SOURCE_LINE, int, tree )
+ fn_1( DECL_SIZE, tree, tree )
+ fn_1( DECL_SIZE_UNIT, tree, tree )
+ fn_1( DECL_ALIGN, int, tree )
+ fn_1( DECL_ALIGN_UNIT, int, tree )
+ fn_1( DECL_OFFSET_ALIGN, int, tree )
+ fn_1( DECL_USER_ALIGN, int, tree )
+ fn_1( DECL_MODE, int, tree )
+ fn_1( DECL_RTL, rtx, tree )
+ fn_1( DECL_RTL_SET_P, int, tree )
+ fn_2( COPY_DECL_RTL, rtx, tree, tree )
+ fn_1( DECL_RTL_IF_SET, rtx, tree )
+ fn_1( DECL_LIVE_RANGE_RTL, rtx, tree )
+ fn_1( DECL_INCOMING_RTL, rtx, tree )
+ fn_1( DECL_SAVED_INSNS, struct function *, tree )
+ fn_1( DECL_FUNCTION_CODE, enum built_in_function, tree )
+ fn_1( DECL_VINDEX, tree, tree )
+ fn_1( DECL_FCONTEXT, tree, tree )
+ fn_1( DECL_UID, int, tree )
+ fn_1( DECL_ABSTRACT_ORIGIN, tree, tree )
+ fn_1( DECL_ORIGIN, tree,tree )
+ fn_1( DECL_FROM_INLINE, int, tree )
+ fn_1( DECL_IGNORED_P, int, tree )
+ fn_1( DECL_ABSTRACT, int, tree )
+ fn_1( DECL_IN_SYSTEM_HEADER, int, tree )
+ fn_1( DECL_COMMON, int, tree )
+ #ifdef HAVE_COALESCED_SYMBOLS
+ fn_1( DECL_COALESCED, int, tree )
+ #endif
+ fn_1( DECL_LANG_SPECIFIC, struct lang_decl *, tree )
+ fn_1( DECL_EXTERNAL, int, tree )
+ fn_1( TYPE_DECL_SUPPRESS_DEBUG, int, tree )
+ fn_1( DECL_REGISTER, int, tree )
+ fn_1( DECL_ERROR_ISSUED, int, tree )
+ fn_1( DECL_PACKED, int, tree )
+ fn_1( DECL_NO_STATIC_CHAIN, int, tree )
+ fn_1( DECL_NONLOCAL, int, tree )
+ fn_1( DECL_INLINE, int, tree )
+ fn_1( DECL_UNINLINABLE, int, tree )
+ fn_1( DECL_BUILT_IN_NONANSI, int, tree )
+ fn_1( DECL_IS_MALLOC, int, tree )
+ fn_1( DECL_IS_PURE, int, tree )
+ fn_1( DECL_BIT_FIELD, int, tree )
+ fn_1( DECL_TOO_LATE, int, tree )
+ fn_1( DECL_IN_TEXT_SECTION, int, tree )
+ fn_1( DECL_BUILT_IN, int, tree )
+ fn_1( DECL_BUILT_IN_CLASS, int, tree )
+ fn_1( DECL_VIRTUAL_P, int, tree )
+ fn_1( DECL_DEFER_OUTPUT, int, tree )
+ fn_1( DECL_TRANSPARENT_UNION, int, tree )
+ fn_1( DECL_STATIC_CONSTRUCTOR, int, tree )
+ fn_1( DECL_STATIC_DESTRUCTOR, int, tree )
+ fn_1( DECL_ARTIFICIAL, int, tree )
+ fn_1( DECL_WEAK, int, tree )
+ fn_1( DECL_ONE_ONLY, int, tree )
+ fn_1( DECL_COMDAT, int, tree )
+ fn_1( DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, int, tree )
+ fn_1( DECL_NO_CHECK_MEMORY_USAGE, int, tree )
+ fn_1( DECL_NO_LIMIT_STACK, int, tree )
+ fn_1( DECL_LANG_FLAG_0, int, tree )
+ fn_1( DECL_LANG_FLAG_1, int, tree )
+ fn_1( DECL_LANG_FLAG_2, int, tree )
+ fn_1( DECL_LANG_FLAG_3, int, tree )
+ fn_1( DECL_LANG_FLAG_4, int, tree )
+ fn_1( DECL_LANG_FLAG_5, int, tree )
+ fn_1( DECL_LANG_FLAG_6, int, tree )
+ fn_1( DECL_LANG_FLAG_7, int, tree )
+ fn_1( DECL_NON_ADDR_CONST_P, int, tree )
+ fn_1( DECL_NONADDRESSABLE_P, int, tree )
+ fn_1( DECL_POINTER_ALIAS_SET, int, tree )
+ fn_1( DECL_POINTER_ALIAS_SET_KNOWN_P, int, tree )
+ fn_1( DECL_POINTER_DEPTH, int, tree )
+ fn_1( MAIN_NAME_P, int, tree )
+
+ /* Macros from rtl.h  */
+
+ fn_1( GET_RTX_LENGTH, int, rtx )
+ fn_1( GET_RTX_NAME, char*, rtx )
+ fn_1( GET_RTX_FORMAT, char*, rtx )
+ fn_1( GET_RTX_CLASS, char, rtx )
+ fn_1( GET_CODE, int, rtx )
+ fn_1( GET_MODE, int, rtx )
+ fn_1( RTX_INTEGRATED_P, int, rtx )
+ fn_1( RTX_UNCHANGING_P, int, rtx )
+ fn_1( RTX_FRAME_RELATED_P, int, rtx )
+ fn_1( GET_NUM_ELEM, int, rtvec )
+ fn_1( REG_P, int, rtx )
+ fn_1( LABEL_P, int, rtx )
+ fn_1( JUMP_P, int, rtx )
+ fn_1( NOTE_P, int, rtx )
+ fn_1( BARRIER_P, int, rtx )
+ fn_1( JUMP_TABLE_DATA_P, int, rtx )
+ fn_1( CONSTANT_P, int, rtx )
+ fn_2( RTVEC_ELT, rtx, rtvec, int )
+ fn_2( XWINT, HOST_WIDE_INT, rtx, int )
+ fn_2( XINT, int, rtx, int )
+ fn_2( XSTR, char*, rtx, int )
+ fn_2( XEXP, rtx, rtx, int )
+ fn_2( XVEC, rtvec, rtx, int )
+ fn_2( XMODE, enum machine_mode, rtx, int )
+ fn_2( XBITMAP, struct bitmap_head_def *, rtx, int )
+ fn_2( XTREE, tree, rtx, int )
+ fn_2( XBBDEF, struct basic_block_def *, rtx, int )
+ fn_3( XVECEXP, rtx, rtx, int, int )
+ fn_2( XVECLEN, int, rtx, int )
+ fn_2( X0WINT, HOST_WIDE_INT, rtx, int )
+ fn_2( X0INT, int, rtx, int )
+ fn_2( X0UINT, unsigned int, rtx, int )
+ fn_2( X0STR, char *, rtx, int )
+ fn_2( X0EXP, rtx, rtx, int )
+ fn_2( X0VEC, rtvec, rtx, int )
+ fn_2( X0MODE, enum machine_mode, rtx, int )
+ fn_2( X0BITMAP, struct bitmap_head_def *, rtx, int )
+ fn_2( X0TREE, tree, rtx, int )
+ fn_2( X0BBDEF, struct basic_block_def *, rtx, int )
+ fn_2( X0ADVFLAGS, addr_diff_vec_flags, rtx, int )
+ fn_2( X0CSELIB, struct cselib_val_struct *, rtx, int )
+ fn_3( XCWINT, HOST_WIDE_INT, rtx, int, int )
+ fn_3( XCINT, int, rtx, int, int )
+ fn_3( XCUINT, unsigned int, rtx, int, int )
+ fn_3( XCSTR, char *, rtx, int, int )
+ fn_3( XCEXP, rtx, rtx, int, int )
+ fn_3( XCVEC, rtvec, rtx, int, int )
+ fn_3( XCMODE, enum machine_mode, rtx, int, int )
+ fn_3( XCBITMAP, struct bitmap_head_def *, rtx, int, int )
+ fn_3( XCTREE, tree, rtx, int, int )
+ fn_3( XCBBDEF, struct basic_block_def *, rtx, int, int )
+ fn_3( XCADVFLAGS, addr_diff_vec_flags, rtx, int, int )
+ fn_3( XCCSELIB, struct cselib_val_struct *, rtx, int, int )
+ fn_4( XCVECEXP, rtx, rtx, int, int, int )
+ fn_3( XCVECLEN, int, rtx, int, int )
+ fn_4( XC2EXP, rtx, rtx, int, int, int )
+ fn_1( INSN_P, int, rtx )
+ fn_1( INSN_UID, int, rtx )
+ fn_1( PREV_INSN, rtx, rtx )
+ fn_1( NEXT_INSN, rtx, rtx )
+ fn_1( PATTERN, rtx, rtx )
+ fn_1( INSN_CODE, int, rtx )
+ fn_1( LOG_LINKS, rtx, rtx )
+ fn_1( INSN_DELETED_P, int, rtx )
+ fn_1( CONST_CALL_P, int, rtx )
+ fn_1( SIBLING_CALL_P, int, rtx )
+ fn_1( INSN_ANNULLED_BRANCH_P, int, rtx )
+ fn_1( INSN_DEAD_CODE_P, int, rtx )
+ fn_1( INSN_FROM_TARGET_P, int, rtx )
+ fn_1( ADDR_DIFF_VEC_FLAGS, addr_diff_vec_flags, rtx )
+ fn_1( CSELIB_VAL_PTR, struct cselib_val_struct *, rtx )
+ fn_1( REG_NOTES, rtx, rtx )
+ fn_1( REG_NOTE_KIND, enum reg_note, rtx )
+ fn_1( GET_REG_NOTE_NAME, char *, rtx )
+ fn_1( CALL_INSN_FUNCTION_USAGE, rtx, rtx )
+ fn_1( CODE_LABEL_NUMBER, int, rtx )
+ fn_1( NOTE_SOURCE_FILE, char *, rtx )
+ fn_1( NOTE_BLOCK, tree, rtx )
+ fn_1( NOTE_EH_HANDLER, int, rtx )
+ fn_1( NOTE_RANGE_INFO, rtx, rtx )
+ fn_1( NOTE_LIVE_INFO, rtx, rtx )
+ fn_1( NOTE_BASIC_BLOCK, struct basic_block_def *, rtx )
+ fn_1( NOTE_EXPECTED_VALUE, rtx, rtx )
+ fn_1( NOTE_LINE_NUMBER, int, rtx )
+ fn_1( NOTE_INSN_BASIC_BLOCK_P, int, rtx )
+ fn_1( GET_NOTE_INSN_NAME, char*, int )
+ fn_1( LABEL_NAME, char*, rtx )
+ fn_1( LABEL_NUSES, int, rtx )
+ fn_1( LABEL_ALTERNATE_NAME, char *, rtx )
+ fn_1( ADDRESSOF_REGNO, int, rtx )
+ fn_1( ADDRESSOF_DECL, tree, rtx )
+ fn_1( JUMP_LABEL, rtx, rtx )
+ fn_1( LABEL_REFS, rtx, rtx )
+ fn_1( LABEL_NEXTREF, rtx, rtx )
+ fn_1( CONTAINING_INSN, rtx, rtx )
+ fn_1( REGNO, int, rtx )
+ fn_1( ORIGINAL_REGNO, unsigned int, rtx )
+ fn_1( REG_FUNCTION_VALUE_P, int, rtx )
+ fn_1( REG_USERVAR_P, int, rtx )
+ fn_1( REG_POINTER, int, rtx )
+ fn_1( HARD_REGISTER_P, int, rtx )
+ fn_1( HARD_REGISTER_NUM_P, int, int )
+ fn_1( INTVAL, HOST_WIDE_INT, rtx )
+ fn_1( CONST_DOUBLE_LOW, HOST_WIDE_INT, rtx )
+ fn_1( CONST_DOUBLE_HIGH, HOST_WIDE_INT, rtx )
+ fn_1( CONST_DOUBLE_CHAIN, rtx, rtx )
+ fn_1( CONST_DOUBLE_MEM, rtx, rtx )
+ fn_1( SUBREG_REG, rtx, rtx )
+ fn_1( SUBREG_BYTE, unsigned int, rtx )
+ fn_1( SUBREG_PROMOTED_VAR_P, int, rtx )
+ fn_1( SUBREG_PROMOTED_UNSIGNED_P, int, rtx )
+ fn_1( ASM_OPERANDS_TEMPLATE, char *, rtx )
+ fn_1( ASM_OPERANDS_OUTPUT_CONSTRAINT, char *, rtx )
+ fn_1( ASM_OPERANDS_OUTPUT_IDX, int, rtx )
+ fn_1( ASM_OPERANDS_INPUT_VEC, rtvec, rtx )
+ fn_1( ASM_OPERANDS_INPUT_CONSTRAINT_VEC, rtvec, rtx )
+ fn_2( ASM_OPERANDS_INPUT, rtx, rtx, int )
+ fn_1( ASM_OPERANDS_INPUT_LENGTH, int, rtx )
+ fn_2( ASM_OPERANDS_INPUT_CONSTRAINT_EXP, rtx, rtx, int )
+ fn_2( ASM_OPERANDS_INPUT_CONSTRAINT, char*, rtx, int )
+ fn_2( ASM_OPERANDS_INPUT_MODE, int, rtx, int )
+ fn_1( ASM_OPERANDS_SOURCE_FILE, char *, rtx )
+ fn_1( ASM_OPERANDS_SOURCE_LINE, int, rtx )
+ fn_1( MEM_VOLATILE_P, int, rtx )
+ fn_1( MEM_IN_STRUCT_P, int, rtx )
+ fn_1( MEM_SCALAR_P, int, rtx )
+ fn_1( MEM_ALIAS_SET, int, rtx )
+ fn_2( MEM_COPY_ATTRIBUTES, int, rtx, rtx )
+ fn_1( LABEL_OUTSIDE_LOOP_P, int, rtx )
+ fn_1( LABEL_REF_NONLOCAL_P, int, rtx )
+ fn_1( LABEL_PRESERVE_P, int, rtx )
+ fn_1( REG_LOOP_TEST_P, int, rtx )
+ fn_1( SCHED_GROUP_P, int, rtx )
+ fn_1( LINK_COST_ZERO, int, rtx )
+ fn_1( LINK_COST_FREE, int, rtx )
+ fn_1( SET_DEST, rtx, rtx )
+ fn_1( SET_SRC, rtx, rtx )
+ fn_1( TRAP_CONDITION, rtx, rtx )
+ fn_1( TRAP_CODE, rtx, rtx )
+ fn_1( COND_EXEC_TEST, rtx, rtx )
+ fn_1( COND_EXEC_CODE, rtx, rtx )
+ fn_1( CONSTANT_POOL_ADDRESS_P, int, rtx )
+ fn_1( STRING_POOL_ADDRESS_P, int, rtx )
+ fn_1( SYMBOL_REF_FLAG, int, rtx )
+ fn_1( SYMBOL_REF_USED, int, rtx )
+ fn_2( FIND_REG_INC_NOTE, rtx, rtx, rtx )
+ fn_1( RANGE_INFO_NOTE_START, rtx, rtx )
+ fn_1( RANGE_INFO_NOTE_END, rtx, rtx )
+ fn_1( RANGE_INFO_REGS, rtvec, rtx )
+ fn_2( RANGE_INFO_REGS_REG, rtx, rtx, int )
+ fn_1( RANGE_INFO_NUM_REGS, int, rtx )
+ fn_1( RANGE_INFO_NCALLS, int, rtx )
+ fn_1( RANGE_INFO_NINSNS, int, rtx )
+ fn_1( RANGE_INFO_UNIQUE, int, rtx )
+ fn_1( RANGE_INFO_BB_START, int, rtx )
+ fn_1( RANGE_INFO_BB_END, int, rtx )
+ fn_1( RANGE_INFO_LOOP_DEPTH, int, rtx )
+ fn_1( RANGE_INFO_LIVE_START, struct bitmap_head_def *, rtx )
+ fn_1( RANGE_INFO_LIVE_END, struct bitmap_head_def *, rtx )
+ fn_1( RANGE_INFO_MARKER_START, int, rtx )
+ fn_1( RANGE_INFO_MARKER_END, int, rtx )
+ fn_2( RANGE_REG_PSEUDO, int, rtx, int )
+ fn_2( RANGE_REG_COPY, int, rtx, int )
+ fn_2( RANGE_REG_REFS, int, rtx, int )
+ fn_2( RANGE_REG_SETS, int, rtx, int )
+ fn_2( RANGE_REG_DEATHS, int, rtx, int )
+ fn_2( RANGE_REG_COPY_FLAGS, int, rtx, int )
+ fn_2( RANGE_REG_LIVE_LENGTH, int, rtx, int )
+ fn_2( RANGE_REG_N_CALLS, int, rtx, int )
+ fn_2( RANGE_REG_SYMBOL_NODE, tree, rtx, int )
+ fn_2( RANGE_REG_BLOCK_NODE, tree, rtx, int )
+ fn_1( RANGE_VAR_LIST, rtx, rtx )
+ fn_1( RANGE_VAR_BLOCK, tree, rtx )
+ fn_1( RANGE_VAR_NUM, int, rtx )
+ fn_1( RANGE_LIVE_BITMAP, struct bitmap_head_def *, rtx )
+ fn_1( RANGE_LIVE_ORIG_BLOCK, int, rtx )
+ fn_1( PHI_NODE_P, int, rtx )
+ fn_1( CONST0_RTX, rtx, rtx )
+ fn_1( CONST1_RTX, rtx, rtx )
+ fn_1( CONST2_RTX, rtx, rtx )
+ fn_1( GEN_INT, rtx, int )
+ fn_1( COSTS_N_INSNS, int, int )
+
+ /* Macros from c-common.h  */
+
+ fn_1( DECL_SAVED_TREE, tree, tree)
+ fn_1( DECL_NUM_STMTS, HOST_WIDE_INT, tree)
+ fn_1( C_TYPE_OBJECT_P, int, tree)
+ fn_1( C_TYPE_INCOMPLETE_P, int, tree)
+ fn_1( C_TYPE_FUNCTION_P, int, tree)
+ fn_1( C_TYPE_QUALS, int, tree)
+ fn_1( C_TYPE_OBJECT_OR_INCOMPLETE_P, int, tree)
+ fn_1( C_EXP_ORIGINAL_CODE, enum tree_code, tree)
+ fn_1( C_PROMOTING_INTEGER_TYPE_P, int, tree)
+ fn_1( STMT_IS_FULL_EXPR_P, int, tree)
+ fn_1( IF_COND, tree, tree)
+ fn_1( THEN_CLAUSE, tree, tree)
+ fn_1( ELSE_CLAUSE, tree, tree)
+ fn_1( WHILE_COND, tree, tree)
+ fn_1( WHILE_BODY, tree, tree)
+ fn_1( DO_COND, tree, tree)
+ fn_1( DO_BODY, tree, tree)
+ /*fn_1( RETURN_EXPR, tree, tree)*/
+ fn_1( EXPR_STMT_EXPR, tree, tree)
+ fn_1( FOR_INIT_STMT, tree, tree)
+ fn_1( FOR_COND, tree, tree)
+ fn_1( FOR_EXPR, tree, tree)
+ fn_1( FOR_BODY, tree, tree)
+ fn_1( SWITCH_COND, tree, tree)
+ fn_1( SWITCH_BODY, tree, tree)
+ fn_1( CASE_LOW, tree, tree)
+ fn_1( CASE_HIGH, tree, tree)
+ fn_1( CASE_LABEL_DECL, tree, tree)
+ fn_1( GOTO_DESTINATION, tree, tree)
+ fn_1( COMPOUND_BODY, tree, tree)
+ fn_1( ASM_CV_QUAL, tree, tree)
+ fn_1( ASM_STRING, tree, tree)
+ fn_1( ASM_OUTPUTS, tree, tree)
+ fn_1( ASM_INPUTS, tree, tree)
+ fn_1( ASM_CLOBBERS, tree, tree)
+ fn_1( DECL_STMT_DECL, tree, tree)
+ fn_1( STMT_EXPR_STMT, tree, tree)
+ fn_1( LABEL_STMT_LABEL, tree, tree)
+ fn_1( SCOPE_BEGIN_P, int, tree)
+ fn_1( SCOPE_END_P, int, tree)
+ fn_1( SCOPE_STMT_BLOCK, tree, tree)
+ fn_1( SCOPE_NULLIFIED_P, int, tree)
+ fn_1( SCOPE_NO_CLEANUPS_P, int, tree)
+ fn_1( SCOPE_PARTIAL_P, int, tree)
+ fn_1( ASM_VOLATILE_P, int, tree)
+ fn_1( STMT_LINENO, int, tree)
+ fn_1( STMT_LINENO_FOR_FN_P, int, tree)
+ fn_1( NEW_FOR_SCOPE_P, int, tree)
+ fn_1( ASM_INPUT_P, int, tree)
+ fn_1( DECL_ANON_UNION_ELEMS, tree, tree)
+ fn_1( DECL_C_BIT_FIELD, int, tree)
+ fn_1( SET_DECL_C_BIT_FIELD, int, tree)
+ fn_1( CLEAR_DECL_C_BIT_FIELD, int, tree)
+ fn_1( DECL_C_HARD_REGISTER, int, tree)
+ fn_1( COMPOUND_STMT_NO_SCOPE, int, tree)
+
+ #endif /* ENABLE_IDEBUG */



More information about the Gcc-patches mailing list