* tree.def (documentation): Remove mention of class 'b'.
(BLOCK): Now in class 'x'.
* c-common.c (verify_tree): Remove case 'b'.
* c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
* calls.c (calls_function_1): Control cannot get past the switch
when exp is a BLOCK.
* print-tree.c (print_node): Move code for class 'b' to the class
'c'/'x' switch, as case BLOCK.
* tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
(unsafe_for_reeval, substitute_placeholder_in_expr)
(stabilize_reference_1): Remove case 'b'.
* tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
of something being 'b' to tests for TREE_CODE of something being
BLOCK.
* tree-ssa-operands.c (get_expr_operands): Likewise.
ada:
* trans.c (gnat_stabilize_reference_1): Remove case 'b'.
From-SVN: r81831
+2004-05-13 Zack Weinberg <zack@codesourcery.com>
+
+ * tree.def (documentation): Remove mention of class 'b'.
+ (BLOCK): Now in class 'x'.
+ * c-common.c (verify_tree): Remove case 'b'.
+ * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
+ * calls.c (calls_function_1): Control cannot get past the switch
+ when exp is a BLOCK.
+ * print-tree.c (print_node): Move code for class 'b' to the class
+ 'c'/'x' switch, as case BLOCK.
+ * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
+ (unsafe_for_reeval, substitute_placeholder_in_expr)
+ (stabilize_reference_1): Remove case 'b'.
+ * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
+ of something being 'b' to tests for TREE_CODE of something being
+ BLOCK.
+ * tree-ssa-operands.c (get_expr_operands): Likewise.
+
2004-05-13 Diego Novillo <dnovillo@redhat.com>
* tree-gimple.c: Rename from tree-simple.c.
* simplify-rtx.c (simplify_rtx): Do not handle
CONSTANT_P_RTX.
* stmt.c (parse_output_constraint): Don't warn for read-write
- memory operand.
+ memory operand.
(tail_recursion_args): Use types_compatible_p langhook.
(force_label_rtx): Don't look at inline_function_decl.
(label_rtx): Set LABEL_PRESERVE_P appropriately.
2004-05-12 Paolo Bonzini <bonzini@gnu.org>
Replace several arrays with a struct of arrays.
- * combine.c (struct reg_stat): New.
- (init_reg_last_arrays): Renamed to...
- (init_reg_last): ...this. Callers adjusted.
- (reg_stat): New.
- (combine_instructions): Allocate it and use it.
- (reg_last_death, reg_last_set, reg_last_set_value,
- reg_last_set_label, reg_last_set_table_tick,
- reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
- reg_last_set_mode, reg_last_set_nonzero_bits,
- reg_last_set_sign_bit_copies): Replace throughout
- with items of reg_stat.
+ * combine.c (struct reg_stat): New.
+ (init_reg_last_arrays): Renamed to...
+ (init_reg_last): ...this. Callers adjusted.
+ (reg_stat): New.
+ (combine_instructions): Allocate it and use it.
+ (reg_last_death, reg_last_set, reg_last_set_value,
+ reg_last_set_label, reg_last_set_table_tick,
+ reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
+ reg_last_set_mode, reg_last_set_nonzero_bits,
+ reg_last_set_sign_bit_copies): Replace throughout
+ with items of reg_stat.
2004-05-11 Kaz Kojima <kkojima@gcc.gnu.org>
+2004-05-13 Zack Weinberg <zack@codesourcery.com>
+
+ * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
+
2004-05-13 Diego Novillo <dnovillo@redhat.com>
Merge from tree-ssa-20020619-branch.
* cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
- * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
+ * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
Stand.Boolean_Literals to produce references to entities
Standard_False and Standard_True from compile-time computed boolean
2004-04-23 Laurent GUERBY <laurent@guerby.net>
- * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
+ * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
install.
-
+
2004-04-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
* Make-lang.in: Add entry for s-addope.o to GNAT1 objects
* s-addope.ads, s-addope.adb: New files.
- * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
- s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
+ * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
+ s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
System.Address to be non-private and signed.
2004-04-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* trans.c (tree_transform, build_unit_elab): Don't call getdecls.
- (tree_transform, case N_If_Statement): Remove non-determinism.
+ (tree_transform, case N_If_Statement): Remove non-determinism.
* utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
* sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
- * sinfo.ads, sinfo.adb:
+ * sinfo.ads, sinfo.adb:
New field Access_To_Subprogram_Definition in Access_Definition nodes
* sem_ch6.adb (Process_Formals): Move here the code that creates and
PR ada/14988 (partial)
* impunit.adb: Fix typo.
-
+
2004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>
* Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
duplication between normal entities and those declared as renamings.
No functional change.
- * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
+ * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
inline functions returning an unconstrained result.
2004-04-08 Eric Botcazou <ebotcazou@act-europe.fr>
2004-03-19 Laurent Guerby <laurent@guerby.net>
- * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
+ * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
aggregate, allows bootstrap from 3.3 on powerpc-darwin.
-
+
2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
* a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
- 5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
+ 5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
unchecked conversion to spec to avoid warnings.
PR ada/6637, PR ada/5911
Merge with libada-branch:
- * config-lang.in: Build libada only when ada is built.
+ * config-lang.in: Build libada only when ada is built.
2004-02-09 Ed Schonberg <schonberg@gnat.com>
2004-02-04 Ed Schonberg <schonberg@gnat.com>
- * sem_prag.adb:
+ * sem_prag.adb:
(Analyze_Pragma, case Warnings): In an inlined body, as in an instance
body, an identifier may be wrapped in an unchecked conversion.
2004-01-30 Kelley Cook <kcook@gcc.gnu.org>
- * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
+ * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
(doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
(doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
(Wakeup): Likewise.
(Exit_Task): Use Result.
(Check_No_Locks): Mark Self_ID unreferenced.
-
+
* 5gtasinf.adb (New_Sproc): Make Attr constant.
(Bound_Thread_Attributes): Make Sproc constant.
(New_Bound_Thread_Attributes): Likewise.
case 'x':
case 't':
case 'd':
- case 'b':
case '<':
case 's':
case 'e':
case 'r':
case '<':
case '2':
- case 'b':
case 'e':
case 's':
case 'x':
{
case 'd': t1 = DECL_CONTEXT (t1); break;
case 't': t1 = TYPE_CONTEXT (t1); break;
- case 'b': t1 = BLOCK_SUPERCONTEXT (t1); break;
+ case 'x': t1 = BLOCK_SUPERCONTEXT (t1); break; /* assume block */
default: abort ();
}
{
case 'd': t2 = DECL_CONTEXT (t2); break;
case 't': t2 = TYPE_CONTEXT (t2); break;
- case 'b': t2 = BLOCK_SUPERCONTEXT (t2); break;
+ case 'x': t2 = BLOCK_SUPERCONTEXT (t2); break; /* assume block */
default: abort ();
}
break;
}
- /* Only expressions and blocks can contain calls. */
- if (! IS_EXPR_CODE_CLASS (class) && class != 'b')
+ /* Only expressions and blocks can contain calls.
+ Blocks were handled above. */
+ if (! IS_EXPR_CODE_CLASS (class))
return 0;
for (i = 0; i < length; i++)
print_node_brief (file, "chain", TREE_CHAIN (node), indent + 4);
break;
- case 'b':
- print_node (file, "vars", BLOCK_VARS (node), indent + 4);
- print_node (file, "supercontext", BLOCK_SUPERCONTEXT (node), indent + 4);
- print_node (file, "subblocks", BLOCK_SUBBLOCKS (node), indent + 4);
- print_node (file, "chain", BLOCK_CHAIN (node), indent + 4);
- print_node (file, "abstract_origin",
- BLOCK_ABSTRACT_ORIGIN (node), indent + 4);
- break;
-
case 'e':
case '<':
case '1':
}
break;
+ case BLOCK:
+ print_node (file, "vars", BLOCK_VARS (node), indent + 4);
+ print_node (file, "supercontext", BLOCK_SUPERCONTEXT (node),
+ indent + 4);
+ print_node (file, "subblocks", BLOCK_SUBBLOCKS (node), indent + 4);
+ print_node (file, "chain", BLOCK_CHAIN (node), indent + 4);
+ print_node (file, "abstract_origin",
+ BLOCK_ABSTRACT_ORIGIN (node), indent + 4);
+ break;
+
default:
if (TREE_CODE_CLASS (TREE_CODE (node)) == 'x')
lang_hooks.print_xnode (file, node, indent);
break;
case TB_SUBBLOCKS:
- if (head && TREE_CODE_CLASS (TREE_CODE (head)) == 'b')
+ if (head && TREE_CODE (head) == BLOCK)
TB_SET_HEAD (BLOCK_SUBBLOCKS (head));
else
TB_WF;
break;
case TB_SUPERCONTEXT:
- if (head && TREE_CODE_CLASS (TREE_CODE (head)) == 'b')
+ if (head && TREE_CODE (head) == BLOCK)
TB_SET_HEAD (BLOCK_SUPERCONTEXT (head));
else
TB_WF;
break;
case TB_VARS:
- if (head && TREE_CODE_CLASS (TREE_CODE (head)) == 'b')
+ if (head && TREE_CODE (head) == BLOCK)
TB_SET_HEAD (BLOCK_VARS (head));
else if (head && TREE_CODE (head) == BIND_EXPR)
TB_SET_HEAD (TREE_OPERAND (head, 0));
case TB_ABSTRACT_ORIGIN:
if (head && TREE_CODE_CLASS (TREE_CODE (head)) == 'd')
TB_SET_HEAD (DECL_ABSTRACT_ORIGIN (head));
- else if (head && TREE_CODE_CLASS (TREE_CODE (head)) == 'b')
+ else if (head && TREE_CODE (head) == BLOCK)
TB_SET_HEAD (BLOCK_ABSTRACT_ORIGIN (head));
else
TB_WF;
case TB_CHAIN:
/* Don't go further if it's the last node in this chain. */
- if (head && TREE_CODE_CLASS (TREE_CODE (head)) == 'b')
+ if (head && TREE_CODE (head) == BLOCK)
TB_SET_HEAD (BLOCK_CHAIN (head));
else if (head && TREE_CHAIN (head))
TB_SET_HEAD (TREE_CHAIN (head));
/* Expressions that make no memory references. */
if (class == 'c'
|| class == 't'
- || class == 'b'
+ || code == BLOCK
|| code == FUNCTION_DECL
|| code == EXC_PTR_EXPR
|| code == FILTER_EXPR
case 't': /* a type node */
return sizeof (struct tree_type);
- case 'b': /* a lexical block node */
- return sizeof (struct tree_block);
-
case 'r': /* a reference */
case 'e': /* an expression */
case 's': /* an expression with side effects */
case EEXIT_NODE: return sizeof (struct tree_eref_common);
case STATEMENT_LIST: return sizeof (struct tree_statement_list);
+ case BLOCK: return sizeof (struct tree_block);
default:
return lang_hooks.tree_size (code);
kind = t_kind;
break;
- case 'b': /* a lexical block */
- kind = b_kind;
- break;
-
case 's': /* an expression with side effects */
kind = s_kind;
break;
kind = phi_kind;
else if (code == SSA_NAME)
kind = ssa_name_kind;
+ else if (code == BLOCK)
+ kind = b_kind;
else
kind = x_kind;
break;
{
case 'd': return TS_DECL;
case 't': return TS_TYPE;
- case 'b': return TS_BLOCK;
case 'r': case '<': case '1': case '2': case 'e': case 's':
return TS_EXP;
default: /* 'c' and 'x' */
case SSA_NAME: return TS_SSA_NAME;
case PLACEHOLDER_EXPR: return TS_COMMON;
case STATEMENT_LIST: return TS_STATEMENT_LIST;
+ case BLOCK: return TS_BLOCK;
default:
abort ();
case 't': /* a type node */
case 'x': /* something random, like an identifier or an ERROR_MARK. */
case 'd': /* A decl node */
- case 'b': /* A block node */
return 0;
case 'e': /* an expression */
{
case 'c':
case 'd':
- case 'b':
return exp;
case 'x':
case 'x':
case 't':
case 'd':
- case 'b':
case '<':
case 's':
case 'e':
/* The third argument can be:
'x' for an exceptional code (fits no category).
't' for a type object code.
- 'b' for a lexical block.
'c' for codes for constants.
'd' for codes for declarations (also serving as variable refs).
'r' for codes for references to storage.
instance of an inline function).
TREE_ASM_WRITTEN is nonzero if the block was actually referenced
in the generated assembly. */
-DEFTREECODE (BLOCK, "block", 'b', 0)
+DEFTREECODE (BLOCK, "block", 'x', 0)
\f
/* Each data type is represented by a tree node whose code is one of
the following: */