diff options
Diffstat (limited to 'gcc/function.c')
-rw-r--r-- | gcc/function.c | 7 |
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) (); |