PR fortran/33502
* scanner.c (gfc_advance_line): Call debug_hooks->end_source_file
and debug_hooks->start_source_file when appropriate, and set
dbg_emitted.
(gfc_define_undef_line): New function.
(load_file): Don't error out on #define and #undef lines.
* parse.c (next_statement): Call gfc_define_undef_line.
(gfc_parse_file): Call debug_hooks->start_source_file and
debug_hooks->end_source_file for the main source file if
required.
* gfortran.h (gfc_linebuf): Add dbg_emitted field.
(gfc_define_undef_line): New prototype.
From-SVN: r129011
2007-10-04 Richard Guenther <rguenther@suse.de>
PR middle-end/33641
* tree-cfg.c (verify_gimple_expr): Operand one of POINTER_PLUS_EXPR
does not need to be of INTEGER_TYPE.
(verify_gimple_2): New function split out from ...
(verify_gimple_1): ... here. ICE if there was an error during
verification.
* gcc.c-torture/compile/pr33641.c: New testcase.
From-SVN: r129010
2007-10-04 Richard Guenther <rguenther@suse.de>
PR tree-optimization/33627
* tree-gimple.h (canonicalize_cond_expr_cond): Declare.
* tree-gimple.c (canonicalize_cond_expr_cond): New function,
split out from ...
* tree-ssa-forwprop.c (combine_cond_expr_cond): ... here.
* tree-ssa-ifcombine.c (ifcombine_iforif): Use it.
* g++.dg/torture/pr33627.C: New testcase.
From-SVN: r129004
PR fortran/33626
fortran/
* resolve.c (resolve_operator): Always copy the type for
expressions in parentheses.
testsuite/
* gfortran.dg/parens_6.f90: New.
From-SVN: r129002
2007-10-04 Paul Thomas <pault@gcc.gnu.org>
PR fortran/33542
* interface.c (check_interface1): Revert patch of 2007-10-02.
2007-10-04 Paul Thomas <pault@gcc.gnu.org>
PR fortran/33542
* gfortran.dg/ambiguous_specific_1.f90: Remove.
From-SVN: r129000
gcc/
PR target/33635
* config/mips/mips-protos.h (mips_split_64bit_move): Rename to...
(mips_split_doubleword_move): ...this.
* config/mips/mips.c (mips_subword): Extend to handle 64-bit words;
use natural endianness for multi-format FPR values.
(mips_split_64bit_move): Rename to...
(mips_split_doubleword_move): ...this and extend to 64-bit words.
Use move_doubleword_fpr* patterns for moves involving FPRs.
(mips_save_reg): Update the call to mips_split_64bit_move.
(mips_secondary_reload_class): Return NO_REGS for any reload of a
nonzero constant into an FPR if the constant can be forced to memory.
* config/mips/mips.md: Update the splitter calls to
mips_split_64bit_move.
(UNSPEC_LOAD_DF_LOW): Rename to...
(UNSPEC_LOAD_LOW): ...this.
(UNSPEC_LOAD_DF_HIGH): Rename to...
(UNSPEC_LOAD_HIGH): ...this.
(UNSPEC_STORE_DF_HIGH): Rename to...
(UNSPEC_STORE_WORD): ...this.
(SPLITF): New mode iterator.
(HALFMODE): New mode attribute.
(movtf): New expander.
(*movtf_internal): New define_insn_and_split.
(move_doubleword_fpr<mode>): New expander.
(load_df_low, load_df_high, store_df_high, mthc1, mfhc1): Replace
with...
(load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
(mfhc1<mode>): ...these more general patterns.
gcc/testsuite/
PR target/33635
* gcc.target/mips/mips.exp (setup_mips_tests): Set mips_isa_rev
and mips_forced_be.
(dg-mips-options): Handle -EL and -mel. Make -mfp64 imply
-mhard-float and a suitable ISA. Improve handling of -mipsXrY
options.
* gcc.target/mips/fpr-moves-1.c: New test.
* gcc.target/mips/fpr-moves-2.c: Likewise.
* gcc.target/mips/fpr-moves-3.c: Likewise.
* gcc.target/mips/fpr-moves-4.c: Likewise.
* gcc.target/mips/fpr-moves-5.c: Likewise.
* gcc.target/mips/fpr-moves-6.c: Likewise.
* gcc.target/mips/mips32r2-mxhc1.c: Remove -march=mips32r2
From-SVN: r128991
config/
* no-executables.m4 (GCC_TRY_COMPILE_OR_LINK): New function.
libstdc++-v3/
libstdc++/
* acinclude.m4 (GLIBCXX_ENABLE_C99): Temporarily add
-fno-exceptions to CXXFLAGS. Use GCC_TRY_COMPILE_OR_LINK.
Make the tests assign results to volatile variables. Use -lm
for link tests in GCC_TRY_COMPILE_OR_LINK. Fall back to
compile-only tests if -lm is not available.
* configure: Regenerate.
From-SVN: r128982
2007-10-03 Andrew Haley <aph@redhat.com>
PR java/33639
* class.c (mangled_classname): Detect and replace illegal
characters in assembly language symbols.
(gen_indirect_dispatch_tables): Call mangled_classname() on
the type.
From-SVN: r128981
PR fortran/33198
fortran/
* resolve.c (has_default_initializer): Move to top. Make bool.
(resolve_common_blocks): Simplify logic. Add case for derived
type initialization.
(resolve_fl_variable_derived): Split out from ...
(resolve_fl_variable): ... from here, while adapting to new h_d_i
interface.
testsuite/
* gfortran.dg/common_errors_1.f90: New.
From-SVN: r128980
PR c++/15764
* cp/decl.c (wrap_cleanups_r): New fn.
(wrap_temporary_cleanups): New fn.
(initialize_local_var): Call it.
* tree-eh.c (same_handler_p): New fn.
(optimize_double_finally): New fn.
(refactor_eh_r): New fn.
(refactor_eh): New fn.
(pass_refactor_eh): New pass.
* tree-pass.h: Declare it.
* passes.c (init_optimization_passes): Add it.
From-SVN: r128979
PR fortran/26682
* options.c (gfc_post_options): Issue an error when
-fwhole-program is used.
* doc/invoke.texi (-fwhole-program): Document that Fortran
doesn't support this option.
From-SVN: r128977
2007-10-02 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/33253
* io/list_read.c (read_character): Use DELIM_APOSTROPHE and DELIM_QUOTE
and quote value in check of first character in string.
From-SVN: r128973
config/
Revert:
2007-10-02 Richard Sandiford <richard@codesourcery.com>
* no-executables.m4 (GCC_TRY_COMPILE_OR_LINK): New function.
libstdc++/
Revert:
2007-10-02 Richard Sandiford <richard@codesourcery.com>
* acinclude.m4 (GLIBCXX_ENABLE_C99): Temporarily add
-fno-exceptions to CXXFLAGS. Use GCC_TRY_COMPILE_OR_LINK.
Make the tests assign results to volatile variables.
* configure: Regenerate.
From-SVN: r128972
gcc/testsuite/
* gcc.target/mips/mips.exp (setup_mips_tests): Set mips_abi to the
default ABI. Split mips_forced_abi into mips_forced_abi and
mips_forced_regs.
(is_gp32_flag): Return true for -mabi=32.
(is_gp64_flag): New function. Handle 64-bit -mabi options.
(dg-mips-options): Use is_gp64_flag instead of checking specifically
for -mgp64. Update after the mips_forced_abi split. Handle -mabi=*.
Don't force an ABI for -mgp32 or -mfp32 if the flags contain -mabi=*.
* gcc.target/mips/pr33256.c: Remove -mips3 requirement.
* gcc.target/mips/save-restore-1.c: Use -mabi=32 instead of -mgp32.
* gcc.target/mips/save-restore-2.c: Likewise.
* gcc.target/mips/save-restore-3.c: Likewise.
* gcc.target/mips/save-restore-4.c: Likewise.
From-SVN: r128966
2007-10-02 Andreas Tobler <a.tobler@schweiz.org>
* gcc.target/powerpc/stabs-attrib-vect-darwin.c: Change options to use
-gstabs+ for extended options.
From-SVN: r128962
config/
* no-executables.m4 (GCC_TRY_COMPILE_OR_LINK): New function.
libstdc++/
* acinclude.m4 (GLIBCXX_ENABLE_C99): Temporarily add
-fno-exceptions to CXXFLAGS. Use GCC_TRY_COMPILE_OR_LINK.
Make the tests assign results to volatile variables.
* configure: Regenerate.
From-SVN: r128959
2007-09-02 Kenneth Zadeck <zadeck@naturalbridge.com>
* ra-conflict.c: New file.
* ra.h: New file.
* reload.c (push_reload, find_dummy_reload): Change DF_RA_LIVE
usage to DF_LIVE usage.
* rtlanal.c (subreg_nregs_with_regno): New function.
* df-scan.c (df_def_record_1, df_uses_record): Add code to set
DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, and DF_REF_SUBREG flags.
(df_has_eh_preds): Removed.
(df_bb_refs_collect, df_bb_refs_collect, df_bb_refs_collect,
df_exit_block_uses_collect): Changed call from df_has_eh_preds to
bb_has_eh_pred.
* global.c (allocno, max_allocno, conflicts, allocno_row_words,
reg_allocno, EXECUTE_IF_SET_IN_ALLOCNO_SET): Moved to ra.h
(SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Moved to ra-conflicts.c.
(regs_set, record_one_conflict, record_conflicts, mark_reg_store,
mark_reg_clobber, mark_reg_conflicts, mark_reg_death): Deleted.
(global_alloc): Turn off rescanning insns after call to
global_conflicts and added call to set_preferences.
(global_conflicts): Moved to ra-alloc.c.
(set_preferences_1, set_preferences): New function.
(mirror_conflicts): Changed types for various variables.
(mark_elimination): Change DF_RA_LIVE
usage to DF_LIVE usage.
(build_insn_chain): Rewritten from scratch and made local.
(print_insn_chain, print_insn_chains): New functions.
(dump_conflicts): Do not print conflicts for fixed_regs.
(rest_of_handle_global_alloc): Turn off insn rescanning.
* hard-reg-set.h: Fixed comment.
* local-alloc.c (update_equiv_regs): Change DF_RA_LIVE
usage to DF_LIVE usage and delete refs to TOP sets.
(block_alloc): Mark regs as live if they are in the artificial
defs at top of block.
(find_stack_regs): New function.
(rest_of_handle_local_alloc): Changed urec problem to live
problem and do not turn off df rescanning.
* df.h (DF_UREC, DF_UREC_BB_INFO, DF_LIVE_TOP, DF_RA_LIVE_IN,
DF_RA_LIVE_TOP, DF_RA_LIVE_OUT, df_urec_bb_info, df_urec,
df_urec_add_problem, df_urec_get_bb_info, df_has_eh_preds): Removed.
(DF_CHAIN, DF_NOTE, DF_CHAIN): Renumbered.
(DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, DF_REF_SUBREG): New
fields in df_ref_flags. The rest have been renumbered.
* init-regs.c (initialize_uninitialized_regs): Enhanced debugging
at -O1.
* rtl.h (subreg_nregs_with_regno): New function.
* df-problems.c: (df_get_live_out, df_get_live_in,
df_get_live_top): Removed reference to DF_RA_LIVE.
(df_lr_reset, df_lr_transfer_function, df_live_free_bb_info,
df_live_alloc, df_live_reset, df_live_local_finalize,
df_live_free): Make top set only if different from in set.
(df_lr_top_dump, df_live_top_dump): Only print top set if
different from in set.
(df_lr_bb_local_compute): Removed unnecessary check.
(df_urec_problem_data, df_urec_set_bb_info, df_urec_free_bb_info,
df_urec_alloc, df_urec_mark_reg_change, earlyclobber_regclass,
df_urec_check_earlyclobber, df_urec_mark_reg_use_for_earlyclobber,
df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
df_urec_local_compute, df_urec_init, df_urec_local_finalize,
df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
df_urec_top_dump, df_urec_bottom_dump, problem_UREC,
df_urec_add_problem): Removed.
(df_simulate_fixup_sets): Changed call from df_has_eh_preds to
bb_has_eh_pred.
* Makefile.in (ra-conflict.o, ra.h): New dependencies.
* basic_block.h (bb_has_abnormal_pred): New function.
* reload1.c (compute_use_by_pseudos): Change DF_RA_LIVE
usage to DF_LIVE usage.
From-SVN: r128957
2007-10-02 Paul Thomas <pault@gcc.gnu.org>
PR fortran/33542
* interface.c (check_interface1): Specific procedures are
always ambiguous if they have the same name.
2007-10-02 Paul Thomas <pault@gcc.gnu.org>
PR fortran/33542
* gfortran.dg/ambiguous_specific_1.f90: New test.
From-SVN: r128954
2007-10-02 Paul Thomas <pault@gcc.gnu.org>
PR fortran/33566
* primary.c (gfc_match_rvalue): Make all expressions with array
references to structure parameters into variable expressions.
2007-10-02 Paul Thomas <pault@gcc.gnu.org>
PR fortran/33566
* gfortran.dg/derived_comp_array_ref_5.f90: New test.
From-SVN: r128951