diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 15122c17574..5870287d399 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +Tue Nov 9 16:43:00 1999 Nick Clifton + + * config/arm/arm-protos.h: New file: Prototypes for functions + defined in arm.c and pe.c. + * config/arm/arm.h: Fix compile time warnings. + * config/arm/arm.c: Fix compile time warnings. + * config/arm/pe.h: Fix compile time warnings. + * config/arm/aout.h: Fix compile time warnings. + Tue Nov 9 14:55:44 1999 Nick Clifton * config/m32r/m32r-protos.h: New file: Prototypes for functions diff --git a/gcc/config/arm/aout.h b/gcc/config/arm/aout.h index 1f3ee79596b..79003d28b08 100644 --- a/gcc/config/arm/aout.h +++ b/gcc/config/arm/aout.h @@ -37,8 +37,8 @@ Boston, MA 02111-1307, USA. */ } #endif -#define ASM_APP_ON "" -#define ASM_APP_OFF "" +#define ASM_APP_ON " " +#define ASM_APP_OFF " " /* Switch to the text or data segment. */ #define TEXT_SECTION_ASM_OP ".text" diff --git a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h new file mode 100644 index 00000000000..3da3cd8e07e --- /dev/null +++ b/gcc/config/arm/arm-protos.h @@ -0,0 +1,155 @@ +/* Prototypes for exported functions defined in arm.c and pe.c + Copyright (C) 1999 Free Software Foundation, Inc. + Contributed by Richard Earnshaw (rearnsha@arm.com) + Minor hacks by Nick Clifton (nickc@cygnus.com) + +This file is part of GNU CC. + +GNU CC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU CC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +extern void arm_expand_prologue PROTO ((void)); +extern void arm_finalize_pic PROTO ((void)); +extern char * arm_output_epilogue PROTO ((void)); +extern void arm_override_options PROTO ((void)); +extern void arm_poke_function_name PROTO ((FILE *, char *)); +extern int arm_process_pragma PROTO ((int (*)(void), void (*) (int), char *)); +extern int arm_regno_class PROTO ((int)); +extern int arm_volatile_func PROTO ((void)); +extern int const_ok_for_arm PROTO ((HOST_WIDE_INT)); +extern void output_arm_prologue PROTO ((FILE *, int)); +extern void output_ascii_pseudo_op PROTO ((FILE *, unsigned char *, int)); +extern void output_func_epilogue PROTO ((int)); +extern void output_func_prologue PROTO ((FILE *, int)); +extern int use_return_insn PROTO ((int)); +#if defined AOF_ASSEMBLER +extern void aof_add_import PROTO ((char *)); +extern char * aof_data_section PROTO ((void)); +extern void aof_delete_import PROTO ((char *)); +extern void aof_dump_imports PROTO ((FILE *)); +extern void aof_dump_pic_table PROTO ((FILE *)); +extern char * aof_text_section PROTO ((void)); +#endif /* AOF_ASSEMBLER */ +/* Defined in pe.c */ +extern int arm_dllexport_name_p PROTO ((char *)); +extern int arm_dllimport_name_p PROTO ((char *)); + +#define Mmode enum machine_mode + +#ifdef TREE_CODE +extern int arm_comp_type_attributes PROTO ((tree, tree)); +extern int arm_return_in_memory PROTO ((tree)); +extern int arm_valid_machine_decl_attribute PROTO ((tree, tree, tree)); +extern int arm_valid_type_attribute_p PROTO ((tree, tree, tree, tree)); +/* Defined in pe.c */ +extern int arm_dllexport_p PROTO ((tree)); +extern int arm_dllimport_p PROTO ((tree)); +extern void arm_mark_dllexport PROTO ((tree)); +extern void arm_mark_dllimport PROTO ((tree)); +extern void arm_pe_encode_section_info PROTO ((tree)); +extern tree arm_pe_merge_machine_decl_attributes PROTO ((tree, tree)); +extern void arm_pe_unique_section PROTO ((tree, int)); +extern int arm_pe_valid_machine_decl_attribute PROTO ((tree, tree, tree, tree)); +#endif + +#ifdef RTX_CODE +extern int adjacent_mem_locations PROTO ((rtx, rtx)); +extern char * arithmetic_instr PROTO ((rtx, int)); +extern int arm_adjust_cost PROTO ((rtx, rtx, rtx, int)); +extern RTX_CODE arm_canonicalize_comparison PROTO ((RTX_CODE, rtx *)); +extern int arm_debugger_arg_offset PROTO ((int, rtx)); +extern void arm_final_prescan_insn PROTO ((rtx)); +extern rtx arm_gen_load_multiple PROTO ((int, int, rtx, int, int, int, int, int)); +extern int arm_gen_movstrqi PROTO ((rtx *)); +extern rtx arm_gen_store_multiple PROTO ((int, int, rtx, int, int, int, int, int)); +extern void arm_print_operand PROTO ((FILE *, rtx, int)); +extern void arm_reload_in_hi PROTO ((rtx *)); +extern void arm_reload_out_hi PROTO ((rtx *)); +extern void arm_reorg PROTO ((rtx)); +extern int arm_rtx_costs PROTO ((rtx, RTX_CODE)); +extern Mmode arm_select_cc_mode PROTO ((RTX_CODE, rtx, rtx)); +extern int const_double_rtx_ok_for_fpu PROTO ((rtx)); +extern int const_ok_for_arm PROTO ((HOST_WIDE_INT)); +extern char * emit_ldm_seq PROTO ((rtx *, int)); +extern char * emit_stm_seq PROTO ((rtx *, int)); +extern char * fp_immediate_constant PROTO ((rtx)); +extern rtx gen_compare_reg PROTO ((RTX_CODE, rtx, rtx)); +extern rtx gen_rotated_half_load PROTO ((rtx)); +extern int is_pic PROTO ((rtx)); +extern int label_mentioned_p PROTO ((rtx)); +extern int legitimate_pic_operand_p PROTO ((rtx)); +extern int load_multiple_sequence PROTO ((rtx *, int, int *, int *, HOST_WIDE_INT *)); +extern RTX_CODE minmax_code PROTO ((rtx)); +extern int neg_const_double_rtx_ok_for_fpu PROTO ((rtx)); +extern char * output_add_immediate PROTO ((rtx *)); +extern char * output_call PROTO ((rtx *)); +extern char * output_call_mem PROTO ((rtx *)); +extern char * output_mov_double_arm_from_fpu PROTO ((rtx *)); +extern char * output_mov_double_fpu_from_arm PROTO ((rtx *)); +extern char * output_mov_immediate PROTO ((rtx *)); +extern char * output_mov_long_double_arm_from_arm PROTO ((rtx *)); +extern char * output_mov_long_double_arm_from_fpu PROTO ((rtx *)); +extern char * output_mov_long_double_fpu_from_arm PROTO ((rtx *)); +extern char * output_move_double PROTO ((rtx *)); +extern char * output_return_instruction PROTO ((rtx, int, int)); +extern int store_multiple_sequence PROTO ((rtx *, int, int *, int *, HOST_WIDE_INT *)); +extern int symbol_mentioned_p PROTO ((rtx)); +#if defined AOF_ASSEMBLER +extern rtx aof_pic_entry PROTO ((rtx)); +#endif /* AOF_ASSEMBLER */ + +#ifdef HAVE_MACHINE_MODES +extern int alignable_memory_operand PROTO ((rtx, Mmode)); +extern int arm_add_operand PROTO ((rtx, Mmode)); +extern int arm_go_if_legitimate_address PROTO ((Mmode, rtx)); +extern int arm_not_operand PROTO ((rtx, Mmode)); +extern int arm_reload_memory_operand PROTO ((rtx, Mmode)); +extern int arm_rhs_operand PROTO ((rtx, Mmode)); +extern int arm_rhsm_operand PROTO ((rtx, Mmode)); +extern Mmode arm_select_cc_mode PROTO ((RTX_CODE, rtx, rtx)); +extern int arm_split_constant PROTO ((RTX_CODE, Mmode, HOST_WIDE_INT, rtx, rtx, int)); +extern int bad_signed_byte_operand PROTO ((rtx, Mmode)); +extern int cc_register PROTO ((rtx, Mmode)); +extern int const_shift_operand PROTO ((rtx, Mmode)); +extern int di_operand PROTO ((rtx, Mmode)); +extern int dominant_cc_register PROTO ((rtx, Mmode)); +extern int equality_operator PROTO ((rtx, Mmode)); +extern int f_register_operand PROTO ((rtx, Mmode)); +extern int fpu_add_operand PROTO ((rtx, Mmode)); +extern int fpu_rhs_operand PROTO ((rtx, Mmode)); +extern int index_operand PROTO ((rtx, Mmode)); +extern rtx legitimize_pic_address PROTO ((rtx, Mmode, rtx)); +extern int load_multiple_operation PROTO ((rtx, Mmode)); +extern int logical_binary_operator PROTO ((rtx, Mmode)); +extern int minmax_operator PROTO ((rtx, Mmode)); +extern int multi_register_push PROTO ((rtx, Mmode)); +extern int nonimmediate_di_operand PROTO ((rtx, Mmode)); +extern int nonimmediate_soft_df_operand PROTO ((rtx, Mmode)); +extern int offsettable_memory_operand PROTO ((rtx, Mmode)); +extern int power_of_two_operand PROTO ((rtx, Mmode)); +extern int reg_or_int_operand PROTO ((rtx, Mmode)); +extern int s_register_operand PROTO ((rtx, Mmode)); +extern int shift_operator PROTO ((rtx, Mmode)); +extern int shiftable_operator PROTO ((rtx, Mmode)); +extern int soft_df_operand PROTO ((rtx, Mmode)); +extern int store_multiple_operation PROTO ((rtx, Mmode)); +#if defined TREE_CODE +extern rtx arm_function_arg PROTO ((CUMULATIVE_ARGS *, Mmode, tree, int)); +extern void arm_init_cumulative_args PROTO ((CUMULATIVE_ARGS *, tree, rtx, int)); +#endif /* TREE_CODE */ +#endif /* HAVE_MACHINE_MODES */ +#endif /* RTX_CODE */ + +#undef Mmode diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 547cbfd2416..9429d2c46ef 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -40,6 +40,7 @@ Boston, MA 02111-1307, USA. */ #include "toplev.h" #include "recog.h" #include "ggc.h" +#include "arm-protos.h" /* The maximum number of insns skipped which will be conditionalised if possible. */ @@ -48,32 +49,32 @@ static int max_insns_skipped = 5; extern FILE * asm_out_file; /* Some function declarations. */ -static HOST_WIDE_INT int_log2 PROTO ((HOST_WIDE_INT)); -static char * output_multi_immediate PROTO ((rtx *, char *, char *, int, - HOST_WIDE_INT)); -static int arm_gen_constant PROTO ((enum rtx_code, enum machine_mode, - HOST_WIDE_INT, rtx, rtx, int, int)); -static int arm_naked_function_p PROTO ((tree)); -static void init_fpa_table PROTO ((void)); -static enum machine_mode select_dominance_cc_mode PROTO ((rtx, rtx, - HOST_WIDE_INT)); -static HOST_WIDE_INT add_minipool_constant PROTO ((rtx, enum machine_mode)); -static void dump_minipool PROTO ((rtx)); -static rtx find_barrier PROTO ((rtx, int)); -static void push_minipool_fix PROTO ((rtx, int, rtx *, enum machine_mode, - rtx)); -static void push_minipool_barrier PROTO ((rtx, int)); -static void note_invalid_constants PROTO ((rtx, int)); -static char * fp_const_from_val PROTO ((REAL_VALUE_TYPE *)); -static int eliminate_lr2ip PROTO ((rtx *)); -static char * shift_op PROTO ((rtx, HOST_WIDE_INT *)); -static int pattern_really_clobbers_lr PROTO ((rtx)); -static int function_really_clobbers_lr PROTO ((rtx)); -static void emit_multi_reg_push PROTO ((int)); -static void emit_sfm PROTO ((int, int)); +#ifndef Mmode +#define Mmode enum machine_mode +#endif + +static HOST_WIDE_INT int_log2 PROTO ((HOST_WIDE_INT)); +static char * output_multi_immediate PROTO ((rtx *, char *, char *, int, HOST_WIDE_INT)); +static int arm_gen_constant PROTO ((enum rtx_code, Mmode, HOST_WIDE_INT, rtx, rtx, int, int)); +static int arm_naked_function_p PROTO ((tree)); +static void init_fpa_table PROTO ((void)); +static enum machine_mode select_dominance_cc_mode PROTO ((rtx, rtx, HOST_WIDE_INT)); +static HOST_WIDE_INT add_minipool_constant PROTO ((rtx, Mmode)); +static void dump_minipool PROTO ((rtx)); +static rtx find_barrier PROTO ((rtx, int)); +static void push_minipool_fix PROTO ((rtx, int, rtx *, Mmode, rtx)); +static void push_minipool_barrier PROTO ((rtx, int)); +static void note_invalid_constants PROTO ((rtx, int)); +static char * fp_const_from_val PROTO ((REAL_VALUE_TYPE *)); +static int eliminate_lr2ip PROTO ((rtx *)); +static char * shift_op PROTO ((rtx, HOST_WIDE_INT *)); +static int pattern_really_clobbers_lr PROTO ((rtx)); +static int function_really_clobbers_lr PROTO ((rtx)); +static void emit_multi_reg_push PROTO ((int)); +static void emit_sfm PROTO ((int, int)); static enum arm_cond_code get_arm_condition_code PROTO ((rtx)); -static int const_ok_for_op RTX_CODE_PROTO ((HOST_WIDE_INT, Rcode)); -static void arm_add_gc_roots PROTO ((void)); +static int const_ok_for_op PROTO ((HOST_WIDE_INT, enum rtx_code)); +static void arm_add_gc_roots PROTO ((void)); /* True if we are currently building a constant table. */ int making_const_table; @@ -5928,8 +5929,7 @@ arm_output_epilogue () } void -output_func_epilogue (f, frame_size) - FILE *f ATTRIBUTE_UNUSED; +output_func_epilogue (frame_size) int frame_size; { if (use_return_insn (FALSE) && return_used_this_function diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index db7bf5c122f..a7ecbb50839 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -1275,7 +1275,7 @@ enum reg_class /* Generate the assembly code for function exit. */ #define FUNCTION_EPILOGUE(STREAM, SIZE) \ - output_func_epilogue (STREAM, SIZE) + output_func_epilogue (SIZE) /* Determine if the epilogue should be output as RTL. You should override this if you define FUNCTION_EXTRA_EPILOGUE. */ @@ -2200,156 +2200,4 @@ extern struct rtx_def * arm_compare_op1; when running in 32 bit mode. */ \ ((!TARGET_APCS_32) ? (GEN_INT (0x03fffffc)) : (GEN_INT (0xffffffff))) -/* The remainder of this file is only needed for building the compiler - itself, not for the collateral. */ -#ifdef HAVE_CONFIG_H - -/* Prototypes for functions in arm.c */ - -#ifdef BUFSIZ /* stdio.h has been included, ok to use FILE * */ -#define STDIO_PROTO(ARGS) PROTO (ARGS) -#else -#define STDIO_PROTO(ARGS) () -#endif - -#ifndef TREE_CODE -union tree_node; -#define Tree union tree_node * -#else -#define Tree tree -#endif - -#ifndef RTX_CODE -struct rtx_def; -#define Rtx struct rtx_def * -#else -#define Rtx rtx -#endif - -#ifndef HOST_WIDE_INT -#include "hwint.h" -#endif - - -#ifndef HAVE_MACHINE_MODES -#include "machmode.h" -#endif - -#define Mmode enum machine_mode - -#ifdef RTX_CODE -#define RTX_CODE_PROTO(ARGS) PROTO (ARGS) -#else -#define RTX_CODE_PROTO(ARGS) () -#endif - -#define Rcode enum rtx_code - -void arm_override_options PROTO ((void)); -int use_return_insn PROTO ((int)); -int const_ok_for_arm PROTO ((HOST_WIDE_INT)); -int arm_split_constant RTX_CODE_PROTO ((Rcode, Mmode, HOST_WIDE_INT, Rtx, - Rtx, int)); -Rcode arm_canonicalize_comparison RTX_CODE_PROTO ((Rcode, Rtx *)); -int arm_return_in_memory PROTO ((Tree)); -int legitimate_pic_operand_p PROTO ((Rtx)); -Rtx legitimize_pic_address PROTO ((Rtx, Mmode, Rtx)); -int is_pic PROTO ((Rtx)); -void arm_finalize_pic PROTO ((void)); -int arm_rtx_costs RTX_CODE_PROTO ((Rtx, Rcode)); -int arm_adjust_cost PROTO ((Rtx, Rtx, Rtx, int)); -int const_double_rtx_ok_for_fpu PROTO ((Rtx)); -int neg_const_double_rtx_ok_for_fpu PROTO ((Rtx)); -int s_register_operand PROTO ((Rtx, Mmode)); -int f_register_operand PROTO ((Rtx, Mmode)); -int reg_or_int_operand PROTO ((Rtx, Mmode)); -int reload_memory_operand PROTO ((Rtx, Mmode)); -int arm_rhs_operand PROTO ((Rtx, Mmode)); -int arm_rhsm_operand PROTO ((Rtx, Mmode)); -int arm_add_operand PROTO ((Rtx, Mmode)); -int arm_not_operand PROTO ((Rtx, Mmode)); -int offsettable_memory_operand PROTO ((Rtx, Mmode)); -int alignable_memory_operand PROTO ((Rtx, Mmode)); -int bad_signed_byte_operand PROTO ((Rtx, Mmode)); -int fpu_rhs_operand PROTO ((Rtx, Mmode)); -int fpu_add_operand PROTO ((Rtx, Mmode)); -int power_of_two_operand PROTO ((Rtx, Mmode)); -int di_operand PROTO ((Rtx, Mmode)); -int soft_df_operand PROTO ((Rtx, Mmode)); -int index_operand PROTO ((Rtx, Mmode)); -int const_shift_operand PROTO ((Rtx, Mmode)); -int shiftable_operator PROTO ((Rtx, Mmode)); -int logical_binary_operator PROTO ((Rtx, Mmode)); -int shift_operator PROTO ((Rtx, Mmode)); -int equality_operator PROTO ((Rtx, Mmode)); -int minmax_operator PROTO ((Rtx, Mmode)); -int cc_register PROTO ((Rtx, Mmode)); -int dominant_cc_register PROTO ((Rtx, Mmode)); -int symbol_mentioned_p PROTO ((Rtx)); -int label_mentioned_p PROTO ((Rtx)); -Rcode minmax_code PROTO ((Rtx)); -int adjacent_mem_locations PROTO ((Rtx, Rtx)); -int load_multiple_operation PROTO ((Rtx, Mmode)); -int store_multiple_operation PROTO ((Rtx, Mmode)); -int load_multiple_sequence PROTO ((Rtx *, int, int *, int *, - HOST_WIDE_INT *)); -char * emit_ldm_seq PROTO ((Rtx *, int)); -int store_multiple_sequence PROTO ((Rtx *, int, int *, int *, - HOST_WIDE_INT *)); -char * emit_stm_seq PROTO ((Rtx *, int)); -int arm_valid_machine_decl_attribute PROTO ((Tree, Tree, Tree)); -Rtx arm_gen_load_multiple PROTO ((int, int, Rtx, int, int, int, int, int)); -Rtx arm_gen_store_multiple PROTO ((int, int, Rtx, int, int, int, int, int)); -int arm_gen_movstrqi PROTO ((Rtx *)); -Rtx gen_rotated_half_load PROTO ((Rtx)); -Mmode arm_select_cc_mode RTX_CODE_PROTO ((Rcode, Rtx, Rtx)); -Rtx gen_compare_reg RTX_CODE_PROTO ((Rcode, Rtx, Rtx, int)); -void arm_reload_in_hi PROTO ((Rtx *)); -void arm_reload_out_hi PROTO ((Rtx *)); -void arm_reorg PROTO ((Rtx)); -char * fp_immediate_constant PROTO ((Rtx)); -void print_multi_reg STDIO_PROTO ((FILE *, char *, int, int)); -char * output_call PROTO ((Rtx *)); -char * output_call_mem PROTO ((Rtx *)); -char * output_mov_long_double_fpu_from_arm PROTO ((Rtx *)); -char * output_mov_long_double_arm_from_fpu PROTO ((Rtx *)); -char * output_mov_long_double_arm_from_arm PROTO ((Rtx *)); -char * output_mov_double_fpu_from_arm PROTO ((Rtx *)); -char * output_mov_double_arm_from_fpu PROTO ((Rtx *)); -char * output_move_double PROTO ((Rtx *)); -char * output_mov_immediate PROTO ((Rtx *)); -char * output_add_immediate PROTO ((Rtx *)); -char * arithmetic_instr PROTO ((Rtx, int)); -void output_ascii_pseudo_op STDIO_PROTO ((FILE *, unsigned char *, int)); -char * output_return_instruction PROTO ((Rtx, int, int)); -int arm_volatile_func PROTO ((void)); -void arm_poke_function_name STDIO_PROTO ((FILE *, char *)); -void output_func_prologue STDIO_PROTO ((FILE *, int)); -void output_func_epilogue STDIO_PROTO ((FILE *, int)); -void arm_expand_prologue PROTO ((void)); -char * arm_output_epilogue PROTO ((void)); -void arm_print_operand STDIO_PROTO ((FILE *, Rtx, int)); -void arm_final_prescan_insn PROTO ((Rtx)); -int short_branch PROTO ((int, int)); -void assemble_align PROTO((int)); /* Used in arm.md, but defined in output.c */ -int multi_register_push PROTO ((Rtx, Mmode)); -#ifdef AOF_ASSEMBLER -Rtx aof_pic_entry PROTO ((Rtx)); -void aof_dump_pic_table STDIO_PROTO ((FILE *)); -char * aof_text_section PROTO ((void)); -char * aof_data_section PROTO ((void)); -void aof_add_import PROTO ((char *)); -void aof_delete_import PROTO ((char *)); -void aof_dump_imports STDIO_PROTO ((FILE *)); -#endif - -/* Define in pe.c */ -int arm_pe_return_in_memory PROTO ((Tree)); -int arm_dllexport_p PROTO ((Tree)); -int arm_dllimport_p PROTO ((Tree)); -int arm_dllexport_name_p PROTO ((char *)); -int arm_dllimport_name_p PROTO ((char *)); - -#endif /* HAVE_CONFIG_H */ - #endif /* __ARM_H__ */ diff --git a/gcc/config/arm/pe.h b/gcc/config/arm/pe.h index 18281cd1d38..978c296c40e 100644 --- a/gcc/config/arm/pe.h +++ b/gcc/config/arm/pe.h @@ -89,7 +89,6 @@ Boston, MA 02111-1307, USA. */ /* A C expression whose value is nonzero if IDENTIFIER with arguments ARGS is a valid machine specific attribute for DECL. The attributes in ATTRIBUTES have previously been assigned to DECL. */ -extern int arm_pe_valid_machine_decl_attribute (); #undef VALID_MACHINE_DECL_ATTRIBUTE #define VALID_MACHINE_DECL_ATTRIBUTE(DECL, ATTRIBUTES, IDENTIFIER, ARGS) \ arm_pe_valid_machine_decl_attribute (DECL, ATTRIBUTES, IDENTIFIER, ARGS) @@ -99,12 +98,10 @@ arm_pe_valid_machine_decl_attribute (DECL, ATTRIBUTES, IDENTIFIER, ARGS) TYPE1 and TYPE2 are incompatible, one if they are compatible, and two if they are nearly compatible (which causes a warning to be generated). */ -extern int arm_pe_comp_type_attributes (); #define COMP_TYPE_ATTRIBUTES(TYPE1, TYPE2) \ arm_pe_comp_type_attributes ((TYPE1), (TYPE2)) #endif -extern union tree_node *arm_pe_merge_machine_decl_attributes (); #define MERGE_MACHINE_DECL_ATTRIBUTES(OLD, NEW) \ arm_pe_merge_machine_decl_attributes ((OLD), (NEW)) @@ -115,7 +112,6 @@ arm_pe_merge_machine_decl_attributes ((OLD), (NEW)) This is also needed to implement one-only vtables: they go into their own section and we need to set DECL_SECTION_NAME so we do that here. Note that we can be called twice on the same decl. */ -extern void arm_pe_encode_section_info (); #undef ENCODE_SECTION_INFO #define ENCODE_SECTION_INFO(DECL) \ arm_pe_encode_section_info (DECL) @@ -149,7 +145,7 @@ arm_pe_encode_section_info (DECL) #define MULTIPLE_SYMBOL_SPACES #define UNIQUE_SECTION_P(DECL) DECL_ONE_ONLY (DECL) -extern void arm_pe_unique_section (); + #define UNIQUE_SECTION(DECL,RELOC) arm_pe_unique_section (DECL, RELOC) #define SUPPORTS_ONE_ONLY 1