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 --- |