* alias.c (readonly_fields_p): Remove.
(objects_must_conflict_p): Don't call it.
* tree.h (readonly_fields_p): Remove.
* langhooks.h (struct lang_hooks): Remove honor_readonly.
* langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
ada/
* misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
From-SVN: r86200
+2004-08-18 Richard Henderson <rth@redhat.com>
+
+ * alias.c (readonly_fields_p): Remove.
+ (objects_must_conflict_p): Don't call it.
+ * tree.h (readonly_fields_p): Remove.
+ * langhooks.h (struct lang_hooks): Remove honor_readonly.
+ * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
+
2004-08-18 Diego Novillo <dnovillo@redhat.com>
* tree-dfa.c (add_referenced_var): Only global variables are
+2004-08-18 Richard Henderson <rth@redhat.com>
+
+ * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
+
2004-08-16 Nathan Sidwell <nathan@codesourcery.com>
* cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
#define LANG_HOOKS_POST_OPTIONS gnat_post_options
#undef LANG_HOOKS_PARSE_FILE
#define LANG_HOOKS_PARSE_FILE gnat_parse_file
-#undef LANG_HOOKS_HONOR_READONLY
-#define LANG_HOOKS_HONOR_READONLY true
#undef LANG_HOOKS_HASH_TYPES
#define LANG_HOOKS_HASH_TYPES false
#undef LANG_HOOKS_GETDECLS
return 0;
}
-\f
-/* Return 1 if TYPE is a RECORD_TYPE, UNION_TYPE, or QUAL_UNION_TYPE and has
- has any readonly fields. If any of the fields have types that
- contain readonly fields, return true as well. */
-
-int
-readonly_fields_p (tree type)
-{
- tree field;
-
- if (TREE_CODE (type) != RECORD_TYPE && TREE_CODE (type) != UNION_TYPE
- && TREE_CODE (type) != QUAL_UNION_TYPE)
- return 0;
-
- for (field = TYPE_FIELDS (type); field != 0; field = TREE_CHAIN (field))
- if (TREE_CODE (field) == FIELD_DECL
- && (TREE_READONLY (field)
- || readonly_fields_p (TREE_TYPE (field))))
- return 1;
-
- return 0;
-}
\f
/* Return 1 if any MEM object of type T1 will always conflict (using the
dependency routines in this file) with any MEM object of type T2.
if (t1 == 0 && t2 == 0)
return 0;
- /* If one or the other has readonly fields or is readonly,
- then they may not conflict. */
- if ((t1 != 0 && readonly_fields_p (t1))
- || (t2 != 0 && readonly_fields_p (t2))
- || (t1 != 0 && lang_hooks.honor_readonly && TYPE_READONLY (t1))
- || (t2 != 0 && lang_hooks.honor_readonly && TYPE_READONLY (t2)))
- return 0;
-
/* If they are the same type, they must conflict. */
if (t1 == t2
/* Likewise if both are volatile. */
#define LANG_HOOKS_SET_DECL_ASSEMBLER_NAME lhd_set_decl_assembler_name
#define LANG_HOOKS_CAN_USE_BIT_FIELDS_P lhd_can_use_bit_fields_p
#define LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS false
-#define LANG_HOOKS_HONOR_READONLY false
#define LANG_HOOKS_NO_BODY_BLOCKS false
#define LANG_HOOKS_PRINT_STATISTICS lhd_do_nothing
#define LANG_HOOKS_PRINT_XNODE lhd_print_tree_nothing
LANG_HOOKS_SET_DECL_ASSEMBLER_NAME, \
LANG_HOOKS_CAN_USE_BIT_FIELDS_P, \
LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS, \
- LANG_HOOKS_HONOR_READONLY, \
LANG_HOOKS_NO_BODY_BLOCKS, \
LANG_HOOKS_PRINT_STATISTICS, \
LANG_HOOKS_PRINT_XNODE, \
have their results reduced to the precision of the type. */
bool reduce_bit_field_operations;
- /* Nonzero if TYPE_READONLY and TREE_READONLY should always be honored. */
- bool honor_readonly;
-
/* Nonzero if this front end does not generate a dummy BLOCK between
the outermost scope of the function and the FUNCTION_DECL. See
is_body_block in stmt.c, and its callers. */
extern HOST_WIDE_INT get_alias_set (tree);
extern int alias_sets_conflict_p (HOST_WIDE_INT, HOST_WIDE_INT);
extern int alias_sets_might_conflict_p (HOST_WIDE_INT, HOST_WIDE_INT);
-extern int readonly_fields_p (tree);
extern int objects_must_conflict_p (tree, tree);
/* In tree.c */