Commit Graph

157884 Commits

Author SHA1 Message Date
Uros Bizjak
e88efb994f target-supports.exp (check_effective_target_bswap16): Do not skip on alpha and x86 targets.
* lib/target-supports.exp (check_effective_target_bswap16):
	Do not skip on alpha and x86 targets.

From-SVN: r255063
2017-11-22 16:50:14 +01:00
Ian Lance Taylor
9e951dd664 compiler: make comparison operator() methods const
This is required for new versions of libstdc++ in C++17 mode.
    
    Fixes GCC PR 83102.
    
    Reviewed-on: https://go-review.googlesource.com/79396

From-SVN: r255062
2017-11-22 15:18:43 +00:00
Sudakshina Das
543382b75e [ARM] Fix test armv8_2-fp16-move-1.c
2017-11-22  Sudakshina Das  <sudi.das@arm.com>

	* gcc.target/arm/armv8_2-fp16-move-1.c: Add -mfloat-abi=hard option.

From-SVN: r255061
2017-11-22 15:05:14 +00:00
Richard Sandiford
2131f7f5b7 PR82547: Undetected overflow for UNSIGNED wide_ints
wi::add_large and wi::sub_large weren't setting the overflow bit
correctly for unsigned operations if the result needed fewer HWIs
than the precision.

2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	PR middle-end/82547
	* wide-int.cc (wi::add_large, wi::sub_large): Fix overflow detection
	for unsigned values with fewer HWIs than the precision.
	(test_overflow): New function.
	(wide_int_cc_tests): Call it.

From-SVN: r255059
2017-11-22 13:58:57 +00:00
Richard Sandiford
a76ef9c5a8 PR83004: Accidental change to pr81136.c for VECTOR_BITS==128
r254589 was supposed to leave tests unchanged for the default
VECTOR_BITS==128, but I must have got my sums wrong on pr81136.c.

2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/testsuite/
	PR testsuite/83004
	* gcc.dg/vect/pr81136.c: Restore previous alignment of 32
	in the default case.

From-SVN: r255058
2017-11-22 13:58:46 +00:00
Richard Sandiford
f95c5b8ec1 Fix calculation of ptr_mode for MODE_PARTIAL_INT Pmode
This patch fixes a regression caused by r251469, where I'd incorrectly
converted a call to mode_for_size that sometimes needs MODE_PARTIAL_INTs.

2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	* emit-rtl.c (init_derived_machine_modes): Make sure ptr_mode
	has the same mode class as Pmode.

From-SVN: r255057
2017-11-22 13:58:20 +00:00
Thomas Preud'homme
902c4e8f95 arm.c (cmse_nonsecure_call_clear_caller_saved): Get rid of padding_bits_to_clear_ptr.
2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Get rid of
    padding_bits_to_clear_ptr.
    (cmse_nonsecure_entry_clear_before_return): Likewise.

From-SVN: r255056
2017-11-22 13:57:48 +00:00
Thomas Preud'homme
b24de9a6f4 [ARM] Use bitmap to control cmse_nonsecure_call register clearing
As part of r253256, cmse_nonsecure_entry_clear_before_return has been
rewritten to use auto_sbitmap instead of an integer bitfield to control
which register needs to be cleared. This commit continues this work in
cmse_nonsecure_call_clear_caller_saved.

2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Use
    auto_sbitap instead of integer bitfield to control register needing
    clearing.

From-SVN: r255055
2017-11-22 13:32:21 +00:00
Jakub Jelinek
ff4790688b re PR tree-optimization/83044 (ice in contains_struct_check)
PR tree-optimization/83044
	* tree-vrp.c (vrp_prop::check_array_ref): If eltsize is not
	INTEGER_CST or is 0, clear up_bound{,_p1} and later ignore tests
	that need the upper bound.  Subtract offset from
	get_addr_base_and_unit_offset only if positive and subtract it
	before division by eltsize rather than after it.

	* gcc.dg/pr83044.c: New test.
	* c-c++-common/Warray-bounds.c (fb): Fix up MAX value.

From-SVN: r255054
2017-11-22 13:35:26 +01:00
Paul Thomas
a7d3cd407c re PR fortran/79072 (ICE with class(*) pointer function result and character value)
2017-11-22  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/79072
	* trans-stmt.c (trans_associate_var): Weaken the over strong
	condition for using the fake result decl.

2017-11-22  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/79072
	* gfortran.dg/class_result_6.f90: New test for comment 10 of
	the PR.

From-SVN: r255053
2017-11-22 11:37:16 +00:00
Jonathan Wakely
e350134d72 PR go/83102 relax std::set checks for invocable comparison object
PR go/83102
	* include/bits/stl_tree.h (_Rb_tree): Relax invocable checks for
	comparison object pre-C++17.

From-SVN: r255052
2017-11-22 11:06:15 +00:00
Jakub Jelinek
aaa49b45f6 re PR debug/83084 (-fcompare-debug failure on ppc64le)
PR debug/83084
	* valtrack.c (propagate_for_debug_subst, propagate_for_debug): Reset
	debug insns if they would contain UNSPEC_VOLATILE or volatile asm.
	(dead_debug_insert_temp): Likewise, but also ignore even non-volatile
	asm.

	* g++.dg/opt/pr83084.C: New test.

From-SVN: r255051
2017-11-22 11:02:19 +01:00
Jakub Jelinek
a2998ed1dc re PR middle-end/82875 (ICE at -Os on valid code on x86_64-linux-gnu: in find_widening_optab_handler_and_mode, at optabs-query.c:414)
PR middle-end/82875
	* optabs.c (expand_doubleword_mult, expand_binop): Before calling
	expand_binop with *mul_widen_optab, make sure at least one of the
	operands doesn't have VOIDmode.

	* gcc.dg/pr82875.c: New test.
	* gcc.c-torture/compile/pr82875.c: New test.

From-SVN: r255050
2017-11-22 10:57:28 +01:00
Jakub Jelinek
0a770b5907 re PR debug/83034 (ice in mem_loc_descriptor, at dwarf2out.c :15669)
PR debug/83034
	* dwarf2out.c (mem_loc_descriptor): Handle VEC_SERIES.

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

From-SVN: r255049
2017-11-22 10:43:28 +01:00
Jakub Jelinek
213ffde2ea re PR rtl-optimization/82044 (runtime signed integer overflow in check_mem_read_rtx() and all_positions_needed_p() in dse.c)
PR rtl-optimization/82044
	PR tree-optimization/82042
	* dse.c (record_store): Check for overflow.
	(check_mem_read_rtx): Properly check for overflow if width == -1, call
	add_wild_read instead of clear_rhs_from_active_local_stores on
	overflow and log it into dump_file.

From-SVN: r255048
2017-11-22 10:08:23 +01:00
Richard Biener
608c0f6318 gimple-iterator.c (gimple_find_edge_insert_loc): Ignore fake edges to exit when looking for a place to insert.
2017-11-22  Richard Biener  <rguenther@suse.de>

	* gimple-iterator.c (gimple_find_edge_insert_loc): Ignore
	fake edges to exit when looking for a place to insert.
	* tree-ssa-pre.c (clear_expression_ids): Inline into callers
	and remove.
	(insert_into_preds_of_block): Commit edge insertion immediately,
	assert that doesn't require new BBs.
	(fini_pre): Release expressions.
	(pass_pre::execute): Shuffle things around a bit, if the fn
	is too large do not compute AVAIL either as this is really the
	quadratic bit.

From-SVN: r255047
2017-11-22 09:05:53 +00:00
Janne Blomqvist
9cf7bfd919 PR 83070 Fix -Wsign-compare warning
2017-11-22  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/83070
        * intrinsics/eoshift0.c (eoshift0): Fix -Wsign-compare warning by
        making a_ex and r_ex index_type instead of size_t.

From-SVN: r255045
2017-11-22 10:51:21 +02:00
Richard Biener
8f8e53262b re PR tree-optimization/83089 (ICE: Segmentation fault (in instantiate_scev_name))
2017-11-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/83089
	* tree-if-conv.c (pass_if_conversion::execute): If anything
	changed reset SCEV and free the number of iteration estimates.

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

From-SVN: r255044
2017-11-22 08:47:47 +00:00
Ian Lance Taylor
ce143aa6e3 libgo: don't use grep -q in mksigtab.sh
Solaris grep does not support the -q option.
    
    Reviewed-on: https://go-review.googlesource.com/79239

From-SVN: r255042
2017-11-22 00:27:29 +00:00
GCC Administrator
2ee325a522 Daily bump.
From-SVN: r255041
2017-11-22 00:16:22 +00:00
David Malcolm
d4300cc6ea C: don't suggest names that came from earlier failures (PR c/83056)
PR c/83056 reports an issue affecting trunk and gcc-7 in which
the C frontend's implementation of lookup_name_fuzzy uses undeclared
identifiers as suggestions when encountering subsequent undeclared
identifiers.

The fix is to filter out the names bound to error_mark_node
in lookup_name_fuzzy.

The C++ frontend is unaffected, as it already does this.

gcc/c/ChangeLog:
	PR c/83056
	* c-decl.c (lookup_name_fuzzy): Don't suggest names that came from
	earlier failed lookups.

gcc/testsuite/ChangeLog:
	PR c/83056
	* gcc.dg/spellcheck-pr83056.c: New test case.

From-SVN: r255038
2017-11-21 21:59:53 +00:00
Martin Sebor
6f9b7472a3 re PR tree-optimization/82945 (add warning for passing non-strings to functions that expect string arguments)
gcc/ChangeLog:

	PR tree-optimization/82945
	* calls.h (warn_nonstring_bound): Remove unused function.

From-SVN: r255036
2017-11-21 14:44:26 -07:00
Jonathan Wakely
866e4d3853 PR libstdc++/48101 improve errors for invalid container specializations
PR libstdc++/48101
	* include/bits/allocator.h (allocator<const _Tp>)
	(allocator<volatile _Tp>, allocator<const volatile _Tp>): Add partial
	specializations.
	* include/bits/forward_list.h (forward_list): Add static assertions.
	* include/bits/hashtable.h (__cache_default): Use
	__is_nothrow_invocable instead of __is_noexcept_hash.
	(_Hashtable): Add static assertions.
	* include/bits/hashtable_policy.h (__is_noexcept_hash): Remove.
	* include/bits/stl_deque.h (deque): Add static assertions.
	* include/bits/stl_function.h (_Identity<const _Tp>): Add partial
	specialization.
	* include/bits/stl_list.h (list): Add static assertions.
	* include/bits/stl_map.h (map): Likewise.
	* include/bits/stl_multimap.h (multimap): Likewise.
	* include/bits/stl_multiset.h (multiset): Likewise.
	* include/bits/stl_set.h (set): Likewise.
	* include/bits/stl_tree.h (_Rb_tree): Likewise.
	* include/bits/stl_vector.h (vector): Likewise.
	* include/bits/unordered_map.h (unordered_map, unordered_multimap):
	Use typename instead of class in template-parameter-list and remove
	spaces.
	* include/bits/unordered_set.h (unordered_set, unordered_multiset):
	Likewise.
	* testsuite/23_containers/deque/48101-2_neg.cc: New test.
	* testsuite/23_containers/deque/48101_neg.cc: New test.
	* testsuite/23_containers/forward_list/48101-2_neg.cc: New test.
	* testsuite/23_containers/forward_list/48101_neg.cc: New test.
	* testsuite/23_containers/list/48101-2_neg.cc: New test.
	* testsuite/23_containers/list/48101_neg.cc: New test.
	* testsuite/23_containers/map/48101-2_neg.cc: New test.
	* testsuite/23_containers/map/48101_neg.cc: New test.
	* testsuite/23_containers/map/operations/31440.cc: Fix comparison
	object to have const-qualified call operator.
	* testsuite/23_containers/multimap/48101-2_neg.cc: New test.
	* testsuite/23_containers/multimap/48101_neg.cc: New test.
	* testsuite/23_containers/multiset/48101-2_neg.cc: New test.
	* testsuite/23_containers/multiset/48101_neg.cc: New test.
	* testsuite/23_containers/set/48101-2_neg.cc: New test.
	* testsuite/23_containers/set/48101_neg.cc: New test.
	* testsuite/23_containers/unordered_map/48101-2_neg.cc: New test.
	* testsuite/23_containers/unordered_map/48101_neg.cc: New test.
	* testsuite/23_containers/unordered_multimap/48101-2_neg.cc: New test.
	* testsuite/23_containers/unordered_multimap/48101_neg.cc: New test.
	* testsuite/23_containers/unordered_multiset/48101-2_neg.cc: New test.
	* testsuite/23_containers/unordered_multiset/48101_neg.cc: New test.
	* testsuite/23_containers/unordered_set/48101-2_neg.cc: New test.
	* testsuite/23_containers/unordered_set/48101_neg.cc: New test.
	* testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
	dg-error line number.
	* testsuite/23_containers/vector/48101-2_neg.cc: New test.
	* testsuite/23_containers/vector/48101_neg.cc: New test.

From-SVN: r255035
2017-11-21 20:47:09 +00:00
Martin Sebor
6a33d0ff21 PR tree-optimization/82945 - add warning for passing non-strings to functions that expect string arguments
gcc/ChangeLog:

	PR tree-optimization/82945
	* builtins.c (expand_builtin_strlen): Call maybe_warn_nonstring_arg.
	* calls.h (maybe_warn_nonstring_arg): Declare new function.
	* calls.c (get_attr_nonstring_decl, maybe_warn_nonstring_arg): New
	functions.
	(initialize_argument_information): Call maybe_warn_nonstring_arg.
	* calls.h (get_attr_nonstring_decl): Declare new function.
	* doc/extend.texi (attribute nonstring): Update.
	* gimple-fold.c (gimple_fold_builtin_strncpy): Call
	get_attr_nonstring_decl and handle it.
	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same.  Improve
	detection of nul-termination.
	(strlen_to_stridx): Change to a pointer.
	(handle_builtin_strlen, handle_builtin_stxncpy): Adjust.
	(pass_strlen::execute): Same.

gcc/testsuite/ChangeLog:

	PR tree-optimization/82945
	* c-c++-common/Wstringop-truncation-2.c: New test.
	* c-c++-common/Wstringop-truncation.c: Adjust.
	* c-c++-common/attr-nonstring-2.c: Adjust.
	* c-c++-common/attr-nonstring-3.c: New test.

From-SVN: r255031
2017-11-21 13:01:58 -07:00
Sergey Shalnov
ab2c4ec8dc i386-opts.h (enum prefer_vector_width): Added new enum for the new option -mprefer-vector-width=[none|128|256|512].
* config/i386/i386-opts.h (enum prefer_vector_width): Added new enum
	for the new option -mprefer-vector-width=[none|128|256|512].
	* config/i386/i386.c (ix86_target_string): remove old style options
	-mprefer-avx256 and make -mprefer-avx128 as alias.
	(ix86_option_override_internal):  Apply defaults for the
	-mprefer-vector-width=[128|256] option.
	* config/i386/i386.h (TARGET_PREFER_AVX128, TARGET_PREFER_AVX256):
	Implement macros to work with -mprefer-vector-width=.
	* config/i386/i386.opt: Implemented option
	-mprefer-vector-width=[none|128|256|512].
	* doc/invoke.texi: Documentation for
	-mprefer-vector-width=[none|128|256|512].

gcc/testsuite/

	* g++.dg/ext/pr57362.C (__attribute__): Test
	prefer-vector-width=[128|256] target attribute.
	* gcc.target/i386/avx512f-constant-float-return.c (dg-optioins):
	Use -mprefer-vector-width=256 instead of -mprefer-avx256.
	* gcc.target/i386/avx512f-prefer.c: Ditto.
	* gcc.target/i386/pr82460-2.c: Ditto.

From-SVN: r255030
2017-11-21 20:52:01 +01:00
Martin Liska
84fa214dea Add quotes for constexpr keyword.
2017-11-21  Martin Liska  <mliska@suse.cz>

	* class.c (finalize_literal_type_property): Add quotes for
	constexpr keyword.
	(explain_non_literal_class): Likewise.
	* constexpr.c (ensure_literal_type_for_constexpr_object): Likewise.
	(is_valid_constexpr_fn): Likewise.
	(check_constexpr_ctor_body): Likewise.
	(register_constexpr_fundef): Likewise.
	(explain_invalid_constexpr_fn): Likewise.
	(cxx_eval_builtin_function_call): Likewise.
	(cxx_eval_call_expression): Likewise.
	(cxx_eval_loop_expr): Likewise.
	(potential_constant_expression_1): Likewise.
	* decl.c (check_previous_goto_1): Likewise.
	(check_goto): Likewise.
	(grokfndecl): Likewise.
	(grokdeclarator): Likewise.
	* error.c (maybe_print_constexpr_context): Likewise.
	* method.c (process_subob_fn): Likewise.
	(defaulted_late_check): Likewise.
	* parser.c (cp_parser_compound_statement): Likewise.
2017-11-21  Martin Liska  <mliska@suse.cz>

	* g++.dg/cpp0x/constexpr-48089.C: Add quotes for constexpr
	keyword; add dg-message for 'in .constexpr. expansion of '.
	* g++.dg/cpp0x/constexpr-50060.C: Likewise.
	* g++.dg/cpp0x/constexpr-60049.C: Likewise.
	* g++.dg/cpp0x/constexpr-70323.C: Likewise.
	* g++.dg/cpp0x/constexpr-70323a.C: Likewise.
	* g++.dg/cpp0x/constexpr-cast.C: Likewise.
	* g++.dg/cpp0x/constexpr-diag3.C: Likewise.
	* g++.dg/cpp0x/constexpr-ex1.C: Likewise.
	* g++.dg/cpp0x/constexpr-generated1.C: Likewise.
	* g++.dg/cpp0x/constexpr-ice16.C: Likewise.
	* g++.dg/cpp0x/constexpr-ice5.C: Likewise.
	* g++.dg/cpp0x/constexpr-incomplete2.C: Likewise.
	* g++.dg/cpp0x/constexpr-neg1.C: Likewise.
	* g++.dg/cpp0x/constexpr-recursion.C: Likewise.
	* g++.dg/cpp0x/constexpr-shift1.C: Likewise.
	* g++.dg/cpp1y/constexpr-70265-1.C: Likewise.
	* g++.dg/cpp1y/constexpr-70265-2.C: Likewise.
	* g++.dg/cpp1y/constexpr-79655.C: Likewise.
	* g++.dg/cpp1y/constexpr-new.C: Likewise.
	* g++.dg/cpp1y/constexpr-return2.C: Likewise.
	* g++.dg/cpp1y/constexpr-shift1.C: Likewise.
	* g++.dg/cpp1y/constexpr-throw.C: Likewise.
	* g++.dg/cpp1z/constexpr-lambda6.C: Likewise.
	* g++.dg/ext/constexpr-vla1.C: Likewise.
	* g++.dg/ext/constexpr-vla2.C: Likewise.
	* g++.dg/ext/constexpr-vla3.C: Likewise.
	* g++.dg/cpp0x/static_assert10.C: Likewise.
	* g++.dg/cpp1y/pr63996.C: Likewise.
	* g++.dg/cpp1y/pr68180.C: Likewise.
	* g++.dg/cpp1y/pr77830.C: Likewise.
	* g++.dg/ubsan/pr63956.C: Likewise.

From-SVN: r255025
2017-11-21 18:58:49 +00:00
Pat Haugen
fc3605f174 ppc-asm.h (f50, vs50): Fix values.
* config/rs6000/ppc-asm.h (f50, vs50): Fix values.

From-SVN: r255024
2017-11-21 18:46:23 +00:00
Przemyslaw Wirkus
b99415b760 Fix invalid XML in libstdc++ manual
2017-11-21  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

	* doc/xml/manual/using.xml (manual.intro.using.macros): Move
	variablelist element at the end of its list.

From-SVN: r255023
2017-11-21 18:45:04 +00:00
Jonathan Wakely
4bd9c84c52 Improve -Wmaybe-uninitialized documentation
* doc/invoke.texi (-Wmaybe-uninitialized): Rephrase for clarity.

From-SVN: r255022
2017-11-21 18:38:18 +00:00
Marc Glisse
1af4ebf598 New POINTER_DIFF_EXPR
2017-11-21  Marc Glisse  <marc.glisse@inria.fr>

gcc/c/
	* c-fold.c (c_fully_fold_internal): Handle POINTER_DIFF_EXPR.
	* c-typeck.c (pointer_diff): Use POINTER_DIFF_EXPR.

gcc/c-family/
	* c-pretty-print.c (pp_c_additive_expression,
	c_pretty_printer::expression): Handle POINTER_DIFF_EXPR.

gcc/cp/
	* constexpr.c (cxx_eval_constant_expression,
	potential_constant_expression_1): Handle POINTER_DIFF_EXPR.
	* cp-gimplify.c (cp_fold): Likewise.
	* error.c (dump_expr): Likewise.
	* typeck.c (pointer_diff): Use POINTER_DIFF_EXPR.

gcc/
	* doc/generic.texi: Document POINTER_DIFF_EXPR, update
	POINTER_PLUS_EXPR.
	* cfgexpand.c (expand_debug_expr): Handle POINTER_DIFF_EXPR.
	* expr.c (expand_expr_real_2): Likewise.
	* fold-const.c (const_binop, fold_addr_of_array_ref_difference,
	fold_binary_loc): Likewise.
	* match.pd (X-X, P+(Q-P), &D-P, (P+N)-P, P-(P+N), (P+M)-(P+N),
	P-Q==0, -(A-B), X-Z<Y-Z, (X-Z)-(Y-Z), Z-X<Z-Y, (Z-X)-(Z-Y),
	(A-B)+(C-A)): New transformations for POINTER_DIFF_EXPR, based on
	MINUS_EXPR transformations.
	* optabs-tree.c (optab_for_tree_code): Handle POINTER_DIFF_EXPR.
	* tree-cfg.c (verify_expr, verify_gimple_assign_binary): Likewise.
	* tree-inline.c (estimate_operator_cost): Likewise.
	* tree-pretty-print.c (dump_generic_node, op_code_prio,
	op_symbol_code): Likewise.
	* tree-vect-stmts.c (vectorizable_operation): Likewise.
	* vr-values.c (extract_range_from_binary_expr): Likewise.
	* varasm.c (initializer_constant_valid_p_1): Likewise.
	* tree.def: New tree code POINTER_DIFF_EXPR.

From-SVN: r255021
2017-11-21 18:23:56 +00:00
Uros Bizjak
ffb41aab7a * config/i386/i386.md: Missing file from my previous commit.
From-SVN: r255019
2017-11-21 18:46:38 +01:00
Jakub Jelinek
826eccc6fd re PR c++/83045 (-Wreturn-type regression in C++)
PR c++/83045
	* tree-cfg.c (pass_warn_function_return::execute): Formatting fix.
	Also warn if seen __builtin_unreachable () call with BUILTINS_LOCATION.
	Use LOCATION_LOCUS when comparing against UNKNOWN_LOCATION.

	* c-c++-common/pr61405.c (fn0, fn1): Add return stmts.
	* c-c++-common/Wlogical-op-2.c (fn): Likewise.
	* g++.dg/debug/pr53466.C: Add -Wno-return-type to dg-options.
	* g++.dg/opt/combine.C: Likewise.
	* g++.dg/ubsan/return-3.C: Likewise.
	* g++.dg/pr59445.C: Likewise.
	* g++.dg/pr49847.C: Likewise.
	* g++.dg/ipa/pr61800.C: Likewise.
	* g++.dg/ipa/pr63470.C: Likewise.
	* g++.dg/ipa/pr68672-1.C: Likewise.
	* g++.dg/pr58438.C: Likewise.
	* g++.dg/torture/pr59265.C: Likewise.
	* g++.dg/tree-ssa/ssa-dse-2.C: Likewise.
	* g++.old-deja/g++.eh/catch13.C: Likewise.
	* g++.old-deja/g++.eh/crash1.C: Likewise.
	* g++.dg/tm/pr60004.C: Expect -Wreturn-type warning.
	* g++.dg/torture/pr55740.C: Likewise.
	* g++.dg/torture/pr43257.C: Likewise.
	* g++.dg/torture/pr64280.C: Likewise.
	* g++.dg/torture/pr54684.C: Likewise.
	* g++.dg/torture/pr56694.C: Likewise.
	* g++.dg/torture/pr68470.C: Likewise.
	* g++.dg/torture/pr60648.C: Likewise.
	* g++.dg/torture/pr71281.C: Likewise.
	* g++.dg/torture/pr52772.C: Add -Wno-return-type dg-additional-options.
	* g++.dg/torture/pr64669.C: Likewise.
	* g++.dg/torture/pr58369.C: Likewise.
	* g++.dg/torture/pr33627.C: Likewise.
	* g++.dg/torture/predcom-1.C: Add
	#pragma GCC diagnostic ignored "-Wreturn-type".
	* g++.dg/lto/20090221_0.C: Likewise.
	* g++.dg/lto/20091026-1_1.C: Likewise.
	* g++.dg/lto/pr54625-1_1.C: Likewise.
	* g++.dg/warn/pr83045.C: New test.

From-SVN: r255018
2017-11-21 18:40:34 +01:00
Uros Bizjak
8fccb0a6b6 i386.md (*bswap<mode>2_movbe): Add integer suffix to movbe mnemonic.
* config/i386/i386.md (*bswap<mode>2_movbe): Add
	integer suffix to movbe mnemonic.
	(*bswaphi2_movbe): Ditto.
	(bswaphi_lowpart): Merge with *bswaphi_lowpart_1.

testsuite/ChangeLog:

	* gcc.target/i386/movbe-1.c: Update scan string for movbe
	with integer suffix.
	* gcc.target/i386/movbe-2.c: Ditto.
	* gcc.target/i386/movbe-3.c: Ditto.
	* gcc.target/i386/movbe-4.c: Ditto.
	* gcc.target/i386/movbe-5.c: Ditto.

From-SVN: r255017
2017-11-21 18:35:23 +01:00
Uros Bizjak
40a9022414 * gcc.target/i386/pr82713.c: Fix dg directive.
From-SVN: r255016
2017-11-21 18:00:35 +01:00
Paolo Carlini
00709c08e8 re PR c++/83020 (('17) Class template constructor call skipped with no error when substitution fails in default argument)
2017-11-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/83020
	* g++.dg/cpp1z/pr83020.C: New.

From-SVN: r255006
2017-11-21 15:36:25 +00:00
Martin Liska
769ae3bb49 Remove not needed xstrdup_for_dump.
2017-11-21  Martin Liska  <mliska@suse.cz>

	* tree-inline.c (expand_call_inline):
	  Remove not needed xstrdup_for_dump.

From-SVN: r255005
2017-11-21 14:59:27 +00:00
Jakub Jelinek
0698829670 re PR target/82880 (gcc --help=target --help=optimizers hangs on mips)
PR target/82880
	* config/mips/frame-header-opt.c (mips_register_frame_header_opt):
	Remove static keyword from f variable.

	* gcc.dg/opts-8.c: New test.

From-SVN: r255004
2017-11-21 15:50:03 +01:00
Jakub Jelinek
7d2f0f9b61 * c-common.c (get_nonnull_operand): Use tree_to_uhwi.
From-SVN: r255003
2017-11-21 14:57:11 +01:00
Jakub Jelinek
aa11164a39 re PR tree-optimization/83086 (valgrind error in gimple-ssa-store-merging.c for recent build)
PR tree-optimization/83086
	* gimple-ssa-store-merging.c
	(imm_store_chain_info::try_coalesce_bswap): Test this_n.base_addr
	rather than n.base_addr.

From-SVN: r255002
2017-11-21 14:54:08 +01:00
Martin Liska
938f9248db Fix UBSAN errors in dse.c (PR rtl-optimization/82044).
2017-11-21  Martin Liska  <mliska@suse.cz>

	PR rtl-optimization/82044
	PR tree-optimization/82042
	* dse.c (check_mem_read_rtx): Check for overflow.

From-SVN: r255001
2017-11-21 13:39:14 +00:00
Aldy Hernandez
ddc1759a35 tree-ssa-threadbackward.c (find_jump_threads_backwards): Fix typo in comment.
* tree-ssa-threadbackward.c (find_jump_threads_backwards): Fix
	typo in comment.

From-SVN: r254999
2017-11-21 11:39:51 +00:00
Claudiu Zissulescu
13f5d5e082 Don't split call from its call arg location.
gcc/
2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>

	* cfgrtl.c (force_nonfallthru_and_redirect): Don't split a call
	and its corresponding call arg location note.

testsuite/
2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>

	* gcc.target/arc/loop-5.cpp: New test.

From-SVN: r254998
2017-11-21 12:37:42 +01:00
Claudiu Zissulescu
6fe5e235f9 [ARC] Reimplement exception handling support.
2016-06-09  Claudiu Zissulescu  <claziss@synopsys.com>
	    Andrew Burgess  <andrew.burgess@embecosm.com>

	* config/arc/arc-protos.h (arc_compute_frame_size): Delete
	declaration.
	(arc_return_slot_offset): Likewise.
	(arc_eh_return_address_location): New declaration.
	* config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
	(MUST_SAVE_REGISTER): Add exception handler case.
	(MUST_SAVE_RETURN_ADDR): Likewise.
	(arc_frame_pointer_required): Likewise.
	(arc_frame_pointer_needed): New function.
	(arc_compute_frame_size): Changed.
	(arc_expand_prologue): Likewise.
	(arc_expand_epilogue): Likewise.
	(arc_initial_elimination_offset): Likewise.
	(arc_return_slot_offset): Delete.
	(arc_eh_return_address_location): New function.
	(arc_builtin_setjmp_frame_value): Likewise.
	* config/arc/arc.h (EH_RETURN_DATA_REGNO): Use 2 registers.
	(EH_RETURN_STACKADJ_RTX): Define.
	(EH_RETURN_HANDLER_RTX): Likewise.
	* config/arc/arc.md (eh_return): Delete.

Co-Authored-By: Andrew Burgess <andrew.burgess@embecosm.com>

From-SVN: r254997
2017-11-21 12:37:30 +01:00
Aldy Hernandez
24d39222e8 print-tree.h (debug_vec_tree): Remove prototype.
* print-tree.h (debug_vec_tree): Remove prototype.
	* gdbinit.in (pvt): Remove macro.

From-SVN: r254996
2017-11-21 10:06:52 +00:00
Jakub Jelinek
97031af755 re PR tree-optimization/83047 (glibc/crypt/crypt_util.c gets miscompiled)
PR tree-optimization/83047
	* gimple-ssa-store-merging.c
	(imm_store_chain_info::output_merged_store): If the loads with the
	same vuse are in different basic blocks, for load_gsi pick a load
	location that is dominated by the other loads.

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

From-SVN: r254992
2017-11-21 09:41:47 +01:00
Jakub Jelinek
7768f20b0a P0428R2 - familiar template syntax for generic lambdas
P0428R2 - familiar template syntax for generic lambdas
	* parser.c (cp_parser_lambda_declarator_opt): Don't pedwarn
	for cxx2a and above, reword pedwarn for C++14/C++17.

	* g++.dg/cpp1y/lambda-generic-x.C: Adjust warnings and limit
	to c++17_down target.
	* g++.dg/cpp1y/lambda-generic-dep.C: Likewise.
	* g++.dg/cpp1y/lambda-generic-77914.C: Adjust error and limit
	to c++17_down target.
	* g++.dg/cpp2a/lambda-generic1.C: New test.
	* g++.dg/cpp2a/lambda-generic2.C: New test.
	* g++.dg/cpp2a/lambda-generic3.C: New test.
	* g++.dg/cpp2a/lambda-generic4.C: New test.
	* g++.dg/cpp2a/lambda-generic5.C: New test.

From-SVN: r254991
2017-11-21 09:39:57 +01:00
Jakub Jelinek
d44ed508a6 re PR c++/83059 (ICE on invalid C++ code: in tree_to_uhwi, at tree.c:6633)
PR c++/83059
	* c-common.c (get_atomic_generic_size): Use TREE_INT_CST_LOW
	instead of tree_to_uhwi, formatting fix.
	* config/i386/i386.c (ix86_memmodel_check): Start
	-Winvalid-memory-model diagnostics with lowercase letter.

	* c-c++-common/pr83059.c: New test.

From-SVN: r254990
2017-11-21 09:06:28 +01:00
Jakub Jelinek
8b87e0d125 re PR debug/82718 (Bad DWARF5 .debug_loclists generation)
PR debug/82718
	* dwarf2out.c (dw_loc_list): If crtl->has_bb_partition, temporarily
	set in_cold_section_p to the partition containing loc_list->first.
	When seeing loc_list->last_before_switch node, update secname and
	perform range_across_switch second partition handling only after that.

	* gcc.dg/debug/dwarf2/pr82718-1.c: New test.
	* gcc.dg/debug/dwarf2/pr82718-2.c: New test.

From-SVN: r254989
2017-11-21 08:59:03 +01:00
Jakub Jelinek
83087d6521 re PR debug/82933 (valgrind error in set_cur_line_info_table with -g)
PR debug/82933
	* run-rtl-passes.c: Include debug.h.
	(run_rtl_passes): Call debug_hooks->assembly_start.
	* dwarf2out.c (dwarf2out_assembly_start): Return early if invoked
	multiple times.

	* gcc.dg/rtl/x86_64/pr82933.c: New test.

From-SVN: r254987
2017-11-21 08:50:15 +01:00
Jakub Jelinek
644f013227 re PR target/82981 (unnecessary __multi3 call for mips64r6 linux kernel)
PR target/82981
	* internal-fn.c (expand_mul_overflow): Use OPTAB_WIDEN instead of
	OPTAB_DIRECT in calls to expand_simple_binop.

From-SVN: r254986
2017-11-21 08:49:14 +01:00