aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/function.c')
-rw-r--r--gcc/function.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/function.c b/gcc/function.c
index f909688dc3d..ffdac2a4278 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -798,7 +798,8 @@ assign_stack_temp_for_type (mode, size, keep, type)
/* If a type is specified, set the relevant flags. */
if (type != 0)
{
- RTX_UNCHANGING_P (slot) = TYPE_READONLY (type);
+ RTX_UNCHANGING_P (slot) = (lang_hooks.honor_readonly
+ && TYPE_READONLY (type));
MEM_VOLATILE_P (slot) = TYPE_VOLATILE (type);
MEM_SET_IN_STRUCT_P (slot, AGGREGATE_TYPE_P (type));
}
@@ -3241,7 +3242,7 @@ insns_for_mem_hash (k)
{
/* Use the address of the key for the hash value. */
struct insns_for_mem_entry *m = (struct insns_for_mem_entry *) k;
- return (hashval_t) m->key;
+ return htab_hash_pointer (m->key);
}
/* Return nonzero if K1 and K2 (two REGs) are the same. */
@@ -6229,6 +6230,8 @@ prepare_function_start ()
cfun->function_frequency = FUNCTION_FREQUENCY_NORMAL;
+ cfun->max_jumptable_ents = 0;
+
(*lang_hooks.function.init) (cfun);
if (init_machine_status)
cfun->machine = (*init_machine_status) ();