2009-10-09 Tobias Burnus <burnus@net-b.de>
PR fortran/41582
* decl.c (encapsulate_class_symbol): Save attr.abstract.
* resolve.c (resolve_allocate_expr): Reject class allocate
without typespec or source=.
* trans-stmt.c (gfc_trans_allocate): Change gfc_warning
into gfc_error for "not yet implemented".
2009-10-09 Tobias Burnus <burnus@net-b.de>
PR fortran/41582
* gfortran.dg/class_allocate_1.f03: Modify code such that
it compiles with the gfc_warning->gfc_error change.
* gfortran.dg/class_allocate_1.f03: New test.
From-SVN: r152601
2009-10-09 Janus Weil <janus@gcc.gnu.org>
PR fortran/41579
* gfortran.h (gfc_select_type_stack): New struct, to be used as a stack
for SELECT TYPE statements.
(select_type_stack): New global variable.
(type_selector,select_type_tmp): Removed.
* match.c (type_selector,type_selector): Removed.
(select_type_stack): New variable, serving as a stack for
SELECT TYPE statements.
(select_type_push,select_type_set_tmp): New functions.
(gfc_match_select_type): Call select_type_push.
(gfc_match_type_is): Call select_type_set_tmp.
* parse.c (select_type_pop): New function.
(parse_select_type_block): Call select_type_pop.
* symbol.c (select_type_insert_tmp): New function.
(gfc_find_sym_tree): Call select_type_insert_tmp.
2009-10-09 Janus Weil <janus@gcc.gnu.org>
PR fortran/41579
* gfortran.dg/select_type_6.f03: New test.
From-SVN: r152600
PR preprocessor/41445
* c-ppoutput.c (do_line_change): New function.
(cb_line_change): Use it.
(scan_translation_unit): Call do_line_change if
avoid_paste or PREV_WHITE and token location is on a different line
than print.src_line.
* gcc.dg/cpp/separate-1.c: Adjust.
* gcc.dg/cpp/spacing1.c: Add -P to dg-options.
* gcc.dg/debug/dwarf2/pr41445-1.c: New test.
* gcc.dg/debug/dwarf2/pr41445-2.c: New test.
* gcc.dg/debug/dwarf2/pr41445-3.c: New test.
* gcc.dg/debug/dwarf2/pr41445-4.c: New test.
* gcc.dg/debug/dwarf2/pr41445-5.c: New test.
* gcc.dg/debug/dwarf2/pr41445-6.c: New test.
From-SVN: r152599
PR debug/40521
* dwarf2out.c (dwarf2out_init): Test whether
HAVE_GAS_CFI_SECTIONS_DIRECTIVE is non-zero instead of checking
it is defined.
From-SVN: r152598
PR rtl-optimization/41646
* calls.c (expand_call): For BLKmode types returned in registers
avoid likely spilled hard regs in copy_blkmode_from_reg generated
insns.
* gcc.c-torture/compile/pr41646.c: New test.
From-SVN: r152597
2009-10-09 Richard Guenther <rguenther@suse.de>
PR tree-optimization/41634
* tree-ssa-dom.c (remove_local_expressions_from_table): Assert
we remove the correct elements.
(optimize_stmt): Make sure to update stmt operands before
optimizing redundancies.
* gcc.c-torture/compile/pr41634.c: New testcase.
From-SVN: r152596
2009-10-09 Richard Guenther <rguenther@suse.de>
PR driver/41637
* lto-wrapper.c (ltrans_output_file, flto_out, args_name): New
globals.
(lto_wrapper_exit): New function.
(fatal): Use it.
(fatal_perror): Likewise.
(fork_execute): Use global args_name, do not free it.
(run_gcc): Use global ltrans_output_file, flto_out, do not free them.
* lto-streamer.h: Remove duplicate prototypes.
PR lto/41635
PR lto/41636
lto/
* lto.c (read_cgraph_and_symbols): Do not assert we can open
a file.
* lto-elf.c (init_shdr##BITS): Fix i18n problems.
(init_ehdr##BITS): Likewise.
From-SVN: r152588
PR tree-optimization/40071
* tree-vect-data-refs.c (vect_create_data_ref_ptr): Build a ref-all
pointer if the original data reference doesn't conflict with the
created vector data reference. Fix long line.
From-SVN: r152585
* config/i386/i386.md (any_div): New code iterator.
(u): Handle div and udiv.
(sgnprefix): Ditto.
(<u>divqi3): Macroize insn from divqi3 and udivqi using and_div
code iterator.
(lfloor<MODEF:mode><SWI48:mode>2): Macroize insn from
lfloor<mode>{si,di}2 patterns using SWI48 mode iterator.
(lceil<MODEF:mode><SWI48:mode>2): Macroize insn from
lceil<mode>{si,di}2 patterns using SWI48 mode iterator.
From-SVN: r152584
gcc/ChangeLog:
Add support for debugging with ICF (Identical Code Folding).
* calls.c (debug.h): New #include.
(emit_call_1): Call virtual_call_token debug hook.
* common.opt (-fenable-icf-debug): New option.
* dwarf2out.c (dwarf2_debug_hooks): Add entries for new hooks (two
locations in the source).
(poc_label_num): New variable.
(dcall_entry, vcall_entry): New typedefs.
(dcall_table, vcall_table): New variables.
(struct vcall_insn): New type.
(vcall_insn_table): New variable.
(DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION): New macros.
(size_of_dcall_table): New function.
(output_dcall_table): New function.
(size_of_vcall_table): New function.
(output_vcall_table): New function.
(dwarf2out_direct_call): New function.
(vcall_insn_table_hash): New function.
(vcall_insn_table_eq): New function.
(dwarf2out_virtual_call_token): New function.
(dwarf2out_virtual_call): New function.
(dwarf2out_init): Allocate new tables and sections.
(prune_unused_types): Mark DIEs referenced from direct call table.
(dwarf2out_finish): Output direct and virtual call tables.
* final.c (final_scan_insn): Call direct_call and virtual_call
debug hooks.
* debug.h (struct gcc_debug_hooks): Add direct_call,
virtual_call_token, virtual_call hooks.
(debug_nothing_uid): New function.
* debug.c (do_nothing_debug_hooks): Add dummy entries for new hooks.
(debug_nothing_uid): New function.
* dbxout.c (dbx_debug_hooks): Add dummy entries for new hooks.
* sdbout.c (sdb_debug_hooks): Likewise.
* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
* doc/invoke.texi (-fenable-icf-debug): New option.
gcc/testsuite/ChangeLog:
Add support for debugging with ICF (Identical Code Folding).
* g++.dg/debug/dwarf2/icf.C: New test.
From-SVN: r152577
PR debug/41353
* regmove.c (regmove_backward_pass): Replace src with dst in the
debug insn, and check for dst before rather than after.
From-SVN: r152573
* combine.c (label_tick_ebb_start): Fix comment.
(combine_instructions): Set label_tick and label_tick_ebb_start before
calling setup_incoming_promotions. Start them from 1. Increment
label_tick instead of deriving it from the BB index. Rather than
comparing ticks use the block from the previous iteration to decide
whether to start a new EBB. Remove empty lines before function.
testsuite/
* gcc.target/mips/truncate-6.c: New test.
From-SVN: r152567
2009-10-08 Daniel Gutson <dgutson@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
Pedro Alves <pedro@codesourcery.com>
libiberty/
* argv.c (consume_whitespace): New function.
(only_whitespace): New function.
(buildargv): Always use ISSPACE by calling consume_whitespace.
(expandargv): Skip empty files. Do not stop at the first empty
argument (calling only_whitespace)..
* testsuite/test-expandargv.c: (test_data): Test empty lines
and empty arguments.
(run_tests): Fix false positives due to shorter arguments.
Co-Authored-By: Daniel Jacobowitz <dan@codesourcery.com>
Co-Authored-By: Pedro Alves <pedro@codesourcery.com>
From-SVN: r152560
2009-10-08 Rafael Avila de Espindola <espindola@google.com>
* lto-plugin.c (add_input_library): New.
(all_symbols_read_handler): Use add_input_library for items that
start with -l.
(process_option): Fit in 80 columns.
(onload): Handle LDPT_ADD_INPUT_LIBRARY.
2009-10-08 Rafael Avila de Espindola <espindola@google.com>
* gcc.c (LINK_COMMAND_SPEC): Pass libc with -pass-through if it is
being statically linked.
From-SVN: r152558
* config/i386/i386.md (any_extend): New code iterator.
(u, s): New code attributes.
(sgnprefix): Ditto.
(DWIH): Rewrite as code iterator for SI and DI modes.
(DWI): Rewrite as mode attribute.
(dwi): New mode attribute.
(di): Depend on SI mode and DI mode.
(doubleint_general_operand): Remove mode attribute.
(*lea_1): Macroize insn from *lea_1_rex64 and *lea_1 patterns using
DWIH mode iterator.
(*add<mode>3_doubleword): Use DWIH as the base mode iterator.
(*sub<mode>3_doubleword): Ditto.
(mul<mode>3): Macroize expander from mul{hi,si,di}3 patterns
using SWIM248 mode iterator.
(*mul<mode>3_1): Macroize insn from mul{si,di}3_1 patterns
using SWI48 mode iterator.
(<u>mul<mode><dwi>3): Macroize expander from {,u}mul{sidi,diti}3
patterns using DWIH mode iterator and any_extend code iterator.
(<u>mulqihi3): Macroize expander from {,u}mulqihi3 patterns
using any_extend code iterator.
(*<u>mul<mode><dwi>3_1): Macroize insn from {,u}mul{sidi,diti}3_1
patterns using DWIH mode iterator and any_extend code iterator.
(*<u>mulqihi3_1): Macroize insn from {,u}mulqihi3_1 patterns
using any_extend code iterator.
(<s>mul<mode>3_highpart): Macroize expander from
{s,u}mul{si,di}3_highpart patterns using DWIH mode iterator
and any_extend code iterator.
(*<s>muldi3_highpart_1): Macroize insn from
*{s,u}muldi3_highpart_rex64 patterns using any_extend code iterator.
(*<s>mulsi3_highpart_1): Macroize insn from *{s,u}mulsi3_highpart_1
patterns using any_extend code iterator.
(*<s>mulsi3_highpart_zext): Macroize insn from
*{s,u}mulsi3_highpart_zext patterns using any_extend code iterator.
From-SVN: r152539