Commit Graph

147959 Commits

Author SHA1 Message Date
Janne Blomqvist
09309e09ec Use a XOR cipher instead of byte shuffling to protect against bad seeds.
libgfortran:
2016-08-19  Janne Blomqvist  <jb@gcc.gnu.org>

        * intrinsics/random.c (xor_keys): New array with "secret" keys.
        (scramble_seed): XOR given seed with xor_keys array rather than
        shuffling bytes.
        (unscramble_seed): Remove function.
        (random_seed_i4): Use new scramble_seed.
        (random_seed_i8): Likewise.

frontend:
2016-08-19  Janne Blomqvist  <jb@gcc.gnu.org>

        * intrinsics.texi (RANDOM_NUMBER): Remove reference to
        init_random_seed in example.
        (RANDOM_SEED): Remove warning to not set all seed values to 0.

From-SVN: r239613
2016-08-19 17:19:51 +03:00
Janne Blomqvist
91151a7334 Always initialize PRNG using random data from the OS.
libgfortran:

2016-08-16  Janne Blomqvist  <jb@gcc.gnu.org>

        * intrinsics/random.c (master_init): New variable.
        (init_rand_state): Move below getosrandom (), maybe initialize
        master_state.
        (random_seed_i4): If called with no arguments, set master_init to
        false, and reinitialize. If called with PUT=, set master_init to
        true.
        (random_seed_i8): Likewise.

testsuite:

2016-08-16  Janne Blomqvist  <jb@gcc.gnu.org>

        * gfortran.dg/random_4.f90: Initialize seed before using, handle
        the last special seed value.
        * gfortran.dg/random_7.f90: Use size for last array member instead
        of hardcoded value.

From-SVN: r239611
2016-08-19 17:12:32 +03:00
Matthew Wahab
f0c90610e3 [ARM] Fix an invalid check for vectors of the same floating-point constants.
2016-08-19  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/77281
	* config/arm/arm.c (neon_valid_immediate): Delete declaration.
	Use const_vec_duplicate to check for duplicated elements.

From-SVN: r239610
2016-08-19 13:59:18 +00:00
Prathamesh Kulkarni
fcf830abf7 expr.c (eval_token): Append "evaluates to 0" to Wundef diagnostic.
2016-08-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

libcpp/
	* expr.c (eval_token): Append "evaluates to 0" to Wundef diagnostic.

testsuite/
	* gcc.dg/cpp/warn-undef.c: Append "evaluates to 0" to dg-error.
	* gcc.dg/cpp/warn-undef-2.c: Likewise.

From-SVN: r239609
2016-08-19 13:17:09 +00:00
Jonathan Wakely
1f4ed04ed8 Update C++17 library status table
* doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
	and variant.
	* doc/html/*: Regenerate.

From-SVN: r239608
2016-08-19 09:16:13 +01:00
Richard Biener
9ca60517a0 re PR tree-optimization/77290 (test case gcc.dg/tree-ssa/pr71347.c fails starting with r239565)
2016-08-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/77290
	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
	Fix flag_tree_parallelize_loops check.

From-SVN: r239607
2016-08-19 07:43:11 +00:00
Richard Biener
ca0b7ecec7 match.pd (x | 0 -> x): Add.
2016-08-19  Richard Biener  <rguenther@suse.de>

	* match.pd (x | 0 -> x): Add.

From-SVN: r239606
2016-08-19 07:03:48 +00:00
Richard Biener
1a5da5b66a re PR tree-optimization/77286 (ICE in fold_convert_loc, at fold-const.c:2248 building 435.gromacs)
2016-08-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/77286
	* tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
	Deal with virtual PHIs being out-of-order.

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

From-SVN: r239605
2016-08-19 07:02:05 +00:00
David Malcolm
82f7214696 Add source information to -fverbose-asm
gcc/ChangeLog:
	* doc/invoke.texi (fverbose-asm): Note that source code lines
	are emitted, and provide an example.
	* final.c (asm_show_source): New function.
	(final_scan_insn): Call asm_show_source.

From-SVN: r239604
2016-08-19 00:18:18 +00:00
GCC Administrator
f4e46e34a2 Daily bump.
From-SVN: r239603
2016-08-19 00:16:14 +00:00
Ville Voutilainen
a577f786b6 Implement the latest proposed resolution of LWG 2756.
* include/std/optional (Optional_base(const _Tp&))
	(Optional_base(_Tp&&), using _Base::_Base): Remove.
	(optional(nullopt_t)): New.
	(optional(_Up&&)): Invoke base directly with in_place
	rather than creating a temporary, add default template
	argument, change constraints.
	(optional(const optional<_Up>&)): Invoke base directly
	with in_place, remove unnecessary constraints.
	(optional(optional<_Up>&& __t)): Likewise.
	(optional(in_place_t, _Args&&...)): New.
	(optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
	(operator=(_Up&&)): Add default template argument, change constraints.
	(operator=(const optional<_Up>&)): Put is_same first in the
	constraints.
	(operator=(optional<_Up>&&)): Likewise.
	* testsuite/20_util/optional/assignment/5.cc: Add a test to
	verify assignment from something that can't be perfect-forwarded.
	* testsuite/20_util/optional/cons/value.cc: Add tests to verify
	that a nested optional is disengaged when constructed
	from a disengaged element type,	and to verify that assignments
	from an engaged element type engage the optional.

From-SVN: r239593
2016-08-18 23:33:57 +03:00
Tim Shen
197c757cb1 Implement <variant>
* include/Makefile.am: Add new file std/variant.
	* include/Makefile.in: Generated from Makefile.am.
	* include/bits/enable_special_members.h: Add a tag type to allow
	the construction in non-default constructor.
	* include/bits/uses_allocator.h: Add convenience traits to
	detect constructibility.
	* include/std/variant: Implement <variant>.
	* testsuite/20_util/variant/compile.cc: Compile-time tests.
	* testsuite/20_util/variant/run.cc: Runtime tests.

From-SVN: r239590
2016-08-18 20:31:26 +00:00
David Malcolm
cc015f3abe Allow calling diagnostic_show_locus without a diagnostic_info
Much of diagnostic-show-locus.c currently expects a diagnostic_info *,
but it only uses the rich_location and the diagnostic_t.

Change the signature of diagnostic_show_locus from:

  void
  diagnostic_show_locus (diagnostic_context *,
                         const diagnostic_info *);

to:

  void
  diagnostic_show_locus (diagnostic_context *,
                         rich_location *richloc,
                         diagnostic_t diagnostic_kind);

so that it can be used for things other than diagnostics.

Use this flexibility to add selftests for diagnostic_show_locus.

gcc/c-family/ChangeLog:
	* c-opts.c (c_diagnostic_finalizer): Update for change to
	diagnostic_show_locus.

gcc/ChangeLog:
	* diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
	param with diagnostic_kind.
	(class colorizer): Similarly replace field m_diagnostic with
	m_diagnostic_kind.
	(colorizer::colorizer): Replace diagnostic
	param with diagnostic_kind.
	(colorizer::begin_state): Update for above field change.
	(layout::layout): Replace diagnostic param with rich_location *
	and diagnostic_kind.
	(diagnostic_show_locus): Replace diagnostic param with richloc
	and diagnostic_kind.
	(class selftest::test_diagnostic_context): New class.
	(selftest::test_diagnostic_show_locus_unknown_location): New
	function.
	(selftest::test_one_liner_simple_caret): New function.
	(selftest::test_one_liner_caret_and_range): New function.
	(selftest::test_one_liner_multiple_carets_and_ranges): New
	function.
	(selftest::test_one_liner_fixit_remove): New function.
	(selftest::test_one_liner_fixit_replace): New function.
	(selftest::test_diagnostic_show_locus_one_liner): New function.
	(selftest::diagnostic_show_locus_c_tests): Call the new test
	functions.
	* diagnostic.c (diagnostic_initialize): Initialize
	colorize_source_p, show_ruler_p and parseable_fixits_p.
	(default_diagnostic_finalizer): Update for change to
	diagnostic_show_locus.
	(diagnostic_append_note): Likewise.
	* diagnostic.h (diagnostic_show_locus): Replace
	const diagnostic_info * param with location * and diagnostic_t.

gcc/fortran/ChangeLog:
	* error.c (gfc_diagnostic_starter): Update for change to
	diagnostic_show_locus.

gcc/testsuite/ChangeLog:
	* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c
	(custom_diagnostic_finalizer): Update for change to
	diagnostic_show_locus.

From-SVN: r239586
2016-08-18 19:12:54 +00:00
David Malcolm
cb18fd07f2 Spelling suggestions for misspelled preprocessor directives
This patch allows the preprocessor to offer suggestions for misspelled
directives, taking us from e.g.:

test.c:5:2: error: invalid preprocessing directive #endfi
 #endfi
  ^~~~~

to:

test.c:5:2: error: invalid preprocessing directive #endfi; did you mean #endif?
 #endfi
  ^~~~~
  endif

gcc/c-family/ChangeLog:
	* c-common.c: Include "spellcheck.h".
	(cb_get_suggestion): New function.
	* c-common.h (cb_get_suggestion): New decl.
	* c-lex.c (init_c_lex): Initialize cb->get_suggestion to
	cb_get_suggestion.

gcc/testsuite/ChangeLog:
	* gcc.dg/cpp/misspelled-directive-1.c: New testcase.
	* gcc.dg/cpp/misspelled-directive-2.c: New testcase.

libcpp/ChangeLog:
	* directives.c (directive_names): New array.
	(_cpp_handle_directive): Offer spelling suggestions for misspelled
	directives.
	* errors.c (cpp_diagnostic_at_richloc): New function.
	(cpp_error_at_richloc): New function.
	* include/cpplib.h (struct cpp_callbacks): Add field
	"get_suggestion".
	(cpp_error_at_richloc): New decl.

From-SVN: r239585
2016-08-18 18:52:43 +00:00
Marek Polacek
a76989dc7c re PR c/71514 (ICE on C11 code with atomic exchange at -O1 and above on x86_64-linux-gnu: in copy_reference_ops_from_ref, at tree-ssa-sccvn.c:879)
PR c/71514
	* c-common.c (get_atomic_generic_size): Disallow pointer-to-function
	and pointer-to-VLA.

	* gcc.dg/pr71514.c: New test.

From-SVN: r239581
2016-08-18 16:38:49 +00:00
David Malcolm
f87e22c521 selftest.h: add class line_table_test
input.c has a fixture class for running each selftest with a fresh
line_table, and logic for looping over various interesting line_table
test cases.

This patch exposes the above in selftest.h so that such
location-handling tests can be written in other files, renaming the
class from temp_line_table to line_table_test.

Also, the patch moves the stored line table ptr from being a member of
the test class to being a global GC-root, to avoid it being collected
if the GC runs during such a test.

gcc/ChangeLog:
	* input.c (saved_line_table): New global.
	(class selftest::temp_line_table): Rename to line_table_test and
	move declaration to selftest.h, and drop field m_old_line_table.
	(selftest::temp_line_table::temp_line_table): Rename ctor to...
	(selftest::line_table_test::line_table_test): ...this.  Add a
	default ctor.  Store current value of line_table within
	saved_line_table.
	(selftest::temp_line_table::~temp_line_table): Rename dtor to...
	(selftest::line_table_test::~line_table_test): ...this, and
	restore line_table from the saved_line_table, rather than
	m_old_line_table.
	(selftest::test_accessing_ordinary_linemaps): Update for above
	renaming.
	(selftest::test_lexer): Likewise.
	(struct selftest::lexer_test): Likewise.
	(selftest::lexer_test::lexer_test): Likewise.
	(selftest::input_c_tests): Move the looping over test cases from
	here into...
	(selftest::for_each_line_table_case): New function.
	* input.h (saved_line_table): New decl.
	* selftest.h (struct selftest::line_table_case): New forward decl.
	(class selftest::line_table_test): New class, moved here from
	selftest::temp_line_table in input.c, and renamed.
	(selftest::for_each_line_table_case): New decl.

From-SVN: r239580
2016-08-18 16:22:10 +00:00
H.J. Lu
89c8878092 Increase MOVE_RATIO to 17 for Lakemont
Larger MOVE_RATIO will always make code faster.  17 is the number with
smaller code sizes for Lakemont.

gcc/

	PR target/72839
	* config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.

gcc/testsuite/

	PR target/72839
	* gcc.target/i386/pr72839.c: New test.

From-SVN: r239578
2016-08-18 07:59:46 -07:00
Chung-Lin Tang
2c71d454eb re PR middle-end/70895 (OpenACC: loop reduction does not work. Output is zero.)
2016-08-18  Chung-Lin Tang  <cltang@codesourcery.com>

	PR middle-end/70895
	gcc/
	* gimplify.c (omp_add_variable): Adjust/add variable mapping on
	enclosing parallel construct for reduction variables on OpenACC loop
	directives.

	gcc/testsuite/
	* gfortran.dg/goacc/loop-tree-1.f90: Add gimple scan-tree-dump test.
	* c-c++-common/goacc/reduction-1.c: Likewise.
	* c-c++-common/goacc/reduction-2.c: Likewise.
	* c-c++-common/goacc/reduction-3.c: Likewise.
	* c-c++-common/goacc/reduction-4.c: Likewise.

	libgomp/
	* testsuite/libgomp.oacc-fortran/reduction-7.f90: Add explicit
	firstprivate clauses.
	* testsuite/libgomp.oacc-fortran/reduction-6.f90: Remove explicit
	copy clauses.
	* testsuite/libgomp.oacc-c-c++-common/reduction-7.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/reduction-flt.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/reduction-dbl.c: Likewise.

From-SVN: r239576
2016-08-18 14:46:19 +00:00
Pierre-Marie de Rodat
80c5ad359f DWARF: do not emit DW_TAG_variable to materialize DWARF procedures
Hello,

For -gdwarf-3 and newer, the DWARF back-end sometimes generates DWARF
procedures to factorize complex location descriptions.  DWARF procedures
can be materialized as DW_TAG_dwarf_procedure DIEs, but actually any DIE
that can hold a DW_AT_location attribute is also accepted.

Unlike what I thought at some point, the DW_TAG_dwarf_procedure tag was
introduced in the DWARFv3 standard, not the DWARFv4 one, so the back-end
can always emit DW_TAG_dwarf_procedure DIEs, as this simplifies code and
prevents the types pruning pass from missing a DWARF procedure.

Boostrapped and regtested on x86_64-linux: no regression.  Ok to commit?
Thank you in advance!

gcc/

	* dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
	(new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
	-gdwarf-3.
	(function_to_dwarf_procedure): Update comment.

From-SVN: r239575
2016-08-18 14:39:22 +00:00
Jonathan Wakely
0b224dcf60 Expand libstdc++ docs on testing
* doc/xml/manual/test.xml (test.run.permutations): Expand section.
	(test.new_tests): Rewrite section.
	(tests.dg.directives): New section.
	* doc/html/*: Regenerate.

From-SVN: r239574
2016-08-18 14:47:42 +01:00
Jonathan Wakely
b56d48ef86 Improve documentation of libstdc++ test targets
* doc/xml/manual/test.xml: Improve documentation of test targets.
	Document new-abi-baseline, check-debug, and check-parallel targets.

From-SVN: r239573
2016-08-18 14:47:37 +01:00
Jonathan Wakely
409d55557b Document libstdc++.so versioning in manual
* doc/xml/manual/build_hacking.xml: New section on shared library
	versioning.

From-SVN: r239572
2016-08-18 14:47:33 +01:00
Jonathan Wakely
a8107a983f Improve markup in libstdc++ manual
* doc/xml/manual/build_hacking.xml: Improve markup.
	* doc/xml/manual/test.xml: Likewise. Change section title from "Test"
	to "Testing".
	* doc/xml/faq.xml: Change link text to "Testing".

From-SVN: r239571
2016-08-18 14:47:28 +01:00
David Malcolm
f89b03b6be Evict selftest tempfiles from the diagnostics file cache
Selftests can use class selftest::temp_source_file to write out files
for testing input-handling, and the files are unlinked in the dtor.

This leads to stale entries in input.c's cache of file content, which
could lead to errors if a temporary filename gets reused during a run
of the selftests.

We don't normally expect files to be "deleted from under us", so
special-case this by adding a special way for temp_source_file's
dtor to purge any cache entries referring to it.

gcc/ChangeLog:
	* input.c (diagnostics_file_cache_forcibly_evict_file): New
	function.
	* input.h (diagnostics_file_cache_forcibly_evict_file): New
	declaration.
	* selftest.c (selftest::temp_source_file::~temp_source_file):
	Evict m_filename from the diagnostic file cache.

From-SVN: r239570
2016-08-18 13:07:53 +00:00
Richard Biener
f02510201a tree-pass.h (make_pass_materialize_all_clones): Declare.
2016-08-18  Richard Biener  <rguenther@suse.de>

	* tree-pass.h (make_pass_materialize_all_clones): Declare.
	* ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
	make_pass_materialize_all_clones): New simple IPA pass encapsulating
	clone materialization.
	* passes.def (all_late_ipa_passes): Start with
	pass_materialize_all_clones.
	* cgraphunit.c (symbol_table::compile): Remove call to
	materialize_all_clones.
	* tree-into-ssa.c: Include statistics.h.
	(update_ssa): Count number of times we do incremental/rewrite
	SSA update.

From-SVN: r239567
2016-08-18 10:41:53 +00:00
Marek Polacek
9c62c87358 re PR c/7652 (-Wswitch-break : Warn if a switch case falls through)
PR c/7652
gcc/cp/
	* call.c (add_builtin_candidate): Add gcc_fallthrough.
	* cxx-pretty-print.c (pp_cxx_unqualified_id): Likewise.
	* parser.c (cp_parser_skip_to_end_of_statement): Likewise.
	(cp_parser_cache_defarg): Likewise.
libcpp/
	* pch.c (write_macdef): Add CPP_FALLTHRU.

From-SVN: r239566
2016-08-18 10:28:03 +00:00
Richard Biener
f9d97e407f re PR tree-optimization/77282 (test case gcc.dg/autopar/pr46193.c fails starting with r239414)
2016-08-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/77282
	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
	When doing auto-parallelizing also prevent use of PHIs that
	carry dependences across loop backedges.

From-SVN: r239565
2016-08-18 10:06:03 +00:00
Jonathan Wakely
6cb9849199 Remove unintended dg-options directive
* testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
	dg-options directive.

From-SVN: r239564
2016-08-18 10:58:28 +01:00
Tamar Christina
65d21eaf70 [PATCH] [GCC] Don't use section anchors for declarations that don't fit in a single anchor range
On behalf of Tamar Christina  <tamar.christina@arm.com>.

gcc/

	* varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.


Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>

From-SVN: r239561
2016-08-18 08:45:53 +00:00
Richard Biener
eeead3a6f1 ssa-iterators.h (ssa_vuse_operand): New inline.
2016-08-18  Richard Biener  <rguenther@suse.de>

	* ssa-iterators.h (ssa_vuse_operand): New inline.
	* tree-if-conv.c (ifc_temp_var): Update virtual operand.
	(predicate_all_scalar_phis): Use remove_phi_node to remove
	phi nodes predicated.  Delay removing virtual PHIs.
	(predicate_mem_writes): Update virtual operands.
	(combine_blocks): Likewise.  Propagate out remaining virtual PHIs.
	(tree_if_conversion): Do not rewrite virtual SSA form.
	* tree-phinodes.c (release_phi_node): Make static.
	* tree-phinodes.h (release_phi_node): Remove.

From-SVN: r239560
2016-08-18 07:21:11 +00:00
Jakub Jelinek
5730589da6 i386.c (enum ix86_builtins): Remove IX86_BUILTIN_* codes that appear in bdesc_* arrays...
* config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
	codes that appear in bdesc_* arrays, instead include i386-builtin.def
	twice to define those.
	(bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
	bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
	bdesc_multi_arg): Define by including i386-builtin.def the third time.
	* config/i386/i386-builtin.def: New file.

From-SVN: r239559
2016-08-18 08:58:46 +02:00
GCC Administrator
395cbeb504 Daily bump.
From-SVN: r239553
2016-08-18 00:16:13 +00:00
David Malcolm
0e06d2b3f7 input.c: move test functions within #CHECKING_P and into selftest::
gcc/ChangeLog:
	* input.c (get_source_range_for_char): Rename to...
	(selftest::get_source_range_for_char): ...this, and move within
	the #if CHECKING_P guard.
	(get_num_source_ranges_for_substring): Rename to...
	(selftest::get_num_source_ranges_for_substring): ...this, move
	within the #if CHECKING_P guard, and make static.
	(selftest::assert_num_substring_ranges): Initialize
	actual_num_ranges.

From-SVN: r239550
2016-08-18 00:13:26 +00:00
Alan Modra
66592e95db [RELOAD] Don't assume subreg mem address is ok
This patch fixes a case where reload blindly assumes a subreg mem is
OK if its address has been partially reloaded by legitimize_reload_address.

	PR rtl-optimization/72771
	* reload.c (find_reloads): Don't assume that a subreg mem is OK
	when find_reloads_toplev returns address_reloaded==-1.
	(alternative_allows_const_pool_ref): Update comment.
testsuite/
	* gcc.c-torture/compile/pr72771.c: New.

From-SVN: r239549
2016-08-18 08:11:22 +09:30
Jonathan Wakely
6fbf26cc57 Fix invalid dg-do directive
* testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
	directive and use effective target instead of dg-options.

From-SVN: r239548
2016-08-17 20:58:44 +01:00
Jonathan Wakely
18a20f3f25 Use effective target instead of -std in dg-options
* testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
	instead of -std in dg-options.
	* testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
	* testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
	* testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
	* testsuite/20_util/hash/quality.cc: Likewise.
	* testsuite/25_algorithms/heap/moveable.cc: Likewise.
	* testsuite/25_algorithms/heap/moveable2.cc: Likewise.
	* testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
	* testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
	* testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
	* testsuite/25_algorithms/sort/random_test.cc: Likewise.

From-SVN: r239547
2016-08-17 20:43:13 +01:00
Jonathan Wakely
f771720378 Add c++11 effective target to tests for C++11 features
* testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
	* testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
	* testsuite/27_io/rvalue_streams.cc: Likewise.

From-SVN: r239545
2016-08-17 20:23:15 +01:00
Jakub Jelinek
3a146d46ce re PR fortran/67496 (trans-array.c sanitizer runtime error: load of value 124, which is not a valid value for type 'bool')
PR fortran/67496
	* trans-array.c (trans_array_constructor): Load
	expr->ts.u.cl->length_from_typespec only if expr->ts.type is
	BT_CHARACTER.

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

From-SVN: r239544
2016-08-17 21:08:49 +02:00
Jonathan Wakely
e30c6e0c14 Add comment explaining why -std=c++14 is needed.
* testsuite/26_numerics/complex/literals/types.cc: Add comment.

From-SVN: r239543
2016-08-17 17:09:15 +01:00
Alan Hayward
038000bd9d re PR tree-optimization/71752 (ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:229 w/ -O1 -ftree-vectorize)
2015-08-17  Alan Hayward <alan.hayward@arm.com>

	PR tree-optimization/71752
	* tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
	* tree-vect-slp.c (vect_get_slp_defs): Handle null operands.

	PR tree-optimization/71752
	* gcc.dg/vect/pr71752.c: New

From-SVN: r239542
2016-08-17 15:31:44 +00:00
Uros Bizjak
dd42e908a0 dec_init_2.f90: Use dg-add-options ieee.
* gfortran.dg/dec_init_2.f90: Use dg-add-options ieee.

From-SVN: r239540
2016-08-17 16:33:20 +02:00
Jakub Jelinek
865f704603 gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p instead of testing ECF_NORETURN bit in gimple_call_flags.
* gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
	instead of testing ECF_NORETURN bit in gimple_call_flags.
	* tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
	* predict.c (tree_bb_level_predictions): Likewise.
	* gimple-low.c (gimple_stmt_may_fallthru): Likewise.

From-SVN: r239539
2016-08-17 16:24:53 +02:00
Jonathan Wakely
e07f4b008d Remove duplicate dg-options directive
* testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
	Remove duplicate dg-options directive.

From-SVN: r239538
2016-08-17 15:11:20 +01:00
Jakub Jelinek
458a1cd089 re PR middle-end/77259 (ICE in emit_move_insn since r232167)
PR middle-end/77259
	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
	turning a call into __builtin_unreachable-like noreturn call, adjust
	gimple_call_set_fntype.
	* tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
	gimple_call_fntype has void return type.

	* g++.dg/ipa/devirt-52.C: New test.

From-SVN: r239537
2016-08-17 15:56:30 +02:00
Jonathan Wakely
37144e84aa Adjust DG directives in libstdc++ Profile Mode test
* testsuite/ext/profile/all.cc: Use effective target instead of
	-std=gnu++11. Use dg-additional-options instead of repeating options.

From-SVN: r239536
2016-08-17 14:39:14 +01:00
Jonathan Wakely
8fe79e7334 Adjust DG directives in libstdc++ XFAIL test
* testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
	-std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
	instead of dg-excess-errors.

From-SVN: r239535
2016-08-17 14:39:10 +01:00
Jonathan Wakely
c42966921a Adjust testcases for C++17 compatibility
* testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
	test for C++17.
	* testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
	* testsuite/experimental/ratio/value.cc: Likewise.
	* testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
	C++17.
	* testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
	* testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
	* testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
	* testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
	* testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
	* testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
	* testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
	* testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/
	10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
	C++17 compatibility.

From-SVN: r239534
2016-08-17 14:39:05 +01:00
Jonathan Wakely
ba364478df Adjust testcase for C++14 compatibility
* testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
	expected signatures for C++14 compatibility.

From-SVN: r239533
2016-08-17 14:38:58 +01:00
Jonathan Wakely
657213f736 PR 77264 constrain new std::basic_string overloads
PR libstdc++/77264
	* include/bits/basic_string.h (operator=(__sv_type)
	(append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
	(replace(size_type, size_type, __sv_type))
	(replace(const_iterator, const_iterator, __sv_type))
	(find(__sv_type, size_type), rfind(__sv_type, size_type))
	(compare(size_type, size_type, __sv_type)): Reformat.
	(_If_sv): Define helper for SFINAE constaints.
	(append(const _Tp&, size_type, size_type))
	(assign(const _Tp&, size_type, size_type))
	(insert(size_type, const _Tp&, size_type, size_type))
	(replace(size_type, size_type, const _Tp&, size_type, size_type)):
	Use _If_sv.
	* testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
	SFINAE constraints.
	* testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/compare/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
	Likewise.

From-SVN: r239532
2016-08-17 14:38:52 +01:00
Chung-Lin Tang
11c4c4ba47 omp-low.c (lower_oacc_reductions): Adjust variable lookup to use maybe_lookup_decl...
2016-08-17  Chung-Lin Tang  <cltang@codesourcery.com>

	* omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
	maybe_lookup_decl, to handle nested acc loop directives.

	testsuite/
	* c-c++-common/goacc/reduction-6.c: New testcase.

From-SVN: r239530
2016-08-17 12:08:30 +00:00