Commit Graph

147376 Commits

Author SHA1 Message Date
Martin Liska
f507d20235 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
2016-07-12 15:03:07 +00:00
Kyrylo Tkachov
d6f7c125d8 [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
2016-07-12 15:00:28 +00:00
Martin Liska
5548d9cd19 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
2016-07-12 14:54:52 +00:00
Jonathan Wakely
7cbadfdced 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
2016-07-12 15:31:04 +01:00
Jonathan Wakely
1b1c16e0c0 Fix ChangeLog entry for r238244
From-SVN: r238245
2016-07-12 15:07:49 +01:00
Jonathan Wakely
1b24fb4cd1 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
2016-07-12 15:00:26 +01:00
Jonathan Wakely
17b31c054c 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
2016-07-12 15:00:11 +01:00
Steven Bosscher
37ccb0bacb 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
2016-07-12 13:32:04 +00:00
Jakub Jelinek
1de3c940d8 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
2016-07-12 10:58:56 +02:00
Richard Biener
712a93d637 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
2016-07-12 08:56:14 +00:00
GCC Administrator
7c61b47f17 Daily bump.
From-SVN: r238237
2016-07-12 00:16:21 +00:00
Brooks Moses
3f39385351 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
2016-07-11 16:48:41 -07:00
Jakub Jelinek
3d56e6a465 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
2016-07-11 22:40:47 +02:00
Jakub Jelinek
c392943c50 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
2016-07-11 22:37:18 +02:00
François Dumont
76225d2ca7 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
2016-07-11 20:17:56 +00:00
Uros Bizjak
4368a420fb 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
2016-07-11 21:41:17 +02:00
Pat Haugen
7f0d7d6155 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
2016-07-11 19:03:09 +00:00
Hale Wang
827424041e 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
2016-07-11 17:11:31 +00:00
Jason Merrill
9a54f10dbb * decl.c (store_parm_decls): Remove check for void parm.
From-SVN: r238214
2016-07-11 12:56:26 -04:00
David Malcolm
741d3be543 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
2016-07-11 16:02:20 +00:00
H.J. Lu
92fa45b598 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
2016-07-11 08:13:56 -07:00
Bernd Edlinger
25b75a48d2 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
2016-07-11 15:02:12 +00:00
David Malcolm
9e34db2e03 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
2016-07-11 14:39:14 +00:00
Richard Biener
f51606c71a 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
2016-07-11 13:32:51 +00:00
Alan Modra
a442a050ad [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
2016-07-11 19:58:48 +09:30
Eric Botcazou
7352723b9e 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
2016-07-11 08:16:48 +00:00
Eric Botcazou
833c1dbc60 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
2016-07-11 07:41:11 +00:00
Jason Merrill
4adc6a122c remove gcc/cp/typeck.s
From-SVN: r238203
2016-07-11 01:35:23 -04:00
GCC Administrator
98e788e6a3 Daily bump.
From-SVN: r238202
2016-07-11 00:16:22 +00:00
Ville Voutilainen
435e56fb52 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
2016-07-10 20:44:21 +03:00
GCC Administrator
290583564d Daily bump.
From-SVN: r238196
2016-07-10 00:16:20 +00:00
Thomas Koenig
36b54ce08e 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
2016-07-09 22:18:29 +00:00
GCC Administrator
08a357ce0e Daily bump.
From-SVN: r238191
2016-07-09 00:16:18 +00:00
Steven G. Kargl
98d4439c04 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
2016-07-08 22:24:44 +00:00
James Bowman
f0f649c33c 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
2016-07-08 22:11:30 +00:00
Jason Merrill
72b3e20335 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
2016-07-08 17:32:18 -04:00
Jason Merrill
bb19d4af73 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
2016-07-08 17:32:12 -04:00
Jason Merrill
c3edc63382 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
2016-07-08 17:32:06 -04:00
Jason Merrill
0596c4485c * lambda.c (maybe_add_lambda_conv_op): Fix null object argument.
From-SVN: r238180
2016-07-08 17:31:59 -04:00
Vladimir Makarov
d13835b668 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
2016-07-08 20:29:12 +00:00
Jason Merrill
65a550b46e 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
2016-07-08 16:25:38 -04:00
Jason Merrill
d0cf395a99 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
2016-07-08 16:25:31 -04:00
Jason Merrill
8a1b7b7fd7 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
2016-07-08 16:23:40 -04:00
Cesar Philippidis
642bcbdf1d 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
2016-07-08 11:34:55 -07:00
Jonathan Wakely
d81102f473 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
From-SVN: r238169
2016-07-08 17:35:10 +01:00
Bill Schmidt
02eb5b8bf3 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
2016-07-08 15:42:47 +00:00
Jiong Wang
8beb9a0dc9 [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
2016-07-08 15:26:51 +00:00
Michael Meissner
cef4b65070 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
2016-07-08 14:49:37 +00:00
Alan Hayward
3c3ecf52a6 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
2016-07-08 08:50:24 +00:00
Martin Liska
03e6ca4873 Enhance documentation of Wundefined-do-loop
* invoke.texi (Wundefined-do-loop): Enhance documentation.

From-SVN: r238159
2016-07-08 08:39:56 +00:00