* config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
we can...
* config/darwin.opt (fapple-kext): Make C++ only.
* config/darwin.c (darwin_override_options): Remove code to ensure
-fapple-kext is given for C++ only.
From-SVN: r123792
2007-04-13 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31550
* trans-types.c (copy_dt_decls_ifequal): Do not get pointer
derived type components.
2007-04-13 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31550
* gfortran.dg/used_types_16.f90: New test.
From-SVN: r123791
PR fortran/18937
fortran/
* resolve.c: Include obstack.h and bitmap.h. New variable
labels_obstack.
(code_stack): Add tail and reachable_labels fields.
(reachable_labels): New function.
(resolve_branch): Rework to use new fields in code_stack.
(resolve_code): Call reachable_labels.
(resolve_codes): Allocate and free labels_obstack.
testsuite/
* gfortran.dg/goto_2.f90: New.
* gfortran.dg/goto_3.f90: New.
* gfortran.dg/pr17708.f90: Rename to ...
* gfortran.dg/goto_4.f90: ... this, add comment pointing to
PR.
From-SVN: r123789
2007-04-13 Tobias Burnus <burnus@net-b.de>
PR fortran/31562
* gfortran.dg/f2c_4.c: Use GNU extensions for complex
instead of a struct.
From-SVN: r123784
2007-04-12 Tobias Burnus <burnus@net-b.de>
PR fortran/31562
* gfortran.dg/value_4.c: Use GNU extensions for complex
instead of a struct.
From-SVN: r123780
2007-04-13 Richard Guenther <rguenther@suse.de>
PR tree-optimization/21258
* tree-vrp.c (compare_case_labels): New helper.
(find_switch_asserts): New function.
(find_assert_locations): Call it for SWITCH_EXPRs.
* gcc.dg/tree-ssa/vrp34.c: New testcase.
From-SVN: r123778
* config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
* config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
check is now implied in X87_FLOAT_MODE_P.
(*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
(*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
(fix_trunc<mode>_i386_fisttp): Ditto.
(fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
(*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
(fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
(fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
(*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
(*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
(unnamed_splitters): Ditto.
* config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
for X87_FLOAT_MODE_P mode. Override FIRST_FLOAT_REG with
FIRST_SSE_REG for local functions when SSE math is enabled or
for functions with sseregparm attribute.
(standard_80387_constant_p): Return -1 if mode is not
X87_FLOAT_MODE_P.
(ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
(ix86_expand_compare): Ditto.
(ix86_expand_carry_flag_compare): Ditto.
(ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
DECIMAL_FLOAT_MODE_P.
(ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
of SCALAR_FLOAT_MODE_P.
(ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
[MINUS]: ... here. Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
checks before FLOAT_MODE_P.
[MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
before FLOAT_MODE_P.
[DIV]: Ditto.
[NEG]: Ditto.
[ABS]: Ditto.
[SQRT]: Ditto.
[FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
From-SVN: r123777
2007-04-12 Paolo Bonzini <bonzini@gnu.org>
Charles Wilson <libtool@cwilson.fastmail.fm>
* Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
(libgcc.mvars): Don't depend on them.
* configure.ac (as, collect-ld, nm): Create from exec-tool.in.
* exec-tool.in: New.
Co-Authored-By: Charles Wilson <libtool@cwilson.fastmail.fm>
From-SVN: r123775
fortran/31471
fortran/
* decl.c (gfc_match_end): Also check for construct name in END
FORALL and END WERE statements.
* match.c (match_case_eos): Use uppercase for statement name in
error message.
(match_elsewhere): Construct name may appear iff construct has a
name.
testsuite/
* gfortran.dg/block_name_1.f90: New.
* gfortran.dg/block_name_2.f90: New.
From-SVN: r123758
gcc/
* Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
* genemit.c (main): Emit #include "integrate.h".
* config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
(LOADGP_RTP): New mips_loadgp_style.
* config/mips/mips.h: Include config/vxworks-dummy.h.
(TARGET_RTP_PIC): New macro.
(TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
(TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
(ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
for TARGET_RTP_PIC.
* config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define. Pass down
-mvxworks-pic when using -mrtp and a PIC option.
* config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
for RTP PIC.
(mips_symbolic_constant_p, mips_symbolic_address_p)
(mips_symbol_insns): Handle SYMBOL_HALF.
(override_options): Warn about -G and -mrtp being used together.
Initialize mips_lo_relocs[SYMBOL_HALF].
(mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
(mips_emit_loadgp): Handle LOADGP_RTP.
(mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
* config/mips/mips.md (loadgp_rtp): New insn and splitter.
(tablejump): Handle function-relative case table entries if
TARGET_RTP_PIC.
* config/mips/predicates.md (symbol_ref_operand): New predicate.
From-SVN: r123757
gcc/
* config/mips/mips-protos.h: In comments, refer to loadgp_absolute
rather than loadgp_noshared.
* config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
instead of gen_loadgp_noshared. Use gen_loadgp_newabi instead of
gen_loadgp.
* config/mips/mips.md (loadgp): Rename to...
(loadgp_newabi): ...this.
(loadgp_noshared): Rename to...
(loadgp_absolute): ...this.
From-SVN: r123755
gcc/
* config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
(SYMBOL_GOT_PAGE_OFST): ...this.
(SYMBOL_GOT_GLOBAL): Rename to...
(SYMBOL_GOT_DISP): ...this.
(SYMBOL_GOTOFF_GLOBAL): Rename to...
(SYMBOL_GOTOFF_DISP): ...this. Update comments accordingly.
* config/mips/mips.c (mips_global_symbol_p): New function.
(mips_symbol_binds_local_p): Likewise.
(mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST. Use mips_global_symbol_p
and mips_symbol_binds_local_p.
(mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
(override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
SYMBOL_GOTOFF_DISP.
(mips_ok_for_lazy_binding_p): New function.
(mips_load_call_address, mips_expand_call): Use it.
(mips_dangerous_for_la25_p): Likewise.
* config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
(*got_disp<mode>): Use got_disp_operand instead of
global_got_operand. Use SYMBOL_GOTOFF_DISP instead of
SYMBOL_GOTOFF_GLOBAL.
(*got_page<mode>): Use got_page_ofst_operand instead of
local_got_operand.
* config/mips/predicates.md (const_call_insn_operand): Use
SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
(global_got_operand): Rename to...
(got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
SYMBOL_GOT_GLOBAL.
(local_got_operand): Rename to...
(got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
of SYMBOL_GOT_LOCAL.
From-SVN: r123752
* config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
Use a more efficient implementation.
* config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
inline sequences when not optimizing for size.
From-SVN: r123748
2007-02-11 Jie Zhang <jie.zhang@analog.com>
* config/bfin/bfin.opt (msim): New option.
(mcpu=): New option.
* config/bfin/bfin-protos.h (enum bfin_cpu): New.
(bfin_cpu_t): Typedef of enum bfin_cpu.
(bfin_cpu_type): New declaration.
* config/bfin/elf.h (STARTFILE_SPEC): Add support for
-msim and -mcpu= options.
(LIB_SPEC): Likewise.
* config/bfin/bfin.c (bfin_cpu_type): Define.
(bfin_handle_option): Handle -mcpu= option.
* config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
(TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
__ADSPBF533__ or __ADSPBF537__ according to the cpu type.
From-SVN: r123747
libgfortran:
2007-04-11 Kai Tietz <kai.tietz@onevision.com>
* configure: Regenerate.
libdecnumber:
2007-04-11 Kai Tietz <kai.tietz@onevision.com>
* configure: Regenerate.
config:
2007-04-11 Kai Tietz <kai.tietz@onevision.com>
* stdint.m4: Make template compatible with older cygwin
types.h, wrapping each type in a __XXX_t_defined #ifdef.
From-SVN: r123746
* doc/md.texi (Blackfin family constraints): Document PA and PB.
* config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
(MACFLAGS_MATCH_P): New macro.
* config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
(bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
* config/bfin/bfin.md (MACFLAG_IS_M): New constant. Renumber some of
the other MACFLAG constants.
(sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
(flag_machi): Tighten constraints. Renumber some of the operands.
(flag_machi_acconly): Tighten constraints. Correct operand numbers in
output template.
(flag_machi_parts_acconly): New pattern.
(flag_macinithi): Tighten constraints. Allow any accumulator to be
used.
(flag_macinit1hi): Tighten constraints.
(flag_mul_macv2hi_parts_acconly): New pattern.
From-SVN: r123745
gcc/
* config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
(arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
(powerpc-wrs-vxworksae): Use ${tm_file}.
(i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
after elfos.h. Remove i386/sysv4.h and add i386/vx-common.h.
* config/i386/vx-common.h: New file.
From-SVN: r123744
2007-04-12 Douglas Gregor <doug.gregor@gmail.com>
PR c++/31078
PR c++/31103
* c-common.c (c_build_qualified_type): Set canonical type
appropriately.
2007-04-12 Douglas Gregor <doug.gregor@gmail.com>
PR c++/31078
* g++.dg/other/pr31078.C: New.
From-SVN: r123740
2007-04-12 Richard Guenther <rguenther@suse.de>
* tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
lower bound and element size if lower bound is not zero
or either of the ARRAY_REF operands is set.
From-SVN: r123738
2007-04-12 Richard Guenther <rguenther@suse.de>
PR tree-optimization/24689
PR tree-optimization/31307
* fold-const.c (operand_equal_p): Compare INTEGER_CST array
indices by value.
* gimplify.c (canonicalize_addr_expr): To be consistent with
gimplify_compound_lval only set operands two and three of
ARRAY_REFs if they are not gimple_min_invariant. This makes
it never at this place.
* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
* g++.dg/tree-ssa/pr31307.C: New testcase.
* gcc.dg/tree-ssa/pr24689.c: Likewise.
From-SVN: r123736