Deleted Added
sdiff udiff text old ( 50397 ) new ( 52284 )
full compact
1/* Front-end tree definitions for GNU compiler.
2 Copyright (C) 1989, 93, 94, 95, 96, 97, 1998 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,
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. */
113 BUILT_IN_FP, BUILT_IN_SP,
114 BUILT_IN_UNWIND_INIT,
115 BUILT_IN_DWARF_FP_REGNUM,
116 BUILT_IN_DWARF_REG_SIZE,
117 BUILT_IN_FROB_RETURN_ADDR,
118 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,
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
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
332#define TYPE_CHECK(t) DO_CHECK (tree_class_check, t, 't')
333#define TYPE_CHECK1(t) DO_CHECK1 (tree_class_check, t, '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
689/* In expression with file location information. */
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))
698#define EXPR_WFL_EMIT_LINE_NOTE(NODE) ((NODE)->common.lang_flag_0)
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)
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
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
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;
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;
878 /* room for 4 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
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
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
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
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
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;
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;
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;
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
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
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
1369extern tree get_identifier PROTO((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
1375extern tree maybe_get_identifier PROTO((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));
1390extern tree build_string PROTO((int, 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));
1397extern tree build_expr_wfl PROTO((tree, 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
1462extern int is_attribute_p PROTO((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
1467extern tree lookup_attribute PROTO((char *, tree));
1468
1469/* Given two attributes lists, return a list of their union. */
1470
1471extern tree merge_attributes PROTO((tree, tree));
1472
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. */
1479
1480extern tree build_type_variant PROTO((tree, int, int));
1481
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
1615extern int lvalue_or_else PROTO((tree, 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
1748extern 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));
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));
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));
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,
1886 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));
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));
2092extern void print_obstack_statistics PROTO ((char *, struct obstack *));
2093#ifdef BUFSIZ
2094extern void print_obstack_name PROTO ((char *, FILE *, 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 *));
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));
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
2144extern void print_node PROTO ((FILE *, char *, tree, int));
2145extern void print_node_brief PROTO ((FILE *, 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 */
2201extern void make_decl_rtl PROTO ((tree, 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 ---