]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
10 years ago2015-07-01 Richard Biener <rguenther@suse.de>
rguenth [Wed, 1 Jul 2015 07:36:25 +0000 (07:36 +0000)] 
2015-07-01  Richard Biener <rguenther@suse.de>

* genmatch.c (expr::gen_transform): Shortcut re-simplifying
of converts to avoid uninteresting noise from the conversion
simplifying patterns.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225223 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * gcc.target/i386/pr66691.c: Update PR number.
uros [Wed, 1 Jul 2015 06:43:18 +0000 (06:43 +0000)] 
* gcc.target/i386/pr66691.c: Update PR number.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225222 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-30 Sandra Loosemore <sandra@codesourcery.com>
sandra [Wed, 1 Jul 2015 02:15:32 +0000 (02:15 +0000)] 
2015-06-30  Sandra Loosemore <sandra@codesourcery.com>

gcc/
* config/c6x/c6x.c (try_rename_operands): Do not depend on
gcc_assert evaluating its argument for side-effect.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225221 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoFix PR c++/66686 (dependent template template substitution)
ppalka [Wed, 1 Jul 2015 01:07:35 +0000 (01:07 +0000)] 
Fix PR c++/66686 (dependent template template substitution)

gcc/cp/ChangeLog:

PR c++/66686
* pt.c (coerce_template_template_parm) [PARM_DECL]: Don't
return 0 if tsubst returns a dependent type.

gcc/testsuite/ChangeLog:

PR c++/66686
* g++.dg/template/pr66686.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225220 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoPR target/64833
kkojima [Wed, 1 Jul 2015 01:02:48 +0000 (01:02 +0000)] 
PR target/64833
* [SH] Set length of casesi_worker_1 insn to 8 when flag_pic is set.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225219 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoDaily bump.
gccadmin [Wed, 1 Jul 2015 00:16:11 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225218 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * lto-streamer-out.c (class DFS): Adjust hash_scc method.
ebotcazou [Tue, 30 Jun 2015 21:05:02 +0000 (21:05 +0000)] 
* lto-streamer-out.c (class DFS): Adjust hash_scc method.
(DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
(hash_scc): Add this_ref_p and ref_p parameters and pass them
to the inner DFS walk.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225212 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agogcc/
rsandifo [Tue, 30 Jun 2015 20:57:21 +0000 (20:57 +0000)] 
gcc/
* target-insns.def (jump): New targetm instruction pattern.
* bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
instead of gen_jump.
(fix_up_crossing_landing_pad): Likewise.
(add_labels_and_missing_jumps): Likewise.
(fix_crossing_conditional_branches): Likewise.
* cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
(force_nonfallthru_and_redirect): Likewise.
* cse.c (cse_insn): Likewise.
* expmed.c (expand_divmod): Likewise.
* expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
* haifa-sched.c (init_before_recovery): Likewise.
(sched_create_recovery_edges): Likewise.
* ifcvt.c (find_cond_trap): Likewise.
* optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
(expand_float, expand_fix): Likewise.
* stmt.c (emit_jump): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225211 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agogcc/
rsandifo [Tue, 30 Jun 2015 20:56:43 +0000 (20:56 +0000)] 
gcc/
* defaults.h (HAVE_load_multiple, gen_load_multiple)
(HAVE_store_multiple, gen_store_multiple): Delete.
* target-insns.def (load_multiple, store_multiple): New targetm
instruction patterns.
* expr.c (move_block_to_reg, move_block_from_reg): Use them instead
of HAVE_*/gen_* interface.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225210 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agogcc/
rsandifo [Tue, 30 Jun 2015 20:56:14 +0000 (20:56 +0000)] 
gcc/
* defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
(HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
(gen_mem_signal_fence): Delete.
* target-insns.def (mem_signal_fence, mem_thread_fence)
(memory_barrier): New targetm instruction patterns.
* optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
interface.
(expand_mem_signal_fence): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225209 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agogcc/
rsandifo [Tue, 30 Jun 2015 20:55:13 +0000 (20:55 +0000)] 
gcc/
* defaults.h (HAVE_epilogue, gen_epilogue): Delete.
* target-insns.def (epilogue, prologue, sibcall_prologue): New
targetm instruction patterns.
* alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
interface.
* calls.c (expand_call): Likewise.
* cfgrtl.c (cfg_layout_finalize): Likewise.
* df-scan.c (df_get_entry_block_def_set): Likewise.
(df_get_exit_block_use_set): Likewise.
* dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
* final.c (final_start_function): Likewise.
* function.c (thread_prologue_and_epilogue_insns): Likewise.
(reposition_prologue_and_epilogue_notes): Likewise.
* reorg.c (find_end_label): Likewise.
* toplev.c (process_options): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225208 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agojit: add switch statements
dmalcolm [Tue, 30 Jun 2015 20:39:50 +0000 (20:39 +0000)] 
jit: add switch statements

gcc/ChangeLog:
* typed-splay-tree.h: New file.

gcc/jit/ChangeLog:
* docs/cp/topics/functions.rst (Blocks): Add switch statements to
list of ways to terminate a block.
(gccjit::block::end_with_switch): Add function description.
(gccjit::case_): Add class.
(gccjit::context::new_case): Add function description.
* docs/cp/topics/objects.rst: Add "case_" to class hierarchy.
* docs/topics/compatibility.rst (LIBGCCJIT_ABI_3): New.
* docs/topics/functions.rst (Blocks): Add switch statements to
list of ways to terminate a block.
(gcc_jit_block_end_with_switch): Add function description.
(gcc_jit_case): Add type.
(gcc_jit_context_new_case): Add function description.
(gcc_jit_case_as_object): Add function description.
* docs/topics/objects.rst: Add gcc_jit_case to class hierarchy.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-common.h (gcc::jit::recording::case_): Add forward decl.
(gcc::jit::playback::case_): Add forward decl.
* jit-playback.c (add_case): New function.
(gcc::jit::playback::block::add_switch): New function.
* jit-playback.h (gcc::jit::playback::case_): New struct.
(gcc::jit::playback::block::get_function): New method.
(gcc::jit::playback::block::add_switch): New method.
* jit-recording.c: Within namespace gcc::jit...
(recording::context::new_case): New method.
(recording::function::validate): Update for change to
get_successor_blocks.
(recording::block::end_with_switch): New method.
(recording::block::get_successor_blocks): Update to support an
arbitrary number of successor blocks.
(recording::block::dump_edges_to_dot): Likewise.
(memento_of_new_rvalue_from_const <int>::get_wide_int): New.
(memento_of_new_rvalue_from_const <long>::get_wide_int): New.
(memento_of_new_rvalue_from_const <double>::get_wide_int): New.
(memento_of_new_rvalue_from_const <void *>::get_wide_int): New.
(recording::statement::get_successor_blocks): Update to support an
arbitrary number of successor blocks.
(recording::conditional::get_successor_blocks): Likewise.
(recording::jump::get_successor_blocks): Likewise.
(recording::return_::get_successor_blocks): Likewise.
(recording::case_::write_reproducer): New.
(recording::case_::make_debug_string): New.
(recording::switch_::switch_): New.
(recording::switch_::replay_into): New.
(recording::switch_::get_successor_blocks): New.
(recording::switch_::make_debug_string): New.
(recording::switch_::write_reproducer): New.
* jit-recording.h: Within namespace gcc::jit::recording...
(context::new_case): New.
(rvalue::is_constant): New.
(rvalue::get_wide_int): New.
(block::end_with_switch): New.
(block::get_successor_blocks): Update to support an arbitrary
number of successor blocks.
(memento_of_new_rvalue_from_const::is_constant): New.
(memento_of_new_rvalue_from_const::get_wide_int): New.
(statement::get_successor_blocks): Update to support an arbitrary
number of successor blocks.
(conditional::get_successor_blocks): Likewise.
(jump::get_successor_blocks): Likewise.
(return_::get_successor_blocks): Likewise.
(case_): New subclass of memento.
(switch_): New subclass of statement.
* libgccjit++.h (gccjit::case_): New subclass of gccjit::object.
(gccjit::context::new_case): New method.
(gccjit::block::end_with_switch): New method.
(gccjit::case_::case): New ctors.
(gccjit::case_::get_inner_case): New method.
* libgccjit.c: Include "typed-splay-tree.h"
(struct gcc_jit_case): New.
(gcc_jit_context_new_case): New function.
(gcc_jit_case_as_object): New function.
(valid_dest_for_switch): New function.
(valid_case_for_switch): New function.
(class api_call_validator): New class.
(class case_range_validator): New class.
(case_range_validator::case_range_validator): New.
(case_range_validator::validate): New.
(case_range_validator::case_compare): New.
(case_range_validator::get_wide_int): new.
(gcc_jit_block_end_with_switch): New.
* libgccjit.h: Add gcc_jit_case to class hierarchy comment.
(gcc_jit_case): New typedef.
(gcc_jit_context_new_case): New function.
(gcc_jit_case_as_object): New function.
(gcc_jit_block_end_with_switch): New function.
(LIBGCCJIT_HAVE_SWITCH_STATEMENTS): New.
* libgccjit.map: Add gcc_jit_block_end_with_switch,
gcc_jit_case_as_object and gcc_jit_context_new_case.

gcc/testsuite/ChangeLog:
* jit.dg/all-non-failing-tests.h: Add test-switch.c.
* jit.dg/test-error-gcc_jit_block_end_with_switch-NULL-case.c: New
testcase.
* jit.dg/test-error-gcc_jit_block_end_with_switch-mismatching-case-type.c:
New testcase.
* jit.dg/test-error-gcc_jit_block_end_with_switch-overlapping-ranges.c:
New testcase.
* jit.dg/test-error-gcc_jit_context_new_case-non-const-label.c:
New testcase.
* jit.dg/test-error-gcc_jit_context_new_case-non-integer-type.c:
New testcase.
* jit.dg/test-error-gcc_jit_context_new_case-reversed-endpoints.c:
New testcase.
* jit.dg/test-switch.c: New testcase.
* jit.dg/test-switch.cc: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225207 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoPR jit/66546: Add gcc_jit_context_set_bool_allow_unreachable_blocks
dmalcolm [Tue, 30 Jun 2015 19:38:12 +0000 (19:38 +0000)] 
PR jit/66546: Add gcc_jit_context_set_bool_allow_unreachable_blocks

gcc/jit/ChangeLog:
PR jit/66546
* docs/cp/topics/contexts.rst
(gccjit::context::set_bool_allow_unreachable_blocks): New.
* docs/topics/compatibility.rst (LIBGCCJIT_ABI_2): New.
* docs/topics/contexts.rst (Options): Add notes discussing the
transition from enums to entrypoints for new options.
(gcc_jit_context_set_bool_allow_unreachable_blocks): New.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-common.h (gcc::jit::inner_bool_option): New enum.
* jit-recording.c: Within namespace gcc::jit...
(recording::context::context): Handle m_inner_bool_options.
(recording::context::set_inner_bool_option): New.
(inner_bool_option_reproducer_strings): New.
(recording::context::log_all_options): Log the "inner" bool
options.
(recording::context::log_inner_bool_option): New.
(recording::context::dump_reproducer_to_file): Write initializers
for "inner" bool options.
(recording::function::validate): Don't check for block
reachability if INNER_BOOL_OPTION_ALLOW_UNREACHABLE_BLOCKS is set.
* jit-recording.h: Within namespace gcc::jit...
(recording::context::set_inner_bool_option): New.
(recording::context::get_inner_bool_option): New.
(recording::context::log_inner_bool_option): New.
(recording::context::m_inner_bool_options): New.
* libgccjit++.h
(gccjit::context::set_bool_allow_unreachable_blocks): New.
* libgccjit.c
(gcc_jit_context_set_bool_allow_unreachable_blocks): New.
* libgccjit.h: Add note about options present in the
initial release of libgccjit.
(gcc_jit_context_set_bool_allow_unreachable_blocks): New API
entrypoint.
(LIBGCCJIT_HAVE_gcc_jit_context_set_bool_allow_unreachable_blocks):
New macro.
* libgccjit.map (LIBGCCJIT_ABI_2): New, containing...
(gcc_jit_context_set_bool_allow_unreachable_blocks): ...this new
entrypoint.

gcc/testsuite/ChangeLog:
PR jit/66546
* jit.dg/all-non-failing-tests.h: Add note about
test-validly-unreachable-block.c.
* jit.dg/test-validly-unreachable-block.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225206 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoPR jit/66628: add gcc_jit_context_add_command_line_option
dmalcolm [Tue, 30 Jun 2015 19:27:19 +0000 (19:27 +0000)] 
PR jit/66628: add gcc_jit_context_add_command_line_option

gcc/jit/ChangeLog:
PR jit/66628
* docs/cp/topics/contexts.rst (Additional command-line options):
New section.
* docs/topics/compatibility.rst: New file.
* docs/topics/contexts.rst (Additional command-line options): New
section.
* docs/topics/index.rst: Add compatibility.rst.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-playback.c (make_fake_args): Add call to
append_command_line_options.
* jit-recording.c: Within namespace gcc::jit...
(recording::context::~context): Free the optnames within
m_command_line_options.
(recording::context::set_bool_option): Likewise.
(recording::context::add_command_line_option): New method.
(recording::context::append_command_line_options): New method.
(recording::context::dump_reproducer_to_file): Add command-line
options.
* jit-recording.h: Within namespace gcc::jit...
(recording::context::add_command_line_option): New method.
(recording::context::append_command_line_options): New method.
(recording::context::m_command_line_options): New field.
* libgccjit++.h (gccjit::context::add_command_line_option): New
method.
* libgccjit.c (gcc_jit_context_add_command_line_option): New API
entrypoint.
* libgccjit.h (gcc_jit_context_add_command_line_option): New API
entrypoint.
(LIBGCCJIT_HAVE_gcc_jit_context_add_command_line_option): New
macro.
* libgccjit.map: Put existing symbols within LIBGCCJIT_ABI_0; add
LIBGCCJIT_ABI_1 and gcc_jit_context_add_command_line_option.

gcc/testsuite/ChangeLog:
PR jit/66628
* jit.dg/all-non-failing-tests.h: Add note about
test-extra-options.c.
* jit.dg/test-extra-options.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225205 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agofixes to gcc_jit_context_dump_reproducer_to_file
dmalcolm [Tue, 30 Jun 2015 19:18:34 +0000 (19:18 +0000)] 
fixes to gcc_jit_context_dump_reproducer_to_file

gcc/jit/ChangeLog:
* jit-recording.c
(gcc::jit::recording::context::dump_reproducer_to_file):
Add pragma to generated reproducers to disable -Wunused-variable.
Fix handling of NULL string options.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225204 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agojit: fix some .rst issues in docs
dmalcolm [Tue, 30 Jun 2015 19:09:31 +0000 (19:09 +0000)] 
jit: fix some .rst issues in docs

gcc/jit/ChangeLog:
* docs/cp/topics/expressions.rst: Remove stray semicolon.
* docs/cp/topics/functions.rst: Remove stray backslash.
* docs/_build/texinfo/libgccjit.texi: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225203 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoAdd missed test
vmakarov [Tue, 30 Jun 2015 17:44:00 +0000 (17:44 +0000)] 
Add missed test

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225201 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-30 Vladimir Makarov <vmakarov@redhat.com>
vmakarov [Tue, 30 Jun 2015 17:40:55 +0000 (17:40 +0000)] 
2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>

PR debug/66691
* lra-int.h (lra_substitute_pseudo): Add a parameter.
(lra_substitute_pseudo_within_insn): Ditto.
* lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
of constant.
(lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
to lra_substitute_pseudo.
* lra-lives.c (process_bb_lives): Add an argument to
lra_substitute_pseudo_within_insn call.
* lra-constraints.c (inherit_reload_reg, split_reg): Add an
argument to lra_substitute_pseudo and
lra_substitute_pseudo_within_insn calls.
(remove_inheritance_pseudos, undo_optional_reloads): Ditto.

2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>

PR debug/66691
* gcc.target/i386/pr66691.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225200 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoIA MCU psABI support: testsuite
hjl [Tue, 30 Jun 2015 16:46:45 +0000 (16:46 +0000)] 
IA MCU psABI support: testsuite

We run Intel MCU psABI tests on Linux/ia32 with -miamcu.  Since Intel
MCU psABI has a different calling convention, the only Linux libc function
allowed is "abort".

asm-support.S contains some support functions as well as a subset of
soft-fp, which is written in assembly with x87 instructions, to provide
intrinsics needed by -miamcu so that Intel MCU psABI tests can run on
Linux.

* gcc.target/i386/iamcu/abi-iamcu.exp: New file.
* gcc.target/i386/iamcu/args.h: Likewise.
* gcc.target/i386/iamcu/asm-support.S: Likewise.
* gcc.target/i386/iamcu/defines.h: Likewise.
* gcc.target/i386/iamcu/macros.h: Likewise.
* gcc.target/i386/iamcu/test_3_element_struct_and_unions.c: Likewise.
* gcc.target/i386/iamcu/test_basic_64bit_returning.c: Likewise.
* gcc.target/i386/iamcu/test_basic_alignment.c: Likewise.
* gcc.target/i386/iamcu/test_basic_array_size_and_align.c: Likewise.
* gcc.target/i386/iamcu/test_basic_returning.c: Likewise.
* gcc.target/i386/iamcu/test_basic_sizes.c: Likewise.
* gcc.target/i386/iamcu/test_basic_struct_size_and_align.c: Likewise.
* gcc.target/i386/iamcu/test_basic_union_size_and_align.c: Likewise.
* gcc.target/i386/iamcu/test_bitfields.c: Likewise.
* gcc.target/i386/iamcu/test_complex_returning.c: Likewise.
* gcc.target/i386/iamcu/test_passing_floats.c: Likewise.
* gcc.target/i386/iamcu/test_passing_integers.c: Likewise.
* gcc.target/i386/iamcu/test_passing_structs.c: Likewise.
* gcc.target/i386/iamcu/test_passing_structs_and_unions.c: Likewise.
* gcc.target/i386/iamcu/test_passing_unions.c: Likewise.
* gcc.target/i386/iamcu/test_struct_returning.c: Likewise.
* gcc.target/i386/iamcu/test_varargs.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225199 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoIA MCU psABI support: changes to libraries
hjl [Tue, 30 Jun 2015 16:42:07 +0000 (16:42 +0000)] 
IA MCU psABI support: changes to libraries

Patch in the bottom adds support of IA MCU psABI to libgcc (enables
soft-fp) and libdecnumber (enables it for IA MCU).

config/

* dfp.m4 (enable_decimal_float): Also set to yes for
i?86*-*-elfiamcu target.

gcc/

* configure: Regenerated.

libdecnumber/

* configure: Regenerated.

libgcc/

* config.host: Support i[34567]86-*-elfiamcu target.
* config/t-softfp-sfdftf: New file.
* config/i386/32/t-iamcu: Likewise.
* configure: Regenerated.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225198 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoIA MCU psABI support: GCC changes
hjl [Tue, 30 Jun 2015 16:40:19 +0000 (16:40 +0000)] 
IA MCU psABI support: GCC changes

This patch introduces basic IA MCU psABI support into GCC.

* configure.ac (ospace_frag): Enable for i?86*-*-elfiamcu
target.
* configure: Regenerate.

gcc/

* config.gcc: Support i[34567]86-*-elfiamcu target.
* config/i386/iamcu.h: New.
* config/i386/i386.opt: Add -miamcu.
* doc/invoke.texi: Document -miamcu.
* common/config/i386/i386-common.c  (ix86_handle_option): Turn
off x87/MMX/SSE/AVX codegen for -miamcu.
* config/i386/i386-c.c (ix86_target_macros_internal): Define
__iamcu/__iamcu__ for -miamcu.
* config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
(BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
* config/i386/i386.c (ix86_option_override_internal): Ignore and
warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
MCU by default.  Default long double to 64-bit for Intel MCU.
Turn on -freg-struct-return for Intel MCU.  Issue an error when
-miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
AVX is turned on.
(function_arg_advance_32): Pass value whose size is no larger
than 8 bytes in registers for Intel MCU.
(function_arg_32): Likewise.
(ix86_return_in_memory): Return value whose size is no larger
than 8 bytes in registers for Intel MCU.
(iamcu_alignment): New function.
(ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
true.
(ix86_local_alignment): Don't increase alignment for Intel MCU.
(x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
true.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225197 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * match.pd (~x | x): Don't use tree_nop_conversion_p. Build
mpolacek [Tue, 30 Jun 2015 16:36:44 +0000 (16:36 +0000)] 
* match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
the final expression with the operand's type and then convert
it to the type of the expression.

* gcc.dg/fold-ior-3.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225196 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * match.pd (X - (X / Y) * Y): Use convert1 and convert2. Convert
mpolacek [Tue, 30 Jun 2015 16:35:16 +0000 (16:35 +0000)] 
* match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
both operands of the resulting expression.

* gcc.dg/fold-minus-6.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225195 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoRun testsuite/libgomp.oacc-c++/c++.exp at -O2 by default
vries [Tue, 30 Jun 2015 15:43:55 +0000 (15:43 +0000)] 
Run testsuite/libgomp.oacc-c++/c++.exp at -O2 by default

2015-06-30  Tom de Vries  <tom@codesourcery.com>

* testsuite/libgomp.oacc-c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
already set.  Use DEFAULT_CFLAGS in dg-runtest.
* testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Remove dg-options
"-O2".

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225194 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR debug/66653
jason [Tue, 30 Jun 2015 15:40:38 +0000 (15:40 +0000)] 
PR debug/66653
* decl2.c (is_late_template_attribute): True for tls_model.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225193 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR debug/66653
jason [Tue, 30 Jun 2015 14:31:36 +0000 (14:31 +0000)] 
PR debug/66653
* cp-tree.h (CP_DECL_THREAD_LOCAL_P): New.
(DECL_GNU_TLS_P): Use DECL_LANG_SPECIFIC field.
(SET_DECL_GNU_TLS_P): New.
* call.c (make_temporary_var_for_ref_to_temp): Use
CP_DECL_THREAD_LOCAL_P.
(set_up_extended_ref_temp): Likewise.
* decl.c (duplicate_decls, expand_static_init): Likewise.
(redeclaration_error_message, grokvardecl): Likewise.
(start_decl, register_dtor_fn, grokdeclarator): Likewise.
* decl2.c (get_guard, var_needs_tls_wrapper): Likewise.
(handle_tls_init): Likewise.
* pt.c (tsubst_decl, tsubst_copy_and_build): Likewise.
* semantics.c (finish_id_expression): Likewise.
(handle_omp_array_sections_1, finish_omp_clauses): Likewise.
(finish_omp_threadprivate): Likewise.
* tree.c (decl_storage_duration): Likewise.
* cp-gimplify.c (omp_var_to_track): Likewise.
(cp_genericize_r): Check that it matches DECL_THREAD_LOCAL_P.
* lex.c (retrofit_lang_decl): Return if DECL_LANG_SPECIFIC is
already set.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225192 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * doc/Makefile.am (stamp-pdf-doxygen): Grep for LaTeX errors in log.
redi [Tue, 30 Jun 2015 14:22:14 +0000 (14:22 +0000)] 
* doc/Makefile.am (stamp-pdf-doxygen): Grep for LaTeX errors in log.
* doc/Makefile.in: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225191 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * include/bits/stl_pair.h: Replace class keyword with typename.
redi [Tue, 30 Jun 2015 13:35:36 +0000 (13:35 +0000)] 
* include/bits/stl_pair.h: Replace class keyword with typename.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225190 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-30 Ville Voutilainen <ville.voutilainen@gmail.com>
redi [Tue, 30 Jun 2015 13:26:49 +0000 (13:26 +0000)] 
2015-06-30  Ville Voutilainen  <ville.voutilainen@gmail.com>

Implement N4387, "Improving pair and tuple", and LWG 2367.

* include/bits/stl_pair.h (_ConstructiblePair,
_ImplicitlyConvertiblePair, _MoveConstructiblePair,
_ImplicitlyMoveConvertiblePair): New.
(pair()): Constrain it.
(pair(const _T1&, const _T2&), pair(const pair<_U1, _U2>&),
pair(_U1&&, const _T2&), pair(const _T1&, _U2&&), pair(_U1&&, _U2&&),
pair(pair<_U1, _U2>&&)): Make conditionally explicit.
* include/std/tuple (_TC, tuple::_TC2, tuple::TCC, tuple::TMC): New.
(tuple()): Constrain it.
(tuple(const _UElements&...), tuple(_UElements&&...),
tuple(const tuple<_UElements...>&), tuple(tuple<_UElements...>&&),
tuple(allocator_arg_t, const _Alloc&, const _UElements&...),
tuple(allocator_arg_t, const _Alloc&, _UElements&&...),
tuple(allocator_arg_t, const _Alloc&, const tuple<_UElements...>&),
tuple(allocator_arg_t, const _Alloc&, tuple<_UElements...>&&),
tuple(const pair<_U1, _U2>&), tuple(pair<_U1, _U2>&&),
tuple(allocator_arg_t, const _Alloc&, const pair<_U1, _U2>&),
tuple(allocator_arg_t, const _Alloc&, pair<_U1, _U2>&&)): Make
conditionally explicit.
* include/experimental/functional (__boyer_moore_array_base): Name
array type explicitly instead of using an empty braced-init-list.
* testsuite/20_util/pair/cons/explicit_construct.cc: New.
* testsuite/20_util/pair/piecewise.cc: Use piecewise_construct.
* testsuite/20_util/pair/requirements/dr2367.cc: New.
* testsuite/20_util/tuple/cons/explicit_construct.cc: New.
* testsuite/20_util/tuple/requirements/dr2367.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225189 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agolibcpp:
emsr [Tue, 30 Jun 2015 12:58:48 +0000 (12:58 +0000)] 
libcpp:

2015-06-30  Edward Smith-Rowland  <3dw4rd@verizon.net>

Implement N4197 - Adding u8 character literals
* include/cpplib.h (UTF8CHAR, UTF8CHAR_USERDEF): New cpp tokens;
(struct cpp_options): Add utf8_char_literals.
* init.c (struct lang_flags): Add utf8_char_literals;
(struct lang_flags lang_defaults): Add column for utf8_char_literals.
* macro.c (stringify_arg()): Treat CPP_UTF8CHAR token;
* expr.c (cpp_userdef_char_remove_type(), cpp_userdef_char_add_type()):
Treat CPP_UTF8CHAR_USERDEF, CPP_UTF8CHAR tokens;
(cpp_userdef_char_p()): Treat CPP_UTF8CHAR_USERDEF token;
(eval_token(), _cpp_parse_expr()): Treat CPP_UTF8CHAR token.
* lex.c (lex_string(), _cpp_lex_direct()): Include CPP_UTF8CHAR tokens.
* charset.c (converter_for_type(), cpp_interpret_charconst()):
Treat CPP_UTF8CHAR token.

gcc/c-family:

2015-06-30  Edward Smith-Rowland  <3dw4rd@verizon.net>

Implement N4197 - Adding u8 character literals
* c-family/c-ada-spec.c (print_ada_macros()): Treat CPP_UTF8CHAR
like CPP_CHAR.
* c-family/c-common.c (c_parse_error()): print CPP_UTF8CHAR
and CPP_UTF8CHAR_USERDEF tokens.
* c-family/c-lex.c (c_lex_with_flags()): Treat CPP_UTF8CHAR_USERDEF
and CPP_UTF8CHAR tokens; (lex_charconst()): Treat CPP_UTF8CHAR token.

gcc/cp:

2015-06-30  Edward Smith-Rowland  <3dw4rd@verizon.net>

Implement N4197 - Adding u8 character literals
* parser.c (cp_parser_primary_expression()): Treat CPP_UTF8CHAR
and CPP_UTF8CHAR_USERDEF tokens;
(cp_parser_parenthesized_expression_list()): Treat CPP_UTF8CHAR token.

gcc/testsuite:

2015-06-30  Edward Smith-Rowland  <3dw4rd@verizon.net>

Implement N4197 - Adding u8 character literals
* g++.dg/cpp1z/utf8.C: New.
* g++.dg/cpp1z/utf8-neg.C: New.
* g++.dg/cpp1z/udlit-utf8char.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225185 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-30 Richard Biener <rguenther@suse.de>
rguenth [Tue, 30 Jun 2015 12:54:23 +0000 (12:54 +0000)] 
2015-06-30  Richard Biener  <rguenther@suse.de>

* fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
(X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
* match.pd: ... to patterns here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225184 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * configure: Regenerate.
redi [Tue, 30 Jun 2015 12:53:14 +0000 (12:53 +0000)] 
* configure: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225183 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-30 Richard Biener <rguenther@suse.de>
rguenth [Tue, 30 Jun 2015 12:52:55 +0000 (12:52 +0000)] 
2015-06-30  Richard Biener  <rguenther@suse.de>

PR tree-optimization/66704
* tree-vect-data-refs.c (vect_setup_realignment): Use
make_ssa_name for non-SSA name source.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225182 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoRun testsuite/libgomp.c++/c++.exp at -O2 by default
vries [Tue, 30 Jun 2015 12:22:04 +0000 (12:22 +0000)] 
Run testsuite/libgomp.c++/c++.exp at -O2 by default

2015-06-30  Tom de Vries  <tom@codesourcery.com>

* testsuite/libgomp.c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
already set.  Use DEFAULT_CFLAGS in dg-runtest.
* testsuite/libgomp.c++/atomic-16.C: Remove dg-options "-O2 -fopenmp".
* testsuite/libgomp.c++/pr64824.C: Same.
* testsuite/libgomp.c++/pr64868.C: Same.
* testsuite/libgomp.c++/pr66199-1.C: Same.
* testsuite/libgomp.c++/pr66199-2.C: Same.
* testsuite/libgomp.c++/target-2.C: Same.
* testsuite/libgomp.c++/for-7.C: Use dg-additional-options for
-std=<standard> option.
* testsuite/libgomp.c++/udr-11.C: Same.
* testsuite/libgomp.c++/udr-12.C: Same.
* testsuite/libgomp.c++/udr-13.C: Same.
* testsuite/libgomp.c++/udr-14.C: Same.
* testsuite/libgomp.c++/udr-15.C: Same.
* testsuite/libgomp.c++/udr-16.C: Same.
* testsuite/libgomp.c++/udr-17.C: Same.
* testsuite/libgomp.c++/udr-18.C: Same.
* testsuite/libgomp.c++/udr-19.C: Same.
* testsuite/libgomp.c++/atomic-1.C: Remove dg-options "-O2".
* testsuite/libgomp.c++/simd-1.C: Same.
* testsuite/libgomp.c++/simd-2.C: Same.
* testsuite/libgomp.c++/simd-3.C: Same.
* testsuite/libgomp.c++/simd-4.C: Same.
* testsuite/libgomp.c++/simd-5.C: Same.
* testsuite/libgomp.c++/simd-6.C: Same.
* testsuite/libgomp.c++/simd-7.C: Same.
* testsuite/libgomp.c++/simd-8.C: Same.
* testsuite/libgomp.c++/simd-9.C: Same.
* testsuite/libgomp.c++/simd10.C: Same.
* testsuite/libgomp.c++/simd11.C: Same.
* testsuite/libgomp.c++/simd12.C: Same.
* testsuite/libgomp.c++/simd13.C: Same.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225181 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR middle-end/66702
jakub [Tue, 30 Jun 2015 12:12:42 +0000 (12:12 +0000)] 
PR middle-end/66702
* omp-low.c (simd_clone_adjust): Handle addressable linear
or uniform parameters or non-gimple type uniform parameters.

* testsuite/libgomp.c++/pr66702-1.C: New test.
* testsuite/libgomp.c++/pr66702-2.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225179 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-30 Richard Biener <rguenther@suse.de>
rguenth [Tue, 30 Jun 2015 11:58:48 +0000 (11:58 +0000)] 
2015-06-30  Richard Biener  <rguenther@suse.de>

* fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
* match.pd: ... here.
Add a few cases of A - B -> A + (-B) when B "easily" negates.
Move (x & y) | x -> x and friends before
(x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225178 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * gcc.dg/fold-ior-2.c (fn4): Swap operands.
mpolacek [Tue, 30 Jun 2015 11:05:13 +0000 (11:05 +0000)] 
* gcc.dg/fold-ior-2.c (fn4): Swap operands.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225174 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * config/sparc/leon.md (leon_load): Enable for all LEON variants if
ebotcazou [Tue, 30 Jun 2015 11:05:11 +0000 (11:05 +0000)] 
* config/sparc/leon.md (leon_load): Enable for all LEON variants if
-mfix-ut699 is not specified.
(leon3_load): Rename into...
(ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
is specified.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225173 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoAdd parloops-exit-first-loop-alt-{5,6,7}.c
vries [Tue, 30 Jun 2015 11:00:32 +0000 (11:00 +0000)] 
Add parloops-exit-first-loop-alt-{5,6,7}.c

2015-06-30  Tom de Vries  <tom@codesourcery.com>

* gcc.dg/parloops-exit-first-loop-alt-5.c: New test.
* gcc.dg/parloops-exit-first-loop-alt-6.c: New test.
* gcc.dg/parloops-exit-first-loop-alt-7.c: New test.
* gcc.dg/parloops-exit-first-loop-alt.c: Update comment.

* testsuite/libgomp.c/parloops-exit-first-loop-alt-5.c: New test.
* testsuite/libgomp.c/parloops-exit-first-loop-alt-6.c: New test.
* testsuite/libgomp.c/parloops-exit-first-loop-alt-7.c: New test.
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Update comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225172 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * fold-const.c (fold_binary_loc): Move ~X | X folding ...
mpolacek [Tue, 30 Jun 2015 09:02:00 +0000 (09:02 +0000)] 
* fold-const.c (fold_binary_loc): Move ~X | X folding ...
* match.pd: ... here.

* gcc.dg/fold-ior-2.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225164 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-30 Richard Biener <rguenther@suse.de>
rguenth [Tue, 30 Jun 2015 08:52:48 +0000 (08:52 +0000)] 
2015-06-30  Richard Biener  <rguenther@suse.de>

* target-insns.def (canonicalize_funcptr_for_compare): Add.
* fold-const.c (build_range_check): Replace uses of
HAVE_canonicalize_funcptr_for_compare.
(fold_widened_comparison): Likewise.
(fold_sign_changed_comparison): Likewise.
* dojump.c: Include "target.h".
(do_compare_and_jump): Replace uses of
HAVE_canonicalize_funcptr_for_compare and
gen_canonicalize_funcptr_for_compare.
* expr.c (do_store_flag): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225163 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoUse max_loop_iterations in transform_to_exit_first_loop_alt
vries [Tue, 30 Jun 2015 08:35:57 +0000 (08:35 +0000)] 
Use max_loop_iterations in transform_to_exit_first_loop_alt

2015-06-30  Tom de Vries  <tom@codesourcery.com>

PR tree-optimization/66652
* tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
max_loop_iterations to determine if nit + 1 overflows.

* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (f): Rewrite
using restrict pointers.
(main): Add arguments to calls to f.
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.

* gcc.dg/parloops-exit-first-loop-alt-pr66652.c: New test.
* gcc.dg/parloops-exit-first-loop-alt-3.c (f):  Rewrite using restrict
pointers.
* gcc.dg/parloops-exit-first-loop-alt.c: Same.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225162 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-30 Richard Biener <rguenther@suse.de>
rguenth [Tue, 30 Jun 2015 08:35:30 +0000 (08:35 +0000)] 
2015-06-30  Richard Biener  <rguenther@suse.de>

* tree-vrp.c (register_edge_assert_for_2): Also register
asserts for dominating conversion results.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225161 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * lex.c (search_line_sse42) [__GCC_ASM_FLAG_OUTPUTS__]: New main
uros [Tue, 30 Jun 2015 08:26:57 +0000 (08:26 +0000)] 
* lex.c (search_line_sse42) [__GCC_ASM_FLAG_OUTPUTS__]: New main
loop using asm flag outputs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225160 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
amker [Tue, 30 Jun 2015 02:39:54 +0000 (02:39 +0000)] 
* tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
field in struct iv.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225159 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR target/66509
mrs [Tue, 30 Jun 2015 02:10:43 +0000 (02:10 +0000)] 
PR target/66509
* configure.ac: Fix filds and fildq test for 64-bit.
* configure: Regenerated.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225158 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoDaily bump.
gccadmin [Tue, 30 Jun 2015 00:16:13 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225157 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
nathan [Mon, 29 Jun 2015 23:23:10 +0000 (23:23 +0000)] 
* config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
(nvptx_reorg): Here.  Keep the non-subreg pieces.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225154 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago/cp
paolo [Mon, 29 Jun 2015 22:02:08 +0000 (22:02 +0000)] 
/cp
2015-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/65977
* decl.c (grokfndecl): Allow constexpr declarations of friend
template specializations.

/testsuite
2015-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/65977
* g++.dg/cpp0x/constexpr-friend-3.C: New.
* g++.dg/cpp0x/constexpr-friend-2.C: Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225148 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoUse PIE_SPEC/NO_PIE_SPEC for crtend.o/crtendS.o
hjl [Mon, 29 Jun 2015 20:50:57 +0000 (20:50 +0000)] 
Use PIE_SPEC/NO_PIE_SPEC for crtend.o/crtendS.o

We need to link with crtend.o and crtendS.o properly for GCC configured
to generate PIE by default.

* config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225144 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-29 François Dumont <fdumont@gcc.gnu.org>
fdumont [Mon, 29 Jun 2015 20:17:56 +0000 (20:17 +0000)] 
2015-06-29  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/stl_iterator_base_types.h (_Iter_base): Limit definition
to pre-C++11 mode.
* include/debug/functions.h
(__gnu_debug::__valid_range, __gnu_debug::__base): Move...
* include/debug/safe_iterator.h
(__gnu_debug::_Sequence_traits): New.
(__gnu_debug::__get_distance_from_begin): New.
(__gnu_debug::__get_distance_to_end): New.
(__gnu_debug::_Safe_iterator<>::_M_valid_range): Expose iterator range
distance information. Add optional check_dereferenceable parameter,
default true.
(__gnu_debug::_Distance_precision, __gnu_debug::__get_distance): Move
default definition...
(__gnu_debug::__get_distance): New overload for _Safe_iterator.
(__gnu_debug::__unsafe): Likewise.
* include/debug/helper_functions.h: ...here. New.
(__gnu_debug::__unsafe): New helper function to remove safe iterator
layer.
* include/debug/stl_iterator.h: New. Include latter.
* include/bits/stl_iterator.h: Include latter in debug mode.
* include/debug/stl_iterator.tcc: Adapt.
* include/debug/safe_local_iterator.h (__gnu_debug::__get_distance): Add
overload for _Safe_local_iterator.
(__gnu_debug::__unsafe): Likewise.
* include/debug/safe_local_iterator.tcc: Adapt.
* include/debug/macros.h (__glibcxx_check_valid_range2): New.
(__glibcxx_check_insert_range): Add _Dist parameter.
(__glibcxx_check_insert_range_after): Likewise.
(__glibcxx_check_string, __glibcxx_check_string_len): Implement using
_GLIBCXX_DEBUG_PEDASSERT.
* include/debug/deque (deque<>::assign): Remove iterator debug layer
when possible.
(deque<>::insert): Likewise.
* include/debug/forward_list (__glibcxx_check_valid_fl_range): New.
(forward_list<>::splice_after): Use latter.
(forward_list<>::assign): Remove iterator debug layer when possible.
(forward_list<>::insert_after): Likewise.
(__gnu_debug::_Sequence_traits<>): Partial specialization.
* include/debug/list (list<>::assign): Remove iterator debug layer when
possible.
(list<>::insert): Likewise.
[__gnu_debug::_Sequence_traits<>]: Partial specialization pre C++11 ABI.
* include/debug/map.h (map<>::insert): Remove iterator debug layer when
possible.
* include/debug/multimap.h (multimap<>::insert): Likewise.
* include/debug/set.h (set<>::insert): Likewise.
* include/debug/multiset.h (multiset<>::insert): Likewise.
* include/debug/string (basic_string<>::append, basic_string<>::assign,
basic_string<>::insert, basic_string<>::replace): Likewise.
* include/debug/unordered_map
(unordered_map<>::insert, unordered_multimap<>::insert): Likewise.
* include/debug/unordered_set
(unordered_set<>::insert, unordered_multiset<>insert): Likewise.
* include/debug/vector
(vector<>::assign, vector<>::insert): Likewise.
* include/Makefile.am: Add new debug headers.
* include/Makefile.in: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225143 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR ada/63310
ebotcazou [Mon, 29 Jun 2015 17:45:34 +0000 (17:45 +0000)] 
PR ada/63310
* gcc-interface/utils.c (gnat_write_global_declarations): Always
build the dummy global variable if code was generated.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225139 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * config/i386/i386.md (*jcc_1): Use %! in asm template.
uros [Mon, 29 Jun 2015 17:18:17 +0000 (17:18 +0000)] 
* config/i386/i386.md (*jcc_1): Use %! in asm template.
Set attribute "length_nobnd" instead of "length".
(*jcc_2): Ditto.
(jump): Ditto.
(*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225138 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-29 Sandra Loosemore <sandra@codesourcery.com>
sandra [Mon, 29 Jun 2015 17:01:52 +0000 (17:01 +0000)] 
2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* config/nios2/nios2.c (nios2_delegitimize_address): Make
assert less restrictive.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225137 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoWunused-parameter warnings are given from cgraph::finalize_function,
manu [Mon, 29 Jun 2015 16:25:26 +0000 (16:25 +0000)] 
Wunused-parameter warnings are given from cgraph::finalize_function,
which is the middle-end. This is an oddity compared to other
-Wunused-* warnings. Moreover, Fortran has its own definition of
-Wunused-parameter that conflicts with the middle-end definition.

This patch moves the middle-end part of Wunused-parameter to the C/C++
FEs. I'm not sure if other FEs expected this warning to work. If so,
they do not seem to test for it. Ada, for example, explicitly disables
it.

gcc/ChangeLog:

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

PR fortran/66605
* cgraphunit.c (cgraph_node::finalize_function): Do not call
do_warn_unused_parameter.
* function.c (do_warn_unused_parameter): Move from here.
* function.h (do_warn_unused_parameter): Do not declare.

gcc/c-family/ChangeLog:

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

PR fortran/66605
* c-common.c (do_warn_unused_parameter): Move here.
* c-common.h (do_warn_unused_parameter): Declare.

gcc/ada/ChangeLog:

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

PR fortran/66605
* gcc-interface/misc.c (gnat_post_options): No need to disable
warn_unused_parameter anymore.

gcc/cp/ChangeLog:

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

PR fortran/66605
* decl.c (finish_function): Call do_warn_unused_parameter.

gcc/testsuite/ChangeLog:

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

PR fortran/66605
* gfortran.dg/wunused-parameter.f90: New test.

gcc/c/ChangeLog:

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

PR fortran/66605
* c-decl.c (finish_function): Call do_warn_unused_parameter.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225135 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
mwahab [Mon, 29 Jun 2015 16:12:12 +0000 (16:12 +0000)] 
2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>

PR target/65697
* gcc.target/arm/armv-sync-comp-swap.c: New.
* gcc.target/arm/armv-sync-op-acquire.c: New.
* gcc.target/arm/armv-sync-op-full.c: New.
* gcc.target/arm/armv-sync-op-release.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225134 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
mwahab [Mon, 29 Jun 2015 16:09:10 +0000 (16:09 +0000)] 
2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>

PR target/65697
* config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
initial acquire barrier with final barrier.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225133 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
mwahab [Mon, 29 Jun 2015 16:03:34 +0000 (16:03 +0000)] 
2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>

PR target/65697
* config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
initial acquire barrier with final barrier.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225132 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * sv.po: Update.
jsm28 [Mon, 29 Jun 2015 15:58:13 +0000 (15:58 +0000)] 
* sv.po: Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225130 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoi386: Implement asm flag outputs
rth [Mon, 29 Jun 2015 14:35:19 +0000 (14:35 +0000)] 
i386: Implement asm flag outputs

        * config/i386/constraints.md (Bf): New constraint.
        * config/i386/i386-c.c (ix86_target_macros): Define
        __GCC_ASM_FLAG_OUTPUTS__.
        * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
        as flags outputs.
        * doc/extend.texi (FlagOutputOperands): Document them.
testsuite/
        * gcc.target/i386/asm-flag-1.c: New.
        * gcc.target/i386/asm-flag-2.c: New.
        * gcc.target/i386/asm-flag-3.c: New.
        * gcc.target/i386/asm-flag-4.c: New.
        * gcc.target/i386/asm-flag-5.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225122 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago[AArch64] Generalize TLSLE macro and pattern names
jiwang [Mon, 29 Jun 2015 14:20:50 +0000 (14:20 +0000)] 
[AArch64] Generalize TLSLE macro and pattern names

2015-06-29  Jiong Wang  <jiong.wang@arm.com>

* config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
* config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
unspec name.
(tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
* config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
(aarch64_symbol_context): Ditto.
* config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
and use new pattern name.
(aarch64_expand_mov_immediate): Ditto.
(aarch64_print_operand): Ditto.
(aarch64_classify_tls_symbol): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225121 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
mpolacek [Mon, 29 Jun 2015 14:17:13 +0000 (14:17 +0000)] 
* fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
* match.pd: ... pattern here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225120 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoSimplify structure try_transform_to_exit_first_loop_alt
vries [Mon, 29 Jun 2015 13:53:32 +0000 (13:53 +0000)] 
Simplify structure try_transform_to_exit_first_loop_alt

2015-06-29  Tom de Vries  <tom@codesourcery.com>

* tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
function structure.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225119 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
mwahab [Mon, 29 Jun 2015 13:50:42 +0000 (13:50 +0000)] 
2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>

* doc/invoke.texi (Aarch64 Options, -march): Split out arch and
feature description, split out the native option, add a link to
the feature documentation, rearrange and slightly rewrite text.
(Aarch64 options, -mcpu): Likewise.
(Aarch64 options, Feature Modifiers): Add an anchor.  Mention
+rdma implies Adv. SIMD.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225118 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR c/66322
mpolacek [Mon, 29 Jun 2015 13:12:44 +0000 (13:12 +0000)] 
PR c/66322
* c-common.c (check_case_bounds): Add bool * parameter.  Set
OUTSIDE_RANGE_P.
(c_add_case_label): Add bool * parameter.  Pass it down to
check_case_bounds.
(c_do_switch_warnings): Add bool parameters.  Implement -Wswitch-bool
warning here.
* c-common.h (c_add_case_label, c_do_switch_warnings): Update
declarations.

* c-typeck.c (struct c_switch): Add BOOL_COND_P and OUTSIDE_RANGE_P.
(c_start_case): Set BOOL_COND_P and OUTSIDE_RANGE_P.  Don't warn
about -Wswitch-bool here.
(do_case): Update c_add_case_label call.
(c_finish_case): Update c_do_switch_warnings call.

* decl.c (struct cp_switch): Add OUTSIDE_RANGE_P.
(push_switch): Set OUTSIDE_RANGE_P.
(pop_switch): Update c_do_switch_warnings call.
(finish_case_label): Update c_add_case_label call.
* semantics.c (finish_switch_cond): Don't warn about -Wswitch-bool
here.

* function.c (stack_protect_epilogue): Remove a cast to int.
* doc/invoke.texi: Update -Wswitch-bool description.

* c-c++-common/pr60439.c: Add dg-prune-output and add switch cases.
* c-c++-common/pr66322.c: New test.
* g++.dg/eh/scope1.C: Remove dg-warning.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225116 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-29 Richard Biener <rguenther@suse.de>
rguenth [Mon, 29 Jun 2015 11:28:17 +0000 (11:28 +0000)] 
2015-06-29  Richard Biener  <rguenther@suse.de>

* genmatch.c (add_operator): Treat ADDR_EXPR as atom.
* fold-const.c (fold_binary_loc): Move &A - &B simplification
via ptr_difference_const ...
* match.pd: ... here.
When matching (X ^ Y) == Y also match with swapped operands.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225115 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-29 Richard Biener <rguenther@suse.de>
rguenth [Mon, 29 Jun 2015 08:44:56 +0000 (08:44 +0000)] 
2015-06-29  Richard Biener  <rguenther@suse.de>

* lto-streamer.h (LTO_major_version): Bump to 5.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225113 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-29 Richard Biener <rguenther@suse.de>
rguenth [Mon, 29 Jun 2015 07:30:47 +0000 (07:30 +0000)] 
2015-06-29  Richard Biener  <rguenther@suse.de>

PR tree-optimization/66677
* tree-vect-stmts.c (vect_transform_stmt): Make assert about
STMT_VINFO_VEC_STMT clobbering less strict.

* gcc.dg/vect/pr66677.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225112 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoDaily bump.
gccadmin [Mon, 29 Jun 2015 00:16:12 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225111 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agogcc/ChangeLog:
kugan [Mon, 29 Jun 2015 00:15:41 +0000 (00:15 +0000)] 
gcc/ChangeLog:

2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>

PR middle-end/64130
* tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
division, compute max and min when value ranges for dividend and
divisor are available.

gcc/testsuite/ChangeLog:

2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>

PR middle-end/64130
* gcc.dg/tree-ssa/pr64130.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225108 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * Add forgotten ChangeLog entry.
uros [Sun, 28 Jun 2015 21:28:07 +0000 (21:28 +0000)] 
* Add forgotten ChangeLog entry.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225107 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-28 Chung-Lin Tang <cltang@codesourcery.com>
sandra [Sun, 28 Jun 2015 20:46:01 +0000 (20:46 +0000)] 
2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
    Sandra Loosemore <sandra@codesourcery.com>

gcc/
* regrename.h (regrename_do_replace): Change to return bool.
* regrename.c (rename_chains): Check return value of
regname_do_replace.
(regrename_do_replace): Re-validate the modified insns and
return bool status.
* config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
Update to match rename_chains changes.
* config/c6x/c6x.c (try_rename_operands): Assert that
regrename_do_replace returns true.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225106 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
uros [Sun, 28 Jun 2015 19:38:56 +0000 (19:38 +0000)] 
* config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
operand 2 here.  Use copy_addr_to_reg to copy non-index
register operand 2 to a temporary.
(<mode>_stx): Ditto for operand 1.
(*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
* config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
(ix86_store_bounds): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225105 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoDaily bump.
gccadmin [Sun, 28 Jun 2015 00:16:12 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225103 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoMake debug_tree() print the length of a TREE_VEC
ppalka [Sat, 27 Jun 2015 18:43:11 +0000 (18:43 +0000)] 
Make debug_tree() print the length of a TREE_VEC

gcc/ChangeLog:

* print-tree.c (print_node) [TREE_VEC]: Print its length.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225100 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * call.c: Use VECTOR_TYPE_P.
mpolacek [Sat, 27 Jun 2015 10:40:21 +0000 (10:40 +0000)] 
* call.c: Use VECTOR_TYPE_P.
* constexpr.c: Likewise.
* cvt.c: Likewise.
* decl.c: Likewise.
* decl2.c: Likewise.
* init.c: Likewise.
* semantics.c: Likewise.
* tree.c: Likewise.
* typeck.c: Likewise.
* typeck2.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225099 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * call.c (set_up_extended_ref_temp): Use VAR_P.
mpolacek [Sat, 27 Jun 2015 10:39:31 +0000 (10:39 +0000)] 
* call.c (set_up_extended_ref_temp): Use VAR_P.
* class.c: Use VAR_P throughout.
* constexpr.c (cxx_eval_constant_expression): Use VAR_P.
* cp-array-notation.c (make_triplet_val_inv): Likewise.
* decl.c: Use VAR_OR_FUNCTION_DECL_P or VAR_P
throughout.
* decl2.c: Likewise.
* error.c (dump_decl): Use VAR_P.
* mangle.c (decl_implicit_alias_p): Likewise.
* parser.c: Use VAR_P throughout.
* pt.c: Likewise.
* semantics.c: Likewise.
* vtable-class-hierarchy.c: Likewise.
* tree.c (handle_abi_tag_attribute): Use VAR_OR_FUNCTION_DECL_P.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225098 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago* pt.c (check_unstripped_args): Mark parameter as unused.
schwab [Sat, 27 Jun 2015 08:40:34 +0000 (08:40 +0000)] 
* pt.c (check_unstripped_args): Mark parameter as unused.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225095 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoDaily bump.
gccadmin [Sat, 27 Jun 2015 00:16:11 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225093 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-26 Andrew MacLeod <amacleod@redhat.com>
amacleod [Fri, 26 Jun 2015 23:30:37 +0000 (23:30 +0000)] 
2015-06-26  Andrew MacLeod  <amacleod@redhat.com>

* gimple.c (gimple_call_set_fndecl): Remove.
* gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
build1_loc directly instead of build_fold_addr_expr_loc.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225090 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * c-common.c (check_main_parameter_types): Use VECTOR_TYPE_P
mpolacek [Fri, 26 Jun 2015 22:35:29 +0000 (22:35 +0000)] 
* c-common.c (check_main_parameter_types): Use VECTOR_TYPE_P
or VECTOR_INTEGER_TYPE_P throughout.
* c-gimplify.c: Likewise.

* c-typeck.c: Use VECTOR_TYPE_P throughout.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225089 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR c++/66216
jason [Fri, 26 Jun 2015 21:31:13 +0000 (21:31 +0000)] 
PR c++/66216
* class.c (finish_struct): Call fixup_attribute_variants.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225087 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR c++/66684
jason [Fri, 26 Jun 2015 21:31:08 +0000 (21:31 +0000)] 
PR c++/66684
* typeck2.c (merge_exception_specifiers): Allow different
noexcept-specifiers if we've had errors.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225086 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR c++/66255
jason [Fri, 26 Jun 2015 20:33:46 +0000 (20:33 +0000)] 
PR c++/66255
* pt.c (check_unstripped_args): Split out from...
(retrieve_specialization): ...here.  Allow typedefs in the type of
a non-type argument.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225084 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR c++/66067
jason [Fri, 26 Jun 2015 20:33:41 +0000 (20:33 +0000)] 
PR c++/66067
* mangle.c (write_nested_name): Limit TYPENAME_TYPE handling to
TYPE_DECLs.
* mangle.c (write_template_args): Handle 0 length TREE_VEC.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225083 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR c++/66654
jason [Fri, 26 Jun 2015 20:33:35 +0000 (20:33 +0000)] 
PR c++/66654
* typeck2.c (digest_init_r): Only expect reshaping if the class is
aggregate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225082 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoImplement N4258 (Cleaning-up noexcept in the Library rev 3)
redi [Fri, 26 Jun 2015 20:10:24 +0000 (20:10 +0000)] 
Implement N4258 (Cleaning-up noexcept in the Library rev 3)

* doc/xml/manual/intro.xml: Document LWG 2108 status.
* include/bits/alloc_traits.h (allocator_traits::is_always_equal):
Define.
* include/bits/allocator.h (allocator::is_always_equal): Likewise.
* include/bits/forward_list.h
(forward_list::operator=(forward_list&&)): Use __bool_constant.
(forward_list::swap(forward_list&)): Add noexcept.
* include/bits/hashtable.h (_Hashtable::operator=(_Hashtable&&)):
Likewise.
(_Hashtable::swap(_Hashtable&)): Likewise.
* include/bits/stl_deque.h (_Deque_base::_Deque_base(_Deque_base&&)):
Use _Alloc_traits::is_always_equal.
(deque::operator=(deque&&)): Likewise.
(deque::_M_move_assign1(deque&&, false_type)): Add comment and use
__bool_constant.
(swap(deque&, deque&)): Add noexcept.
* include/bits/stl_list.h (list::operator=(list&&)): Use
__bool_constant.
(swap(list&, list&)): Add noexcept.
* include/bits/stl_map.h (map::swap(map&)): Include _Compare in
noexcept.
(swap(map&, map&)): Add noexcept.
* include/bits/stl_multimap.h (multimap::swap(multimap&)): Include
_Compare in noexcept.
(swap(multimap&, multimap&)): Add noexcept.
* include/bits/stl_multiset.h (multiset::swap(multiset&)): Include
_Compare in noexcept.
(swap(multiset&, multiset&)): Add noexcept.
* include/bits/stl_set.h (set::swap(set&)): Include _Compare in
noexcept.
(swap(set&, set&)): Add noexcept.
* include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Include
_Compare in noexcept.
(_Rb_tree::_Rb_tree(_Rb_tree&&, _Node_alloc_type&&)): Use
is_always_equal.
* include/bits/stl_vector.h (vector::operator=(vector&&)): Use
__bool_constant.
(swap(vector&, vector&)): Add noexcept.
* include/bits/unordered_map.h (swap(unordered_map&, unordered_map&),
swap(unordered_multimap& unordered_multimap&)): Add noexcept.
* include/bits/unordered_set.h (swap(unordered_set&, unordered_set&),
swap(unordered_multiset& unordered_multiset&)): Add noexcept.
* include/ext/alloc_traits.h (__allocator_always_compares_equal):
Remove.
(__alloc_traits::_S_always_equal()): Use is_always_equal instead of
__allocator_always_compares_equal.
* include/ext/array_allocator.h (array_allocator::is_always_equal):
Define.
* include/std/scoped_allocator (__any_of, __propagate_on_copy,
__propagate_on_move, __propagate_on_swap): Remove.
(scoped_allocator_adaptor::propagate_on_container_copy_assignment,
scoped_allocator_adaptor::propagate_on_container_move_assignment,
scoped_allocator_adaptor::propagate_on_container_swap): Define with
__and_ instead of __any_of.
(scoped_allocator_adaptor::is_always_equal): Define.
* testsuite/20_util/allocator_traits/members/is_always_equal.cc: New.
* testsuite/20_util/scoped_allocator/propagation.cc: Make traits
derive from true_type or false_type.
* testsuite/23_containers/deque/allocator/move_assign-2.cc: Add
is_always_equal member and remove the trait specialization.
* testsuite/23_containers/vector/52591.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225081 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * array-notation-common.c (find_rank): Use INDIRECT_REF_P.
mpolacek [Fri, 26 Jun 2015 19:55:12 +0000 (19:55 +0000)] 
* array-notation-common.c (find_rank): Use INDIRECT_REF_P.
* c-common.c (c_fully_fold_internal): Likewise.
(c_alignof_expr): Likewise.
* c-pretty-print.c (c_pretty_printer::postfix_expression): Likewise.
* c-ubsan.c (ubsan_instrument_bounds): Likewise.
* cilk.c (create_parm_list): Likewise.

* c-array-notation.c (fix_builtin_array_notation_fn): Use
INDIRECT_REF_P.
* c-typeck.c (array_to_pointer_conversion): Likewise.
(build_unary_op): Likewise.
(c_finish_return): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225080 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * include/bits/stl_bvector.h (vector<bool>::vector()): Add noexcept.
redi [Fri, 26 Jun 2015 17:26:38 +0000 (17:26 +0000)] 
* include/bits/stl_bvector.h (vector<bool>::vector()): Add noexcept.
* include/bits/stl_map.h (map::map()): Likewise.
* include/bits/stl_multimap.h (multimap::multimap()): Likewise.
* include/bits/stl_multiset.h (multiset::multiset()): Likewise.
* include/bits/stl_set.h (set::set()): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225024 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agogcc/
rsandifo [Fri, 26 Jun 2015 16:50:19 +0000 (16:50 +0000)] 
gcc/
* hash-map.h (hash_map::traverse): Use the definition of the
Key typedef rather than the typedef itself.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225021 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoFix PR 66301 - check for dump_file in eliminate_dom_walker::before_dom_children
jamborm [Fri, 26 Jun 2015 14:59:11 +0000 (14:59 +0000)] 
Fix PR 66301 - check for dump_file in eliminate_dom_walker::before_dom_children

2015-06-26  Martin Jambor  <mjambor@suse.cz>

PR debug/66301
* tree-ssa-pre.c (before_dom_children): Check that dump_file is not
NULL instead of calling dump_enabled_p.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225019 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago[Patch AArch64 4/4] Add -moverride tuning command, and wire it up for
jgreenhalgh [Fri, 26 Jun 2015 14:04:12 +0000 (14:04 +0000)] 
[Patch AArch64 4/4] Add -moverride tuning command, and wire it up for
 control of fusion and fma-steering

gcc/

* config/aarch64/aarch64.opt: (override): New.
* doc/invoke.texi (override): Document.
* config/aarch64/aarch64.c (aarch64_flag_desc): New
(aarch64_fusible_pairs): Likewise.
(aarch64_tuning_flags): Likewise.
(aarch64_tuning_override_function): Likewise.
(aarch64_tuning_override_functions): Likewise.
(aarch64_parse_one_option_token): Likewise.
(aarch64_parse_boolean_options): Likewise.
(aarch64_parse_fuse_string): Likewise.
(aarch64_parse_tune_string): Likewise.
(aarch64_parse_one_override_token): Likewise.
(aarch64_parse_override_string): Likewise.
(aarch64_override_options): Parse the -override string if it
is present.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225018 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago[AArch64][2/2] Implement -fpic for -mcmodel=small
jiwang [Fri, 26 Jun 2015 14:00:56 +0000 (14:00 +0000)] 
[AArch64][2/2] Implement -fpic for -mcmodel=small

2015-06-26  Jiong Wang  <jiong.wang@arm.com>

gcc/
  * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
  SYMBOL_SMALL_GOT_28K.
  * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
  relocation modifiers.
  (unspec): New enum "UNSPEC_GOTMALLPIC28K.
  (ldr_got_small_28k_<mode>): New.
  (ldr_got_small_28k_sidi): New.
  * config/aarch64/iterators.md (got_modifier): New mode iterator.
  * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
  * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
  SYMBOL_SMALL_GOT_28K.
  (aarch64_rtx_costs): Add costs for new instruction sequences.
  (initialize_aarch64_code_model): Initialize new model.
  (aarch64_classify_symbol): Recognize new model and new symbol classification.
  (aarch64_asm_preferred_eh_data_format): Support new model.
  (aarch64_load_symref_appropriately): Generate new instruction
  sequences for -fpic.
  (TARGET_USE_PSEUDO_PIC_REG): New definition.
  (aarch64_use_pseudo_pic_reg): New function.

gcc/testsuite/
  * gcc.target/aarch64/pic-small.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225017 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago[Patch AArch64 3/4] De-const-ify struct tune_params
jgreenhalgh [Fri, 26 Jun 2015 13:58:29 +0000 (13:58 +0000)] 
[Patch AArch64 3/4] De-const-ify struct tune_params

gcc/

* config/aarch64/aarch64-protos.h (tune_params): Remove
const from members.
(aarch64_tune_params): Remove const, change to no longer be
a pointer.
* config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
change to no longer be a pointer, initialize to generic_tunings.
(aarch64_min_divisions_for_recip_mul): Change dereference of
aarch64_tune_params to member access.
(aarch64_reassociation_width): Likewise.
(aarch64_rtx_mult_cost): Likewise.
(aarch64_address_cost): Likewise.
(aarch64_branch_cost): Likewise.
(aarch64_rtx_costs): Likewise.
(aarch64_register_move_cost): Likewise.
(aarch64_memory_move_cost): Likewise.
(aarch64_sched_issue_rate): Likewise.
(aarch64_builtin_vectorization_cost): Likewise.
(aarch64_override_options): Take a copy of the selected tuning
struct in to aarch64_tune_params, rather than just setting
a pointer, change dereferences of aarch64_tune_params to member
accesses.
(aarch64_override_options_after_change): Change dereferences of
aarch64_tune_params to member access.
(aarch64_macro_fusion_p): Likewise.
(aarch_macro_fusion_pair_p): Likewise.
* config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225016 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago[Patch AArch64 2/4] Control the FMA steering pass in tuning structures rather than...
jgreenhalgh [Fri, 26 Jun 2015 13:57:16 +0000 (13:57 +0000)] 
[Patch AArch64 2/4] Control the FMA steering pass in tuning  structures rather than as core property

gcc/

* config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
(aarch64_tune_flags): Likewise.
(AARCH64_TUNE_FMA_STEERING): Likewise.
* config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
to AARCH64_FL_USE_FMA_STEERING_PASS.
(cortex-a57.cortex-a53): Likewise.
(cortex-a72): Use cortexa72_tunings.
(cortex-a72.cortex-a53): Likewise.
(exynos-m1): Likewise.
* config/aarch64/aarch64-protos.h (tune_params): Add
a field: extra_tuning_flags.
* config/aarch64/aarch64-tuning-flags.def: New.
* config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
(aarch64_extra_tuning_flags): Likewise.
(aarch64_tune_params): Declare here.
* config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
(cortexa53_tunings): Likewise.
(cortexa57_tunings): Likewise.
(thunderx_tunings): Likewise.
(xgene1_tunings): Likewise.
(cortexa72_tunings): New.
* config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
 (gate): Check against aarch64_tune_params.
* config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
aarch64-protos.h.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225015 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago[Patch AArch64 1/4] Define candidates for instruction fusion in a .def file
jgreenhalgh [Fri, 26 Jun 2015 13:54:53 +0000 (13:54 +0000)] 
[Patch AArch64 1/4] Define candidates for instruction fusion in a .def file

gcc/

* config/aarch64/aarch64-fusion-pairs.def: New.
* config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
* config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
aarch64_fusion_pairs.
(AARCH64_FUSE_MOV_MOVK): Likewise.
(AARCH64_FUSE_ADRP_ADD): Likewise.
(AARCH64_FUSE_MOVK_MOVK): Likewise.
(AARCH64_FUSE_ADRP_LDR): Likewise.
(AARCH64_FUSE_CMP_BRANCH): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225014 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago[AArch64][1/2] Rename SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G
jiwang [Fri, 26 Jun 2015 13:41:24 +0000 (13:41 +0000)] 
[AArch64][1/2] Rename SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G

2015-06-26  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
* config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
(aarch64_expand_mov_immediate): Ditto.
(aarch64_print_operand): Ditto.
(aarch64_classify_symbol): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225013 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * config/nvptx/nvptx.md (call_operation): Remove unused variables.
nathan [Fri, 26 Jun 2015 12:33:33 +0000 (12:33 +0000)] 
* config/nvptx/nvptx.md (call_operation): Remove unused variables.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225009 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR bootstrap/66638
amker [Fri, 26 Jun 2015 11:12:20 +0000 (11:12 +0000)] 
PR bootstrap/66638
* tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
assertion failed.  Remove assertion itself.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225008 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2015-06-26 Richard Biener <rguenther@suse.de>
rguenth [Fri, 26 Jun 2015 10:59:27 +0000 (10:59 +0000)] 
2015-06-26  Richard Biener  <rguenther@suse.de>

* fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
and -A CMP CST -> A CMP -CST which is redundant with a pattern
in match.pd.
Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
(X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
(X ^ C1) op C2 -> X op (C1 ^ C2) to ...
* match.pd: ... patterns here.

* gcc.dg/tree-ssa/forwprop-25.c: Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225007 138bc75d-0d04-0410-961f-82ee72b054a4