Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* gcc/config/i386/sol2.h (ASM_OUTPUT_CALL): Use print_operand.
* gcc/config/sparc/sol2.h (ASM_OUTPUT_CALL): Likewise. * gcc/sol2-c.c (cmn_err_char_table): Add "p". * gcc/dwarf2out.c (scope_die_for): If the containing scope is a TRANSLATION_UNIT_DECL, consider it to be a global. * gcc/fixinc/inclhack.def (solaris_longlong): New test. (sun_auth_proto): Avoid modifying headers from Solaris 2.8 or higher. * gcc/fixinc/fixincl.x: Regenerated. * gcc/testsuite/lib/gcc-dg.exp (dg-forbid-option): New function. * gcc/testsuite/lib/target-supports.exp (check_visibility_available): Really test the compiler. * gcc/testsuite/g++.dg/abi/bitfield3.C: Use dg-forbid-option -m64. * gcc/testsuite/g++.dg/abi/bitfield8.C: Likewise. * gcc/testsuite/g++.dg/abi/dtor1.C: Likewise. * gcc/testsuite/g++.dg/abi/empty10.C: Likewise. * gcc/testsuite/g++.dg/abi/empty7.C: Likewise. * gcc/testsuite/g++.dg/abi/empty9.C: Likewise. * gcc/testsuite/g++.dg/abi/layout3.C: Likewise. * gcc/testsuite/g++.dg/abi/layout4.C: Likewise. * gcc/testsuite/g++.dg/abi/thunk1.C: Likewise. * gcc/testsuite/g++.dg/abi/thunk2.C: Likewise. * gcc/testsuite/g++.dg/abi/vbase11.C: Likewise. * gcc/testsuite/g++.dg/abi/vthunk2.C: Likewise. * gcc/testsuite/g++.dg/abi/vthunk3.C: Likewise. * gcc/testsuite/g++.dg/ext/attrib8.C: Likewise. * gcc/testsuite/g++.dg/opt/langbranch2.C: Likewise. * gcc/testsuite/g++.dg/opt/reg-stack4.C: Likewise. * gcc/testsuite/g++.old-deja/g++.ext/attrib1.C: Likewise. * gcc/testsuite/g++.old-deja/g++.ext/attrib2.C: Likewise. * gcc/testsuite/g++.old-deja/g++.ext/attrib3.C: Likewise. * gcc/testsuite/g++.old-deja/g++.other/store-expr1.C: Likewise. * gcc/testsuite/g++.old-deja/g++.other/store-expr2.C: Likewise. * gcc/testsuite/gcc.dg/20000609-1.c: Likewise. * gcc/testsuite/gcc.dg/20000720-1.c: Likewise. * gcc/testsuite/gcc.dg/20011107-1.c: Likewise. * gcc/testsuite/gcc.dg/20011119-1.c: Likewise. * gcc/testsuite/gcc.dg/20020108-1.c: Likewise. * gcc/testsuite/gcc.dg/20020122-2.c: Likewise. * gcc/testsuite/gcc.dg/20020122-3.c: Likewise. * gcc/testsuite/gcc.dg/20020201-3.c: Likewise. * gcc/testsuite/gcc.dg/20020206-1.c: Likewise. * gcc/testsuite/gcc.dg/20020218-1.c: Likewise. * gcc/testsuite/gcc.dg/20020310-1.c: Likewise. * gcc/testsuite/gcc.dg/20020411-1.c: Likewise. * gcc/testsuite/gcc.dg/20020418-2.c: Likewise. * gcc/testsuite/gcc.dg/20020426-1.c: Likewise. * gcc/testsuite/gcc.dg/20020426-2.c: Likewise. * gcc/testsuite/gcc.dg/20020517-1.c: Likewise. * gcc/testsuite/gcc.dg/20020523-1.c: Likewise. * gcc/testsuite/gcc.dg/20020523-2.c: Likewise. * gcc/testsuite/gcc.dg/20020729-1.c: Likewise. * gcc/testsuite/gcc.dg/20030204-1.c: Likewise. * gcc/testsuite/gcc.dg/20030826-2.c: Likewise. * gcc/testsuite/gcc.dg/20030926-1.c: Likewise. * gcc/testsuite/gcc.dg/20031202-1.c: Likewise. * gcc/testsuite/gcc.dg/980312-1.c: Likewise. * gcc/testsuite/gcc.dg/980313-1.c: Likewise. * gcc/testsuite/gcc.dg/990117-1.c: Likewise. * gcc/testsuite/gcc.dg/990424-1.c: Likewise. * gcc/testsuite/gcc.dg/990524-1.c: Likewise. * gcc/testsuite/gcc.dg/991230-1.c: Likewise. * gcc/testsuite/gcc.dg/const-elim-1.c: Likewise. * gcc/testsuite/gcc.dg/i386-387-1.c: Likewise. * gcc/testsuite/gcc.dg/i386-387-2.c: Likewise. * gcc/testsuite/gcc.dg/i386-387-3.c: Likewise. * gcc/testsuite/gcc.dg/i386-387-4.c: Likewise. * gcc/testsuite/gcc.dg/i386-387-5.c: Likewise. * gcc/testsuite/gcc.dg/i386-387-6.c: Likewise. * gcc/testsuite/gcc.dg/i386-asm-1.c: Likewise. * gcc/testsuite/gcc.dg/i386-bitfield1.c: Likewise. * gcc/testsuite/gcc.dg/i386-bitfield2.c: Likewise. * gcc/testsuite/gcc.dg/i386-loop-1.c: Likewise. * gcc/testsuite/gcc.dg/i386-loop-2.c: Likewise. * gcc/testsuite/gcc.dg/i386-loop-3.c: Likewise. * gcc/testsuite/gcc.dg/i386-pentium4-not-mull.c: Likewise. * gcc/testsuite/gcc.dg/i386-pic-1.c: Likewise. * gcc/testsuite/gcc.dg/i386-regparm.c: Likewise. * gcc/testsuite/gcc.dg/i386-signbit-1.c: Likewise. * gcc/testsuite/gcc.dg/i386-signbit-2.c: Likewise. * gcc/testsuite/gcc.dg/i386-signbit-3.c: Likewise. * gcc/testsuite/gcc.dg/i386-sse-2.c: Likewise. * gcc/testsuite/gcc.dg/i386-sse-5.c: Likewise. * gcc/testsuite/gcc.dg/i386-sse-8.c: Likewise. * gcc/testsuite/gcc.dg/i386-unroll-1.c: Likewise. * gcc/testsuite/gcc.dg/tls/opt-1.c: Likewise. * gcc/testsuite/gcc.dg/tls/opt-2.c: Likewise. * gcc/testsuite/gcc.dg/unroll-1.c: Likewise. * gcc/testsuite/gcc.misc-tests/i386-pf-3dno-1.c: Likewise. * gcc/testsuite/gcc.misc-tests/i386-pf-athlon-1.c: Likewise. * gcc/testsuite/gcc.misc-tests/i386-pf-none-1.c: Likewise. * gcc/testsuite/gcc.misc-tests/i386-pf-sse-1.c: Likewise. * gcc/testsuite/gcc.dg/tls/alias-1.c: Use dg-require-visibility. * gcc/testsuite/gcc.c-torture/execute/20010129-1.x: Do not use -mtune=i686 when -m64 is specified. * gcc/testsuite/g++.dg/eh/badalloc1.C: Robustify. * libstdc++-v3/testsuite/27_io/basic_stream/extractors_arithmetic/char/12.cc: XFAIL on all Solaris targets. * gcc/c-decl.c (implicitly_declare): Call maybe_apply_renaming_pragma. (builtin_function): Call maybe_apply_renaming_pragma for all global variables and functions. * gcc/testsuite/gcc.dg/pragma-re-3.c: New test. Backport: 2004-06-20 Zack Weinberg <[email protected]> * gcc/c-common.h (has_c_linkage): New interface. * gcc/c-cppbuiltin.c (maybe_apply_renaming_pragma): Rewrite according to clarified semantics. Always recognize, but do not necessarily execute. * gcc/c-decl.c (builtin_function): Don't call make_decl_rtl. * gcc/c-objc-common.c (has_c_linkage): Stub implementation. * gcc/cp/except.c (nothrow_libfn_p): Look at DECL_NAME, not DECL_ASSEMBLER_NAME. * config/sol2-c.c (solaris_pragma_align): Allow #pragma align after the first declaration. * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Re-enable asynchronous unwind tables by default for 64-bit. * gcc.dg/pragma-align-2.c: Test for #pragma align after the definition of y16. * c-pragma.c (maybe_apply_pending_pragma_weaks): Mark the new decl as weak. * Makefile.in (c-objc-common.o): Update dependencies. * config/sol2-c.c (solaris_register_pragmas): Use c_register_pragma_with_expansion. * config/sol2.h (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Define. * doc/extend.texi (Solaris Pragmas): Mention macro expansion for #pragma align. * c-objc-common.c: Include "c-pragma.h". (c_objc_common_finish_file): Call maybe_apply_pending_pragma_weaks. * c-pragma.c (maybe_apply_pending_pragma_weaks): New function. (c_register_pragma): Update call to cpp_register_pragma. (c_register_pragma_with_expansion): New function. (init_pragma): Honor HANDLE_PRAGMA_PACK_WITH_EXPANSION. * c-pragma.h (c_register_pragma_with_expansion) (maybe_apply_pending_pragma_weaks): New prototypes. * cpplib.c (struct pragma_entry): Add allow_expansion. (insert_pragma_entry): Take allow_expansion flag. (cpp_register_pragma): Likewise. (_cpp_init_internal_pragmas): Update calls to cpp_register_pragma. (do_pragma): Honor allow_expansion. * cpplib.h (cpp_register_pragma): Update prototype. * Make-lang.in (cp/decl2.c): Update dependencies. * decl2.c (finish_file): Call maybe_apply_pending_pragma_weaks. * gcc.dg/pragma-align-2.c: Test macro expansion. * gcc.dg/pragma-align.c: Fix abort on -m64. * gcc.dg/pragma-pack-2.c: New test. * config/i386/sol2-10.h (LINK_ARCH64_SPEC_BASE) (LINK_ARCH64_SPEC, LINK_ARCH64_SPEC, TARGET_LD_EMULATION) (LINK_ARCH_SPEC): Define. * config/i386/t-sol2-10: Define MULTILIB_OSDIRNAMES. (EXTRA_MULTILIB_PARTS): Remove crti.o, crtn.o, crt1.o, gcrt1.o. * config.gcc (i[34567]86-*-solaris2*): Define TARGET_GNU_LD. * config/sol2-c.c, config/sol2.c: Replace %< and %> with "'". * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Handle 64-bit. * config/i386/sol2-10.h (CRT_GET_RFIB_DATA): Redefine. * config.gcc (i[34567]86-*-solaris2*): Set need_64bit_hwint. * config/i386/t-sol2: Introduce multilib support. * config/i386/sol2-10.h (MULTILIB_DEFAULTS): Define. * config/i386/t-sol2-10: New file. * config.gcc (i[34567]86-*-solaris2*): Use t-sol2-10. * config/i386/i386.c (i386_solaris_elf_named_section): New function. * config/i386/i386-protos.h (i386_solaris_elf_named_section): Add prototype. * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Redefine. * config/i386/i386.c (override_options): Move SUBTARGET_OVERRIDE_OPTIONS before defaulting flag_omit_frame_pointer. * config.gcc (i[34567]86-*-solaris2*): Handle Solaris 2.10. * config/i386/sol2-10.h: New file. * config/i386/sol2.h (ASM_QUAD): Don't undefine for biarch targets. * Makefile.in (c-format.o): Depend on c-format.h. * c-format.h: New file. (struct format_char_info): Add CHAIN member. * c-format.c: Move some types and constants to c-format.h. (format_type_error): Set to -1. (struct function_format_info): Use an int for format_type. (decode_format_type): Return an int. Return format_type_error on error. (print_char_table, asm_fprintf_char_table, gcc_diag_char_table) (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table) (scan_char_table, time_char_table, monetary_char_table): Initialize CHAIN to NULL. (n_format_types): New variable. (check_format_info_main): Handle CHAIN in format_char_info. (handle_format_attribute): Handle TARGET_FORMAT_TYPES and TARGET_N_FORMAT_TYPES. * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*) (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c. * config/sol2-c.c: New file. * config/t-sol2: New file. * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define. * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES. * doc/extend.texi (Target Format Checks): New section. (Function Attributes): Mention it. * doc/invoke.texi: Mention target format checks. * doc/sourcebuild.texi: Mention target format checks. * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES. * gcc.dg/format/cmn-err-1.c: New test. * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*) (sparc-*-solaris2*): Include sol2.o and sol2-protos.h. * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h", "cpplib.h", "c-pragma.h", "c-common.h". (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini) (solaris_register_pragmas): New functions. * config/sol2-protos.h: New file. * config/sol2.c: New file. * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE) (REGISTER_TARGET_PRAGMAS): New macros. (solaris_pending_aligns, solaris_pending_inits) (solaris_pending_finis): New variables. * config/t-sol2 (sol2-c.o): Update dependencies. (sol2.o): New rule. * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of SUBTARGET_INSERT_ATTRIBUTES. (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE. * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES) (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define. * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine. * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine. * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES) (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define. * config/sparc/sparc.c (sparc_attribute_table): New. (TARGET_INSERT_ATTRIBUTES): Define in terms of SUBTARGET_INSERT_ATTRIBUTES. (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE is defined. * doc/extend.texi (Solaris Pragmas): New section. * testsuite/gcc.dg/pragma-align-2.c: New test. * testsuite/gcc.dg/pragma-init-fini.c: New test. * testsuite/gcc.dg/pragma-align.c: Change from compile to run. Run on Solaris targets. * config/i386/i386.c (override_options): Pick a 64-bit CPU for the default tuning if TARGET_64BIT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/csl-sol210-3_4-branch@87928 138bc75d-0d04-0410-961f-82ee72b054a4
- Loading branch information