gcc.git
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

8 years agotree-vect-data-refs.c (vect_no_alias_p): New function.
Bin Cheng [Wed, 13 Jul 2016 15:06:40 +0000 (15:06 +0000)]
tree-vect-data-refs.c (vect_no_alias_p): New function.

* tree-vect-data-refs.c (vect_no_alias_p): New function.
(vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
resolve alias checks which are known at compilation time.
Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
alias checks are resolved.  Move dump info for too many runtime
alias checks to here...
* tree-vect-loop.c (vect_analyze_loop_2): ...From here.

gcc/testsuite
* gcc.dg/vect/vect-35-big-array.c: Refine comment and test.
* gcc.dg/vect/vect-35.c: Ditto.
* gcc.dg/vect/vect-alias-check-2.c: New test.

From-SVN: r238301

8 years agoFix Fortran DO loop fallback
Martin Liska [Wed, 13 Jul 2016 14:03:29 +0000 (16:03 +0200)]
Fix Fortran DO loop fallback

* gfortran.dg/ldist-1.f90: Revert change introduces in r238114.
* gfortran.dg/vect/pr62283.f: Add -fno-ipa-icf to additional
options.
* gfortran.dg/pr42108.f90: Update expected dump scan.

From-SVN: r238300

8 years agore PR tree-optimization/24574 (a!=0?a/10:0 is not reduced to a/10)
Richard Biener [Wed, 13 Jul 2016 13:57:05 +0000 (13:57 +0000)]
re PR tree-optimization/24574 (a!=0?a/10:0 is not reduced to a/10)

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

PR tree-optimization/24574
* tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
position and add shift, rotate, divison and modulo support
for left zero.
(value_replacement): Pass in argument position to absorbing_element_p.

* gcc.dg/pr24574.c: New testcase.

From-SVN: r238299

8 years agoFix some bogus testsuite failures for avr.
Senthil Kumar Selvaraj [Wed, 13 Jul 2016 12:12:10 +0000 (12:12 +0000)]
Fix some bogus testsuite failures for avr.

gcc/testsuite/

        * c-c++-common/Wduplicated-cond-3.c (fn10): Use smaller
        const literal.
        * c-c++-common/builtin-arith-overflow-2.c: Skip for avr.
        * c-c++-common/pr68833-1.c: Require int32plus.
        * gcc.dg/ipa/pr63551.c: Likewise.
        * gcc.dg/ipa/pr63595.c: Require ptr32plus.
        * gcc.dg/ipa/pr64041.c: Require int32plus.

From-SVN: r238294

8 years agoFix ChangeLog.
Ville Voutilainen [Wed, 13 Jul 2016 11:27:37 +0000 (14:27 +0300)]
Fix ChangeLog.

From-SVN: r238293

8 years agoImplement P0307R2, Making Optional Greater Equal Again.
Ville Voutilainen [Wed, 13 Jul 2016 11:25:51 +0000 (14:25 +0300)]
Implement P0307R2, Making Optional Greater Equal Again.

* include/experimental/optional (_Has_addressof): Fix the comment.
* include/std/optional (_Has_addressof): Likewise.
(operator=(_Up&&)): Constrain.
(operator=(const optional<_Up>&)): Likewise.
(operator=(optional<_Up>&&)): Likewise.
(__optional_relop_t): New.
(operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
(operator!=(const optional<_Tp>&, const optional<_Tp>&)):
Constrain and make transparent.
(operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
(operator>(const optional<_Tp>&, const optional<_Tp>&)):
Constrain and make transparent.
(operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
(operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
(operator==(const optional<_Tp>&, const _Tp&): Constrain.
(operator==(const _Tp&, const optional<_Tp>&)): Likewise.
(operator!=(const optional<_Tp>&, _Tp const&)):
Constrain and make transparent.
(operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
(operator<(const optional<_Tp>&, const _Tp&)): Constrain.
(operator<(const _Tp&, const optional<_Tp>&)): Likewise.
(operator>(const optional<_Tp>&, const _Tp&)):
Constrain and make transparent.
(operator>(const _Tp&, const optional<_Tp>&)): Likewise.
(operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
(operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
(operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
(operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
* testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
* testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
* testsuite/20_util/optional/relops/1.cc: Likewise.
* testsuite/20_util/optional/relops/2.cc: Likewise.
* testsuite/20_util/optional/relops/3.cc: Likewise.
* testsuite/20_util/optional/relops/4.cc: Likewise.
* testsuite/20_util/optional/requirements.cc: Add tests to verify
that optional's relops are transparent and don't synthesize
operators. Also test that assignment sfinaes.

From-SVN: r238292

8 years agoAdd non-const overload of std::string::data()
Jonathan Wakely [Wed, 13 Jul 2016 11:08:37 +0000 (12:08 +0100)]
Add non-const overload of std::string::data()

Also fix confusion between pointer and _CharT*, so that allocators with
fancy pointers work correctly.

* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
New function.
(_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
instead of _M_data().
(basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
Likewise.
(append(const basic_string&)): Likewise.
(append(const basic_string&, size_type, size_type)): Likewise.
(assign(const basic_string&, size_type, size_type)): Likewise.
(insert(size_type, const basic_string&)): Likewise.
(insert(size_type, const basic_string&, size_type, size_type)):
Likewise.
(replace(size_type, size_type, const basic_string&, size_type,
size_type)): Likewise.
(replace(__const_iterator, __const_iterator, const basic_string&)):
Likewise.
(c_str(), data()): Use c_str() instead of _M_data().
(data()): Add non-const overload as per LWG 2391 and P0272R1.
(compare(const basic_string&)): Use data() instead of _M_data().
[!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
* include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
Pass raw pointers to _S_copy.
(_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
_S_assign.
(find(const _CharT*, size_type, size_type)): Use data instead of
_M_data().
* testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
* testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
* testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.

From-SVN: r238291

8 years agore PR ipa/71633 ([CHKP] internal compiler error: in inline_call)
Ilya Enkovich [Wed, 13 Jul 2016 11:02:15 +0000 (11:02 +0000)]
re PR ipa/71633 ([CHKP] internal compiler error: in inline_call)

gcc/

PR ipa/71633
* ipa-inline-transform.c (inline_call): Support
instrumented thunks.

gcc/testsuite/

PR ipa/71633
* g++.dg/pr71633.C: New test.

From-SVN: r238290

8 years agoarm.h (TARGET_HAVE_CBZ): Define.
Thomas Preud'homme [Wed, 13 Jul 2016 10:54:12 +0000 (10:54 +0000)]
arm.h (TARGET_HAVE_CBZ): Define.

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

    gcc/
    * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
    (TARGET_IDIV): Set for all Thumb targets provided they have hardware
    divide feature.
    * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
    Baseline.  Make initial alternative TARGET_32BIT only.
    (udivsi3): Likewise.
    * config/arm/thumb1.md (thumb1_cbz): New define_insn.
    * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
    target.

    gcc/testsuite/
    * lib/target-supports.exp (check_effective_target_arm_thumb1_cbz_ok):
    Add new arm_thumb1_cbz_ok effective target.
    * gcc.target/arm/cbz.c: New test.

From-SVN: r238289

8 years agoarm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
Thomas Preud'homme [Wed, 13 Jul 2016 10:54:01 +0000 (10:54 +0000)]
arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.

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

    gcc/
    * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
    * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
    availability with TARGET_HAVE_MOVT.
    (thumb_legitimate_constant_p): Strip the high part of a label_ref.
    (thumb1_rtx_costs): Also return 0 if setting a half word constant and
    MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
    UINTVAL.
    (thumb1_size_rtx_costs): Make set of half word constant also cost 1
    extra instruction if MOVW is available.  Use a cost variable
    incremented by COSTS_N_INSNS (1) when the condition match rather than
    returning an arithmetic expression based on COSTS_N_INSNS.  Make
    constant with bottom half word zero cost 2 instruction if MOVW is
    available.
    * config/arm/arm.md (define_attr "arch"): Add v8mb.
    (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
    target is ARMv8-M Baseline.
    (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
    (arm_movtas_ze): Likewise.
    * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
    alternative for constants satisfying j constraint.
    (thumb1_movsi_insn): Likewise.
    (movsi splitter for K alternative): Tighten condition to not trigger
    if movt is available and j constraint is satisfied.
    (Pe immediate splitter): Likewise.
    (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
    constant fitting in an halfword to use MOVW.
    * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
    effective target.

    gcc/testsuite/
    * lib/target-supports.exp (check_effective_target_arm_thumb1_movt_ok):
    Define effective target.
    * gcc.target/arm/pr42574.c: Require arm_thumb1_ok and
    !arm_thumb1_movt_ok to exclude ARMv8-M Baseline.
    * gcc.target/arm/movhi_movw.c: New test.
    * gcc.target/arm/movsi_movw.c: Likewise.
    * gcc.target/arm/movdi_movw.c: Likewise.

From-SVN: r238288

8 years agore PR tree-optimization/71104 (ICE: verify_ssa failed (with vfork / error: definitio...
Richard Biener [Wed, 13 Jul 2016 08:03:04 +0000 (08:03 +0000)]
re PR tree-optimization/71104 (ICE: verify_ssa failed (with vfork /  error: definition in block 3 does not dominate use in block 7 ))

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

PR middle-end/71104
* gimplify.c (gimplify_modify_expr): Gimplify the RHS before
gimplifying the LHS.  Make sure to gimplify a returning twice
call LHS without using SSA names.

* gcc.dg/pr71104-1.c: New testcase.
* gcc.dg/pr71104-2.c: Likewise.

From-SVN: r238287

8 years agoremove unnecessary calls to vec::release
Trevor Saunders [Wed, 13 Jul 2016 02:44:59 +0000 (02:44 +0000)]
remove unnecessary calls to vec::release

There's no point in calling release () on an auto_vec just before it goes
out of scope.

gcc/ChangeLog:

2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree-data-ref.c (find_data_references_in_stmt): Remove
unnecessary call to vec::release.
(graphite_find_data_references_in_stmt): Likewise.
* tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
* tree-vect-stmts.c (vectorizable_condition): Likewise.

From-SVN: r238286

8 years agouse auto_vec for more local variables
Trevor Saunders [Wed, 13 Jul 2016 02:44:52 +0000 (02:44 +0000)]
use auto_vec for more local variables

gcc/c/ChangeLog:

2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* c-parser.c (c_parser_generic_selection): Make type of variable
auto_vec.
(c_parser_omp_declare_simd): Likewise.

gcc/ChangeLog:

2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* cfgexpand.c (expand_used_vars): Make the type of a local variable auto_vec.
* genmatch.c (lower_for): Likewise.
* haifa-sched.c (haifa_sched_init): Likewise.
(add_to_speculative_block): Likewise.
(create_check_block_twin): Likewise.
* predict.c (handle_missing_profiles): Likewise.
* tree-data-ref.c (loop_nest_has_data_refs): Likewise.
* tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
* tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk): Likewise.
(maybe_lower_iteration_bound): Likewise.
* tree-ssa-sccvn.c (DFS): Likewise.
* tree-stdarg.c (reachable_at_most_once): Likewise.
* tree-vect-stmts.c (vectorizable_conversion): Likewise.
(vectorizable_store): Likewise.

From-SVN: r238285

8 years agotree-ssa-sccvn.c: use auto_vec for sccvn_dom_walker::cond_stack
Trevor Saunders [Wed, 13 Jul 2016 02:44:35 +0000 (02:44 +0000)]
tree-ssa-sccvn.c: use auto_vec for sccvn_dom_walker::cond_stack

gcc/ChangeLog:

2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
(sccvn_dom_walker): make cond_stack an auto_vec.

From-SVN: r238284

8 years agoree.c: use auto_vec in ext_state
Trevor Saunders [Wed, 13 Jul 2016 02:44:28 +0000 (02:44 +0000)]
ree.c: use auto_vec in ext_state

gcc/ChangeLog:

2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* ree.c (struct ext_state): Make type of members auto_vec.
(find_and_remove_re): Adjust.

From-SVN: r238283

8 years agocfgexpand.c: use auto_vec in stack_vars_data
Trevor Saunders [Wed, 13 Jul 2016 02:43:56 +0000 (02:43 +0000)]
cfgexpand.c: use auto_vec in stack_vars_data

gcc/ChangeLog:

2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* cfgexpand.c (struct stack_vars_data): Make type of fields
auto_vec.
(expand_used_vars): Adjust.

From-SVN: r238282

8 years agoipa.c: remove static_{ctors,dtors} globals
Trevor Saunders [Wed, 13 Jul 2016 02:43:43 +0000 (02:43 +0000)]
ipa.c: remove static_{ctors,dtors} globals

gcc/ChangeLog:

2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* ipa.c (record_cdtor_fn): Adjust.
(build_cdtor_fns): Likewise.
(ipa_cdtor_merge): Make static_ctors and static_dtors local
variables.

From-SVN: r238281

8 years agogenextract.c: add [cd]tors to accum_extract
Trevor Saunders [Wed, 13 Jul 2016 02:43:23 +0000 (02:43 +0000)]
genextract.c: add [cd]tors to accum_extract

gcc/ChangeLog:

2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* genextract.c (struct accum_extract): Add constructor and make
members auto_vec.
(gen_insn): Adjust.

From-SVN: r238280

8 years agoc-decl.c: add [cd]tors to c_struct_parse_info
Trevor Saunders [Wed, 13 Jul 2016 02:43:17 +0000 (02:43 +0000)]
c-decl.c: add [cd]tors to c_struct_parse_info

gcc/c/ChangeLog:

2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* c-decl.c (struct c_struct_parse_info): Change member types
from vec to auto_vec.
(start_struct): Adjust.
(finish_struct): Likewise.

From-SVN: r238279

8 years agotree.c: add [cd]tors to free_lang_data_d
Trevor Saunders [Wed, 13 Jul 2016 02:43:10 +0000 (02:43 +0000)]
tree.c: add [cd]tors to free_lang_data_d

gcc/ChangeLog:

2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (struct free_lang_data_d): Add constructor and change
types of members to ones that automatically manage resources.
(fld_worklist_push): Adjust.
(find_decls_types): Likewise.
(find_decls_types_in_eh_region): Likewise.
(free_lang_data_in_cgraph): Stop manually creating and
destroying members of free_lang_data_d.

From-SVN: r238278

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

From-SVN: r238277

8 years agore PR tree-optimization/68961 (Test case gcc.target/powerpc/pr60203.c fails since...
Uros Bizjak [Tue, 12 Jul 2016 22:06:51 +0000 (00:06 +0200)]
re PR tree-optimization/68961 (Test case gcc.target/powerpc/pr60203.c fails since r231674)

PR rtl-optimization/68961
* config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
peephole variant.  Use sse_reg_operand predicates.

From-SVN: r238268

8 years agoescape: Add escape notes to export data.
Ian Lance Taylor [Tue, 12 Jul 2016 20:29:15 +0000 (20:29 +0000)]
escape: Add escape notes to export data.

    Reviewed-on: https://go-review.googlesource.com/22375

From-SVN: r238266

8 years agopredicates.md (x86_64_immediate_operand): Remove unneeded truncation to DImode.
Uros Bizjak [Tue, 12 Jul 2016 19:23:58 +0000 (21:23 +0200)]
predicates.md (x86_64_immediate_operand): Remove unneeded truncation to DImode.

* config/i386/predicates.md (x86_64_immediate_operand)
<case CONST_INT>: Remove unneeded truncation to DImode.
<case CONST>: Ditto.
(x86_64_zext_immediate_operand) <case CONST>: Ditto.

From-SVN: r238259

8 years agore PR target/71805 (incorrect code for test pr45752.c with -mcpu=power9)
Michael Meissner [Tue, 12 Jul 2016 17:42:04 +0000 (17:42 +0000)]
re PR target/71805 (incorrect code for test pr45752.c with -mcpu=power9)

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

PR target/71805
* config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
The xxperm and xxpermr instructions require that the 2nd input
operand overlap with the output operand, and not the 1st.
(altivec_vperm_v8hiv16qi): Likewise.
(altivec_vperm_<mode>_uns_internal): Likewise.
(altivec_vpermr_<mode>_internal): Likewise.
(vperm_v8hiv4si): Likewise.
(vperm_v16qiv8hi): Likewise.

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

PR target/71805
* gcc.target/powerpc/pr71805.c: New test.

From-SVN: r238256

8 years agoarm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE when -mno-pic-data-is-text...
Nathan Sidwell [Tue, 12 Jul 2016 16:25:10 +0000 (16:25 +0000)]
arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE when -mno-pic-data-is-text-relative is in effect...

gcc/
* config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
when -mno-pic-data-is-text-relative is in effect, by default.
* doc/invoke.texi (mpic-data-is-text-relative): Document new
behavior and clarify.

gcc/testsuite/
* gcc.target/arm/data-rel-1.c: New.
* gcc.target/arm/data-rel-2.c: New.
* gcc.target/arm/data-rel-3.c: New.

From-SVN: r238254

8 years ago_divkc3.c: New.
Bill Schmidt [Tue, 12 Jul 2016 16:05:18 +0000 (16:05 +0000)]
_divkc3.c: New.

[libgcc]

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

* config/rs6000/_divkc3.c: New.
* config/rs6000/_mulkc3.c: New.
* config/rs6000/quad-float128.h: Define TFtype; declare _mulkc3
and _divkc3.
* config/rs6000/t-float128: Add _mulkc3 and _divkc3 to
fp128_ppc_funcs.

[gcc/testsuite]

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

* gcc.target/powerpc/divkc3-1.c: New.
* gcc.target/powerpc/mulkc3-1.c: New.

From-SVN: r238253

8 years agoIntroduce new param: AVG_LOOP_NITER
Martin Liska [Tue, 12 Jul 2016 15:27:36 +0000 (17:27 +0200)]
Introduce new param: AVG_LOOP_NITER

* params.def: Add avg-loop niter.
* tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
* cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
* doc/invoke.texi: Document the new parameter.

From-SVN: r238252

8 years agoAdd tests that test boundary values of params
Martin Liska [Tue, 12 Jul 2016 15:03:07 +0000 (17:03 +0200)]
Add tests that test boundary values of params

* Makefile.in: Append rule for params-options.h.
* params-options.h: New file.
* gcc.dg/params/blocksort-part.c: New test.
* gcc.dg/params/params.exp: New file.

From-SVN: r238249

8 years ago[expr.c] PR middle-end/71700: zero-extend sub-word value when widening constructor...
Kyrylo Tkachov [Tue, 12 Jul 2016 15:00:28 +0000 (15:00 +0000)]
[expr.c] PR middle-end/71700: zero-extend sub-word value when widening constructor element

PR middle-end/71700
* expr.c (store_constructor): Mask sign-extended bits when widening
sub-word constructor element at the start of a word.

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

From-SVN: r238248

8 years agore PR rtl-optimization/71634 (Invalid write with in mark_loops_for_removal (ira-build...
Martin Liska [Tue, 12 Jul 2016 14:54:52 +0000 (16:54 +0200)]
re PR rtl-optimization/71634 (Invalid write with in mark_loops_for_removal (ira-build.c:2256) with --param ira-max-loops-num=0)

Fix PR rtl-optimization/71634

* ira-build.c (mark_loops_for_removal): Properly iterate
loops.

From-SVN: r238247

8 years agoRemove unused operator delete overloads (LWG 2458)
Jonathan Wakely [Tue, 12 Jul 2016 14:31:04 +0000 (15:31 +0100)]
Remove unused operator delete overloads (LWG 2458)

* libsupc++/new: Remove nothrow sized deletes (LWG 2458).
* doc/xml/manual/intro.xml: Document DR 2458 status.
* doc/html*: Regenerate.

From-SVN: r238246

8 years agoFix ChangeLog entry for r238244
Jonathan Wakely [Tue, 12 Jul 2016 14:07:49 +0000 (15:07 +0100)]
Fix ChangeLog entry for r238244

From-SVN: r238245

8 years agoAdd tests and docs for LWG 2212 support
Jonathan Wakely [Tue, 12 Jul 2016 14:00:26 +0000 (15:00 +0100)]
Add tests and docs for LWG 2212 support

* testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
* testsuite/23_containers/array/tuple_interface/tuple_element.cc:
Only include <array>.
* testsuite/23_containers/array/tuple_interface/tuple_size.cc:
Likewise.
* doc/xml/manual/intro.xml; Document LWG 2212 support.
* doc/html*: Regenerate.

From-SVN: r238244

8 years agoAdd std::vector::emplace() testcase from LWG 2164
Jonathan Wakely [Tue, 12 Jul 2016 14:00:11 +0000 (15:00 +0100)]
Add std::vector::emplace() testcase from LWG 2164

* testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
Add testcase from LWG 2164.

From-SVN: r238243

8 years agore PR tree-optimization/23286 (Missed code hoisting optimization)
Steven Bosscher [Tue, 12 Jul 2016 13:32:04 +0000 (13:32 +0000)]
re PR tree-optimization/23286 (Missed code hoisting optimization)

2016-07-12  Steven Bosscher  <steven@gcc.gnu.org>
Richard Biener  <rguenther@suse.de>

PR tree-optimization/23286
PR tree-optimization/70159
* doc/invoke.texi: Document -fcode-hoisting.
* common.opt (fcode-hoisting): New flag.
* opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
* tree-ssa-pre.c (pre_stats): Add hoist_insert.
(do_regular_insertion): Rename to ...
(do_pre_regular_insertion): ... this and amend general comments
on insertion strathegy.
(do_partial_partial_insertion): Rename to ...
(do_pre_partial_partial_insertion): ... this.
(do_hoist_insertion): New function.
(insert_aux): Take flags on whether to do PRE and/or hoist insertion
and call do_hoist_insertion properly.
(insert): Adjust.
(pass_pre::gate): Enable also if -fcode-hoisting is enabled.
(pass_pre::execute): Register hoist_insert stats.

* gcc.dg/tree-ssa/ssa-pre-11.c: Disable code hosting.
* gcc.dg/tree-ssa/ssa-pre-27.c: Likewise.
* gcc.dg/tree-ssa/ssa-pre-28.c: Likewise.
* gcc.dg/tree-ssa/ssa-pre-2.c: Likewise.
* gcc.dg/tree-ssa/pr35286.c: Likewise.
* gcc.dg/tree-ssa/pr35287.c: Likewise.
* gcc.dg/hoist-register-pressure-1.c: Likewise.
* gcc.dg/hoist-register-pressure-2.c: Likewise.
* gcc.dg/hoist-register-pressure-3.c: Likewise.
* gcc.dg/pr51879-12.c: Likewise.
* gcc.dg/strlenopt-9.c: Likewise.
* gcc.dg/tree-ssa/pr47392.c: Likewise.
* gcc.dg/tree-ssa/pr68619-4.c: Likewise.
* gcc.dg/tree-ssa/split-path-5.c: Likewise.
* gcc.dg/tree-ssa/slsr-35.c: Likewise.
* gcc.dg/tree-ssa/slsr-36.c: Likewise.
* gcc.dg/tree-ssa/loadpre3.c: Adjust so hosting doesn't apply.
* gcc.dg/tree-ssa/pr43491.c: Scan optimized dump for desired result.
* gcc.dg/tree-ssa/ssa-pre-31.c: Adjust expected outcome for hoisting.
* gcc.dg/tree-ssa/ssa-hoist-1.c: New testcase.
* gcc.dg/tree-ssa/ssa-hoist-2.c: New testcase.
* gcc.dg/tree-ssa/ssa-hoist-3.c: New testcase.
* gcc.dg/tree-ssa/ssa-hoist-4.c: New testcase.
* gcc.dg/tree-ssa/ssa-hoist-5.c: New testcase.
* gcc.dg/tree-ssa/ssa-hoist-6.c: New testcase.
* gfortran.dg/pr43984.f90: Adjust expected outcome.

Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r238242

8 years agore PR middle-end/71716 (gcc.dg/atomic/c11-atomic-exec-4.c is miscompiled with -march...
Jakub Jelinek [Tue, 12 Jul 2016 08:58:56 +0000 (10:58 +0200)]
re PR middle-end/71716 (gcc.dg/atomic/c11-atomic-exec-4.c is miscompiled with -march=corei7)

PR middle-end/71716
* gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
is different from mode's bitsize.  Small cleanup.

From-SVN: r238239

8 years agore PR tree-optimization/68961 (Test case gcc.target/powerpc/pr60203.c fails since...
Richard Biener [Tue, 12 Jul 2016 08:56:14 +0000 (08:56 +0000)]
re PR tree-optimization/68961 (Test case gcc.target/powerpc/pr60203.c fails since r231674)

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

PR rtl-optimization/68961
* fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
to simplify to a non-constant.

* gcc.target/i386/pr68961.c: New testcase.

From-SVN: r238238

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

From-SVN: r238237

8 years agocp-demangle.c (cplus_demangle_print_callback): Avoid zero-length VLAs.
Brooks Moses [Mon, 11 Jul 2016 23:48:41 +0000 (16:48 -0700)]
cp-demangle.c (cplus_demangle_print_callback): Avoid zero-length VLAs.

2016-06-12  Brooks Moses  <bmoses@google.com>

* cp-demangle.c (cplus_demangle_print_callback): Avoid zero-length
  VLAs.

From-SVN: r238233

8 years agore PR middle-end/71758 (ICE in verify_gimple_in_cfg, at tree-cfg.c:5212)
Jakub Jelinek [Mon, 11 Jul 2016 20:40:47 +0000 (22:40 +0200)]
re PR middle-end/71758 (ICE in verify_gimple_in_cfg, at tree-cfg.c:5212)

PR middle-end/71758
* omp-low.c (expand_omp_target): Gimplify device.

* c-c++-common/gomp/pr71758.c: New test.
* gfortran.dg/gomp/pr71758.f90: New test.

From-SVN: r238231

8 years agore PR tree-optimization/71823 (g++ segfaults with -mfma and -ftree-slp-vectorize)
Jakub Jelinek [Mon, 11 Jul 2016 20:37:18 +0000 (22:37 +0200)]
re PR tree-optimization/71823 (g++ segfaults with -mfma and -ftree-slp-vectorize)

PR tree-optimization/71823
* tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
to get vec_oprnds2 from op2.

* gcc.dg/vect/pr71823.c: New test.

From-SVN: r238229

8 years agostl_vector.h (push_back(const value_type&)): Forward to _M_realloc_insert.
François Dumont [Mon, 11 Jul 2016 20:17:56 +0000 (20:17 +0000)]
stl_vector.h (push_back(const value_type&)): Forward to _M_realloc_insert.

2016-07-11  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/stl_vector.h (push_back(const value_type&)): Forward
to _M_realloc_insert.
(insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
(_M_realloc_insert): Declare new function.
(_M_emplace_back_aux): Remove definition.
* include/bits/vector.tcc (emplace_back(_Args...)):
Use _M_realloc_insert.
(insert(const_iterator, const value_type&)): Likewise.
(_M_insert_rval, _M_emplace_aux): Likewise.
(_M_emplace_back_aux): Remove declaration.
(_M_realloc_insert): Define.
* testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
Adjust expected results for emplacing an lvalue with reallocation.

From-SVN: r238226

8 years agopredicates.md (x86_64_immediate_operand): Hoist common subexpressions.
Uros Bizjak [Mon, 11 Jul 2016 19:41:17 +0000 (21:41 +0200)]
predicates.md (x86_64_immediate_operand): Hoist common subexpressions.

* config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
Hoist common subexpressions.
(x86_64_zext_immediate_operand) <case CONST>: Ditto.

From-SVN: r238224

8 years agors6000.md (stfiwx): Change constraint to 'wu' to prevent generation of 'stxsiwx'...
Pat Haugen [Mon, 11 Jul 2016 19:03:09 +0000 (19:03 +0000)]
rs6000.md (stfiwx): Change constraint to 'wu' to prevent generation of 'stxsiwx' on pre Power8 hardware.

* config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
prevent generation of 'stxsiwx' on pre Power8 hardware.

From-SVN: r238223

8 years agolib1funcs.S: Add new wrapper.
Hale Wang [Mon, 11 Jul 2016 17:11:31 +0000 (17:11 +0000)]
lib1funcs.S: Add new wrapper.

2016-07-11  Hale Wang  <hale.wang@arm.com>
    Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/arm/lib1funcs.S: Add new wrapper.

Co-Authored-By: Andre Vieira <andre.simoesdiasvieira@arm.com>
From-SVN: r238215

8 years ago* decl.c (store_parm_decls): Remove check for void parm.
Jason Merrill [Mon, 11 Jul 2016 16:56:26 +0000 (12:56 -0400)]
* decl.c (store_parm_decls): Remove check for void parm.

From-SVN: r238214

8 years agoinput.c: add lexing selftests and a test matrix for line_table states
David Malcolm [Mon, 11 Jul 2016 16:02:20 +0000 (16:02 +0000)]
input.c: add lexing selftests and a test matrix for line_table states

This patch adds explicit testing of lexing a source file,
generalizing this (and the test of ordinary line maps) over
a 2-dimensional test matrix covering:

  (1) line_table->default_range_bits: some frontends use a non-zero value
  and others use zero

  (2) the fallback modes within line-map.c: there are various threshold
  values for source_location/location_t beyond line-map.c changes
  behavior (disabling of the range-packing optimization, disabling
  of column-tracking).  We exercise these by starting the line_table
  at interesting values at or near these thresholds.

This helps ensures that location data works in all of these states,
and that (I hope) we don't have lingering bugs relating to the
transition between line_table states.

gcc/ChangeLog:
* input.c: Include cpplib.h.
(selftest::temp_source_file): New class.
(selftest::temp_source_file::temp_source_file): New ctor.
(selftest::temp_source_file::~temp_source_file): New dtor.
(selftest::should_have_column_data_p): New function.
(selftest::test_should_have_column_data_p): New function.
(selftest::temp_line_table): New class.
(selftest::temp_line_table::temp_line_table): New ctor.
(selftest::temp_line_table::~temp_line_table): New dtor.
(selftest::test_accessing_ordinary_linemaps): Add case_ param; use
it to create a temp_line_table.
(selftest::assert_loceq): Only verify LOCATION_COLUMN for
locations that are known to have column data.
(selftest::line_table_case): New struct.
(selftest::test_reading_source_line): Move tempfile handling
to class temp_source_file.
(ASSERT_TOKEN_AS_TEXT_EQ): New macro.
(selftest::assert_token_loc_eq): New function.
(ASSERT_TOKEN_LOC_EQ): New macro.
(selftest::test_lexer): New function.
(selftest::boundary_locations): New array.
(selftest::input_c_tests): Call test_should_have_column_data_p.
Loop over a test matrix of interesting values of location and
default_range_bits, calling test_lexer on each case in the matrix.
Move call to test_accessing_ordinary_linemaps into the matrix.
* selftest.h (ASSERT_EQ): Reimplement in terms of...
(ASSERT_EQ_AT): New macro.

gcc/testsuite/ChangeLog:
* gcc.dg/plugin/location_overflow_plugin.c (plugin_init): Avoid
hardcoding the values of LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES
and LINE_MAP_MAX_LOCATION_WITH_COLS.

libcpp/ChangeLog:
* include/line-map.h (LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES):
Move here from line-map.c.
(LINE_MAP_MAX_LOCATION_WITH_COLS): Likewise.
* line-map.c (LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES): Move from
here to line-map.h.
(LINE_MAP_MAX_LOCATION_WITH_COLS): Likewise.

From-SVN: r238213

8 years agoDon't convert TImode in debug insn
H.J. Lu [Mon, 11 Jul 2016 15:13:56 +0000 (15:13 +0000)]
Don't convert TImode in debug insn

When converting V1TImode register in debug insn, check if it has been
converted to TImode already.

gcc/

PR target/71801
* config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
Don't convert TImode in debug insn.

gcc/testsuite/

PR target/71801
* gcc.target/i386/pr71801.c: New test.

From-SVN: r238211

8 years agoConvert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
Bernd Edlinger [Mon, 11 Jul 2016 15:02:12 +0000 (15:02 +0000)]
Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.

2016-07-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
        * tree-core.h (tree_base::nothrow_flag): Adjust comment.
        (tree_type_common::lang_flag_7): New.
        (tree_type_common::spare): Reduce size.
        * tree.h (TYPE_ALIGN_OK): Remove.
        (TYPE_LANG_FLAG_7): New.
        (get_inner_reference): Adjust header.
        * print-tree.c (print_node): Adjust.
        * expr.c (get_inner_reference): Remove parameter keep_aligning.
        (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
        calls to get_inner_reference.
        (expand_expr_real_1): Adjust call to get_inner_reference.  Remove
        handling of TYPE_ALIGN_OK.
        * builtins.c (get_object_alignment_2): Adjust call to
        get_inner_reference.  Remove handling of VIEW_CONVERT_EXPR.
        * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
        TYPE_ALIGN_OK.
        * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
        * cfgexpand.c (expand_debug_expr): Likewise.
        * dbxout.c (dbxout_expand_expr): Likewise.
        * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
        loc_list_from_tree, fortran_common): Likewise.
        * fold-const.c (optimize_bit_field_compare,
        decode_field_reference, fold_unary_loc, fold_comparison,
        split_address_to_core_and_offset): Likewise.
        * gimple-laddress.c (execute): Likewise.
        * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
        * gimplify.c (gimplify_scan_omp_clauses): Likewise.
        * hsa-gen.c (gen_hsa_addr): Likewise.
        * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
        * tsan.c (instrument_expr): Likewise.
        * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
        * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
        * tree-affine.c (tree_to_aff_combination,
        get_inner_reference_aff): Adjust calls to get_inner_reference.
        * tree-data-ref.c (split_constant_offset_1,
        dr_analyze_innermost): Likewise.
        * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
        * tree-sra.c (ipa_sra_check_caller): Likewise.
        * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
        * tree-ssa-math-opts.c (find_bswap_or_nop_load,
        bswap_replace): Likewise.
        * tree-vect-data-refs.c (vect_check_gather,
        vect_analyze_data_refs): Likewise.
        * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
        * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
        TYPE_ALIGN_OK.

ada:
2016-07-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
        * gcc-interface/ada-tree.h (TYPE_ALIGN_OK): Define.
        * gcc-interface/trans.c (Attribute_to_gnu): Adjust call to
        get_inner_reference.
        * gcc-interface/utils2.c (build_unary_op): Likewise.

From-SVN: r238210

8 years agoSupport running the selftests under valgrind
David Malcolm [Mon, 11 Jul 2016 14:39:14 +0000 (14:39 +0000)]
Support running the selftests under valgrind

gcc/ChangeLog:
* Makefile.in (selftest-valgrind): New phony target.
* function-tests.c (selftest::build_cfg): Delete pass instances
created by the test.
(selftest::convert_to_ssa): Likewise.
(selftest::test_expansion_to_rtl): Likewise.
* tree-cfg.c (selftest::test_linear_chain): Release dominator
vectors.
(selftest::test_diamond): Likewise.

From-SVN: r238209

8 years agore PR bootstrap/71816 (bootstrap broken on multiple targets)
Richard Biener [Mon, 11 Jul 2016 13:32:51 +0000 (13:32 +0000)]
re PR bootstrap/71816 (bootstrap broken on multiple targets)

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

PR tree-optimization/71816
* tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
than replacing all of its operands.

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

From-SVN: r238208

8 years ago[RS6000] Don't allow combine to form doloop pattern
Alan Modra [Mon, 11 Jul 2016 10:28:48 +0000 (19:58 +0930)]
[RS6000] Don't allow combine to form doloop pattern

* config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
(ctr<mode>): Add unspec.
(ctr<mode>_internal*): Likewise.

From-SVN: r238207

8 years agotrans.c (add_decl_expr): Minor tweak.
Eric Botcazou [Mon, 11 Jul 2016 08:16:48 +0000 (08:16 +0000)]
trans.c (add_decl_expr): Minor tweak.

* gcc-interface/trans.c (add_decl_expr): Minor tweak.
* gcc-interface/utils.c (create_var_decl): For an external variable,
also clear TREE_READONLY in LTO mode if the initializer is not a valid
constant and set DECL_READONLY_ONCE_ELAB instead.

From-SVN: r238206

8 years agore PR ada/71817 (suspicious condition in C code)
Eric Botcazou [Mon, 11 Jul 2016 07:41:11 +0000 (07:41 +0000)]
re PR ada/71817 (suspicious condition in C code)

PR ada/71817
* adaint.c (__gnat_is_read_accessible_file): Add parentheses.
(__gnat_is_write_accessible_file): Likewise.

From-SVN: r238204

8 years agoremove gcc/cp/typeck.s
Jason Merrill [Mon, 11 Jul 2016 05:35:23 +0000 (01:35 -0400)]
remove gcc/cp/typeck.s

From-SVN: r238203

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

From-SVN: r238202

8 years agoImplement std::optional.
Ville Voutilainen [Sun, 10 Jul 2016 17:44:21 +0000 (20:44 +0300)]
Implement std::optional.

* include/Makefile.am: Add optional to exported headers.
* include/Makefile.in: Likewise.
* include/std/optional: New.
* testsuite/20_util/optional/typedefs.cc: Likewise.
* testsuite/20_util/optional/relops/2.cc: Likewise.
* testsuite/20_util/optional/relops/3.cc: Likewise.
* testsuite/20_util/optional/relops/4.cc: Likewise.
* testsuite/20_util/optional/relops/5.cc: Likewise.
* testsuite/20_util/optional/relops/1.cc: Likewise.
* testsuite/20_util/optional/relops/6.cc: Likewise.
* testsuite/20_util/optional/nullopt.cc: Likewise.
* testsuite/20_util/optional/in_place.cc: Likewise.
* testsuite/20_util/optional/make_optional.cc: Likewise.
* testsuite/20_util/optional/assignment/2.cc: Likewise.
* testsuite/20_util/optional/assignment/3.cc: Likewise.
* testsuite/20_util/optional/assignment/4.cc: Likewise.
* testsuite/20_util/optional/assignment/5.cc: Likewise.
* testsuite/20_util/optional/assignment/1.cc: Likewise.
* testsuite/20_util/optional/assignment/6.cc: Likewise.
* testsuite/20_util/optional/cons/value_neg.cc: Likewise.
* testsuite/20_util/optional/cons/default.cc: Likewise.
* testsuite/20_util/optional/cons/move.cc: Likewise.
* testsuite/20_util/optional/cons/value.cc: Likewise.
* testsuite/20_util/optional/cons/copy.cc: Likewise.
* testsuite/20_util/optional/requirements.cc: Likewise.
* testsuite/20_util/optional/observers/2.cc: Likewise.
* testsuite/20_util/optional/observers/3.cc: Likewise.
* testsuite/20_util/optional/observers/4.cc: Likewise.
* testsuite/20_util/optional/observers/5.cc: Likewise.
* testsuite/20_util/optional/observers/1.cc: Likewise.
* testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
* testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
* testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
* testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
* testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
* testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
* testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
* testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
* testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
* testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
* testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
* testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
* testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
* testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
* testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
* testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
* testsuite/20_util/optional/swap/1.cc: Likewise.

From-SVN: r238197

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

From-SVN: r238196

8 years agore PR fortran/71783 (ICE on valid code in gimplify_var_or_parm_decl at gimplify.c...
Thomas Koenig [Sat, 9 Jul 2016 22:18:29 +0000 (22:18 +0000)]
re PR fortran/71783 (ICE on valid code in gimplify_var_or_parm_decl at gimplify.c:1801)

2016-07-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/71783
* frontend-passes.c (create_var):  Always allocate a charlen
for character variables.

2016-07-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/71783
* gfortran.dg/dependency_46.f90:  New test.

From-SVN: r238192

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

From-SVN: r238191

8 years agore PR fortran/68426 (Simplification of SPREAD with a derived type element is unimplem...
Steven G. Kargl [Fri, 8 Jul 2016 22:24:44 +0000 (22:24 +0000)]
re PR fortran/68426 (Simplification of SPREAD with a derived type element is unimplemented)

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

PR fortran/68426
* simplify (gfc_simplify_spread): Adjust locus.

From-SVN: r238186

8 years agoFT32: apply unbias to references to RAM symbols.
James Bowman [Fri, 8 Jul 2016 22:11:30 +0000 (22:11 +0000)]
FT32: apply unbias to references to RAM symbols.

The FT32 binutils use a bias to distinguish between RAM and flash
addresses.

This fix adds an ASM_OUTPUT_SYMBOL_REF() that unbiases references to
RAM symbols.

Only references to RAM objects have the bias applied. Flash objects
(that is, objects in ADDR SPACE 1) are not biased, so for these no bias
should be applied. Likewise references in the gdb section need to use
the biased address, so references in debug sections are not unbiased.

gcc/ChangeLog:

2016-07-08  James Bowman  <james.bowman@ftdichip.com>

* config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
* config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.

From-SVN: r238185

8 years agoUse lvalue_p instead of real_lvalue_p.
Jason Merrill [Fri, 8 Jul 2016 21:32:18 +0000 (17:32 -0400)]
Use lvalue_p instead of real_lvalue_p.

* cp-tree.h: Unpoison lvalue_p.
* call.c, class.c, constexpr.c, cvt.c, init.c, lambda.c, pt.c,
tree.c, typeck.c, typeck2.c: Use lvalue_p instead of
real_lvalue_p.

From-SVN: r238183

8 years agoRename lvalue_p to obvalue_p.
Jason Merrill [Fri, 8 Jul 2016 21:32:12 +0000 (17:32 -0400)]
Rename lvalue_p to obvalue_p.

* tree.c (obvalue_p): Rename from lvalue_p.
(lvalue_p): Define for c-common.
* call.c, cp-tree.h, cvt.c, init.c: Adjust.
* typeck.c: Adjust.
(cp_build_addr_expr_1): Remove obsolete code.

From-SVN: r238182

8 years agoRename lvalue_or_rvalue_with_address_p to glvalue_p.
Jason Merrill [Fri, 8 Jul 2016 21:32:06 +0000 (17:32 -0400)]
Rename lvalue_or_rvalue_with_address_p to glvalue_p.

* tree.c (glvalue_p): Rename from lvalue_or_rvalue_with_address_p.
* call.c, cp-tree.h, typeck.c: Adjust.

From-SVN: r238181

8 years ago* lambda.c (maybe_add_lambda_conv_op): Fix null object argument.
Jason Merrill [Fri, 8 Jul 2016 21:31:59 +0000 (17:31 -0400)]
* lambda.c (maybe_add_lambda_conv_op): Fix null object argument.

From-SVN: r238180

8 years agore PR rtl-optimization/71621 (ICE in assign_by_spills, at lra-assigns.c:1417 (error...
Vladimir Makarov [Fri, 8 Jul 2016 20:29:12 +0000 (20:29 +0000)]
re PR rtl-optimization/71621 (ICE in assign_by_spills, at lra-assigns.c:1417 (error: unable to find a register to spill) w/ -O2 -mavx2 -ftree-vectorize)

2016-07-08  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/71621
* lra-constraints.c (process_alt_operands): Check combination of
reg class and mode.

2016-07-08  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/71621
* gcc.target/i386/pr71621-1.c: New.
* gcc.target/i386/pr71621-2.c: New.

From-SVN: r238178

8 years agoP0145R2: Refining Expression Order for C++ (assignment 2).
Jason Merrill [Fri, 8 Jul 2016 20:25:38 +0000 (16:25 -0400)]
P0145R2: Refining Expression Order for C++ (assignment 2).

* cp-gimplify.c (lvalue_has_side_effects): New.
(cp_gimplify_expr): Implement assignment ordering.

From-SVN: r238177

8 years agoP0145: Refining Expression Order for C++ (-fstrong-eval-order).
Jason Merrill [Fri, 8 Jul 2016 20:25:31 +0000 (16:25 -0400)]
P0145: Refining Expression Order for C++ (-fstrong-eval-order).

gcc/c-family/
* c.opts (-fargs-in-order): Rename to -fstrong-eval-order.
* c-opts.c: Adjust.
gcc/cp/
* call.c (op_is_ordered, build_over_call): Adjust for
-fargs-in-order renaming to -fstrong-eval-order.
* cp-gimplify.c (cp_gimplify_expr): Likewise.

From-SVN: r238176

8 years agoP0145: Refining Expression Order for C++ (assignment)
Jason Merrill [Fri, 8 Jul 2016 20:23:40 +0000 (16:23 -0400)]
P0145: Refining Expression Order for C++ (assignment)

* gimplify.c (initial_rhs_predicate_for): New.
(gimplfy_modify_expr): Gimplify RHS before LHS.

Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r238175

8 years agoparse.c (matcha): Define.
Cesar Philippidis [Fri, 8 Jul 2016 18:34:55 +0000 (11:34 -0700)]
parse.c (matcha): Define.

gcc/fortran/
* parse.c (matcha): Define.
(decode_oacc_directive): Add spec_only local var and set it.  Use
matcha to parse acc directives except for routine and declare.  Return
ST_GET_FCN_CHARACTERISTICS if a non-declarative directive could be
matched.

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

From-SVN: r238171

8 years ago* testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
Jonathan Wakely [Fri, 8 Jul 2016 16:35:10 +0000 (17:35 +0100)]
* testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.

From-SVN: r238169

8 years agore PR target/71297 (ICE on invalid code in altivec_resolve_overloaded_builtin (rs6000...
Bill Schmidt [Fri, 8 Jul 2016 15:42:47 +0000 (15:42 +0000)]
re PR target/71297 (ICE on invalid code in altivec_resolve_overloaded_builtin (rs6000-c.c:5106) on powerpc64le-linux)

[gcc]

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

PR target/71297
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
Allow standard error handling to take over when a wrong number
of arguments is presented to __builtin_vec_ld () or
__builtin_vec_st ().

[gcc/testsuite]

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

PR target/71297
* gcc.target/powerpc/pr71297.c: New.

From-SVN: r238168

8 years ago[AArch64] Use fmin/fmax for v[min|max]nm{q} intrinsics
Jiong Wang [Fri, 8 Jul 2016 15:26:51 +0000 (15:26 +0000)]
[AArch64] Use fmin/fmax for v[min|max]nm{q} intrinsics

  smin/smax will actually honor quiet NaN.

gcc/
* config/aarch64/aarch64-simd-builtins.def (smax): Remove float
variants.
(smin): Likewise.
(fmax): New entry.
(fmin): Likewise.
* config/aarch64/arm_neon.h (vmaxnm_f32): Use
__builtin_aarch64_fmaxv2sf.
(vmaxnmq_f32): Likewise.
(vmaxnmq_f64): Likewise.
(vminnm_f32): Likewise.
(vminnmq_f32): Likewise.
(vminnmq_f64): Likewise.

gcc/testsuite/

* gcc.target/aarch64/simd/vminmaxnm_1.c: New.

From-SVN: r238166

8 years agore PR target/71806 (PowerPC -mcpu=power9 enables __float128 without an explicit ...
Michael Meissner [Fri, 8 Jul 2016 14:49:37 +0000 (14:49 +0000)]
re PR target/71806 (PowerPC -mcpu=power9 enables __float128 without an explicit -mfloat128)

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

PR target/71806
* config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
enable -mfloat128-hardware by default.
(ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
that IEEE 128-bit hardware support needs.
* config/rs6000/rs6000.c (rs6000_option_override_internal): If
-mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
floating point requires.
* doc/invoke.texi (RS/6000 and PowerPC Options): Document
-mfloat128 and -mfloat128-hardware changes.

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

PR target/71806
* gcc.target/powerpc/p9-lxvx-stxvx-3.c: Add -mfloat128 option.

From-SVN: r238164

8 years agore PR debug/71667 (ICE in as_a, at is-a.h:192 w/ -g -O2 -ftree-vectorize)
Alan Hayward [Fri, 8 Jul 2016 08:50:24 +0000 (08:50 +0000)]
re PR debug/71667 (ICE in as_a, at is-a.h:192 w/ -g -O2 -ftree-vectorize)

2016-07-08  Alan Hayward  <alan.hayward@arm.com>

gcc/
PR tree-optimization/71667
* tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts

testsuite/
PR tree-optimization/71667
* gcc.dg/vect/pr71667.c: New

From-SVN: r238160

8 years agoEnhance documentation of Wundefined-do-loop
Martin Liska [Fri, 8 Jul 2016 08:39:56 +0000 (10:39 +0200)]
Enhance documentation of Wundefined-do-loop

* invoke.texi (Wundefined-do-loop): Enhance documentation.

From-SVN: r238159

8 years agoDo not consider COMPLEX_TYPE as fold_convertible_p
Martin Liska [Fri, 8 Jul 2016 07:52:03 +0000 (09:52 +0200)]
Do not consider COMPLEX_TYPE as fold_convertible_p

PR middle-end/71606
* fold-const.c (fold_convertible_p): As COMPLEX_TYPE
folding produces SAVE_EXPRs, thus return false for the type.
* gcc.dg/torture/pr71606.c: New test.

From-SVN: r238157

8 years agore PR fortran/71764 (ICE in gfc_trans_structure_assign)
Jerry DeLisle [Fri, 8 Jul 2016 04:36:16 +0000 (04:36 +0000)]
re PR fortran/71764 (ICE in gfc_trans_structure_assign)

2016-07-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/71764
* trans-expr.c (gfc_trans_structure_assign): Remove assert.

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

From-SVN: r238156

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

From-SVN: r238155

8 years agore PR c++/70869 (internal compiler error: Segmentation fault on array of pointer...
Jakub Jelinek [Thu, 7 Jul 2016 18:45:43 +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): For DECL_EXPR for non-static
artificial vars, genericize their initializers.

* g++.dg/cpp0x/pr70869.C: New test.
* g++.dg/cpp0x/pr71054.C: New test.

Co-Authored-By: Kai Tietz <ktietz70@googlemail.com>
From-SVN: r238124

8 years ago* g++.dg/debug/pr71432.C: Fail on AIX.
David Edelsohn [Thu, 7 Jul 2016 17:59:54 +0000 (17:59 +0000)]
* g++.dg/debug/pr71432.C: Fail on AIX.

From-SVN: r238122

8 years agoUpdate libstdc++ status docs
Jonathan Wakely [Thu, 7 Jul 2016 16:35:43 +0000 (17:35 +0100)]
Update libstdc++ status docs

* doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
* doc/html/*: Regenerate.

From-SVN: r238120

8 years ago[multiple changes]
Arnaud Charlet [Thu, 7 Jul 2016 13:20:30 +0000 (15:20 +0200)]
[multiple changes]

2016-07-07  Ed Schonberg  <schonberg@adacore.com>

* exp_ch6.adb (Expand_Internal_Init_Call): Subsidiary procedure
to Expand_Protected_ Subprogram_Call, to handle properly a
call to a protected function that provides the initialization
expression for a private component of the same protected type.
* sem_ch9.adb (Analyze_Protected_Definition): Layout must be
applied to itypes generated for a private operation of a protected
type that has a formal of an anonymous access to subprogram,
because these itypes have no freeze nodes and are frozen in place.
* sem_ch4.adb (Analyze_Selected_Component): If prefix is a
protected type and it is not a current instance, do not examine
the first private component of the type.

2016-07-07  Arnaud Charlet  <charlet@adacore.com>

* exp_imgv.adb, g-dynhta.adb, s-regexp.adb, s-fatgen.adb, s-poosiz.adb:
Minor removal of extra whitespace.
* einfo.ads: minor removal of repeated "as" in comment

2016-07-07  Vadim Godunko  <godunko@adacore.com>

* adaint.c: Complete previous change.

From-SVN: r238117

8 years ago[multiple changes]
Arnaud Charlet [Thu, 7 Jul 2016 13:17:51 +0000 (15:17 +0200)]
[multiple changes]

2016-07-07  Vadim Godunko  <godunko@adacore.com>

* adainit.h, adainit.c (__gnat_is_read_accessible_file): New
subprogram.
(__gnat_is_write_accessible_file): New subprogram.
* s-os_lib.ads, s-os_lib.adb (Is_Read_Accessible_File): New subprogram.
(Is_Write_Accessible_File): New subprogram.

2016-07-07  Justin Squirek  <squirek@adacore.com>

* sem_ch12.adb (Install_Body): Minor refactoring in the order
of local functions.
(In_Same_Scope): Change loop condition to be more expressive.

From-SVN: r238116

8 years ago[multiple changes]
Arnaud Charlet [Thu, 7 Jul 2016 13:16:05 +0000 (15:16 +0200)]
[multiple changes]

2016-07-07  Gary Dismukes  <dismukes@adacore.com>

* sem_ch3.adb, sem_prag.adb, sem_prag.ads, prj-ext.adb, freeze.adb,
sem_attr.adb: Minor reformatting, fix typos.

2016-07-07  Justin Squirek  <squirek@adacore.com>

* sem_ch12.adb (In_Same_Scope): Created this function to check
a generic package definition against an instantiation for scope
dependancies.
(Install_Body): Add function In_Same_Scope and
amend conditional in charge of delaying the package instance.
(Is_In_Main_Unit): Add guard to check if parent is present in
assignment of Current_Unit.

From-SVN: r238115

8 years agoOptimize fortran loops with +-1 step.
Martin Liska [Thu, 7 Jul 2016 13:15:39 +0000 (15:15 +0200)]
Optimize fortran loops with +-1 step.

* gfortran.dg/do_1.f90: Remove a corner case that triggers
an undefined behavior.
* gfortran.dg/do_3.F90: Likewise.
* gfortran.dg/do_check_11.f90: New test.
* gfortran.dg/do_check_12.f90: New test.
* gfortran.dg/do_corner_warn.f90: New test.
* lang.opt (Wundefined-do-loop): New option.
        * resolve.c (gfc_resolve_iterator): Warn for Wundefined-do-loop.
(gfc_trans_simple_do): Generate a c-style loop.
(gfc_trans_do): Fix GNU coding style.
* invoke.texi: Mention the new warning.

From-SVN: r238114

8 years agosem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove redundant test, adjust comments...
Eric Botcazou [Thu, 7 Jul 2016 13:12:55 +0000 (13:12 +0000)]
sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove redundant test, adjust comments and formatting.

2016-07-07  Eric Botcazou  <ebotcazou@adacore.com>

* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove redundant test,
adjust comments and formatting.
* sem_prag.adb (Inlining_Not_Possible): Do not test Front_End_Inlining
here but...
(Make_Inline): ...here before calling Inlining_Not_Possible instead.
(Set_Inline_Flags): Remove useless test.
(Analyze_Pragma) <Pragma_Inline>: Add comment about -gnatn switch.

From-SVN: r238113

8 years agoAdd PRED_FORTRAN_LOOP_PREHEADER to DO loops with step
Martin Liska [Thu, 7 Jul 2016 13:11:05 +0000 (15:11 +0200)]
Add PRED_FORTRAN_LOOP_PREHEADER to DO loops with step

* trans-stmt.c (gfc_trans_do): Add expect builtin for DO
loops with step bigger than +-1.
* gfortran.dg/predict-1.f90: Ammend the test.
* gfortran.dg/predict-2.f90: Likewise.

From-SVN: r238112

8 years ago[multiple changes]
Arnaud Charlet [Thu, 7 Jul 2016 13:05:08 +0000 (15:05 +0200)]
[multiple changes]

2016-07-07  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.ads, sem_prag.adb (Build_Classwide_Expression): Include
overridden operation as parameter, in order to map formals of
the overridden and overring operation properly prior to rewriting
the inherited condition.
* freeze.adb (Check_Inherited_Cnonditions): Change call to
Build_Class_Wide_Expression accordingly.  In Spark_Mode, add
call to analyze the contract of the parent operation, prior to
mapping formals between operations.

2016-07-07  Arnaud Charlet  <charlet@adacore.com>

* adabkend.adb (Scan_Back_End_Switches): Ignore -o/-G switches
as done in back_end.adb.
(Scan_Compiler_Args): Remove special case for CodePeer/SPARK, no longer
needed, and prevents proper handling of multi-unit sources.

2016-07-07  Thomas Quinot  <quinot@adacore.com>

* g-sechas.adb, g-sechas.ads (GNAT.Secure_Hashes.H): Add Hash_Stream
type with Write primitive calling Update on the underlying context
(and dummy Read primitive raising P_E).

2016-07-07  Thomas Quinot  <quinot@adacore.com>

* sem_ch13.adb: Minor reformatting.

From-SVN: r238111

8 years ago[multiple changes]
Arnaud Charlet [Thu, 7 Jul 2016 13:02:31 +0000 (15:02 +0200)]
[multiple changes]

2016-07-07  Thomas Quinot  <quinot@adacore.com>

* g-socket.ads: Document performance consideration for stream
wrapper.

2016-07-07  Arnaud Charlet  <charlet@adacore.com>

* osint-c.ads (Set_File_Name): Clarify spec.

From-SVN: r238110

8 years agofreeze.adb: Reenable code.
Eric Botcazou [Thu, 7 Jul 2016 13:00:54 +0000 (13:00 +0000)]
freeze.adb: Reenable code.

2016-07-07  Eric Botcazou  <ebotcazou@adacore.com>

* freeze.adb: Reenable code.

From-SVN: r238109

8 years agominor reformatting.
Arnaud Charlet [Thu, 7 Jul 2016 12:59:19 +0000 (14:59 +0200)]
minor reformatting.

From-SVN: r238107

8 years agosem_ch6.adb (Process_Formals): Set ghost flag on formal entities of ghost subprograms.
Yannick Moy [Thu, 7 Jul 2016 12:59:06 +0000 (12:59 +0000)]
sem_ch6.adb (Process_Formals): Set ghost flag on formal entities of ghost subprograms.

2016-07-07  Yannick Moy  <moy@adacore.com>

* sem_ch6.adb (Process_Formals): Set ghost flag
on formal entities of ghost subprograms.
* ghost.adb (Check_Ghost_Context.Is_OK_Ghost_Context): Accept ghost
entities in use type clauses.

From-SVN: r238106

8 years agoPrevent LTO wrappers to process a recursive execution
Martin Liska [Thu, 7 Jul 2016 12:03:39 +0000 (14:03 +0200)]
Prevent LTO wrappers to process a recursive execution

* file-find.c (remove_prefix): New function.
* file-find.h (remove_prefix): Declare the function.
* gcc-ar.c (main): Skip a folder of the wrapper if
a wrapped binary would point to the same file.

From-SVN: r238089