• rth's avatar
    * varasm.c (initializer_constant_valid_p): Don't deny · dd1a226e
    rth authored
    	DECL_DLLIMPORT_P on functions.
    
    	* config/i386/cygming.h: Remove function declarations.
    	(SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
    	(ASM_OUTPUT_LABELREF): Remove.
    	(COMMON_ASM_OP): Remove.
    	(ASM_OUTPUT_COMMON): Remove.
    	(ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
    	(ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
    	(ASM_DECLARE_FUNCTION_NAME): Likewise.
    	* config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
    	Rename from TARGET_ENCODE_SECTION_INFO.
    	* config/i386/netware.h: Likewise.
    	* config/i386/i386-protos.h: Update.
    	* config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
    	of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
    	(legitimate_constant_p): Reject dllimports.
    	(dllimport_map, get_dllimport_decl): New.
    	(legitimize_dllimport_symbol): New.
    	(legitimize_address, ix86_expand_move): Use it.
    	(TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
    	* config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
    	(SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
    	(SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
    	* config/i386/predicates.md (constant_call_address_operand): Only
    	accept symbols; reject dllimport_p symbols.
    	* config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
    	i386_pe_maybe_record_exported_symbol.
    	* config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
    	(i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
    	(i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
    	trust the setting of DECL_DLLIMPORT_P.
    	(i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
    	(i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
    	(gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
    	tidy the argument scanning loop.
    	(i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
    	SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
    	(i386_pe_strip_name_encoding): Remove.
    	(i386_pe_binds_local_p): New.
    	(i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
    	(i386_pe_output_labelref): Remove.
    	(i386_pe_asm_output_aligned_decl_common): New.
    	(i386_pe_maybe_record_exported_symbol): Rename from
    	i386_pe_record_exported_symbol; check for dllexported symbols.
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123344 138bc75d-0d04-0410-961f-82ee72b054a4
    dd1a226e
ChangeLog 372 KB