platform/upstream/gcc.git
12 years ago* lto-plugin.c: Fix typo.
Joseph Myers [Tue, 29 May 2012 19:21:25 +0000 (20:21 +0100)]
* lto-plugin.c: Fix typo.

From-SVN: r187982

12 years ago* mf-impl.h: Fix typo.
Joseph Myers [Tue, 29 May 2012 19:21:05 +0000 (20:21 +0100)]
* mf-impl.h: Fix typo.

From-SVN: r187981

12 years ago* c-common.c: Fix typo.
Joseph Myers [Tue, 29 May 2012 19:20:43 +0000 (20:20 +0100)]
* c-common.c: Fix typo.

From-SVN: r187980

12 years agoc-decl.c (c_push_function_context): Always create a new language function.
Meador Inge [Tue, 29 May 2012 19:07:04 +0000 (19:07 +0000)]
c-decl.c (c_push_function_context): Always create a new language function.

2012-05-29  Meador Inge  <meadori@codesourcery.com>

* c-decl.c (c_push_function_context): Always create a new language
function.
(c_pop_function_context): Clear the language function created in
c_push_function_context.

From-SVN: r187979

12 years agoev6.md: (define_bypass "ev6_fmul,ev6_fadd"): New.
Matt Turner [Tue, 29 May 2012 18:52:25 +0000 (18:52 +0000)]
ev6.md: (define_bypass "ev6_fmul,ev6_fadd"): New.

        * config/alpha/ev6.md: (define_bypass "ev6_fmul,ev6_fadd"): New.
        (define_bypass "ev6_fcmov"): New.

From-SVN: r187978

12 years agomt-sde: Fix typos.
Joseph Myers [Tue, 29 May 2012 15:54:57 +0000 (16:54 +0100)]
mt-sde: Fix typos.

* mt-sde: Fix typos.
* stdint.m4: Fix typos.
* tcl.m4: Fix typos.

From-SVN: r187971

12 years agointegrate.c: Remove.
Steven Bosscher [Tue, 29 May 2012 15:36:18 +0000 (15:36 +0000)]
integrate.c: Remove.

* integrate.c: Remove.
* integrate.h: Remove.
* Makefile.in: Remove make rules for integrate.c and INTEGRATE_H.
* config/arm/t-arm: Remove INTEGRATE_H dependency for target files.
* config/rs6000/t-rs6000: Likewise
* config/spu/t-spu-elf: Likewise.
* function.h (get_hard_reg_initial_val, has_hard_reg_initial_val,
get_hard_reg_initial_reg, emit_initial_value_sets): Move prototypes
from integrate.h to here.
(initial_value_entry): New prototype.
* reload.h (allocate_initial_values): Remove prototype.
* tree.h (set_decl_abstract_flags, set_decl_origin_self): Likewise.
* cse.c (fixed_base_plus_p): Don't handle virtual registers for
integrate.c.
* dwarf2out.c (set_decl_origin_self, set_block_origin_self,
set_decl_abstract_flags, set_block_abstract_flags): Move from
integrate.c to here, the only user.
* expmed.c (extract_fixed_bit_field): Remove outdated comment
about integrate.c.
* function.c: Don't include integrate.h.
(struct initial_value_pair, struct initial_value_struct,
get_hard_reg_initial_val, has_hard_reg_initial_val,
get_hard_reg_initial_reg, emit_initial_value_sets): Move from
integrate.c to here.
(initial_value_entry): New function.
* genemit.c (main): Don't print integrate.h include line.
* ira.c: Don't include integrate.h.
(allocate_initial_values): Move from integrate.c to here.
(ira): Update allocate_initial_values call.
* tree-inline.c: Don't include integrate.h.
(function_attribute_inlinable_p): Moved from integrate.c to here.
* cfgexpand.c: Don't include integrate.h.
* except.c: Likewise.
* langhooks.c: Likewise.
* passes.c: Likewise.
* toplev.c: Likewise.
* config/frv/frv.c: Likewise.
* config/pa/pa.c: Likewise.
* config/spu/spu.c: Likewise.
* config/epiphany/epiphany.c: Likewise.
* config/mep/mep.c: Likewise.
* config/score/score.c: Likewise.
* config/picochip/picochip.c: Likewise.
* config/sh/sh.c: Likewise.
* config/alpha/alpha.c: Likewise.
* config/microblaze/microblaze.c: Likewise.
* config/mips/mips.c: Likewise.
* config/v850/v850.c: Likewise.
* config/mmix/mmix.c: Likewise.
* config/bfin/bfin.c: Likewise.
* config/arm/arm.c: Likewise.
* config/s390/s390.c: Likewise.
* config/m32r/m32r.c: Likewise.
* config/rs6000/rs6000.c: Likewise.
* config/c6x/c6x.c: Include function.h instead of integrate.h.
* config/tilegx/tilegx.c: Likewise.
* config/tilepro/tilepro.c: Likewise.

From-SVN: r187969

12 years agot-avr (s-avr-mmcu-texi): Call gen-avr-mmcu-texi$(build_exeext) via ./ and don't assum...
Georg-Johann Lay [Tue, 29 May 2012 15:21:34 +0000 (15:21 +0000)]
t-avr (s-avr-mmcu-texi): Call gen-avr-mmcu-texi$(build_exeext) via ./ and don't assume . is in PATH.

* config/avr/t-avr (s-avr-mmcu-texi): Call
gen-avr-mmcu-texi$(build_exeext) via ./ and don't assume . is in PATH.

From-SVN: r187968

12 years agoieee754-df.S: Fix typos.
Joseph Myers [Tue, 29 May 2012 14:54:22 +0000 (15:54 +0100)]
ieee754-df.S: Fix typos.

* config/arm/ieee754-df.S: Fix typos.
* config/arm/ieee754-sf.S: Fix typos.
* config/c6x/libunwind.S: Fix typos.
* config/epiphany/udivsi3-float.c: Fix typos.
* config/microblaze/muldi3_hard.S: Fix typos.
* config/picochip/adddi3.S: Fix typos.
* config/picochip/ashlsi3.S: Fix typos.
* config/picochip/ashrsi3.S: Fix typos.
* config/picochip/clzsi2.S: Fix typos.
* config/picochip/cmpsi2.S: Fix typos.
* config/picochip/divmod15.S: Fix typos.
* config/picochip/divmodhi4.S: Fix typos.
* config/picochip/divmodsi4.S: Fix typos.
* config/picochip/longjmp.S: Fix typos.
* config/picochip/lshrsi3.S: Fix typos.
* config/picochip/parityhi2.S: Fix typos.
* config/picochip/popcounthi2.S: Fix typos.
* config/picochip/setjmp.S: Fix typos.
* config/picochip/subdi3.S: Fix typos.
* config/picochip/ucmpsi2.S: Fix typos.
* config/picochip/udivmodhi4.S: Fix typos.
* config/picochip/udivmodsi4.S: Fix typos.
* config/spu/divv2df3.c: Fix typos.
* config/spu/mfc_multi_tag_release.c: Fix typos.
* config/spu/mfc_tag_release.c: Fix typos.
* configure.ac: Fix typos.
* configure: Regenerate.

From-SVN: r187967

12 years agodirectives.c: Fix typos.
Joseph Myers [Tue, 29 May 2012 14:53:50 +0000 (15:53 +0100)]
directives.c: Fix typos.

* directives.c: Fix typos.
* include/line-map.h: Fix typos.
* line-map.c: Fix typos.
* macro.c: Fix typos.

From-SVN: r187966

12 years agortl.h (assign_stack_temp, [...]): Remove 'keep' argument.
Michael Matz [Tue, 29 May 2012 14:44:47 +0000 (14:44 +0000)]
rtl.h (assign_stack_temp, [...]): Remove 'keep' argument.

* rtl.h (assign_stack_temp, assign_stack_temp_for_type,
assign_temp): Remove 'keep' argument.
(mark_temp_addr_taken): Remove prototype.
* tree.h (expand_decl): Remove prototype.
* function.c (struct temp_slot): Remove addr_taken and keep
member.
(assign_stack_temp_for_type) Don't initialize above, remove
keep argument.
(assign_stack_temp, assign_temp): Remove keep argument.
(mark_temp_addr_taken): Remove.
(preserve_temp_slots): Remove handling of addr_taken and keep
members.
(free_temp_slots): Ditto.
* expr.c (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Remove
dead code.
* stmt.c (expand_asm_operands): Remove dead code.
(expand_decl): Remove.
* c-decl.c (finish_struct): Don't call expand_decl.
* builtins.c (expand_builtin_cexpi): Adjust calls to assign_temp
and assign_stack_temp.
* calls.c (save_fixed_argument_area, initialize_argument_information,
expand_call, emit_library_call_value_1, store_one_arg): Ditto.
* expmed.c (extract_bit_field_1): Ditto.
* expr.c (emit_group_load_1, emit_group_store,
copy_blkmode_from_reg, emit_push_insn, expand_assignment,
store_field, expand_constructor, expand_cond_expr_using_cmove,
expand_expr_real_2, expand_expr_real_1): Ditto.
* stmt.c (expand_asm_operands, expand_return): Ditto.

* function.c (pop_temp_slots): Call free_temp_slots.
* calls.c (store_one_arg): Don't call preserve_temp_slots or
free_temp_slots.
* expr.c (expand_assignment): Don't call free_temp_slots.

* config/arm/arm.c (neon_expand_vector_init): Ditto.
* config/i386/i386.c (ix86_expand_vector_set): Ditto.
(ix86_expand_vector_extract): Ditto.
* config/ia64/ia64.c (spill_xfmode_rfmode_operand,
ia64_expand_movxf_movrf): Ditto.
* config/mips/mips.c (mips_expand_vi_general): Ditto.
* config/mmix/mmix.md (floatdisf2, floatunsdisf2, truncdfsf2,
extendsfdf2): Ditto.
* config/rs6000/rs6000.c (rs6000_expand_vector_init,
rs6000_expand_vector_set, rs6000_expand_vector_extract,
rs6000_allocate_stack_temp): Ditto.
* config/rs6000/rs6000.md (fix_trunctfsi2_fprs): Ditto.
* config/sparc/sparc.c (emit_soft_tfmode_libcall,
sparc_emit_float_lib_cmp, sparc_emit_float_lib_cmp,
sparc_expand_vector_init): Ditto.

From-SVN: r187965

12 years agoexpr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate a kept temp.
Michael Matz [Tue, 29 May 2012 14:41:53 +0000 (14:41 +0000)]
expr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate a kept temp.

* expr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate
a kept temp.
(expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Make unreachable.
* gimple-fold.c (canonicalize_constructor_val): Canonicalize
COMPOUND_LITERAL_EXPR.
* function.c (expand_function_start): Don't call expand_decl,
instead assert that we have RTL assigned.
* tree-ssa-live.c (remove_unused_locals): Clear
nonlocal_goto_save_area if its backing variable is removed.
* stmt.c (expand_asm_operands): Remove handling of non-lvalues
as mem inputs.
(expand_decl): Assert that this does nothing.
* calls.c (expand_call): Don't call mark_temp_addr_taken.

* c-tree.h (c_expand_decl): Remove prototype.

c-family/
* c-common.h (c_expand_decl): Remove prototype.

ada/
* gcc-interface/utils.c (create_var_decl_1): Don't call expand_decl.

From-SVN: r187962

12 years agore PR tree-optimization/53516 (Vectorization and memset recognition miscompile bitfie...
Richard Guenther [Tue, 29 May 2012 14:40:16 +0000 (14:40 +0000)]
re PR tree-optimization/53516 (Vectorization and memset recognition miscompile bitfield stores)

2012-05-29  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/53516
* tree-data-ref.c (stmt_with_adjacent_zero_store_dr_p): Reject
bitfield accesses.
* tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.

* gcc.dg/torture/pr53516.c: New testcase.

From-SVN: r187961

12 years agoLANGUAGES: Fix typos.
Joseph Myers [Tue, 29 May 2012 14:14:06 +0000 (15:14 +0100)]
LANGUAGES: Fix typos.

* LANGUAGES: Fix typos.
* Makefile.in: Fix typos.
* alias.c: Fix typos.
* auto-inc-dec.c: Fix typos.
* bb-reorder.c: Fix typos.
* cfgcleanup.c: Fix typos.
* cgraph.c: Fix typos.
* cgraph.h: Fix typos.
* cgraphunit.c: Fix typos.
* collect2-aix.h: Fix typos.
* collect2.c: Fix typos.
* compare-elim.c: Fix typos.
* config/alpha/vms.h: Fix typos.
* config/arm/README-interworking: Fix typos.
* config/arm/arm.c: Fix typos.
* config/arm/iterators.md: Fix typos.
* config/arm/vxworks.h: Fix typos.
* config/avr/avr.c: Fix typos.
* config/avr/avr.h: Fix typos.
* config/avr/avr.md: Fix typos.
* config/avr/builtins.def: Fix typos.
* config/c6x/c6x.c: Fix typos.
* config/cr16/cr16.c: Fix typos.
* config/cr16/cr16.md: Fix typos.
* config/cris/cris.md: Fix typos.
* config/darwin.c: Fix typos.
* config/darwin.opt: Fix typos.
* config/i386/i386-c.c: Fix typos.
* config/i386/i386.c: Fix typos.
* config/ia64/ia64.c: Fix typos.
* config/m68k/cf.md: Fix typos.
* config/mep/mep.c: Fix typos.
* config/microblaze/microblaze.c: Fix typos.
* config/microblaze/microblaze.h: Fix typos.
* config/mn10300/mn10300.c: Fix typos.
* config/mn10300/mn10300.md: Fix typos.
* config/pa/pa.c: Fix typos.
* config/picochip/picochip.h: Fix typos.
* config/rs6000/a2.md: Fix typos.
* config/rs6000/rs6000.c: Fix typos.
* config/rs6000/vector.md: Fix typos.
* config/rx/rx.md: Fix typos.
* config/rx/rx.opt: Fix typos.
* config/s390/2097.md: Fix typos.
* config/s390/s390.c: Fix typos.
* config/s390/s390.h: Fix typos.
* config/sh/sh.c: Fix typos.
* config/sh/sh.md: Fix typos.
* config/sparc/sync.md: Fix typos.
* config/spu/spu.c: Fix typos.
* config/spu/spu.md: Fix typos.
* config/vms/vms.c: Fix typos.
* config/vxworks-dummy.h: Fix typos.
* config/vxworks.h: Fix typos.
* cselib.c: Fix typos.
* df-scan.c: Fix typos.
* df.h: Fix typos.
* doc/extend.texi: Fix typos.
* doc/install.texi: Fix typos.
* doc/invoke.texi: Fix typos.
* doc/md.texi: Fix typos.
* doc/plugins.texi: Fix typos.
* doc/rtl.texi: Fix typos.
* dse.c: Fix typos.
* dwarf2asm.c: Fix typos.
* dwarf2out.c: Fix typos.
* except.h: Fix typos.
* expr.c: Fix typos.
* fold-const.c: Fix typos.
* gcc.c: Fix typos.
* gcse.c: Fix typos.
* genautomata.c: Fix typos.
* gengtype-state.c: Fix typos.
* gengtype.c: Fix typos.
* genhooks.c: Fix typos.
* gimple-fold.c: Fix typos.
* gimple-pretty-print.c: Fix typos.
* gimple.c: Fix typos.
* gimple.h: Fix typos.
* gimplify.c: Fix typos.
* graphite-interchange.c: Fix typos.
* graphite-sese-to-poly.c: Fix typos.
* ifcvt.c: Fix typos.
* input.c: Fix typos.
* ipa-cp.c: Fix typos.
* ipa-inline-analysis.c: Fix typos.
* ipa-inline-transform.c: Fix typos.
* ipa-inline.c: Fix typos.
* ipa-pure-const.c: Fix typos.
* ipa-ref.h: Fix typos.
* ipa-reference.c: Fix typos.
* ipa-utils.c: Fix typos.
* ipa.c: Fix typos.
* ira-emit.c: Fix typos.
* ira-lives.c: Fix typos.
* lto-streamer.c: Fix typos.
* lto-streamer.h: Fix typos.
* lto-wrapper.c: Fix typos.
* mcf.c: Fix typos.
* mode-switching.c: Fix typos.
* modulo-sched.c: Fix typos.
* plugin.c: Fix typos.
* postreload.c: Fix typos.
* sched-deps.c: Fix typos.
* sel-sched-ir.c: Fix typos.
* sel-sched-ir.h: Fix typos.
* sel-sched.c: Fix typos.
* sese.c: Fix typos.
* stor-layout.c: Fix typos.
* target-hooks-macros.h: Fix typos.
* target.def: Fix typos.
* trans-mem.c: Fix typos.
* tree-eh.c: Fix typos.
* tree-predcom.c: Fix typos.
* tree-sra.c: Fix typos.
* tree-ssa-address.c: Fix typos.
* tree-ssa-loop-ivopts.c: Fix typos.
* tree-ssa-loop-niter.c: Fix typos.
* tree-ssa-math-opts.c: Fix typos.
* tree-ssa-pre.c: Fix typos.
* tree-ssa-propagate.c: Fix typos.
* tree-ssa-reassoc.c: Fix typos.
* tree-ssa-sccvn.c: Fix typos.
* tree-ssa-ter.c: Fix typos.
* tree-ssa-uninit.c: Fix typos.
* tree-ssanames.c: Fix typos.
* tree-vect-generic.c: Fix typos.
* tree-vect-slp.c: Fix typos.
* tree.c: Fix typos.
* tree.h: Fix typos.
* varasm.c: Fix typos.
* varpool.c: Fix typos.

From-SVN: r187959

12 years ago* doc/include/texinfo.tex: Update to version 2012-05-16.16.
Joseph Myers [Tue, 29 May 2012 13:39:54 +0000 (14:39 +0100)]
* doc/include/texinfo.tex: Update to version 2012-05-16.16.

From-SVN: r187956

12 years agotree-dfa.c (find_vars_r): Do not call add_referenced_vars for globals.
Richard Guenther [Tue, 29 May 2012 12:48:34 +0000 (12:48 +0000)]
tree-dfa.c (find_vars_r): Do not call add_referenced_vars for globals.

2012-05-29  Richard Guenther  <rguenther@suse.de>

* tree-dfa.c (find_vars_r): Do not call add_referenced_vars
for globals.
(add_referenced_var_1): Re-organize.  Assert we are not
called for globals.
(remove_referenced_var): Likewise.
* varpool.c (add_new_static_var): Use create_tmp_var_raw.
* tree-mudflap.c (execute_mudflap_function_ops): Do not
call add_referenced_var on globals.
* matrix-reorg.c (transform_access_sites): Likewise.

From-SVN: r187955

12 years agoalias.c (reg_known_value): Make this a VEC.
Steven Bosscher [Tue, 29 May 2012 11:37:21 +0000 (11:37 +0000)]
alias.c (reg_known_value): Make this a VEC.

* alias.c (reg_known_value): Make this a VEC.
(reg_known_equiv_p): Make this an sbitmap.
(reg_known_value_size): Remove.
(get_reg_known_value, set_reg_known_value, get_reg_known_equiv_p,
set_reg_known_equiv_p): Update for reg_known_value and
reg_known_value_size data structure change.
(init_alias_analysis, end_alias_analysis): Likewise.

From-SVN: r187953

12 years agore PR middle-end/53510 (OOM while compile some code)
Jakub Jelinek [Tue, 29 May 2012 11:34:38 +0000 (13:34 +0200)]
re PR middle-end/53510 (OOM while compile some code)

PR middle-end/53510
* input.c (read_line): Use XRESIZEVEC instead of XNEWVEC
to avoid leaking memory.  No need to handle memory allocation
failure.  Double string_len on each reallocation instead of
adding 2.
* gcov.c (read_line): Likewise.

From-SVN: r187952

12 years agoc.opt (Wmissing-braces): Use LangEnabledBy(C ObjC,Wall).
Manuel López-Ibáñez [Tue, 29 May 2012 10:09:51 +0000 (10:09 +0000)]
c.opt (Wmissing-braces): Use LangEnabledBy(C ObjC,Wall).

2012-05-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

* c.opt (Wmissing-braces): Use LangEnabledBy(C ObjC,Wall).
* c-opts.c (c_common_handle_option): Remove code handling
warn_missing_braces.

From-SVN: r187948

12 years agoPR bootstrap/53459 - unused local typedef when building on altivec
Dodji Seketeli [Tue, 29 May 2012 09:42:39 +0000 (09:42 +0000)]
PR bootstrap/53459 - unused local typedef when building on altivec

PR bootstrap/53459
* lex.c (search_line_fast): Avoid unused local typedefs to simulate
a static assertion.

From-SVN: r187947

12 years agoRevert "PR bootstrap/53459 - unused local typedef when building on altivec"
Dodji Seketeli [Tue, 29 May 2012 09:42:28 +0000 (11:42 +0200)]
Revert "PR bootstrap/53459 - unused local typedef when building on altivec"

This reverts commit r187853

From-SVN: r187946

12 years agoPR preprocessor/53229 - Fix diagnostics location when pasting tokens
Dodji Seketeli [Tue, 29 May 2012 09:36:29 +0000 (09:36 +0000)]
PR preprocessor/53229 - Fix diagnostics location when pasting tokens

As stated in the audit trail of this problem report, consider this
test case:

    $ cat test.c
 1 struct x {
 2   int i;
 3 };
 4 struct x x;
 5
 6 #define TEST(X) x.##X
 7
 8 void foo (void)
 9 {
10   TEST(i) = 0;
11 }
    $

    $ cc1 -quiet test.c
    test.c: In function 'foo':
    test.c:10:1: error: pasting "." and "i" does not give a valid preprocessing token
       TEST(i) = 0;
     ^
    $

So, when pasting tokens, the error diagnostic uses the global and
imprecise input_location variable, leading to an imprecise output.

To properly fix this, I think libcpp should keep the token of the
pasting operator '##', instead of representing it with flag on the LHS
operand's token.  That way, it could use its location.  Doing that
would be quite intrusive though.  So this patch just uses the location
of the LHS of the pasting operator, for now.  It's IMHO better than
the current situation.

The patch makes paste_tokens take a location parameter that is used in
the diagnostics.  This change can still be useful later when we can
use the location of the pasting operator, because paste_tokens will
just be passed the new, more precise location.

Incidentally, it appeared that when getting tokens from within
preprocessor directives (like what is done in gcc.dg/cpp/paste12.c),
with -ftrack-macro-expansion disabled, the location of the expansion
point of macros was being lost because
cpp_reader::set_invocation_location wasn't being properly set.  It's
because when cpp_get_token_1 calls enter_macro_context, there is a
little period of time between the beginning of that later function and
when the macro is really pushed (and thus when the macro is really
expanded) where we wrongly consider that we are not expanding the
macro because macro_of_context is still NULL.  In that period of time,
in the occurrences of indirect recursive calls to cpp_get_token_1,
this later function wrongly sets cpp_reader::invocation_location
because cpp_reader::set_invocation_location is not being properly set.

To avoid that confusion the patch does away with
cpp_reader::set_invocation_location and introduces a new flag
cpp_reader::about_to_expand_macro_p that is set in the small time
interval exposed earlier.  A new in_macro_expansion_p is introduced as
well, so that cpp_get_token_1 can now accurately detect when we are in
the process of expanding a macro, and thus correctly collect the
location of the expansion point.

People seem to like screenshots.

Thus, after the patch, we now have:

    $ cc1 -quiet test.c
    test.c: In function 'foo':
    test.c:6:18: error: pasting "." and "i" does not give a valid preprocessing token
     #define TEST(X) x.##X
      ^
    test.c:10:3: note: in expansion of macro 'TEST'
       TEST(i) = 0;
       ^
    $

Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk.

libcpp/

PR preprocessor/53229
* internal.h (cpp_reader::set_invocation_location): Remove.
(cpp_reader::about_to_expand_macro_p): New member flag.
* directives.c (do_pragma):  Remove Kludge as
pfile->set_invocation_location is no more.
* macro.c (cpp_get_token_1): Do away with the use of
cpp_reader::set_invocation_location.  Just collect the macro
expansion point when we are about to expand the top-most macro.
Do not override cpp_reader::about_to_expand_macro_p.
This fixes gcc.dg/cpp/paste12.c by making get_token_no_padding
properly handle locations of expansion points.
(cpp_get_token_with_location): Adjust, as
cpp_reader::set_invocation_location is no more.
(paste_tokens): Take a virtual location parameter for
the LHS of the pasting operator.  Use it in diagnostics.  Update
comments.
(paste_all_tokens): Tighten the assert.  Propagate the location of
the expansion point when no virtual locations are available.
Pass the virtual location to paste_tokens.
(in_macro_expansion_p): New static function.
(enter_macro_context): Set the cpp_reader::about_to_expand_macro_p
flag until we really start expanding the macro.

gcc/testsuite/

PR preprocessor/53229
* gcc.dg/cpp/paste6.c: Force to run without
-ftrack-macro-expansion.
* gcc.dg/cpp/paste8.c: Likewise.
* gcc.dg/cpp/paste8-2.c: New test, like paste8.c but run with
-ftrack-macro-expansion.
* gcc.dg/cpp/paste12.c: Force to run without
-ftrack-macro-expansion.
* gcc.dg/cpp/paste12-2.c: New test, like paste12.c but run with
-ftrack-macro-expansion.
* gcc.dg/cpp/paste13.c: Likewise.
* gcc.dg/cpp/paste14.c: Likewise.
* gcc.dg/cpp/paste14-2.c: New test, like paste14.c but run with
-ftrack-macro-expansion.
* gcc.dg/cpp/paste18.c: New test.

From-SVN: r187945

12 years agotrap-1.c, [...]: New tests.
Hans-Peter Nilsson [Tue, 29 May 2012 01:54:09 +0000 (01:54 +0000)]
trap-1.c, [...]: New tests.

* gcc.target/cris/torture/trap-1.c,
gcc.target/cris/torture/trap-2.c,
gcc.target/cris/torture/trap-3.c,
gcc.target/cris/torture/trap-v0.c,
gcc.target/cris/torture/trap-v3.c: New tests.

From-SVN: r187943

12 years agocris.h (TARGET_HAS_BREAK, [...]): New macros.
Hans-Peter Nilsson [Tue, 29 May 2012 01:52:16 +0000 (01:52 +0000)]
cris.h (TARGET_HAS_BREAK, [...]): New macros.

* config/cris/cris.h (TARGET_HAS_BREAK, TARGET_TRAP_USING_BREAK8):
New macros.
* config/cris/cris.md ("trap"): Define, enabled for
TARGET_TRAP_USING_BREAK8.
* config/cris/cris.opt (mtrap-using-break8): New option.

From-SVN: r187942

12 years agoDaily bump.
GCC Administrator [Tue, 29 May 2012 00:17:51 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r187941

12 years agore PR c++/25137 (Warning "missing braces around initializer" causing problems with...
Paolo Carlini [Mon, 28 May 2012 17:42:29 +0000 (17:42 +0000)]
re PR c++/25137 (Warning "missing braces around initializer" causing problems with tr1::array)

/c-family
2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/25137
* c-opts.c (c_common_handle_option): For C++ -Wall doesn't enable
-Wmissing_braces.

2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/25137
* doc/invoke.texi: Document -Wmissing-braces not enabled by -Wall
for C++.

/testsuite
2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/25137
* g++.dg/warn/Wbraces3.C: New.
* g++.dg/warn/Wbraces4.C: Likewise.

From-SVN: r187937

12 years agoFix grammo in last CL entry.
Hans-Peter Nilsson [Mon, 28 May 2012 16:05:36 +0000 (16:05 +0000)]
Fix grammo in last CL entry.

From-SVN: r187936

12 years ago* doc/md.texi (Standard Names): Fix typos in documentation for atomic patterns.
Hans-Peter Nilsson [Mon, 28 May 2012 16:04:14 +0000 (16:04 +0000)]
* doc/md.texi (Standard Names): Fix typos in documentation for atomic patterns.

From-SVN: r187935

12 years agomd.texi (stack_protect_test): Remove negation of branch to label.
Hans-Peter Nilsson [Mon, 28 May 2012 15:43:42 +0000 (15:43 +0000)]
md.texi (stack_protect_test): Remove negation of branch to label.

* doc/md.texi (stack_protect_test): Remove negation of
        branch to label.

From-SVN: r187934

12 years agore PR c++/53505 (bitfield with bool type generated broken object file)
Jakub Jelinek [Mon, 28 May 2012 14:28:00 +0000 (16:28 +0200)]
re PR c++/53505 (bitfield with bool type generated broken object file)

PR tree-optimization/53505
* c-c++-common/torture/pr53505.c: New test.

From-SVN: r187931

12 years agore PR c++/53503 ([C++0x] unexpected AST of kind ltgt_expr)
Paolo Carlini [Mon, 28 May 2012 12:09:01 +0000 (12:09 +0000)]
re PR c++/53503 ([C++0x] unexpected AST of kind ltgt_expr)

gcc/cp
2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/53503
* semantics.c (potential_constant_expression_1): Handle LTGT_EXPR.

libstdc++-v3
2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/53503
* testsuite/26_numerics/headers/cmath/53503.cc: New.

From-SVN: r187928

12 years agoDaily bump.
GCC Administrator [Mon, 28 May 2012 00:17:55 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r187927

12 years agotree.c (build_constructor): Propagate TREE_SIDE_EFFECTS.
Nathan Sidwell [Sun, 27 May 2012 16:25:58 +0000 (16:25 +0000)]
tree.c (build_constructor): Propagate TREE_SIDE_EFFECTS.

* tree.c (build_constructor): Propagate TREE_SIDE_EFFECTS.
testsuite/
* gcc.dg/stmt-expr-4.c: New.

From-SVN: r187923

12 years agoMinor timing cleanups.
Janne Blomqvist [Sun, 27 May 2012 07:09:15 +0000 (10:09 +0300)]
Minor timing cleanups.

2012-05-27  Janne Blomqvist  <jb@gcc.gnu.org>

* intrinsics/time_1.h (gf_cputime): Don't reevaluate HZ expression
for times fallback, clarify operation ordering for times and clock
fallbacks.
(gf_gettime): Fix comment typo.

From-SVN: r187922

12 years agoDaily bump.
GCC Administrator [Sun, 27 May 2012 00:17:50 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r187921

12 years agore PR c++/53491 (ICE in build_target_expr_with_type, at cp/tree.c:587)
Paolo Carlini [Sat, 26 May 2012 21:20:38 +0000 (21:20 +0000)]
re PR c++/53491 (ICE in build_target_expr_with_type, at cp/tree.c:587)

/cp
2012-05-26  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/53491
* tree.c (stabilize_expr): Handle exp of void type.

/testsuite
2012-05-26  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/53491
* g++.dg/parse/crash60.C: New.

From-SVN: r187917

12 years agore PR c++/53220 (g++ mis-compiles compound literals)
Jason Merrill [Sat, 26 May 2012 21:13:23 +0000 (17:13 -0400)]
re PR c++/53220 (g++ mis-compiles compound literals)

PR c++/53220
gcc/
* c-typeck.c (array_to_pointer_conversion): Give -Wc++-compat warning
about array compound literals.
gcc/cp/
* call.c (convert_like_real) [ck_list]: Take array address directly.
* typeck.c (decay_conversion): Reject decay of an array compound
literal.

From-SVN: r187916

12 years agore PR ada/50294 (ICE in output_constructor_regular_field)
Eric Botcazou [Sat, 26 May 2012 13:25:55 +0000 (13:25 +0000)]
re PR ada/50294 (ICE in output_constructor_regular_field)

PR ada/50294
* gnat.dg/array21.adb: New test.

From-SVN: r187914

12 years agocfgcleanup.c (try_optimize_cfg): Do not delete forwarder blocks if CLEANUP_NO_INSN_DEL.
Eric Botcazou [Sat, 26 May 2012 12:05:24 +0000 (12:05 +0000)]
cfgcleanup.c (try_optimize_cfg): Do not delete forwarder blocks if CLEANUP_NO_INSN_DEL.

* cfgcleanup.c (try_optimize_cfg): Do not delete forwarder blocks
if CLEANUP_NO_INSN_DEL.
* cfgrtl.c (unique_locus_on_edge_between_p): New function extracted
from cfg_layout_merge_blocks.
(emit_nop_for_unique_locus_between): New function.
(rtl_merge_blocks): Invoke emit_nop_for_unique_locus_between.
(cfg_layout_merge_blocks): Likewise.

From-SVN: r187913

12 years ago* gnat.dg/renaming5.adb: Adjust dg-final directive.
Eric Botcazou [Sat, 26 May 2012 11:46:53 +0000 (11:46 +0000)]
* gnat.dg/renaming5.adb: Adjust dg-final directive.

From-SVN: r187912

12 years agodf-scan.c (df_def_record_1): Assert a parallel must contain an EXPR_LIST at this...
Dimitrios Apostolou [Sat, 26 May 2012 11:44:50 +0000 (11:44 +0000)]
df-scan.c (df_def_record_1): Assert a parallel must contain an EXPR_LIST at this point.

2012-05-26  Dimitrios Apostolou  <jimis@gmx.net>
    Paolo Bonzini  <bonzini@gnu.org>

* df-scan.c (df_def_record_1): Assert a parallel must contain an
EXPR_LIST at this point.  Receive the LOC and move its extraction...
(df_defs_record): ... here. Change if-else to a switch statement.
(df_find_hard_reg_defs, df_find_hard_reg_defs_1): New.
(df_get_call_refs): Changed defs_generated from bitmap to HARD_REG_SET
and compute it from df_find_hard_reg_defs(). Record DF_REF_BASE
DEFs in REGNO order. Use HARD_REG_SET instead of bitmap for
regs_invalidated_by_call.
(df_insn_refs_collect): Record DF_REF_REGULAR DEFs after
df_get_call_refs().

Co-Authored-By: Paolo Bonzini <bonzini@gnu.org>
From-SVN: r187911

12 years agodecl.c (variant_desc): Rename 'record' to 'new_type'.
Eric Botcazou [Sat, 26 May 2012 10:42:17 +0000 (10:42 +0000)]
decl.c (variant_desc): Rename 'record' to 'new_type'.

* gcc-interface/decl.c (variant_desc): Rename 'record' to 'new_type'.
(build_variant_list): Adjust to above renaming.
(gnat_to_gnu_entity) <E_Record_Subtype>: Likewise.  Give a unique name
to the type of the variant containers.
(create_variant_part_from): Likewise.  Give a unique name to the type
of the variant part.

From-SVN: r187908

12 years agoDaily bump.
GCC Administrator [Sat, 26 May 2012 00:18:49 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r187906

12 years agore PR c++/32054 (Storage classes on anonymous unions in classes)
Paolo Carlini [Fri, 25 May 2012 23:40:10 +0000 (23:40 +0000)]
re PR c++/32054 (Storage classes on anonymous unions in classes)

/cp
2012-05-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/32054
* parser.c (cp_parser_member_declaration): A storage class is not
allowed in a declaration of an anonymous aggregate in a class scope.

/testsuite
2012-05-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/32054
* g++.dg/other/anon-union3.C: New.

From-SVN: r187902

12 years agoruntime: More efficient implementation of trampolines.
Ian Lance Taylor [Fri, 25 May 2012 21:51:39 +0000 (21:51 +0000)]
runtime: More efficient implementation of trampolines.

From-SVN: r187899

12 years agocompiler: Don't create a closure if not needed.
Ian Lance Taylor [Fri, 25 May 2012 21:14:40 +0000 (21:14 +0000)]
compiler: Don't create a closure if not needed.

From-SVN: r187897

12 years agomorestack.S (__morestack_non_split): Check whether caller is varargs and needs %bp...
Ian Lance Taylor [Fri, 25 May 2012 20:48:19 +0000 (20:48 +0000)]
morestack.S (__morestack_non_split): Check whether caller is varargs and needs %bp to hold the stack frame on return.

libgcc/:
* config/i386/morestack.S (__morestack_non_split): Check whether
caller is varargs and needs %bp to hold the stack frame on return.
gcc/testsuite/:
* gcc.dg/split-6.c: New test.

From-SVN: r187894

12 years agore PR lto/52178 (Ada bootstrap failure in LTO mode)
Eric Botcazou [Fri, 25 May 2012 20:26:11 +0000 (20:26 +0000)]
re PR lto/52178 (Ada bootstrap failure in LTO mode)

PR lto/52178
* tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL.
* tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR.

From-SVN: r187892

12 years agot-linux64: Delete the 32-bit multilib that uses software floating point emulation.
Michael Meissner [Fri, 25 May 2012 20:00:58 +0000 (20:00 +0000)]
t-linux64: Delete the 32-bit multilib that uses software floating point emulation.

2012-05-25  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/t-linux64: Delete the 32-bit multilib that uses
software floating point emulation.  No longer build the multilibs
with -mstrict-align.

From-SVN: r187891

12 years agoruntime: Fix cast error in print.c on 32-bit systems.
Ian Lance Taylor [Fri, 25 May 2012 18:22:01 +0000 (18:22 +0000)]
runtime: Fix cast error in print.c on 32-bit systems.

From-SVN: r187889

12 years agore PR objc++/53441 (obj-c++.dg/ivar-invalid-type-1.mm ICE)
Uros Bizjak [Fri, 25 May 2012 17:29:33 +0000 (19:29 +0200)]
re PR objc++/53441 (obj-c++.dg/ivar-invalid-type-1.mm ICE)

PR obj-c++/53441
* decl.c (grokdeclarator): Check that current_class_type is non-NULL
before calling constructor_name_p.

From-SVN: r187888

12 years agore PR middle-end/53008 (abort in _ITM_getTMCloneSafe)
Aldy Hernandez [Fri, 25 May 2012 17:14:25 +0000 (17:14 +0000)]
re PR middle-end/53008 (abort in _ITM_getTMCloneSafe)

        PR middle-end/53008
        * trans-mem.c (ipa_tm_create_version_alias): Output new_node if
        accessed indirectly.
        (ipa_tm_create_version): Same.

From-SVN: r187887

12 years ago* decl.c: Revert unwanted commit.
Uros Bizjak [Fri, 25 May 2012 15:09:49 +0000 (17:09 +0200)]
* decl.c: Revert unwanted commit.

From-SVN: r187886

12 years agore PR target/53474 (Solaris/x86 bootstrap with Sun as broken: j.e)
Uros Bizjak [Fri, 25 May 2012 15:07:02 +0000 (17:07 +0200)]
re PR target/53474 (Solaris/x86 bootstrap with Sun as broken: j.e)

PR target/53474
* config/i386/i386.c (ix86_print_operand) <case 'O'>: Print '.' here.
<case 'C', case 'c', case 'F', case 'f'>: Print '.' only for C and c.

From-SVN: r187885

12 years agore PR target/53435 ((ix86_expand_vec_perm) and (ix86_expand_vec_perm) do not pass...
Alexander Ivchenko [Fri, 25 May 2012 13:03:18 +0000 (13:03 +0000)]
re PR target/53435 ((ix86_expand_vec_perm) and (ix86_expand_vec_perm) do not pass arguments to avx2_permvar8s[f,i] correctly)

2012-05-21  Alexander Ivchenko  <alexander.ivchenko@intel.com>

       PR target/53435
       * config/i386/i386.c (ix86_expand_vec_perm): Use correct op.
       (ix86_expand_vec_perm): Use int mode instead of float.
       (expand_vec_perm_pshufb): Remove handling of useseless type
       conversion.

From-SVN: r187881

12 years agoRemove any .comment sections if the first cmp failed
H.J. Lu [Fri, 25 May 2012 11:47:05 +0000 (11:47 +0000)]
Remove any .comment sections if the first cmp failed

PR bootstrap/53472
* contrib/compare-debug (remove_comment): New function.
Remove any .comment sections if the first cmp failed.

From-SVN: r187879

12 years agoFix formatting
Eric Botcazou [Fri, 25 May 2012 09:57:15 +0000 (09:57 +0000)]
Fix formatting

From-SVN: r187875

12 years agore PR ada/52362 (gnat.dg/lto8.adb FAILs with gas/gld)
Eric Botcazou [Fri, 25 May 2012 09:24:08 +0000 (09:24 +0000)]
re PR ada/52362 (gnat.dg/lto8.adb FAILs with gas/gld)

PR ada/52362
* config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and
gnu_ld variables to yes.
* configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion.
(HAVE_GNU_AS): Likewise.
* config.in: Regenerate.
* configure: Likewise.
ada/
* link.c (__gnat_object_file_option): Set to "-Wl,@" for GNU linker.
(__gnat_using_gnu_linker): Delete.
* gnatlink.adb (Gnatlink): Declare Object_File_Option_Ptr here...
Declare Object_File_Option string constant and Using_GNU_response_file
boolean constant.
(Process_Binder_File): ...instead of here.  Delete Using_GNU_Linker,
Opening and Closing local variables.  Do not handle the GNU linker
specially.
(Write_RF): New procedure to write into the response file.  Escape some
characters if a GNU response file is used.  Keep track of error status.
Invoke Write_RF to write into the response file.  Delete the file only
if the link was successful.
* mlib-utl.adb: Do not `with' package System.
(Gcc): Likewise.  Declare Object_File_Option string constant and
Using_GNU_response_file boolean constant.
(Write_RF): Take a string instead of address and length.  Escape some
characters if a GNU response file is used.
Invoke Write_RF to write into the response file.  Delete the file only
if the link was successful.  Do not warn if it cannot be deleted.

From-SVN: r187874

12 years agoi386.c (struct ix86_frame): Remove unused frame field.
Tristan Gingold [Fri, 25 May 2012 08:58:25 +0000 (08:58 +0000)]
i386.c (struct ix86_frame): Remove unused frame field.

gcc/
2012-05-25  Tristan Gingold  <gingold@adacore.com>

* config/i386/i386.c (struct ix86_frame): Remove unused frame field.
(ix86_compute_frame_layout): Fix type of stack_alignment_needed
and preferred_alignment.

gcc/testsuite
2012-05-25  Tristan Gingold  <gingold@adacore.com>

* gcc.target/i386/large-frame.c: New.

From-SVN: r187873

12 years agoia64-common.c (ia64_except_unwind_info): Fix typo.
Tristan Gingold [Fri, 25 May 2012 08:47:07 +0000 (08:47 +0000)]
ia64-common.c (ia64_except_unwind_info): Fix typo.

2012-05-25  Tristan Gingold  <gingold@adacore.com>

        * common/config/ia64/ia64-common.c (ia64_except_unwind_info): Fix typo.

From-SVN: r187872

12 years agotramp.S (trampoline_setup): Use a longcall sequence in the non pic case on VxWorks.
Olivier Hainque [Fri, 25 May 2012 08:20:03 +0000 (08:20 +0000)]
tramp.S (trampoline_setup): Use a longcall sequence in the non pic case on VxWorks.

        libgcc/
        * config/rs6000/vxworks/tramp.S (trampoline_setup): Use a longcall
        sequence in the non pic case on VxWorks.

From-SVN: r187871

12 years agofold-const.c (optimize_bit_field_compare): Abort early in the strict volatile bitfiel...
Thomas Schwinge [Fri, 25 May 2012 08:04:28 +0000 (10:04 +0200)]
fold-const.c (optimize_bit_field_compare): Abort early in the strict volatile bitfields case.

gcc/
* fold-const.c (optimize_bit_field_compare): Abort early in the strict
volatile bitfields case.

From-SVN: r187869

12 years agoDaily bump.
GCC Administrator [Fri, 25 May 2012 00:17:44 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r187865

12 years agoruntime: Make runtime.Stack actually work.
Ian Lance Taylor [Thu, 24 May 2012 21:07:18 +0000 (21:07 +0000)]
runtime: Make runtime.Stack actually work.

From-SVN: r187854

12 years agoPR bootstrap/53459 - unused local typedef when building on altivec
Dodji Seketeli [Thu, 24 May 2012 21:05:49 +0000 (21:05 +0000)]
PR bootstrap/53459 - unused local typedef when building on altivec

libcpp/

PR bootstrap/53459
* lex.c (search_line_fast): Remove unused typedef check_count.

From-SVN: r187853

12 years agoruntime: Correct definition of __go_file_line to match declaration.
Ian Lance Taylor [Thu, 24 May 2012 20:47:09 +0000 (20:47 +0000)]
runtime: Correct definition of __go_file_line to match declaration.

From Rainer Orth.

From-SVN: r187851

12 years agoruntime: Copy runtime_printf from other Go library.
Ian Lance Taylor [Thu, 24 May 2012 20:45:37 +0000 (20:45 +0000)]
runtime: Copy runtime_printf from other Go library.

From-SVN: r187850

12 years agoruntime: Copy runtime_printf from other Go library.
Ian Lance Taylor [Thu, 24 May 2012 20:44:34 +0000 (20:44 +0000)]
runtime: Copy runtime_printf from other Go library.

From-SVN: r187848

12 years agors6000.c (rs6000_option_override_internal): Change rs6000_sched_costly_dep default...
Pat Haugen [Thu, 24 May 2012 20:28:31 +0000 (20:28 +0000)]
rs6000.c (rs6000_option_override_internal): Change rs6000_sched_costly_dep default to true_store_to_load_dep_costly.

* config/rs6000/rs6000.c (rs6000_option_override_internal): Change
rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
(adjacent_mem_locations): Move some code to and call...
(get_memref_parts): ...new function.
(mem_locations_overlap): New function.
(rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn.
(is_mem_ref): Rename to...
(find_mem_ref): ...this. Return MEM rtx.
(get_store_dest): Remove function.
(is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add
new parameter and adjust calls.
(rs6000_is_costly_dependence): Update calls for extra arg. Make sure
mem refs overlap for true_store_to_load_dep_costly.
(rs6000_sched_reorder2): Update calls for extra arg. Adjust args
passed to adjacent_mem_locations.
(is_costly_group): Walk resolved dependency list.
(force_new_group): Emit group ending nop for Power6/Power7.
* config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value.
(group_ending_nop): New define_insn.

* gcc.target/powerpc/lhs-1.c: New.
* gcc.target/powerpc/lhs-2.c: New.
* gcc.target/powerpc/lhs-3.c: New.

From-SVN: r187847

12 years agoPR 53456 CPU timing fallback using clock_gettime.
Janne Blomqvist [Thu, 24 May 2012 20:19:37 +0000 (23:19 +0300)]
PR 53456 CPU timing fallback using clock_gettime.

2012-05-24  Janne Blomqvist  <jb@gcc.gnu.org>

PR fortran/53456
* intrinsics/time_1.h (gf_cputime): Fallback for clock_gettime.

From-SVN: r187846

12 years agoMake unwound macro expansion trace less redundant
Dodji Seketeli [Thu, 24 May 2012 19:37:45 +0000 (19:37 +0000)]
Make unwound macro expansion trace less redundant

As discussed previously, the unwinder for macro expansion is quite
verbose [1].  This patch proposes to address that shortcoming.

Consider this test case:

    $ cat -n test.c
 1 #define MYMAX(A,B) __extension__ ({ __typeof__(A) __a = (A); \
 2  __typeof__(B) __b = (B); __a < __b ? __b : __a; })
 3
 4 struct mystruct {};
 5 void
 6 foo()
 7 {
 8   struct mystruct p;
 9   float f = 0.0;
10   MYMAX (p, f);
11 }
    $

The output of the compiler from trunk yields:

    $ cc1 -quiet ./test.c
    ./test.c: In function ‘foo’:
    ./test.c:2:31: error: invalid operands to binary < (have ‘struct mystruct’ and ‘float’)
      __typeof__(B) __b = (B); __a < __b ? __b : __a; })
   ^
    ./test.c:2:31: note: in expansion of macro 'MYMAX'
      __typeof__(B) __b = (B); __a < __b ? __b : __a; })
   ^
    ./test.c:10:3: note: expanded from here
       MYMAX (p, f);
       ^
    $

After this patch, the compiler yields:

    $ ./cc1 -quiet ./test.c
    ./test.c: In function ‘foo’:
    ./test.c:2:31: error: invalid operands to binary < (have ‘struct mystruct’ and ‘float’)
      __typeof__(B) __b = (B); __a < __b ? __b : __a; })
   ^
    ./test.c:10:3: note: in expansion of macro 'MYMAX'
       MYMAX (p, f);
       ^
    $

The gotcha is, in the general case, we cannot simply eliminate the
context of the macro definition.  That is, the line from the first
output that is redundant with the first diagnostic line that has
line/column number:

    ./test.c:2:31: note: in expansion of macro 'MYMAX'
      __typeof__(B) __b = (B); __a < __b ? __b : __a; })
                                   ^

We cannot simply eliminate that context of macro definition because
there are cases where the first diagnostic that has a line/column
number doesn't point to a location inside the definition of the macro
where the relevant token is used.  For instance:

    $ cat -n test2.c
 1 #define OPERATE(OPRD1, OPRT, OPRD2) \
 2   OPRD1 OPRT OPRD2;
 3
 4 #define SHIFTL(A,B) \
 5   OPERATE (A,<<,B)
 6
 7 #define MULT(A) \
 8   SHIFTL (A,1)
 9
10 void
11 g ()
12 {
13   MULT (1.0);// 1.0 << 1; <-- so this is an error.
14 }
    $

Which yields without the patch:

    $ cc1 -quiet ./test2.c
    ./test2.c: In function ‘g’:
    ./test2.c:5:14: error: invalid operands to binary << (have ‘double’ and ‘int’)
       OPERATE (A,<<,B)
  ^
    ./test2.c:2:9: note: in expansion of macro 'OPERATE'
       OPRD1 OPRT OPRD2;
     ^
    ./test2.c:5:3: note: expanded from here
       OPERATE (A,<<,B)
       ^
    ./test2.c:5:14: note: in expansion of macro 'SHIFTL'
       OPERATE (A,<<,B)
  ^
    ./test2.c:8:3: note: expanded from here
       SHIFTL (A,1)
       ^
    ./test2.c:8:3: note: in expansion of macro 'MULT'
       SHIFTL (A,1)
       ^
    ./test2.c:13:3: note: expanded from here
       MULT (1.0);// 1.0 << 1; <-- so this is an error.
       ^
    $

Here, the line that has the context of macro definition:

    ./test2.c:2:9: note: in expansion of macro 'OPERATE'
       OPRD1 OPRT OPRD2;
     ^
is useful, because the first diagnostic that has line/column number
wasn't pointing into the definition of the macro OPERATE, where the
token '<<' is used.

    ./test2.c:5:14: error: invalid operands to binary << (have ‘double’ and ‘int’)
       OPERATE (A,<<,B)
  ^
So in this this case, displaying the macro definition context is not
redundant.  I think it is even desirable.

The patch changes the output in that case to be:

    ./test2.c: In function ‘g’:
    ./test2.c:5:14: erreur: invalid operands to binary << (have ‘double’ and ‘int’)
       OPERATE (A,<<,B)
  ^
    ./test2.c:2:9: note: in definition of macro 'OPERATE'
       OPRD1 OPRT OPRD2;
     ^
    ./test2.c:8:3: note: in expansion of macro 'SHIFTL'
       SHIFTL (A,1)
       ^
    ./test2.c:13:3: note: in expansion of macro 'MULT'
       MULT (1.0);// 1.0 << 1; <-- so this is an error.
       ^
    $

It's shorter, but I believe it has all the information that was
present before the patch.

[1]: http://gcc.gnu.org/ml/gcc-patches/2012-05/msg00321.html

Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk.

gcc/

Make unwound macro expansion trace less redundant
* tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Don't print
context of macro definition in the trace, when it's redundant.
Update comments.

gcc/testsuite/

Make unwound macro expansion trace less redundant
* gcc.dg/cpp/macro-exp-tracking-1.c: Adjust.
* gcc.dg/cpp/macro-exp-tracking-2.c: Likewise.
* gcc.dg/cpp/macro-exp-tracking-3.c: Likewise.
* gcc.dg/cpp/macro-exp-tracking-4.c: Likewise.
* gcc.dg/cpp/macro-exp-tracking-5.c: Likewise.
* gcc.dg/cpp/pragma-diagnostic-2.c: Likewise.

From-SVN: r187845

12 years agore PR c++/53464 (Invalid default value for non-type template parameter is accepted)
Paolo Carlini [Thu, 24 May 2012 15:12:37 +0000 (15:12 +0000)]
re PR c++/53464 (Invalid default value for non-type template parameter is accepted)

2012-05-24  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/53464
* g++.dg/cpp0x/constexpr-default1.C: New.

From-SVN: r187842

12 years agoFix typo in latest ChangeLog entry addition.
Olivier Hainque [Thu, 24 May 2012 14:58:49 +0000 (14:58 +0000)]
Fix typo in latest ChangeLog entry addition.

From-SVN: r187840

12 years agoMakefile.in: move dependency on install-unwind_h from "install-leaf" to "install".
Olivier Hainque [Thu, 24 May 2012 14:57:11 +0000 (14:57 +0000)]
Makefile.in: move dependency on install-unwind_h from "install-leaf" to "install".

        libgcc/
        * Makefile.in: move dependency on install-unwind_h from
        "install-leaf" to "install".

From-SVN: r187839

12 years agoMakefile.in (clean): Remove libgcc_tm.stamp as well.
Olivier Hainque [Thu, 24 May 2012 14:51:33 +0000 (14:51 +0000)]
Makefile.in (clean): Remove libgcc_tm.stamp as well.

        libgcc/
        * Makefile.in (clean): Remove libgcc_tm.stamp as well.
        Use a separate command for stamp removals.

From-SVN: r187838

12 years agore PR c++/32080 (Can goto a function try-block)
Paolo Carlini [Thu, 24 May 2012 14:47:06 +0000 (14:47 +0000)]
re PR c++/32080 (Can goto a function try-block)

/cp
2012-05-24  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/32080
* parser.c (cp_parser_ctor_initializer_opt_and_function_body,
cp_parser_function_body): Add a bool parameter, true when parsing
a function-try-block.
(cp_parser_function_try_block): Pass true to the above.
(cp_parser_function_definition_after_declarator,
cp_parser_function_transaction): Adjust.

/testsuite
2012-05-24  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/32080
* g++.dg/eh/goto2.C: New.

From-SVN: r187837

12 years agore PR middle-end/53460 (Internal compiler error: in calc_dfs_tree, at dominance.c...
Richard Guenther [Thu, 24 May 2012 12:46:53 +0000 (12:46 +0000)]
re PR middle-end/53460 (Internal compiler error: in calc_dfs_tree, at dominance.c:395)

2012-05-24  Richard Guenther  <rguenther@suse.de>

PR middle-end/53460
* tree-profile.c (tree_profiling): Cleanup the CFG if
execute_fixup_cfg requests it.

* g++.dg/tree-prof/pr53460.C: New testcase.

From-SVN: r187831

12 years agore PR bootstrap/53466 (Bootstrap failure)
Richard Guenther [Thu, 24 May 2012 12:36:40 +0000 (12:36 +0000)]
re PR bootstrap/53466 (Bootstrap failure)

2012-05-24  Richard Guenther  <rguenther@suse.de>

PR bootstrap/53466
* g++.dg/debug/pr53466.C: New testcase.

From-SVN: r187830

12 years agotree-flow.h (create_var_ann): Remove.
Richard Guenther [Thu, 24 May 2012 12:33:49 +0000 (12:33 +0000)]
tree-flow.h (create_var_ann): Remove.

2012-05-24  Richard Guenther  <rguenther@suse.de>

* tree-flow.h (create_var_ann): Remove.
* tree-dfa.c (create_var_ann): Remove and inline into its
single caller ...
(add_referenced_var_1): ... here.
* varpool.c (add_new_static_var): Do not call add_referenced_var
for global vars.
* gimple-fold.c (canonicalize_constructor_val): Likewise.
* tree-switch-conversion.c (build_one_array): Likewise.
* tree-profile.c (gimple_gen_ic_profiler): Likewise.
* tree-flow-inline.h (gimple_referenced_vars): Guard against
NULL fn argument.
* tree-inline.c (remap_gimple_op_r): Likewise.  Check
gimple_referenced_vars instead of gimple_in_ssa_p.
(copy_tree_body_r): Likewise.
(setup_one_parameter): Likewise.
(declare_return_variable): Likewise.
(tree_function_versioning): Likewise.

From-SVN: r187829

12 years agore PR tree-optimization/53465 (wrong code with -O1 -ftree-vrp)
Jakub Jelinek [Thu, 24 May 2012 11:51:09 +0000 (13:51 +0200)]
re PR tree-optimization/53465 (wrong code with -O1 -ftree-vrp)

PR tree-optimization/53465
* tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
vr0 into *vr, then vrp_meet that.
(vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
have any equivalences.
(vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
first time.

* gcc.c-torture/execute/pr53465.c: New test.

From-SVN: r187827

12 years agorecog.c (reg_fits_class_p): Check both regno and regno + offset are hard registers.
Jim MacArthur [Thu, 24 May 2012 11:07:57 +0000 (11:07 +0000)]
recog.c (reg_fits_class_p): Check both regno and regno + offset are hard registers.

2012-05-24  Jim MacArthur<jim.macarthur@arm.com>

* recog.c (reg_fits_class_p): Check both regno and regno + offset are
hard registers.
* regs.h (in_hard_reg_set_p): Assert that regno is a hard register and
check end_regno - 1 is a hard register.

From-SVN: r187826

12 years agovarpool.c (add_new_static_var): Remove call to create_var_ann.
Richard Guenther [Thu, 24 May 2012 09:57:38 +0000 (09:57 +0000)]
varpool.c (add_new_static_var): Remove call to create_var_ann.

2012-05-24  Richard Guenther  <rguenther@suse.de>

* varpool.c (add_new_static_var): Remove call to create_var_ann.
* tree-ssa-operands.c (create_vop_var): Likewise.

From-SVN: r187825

12 years agore PR bootstrap/53466 (Bootstrap failure)
Richard Guenther [Thu, 24 May 2012 09:54:25 +0000 (09:54 +0000)]
re PR bootstrap/53466 (Bootstrap failure)

2012-05-24  Richard Guenther  <rguenther@suse.de>

PR bootstrap/53466
* tree-ssa-live.c (remove_unused_scope_block_p): Properly
handle globals.
(remove_unused_locals): Pass global_unused_vars to
remove_unused_scope_block_p.  Restore code walking all
referenced vars and pruning them.

From-SVN: r187824

12 years agotree.h (alias_diag_flags): Remove.
Jan Hubicka [Thu, 24 May 2012 09:44:48 +0000 (11:44 +0200)]
tree.h (alias_diag_flags): Remove.

* tree.h (alias_diag_flags): Remove.
(alias_pair): Remove emitted_diags.
(finish_aliases_1, finish_aliases_2, remove_unreachable_alias_pairs,
symbol_alias_set_t, symbol_alias_set_destroy,
symbol_alias_set_contains, propagate_aliases_backward): Remove.
* toplev.c (compile_file): Do not call finish_aliases_2
* cgraphunit.c (cgraph_process_new_functions): Do not call finish_aliases_1.
(handle_alias_pairs): Output diagnostics about aliases to externals.
(assemble_thunks_and_aliases): Use do_assemble_alias.
(output_weakrefs): Likewise.
(finalize_compilation_unit): Do not call finish_aliases_1.
* ipa.c (symtab_remove_unreachable_nodes): De not call remove_unreachable_alias_pairs.
* varasm.c (do_assemble_alias): Export.
(symbol_alias_set_create, symbol_alias_set_destroy, symbol_alias_set_contains,
symbol_alias_set_insert, propagate_aliases_forward, propagate_aliases_backward,
propagate_aliases_backward, trivially_visible_alias, trivially_defined_alias,
remove_unreachable_alias_pairs, finish_aliases_1, finish_aliases_2,
assemble_alias): Remove.
* output.h (do_assemble_alias): Declare.
* varpool.c (varpool_remove_unreferenced_decls): Do not call finish_aliases_1.

From-SVN: r187823

12 years agoDaily bump.
GCC Administrator [Thu, 24 May 2012 00:18:39 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r187822

12 years agoleb128.h: #include stdint.h, inttypes.h.
Doug Evans [Wed, 23 May 2012 23:42:25 +0000 (23:42 +0000)]
leb128.h: #include stdint.h, inttypes.h.

* leb128.h: #include stdint.h, inttypes.h.
(read_uleb128_to_uint64): Renamed from read_uleb128_to_ull.
Change to take a uint64_t * argument instead of unsigned long long.
(read_sleb128_to_uint64): Renamed from read_sleb128_to_ll.
Change to take an int64_t * argument instead of long long.

From-SVN: r187818

12 years agoipa-inline-analysis.c (inline_merge_summary): Free operand_map.
Martin Jambor [Wed, 23 May 2012 22:23:54 +0000 (00:23 +0200)]
ipa-inline-analysis.c (inline_merge_summary): Free operand_map.

2012-05-23  Martin Jambor  <mjambor@suse.cz>

    * ipa-inline-analysis.c (inline_merge_summary): Free operand_map.

From-SVN: r187817

12 years agore PR fortran/51055 (deferred length character allocation: allocate(character(len...
Tobias Burnus [Wed, 23 May 2012 20:35:30 +0000 (22:35 +0200)]
re PR fortran/51055 (deferred length character allocation: allocate(character(len=i)::s) rejected)

2012-05-23  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51055
        PR fortran/45170
        * match.c (gfc_match_allocate): Set length_from_typespec
        for characters.
        * resolve.c (resolve_charlen): If set, don't check whether
        the len is a specification expression.

2012-05-23  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51055
        PR fortran/45170
        * gfortran.dg/allocate_with_typespec_6.f90: New.

From-SVN: r187811

12 years agogimple.c (gimple_types_compatible_p_1): Remove bogus size handling.
Eric Botcazou [Wed, 23 May 2012 19:07:59 +0000 (19:07 +0000)]
gimple.c (gimple_types_compatible_p_1): Remove bogus size handling.

* gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus
size handling.
(gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise.
(iterative_hash_gimple_type): Adjust comment.
(iterative_hash_canonical_type): Likewise.  Hash the bounds of the
domain for an array type instead of the domain type itself.

From-SVN: r187807

12 years agoPR 53456 clock_gettime fallback for gf_gettime
Janne Blomqvist [Wed, 23 May 2012 18:52:47 +0000 (21:52 +0300)]
PR 53456 clock_gettime fallback for gf_gettime

2012-05-23  Janne Blomqvist  <jb@gcc.gnu.org>

PR fortran/53456
* intrinsics/time_1.h (gf_gettime): Fallback for clock_gettime.

From-SVN: r187806

12 years agoIndex...
Richard Guenther [Wed, 23 May 2012 15:53:59 +0000 (15:53 +0000)]
Index...

Index: gcc/tree-sra.c
===================================================================
--- gcc/tree-sra.c (revision 187800)
+++ gcc/tree-sra.c (working copy)
@@ -2096,9 +2096,12 @@ analyze_access_subtree (struct access *root, struc
    && (TREE_CODE (root->type) != INTEGER_TYPE
        || TYPE_PRECISION (root->type) != root->size)
    /* But leave bitfield accesses alone.  */
-   && (root->offset % BITS_PER_UNIT) == 0)
+   && (TREE_CODE (root->expr) != COMPONENT_REF
+       || !DECL_BIT_FIELD (TREE_OPERAND (root->expr, 1))))
  {
    tree rt = root->type;
+   gcc_assert ((root->offset % BITS_PER_UNIT) == 0
+       && (root->size % BITS_PER_UNIT) == 0);
    root->type = build_nonstandard_integer_type (root->size,
         TYPE_UNSIGNED (rt));
    root->expr = build_ref_for_offset (UNKNOWN_LOCATION,

From-SVN: r187805

12 years agore PR target/53448 ([avr] ignoring __attribute__((aligned(2))))
Georg-Johann Lay [Wed, 23 May 2012 15:25:22 +0000 (15:25 +0000)]
re PR target/53448 ([avr] ignoring __attribute__((aligned(2))))

PR target/53448
* config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1.
* config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use
ASM_OUTPUT_ALIGN.

From-SVN: r187803

12 years agore PR c++/29185 (inconsistent warning: deleting array)
Paolo Carlini [Wed, 23 May 2012 14:19:27 +0000 (14:19 +0000)]
re PR c++/29185 (inconsistent warning: deleting array)

/cp
2012-05-23  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/29185
* decl2.c (delete_sanity): Extend 'deleting array' warning to
any array type.

/testsuite
2012-05-23  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/29185
* g++.dg/warn/delete-array-1.C: New.

From-SVN: r187801

12 years agotree-dfa.c (add_referenced_var_1): Do not add global vars.
Richard Biener [Wed, 23 May 2012 12:25:41 +0000 (12:25 +0000)]
tree-dfa.c (add_referenced_var_1): Do not add global vars.

2012-05-23  Richard Guenther  <rguenther@suse.de>

* tree-dfa.c (add_referenced_var_1): Do not add global vars.
* tree-ssa-live.c (mark_all_vars_used_1): Handle global vars
via the global_unused_vars bitmap.
(remove_unused_locals): Handle global vars in local-decls via
a global_unused_vars bitmap instead of the used flag in the
var annotation.  Simplify global variable handling and removal.

* gcc.dg/torture/pr39074-2.c: Adjust.
* gcc.dg/torture/pr39074.c: Likewise.
* gcc.dg/torture/pta-structcopy-1.c: Likewise.
* gcc.dg/tree-ssa/alias-19.c: Likewise.

From-SVN: r187800

12 years agore PR tree-optimization/53426 (ICE:create_variable_info_for at ../../gcc-trunk/gcc...
Jan Hubicka [Wed, 23 May 2012 09:47:10 +0000 (11:47 +0200)]
re PR tree-optimization/53426 (ICE:create_variable_info_for  at ../../gcc-trunk/gcc/tree-ssa-structalias.c:5581)

PR middle-end/53426
* tree-ssa-structalias.c (create_variable_info_for): Skip constructors from
other partitions.

From-SVN: r187799

12 years agore PR middle-end/53161 (ICE with weakref function and a function which takes vector...
Jan Hubicka [Wed, 23 May 2012 09:23:40 +0000 (11:23 +0200)]
re PR middle-end/53161 (ICE with weakref function and a function which takes vector types)

PR middle-end/53161
* symtab.c (symtab_register_node): Fix ordering issue.

From-SVN: r187798

12 years agore PR libfortran/53445 (No sticky bit on VxWorks - fix chmod.c)
Robert Mason [Wed, 23 May 2012 08:52:09 +0000 (08:52 +0000)]
re PR libfortran/53445 (No sticky bit on VxWorks - fix chmod.c)

2012-05-23  Robert Mason  <rbmj@verizon.net>
            Tobias Burnus  <burnus@net-b.de>

        PR libfortran/53445
        * intrinsics/chmod.c (chmod_func): Ignore S_ISVTX on VxWorks.

Co-Authored-By: Tobias Burnus <burnus@net-b.de>
From-SVN: r187797

12 years agore PR libfortran/53444 (Accommodate non-compliant strerror_r() on VxWorks.)
Tobias Burnus [Wed, 23 May 2012 08:34:06 +0000 (10:34 +0200)]
re PR libfortran/53444 (Accommodate non-compliant strerror_r() on VxWorks.)

2012-05-23  Tobias Burnus  <burnus@net-b.de>

        PR libfortran/53444
        * acinclude.m4 (LIBGFOR_CHECK_STRERROR_R): Add configure checks
        * for
        two- and three-argument versions of strerror_r.
        * configure.ac (LIBGFOR_CHECK_STRERROR_R): Use it.
        * runtime/error.c (gf_strerror): Handle two-argument version
        of strerror_r.
        * config.h.in: Regenerate.
        * configure: Regenerate.

From-SVN: r187796

12 years agoDaily bump.
GCC Administrator [Wed, 23 May 2012 00:18:38 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r187788

12 years agore PR other/53231 (libatomic/tas_n.c:100:10: error: 'ret' undeclared (first use in...
John David Anglin [Tue, 22 May 2012 23:54:32 +0000 (23:54 +0000)]
re PR other/53231 (libatomic/tas_n.c:100:10: error: 'ret' undeclared (first use in this function))

PR other/53231
* tas_n.c (libat_test_and_set): Correct return.  Remove unused variable.

From-SVN: r187783