static section *pa_function_section (tree, enum node_frequency, bool, bool);
static bool pa_cannot_force_const_mem (machine_mode, rtx);
static bool pa_legitimate_constant_p (machine_mode, rtx);
-static unsigned int pa_section_type_flags (tree, const char *, int);
static bool pa_legitimate_address_p (machine_mode, rtx, bool,
code_helper = ERROR_MARK);
static bool pa_callee_copies (cumulative_args_t, const function_arg_info &);
#undef TARGET_LEGITIMATE_CONSTANT_P
#define TARGET_LEGITIMATE_CONSTANT_P pa_legitimate_constant_p
-#undef TARGET_SECTION_TYPE_FLAGS
-#define TARGET_SECTION_TYPE_FLAGS pa_section_type_flags
#undef TARGET_LEGITIMATE_ADDRESS_P
#define TARGET_LEGITIMATE_ADDRESS_P pa_legitimate_address_p
return true;
}
-/* Implement TARGET_SECTION_TYPE_FLAGS. */
-
-static unsigned int
-pa_section_type_flags (tree decl, const char *name, int reloc)
-{
- unsigned int flags;
-
- flags = default_section_type_flags (decl, name, reloc);
-
- /* Function labels are placed in the constant pool. This can
- cause a section conflict if decls are put in ".data.rel.ro"
- or ".data.rel.ro.local" using the __attribute__ construct. */
- if (strcmp (name, ".data.rel.ro") == 0
- || strcmp (name, ".data.rel.ro.local") == 0)
- flags |= SECTION_WRITE | SECTION_RELRO;
-
- return flags;
-}
-
/* pa_legitimate_address_p recognizes an RTL expression that is a
valid memory address for an instruction. The MODE argument is the
machine mode for the MEM expression that wants to use this address.