Deleted Added
full compact
tree.h (50397) tree.h (52284)
1/* Front-end tree definitions for GNU compiler.
1/* Front-end tree definitions for GNU compiler.
2 Copyright (C) 1989, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
2 Copyright (C) 1989, 93-98, 1999 Free Software Foundation, Inc.
3
4This file is part of GNU CC.
5
6GNU CC is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 2, or (at your option)
9any later version.
10

--- 85 unchanged lines hidden (view full) ---

96 BUILT_IN_SAVEREGS,
97 BUILT_IN_CLASSIFY_TYPE,
98 BUILT_IN_NEXT_ARG,
99 BUILT_IN_ARGS_INFO,
100 BUILT_IN_CONSTANT_P,
101 BUILT_IN_FRAME_ADDRESS,
102 BUILT_IN_RETURN_ADDRESS,
103 BUILT_IN_AGGREGATE_INCOMING_ADDRESS,
3
4This file is part of GNU CC.
5
6GNU CC is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 2, or (at your option)
9any later version.
10

--- 85 unchanged lines hidden (view full) ---

96 BUILT_IN_SAVEREGS,
97 BUILT_IN_CLASSIFY_TYPE,
98 BUILT_IN_NEXT_ARG,
99 BUILT_IN_ARGS_INFO,
100 BUILT_IN_CONSTANT_P,
101 BUILT_IN_FRAME_ADDRESS,
102 BUILT_IN_RETURN_ADDRESS,
103 BUILT_IN_AGGREGATE_INCOMING_ADDRESS,
104 BUILT_IN_CALLER_RETURN_ADDRESS,
105 BUILT_IN_APPLY_ARGS,
106 BUILT_IN_APPLY,
107 BUILT_IN_RETURN,
108 BUILT_IN_SETJMP,
109 BUILT_IN_LONGJMP,
110 BUILT_IN_TRAP,
111
112 /* Various hooks for the DWARF 2 __throw routine. */
104 BUILT_IN_APPLY_ARGS,
105 BUILT_IN_APPLY,
106 BUILT_IN_RETURN,
107 BUILT_IN_SETJMP,
108 BUILT_IN_LONGJMP,
109 BUILT_IN_TRAP,
110
111 /* Various hooks for the DWARF 2 __throw routine. */
113 BUILT_IN_FP, BUILT_IN_SP,
114 BUILT_IN_UNWIND_INIT,
112 BUILT_IN_UNWIND_INIT,
113 BUILT_IN_DWARF_CFA,
115 BUILT_IN_DWARF_FP_REGNUM,
116 BUILT_IN_DWARF_REG_SIZE,
117 BUILT_IN_FROB_RETURN_ADDR,
118 BUILT_IN_EXTRACT_RETURN_ADDR,
114 BUILT_IN_DWARF_FP_REGNUM,
115 BUILT_IN_DWARF_REG_SIZE,
116 BUILT_IN_FROB_RETURN_ADDR,
117 BUILT_IN_EXTRACT_RETURN_ADDR,
119 BUILT_IN_SET_RETURN_ADDR_REG,
120 BUILT_IN_EH_STUB_OLD,
121 BUILT_IN_EH_STUB,
122 BUILT_IN_SET_EH_REGS,
118 BUILT_IN_EH_RETURN,
123
124 /* C++ extensions */
125 BUILT_IN_NEW,
126 BUILT_IN_VEC_NEW,
127 BUILT_IN_DELETE,
128 BUILT_IN_VEC_DELETE,
129
130 /* Upper bound on non-language-specific builtins. */

--- 91 unchanged lines hidden (view full) ---

222 public_flag:
223
224 TREE_OVERFLOW in
225 INTEGER_CST, REAL_CST, COMPLEX_CST
226 TREE_PUBLIC in
227 VAR_DECL or FUNCTION_DECL
228 TREE_VIA_PUBLIC in
229 TREE_LIST or TREE_VEC
119
120 /* C++ extensions */
121 BUILT_IN_NEW,
122 BUILT_IN_VEC_NEW,
123 BUILT_IN_DELETE,
124 BUILT_IN_VEC_DELETE,
125
126 /* Upper bound on non-language-specific builtins. */

--- 91 unchanged lines hidden (view full) ---

218 public_flag:
219
220 TREE_OVERFLOW in
221 INTEGER_CST, REAL_CST, COMPLEX_CST
222 TREE_PUBLIC in
223 VAR_DECL or FUNCTION_DECL
224 TREE_VIA_PUBLIC in
225 TREE_LIST or TREE_VEC
226 EXPR_WFL_EMIT_LINE_NOTE in
227 EXPR_WITH_FILE_LOCATION
230
231 private_flag:
232
233 TREE_VIA_PRIVATE in
234 TREE_LIST or TREE_VEC
235 TREE_PRIVATE in
236 ??? unspecified nodes
237

--- 86 unchanged lines hidden (view full) ---

324#define CHAIN_CHECK(t, c1, c2) (t)
325#endif
326
327#define TREE_CHECK(t, code) DO_CHECK (tree_check, t, code)
328#define TREE_CHECK1(t, code) DO_CHECK1 (tree_check, t, code)
329
330#include "tree-check.h"
331
228
229 private_flag:
230
231 TREE_VIA_PRIVATE in
232 TREE_LIST or TREE_VEC
233 TREE_PRIVATE in
234 ??? unspecified nodes
235

--- 86 unchanged lines hidden (view full) ---

322#define CHAIN_CHECK(t, c1, c2) (t)
323#endif
324
325#define TREE_CHECK(t, code) DO_CHECK (tree_check, t, code)
326#define TREE_CHECK1(t, code) DO_CHECK1 (tree_check, t, code)
327
328#include "tree-check.h"
329
332#define TYPE_CHECK(t) DO_CHECK (tree_class_check, t, 't')
333#define TYPE_CHECK1(t) DO_CHECK1 (tree_class_check, t, 't')
330#define TYPE_CHECK(tree) DO_CHECK (tree_class_check, tree, 't')
331#define TYPE_CHECK1(tree) DO_CHECK1 (tree_class_check, tree, 't')
334#define DECL_CHECK(t) DO_CHECK (tree_class_check, t, 'd')
335#define DECL_CHECK1(t) DO_CHECK1 (tree_class_check, t, 'd')
336#define CST_CHECK(t) DO_CHECK (tree_class_check, t, 'c')
337#define CST_CHECK1(t) DO_CHECK1 (tree_class_check, t, 'c')
338#define EXPR_CHECK(t) DO_CHECK (expr_check, t, 0)
339
340/* Chained checks. The last check has to succeed, the others may fail. */
341#define CST_OR_CONSTRUCTOR_CHECK(t) \

--- 339 unchanged lines hidden (view full) ---

681
682/* In a CONSTRUCTOR node. */
683#define CONSTRUCTOR_ELTS(NODE) TREE_OPERAND (NODE, 1)
684
685/* In ordinary expression nodes. */
686#define TREE_OPERAND(NODE, I) (EXPR_CHECK (NODE)->exp.operands[I])
687#define TREE_COMPLEXITY(NODE) (EXPR_CHECK (NODE)->exp.complexity)
688
332#define DECL_CHECK(t) DO_CHECK (tree_class_check, t, 'd')
333#define DECL_CHECK1(t) DO_CHECK1 (tree_class_check, t, 'd')
334#define CST_CHECK(t) DO_CHECK (tree_class_check, t, 'c')
335#define CST_CHECK1(t) DO_CHECK1 (tree_class_check, t, 'c')
336#define EXPR_CHECK(t) DO_CHECK (expr_check, t, 0)
337
338/* Chained checks. The last check has to succeed, the others may fail. */
339#define CST_OR_CONSTRUCTOR_CHECK(t) \

--- 339 unchanged lines hidden (view full) ---

679
680/* In a CONSTRUCTOR node. */
681#define CONSTRUCTOR_ELTS(NODE) TREE_OPERAND (NODE, 1)
682
683/* In ordinary expression nodes. */
684#define TREE_OPERAND(NODE, I) (EXPR_CHECK (NODE)->exp.operands[I])
685#define TREE_COMPLEXITY(NODE) (EXPR_CHECK (NODE)->exp.complexity)
686
689/* In expression with file location information. */
687/* In a LABELED_BLOCK_EXPR node. */
688#define LABELED_BLOCK_LABEL(NODE) TREE_OPERAND (NODE, 0)
689#define LABELED_BLOCK_BODY(NODE) TREE_OPERAND (NODE, 1)
690
691/* In a EXIT_BLOCK_EXPR node. */
692#define EXIT_BLOCK_LABELED_BLOCK(NODE) TREE_OPERAND (NODE, 0)
693#define EXIT_BLOCK_RETURN(NODE) TREE_OPERAND (NODE, 1)
694
695/* In a LOOP_EXPR node. */
696#define LOOP_EXPR_BODY(NODE) TREE_OPERAND (NODE, 0)
697
698/* In a EXPR_WITH_FILE_LOCATION node. */
690#define EXPR_WFL_NODE(NODE) TREE_OPERAND((NODE), 0)
691#define EXPR_WFL_FILENAME(NODE) (IDENTIFIER_POINTER ((NODE)->common.chain))
692#define EXPR_WFL_FILENAME_NODE(NODE) ((NODE)->common.chain)
693#define EXPR_WFL_LINENO(NODE) (EXPR_CHECK (NODE)->exp.complexity >> 12)
694#define EXPR_WFL_COLNO(NODE) (EXPR_CHECK (NODE)->exp.complexity & 0xfff)
695#define EXPR_WFL_LINECOL(NODE) (EXPR_CHECK (NODE)->exp.complexity)
696#define EXPR_WFL_SET_LINECOL(NODE, LINE, COL) \
697 (EXPR_WFL_LINECOL(NODE) = ((LINE) << 12) | ((COL) & 0xfff))
699#define EXPR_WFL_NODE(NODE) TREE_OPERAND((NODE), 0)
700#define EXPR_WFL_FILENAME(NODE) (IDENTIFIER_POINTER ((NODE)->common.chain))
701#define EXPR_WFL_FILENAME_NODE(NODE) ((NODE)->common.chain)
702#define EXPR_WFL_LINENO(NODE) (EXPR_CHECK (NODE)->exp.complexity >> 12)
703#define EXPR_WFL_COLNO(NODE) (EXPR_CHECK (NODE)->exp.complexity & 0xfff)
704#define EXPR_WFL_LINECOL(NODE) (EXPR_CHECK (NODE)->exp.complexity)
705#define EXPR_WFL_SET_LINECOL(NODE, LINE, COL) \
706 (EXPR_WFL_LINECOL(NODE) = ((LINE) << 12) | ((COL) & 0xfff))
698#define EXPR_WFL_EMIT_LINE_NOTE(NODE) ((NODE)->common.lang_flag_0)
707#define EXPR_WFL_EMIT_LINE_NOTE(NODE) ((NODE)->common.public_flag)
699
700struct tree_exp
701{
702 char common[sizeof (struct tree_common)];
703 int complexity;
704 union tree_node *operands[1];
705};
706

--- 66 unchanged lines hidden (view full) ---

773#define TYPE_MIN_VALUE(NODE) (TYPE_CHECK (NODE)->type.minval)
774#define TYPE_MAX_VALUE(NODE) (TYPE_CHECK (NODE)->type.maxval)
775#define TYPE_PRECISION(NODE) (TYPE_CHECK (NODE)->type.precision)
776#define TYPE_SYMTAB_ADDRESS(NODE) (TYPE_CHECK (NODE)->type.symtab.address)
777#define TYPE_SYMTAB_POINTER(NODE) (TYPE_CHECK (NODE)->type.symtab.pointer)
778#define TYPE_NAME(NODE) (TYPE_CHECK (NODE)->type.name)
779#define TYPE_NEXT_VARIANT(NODE) (TYPE_CHECK (NODE)->type.next_variant)
780#define TYPE_MAIN_VARIANT(NODE) (TYPE_CHECK (NODE)->type.main_variant)
708
709struct tree_exp
710{
711 char common[sizeof (struct tree_common)];
712 int complexity;
713 union tree_node *operands[1];
714};
715

--- 66 unchanged lines hidden (view full) ---

782#define TYPE_MIN_VALUE(NODE) (TYPE_CHECK (NODE)->type.minval)
783#define TYPE_MAX_VALUE(NODE) (TYPE_CHECK (NODE)->type.maxval)
784#define TYPE_PRECISION(NODE) (TYPE_CHECK (NODE)->type.precision)
785#define TYPE_SYMTAB_ADDRESS(NODE) (TYPE_CHECK (NODE)->type.symtab.address)
786#define TYPE_SYMTAB_POINTER(NODE) (TYPE_CHECK (NODE)->type.symtab.pointer)
787#define TYPE_NAME(NODE) (TYPE_CHECK (NODE)->type.name)
788#define TYPE_NEXT_VARIANT(NODE) (TYPE_CHECK (NODE)->type.next_variant)
789#define TYPE_MAIN_VARIANT(NODE) (TYPE_CHECK (NODE)->type.main_variant)
781#define TYPE_BINFO(NODE) (TYPE_CHECK (NODE)->type.binfo)
782#define TYPE_NONCOPIED_PARTS(NODE) (TYPE_CHECK (NODE)->type.noncopied_parts)
783#define TYPE_CONTEXT(NODE) (TYPE_CHECK (NODE)->type.context)
784#define TYPE_OBSTACK(NODE) (TYPE_CHECK (NODE)->type.obstack)
785#define TYPE_LANG_SPECIFIC(NODE) (TYPE_CHECK (NODE)->type.lang_specific)
786
790#define TYPE_NONCOPIED_PARTS(NODE) (TYPE_CHECK (NODE)->type.noncopied_parts)
791#define TYPE_CONTEXT(NODE) (TYPE_CHECK (NODE)->type.context)
792#define TYPE_OBSTACK(NODE) (TYPE_CHECK (NODE)->type.obstack)
793#define TYPE_LANG_SPECIFIC(NODE) (TYPE_CHECK (NODE)->type.lang_specific)
794
795/* For aggregate types, information about this type, as a base type
796 for itself. Used in a language-dependent way for types that are
797 neither a RECORD_TYPE, QUAL_UNION_TYPE, nor a UNION_TYPE. */
798#define TYPE_BINFO(NODE) (TYPE_CHECK (NODE)->type.binfo)
799
787/* The (language-specific) typed-based alias set for this type.
788 Objects whose TYPE_ALIAS_SETs are different cannot alias each
789 other. If the TYPE_ALIAS_SET is -1, no alias set has yet been
790 assigned to this type. If the TYPE_ALIAS_SET is 0, objects of this
791 type can alias objects of any type. */
792#define TYPE_ALIAS_SET(NODE) (TYPE_CHECK (NODE)->type.alias_set)
793
794/* Nonzero iff the typed-based alias set for this type has been

--- 17 unchanged lines hidden (view full) ---

812#define TYPE_NO_FORCE_BLK(NODE) (TYPE_CHECK (NODE)->type.no_force_blk_flag)
813
814/* Nonzero in a type considered volatile as a whole. */
815#define TYPE_VOLATILE(NODE) ((NODE)->common.volatile_flag)
816
817/* Means this type is const-qualified. */
818#define TYPE_READONLY(NODE) ((NODE)->common.readonly_flag)
819
800/* The (language-specific) typed-based alias set for this type.
801 Objects whose TYPE_ALIAS_SETs are different cannot alias each
802 other. If the TYPE_ALIAS_SET is -1, no alias set has yet been
803 assigned to this type. If the TYPE_ALIAS_SET is 0, objects of this
804 type can alias objects of any type. */
805#define TYPE_ALIAS_SET(NODE) (TYPE_CHECK (NODE)->type.alias_set)
806
807/* Nonzero iff the typed-based alias set for this type has been

--- 17 unchanged lines hidden (view full) ---

825#define TYPE_NO_FORCE_BLK(NODE) (TYPE_CHECK (NODE)->type.no_force_blk_flag)
826
827/* Nonzero in a type considered volatile as a whole. */
828#define TYPE_VOLATILE(NODE) ((NODE)->common.volatile_flag)
829
830/* Means this type is const-qualified. */
831#define TYPE_READONLY(NODE) ((NODE)->common.readonly_flag)
832
833/* If nonzero, this type is `restrict'-qualified, in the C sense of
834 the term. */
835#define TYPE_RESTRICT(NODE) (TYPE_CHECK (NODE)->type.restrict_flag)
836
837/* There is a TYPE_QUAL value for each type qualifier. They can be
838 combined by bitwise-or to form the complete set of qualifiers for a
839 type. */
840
841#define TYPE_UNQUALIFIED 0x0
842#define TYPE_QUAL_CONST 0x1
843#define TYPE_QUAL_VOLATILE 0x2
844#define TYPE_QUAL_RESTRICT 0x4
845
846/* The set of type qualifiers for this type. */
847#define TYPE_QUALS(NODE) \
848 ((TYPE_READONLY(NODE) * TYPE_QUAL_CONST) | \
849 (TYPE_VOLATILE(NODE) * TYPE_QUAL_VOLATILE) | \
850 (TYPE_RESTRICT(NODE) * TYPE_QUAL_RESTRICT))
851
820/* These flags are available for each language front end to use internally. */
821#define TYPE_LANG_FLAG_0(NODE) (TYPE_CHECK (NODE)->type.lang_flag_0)
822#define TYPE_LANG_FLAG_1(NODE) (TYPE_CHECK (NODE)->type.lang_flag_1)
823#define TYPE_LANG_FLAG_2(NODE) (TYPE_CHECK (NODE)->type.lang_flag_2)
824#define TYPE_LANG_FLAG_3(NODE) (TYPE_CHECK (NODE)->type.lang_flag_3)
825#define TYPE_LANG_FLAG_4(NODE) (TYPE_CHECK (NODE)->type.lang_flag_4)
826#define TYPE_LANG_FLAG_5(NODE) (TYPE_CHECK (NODE)->type.lang_flag_5)
827#define TYPE_LANG_FLAG_6(NODE) (TYPE_CHECK (NODE)->type.lang_flag_6)

--- 35 unchanged lines hidden (view full) ---

863 enum machine_mode mode : 8;
864#endif
865
866 unsigned string_flag : 1;
867 unsigned no_force_blk_flag : 1;
868 unsigned needs_constructing_flag : 1;
869 unsigned transparent_union_flag : 1;
870 unsigned packed_flag : 1;
852/* These flags are available for each language front end to use internally. */
853#define TYPE_LANG_FLAG_0(NODE) (TYPE_CHECK (NODE)->type.lang_flag_0)
854#define TYPE_LANG_FLAG_1(NODE) (TYPE_CHECK (NODE)->type.lang_flag_1)
855#define TYPE_LANG_FLAG_2(NODE) (TYPE_CHECK (NODE)->type.lang_flag_2)
856#define TYPE_LANG_FLAG_3(NODE) (TYPE_CHECK (NODE)->type.lang_flag_3)
857#define TYPE_LANG_FLAG_4(NODE) (TYPE_CHECK (NODE)->type.lang_flag_4)
858#define TYPE_LANG_FLAG_5(NODE) (TYPE_CHECK (NODE)->type.lang_flag_5)
859#define TYPE_LANG_FLAG_6(NODE) (TYPE_CHECK (NODE)->type.lang_flag_6)

--- 35 unchanged lines hidden (view full) ---

895 enum machine_mode mode : 8;
896#endif
897
898 unsigned string_flag : 1;
899 unsigned no_force_blk_flag : 1;
900 unsigned needs_constructing_flag : 1;
901 unsigned transparent_union_flag : 1;
902 unsigned packed_flag : 1;
903 unsigned restrict_flag : 1;
904
871 unsigned lang_flag_0 : 1;
872 unsigned lang_flag_1 : 1;
873 unsigned lang_flag_2 : 1;
874 unsigned lang_flag_3 : 1;
875 unsigned lang_flag_4 : 1;
876 unsigned lang_flag_5 : 1;
877 unsigned lang_flag_6 : 1;
905 unsigned lang_flag_0 : 1;
906 unsigned lang_flag_1 : 1;
907 unsigned lang_flag_2 : 1;
908 unsigned lang_flag_3 : 1;
909 unsigned lang_flag_4 : 1;
910 unsigned lang_flag_5 : 1;
911 unsigned lang_flag_6 : 1;
878 /* room for 4 more bits */
912 /* room for 3 more bits */
879
880 unsigned int align;
881 union tree_node *pointer_to;
882 union tree_node *reference_to;
883 union {int address; char *pointer; } symtab;
884 union tree_node *name;
885 union tree_node *minval;
886 union tree_node *maxval;

--- 86 unchanged lines hidden (view full) ---

973 uses of inheritance using the binfo nodes themselves (instead of
974 consing new space pointing to binfo nodes).
975 It is up to the language-dependent front-ends to maintain
976 this information as necessary. */
977#define BINFO_INHERITANCE_CHAIN(NODE) TREE_VEC_ELT ((NODE), 0)
978
979/* Define fields and accessors for nodes representing declared names. */
980
913
914 unsigned int align;
915 union tree_node *pointer_to;
916 union tree_node *reference_to;
917 union {int address; char *pointer; } symtab;
918 union tree_node *name;
919 union tree_node *minval;
920 union tree_node *maxval;

--- 86 unchanged lines hidden (view full) ---

1007 uses of inheritance using the binfo nodes themselves (instead of
1008 consing new space pointing to binfo nodes).
1009 It is up to the language-dependent front-ends to maintain
1010 this information as necessary. */
1011#define BINFO_INHERITANCE_CHAIN(NODE) TREE_VEC_ELT ((NODE), 0)
1012
1013/* Define fields and accessors for nodes representing declared names. */
1014
1015/* Nonzero if DECL represents a decl. */
1016#define DECL_P(DECL) (TREE_CODE_CLASS (TREE_CODE (DECL)) == 'd')
981/* This is the name of the object as written by the user.
982 It is an IDENTIFIER_NODE. */
983#define DECL_NAME(NODE) (DECL_CHECK (NODE)->decl.name)
984/* This is the name of the object as the assembler will see it
985 (but before any translations made by ASM_OUTPUT_LABELREF).
986 Often this is the same as DECL_NAME.
987 It is an IDENTIFIER_NODE. */
988#define DECL_ASSEMBLER_NAME(NODE) (DECL_CHECK (NODE)->decl.assembler_name)

--- 94 unchanged lines hidden (view full) ---

1083
1084/* For any sort of a ..._DECL node, this points to the original (abstract)
1085 decl node which this decl is an instance of, or else it is NULL indicating
1086 that this decl is not an instance of some other decl. For example,
1087 in a nested declaration of an inline function, this points back to the
1088 definition. */
1089#define DECL_ABSTRACT_ORIGIN(NODE) (DECL_CHECK (NODE)->decl.abstract_origin)
1090
1017/* This is the name of the object as written by the user.
1018 It is an IDENTIFIER_NODE. */
1019#define DECL_NAME(NODE) (DECL_CHECK (NODE)->decl.name)
1020/* This is the name of the object as the assembler will see it
1021 (but before any translations made by ASM_OUTPUT_LABELREF).
1022 Often this is the same as DECL_NAME.
1023 It is an IDENTIFIER_NODE. */
1024#define DECL_ASSEMBLER_NAME(NODE) (DECL_CHECK (NODE)->decl.assembler_name)

--- 94 unchanged lines hidden (view full) ---

1119
1120/* For any sort of a ..._DECL node, this points to the original (abstract)
1121 decl node which this decl is an instance of, or else it is NULL indicating
1122 that this decl is not an instance of some other decl. For example,
1123 in a nested declaration of an inline function, this points back to the
1124 definition. */
1125#define DECL_ABSTRACT_ORIGIN(NODE) (DECL_CHECK (NODE)->decl.abstract_origin)
1126
1127/* Like DECL_ABSTRACT_ORIGIN, but returns NODE if there's no abstract
1128 origin. This is useful when setting the DECL_ABSTRACT_ORIGIN. */
1129#define DECL_ORIGIN(NODE) \
1130 (DECL_ABSTRACT_ORIGIN (NODE) ? DECL_ABSTRACT_ORIGIN (NODE) : NODE)
1131
1091/* Nonzero for any sort of ..._DECL node means this decl node represents
1092 an inline instance of some original (abstract) decl from an inline function;
1093 suppress any warnings about shadowing some other variable. */
1094#define DECL_FROM_INLINE(NODE) (DECL_ABSTRACT_ORIGIN (NODE) != (tree) 0)
1095
1096/* Nonzero if a _DECL means that the name of this decl should be ignored
1097 for symbolic debug purposes. */
1098#define DECL_IGNORED_P(NODE) (DECL_CHECK (NODE)->decl.ignored_flag)

--- 18 unchanged lines hidden (view full) ---

1117/* Language-specific decl information. */
1118#define DECL_LANG_SPECIFIC(NODE) (DECL_CHECK (NODE)->decl.lang_specific)
1119
1120/* In a VAR_DECL or FUNCTION_DECL,
1121 nonzero means external reference:
1122 do not allocate storage, and refer to a definition elsewhere. */
1123#define DECL_EXTERNAL(NODE) (DECL_CHECK (NODE)->decl.external_flag)
1124
1132/* Nonzero for any sort of ..._DECL node means this decl node represents
1133 an inline instance of some original (abstract) decl from an inline function;
1134 suppress any warnings about shadowing some other variable. */
1135#define DECL_FROM_INLINE(NODE) (DECL_ABSTRACT_ORIGIN (NODE) != (tree) 0)
1136
1137/* Nonzero if a _DECL means that the name of this decl should be ignored
1138 for symbolic debug purposes. */
1139#define DECL_IGNORED_P(NODE) (DECL_CHECK (NODE)->decl.ignored_flag)

--- 18 unchanged lines hidden (view full) ---

1158/* Language-specific decl information. */
1159#define DECL_LANG_SPECIFIC(NODE) (DECL_CHECK (NODE)->decl.lang_specific)
1160
1161/* In a VAR_DECL or FUNCTION_DECL,
1162 nonzero means external reference:
1163 do not allocate storage, and refer to a definition elsewhere. */
1164#define DECL_EXTERNAL(NODE) (DECL_CHECK (NODE)->decl.external_flag)
1165
1166/* In a VAR_DECL for a RECORD_TYPE, sets number for non-init_priority
1167 initializatons. */
1168#define DEFAULT_INIT_PRIORITY 65535
1169#define MAX_INIT_PRIORITY 65535
1170#define MAX_RESERVED_INIT_PRIORITY 100
1171
1125/* In a TYPE_DECL
1126 nonzero means the detail info about this type is not dumped into stabs.
1127 Instead it will generate cross reference ('x') of names.
1128 This uses the same flag as DECL_EXTERNAL. */
1129#define TYPE_DECL_SUPPRESS_DEBUG(NODE) (DECL_CHECK (NODE)->decl.external_flag)
1130
1131
1132/* In VAR_DECL and PARM_DECL nodes, nonzero means declared `register'. */

--- 61 unchanged lines hidden (view full) ---

1194
1195/* Used to indicate that this DECL has weak linkage. */
1196#define DECL_WEAK(NODE) (DECL_CHECK (NODE)->decl.weak_flag)
1197
1198/* Used in TREE_PUBLIC decls to indicate that copies of this DECL in
1199 multiple translation units should be merged. */
1200#define DECL_ONE_ONLY(NODE) (DECL_CHECK (NODE)->decl.transparent_union)
1201
1172/* In a TYPE_DECL
1173 nonzero means the detail info about this type is not dumped into stabs.
1174 Instead it will generate cross reference ('x') of names.
1175 This uses the same flag as DECL_EXTERNAL. */
1176#define TYPE_DECL_SUPPRESS_DEBUG(NODE) (DECL_CHECK (NODE)->decl.external_flag)
1177
1178
1179/* In VAR_DECL and PARM_DECL nodes, nonzero means declared `register'. */

--- 61 unchanged lines hidden (view full) ---

1241
1242/* Used to indicate that this DECL has weak linkage. */
1243#define DECL_WEAK(NODE) (DECL_CHECK (NODE)->decl.weak_flag)
1244
1245/* Used in TREE_PUBLIC decls to indicate that copies of this DECL in
1246 multiple translation units should be merged. */
1247#define DECL_ONE_ONLY(NODE) (DECL_CHECK (NODE)->decl.transparent_union)
1248
1249/* Used in a DECL to indicate that, even if it TREE_PUBLIC, it need
1250 not be put out unless it is needed in this translation unit.
1251 Entities like this are shared across translation units (like weak
1252 entities), but are guaranteed to be generated by any translation
1253 unit that needs them, and therefore need not be put out anywhere
1254 where they are not needed. DECL_COMDAT is just a hint to the
1255 back-end; it is up to front-ends which set this flag to ensure
1256 that there will never be any harm, other than bloat, in putting out
1257 something which is DECL_COMDAT. */
1258#define DECL_COMDAT(NODE) (DECL_CHECK (NODE)->decl.comdat_flag)
1259
1260/* Used in FUNCTION_DECLs to indicate that function entry and exit should
1261 be instrumented with calls to support routines. */
1262#define DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT(NODE) ((NODE)->decl.no_instrument_function_entry_exit)
1263
1264/* Used in FUNCTION_DECLs to indicate that in this function,
1265 check-memory-usage should be disabled. */
1266#define DECL_NO_CHECK_MEMORY_USAGE(NODE) ((NODE)->decl.no_check_memory_usage)
1267
1202/* Additional flags for language-specific uses. */
1203#define DECL_LANG_FLAG_0(NODE) (DECL_CHECK (NODE)->decl.lang_flag_0)
1204#define DECL_LANG_FLAG_1(NODE) (DECL_CHECK (NODE)->decl.lang_flag_1)
1205#define DECL_LANG_FLAG_2(NODE) (DECL_CHECK (NODE)->decl.lang_flag_2)
1206#define DECL_LANG_FLAG_3(NODE) (DECL_CHECK (NODE)->decl.lang_flag_3)
1207#define DECL_LANG_FLAG_4(NODE) (DECL_CHECK (NODE)->decl.lang_flag_4)
1208#define DECL_LANG_FLAG_5(NODE) (DECL_CHECK (NODE)->decl.lang_flag_5)
1209#define DECL_LANG_FLAG_6(NODE) (DECL_CHECK (NODE)->decl.lang_flag_6)
1210#define DECL_LANG_FLAG_7(NODE) (DECL_CHECK (NODE)->decl.lang_flag_7)
1211
1212/* Used to indicate that the pointer to this DECL cannot be treated as
1213 an address constant. */
1214#define DECL_NON_ADDR_CONST_P(NODE) (DECL_CHECK (NODE)->decl.non_addr_const_p)
1215
1268/* Additional flags for language-specific uses. */
1269#define DECL_LANG_FLAG_0(NODE) (DECL_CHECK (NODE)->decl.lang_flag_0)
1270#define DECL_LANG_FLAG_1(NODE) (DECL_CHECK (NODE)->decl.lang_flag_1)
1271#define DECL_LANG_FLAG_2(NODE) (DECL_CHECK (NODE)->decl.lang_flag_2)
1272#define DECL_LANG_FLAG_3(NODE) (DECL_CHECK (NODE)->decl.lang_flag_3)
1273#define DECL_LANG_FLAG_4(NODE) (DECL_CHECK (NODE)->decl.lang_flag_4)
1274#define DECL_LANG_FLAG_5(NODE) (DECL_CHECK (NODE)->decl.lang_flag_5)
1275#define DECL_LANG_FLAG_6(NODE) (DECL_CHECK (NODE)->decl.lang_flag_6)
1276#define DECL_LANG_FLAG_7(NODE) (DECL_CHECK (NODE)->decl.lang_flag_7)
1277
1278/* Used to indicate that the pointer to this DECL cannot be treated as
1279 an address constant. */
1280#define DECL_NON_ADDR_CONST_P(NODE) (DECL_CHECK (NODE)->decl.non_addr_const_p)
1281
1282/* Used to indicate an alias set for the memory pointed to by this
1283 particular FIELD_DECL, PARM_DECL, or VAR_DECL, which must have
1284 pointer (or reference) type. */
1285#define DECL_POINTER_ALIAS_SET(NODE) \
1286 (DECL_CHECK (NODE)->decl.pointer_alias_set)
1287
1288/* Nonzero if an alias set has been assigned to this declaration. */
1289#define DECL_POINTER_ALIAS_SET_KNOWN_P(NODE) \
1290 (DECL_POINTER_ALIAS_SET (NODE) != - 1)
1291
1216struct tree_decl
1217{
1218 char common[sizeof (struct tree_common)];
1219 char *filename;
1220 int linenum;
1221 unsigned int uid;
1222 union tree_node *size;
1223#ifdef ONLY_INT_FIELDS

--- 14 unchanged lines hidden (view full) ---

1238 unsigned in_system_header_flag : 1;
1239 unsigned common_flag : 1;
1240 unsigned defer_output : 1;
1241 unsigned transparent_union : 1;
1242 unsigned static_ctor_flag : 1;
1243 unsigned static_dtor_flag : 1;
1244 unsigned artificial_flag : 1;
1245 unsigned weak_flag : 1;
1292struct tree_decl
1293{
1294 char common[sizeof (struct tree_common)];
1295 char *filename;
1296 int linenum;
1297 unsigned int uid;
1298 union tree_node *size;
1299#ifdef ONLY_INT_FIELDS

--- 14 unchanged lines hidden (view full) ---

1314 unsigned in_system_header_flag : 1;
1315 unsigned common_flag : 1;
1316 unsigned defer_output : 1;
1317 unsigned transparent_union : 1;
1318 unsigned static_ctor_flag : 1;
1319 unsigned static_dtor_flag : 1;
1320 unsigned artificial_flag : 1;
1321 unsigned weak_flag : 1;
1246 /* room for no more */
1247
1248 unsigned lang_flag_0 : 1;
1249 unsigned lang_flag_1 : 1;
1250 unsigned lang_flag_2 : 1;
1251 unsigned lang_flag_3 : 1;
1252 unsigned lang_flag_4 : 1;
1253 unsigned lang_flag_5 : 1;
1254 unsigned lang_flag_6 : 1;
1255 unsigned lang_flag_7 : 1;
1256
1257 unsigned non_addr_const_p : 1;
1322
1323 unsigned lang_flag_0 : 1;
1324 unsigned lang_flag_1 : 1;
1325 unsigned lang_flag_2 : 1;
1326 unsigned lang_flag_3 : 1;
1327 unsigned lang_flag_4 : 1;
1328 unsigned lang_flag_5 : 1;
1329 unsigned lang_flag_6 : 1;
1330 unsigned lang_flag_7 : 1;
1331
1332 unsigned non_addr_const_p : 1;
1333 unsigned no_instrument_function_entry_exit : 1;
1334 unsigned no_check_memory_usage : 1;
1335 unsigned comdat_flag : 1;
1258
1259 /* For a FUNCTION_DECL, if inline, this is the size of frame needed.
1260 If built-in, this is the code for which built-in function.
1261 For other kinds of decls, this is DECL_ALIGN. */
1262 union {
1263 int i;
1264 unsigned int u;
1265 enum built_in_function f;

--- 13 unchanged lines hidden (view full) ---

1279 struct rtx_def *live_range_rtl;
1280 /* For FUNCTION_DECLs: points to insn that constitutes its definition
1281 on the permanent obstack. For FIELD_DECL, this is DECL_FIELD_SIZE. */
1282 union {
1283 struct rtx_def *r;
1284 HOST_WIDE_INT i;
1285 } saved_insns;
1286 union tree_node *vindex;
1336
1337 /* For a FUNCTION_DECL, if inline, this is the size of frame needed.
1338 If built-in, this is the code for which built-in function.
1339 For other kinds of decls, this is DECL_ALIGN. */
1340 union {
1341 int i;
1342 unsigned int u;
1343 enum built_in_function f;

--- 13 unchanged lines hidden (view full) ---

1357 struct rtx_def *live_range_rtl;
1358 /* For FUNCTION_DECLs: points to insn that constitutes its definition
1359 on the permanent obstack. For FIELD_DECL, this is DECL_FIELD_SIZE. */
1360 union {
1361 struct rtx_def *r;
1362 HOST_WIDE_INT i;
1363 } saved_insns;
1364 union tree_node *vindex;
1365 int pointer_alias_set;
1287 /* Points to a structure whose details depend on the language in use. */
1288 struct lang_decl *lang_specific;
1289};
1290
1291/* Define the overall contents of a tree node.
1292 It may be any of the structures declared above
1293 for various types of node. */
1294

--- 8 unchanged lines hidden (view full) ---

1303 struct tree_decl decl;
1304 struct tree_type type;
1305 struct tree_list list;
1306 struct tree_vec vec;
1307 struct tree_exp exp;
1308 struct tree_block block;
1309 };
1310
1366 /* Points to a structure whose details depend on the language in use. */
1367 struct lang_decl *lang_specific;
1368};
1369
1370/* Define the overall contents of a tree node.
1371 It may be any of the structures declared above
1372 for various types of node. */
1373

--- 8 unchanged lines hidden (view full) ---

1382 struct tree_decl decl;
1383 struct tree_type type;
1384 struct tree_list list;
1385 struct tree_vec vec;
1386 struct tree_exp exp;
1387 struct tree_block block;
1388 };
1389
1311#include "gansidecl.h"
1312
1313#define NULL_TREE (tree) NULL
1314
1315/* The following functions accept a wide integer argument. Rather than
1316 having to cast on every function call, we use a macro instead, that is
1317 defined here and in rtl.h. */
1318
1319#ifndef exact_log2
1320#define exact_log2(N) exact_log2_wide ((unsigned HOST_WIDE_INT) (N))
1321#define floor_log2(N) floor_log2_wide ((unsigned HOST_WIDE_INT) (N))
1322#endif
1323extern int exact_log2_wide PROTO((unsigned HOST_WIDE_INT));
1324extern int floor_log2_wide PROTO((unsigned HOST_WIDE_INT));
1325
1390#define NULL_TREE (tree) NULL
1391
1392/* The following functions accept a wide integer argument. Rather than
1393 having to cast on every function call, we use a macro instead, that is
1394 defined here and in rtl.h. */
1395
1396#ifndef exact_log2
1397#define exact_log2(N) exact_log2_wide ((unsigned HOST_WIDE_INT) (N))
1398#define floor_log2(N) floor_log2_wide ((unsigned HOST_WIDE_INT) (N))
1399#endif
1400extern int exact_log2_wide PROTO((unsigned HOST_WIDE_INT));
1401extern int floor_log2_wide PROTO((unsigned HOST_WIDE_INT));
1402
1326#if 0
1327/* At present, don't prototype xrealloc, since all of the callers don't
1328 cast their pointers to char *, and all of the xrealloc's don't use
1329 void * yet. */
1330extern char *xmalloc PROTO((size_t));
1331extern char *xcalloc PROTO((size_t, size_t));
1332extern char *xrealloc PROTO((void *, size_t));
1333#else
1334extern char *xmalloc ();
1335extern char *xcalloc ();
1336extern char *xrealloc ();
1337#endif
1338
1339extern char *xstrdup PROTO((char *));
1340
1341extern char *oballoc PROTO((int));
1342extern char *permalloc PROTO((int));
1343extern char *savealloc PROTO((int));
1344extern char *expralloc PROTO((int));
1345
1346/* Lowest level primitive for allocating a node.
1347 The TREE_CODE is the only argument. Contents are initialized
1348 to zero except for a few of the common fields. */

--- 12 unchanged lines hidden (view full) ---

1361
1362/* Make a TREE_VEC. */
1363
1364extern tree make_tree_vec PROTO((int));
1365
1366/* Return the (unique) IDENTIFIER_NODE node for a given name.
1367 The name is supplied as a char *. */
1368
1403extern char *oballoc PROTO((int));
1404extern char *permalloc PROTO((int));
1405extern char *savealloc PROTO((int));
1406extern char *expralloc PROTO((int));
1407
1408/* Lowest level primitive for allocating a node.
1409 The TREE_CODE is the only argument. Contents are initialized
1410 to zero except for a few of the common fields. */

--- 12 unchanged lines hidden (view full) ---

1423
1424/* Make a TREE_VEC. */
1425
1426extern tree make_tree_vec PROTO((int));
1427
1428/* Return the (unique) IDENTIFIER_NODE node for a given name.
1429 The name is supplied as a char *. */
1430
1369extern tree get_identifier PROTO((char *));
1431extern tree get_identifier PROTO((const char *));
1370
1371/* If an identifier with the name TEXT (a null-terminated string) has
1372 previously been referred to, return that node; otherwise return
1373 NULL_TREE. */
1374
1432
1433/* If an identifier with the name TEXT (a null-terminated string) has
1434 previously been referred to, return that node; otherwise return
1435 NULL_TREE. */
1436
1375extern tree maybe_get_identifier PROTO((char *));
1437extern tree maybe_get_identifier PROTO((const char *));
1376
1377/* Construct various types of nodes. */
1378
1379#define build_int_2(LO,HI) \
1380 build_int_2_wide ((HOST_WIDE_INT) (LO), (HOST_WIDE_INT) (HI))
1381
1382extern tree build PVPROTO((enum tree_code, tree, ...));
1383extern tree build_nt PVPROTO((enum tree_code, ...));
1384extern tree build_parse_node PVPROTO((enum tree_code, ...));
1385
1386extern tree build_int_2_wide PROTO((HOST_WIDE_INT, HOST_WIDE_INT));
1387extern tree build_real PROTO((tree, REAL_VALUE_TYPE));
1388extern tree build_real_from_int_cst PROTO((tree, tree));
1389extern tree build_complex PROTO((tree, tree, tree));
1438
1439/* Construct various types of nodes. */
1440
1441#define build_int_2(LO,HI) \
1442 build_int_2_wide ((HOST_WIDE_INT) (LO), (HOST_WIDE_INT) (HI))
1443
1444extern tree build PVPROTO((enum tree_code, tree, ...));
1445extern tree build_nt PVPROTO((enum tree_code, ...));
1446extern tree build_parse_node PVPROTO((enum tree_code, ...));
1447
1448extern tree build_int_2_wide PROTO((HOST_WIDE_INT, HOST_WIDE_INT));
1449extern tree build_real PROTO((tree, REAL_VALUE_TYPE));
1450extern tree build_real_from_int_cst PROTO((tree, tree));
1451extern tree build_complex PROTO((tree, tree, tree));
1390extern tree build_string PROTO((int, char *));
1452extern tree build_string PROTO((int, const char *));
1391extern tree build1 PROTO((enum tree_code, tree, tree));
1392extern tree build_tree_list PROTO((tree, tree));
1393extern tree build_decl_list PROTO((tree, tree));
1394extern tree build_expr_list PROTO((tree, tree));
1395extern tree build_decl PROTO((enum tree_code, tree, tree));
1396extern tree build_block PROTO((tree, tree, tree, tree, tree));
1453extern tree build1 PROTO((enum tree_code, tree, tree));
1454extern tree build_tree_list PROTO((tree, tree));
1455extern tree build_decl_list PROTO((tree, tree));
1456extern tree build_expr_list PROTO((tree, tree));
1457extern tree build_decl PROTO((enum tree_code, tree, tree));
1458extern tree build_block PROTO((tree, tree, tree, tree, tree));
1397extern tree build_expr_wfl PROTO((tree, char *, int, int));
1459extern tree build_expr_wfl PROTO((tree, const char *, int, int));
1398
1399/* Construct various nodes representing data types. */
1400
1401extern tree make_signed_type PROTO((int));
1402extern tree make_unsigned_type PROTO((int));
1403extern void set_sizetype PROTO((tree));
1404extern tree signed_or_unsigned_type PROTO((int, tree));
1405extern void fixup_unsigned_type PROTO((tree));

--- 48 unchanged lines hidden (view full) ---

1454
1455/* Return 1 if an attribute and its arguments are valid for a decl or type. */
1456
1457extern int valid_machine_attribute PROTO((tree, tree, tree, tree));
1458
1459/* Given a tree node and a string, return non-zero if the tree node is
1460 a valid attribute name for the string. */
1461
1460
1461/* Construct various nodes representing data types. */
1462
1463extern tree make_signed_type PROTO((int));
1464extern tree make_unsigned_type PROTO((int));
1465extern void set_sizetype PROTO((tree));
1466extern tree signed_or_unsigned_type PROTO((int, tree));
1467extern void fixup_unsigned_type PROTO((tree));

--- 48 unchanged lines hidden (view full) ---

1516
1517/* Return 1 if an attribute and its arguments are valid for a decl or type. */
1518
1519extern int valid_machine_attribute PROTO((tree, tree, tree, tree));
1520
1521/* Given a tree node and a string, return non-zero if the tree node is
1522 a valid attribute name for the string. */
1523
1462extern int is_attribute_p PROTO((char *, tree));
1524extern int is_attribute_p PROTO((const char *, tree));
1463
1464/* Given an attribute name and a list of attributes, return the list element
1465 of the attribute or NULL_TREE if not found. */
1466
1525
1526/* Given an attribute name and a list of attributes, return the list element
1527 of the attribute or NULL_TREE if not found. */
1528
1467extern tree lookup_attribute PROTO((char *, tree));
1529extern tree lookup_attribute PROTO((const char *, tree));
1468
1469/* Given two attributes lists, return a list of their union. */
1470
1471extern tree merge_attributes PROTO((tree, tree));
1472
1530
1531/* Given two attributes lists, return a list of their union. */
1532
1533extern tree merge_attributes PROTO((tree, tree));
1534
1473/* Given a type node TYPE, and CONSTP and VOLATILEP, return a type
1474 for the same kind of data as TYPE describes.
1475 Variants point to the "main variant" (which has neither CONST nor VOLATILE)
1476 via TYPE_MAIN_VARIANT, and it points to a chain of other variants
1477 so that duplicate variants are never made.
1478 Only main variants should ever appear as types of expressions. */
1535/* Given a type node TYPE and a TYPE_QUALIFIER_SET, return a type for
1536 the same kind of data as TYPE describes. Variants point to the
1537 "main variant" (which has no qualifiers set) via TYPE_MAIN_VARIANT,
1538 and it points to a chain of other variants so that duplicate
1539 variants are never made. Only main variants should ever appear as
1540 types of expressions. */
1479
1541
1480extern tree build_type_variant PROTO((tree, int, int));
1542extern tree build_qualified_type PROTO((tree, int));
1481
1543
1544/* Like build_qualified_type, but only deals with the `const' and
1545 `volatile' qualifiers. This interface is retained for backwards
1546 compatiblity with the various front-ends; new code should use
1547 build_qualified_type instead. */
1548
1549#define build_type_variant(TYPE, CONST_P, VOLATILE_P) \
1550 build_qualified_type (TYPE, \
1551 ((CONST_P) ? TYPE_QUAL_CONST : 0) \
1552 | ((VOLATILE_P) ? TYPE_QUAL_VOLATILE : 0))
1553
1482/* Make a copy of a type node. */
1483
1484extern tree build_type_copy PROTO((tree));
1485
1486/* Given a ..._TYPE node, calculate the TYPE_SIZE, TYPE_SIZE_UNIT,
1487 TYPE_ALIGN and TYPE_MODE fields.
1488 If called more than once on one node, does nothing except
1489 for the first time. */

--- 117 unchanged lines hidden (view full) ---

1607/* staticp (tree x) is nonzero if X is a reference to data allocated
1608 at a fixed address in memory. */
1609
1610extern int staticp PROTO((tree));
1611
1612/* Gets an error if argument X is not an lvalue.
1613 Also returns 1 if X is an lvalue, 0 if not. */
1614
1554/* Make a copy of a type node. */
1555
1556extern tree build_type_copy PROTO((tree));
1557
1558/* Given a ..._TYPE node, calculate the TYPE_SIZE, TYPE_SIZE_UNIT,
1559 TYPE_ALIGN and TYPE_MODE fields.
1560 If called more than once on one node, does nothing except
1561 for the first time. */

--- 117 unchanged lines hidden (view full) ---

1679/* staticp (tree x) is nonzero if X is a reference to data allocated
1680 at a fixed address in memory. */
1681
1682extern int staticp PROTO((tree));
1683
1684/* Gets an error if argument X is not an lvalue.
1685 Also returns 1 if X is an lvalue, 0 if not. */
1686
1615extern int lvalue_or_else PROTO((tree, char *));
1687extern int lvalue_or_else PROTO((tree, const char *));
1616
1617/* save_expr (EXP) returns an expression equivalent to EXP
1618 but it can be used multiple times within context CTX
1619 and only evaluate EXP once. */
1620
1621extern tree save_expr PROTO((tree));
1622
1623/* Returns the index of the first non-tree operand for CODE, or the number

--- 116 unchanged lines hidden (view full) ---

1740 this _DECL with its context, or zero if none. */
1741extern tree decl_type_context PROTO((tree));
1742
1743/* Given the FUNCTION_DECL for the current function,
1744 return zero if it is ok for this function to be inline.
1745 Otherwise return a warning message with a single %s
1746 for the function's name. */
1747
1688
1689/* save_expr (EXP) returns an expression equivalent to EXP
1690 but it can be used multiple times within context CTX
1691 and only evaluate EXP once. */
1692
1693extern tree save_expr PROTO((tree));
1694
1695/* Returns the index of the first non-tree operand for CODE, or the number

--- 116 unchanged lines hidden (view full) ---

1812 this _DECL with its context, or zero if none. */
1813extern tree decl_type_context PROTO((tree));
1814
1815/* Given the FUNCTION_DECL for the current function,
1816 return zero if it is ok for this function to be inline.
1817 Otherwise return a warning message with a single %s
1818 for the function's name. */
1819
1748extern char *function_cannot_inline_p PROTO((tree));
1820extern const char *function_cannot_inline_p PROTO((tree));
1749
1750/* Return 1 if EXPR is the real constant zero. */
1751extern int real_zerop PROTO((tree));
1752
1753/* Declare commonly used variables for tree structure. */
1754
1755/* An integer constant with value 0 */
1756extern tree integer_zero_node;

--- 75 unchanged lines hidden (view full) ---

1832/* Pointer to function to finish handling an incomplete decl at the
1833 end of compilation. */
1834
1835extern void (*incomplete_decl_finalize_hook) PROTO((tree));
1836
1837/* In tree.c */
1838extern char *perm_calloc PROTO((int, long));
1839extern tree get_file_function_name PROTO((int));
1821
1822/* Return 1 if EXPR is the real constant zero. */
1823extern int real_zerop PROTO((tree));
1824
1825/* Declare commonly used variables for tree structure. */
1826
1827/* An integer constant with value 0 */
1828extern tree integer_zero_node;

--- 75 unchanged lines hidden (view full) ---

1904/* Pointer to function to finish handling an incomplete decl at the
1905 end of compilation. */
1906
1907extern void (*incomplete_decl_finalize_hook) PROTO((tree));
1908
1909/* In tree.c */
1910extern char *perm_calloc PROTO((int, long));
1911extern tree get_file_function_name PROTO((int));
1912extern tree get_file_function_name_long PROTO((const char *));
1840extern tree get_set_constructor_bits PROTO((tree, char *, int));
1841extern tree get_set_constructor_bytes PROTO((tree,
1842 unsigned char *, int));
1843extern int get_alias_set PROTO((tree));
1913extern tree get_set_constructor_bits PROTO((tree, char *, int));
1914extern tree get_set_constructor_bytes PROTO((tree,
1915 unsigned char *, int));
1916extern int get_alias_set PROTO((tree));
1917extern int new_alias_set PROTO((void));
1844extern int (*lang_get_alias_set) PROTO((tree));
1845
1846/* In stmt.c */
1847
1848extern void expand_fixups PROTO((struct rtx_def *));
1849extern tree expand_start_stmt_expr PROTO((void));
1850extern tree expand_end_stmt_expr PROTO((tree));
1851extern void expand_expr_stmt PROTO((tree));

--- 14 unchanged lines hidden (view full) ---

1866extern int expand_continue_loop PROTO((struct nesting *));
1867extern int expand_exit_loop PROTO((struct nesting *));
1868extern int expand_exit_loop_if_false PROTO((struct nesting *,
1869 tree));
1870extern int expand_exit_something PROTO((void));
1871
1872extern void expand_null_return PROTO((void));
1873extern void expand_return PROTO((tree));
1918extern int (*lang_get_alias_set) PROTO((tree));
1919
1920/* In stmt.c */
1921
1922extern void expand_fixups PROTO((struct rtx_def *));
1923extern tree expand_start_stmt_expr PROTO((void));
1924extern tree expand_end_stmt_expr PROTO((tree));
1925extern void expand_expr_stmt PROTO((tree));

--- 14 unchanged lines hidden (view full) ---

1940extern int expand_continue_loop PROTO((struct nesting *));
1941extern int expand_exit_loop PROTO((struct nesting *));
1942extern int expand_exit_loop_if_false PROTO((struct nesting *,
1943 tree));
1944extern int expand_exit_something PROTO((void));
1945
1946extern void expand_null_return PROTO((void));
1947extern void expand_return PROTO((tree));
1948extern int optimize_tail_recursion PROTO((tree, struct rtx_def *));
1874extern void expand_start_bindings PROTO((int));
1875extern void expand_end_bindings PROTO((tree, int, int));
1876extern void start_cleanup_deferral PROTO((void));
1877extern void end_cleanup_deferral PROTO((void));
1878extern void mark_block_as_eh_region PROTO((void));
1879extern void mark_block_as_not_eh_region PROTO((void));
1880extern int is_eh_region PROTO((void));
1881extern int conditional_context PROTO((void));
1882extern tree last_cleanup_this_contour PROTO((void));
1883extern int expand_dhc_cleanup PROTO((tree));
1884extern int expand_dcc_cleanup PROTO((tree));
1885extern void expand_start_case PROTO((int, tree, tree,
1949extern void expand_start_bindings PROTO((int));
1950extern void expand_end_bindings PROTO((tree, int, int));
1951extern void start_cleanup_deferral PROTO((void));
1952extern void end_cleanup_deferral PROTO((void));
1953extern void mark_block_as_eh_region PROTO((void));
1954extern void mark_block_as_not_eh_region PROTO((void));
1955extern int is_eh_region PROTO((void));
1956extern int conditional_context PROTO((void));
1957extern tree last_cleanup_this_contour PROTO((void));
1958extern int expand_dhc_cleanup PROTO((tree));
1959extern int expand_dcc_cleanup PROTO((tree));
1960extern void expand_start_case PROTO((int, tree, tree,
1886 char *));
1961 const char *));
1887extern void expand_end_case PROTO((tree));
1888extern int pushcase PROTO((tree,
1889 tree (*) (tree, tree),
1890 tree, tree *));
1891extern int pushcase_range PROTO((tree, tree,
1892 tree (*) (tree, tree),
1893 tree, tree *));
1894extern void using_eh_for_cleanups PROTO((void));
1962extern void expand_end_case PROTO((tree));
1963extern int pushcase PROTO((tree,
1964 tree (*) (tree, tree),
1965 tree, tree *));
1966extern int pushcase_range PROTO((tree, tree,
1967 tree (*) (tree, tree),
1968 tree, tree *));
1969extern void using_eh_for_cleanups PROTO((void));
1970extern int stmt_loop_nest_empty PROTO((void));
1895
1896/* In fold-const.c */
1897
1898/* Fold constants as much as possible in an expression.
1899 Returns the simplified expression.
1900 Acts only on the top level of the expression;
1901 if the argument itself cannot be simplified, its
1902 subexpressions are not changed. */

--- 181 unchanged lines hidden (view full) ---

2084extern void type_hash_add PROTO ((int, tree));
2085extern int type_hash_list PROTO ((tree));
2086extern int simple_cst_list_equal PROTO ((tree, tree));
2087extern void debug_obstack PROTO ((char *));
2088extern void rtl_in_current_obstack PROTO ((void));
2089extern void rtl_in_saveable_obstack PROTO ((void));
2090extern void init_tree_codes PROTO ((void));
2091extern void dump_tree_statistics PROTO ((void));
1971
1972/* In fold-const.c */
1973
1974/* Fold constants as much as possible in an expression.
1975 Returns the simplified expression.
1976 Acts only on the top level of the expression;
1977 if the argument itself cannot be simplified, its
1978 subexpressions are not changed. */

--- 181 unchanged lines hidden (view full) ---

2160extern void type_hash_add PROTO ((int, tree));
2161extern int type_hash_list PROTO ((tree));
2162extern int simple_cst_list_equal PROTO ((tree, tree));
2163extern void debug_obstack PROTO ((char *));
2164extern void rtl_in_current_obstack PROTO ((void));
2165extern void rtl_in_saveable_obstack PROTO ((void));
2166extern void init_tree_codes PROTO ((void));
2167extern void dump_tree_statistics PROTO ((void));
2092extern void print_obstack_statistics PROTO ((char *, struct obstack *));
2168extern void print_obstack_statistics PROTO ((const char *,
2169 struct obstack *));
2093#ifdef BUFSIZ
2170#ifdef BUFSIZ
2094extern void print_obstack_name PROTO ((char *, FILE *, char *));
2171extern void print_obstack_name PROTO ((char *, FILE *, const char *));
2095#endif
2096extern void expand_function_end PROTO ((char *, int, int));
2097extern void expand_function_start PROTO ((tree, int));
2098extern int real_onep PROTO ((tree));
2099extern int real_twop PROTO ((tree));
2100extern void start_identifier_warnings PROTO ((void));
2101extern void gcc_obstack_init PROTO ((struct obstack *));
2102extern void init_obstacks PROTO ((void));
2103extern void obfree PROTO ((char *));
2172#endif
2173extern void expand_function_end PROTO ((char *, int, int));
2174extern void expand_function_start PROTO ((tree, int));
2175extern int real_onep PROTO ((tree));
2176extern int real_twop PROTO ((tree));
2177extern void start_identifier_warnings PROTO ((void));
2178extern void gcc_obstack_init PROTO ((struct obstack *));
2179extern void init_obstacks PROTO ((void));
2180extern void obfree PROTO ((char *));
2104extern tree tree_check PROTO ((tree, enum tree_code, char*, int, int));
2105extern tree tree_class_check PROTO ((tree, char, char*, int, int));
2106extern tree expr_check PROTO ((tree, int, char*, int, int));
2181extern tree tree_check PROTO ((tree, enum tree_code,
2182 const char *, int, int));
2183extern tree tree_class_check PROTO ((tree, char, const char *,
2184 int, int));
2185extern tree expr_check PROTO ((tree, int, const char *,
2186 int, int));
2107
2108/* In function.c */
2109extern void setjmp_protect_args PROTO ((void));
2110extern void setjmp_protect PROTO ((tree));
2111extern void expand_main_function PROTO ((void));
2112extern void mark_varargs PROTO ((void));
2113extern void init_function_start PROTO ((tree, char *, int));
2114extern void assign_parms PROTO ((tree, int));

--- 21 unchanged lines hidden (view full) ---

2136/* In print-rtl.c */
2137#ifdef BUFSIZ
2138extern void print_rtl PROTO ((FILE *, struct rtx_def *));
2139#endif
2140
2141/* In print-tree.c */
2142extern void debug_tree PROTO ((tree));
2143#ifdef BUFSIZ
2187
2188/* In function.c */
2189extern void setjmp_protect_args PROTO ((void));
2190extern void setjmp_protect PROTO ((tree));
2191extern void expand_main_function PROTO ((void));
2192extern void mark_varargs PROTO ((void));
2193extern void init_function_start PROTO ((tree, char *, int));
2194extern void assign_parms PROTO ((tree, int));

--- 21 unchanged lines hidden (view full) ---

2216/* In print-rtl.c */
2217#ifdef BUFSIZ
2218extern void print_rtl PROTO ((FILE *, struct rtx_def *));
2219#endif
2220
2221/* In print-tree.c */
2222extern void debug_tree PROTO ((tree));
2223#ifdef BUFSIZ
2144extern void print_node PROTO ((FILE *, char *, tree, int));
2145extern void print_node_brief PROTO ((FILE *, char *, tree, int));
2224extern void print_node PROTO ((FILE *, const char *, tree, int));
2225extern void print_node_brief PROTO ((FILE *, const char *, tree, int));
2146extern void indent_to PROTO ((FILE *, int));
2147#endif
2148
2149/* In expr.c */
2150extern void emit_queue PROTO ((void));
2151extern int apply_args_register_offset PROTO ((int));
2152extern struct rtx_def *expand_builtin_return_addr
2153 PROTO ((enum built_in_function, int, struct rtx_def *));

--- 39 unchanged lines hidden (view full) ---

2193
2194/* In c-lex.c */
2195extern void set_yydebug PROTO ((int));
2196
2197/* In stor-layout.c */
2198extern void fixup_signed_type PROTO ((tree));
2199
2200/* varasm.c */
2226extern void indent_to PROTO ((FILE *, int));
2227#endif
2228
2229/* In expr.c */
2230extern void emit_queue PROTO ((void));
2231extern int apply_args_register_offset PROTO ((int));
2232extern struct rtx_def *expand_builtin_return_addr
2233 PROTO ((enum built_in_function, int, struct rtx_def *));

--- 39 unchanged lines hidden (view full) ---

2273
2274/* In c-lex.c */
2275extern void set_yydebug PROTO ((int));
2276
2277/* In stor-layout.c */
2278extern void fixup_signed_type PROTO ((tree));
2279
2280/* varasm.c */
2201extern void make_decl_rtl PROTO ((tree, char *, int));
2281extern void make_decl_rtl PROTO ((tree, const char *, int));
2202extern void make_decl_one_only PROTO ((tree));
2203extern int supports_one_only PROTO ((void));
2204extern void variable_section PROTO ((tree, int));
2205
2206/* In fold-const.c */
2207extern int div_and_round_double PROTO ((enum tree_code, int,
2208 HOST_WIDE_INT, HOST_WIDE_INT,
2209 HOST_WIDE_INT, HOST_WIDE_INT,

--- 83 unchanged lines hidden ---
2282extern void make_decl_one_only PROTO ((tree));
2283extern int supports_one_only PROTO ((void));
2284extern void variable_section PROTO ((tree, int));
2285
2286/* In fold-const.c */
2287extern int div_and_round_double PROTO ((enum tree_code, int,
2288 HOST_WIDE_INT, HOST_WIDE_INT,
2289 HOST_WIDE_INT, HOST_WIDE_INT,

--- 83 unchanged lines hidden ---