platform/upstream/gcc.git
8 years agoFix failing test for targets with sizeof(int) != 4.
Senthil Kumar Selvaraj [Tue, 19 Jul 2016 13:16:32 +0000 (13:16 +0000)]
Fix failing test for targets with sizeof(int) != 4.

gcc/testsuite/

2016-07-19  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

* gcc.dg/params/blocksort-part.c: Conditionally define Int32
and UInt32 based on __SIZEOF_INT__.

From-SVN: r238471

8 years agoFix copy&paste bug in function-tests.c
David Malcolm [Tue, 19 Jul 2016 13:04:32 +0000 (13:04 +0000)]
Fix copy&paste bug in function-tests.c

gcc/ChangeLog:
* function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
the flags of the exit block and bb2, not just the entry block.

From-SVN: r238470

8 years agoMAINTAINERS (Write After Approval): Add myself.
Fritz Reese [Tue, 19 Jul 2016 10:39:19 +0000 (10:39 +0000)]
MAINTAINERS (Write After Approval): Add myself.

2016-07-19  Fritz Reese  <fritzoreese@gmail.com>

* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r238469

8 years agore PR tree-optimization/71901 (ice in find_or_generate_expression)
Richard Biener [Tue, 19 Jul 2016 10:19:46 +0000 (10:19 +0000)]
re PR tree-optimization/71901 (ice in find_or_generate_expression)

2016-07-19  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71901
* tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
align member, group stuff with the bitfield.
(vn_ref_op_align_unit): New inline.
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
record element alignment and operand 3 unchanged.
(ao_ref_init_from_vn_reference): Adjust.
(valueize_refs_1): Likewise.
* tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.

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

From-SVN: r238468

8 years agore PR tree-optimization/71908 (ICE at -Os and above in both 32-bit and 64-bit modes...
Richard Biener [Tue, 19 Jul 2016 10:18:25 +0000 (10:18 +0000)]
re PR tree-optimization/71908 (ICE at -Os and above in both 32-bit and 64-bit modes on x86_64-linux-gnu (get_constraint_for_component_ref))

2016-07-18  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71908
* tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
symbolic constants in a more reliable way.

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

From-SVN: r238467

8 years agotree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update comment.
Ilya Enkovich [Tue, 19 Jul 2016 10:04:02 +0000 (10:04 +0000)]
tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update comment.

gcc/

* tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
comment.
(vect_update_inits_of_drs): Likewise.
(vect_create_cond_for_alias_checks): Likewise.
* tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.

From-SVN: r238466

8 years agore PR middle-end/71907 (missing buffer overflow warnings with -flto)
Richard Biener [Tue, 19 Jul 2016 07:35:05 +0000 (07:35 +0000)]
re PR middle-end/71907 (missing buffer overflow warnings with -flto)

2016-07-19  Richard Biener  <rguenther@suse.de>

PR lto/71907
* lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
with an abstract origin that is not an inlined function outer
scope add a self-reference as abstract origin.
* tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.

From-SVN: r238456

8 years agore PR target/71493 (accidental ABI change for structure return on PowerPC)
Michael Meissner [Tue, 19 Jul 2016 03:31:48 +0000 (03:31 +0000)]
re PR target/71493 (accidental ABI change for structure return on PowerPC)

[gcc]
2016-07-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/71493
* config/rs6000/rs6000.c (rs6000_function_value): Fix
unintentional System V.4 structure return breakage for structures
with a single floating point element.

[gcc/testsuite]
2016-07-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/71493
* gcc.target/powerpc/pr71493-1.c: New test.
* gcc.target/powerpc/pr71493-2.c: Likewise.

From-SVN: r238454

8 years agoDaily bump.
GCC Administrator [Tue, 19 Jul 2016 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r238453

8 years agore PR c++/70869 (internal compiler error: Segmentation fault on array of pointer...
Jakub Jelinek [Mon, 18 Jul 2016 18:45:18 +0000 (20:45 +0200)]
re PR c++/70869 (internal compiler error: Segmentation fault on array of pointer to function members)

PR c++/70869
PR c++/71054
* cp-gimplify.c (cp_genericize_r): Revert the 2016-07-07 change.
* tree.c (cp_walk_subtrees): For DECL_EXPR on DECL_ARTIFICIAL
non-static VAR_DECL, walk the decl's DECL_INITIAL, DECL_SIZE and
DECL_SIZE_UNIT.

From-SVN: r238444

8 years agore PR c++/71835 (ICE on invalid C++ code with ambiguous overloaded operators: tree...
Jakub Jelinek [Mon, 18 Jul 2016 18:44:51 +0000 (20:44 +0200)]
re PR c++/71835 (ICE on invalid C++ code with ambiguous overloaded operators: tree check: expected tree that contains ‘decl minimal’ structure, have ‘pointer_type’ in convert_like_real, at cp/call.c:6549)

PR c++/71835
* call.c (build_op_call_1): Use convert_like_with_context only
if cand->fn is a decl.

* g++.dg/conversion/ambig3.C: New test.

From-SVN: r238443

8 years agore PR c++/71828 (ICE on valid C++11 code with constexpr __Complex int variable declar...
Jakub Jelinek [Mon, 18 Jul 2016 18:43:19 +0000 (20:43 +0200)]
re PR c++/71828 (ICE on valid C++11 code with constexpr __Complex int variable declaration: in operand_equal_p, at fold-const.c:2790)

PR c++/71828
* constexpr.c (cxx_eval_constant_expression) <case REALPART_EXPR>:
For lval don't use cxx_eval_unary_expression and instead recurse
and if needed rebuild the reference.

* g++.dg/cpp0x/constexpr-71828.C: New test.

From-SVN: r238442

8 years agore PR c++/71826 (ICE on valid C++ code with ambiguous member lookup: tree check:...
Jakub Jelinek [Mon, 18 Jul 2016 18:42:24 +0000 (20:42 +0200)]
re PR c++/71826 (ICE on valid C++ code with ambiguous member lookup: tree check: expected baselink, have error_mark in tsubst_baselink, at cp/pt.c:13737)

PR c++/71826
* pt.c (tsubst_baselink): Only set BASELINK_OPTYPE for BASELINK_P.

* g++.dg/template/pr71826.C: New test.

From-SVN: r238441

8 years agore PR c++/71822 (ICE: in gimplify_expr, at gimplify.c:11025)
Jakub Jelinek [Mon, 18 Jul 2016 18:40:12 +0000 (20:40 +0200)]
re PR c++/71822 (ICE: in gimplify_expr, at gimplify.c:11025)

PR c++/71822
* cp-gimplify.c (cp_gimplify_expr) <case VEC_INIT_EXPR>: Recursively
fold *expr_p before genericizing it.

* g++.dg/template/defarg21.C: New test.

From-SVN: r238440

8 years agore PR c++/71871 (ICE on mixing templates and vector extensions ternary operator)
Jakub Jelinek [Mon, 18 Jul 2016 17:44:48 +0000 (19:44 +0200)]
re PR c++/71871 (ICE on mixing templates and vector extensions ternary operator)

PR c++/71871
* typeck.c (build_x_conditional_expr): Revert the 2012-10-25 change.

* g++.dg/ext/vector31.C: New test.

From-SVN: r238439

8 years agopr70017.c: Do not check for warning on alpha*-*-*.
Uros Bizjak [Mon, 18 Jul 2016 15:55:36 +0000 (17:55 +0200)]
pr70017.c: Do not check for warning on alpha*-*-*.

* gcc.dg/pr70017.c: Do not check for warning on alpha*-*-*.

From-SVN: r238438

8 years agoDemangle C++17 fold-expressions.
Jason Merrill [Mon, 18 Jul 2016 15:28:51 +0000 (11:28 -0400)]
Demangle C++17 fold-expressions.

* cp-demangle.c (cplus_demangle_operators): Add f[lrLR].
(d_expression_1): Handle them.
(d_maybe_print_fold_expression): New.
(d_print_comp_inner): Use it.
(d_index_template_argument): Handle negative index.

From-SVN: r238437

8 years agoClean up optional's comments.
Ville Voutilainen [Mon, 18 Jul 2016 14:45:56 +0000 (17:45 +0300)]
Clean up optional's comments.

From-SVN: r238436

8 years agore PR middle-end/71734 (FAIL: libgomp.fortran/simd4.f90 -O3 -g execution test)
Yuri Rumyantsev [Mon, 18 Jul 2016 14:30:20 +0000 (14:30 +0000)]
re PR middle-end/71734 (FAIL: libgomp.fortran/simd4.f90   -O3 -g  execution test)

gcc/

2016-07-18  Yuri Rumyantsev  <ysrumyan@gmail.com>

PR tree-optimization/71734
* tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
contains REF, use it to check safelen, assume that safelen value
must be greater 1, fix style.
(ref_indep_loop_p_2): Add REF_LOOP argument.
(ref_indep_loop_p): Pass LOOP as additional argument to
ref_indep_loop_p_2.

gcc/testsuite/

2016-07-18  Yuri Rumyantsev  <ysrumyan@gmail.com>

PR tree-optimization/71734
* g++.dg/vect/pr70729.cc: Delete redundant dg options, fix style.

From-SVN: r238435

8 years agoAllocate constant size dynamic stack space in the prologue
Dominik Vogt [Mon, 18 Jul 2016 13:10:27 +0000 (13:10 +0000)]
Allocate constant size dynamic stack space in the prologue

The attached patch fixes a warning during Linux kernel compilation
on S/390 due to -mwarn-dynamicstack and runtime alignment of stack
variables with constant size causing cfun->calls_alloca to be set
(even if alloca is not used at all).  The patched code places
constant size runtime aligned variables in the "virtual stack
vars" area instead of creating a "virtual stack dynamic" area.

This behaviour is activated by defining

  #define ALLOCATE_DYNAMIC_STACK_SPACE_IN_PROLOGUE 1

in the backend; otherwise the old logic is used.

The kernel uses runtime alignment for the page structure (aligned
to 16 bytes), and apart from triggereing the alloca warning
(-mwarn-dynamicstack), the current Gcc also generates inefficient
code like

  aghi %r15,-160  # prologue: create stack frame
    lgr %r11,%r15   # prologue: generate frame pointer
      aghi %r15,-32   # space for dynamic stack

which could be simplified to

  aghi %r15,-192

(if later optimization passes are able to get rid of the frame
pointer).  Is there a specific reason why the patched behaviour
shouldn't be used for all platforms?

--

As the placement of runtime aligned stack variables with constant
size is done completely in the middleend, I don't see a way to fix
this in the backend.

gcc/ChangeLog:

2016-07-18  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* cfgexpand.c (expand_stack_vars): Implement synamic stack space
allocation in the prologue.
* explow.c (get_dynamic_stack_base): New function to return an address
expression for the dynamic stack base.
(get_dynamic_stack_size): New function to do the required dynamic stack
space size calculations.
(allocate_dynamic_stack_space): Use new functions.
(align_dynamic_address): Move some code from
allocate_dynamic_stack_space to new function.
* explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.

gcc/testsuite/ChangeLog:

2016-07-18  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* gcc.target/s390/warn-dynamicstack-1.c: New test.
* gcc.dg/stack-usage-2.c (foo3): Adapt expected warning.
stack-layout-dynamic-1.c: New test.

From-SVN: r238432

8 years agoS/390: Fix alignment check for literal pool references.
Andreas Krebbel [Mon, 18 Jul 2016 10:47:09 +0000 (10:47 +0000)]
S/390: Fix alignment check for literal pool references.

gcc/ChangeLog:

2016-07-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.c (s390_encode_section_info): Always set
notaligned marker if mode size is 0 or no MEM_ALIGN info could be
found.

gcc/testsuite/ChangeLog:

2016-07-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/nolrl-1.c: New test.

From-SVN: r238427

8 years agore PR tree-optimization/71893 (gfortran.dg ICEs in gcc/tree-ssa-pre.c; -fcode-hoisting?)
Richard Biener [Mon, 18 Jul 2016 08:46:42 +0000 (08:46 +0000)]
re PR tree-optimization/71893 (gfortran.dg ICEs in gcc/tree-ssa-pre.c; -fcode-hoisting?)

2016-07-18  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71893
* tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
for sizetype cast added by array_ref_element_size.
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.

From-SVN: r238426

8 years agoDaily bump.
GCC Administrator [Mon, 18 Jul 2016 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r238424

8 years agore PR fortran/71523 (Static variables given automatic initializers with -finit-*...
Fritz Reese [Sun, 17 Jul 2016 20:13:41 +0000 (20:13 +0000)]
re PR fortran/71523 (Static variables given automatic initializers with -finit-* and -fmax-stack-var-size)

2016-07-17  Fritz Reese  <fritzoreese@gmail.com>

PR fortran/71523
* trans-decl.c (gfc_finish_var_decl): Replace automatic initializer with
a static one.

* gfortran.dg/pr71523_1.f90: New test.
* gfortran.dg/pr71523_2.f90: New test.

From-SVN: r238420

8 years agoDaily bump.
GCC Administrator [Sun, 17 Jul 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r238419

8 years agopa.c (hppa_profile_hook): Allocate stack space for register parameters.
John David Anglin [Sat, 16 Jul 2016 15:59:33 +0000 (15:59 +0000)]
pa.c (hppa_profile_hook): Allocate stack space for register parameters.

* config/pa/pa.c (hppa_profile_hook): Allocate stack space for
register parameters.  Remove code to initialize argument pointer
on TARGET_64BIT.  Optimize call to _mcount when it can be reached
using a pc-relative branch.  Cleanup conditional code.
* config/pa/pa.md (call_mcount): New expander.
(call_mcount_nonpic): New insn.
(call_mcount_pic): New insn and split.
(call_mcount_pic_post_reload): New insn.
(call_mcount_64bit): New insn and split.
(call_mcount_64bit_post_reload): New insn.

From-SVN: r238414

8 years agonullptr35.C (caught): Fix typo.
Andreas Schwab [Sat, 16 Jul 2016 09:53:23 +0000 (09:53 +0000)]
nullptr35.C (caught): Fix typo.

* g++.dg/cpp0x/nullptr35.C (caught): Fix typo.

From-SVN: r238413

8 years agoDaily bump.
GCC Administrator [Sat, 16 Jul 2016 00:16:22 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r238409

8 years agoReplace references to C++0x with C++11 in comments
Jonathan Wakely [Fri, 15 Jul 2016 20:23:08 +0000 (21:23 +0100)]
Replace references to C++0x with C++11 in comments

* include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
* include/bits/move.h: Likewise.
* include/bits/postypes.h: Likewise.
* include/debug/bitset: Likewise.
* include/ext/pb_ds/detail/type_utils.hpp: Likewise.
* include/ext/string_conversions.h: Change C++0x to __cxx11 in
comment.
* testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
* testsuite/util/thread/all.h: Likewise.

From-SVN: r238402

8 years agore PR fortran/62125 (Nested select type not accepted (rejects valid))
Jerry DeLisle [Fri, 15 Jul 2016 19:58:55 +0000 (19:58 +0000)]
re PR fortran/62125 (Nested select type not accepted (rejects valid))

2016-07-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
    Marco Restelli <mrestelli@gmail.com>

PR fortran/62125
* symbol.c (select_type_insert_tmp): Recursively call self to take care
of nested select type.

* gfortran.dg/pr62125.f90: New test.

Co-Authored-By: Marco Restelli <mrestelli@gmail.com>
From-SVN: r238400

8 years agoRemove redundant std::move in std::for_each
Jonathan Wakely [Fri, 15 Jul 2016 19:51:33 +0000 (20:51 +0100)]
Remove redundant std::move in std::for_each

* include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
and adjust comment.

From-SVN: r238399

8 years agodivkc3-1.c: Require p8vector support.
Bill Schmidt [Fri, 15 Jul 2016 18:57:06 +0000 (18:57 +0000)]
divkc3-1.c: Require p8vector support.

2016-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.target/powerpc/divkc3-1.c: Require p8vector support.
* gcc.target/powerpc/mulkc3-1.c: Likewise.

From-SVN: r238398

8 years agoPR c++/71495 - spurious note during SFINAE.
Jason Merrill [Fri, 15 Jul 2016 18:56:29 +0000 (14:56 -0400)]
PR c++/71495 - spurious note during SFINAE.

* call.c (convert_like_real): Mask complain.
* semantics.c (perform_koenig_lookup): Likewise.

From-SVN: r238397

8 years agoc++/58796 Make nullptr match exception handlers of pointer type
Jonathan Wakely [Fri, 15 Jul 2016 18:51:51 +0000 (19:51 +0100)]
c++/58796 Make nullptr match exception handlers of pointer type

libstdc++-v3:

PR c++/58796
* libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
nullptr match handlers of pointer type.

gcc/testsuite:

PR c++/58796
* g++.dg/cpp0x/nullptr21.C: Remove void* handlers.
* g++.dg/cpp0x/nullptr35.C: New test.

From-SVN: r238396

8 years agoPR c++/71092 - ICE with array and constexpr.
Jason Merrill [Fri, 15 Jul 2016 18:49:38 +0000 (14:49 -0400)]
PR c++/71092 - ICE with array and constexpr.

* constexpr.c (cxx_eval_call_expression): Fail quietly when cgraph
threw away DECL_SAVED_TREE.

From-SVN: r238395

8 years agoPR c++/71117 - core 2189 and generic lambda
Jason Merrill [Fri, 15 Jul 2016 18:49:25 +0000 (14:49 -0400)]
PR c++/71117 - core 2189 and generic lambda

* call.c (add_template_conv_candidate): Disable if there are
viable candidates.

From-SVN: r238394

8 years agoPR c++/71511 - ICE on decltype scope in declaration.
Jason Merrill [Fri, 15 Jul 2016 18:38:48 +0000 (14:38 -0400)]
PR c++/71511 - ICE on decltype scope in declaration.

* typeck2.c (cxx_incomplete_type_diagnostic): Handle DECLTYPE_TYPE.

From-SVN: r238393

8 years agoPR c++/71513 - alignas on member enum in template
Jason Merrill [Fri, 15 Jul 2016 18:38:40 +0000 (14:38 -0400)]
PR c++/71513 - alignas on member enum in template

* pt.c (tsubst_attributes): Fix loop logic.

From-SVN: r238392

8 years agoPR c++/71604 - type definition in range-based for
Jason Merrill [Fri, 15 Jul 2016 18:38:31 +0000 (14:38 -0400)]
PR c++/71604 - type definition in range-based for

PR c++/54430
* parser.c (cp_parser_range_for): Modify IDENTIFIER_BINDING directly.
(cp_parser_simple_declaration): Diagnose type definition in
for-range-declaration.

From-SVN: r238391

8 years agoPR c++/71711 - mangle C++1z fold-expressions.
Jason Merrill [Fri, 15 Jul 2016 18:38:23 +0000 (14:38 -0400)]
PR c++/71711 - mangle C++1z fold-expressions.

* operators.def: Add *_FOLD_EXPR.
* cp-tree.h (FOLD_EXPR_P): Parenthesize.
* mangle.c (write_expression): Handle fold-expressions.
* pt.c (tsubst_unary_left_fold, tsubst_binary_left_fold)
(tsubst_unary_right_fold, tsubst_binary_right_fold): Handle
partial instantiation.

From-SVN: r238390

8 years agoPR c++/71814 - mangling sizeof... (sP and sZ)
Jason Merrill [Fri, 15 Jul 2016 18:38:15 +0000 (14:38 -0400)]
PR c++/71814 - mangling sizeof... (sP and sZ)

gcc/cp/
* mangle.c (write_expression): Handle sizeof... an argument pack.
libiberty/
* cp-demangle.c (cplus_demangle_operators): Add sP and sZ.
(d_print_comp_inner): Handle them.
(d_template_args_1): Split out from d_template_args.
(d_args_length): New.

From-SVN: r238389

8 years agoUpdate -fabi-version default to 11.
Jason Merrill [Fri, 15 Jul 2016 18:38:05 +0000 (14:38 -0400)]
Update -fabi-version default to 11.

* c-opts.c (c_common_post_options): Update -fabi-version default to 11.

From-SVN: r238388

8 years agoPR c++/71718 - infinite recursion and alias template
Jason Merrill [Fri, 15 Jul 2016 18:37:56 +0000 (14:37 -0400)]
PR c++/71718 - infinite recursion and alias template

* pt.c (push_tinst_level_loc): Set at_eof before fatal_error.

From-SVN: r238387

8 years agoPR c++/70824 - initializer_list in template
Jason Merrill [Fri, 15 Jul 2016 18:37:48 +0000 (14:37 -0400)]
PR c++/70824 - initializer_list in template

* init.c (constant_value_1): Don't instantiated DECL_INITIAL of
artificial variables.

From-SVN: r238386

8 years agoImplement C++17 P0025 clamp.
Edward Smith-Rowland [Fri, 15 Jul 2016 17:16:32 +0000 (17:16 +0000)]
Implement C++17 P0025 clamp.

2016-07-15  Edward Smith-Rowland  <3dw4rd@verizon.net>

Implement C++17 P0025 clamp.
* include/bits/algorithmfwd.h: Declare clamp overloads.
* include/bits/stl_algo.h: Implement clamp.  Feature __cpp_lib_clamp.
* testsuite/25_algorithms/clamp/1.cc: New test.
* testsuite/25_algorithms/clamp/2.cc: New test.
* testsuite/25_algorithms/clamp/constexpr.cc: New test.
* testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
1.cc: New test.
* testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
pod.cc: New test.

From-SVN: r238383

8 years agoTypo.
Georg-Johann Lay [Fri, 15 Jul 2016 16:28:17 +0000 (16:28 +0000)]
Typo.

From-SVN: r238382

8 years agopredicates.md (const_m255_to_m1_operand): New.
Georg-Johann Lay [Fri, 15 Jul 2016 16:25:38 +0000 (16:25 +0000)]
predicates.md (const_m255_to_m1_operand): New.

* config/avr/predicates.md (const_m255_to_m1_operand): New.
* config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
* config/avr/avr.md (add<mode>3) <ALL1>: Make "r,0,r" more
expensive.
(*cmphi.zero-extend.0, *cmphi.zero-extend.1)
(*usum_widenqihi3, *udiff_widenqihi3)
(*addhi3_zero_extend.const): New combiner insns.
(andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
just 1 bit is affected.
* config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
(avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.

From-SVN: r238381

8 years agoFix up ChangeLog entry.
Jakub Jelinek [Fri, 15 Jul 2016 15:28:26 +0000 (17:28 +0200)]
Fix up ChangeLog entry.

From-SVN: r238378

8 years agoscev-8.c: Update test string.
Bin Cheng [Fri, 15 Jul 2016 14:21:55 +0000 (14:21 +0000)]
scev-8.c: Update test string.

gcc/testsuite
* gcc.dg/tree-ssa/scev-8.c: Update test string.

From-SVN: r238377

8 years agoc-parser.c (c_parser_oacc_declare): Don't scan for GOMP_MAP_POINTER.
Cesar Philippidis [Fri, 15 Jul 2016 14:13:48 +0000 (07:13 -0700)]
c-parser.c (c_parser_oacc_declare): Don't scan for GOMP_MAP_POINTER.

gcc/c/
* c-parser.c (c_parser_oacc_declare): Don't scan for
GOMP_MAP_POINTER.
* c-typeck.c (handle_omp_array_sections): Mark data clauses with
GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
zero-length subarrays.

gcc/cp/
* parser.c (cp_parser_oacc_declare): Don't scan for
GOMP_MAP_POINTER.
* semantics.c (handle_omp_array_sections): Mark data clauses with
GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
zero-length subarrays.

gcc/
* omp-low.c (lower_omp_target): Mark data clauses with
GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
zero-length subarrays.

libgomp/
* testsuite/libgomp.oacc-c-c++-common/zero_length_subarrays.c: New
test.

From-SVN: r238376

8 years agoopenmp.c (gfc_match_omp_clauses): Scan for clause vector_length before vector.
Cesar Philippidis [Fri, 15 Jul 2016 14:03:35 +0000 (07:03 -0700)]
openmp.c (gfc_match_omp_clauses): Scan for clause vector_length before vector.

gcc/fortran/
* openmp.c (gfc_match_omp_clauses): Scan for clause vector_length
before vector.

gcc/testsuite/
* gfortran.dg/goacc/vector_length.f90: New test.

From-SVN: r238375

8 years agore PR tree-optimization/71881 (ICE on valid code at -O3 with -g enabled on x86_64...
Richard Biener [Fri, 15 Jul 2016 13:05:56 +0000 (13:05 +0000)]
re PR tree-optimization/71881 (ICE on valid code at -O3 with -g enabled on x86_64-linux-gnu: cannot update SSA form)

2016-07-15  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71881
* tree-loop-distribution.c (destroy_loop): Remove blocks in
reverse DOM order to make debug temp generation happy.

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

From-SVN: r238374

8 years agore PR tree-optimization/71887 (wrong code (SIGFPE) at -O1 and above on x86_64-linux...
Richard Biener [Fri, 15 Jul 2016 12:56:17 +0000 (12:56 +0000)]
re PR tree-optimization/71887 (wrong code (SIGFPE) at -O1 and above on x86_64-linux-gnu (in both 32-bit and 64-bit modes))

2016-07-15  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71887
* tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
verify it is not zero for division / modulo handling.
(value_replacement): Adjust.

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

From-SVN: r238373

8 years ago[PATCH/AARCH64] Add rtx_costs routine for vulcan.
Virendra Pathak [Fri, 15 Jul 2016 11:17:53 +0000 (11:17 +0000)]
[PATCH/AARCH64] Add rtx_costs routine for vulcan.

gcc/ChangeLog:

2016-07-15  Virendra Pathak  <virendra.pathak@broadcom.com>
    Julian Brown  <julian@codesourcery.com>

* config/aarch64/aarch64-cores.def: Update vulcan COSTS.
* config/aarch64/aarch64-cost-tables.h
(vulcan_extra_costs): New variable.
* config/aarch64/aarch64.c
(vulcan_addrcost_table): Likewise.
(vulcan_regmove_cost): Likewise.
(vulcan_vector_cost): Likewise.
(vulcan_branch_cost): Likewise.
(vulcan_tunings): Likewise.

Co-Authored-By: Julian Brown <julian@codesourcery.com>
From-SVN: r238372

8 years agohandle undefined extern vars in output_in_order
Alexander Monakov [Fri, 15 Jul 2016 11:01:23 +0000 (14:01 +0300)]
handle undefined extern vars in output_in_order

* cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
(output_in_order): Loop over undefined variables too.  Output them
via assemble_undefined_decl.  Skip variables that correspond to hard
registers or have value-exprs.
* varpool.c (symbol_table::output_variables): Handle undefined
variables together with defined ones.

From-SVN: r238371

8 years agotree-ssa-pre.c (get_representative_for): Make sure to return the value number of...
Richard Biener [Fri, 15 Jul 2016 10:53:29 +0000 (10:53 +0000)]
tree-ssa-pre.c (get_representative_for): Make sure to return the value number of SSA names.

2016-07-15  Richard Biener  <rguenther@suse.de>

* tree-ssa-pre.c (get_representative_for): Make sure to return
the value number of SSA names.
(phi_translate_1): get_representative_for cannot return NULL.
(do_pre_regular_insertion): Remove redundant call to
fully_constant_expression.
(do_pre_partial_partial_insertion): Likewise.

From-SVN: r238370

8 years agore PR c/71858 (Surprising suggestions for misspellings)
Jakub Jelinek [Fri, 15 Jul 2016 10:40:39 +0000 (12:40 +0200)]
re PR c/71858 (Surprising suggestions for misspellings)

PR c/71858
* c-common.h (enum lookup_name_fuzzy_kind): Add
FUZZY_LOOKUP_FUNCTION_NAME.

* c-decl.c (implicit_decl_warning): Use FUZZY_LOOKUP_FUNCTION_NAME
instead of FUZZY_LOOKUP_NAME.
(lookup_name_fuzzy): For FUZZY_LOOKUP_FUNCTION_NAME consider
FUNCTION_DECLs, {VAR,PARM}_DECLs function pointers and macros.

* gcc.dg/spellcheck-identifiers-3.c: New test.

From-SVN: r238369

8 years agore PR fortran/71807 (Internal compiler error with NULL() reference in structure const...
Andre Vehreschild [Fri, 15 Jul 2016 09:28:47 +0000 (11:28 +0200)]
re PR fortran/71807 (Internal compiler error with NULL() reference in structure constructor)

gcc/fortran/ChangeLog:

2016-07-15  Andre Vehreschild  <vehre@gcc.gnu.org>

PR fortran/71807
* trans-expr.c (gfc_trans_subcomponent_assign): Special casing
when allocatable component is set to null() in initializer.

gcc/testsuite/ChangeLog:

2016-07-15  Andre Vehreschild  <vehre@gcc.gnu.org>

PR fortran/71807
* gfortran.dg/null_9.f90: New test.

From-SVN: r238368

8 years agotree-scalar-evolution.c (simple_iv_with_niters): New funcion.
Bin Cheng [Fri, 15 Jul 2016 09:04:57 +0000 (09:04 +0000)]
tree-scalar-evolution.c (simple_iv_with_niters): New funcion.

* tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
(derive_simple_iv_with_niters): New function.
(simple_iv): Rewrite using simple_iv_with_niters.
* tree-scalar-evolution.h (simple_iv_with_niters): New decl.
* tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
function.
(number_of_iterations_exit): Rewrite using above function.
* tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
Decl.

gcc/testsuite
* gcc.dg/tree-ssa/loop-41.c: New test.

From-SVN: r238367

8 years agore PR tree-optimization/71347 (Performance drop after r235513 on x86-64 in 32-bit...
Bin Cheng [Fri, 15 Jul 2016 08:53:48 +0000 (08:53 +0000)]
re PR tree-optimization/71347 (Performance drop after r235513 on x86-64 in 32-bit mode.)

gcc/testsuite
PR tree-optimization/71347
* gcc.dg/tree-ssa/pr71347.c: XFAIL on ia64, arm, m68k and sparc.

From-SVN: r238366

8 years agoFix the constraints for any's assignment operator template to properly
Ville Voutilainen [Fri, 15 Jul 2016 07:44:22 +0000 (10:44 +0300)]
Fix the constraints for any's assignment operator template to properly
reject assignment from a non-copyable lvalue.

From-SVN: r238365

8 years agoi386.c (ix86_builtin_vectorization_cost): Adjust vec_construct cost.
Richard Biener [Fri, 15 Jul 2016 07:38:01 +0000 (07:38 +0000)]
i386.c (ix86_builtin_vectorization_cost): Adjust vec_construct cost.

2016-07-15  Richard Biener  <rguenther@suse.de>

* config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
vec_construct cost.

From-SVN: r238364

8 years agoDaily bump.
GCC Administrator [Fri, 15 Jul 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r238362

8 years agore PR fortran/29819 (Error/warning message should ignore comments for "1" in %C output)
Steven G. Kargl [Thu, 14 Jul 2016 20:54:40 +0000 (20:54 +0000)]
re PR fortran/29819 (Error/warning message should ignore comments for "1" in %C output)

2016-07-14  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/29819
* parse.c (parse_contained): Use proper locus.

2016-07-14  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/29819
* gfortran.dg/bind_c_usage_9.f03: Move dg-error.
* gfortran.dg/contains.f90: Ditto.
* gfortran.dg/contains_empty_1.f03: Ditto.
* gfortran.dg/submodule_3.f08: Ditto.

From-SVN: r238354

8 years agore PR testsuite/71865 (test case gcc.dg/diagnostic-token-ranges.c fails starting...
Jakub Jelinek [Thu, 14 Jul 2016 18:42:53 +0000 (20:42 +0200)]
re PR testsuite/71865 (test case gcc.dg/diagnostic-token-ranges.c fails starting with r237714)

PR testsuite/71865
* gcc.dg/diagnostic-token-ranges.c: Add -std=c11 to dg-options.
(wide_string_literal_in_asm): Use __asm instead of asm, adjust
expected diagnostics.

From-SVN: r238353

8 years agore PR c/71858 (Surprising suggestions for misspellings)
Jakub Jelinek [Thu, 14 Jul 2016 18:34:00 +0000 (20:34 +0200)]
re PR c/71858 (Surprising suggestions for misspellings)

PR c/71858
* c-decl.c (lookup_name_fuzzy): Ignore binding->invisible.

* gcc.dg/spellcheck-identifiers.c (snprintf): Declare.
* gcc.dg/spellcheck-identifiers-2.c: New test.
* gcc.dg/diagnostic-token-ranges.c (nanl): Declare.
* c-c++-common/attributes-1.c: Adjust dg-prune-output.

From-SVN: r238352

8 years agore PR tree-optimization/71872 (ICE in inchash::add_expr, at tree.c:7782 - OEP_ADDRESS...
Jakub Jelinek [Thu, 14 Jul 2016 18:30:38 +0000 (20:30 +0200)]
re PR tree-optimization/71872 (ICE in inchash::add_expr, at tree.c:7782 - OEP_ADDRESS_OF asserted for ADDR_EXPR applied to constant)

PR tree-optimization/71872
* tree-data-ref.c (get_references_in_stmt): Ignore references
with is_gimple_constant get_base_address.

* gcc.c-torture/compile/pr71872.c: New test.

From-SVN: r238351

8 years agoarm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
Thomas Preud'homme [Thu, 14 Jul 2016 17:21:21 +0000 (17:21 +0000)]
arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.

2016-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
    (TARGET_HAVE_LDACQD): New macro.
    * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
    than TARGET_HAVE_LDACQ.
    (arm_load_acquire_exclusivedi): Likewise.
    (arm_store_release_exclusivedi): Likewise.

    libgcc/
    * gcc.target/arm/atomic-comp-swap-release-acquire.c: Rename into ...
    * gcc.target/arm/atomic-comp-swap-release-acquire-1.c: This.
    * gcc.target/arm/atomic-op-acq_rel.c: Rename into ...
    * gcc.target/arm/atomic-op-acq_rel-1.c: This.
    * gcc.target/arm/atomic-op-acquire.c: Rename into ...
    * gcc.target/arm/atomic-op-acquire-1.c: This.
    * gcc.target/arm/atomic-op-char.c: Rename into ...
    * gcc.target/arm/atomic-op-char-1.c: This.
    * gcc.target/arm/atomic-op-consume.c: Rename into ...
    * gcc.target/arm/atomic-op-consume-1.c: This.
    * gcc.target/arm/atomic-op-int.c: Rename into ...
    * gcc.target/arm/atomic-op-int-1.c: This.
    * gcc.target/arm/atomic-op-relaxed.c: Rename into ...
    * gcc.target/arm/atomic-op-relaxed-1.c: This.
    * gcc.target/arm/atomic-op-release.c: Rename into ...
    * gcc.target/arm/atomic-op-release-1.c: This.
    * gcc.target/arm/atomic-op-seq_cst.c: Rename into ...
    * gcc.target/arm/atomic-op-seq_cst-1.c: This.
    * gcc.target/arm/atomic-op-short.c: Rename into ...
    * gcc.target/arm/atomic-op-short-1.c: This.
    * gcc.target/arm/atomic-comp-swap-release-acquire-2.c: New test.
    * gcc.target/arm/atomic-op-acq_rel-2.c: Likewise.
    * gcc.target/arm/atomic-op-acquire-2.c: Likewise.
    * gcc.target/arm/atomic-op-char-2.c: Likewise.
    * gcc.target/arm/atomic-op-consume-2.c: Likewise.
    * gcc.target/arm/atomic-op-int-2.c: Likewise.
    * gcc.target/arm/atomic-op-relaxed-2.c: Likewise.
    * gcc.target/arm/atomic-op-release-2.c: Likewise.
    * gcc.target/arm/atomic-op-seq_cst-2.c: Likewise.
    * gcc.target/arm/atomic-op-short-2.c: Likewise.

From-SVN: r238348

8 years agore PR fortran/70842 (internal compiler error with character members within a polymorp...
Andre Vehreschild [Thu, 14 Jul 2016 17:07:47 +0000 (19:07 +0200)]
re PR fortran/70842 (internal compiler error with character members within a polymorphic pointer)

gcc/testsuite/ChangeLog:

2016-07-14  Andre Vehreschild  <vehre@gcc.gnu.org>

PR fortran/70842
* gfortran.dg/select_type_35.f03: New test.

gcc/fortran/ChangeLog:

2016-07-14  Andre Vehreschild  <vehre@gcc.gnu.org>

PR fortran/70842
* simplify.c (gfc_simplify_len): Only for unlimited polymorphic
types replace the expression's _data ref with a _len ref.

From-SVN: r238347

8 years agore PR rtl-optimization/71878 (ICE in cselib_record_set)
Thomas Preud'homme [Thu, 14 Jul 2016 16:41:06 +0000 (16:41 +0000)]
re PR rtl-optimization/71878 (ICE in cselib_record_set)

2016-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    PR rtl-optimization/71878
    * lra-constraints.c (match_reload): Pass information about other
    output operands.  Create new unique register value if matching input
    operand shares same register value as output operand being considered.
    (curr_insn_transform): Record output operands already processed.

From-SVN: r238346

8 years agoInclude header for std::__parallel::search
Jonathan Wakely [Thu, 14 Jul 2016 15:43:17 +0000 (16:43 +0100)]
Include header for std::__parallel::search

* include/experimental/functional: Include <parallel/algorithm> in
Parallel Mode.

From-SVN: r238342

8 years agoAdd header for std::search to testcase
Jonathan Wakely [Thu, 14 Jul 2016 15:27:09 +0000 (16:27 +0100)]
Add header for std::search to testcase

* testsuite/experimental/functional/searchers.cc: Include <algorithm>
for std::search.

From-SVN: r238341

8 years ago[vectorizer][2/2] Hook up mult synthesis logic into vectorisation of mult-by-constant
Kyrylo Tkachov [Thu, 14 Jul 2016 14:32:39 +0000 (14:32 +0000)]
[vectorizer][2/2] Hook up mult synthesis logic into vectorisation of mult-by-constant

PR target/65951
PR tree-optimization/70923
* tree-vect-patterns.c: Include mult-synthesis.h.
(target_supports_mult_synth_alg): New function.
(synth_lshift_by_additions): Likewise.
(apply_binop_and_append_stmt): Likewise.
(vect_synth_mult_by_constant): Likewise.
(target_has_vecop_for_code): Likewise.
(vect_recog_mult_pattern): Use above functions to synthesize vector
multiplication by integer constants.

* gcc.dg/vect/vect-mult-const-pattern-1.c: New test.
* gcc.dg/vect/vect-mult-const-pattern-2.c: Likewise.
* gcc.dg/vect/pr65951.c: Likewise.
* gcc.dg/vect/vect-iv-9.c: Remove ! vect_int_mult-specific scan.

From-SVN: r238340

8 years ago[RS6000] Disparage altivec_mov gpr alternatives
Alan Modra [Thu, 14 Jul 2016 14:25:47 +0000 (23:55 +0930)]
[RS6000] Disparage altivec_mov gpr alternatives

and fix constraint '*' placement.

* gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
gpr alternatives.  Correct '*' placement on Y,r alternative.
Add '*' on operand 1 of r,r alternative.

From-SVN: r238339

8 years ago[1/2] Move choose_mult_variant declaration and dependent declarations to expmed.h
Kyrylo Tkachov [Thu, 14 Jul 2016 13:57:05 +0000 (13:57 +0000)]
[1/2] Move choose_mult_variant declaration and dependent declarations to expmed.h

* expmed.c (mult_variant, choose_mult_variant): Move declaration to...
* expmed.h: ... Here.

From-SVN: r238337

8 years agogimple.h (stmt_can_terminate_bb_p): New function.
Jan Hubicka [Thu, 14 Jul 2016 13:52:21 +0000 (15:52 +0200)]
gimple.h (stmt_can_terminate_bb_p): New function.

* gimple.h (stmt_can_terminate_bb_p): New function.
* tree-cfg.c (need_fake_edge_p): Rename to ...
(stmt_can_terminate_bb_p): ... this; return true if stmt can
throw external; handle const and pure calls.
* tree-ssa-loop-niter.c (loop_only_exit_p): Use it.

From-SVN: r238336

8 years agopr60226.c: Expect maximum object file alignment error on AIX.
David Edelsohn [Thu, 14 Jul 2016 13:07:23 +0000 (13:07 +0000)]
pr60226.c: Expect maximum object file alignment error on AIX.

        * c-c++-common/pr60226.c: Expect maximum object file alignment
        error on AIX.

From-SVN: r238335

8 years agore PR tree-optimization/71866 (gcc locks up after fix for PR70159)
Richard Biener [Thu, 14 Jul 2016 12:15:38 +0000 (12:15 +0000)]
re PR tree-optimization/71866 (gcc locks up after fix for PR70159)

2016-07-14  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71866
* tree-ssa-pre.c (get_constant_for_value_id): Remove.
(do_hoist_insertion): Avoid endless recursion when we
didn't insert anything because we managed to simplify
things down to a constant or SSA name.
(fully_constant_expression): Re-write in terms of ...
* tree-ssa-sccvn.h (vn_nary_simplify): ... this.  Declare.
* tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
vn_nary_build_or_lookup_1.
(vn_nary_build_or_lookup_1): Added flag and renamed from ...
(vn_nary_build_or_lookup): ... this which now wraps it.

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

From-SVN: r238334

8 years agodecl.c (gnat_to_gnu_entity): Also use the void pointer type if the designated type...
Eric Botcazou [Thu, 14 Jul 2016 11:12:22 +0000 (11:12 +0000)]
decl.c (gnat_to_gnu_entity): Also use the void pointer type if the designated type is incomplete and has no...

* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Also use
the void pointer type if the designated type is incomplete and has no
full view in LTO mode.
<E_Access_Protected_Subprogram_Type>: Adjust comment.
<E_Incomplete_Type>: Likewise.
* gcc-interface/trans.c (Call_to_gnu): Do not convert to the type of
the actual if it is a dummy type.

From-SVN: r238333

8 years agoImprove doxygen comments for allocators in containers
Jonathan Wakely [Thu, 14 Jul 2016 10:02:10 +0000 (11:02 +0100)]
Improve doxygen comments for allocators in containers

PR libstdc++/70716
* include/bits/forward_list.h (forward_list): Update doxygen comments
to reflect allocator propagation semantics. Remove ambiguous
statements about data being lost.
* include/bits/stl_deque.h (deque): Likewise.
* include/bits/stl_list.h (list): Likewise.
* include/bits/stl_map.h (map): Likewise.
* include/bits/stl_multimap.h (multimap): Likewise.
* include/bits/stl_multiset.h (multiset): Likewise.
* include/bits/stl_set.h (set): Likewise.
* include/bits/stl_vector.h (vector): Likewise.
* include/bits/unordered_map.h (unordered_map, unordered_multimap):
Likewise.
* include/bits/unordered_set.h (unordered_set, unordered_multiset):
Likewise.

From-SVN: r238332

8 years agopr42574.c: Add missing target keyword for the dg-do selector and enclose boolean...
Thomas Preud'homme [Thu, 14 Jul 2016 09:20:48 +0000 (09:20 +0000)]
pr42574.c: Add missing target keyword for the dg-do selector and enclose boolean...

2016-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/testsuite/
    * gcc.target/arm/pr42574.c: Add missing target keyword for the dg-do
    selector and enclose boolean expression in curly braces.

From-SVN: r238331

8 years agoAdded forgotten PR testsuite/71489 reference.
Rainer Orth [Thu, 14 Jul 2016 09:10:24 +0000 (09:10 +0000)]
Added forgotten PR testsuite/71489 reference.

From-SVN: r238330

8 years agoImplement P0032R3, Homogeneous interface for variant, any and optional,
Ville Voutilainen [Thu, 14 Jul 2016 09:10:05 +0000 (12:10 +0300)]
Implement P0032R3, Homogeneous interface for variant, any and optional,

for the parts concerning any and optional.
* include/std/any (_Storage()): Make constexpr and have it
initialize _M_ptr.
(any()): Make constexpr.
(any(const any&)): Adjust.
(any(any&&)): Likewise.
(__any_constructible_t): New.
(any(_ValueType&&)): Constrain.
(any(in_place_type_t<_Tp>, _Args&&...)): New.
(any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
Likewise.
(~any()): Adjust.
(operator=(const any&)): Likewise.
(operator=(any&&)): Likewise.
(operator=(_ValueType&&)): Constrain.
(emplace(_Args&&...)): New.
(emplace(initializer_list<_Up>, _Args&&...)): Likewise.
(clear()): Remove.
(reset()): New.
(swap(any&)): Adjust.
(empty()): Remove.
(has_value()): New.
(type()): Adjust.
(_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
(_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
(make_any(_Args&&...)): Likewise.
(make_any(initializer_list<_Up>, _Args&&...)): Likewise.
* include/std/optional (in_place_t, in_place): Remove.
(bad_optional_access): Add a comment referring to LEWG 72.
(emplace(_Args&&...)): Constrain.
(has_value()): New.
(reset()): Likewise.
(make_optional(_Args&&...)): Likewise.
(make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
* include/std/utility (in_place_tag): New.
(__in_place, __in_place_type, __in_place_index): Likewise.
(in_place_t, in_place_type_t, in_place_index_t): Likewise.
(in_place(__in_place*)): Likewise.
(in_place(__in_place_type<_Tp>*)): Likewise.
(in_place(__in_place_index<_Idx>*)): Likewise.
* testsuite/20_util/any/assign/1.cc: Adjust.
* testsuite/20_util/any/assign/emplace.cc: New.
* testsuite/20_util/any/assign/self.cc: Adjust.
* testsuite/20_util/any/cons/1.cc: Likewise.
* testsuite/20_util/any/cons/in_place.cc: New.
* testsuite/20_util/any/make_any.cc: Likewise.
* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
* testsuite/20_util/any/misc/swap.cc: Likewise.
* testsuite/20_util/any/modifiers/1.cc: Likewise.
* testsuite/20_util/any/requirements.cc: New.
* testsuite/20_util/in_place/requirements.cc: Likewise.
* testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
* testsuite/20_util/optional/in_place.cc: Likewise.
* testsuite/20_util/optional/make_optional.cc: Add tests for
the new overloads of make_optional.

From-SVN: r238329

8 years agoFix ChangeLog.
Ville Voutilainen [Thu, 14 Jul 2016 09:09:50 +0000 (12:09 +0300)]
Fix ChangeLog.

From-SVN: r238328

8 years ago[RS6000] -mno-vsx should force -mno-power9-dform
Alan Modra [Thu, 14 Jul 2016 04:26:36 +0000 (13:56 +0930)]
[RS6000] -mno-vsx should force -mno-power9-dform

PR target/71733
gcc/
* config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
with p9_vector override before power9-dform override.
gcc/testsuite/
* gcc.target/powerpc/p9-novsx.c: New.

From-SVN: r238326

8 years agoSome fixes for profile test cases for autofdo
Andi Kleen [Thu, 14 Jul 2016 02:14:56 +0000 (02:14 +0000)]
Some fixes for profile test cases for autofdo

This fixes some basic issues with the profile test cases with autofdo.

- Disable checking for value transformations that autofdo does not
  support.
- Disable checking for fixed hit counts which autofdo does not support
- Enable dumping of afdo log file and check right log file.
- Increase run time of test cases to 1M iterations because autofdo needs
  a few samples to make sense of a program. The test case don't run
  noticeable slower with that.

There are still failures unfortunately, especially the indirect call
transformations do not trigger because autofdo thinks they are not hot.
This can be addressed later.

gcc/testsuite/:

2016-07-13  Andi Kleen  <ak@linux.intel.com>

* g++.dg/tree-prof/indir-call-prof.C: Basic fixes for autofdo.
* g++.dg/tree-prof/morefunc.C: Dito.
* g++.dg/tree-prof/pr35545.C: Dito.
* g++.dg/tree-prof/reorder.C: Dito.
* gcc.dg/tree-prof/20050826-2.c: Dito.
* gcc.dg/tree-prof/cmpsf-1.c: Dito.
* gcc.dg/tree-prof/cold_partition_label.c: Dito.
* gcc.dg/tree-prof/ic-misattribution-1.c: Dito.
* gcc.dg/tree-prof/indir-call-prof.c: Dito.
* gcc.dg/tree-prof/inliner-1.c: Dito.
* gcc.dg/tree-prof/merge_block.c: Dito.
* gcc.dg/tree-prof/stringop-1.c: Dito.
* gcc.dg/tree-prof/stringop-2.c: Dito.
* gcc.dg/tree-prof/switch-case-1.c: Dito.
* gcc.dg/tree-prof/switch-case-2.c: Dito.
* gcc.dg/tree-prof/time-profiler-1.c: Dito.
* gcc.dg/tree-prof/time-profiler-2.c: Dito.
* gcc.dg/tree-prof/update-loopch.c: Dito.
* gcc.dg/tree-prof/val-prof-1.c: Dito.
* gcc.dg/tree-prof/val-prof-2.c: Dito.
* gcc.dg/tree-prof/val-prof-3.c: Dito.
* gcc.dg/tree-prof/val-prof-4.c: Dito.
* gcc.dg/tree-prof/val-prof-5.c: Dito.
* gcc.dg/tree-prof/val-prof-6.c: Dito.
* gcc.dg/tree-prof/val-prof-7.c: Dito.

From-SVN: r238325

8 years agoClean up imports files in test suite
Andi Kleen [Thu, 14 Jul 2016 02:14:43 +0000 (02:14 +0000)]
Clean up imports files in test suite

autofdo create_gcov creates an extra .imports file. Always remove that
too when running an autofdo test case.

gcc/testsuite/:

2016-07-13  Andi Kleen  <ak@linux.intel.com>

* lib/profopt.exp (profopt-execute): Remove .imports files.

From-SVN: r238324

8 years agoAlways print gcc-auto-profile line in dump file
Andi Kleen [Thu, 14 Jul 2016 02:14:29 +0000 (02:14 +0000)]
Always print gcc-auto-profile line in dump file

not just when verbose. This ensures all command lines needed to
reproduce the test case are always logged

gcc/testsuite/:

2016-07-13  Andi Kleen  <ak@linux.intel.com>

* lib/profopt.exp (profopt-execute): Always log profiler
command line.

From-SVN: r238323

8 years agoAdd dg-final-scan-autofdo and dg-final-scan-not-autofdo
Andi Kleen [Thu, 14 Jul 2016 02:14:13 +0000 (02:14 +0000)]
Add dg-final-scan-autofdo and dg-final-scan-not-autofdo

Autofdo outputs to different dump files and doesn't support some
transformation that normal profiling. Add dg-final-scan-autofdo
and dg-final-scan-not-autofdo statements to the test suite
so that the test cases can hande those cases separately.

gcc/testsuite/:

2016-07-13  Andi Kleen  <ak@linux.intel.com>

* lib/profopt.exp (dg-final-scan-autofdo,
dg-final-scan-not-autofdo): New functions.

From-SVN: r238322

8 years agoDon't run instrumented value profiler changes with afdo
Andi Kleen [Thu, 14 Jul 2016 02:14:02 +0000 (02:14 +0000)]
Don't run instrumented value profiler changes with afdo

The pass to transform gimple based on value profiling runs with autofdo
on, but currently every transformation fails. For indirect calls autofdo
does it on its own, and it doesn't suppport other value profiling. So don't
run this pass when autofdo is active. This also avoids bogus
dump file entries.

gcc/:

2016-07-13  Andi Kleen  <ak@linux.intel.com>

* value-prof.c (gimple_value_profile_transformations): Don't run
when auto_profile is on.

From-SVN: r238321

8 years agoPrint indirect call changes in afdo dump file
Andi Kleen [Thu, 14 Jul 2016 02:13:48 +0000 (02:13 +0000)]
Print indirect call changes in afdo dump file

Print some information about indirect call promotions in the afdo dump
file. Do it in the same format as the instrumented profiler so that
the test suite can match on it.

gcc/:

2016-07-13  Andi Kleen  <ak@linux.intel.com>

* auto-profile.c (update_inlined_ind_target,
afdo_indirect_call): Print information to dump file.

From-SVN: r238320

8 years agoDaily bump.
GCC Administrator [Thu, 14 Jul 2016 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r238319

8 years agogenrecog.c (special_predicate_operand_p): New function.
Andrew Burgess [Wed, 13 Jul 2016 22:18:40 +0000 (23:18 +0100)]
genrecog.c (special_predicate_operand_p): New function.

* genrecog.c (special_predicate_operand_p): New function.
(predicate_name): Move function.
(validate_pattern): Don't warn about missing mode for all
define_special_predicate predicates.

From-SVN: r238314

8 years agore PR c++/70926 (Libiberty Demangler segfaults (5))
Marcel Böhme [Wed, 13 Jul 2016 22:06:09 +0000 (16:06 -0600)]
re PR c++/70926 (Libiberty Demangler segfaults (5))

PR c++/70926
* cplus-dem.c: Handle large values and overflow when demangling
length variables.
(demangle_template_value_parm): Read only until end of mangled string.
(do_hpacc_template_literal): Likewise.
(do_type): Handle overflow when demangling array indices.

From-SVN: r238313

8 years agoFix return type handling for Proxy classes
Matthew Fortune [Wed, 13 Jul 2016 21:34:52 +0000 (21:34 +0000)]
Fix return type handling for Proxy classes

libjava/

* java/lang/reflect/natVMProxy.cc (unbox): Use ffi_arg for
integer return types smaller than a word.
* testsuite/libjava.jar/ReturnInvocationHandler.java: New file.
* testsuite/libjava.jar/ReturnProxyTest.jar: Likewise.
* testsuite/libjava.jar/ReturnProxyTest.java: Likewise.
* testsuite/libjava.jar/ReturnProxyTest.out: Likewise.
* testsuite/libjava.jar/ReturnProxyTest.xfail: Likewise.
* testsuite/libjava.jar/ReturnTypes.java: Likewise.
* testsuite/libjava.jar/ReturnTypesImpl.java: Likewise.

From-SVN: r238312

8 years agoFix the use of FFI closures in the java interpreter for integer returns
Matthew Fortune [Wed, 13 Jul 2016 21:34:35 +0000 (21:34 +0000)]
Fix the use of FFI closures in the java interpreter for integer returns

libjava/

* interpret-run.cc: Use ffi_arg for FFI integer return types.
* testsuite/libjava.jar/arraysort.java: New file.
* testsuite/libjava.jar/arraysort.jar: New file.
* testsuite/libjava.jar/arraysort.out: New file.
* testsuite/libjava.jar/arraysort.xfail: New file.

From-SVN: r238311

8 years agolibstdc++/71856 Define _GLIBCXX_PARALLEL_ASSERTIONS
Jonathan Wakely [Wed, 13 Jul 2016 17:22:57 +0000 (18:22 +0100)]
libstdc++/71856 Define _GLIBCXX_PARALLEL_ASSERTIONS

PR libstdc++/71856
* include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
* include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
on _GLIBCXX_ASSERTIONS.
* include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
Include <unistd.h> for sleep.
* include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
* include/parallel/merge.h: Likewise.
* include/parallel/multiway_merge.h: Likewise.
* include/parallel/partition.h: Likewise.
* include/parallel/queue.h: Likewise.
* include/parallel/sort.h: Likewise.
* testsuite/25_algorithms/headers/algorithm/
parallel_algorithm_assert.cc: New.

From-SVN: r238307

8 years agoMake basic_string::replace forward to different overload
Jonathan Wakely [Wed, 13 Jul 2016 17:22:51 +0000 (18:22 +0100)]
Make basic_string::replace forward to different overload

* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
(replace(__const_iterator, __const_iterator, initializer_list<C>)):
Forward to different overload.

From-SVN: r238306

8 years agoMake __allocated_ptr::_S_raw_ptr static
Jonathan Wakely [Wed, 13 Jul 2016 17:22:47 +0000 (18:22 +0100)]
Make __allocated_ptr::_S_raw_ptr static

* include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
static.

From-SVN: r238305

8 years agoRevert "Add non-const overload of std::string::data()"
Jonathan Wakely [Wed, 13 Jul 2016 15:56:46 +0000 (16:56 +0100)]
Revert "Add non-const overload of std::string::data()"

This reverts r238291 aka 4300aa2087d90cd2d55852fa38f082a89bc7e72d.

From-SVN: r238303