diff options
Diffstat (limited to 'gcc/ada')
-rw-r--r-- | gcc/ada/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/ada/decl.c | 2 | ||||
-rw-r--r-- | gcc/ada/gigi.h | 4 | ||||
-rw-r--r-- | gcc/ada/misc.c | 2 | ||||
-rw-r--r-- | gcc/ada/trans.c | 9 | ||||
-rw-r--r-- | gcc/ada/utils.c | 2 | ||||
-rw-r--r-- | gcc/ada/utils2.c | 22 |
7 files changed, 33 insertions, 19 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 8e7367f..545940f 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,16 @@ 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk> + * decl.c (gnat_to_gnu_entity): Update. + * gigi.h (mark_addressable): Rename. + * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine. + * trans.c (tree_transform): Update. + * utils.c (create_var_decl): Update. + * util2.c (build_binary_op, build_unary_op, + fill_vms_descriptor): Update. + (mark_addressable): Rename, update. + +2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk> + * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type): Rename. * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE, diff --git a/gcc/ada/decl.c b/gcc/ada/decl.c index 32cd00e..adf1d35 100644 --- a/gcc/ada/decl.c +++ b/gcc/ada/decl.c @@ -1055,7 +1055,7 @@ gnat_to_gnu_entity (gnat_entity, gnu_expr, definition) if (Has_Nested_Block_With_Handler (Scope (gnat_entity)) && Exception_Mechanism != GCC_ZCX) { - mark_addressable (gnu_decl); + gnat_mark_addressable (gnu_decl); flush_addressof (gnu_decl); } diff --git a/gcc/ada/gigi.h b/gcc/ada/gigi.h index 32fcaef..7342117 100644 --- a/gcc/ada/gigi.h +++ b/gcc/ada/gigi.h @@ -727,8 +727,8 @@ extern tree build_allocator PARAMS((tree, tree, tree, Entity_Id, extern tree fill_vms_descriptor PARAMS((tree, Entity_Id)); /* Indicate that we need to make the address of EXPR_NODE and it therefore - should not be allocated in a register. Return 1 if successful. */ -extern int mark_addressable PARAMS((tree)); + should not be allocated in a register. Return true if successful. */ +extern bool gnat_mark_addressable PARAMS((tree)); /* These functions return the basic data type sizes and related parameters about the target machine. */ diff --git a/gcc/ada/misc.c b/gcc/ada/misc.c index 866afc3..520b029 100644 --- a/gcc/ada/misc.c +++ b/gcc/ada/misc.c @@ -114,6 +114,8 @@ static rtx gnat_expand_expr PARAMS ((tree, rtx, enum machine_mode, #define LANG_HOOKS_GET_ALIAS_SET gnat_get_alias_set #undef LANG_HOOKS_EXPAND_EXPR #define LANG_HOOKS_EXPAND_EXPR gnat_expand_expr +#undef LANG_HOOKS_MARK_ADDRESSABLE +#define LANG_HOOKS_MARK_ADDRESSABLE gnat_mark_addressable #undef LANG_HOOKS_PRINT_DECL #define LANG_HOOKS_PRINT_DECL gnat_print_decl #undef LANG_HOOKS_PRINT_TYPE diff --git a/gcc/ada/trans.c b/gcc/ada/trans.c index 19c7b01..371f7f2 100644 --- a/gcc/ada/trans.c +++ b/gcc/ada/trans.c @@ -421,7 +421,7 @@ tree_transform (gnat_node) right now. */ if (TREE_VALUE (gnu_except_ptr_stack) != 0) { - mark_addressable (gnu_result); + gnat_mark_addressable (gnu_result); flush_addressof (gnu_result); } @@ -4764,9 +4764,10 @@ convert_with_check (gnat_type, gnu_expr, overflow_p, range_p, truncate_p) return convert (gnu_type, gnu_result); } -/* Return 1 if GNU_EXPR can be directly addressed. This is the case unless - it is an expression involving computation or if it involves a bitfield - reference. This returns the same as mark_addressable in most cases. */ +/* Return 1 if GNU_EXPR can be directly addressed. This is the case + unless it is an expression involving computation or if it involves + a bitfield reference. This returns the same as + gnat_mark_addressable in most cases. */ static int addressable_p (gnu_expr) diff --git a/gcc/ada/utils.c b/gcc/ada/utils.c index 58b7af6..556e012 100644 --- a/gcc/ada/utils.c +++ b/gcc/ada/utils.c @@ -1361,7 +1361,7 @@ create_var_decl (var_name, asm_name, type, var_init, const_flag, public_flag, /* If this is volatile, force it into memory. */ if (TREE_SIDE_EFFECTS (var_decl)) - mark_addressable (var_decl); + gnat_mark_addressable (var_decl); if (TREE_CODE (var_decl) != CONST_DECL) rest_of_decl_compilation (var_decl, 0, global_bindings_p (), 0); diff --git a/gcc/ada/utils2.c b/gcc/ada/utils2.c index 2872474..0e8ada4 100644 --- a/gcc/ada/utils2.c +++ b/gcc/ada/utils2.c @@ -817,7 +817,7 @@ build_binary_op (op_code, result_type, left_operand, right_operand) if (! TREE_CONSTANT (right_operand) || ! TREE_CONSTANT (TYPE_MIN_VALUE (right_type)) || op_code == ARRAY_RANGE_REF) - mark_addressable (left_operand); + gnat_mark_addressable (left_operand); modulus = 0; break; @@ -1238,7 +1238,7 @@ build_unary_op (op_code, result_type, operand) if (type != error_mark_node) operation_type = build_pointer_type (type); - mark_addressable (operand); + gnat_mark_addressable (operand); result = fold (build1 (ADDR_EXPR, operation_type, operand)); } @@ -1991,7 +1991,7 @@ fill_vms_descriptor (expr, gnat_formal) tree const_list = 0; expr = maybe_unconstrained_array (expr); - mark_addressable (expr); + gnat_mark_addressable (expr); for (field = TYPE_FIELDS (record_type); field; field = TREE_CHAIN (field)) { @@ -2009,10 +2009,10 @@ fill_vms_descriptor (expr, gnat_formal) } /* Indicate that we need to make the address of EXPR_NODE and it therefore - should not be allocated in a register. Return 1 if successful. */ + should not be allocated in a register. Returns true if successful. */ -int -mark_addressable (expr_node) +bool +gnat_mark_addressable (expr_node) tree expr_node; { while (1) @@ -2030,24 +2030,24 @@ mark_addressable (expr_node) case CONSTRUCTOR: TREE_ADDRESSABLE (expr_node) = 1; - return 1; + return true; case VAR_DECL: case PARM_DECL: case RESULT_DECL: put_var_into_stack (expr_node); TREE_ADDRESSABLE (expr_node) = 1; - return 1; + return true; case FUNCTION_DECL: TREE_ADDRESSABLE (expr_node) = 1; - return 1; + return true; case CONST_DECL: return (DECL_CONST_CORRESPONDING_VAR (expr_node) != 0 - && (mark_addressable + && (gnat_mark_addressable (DECL_CONST_CORRESPONDING_VAR (expr_node)))); default: - return 1; + return true; } } |