Commit graph

162213 commits

Author SHA1 Message Date
David Malcolm
adac3a685d Introduce DUMP_VECT_SCOPE macro
gcc/ChangeLog:
	* tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
	Replace dump_printf_loc call with DUMP_VECT_SCOPE.
	(vect_slp_analyze_instance_dependence): Likewise.
	(vect_enhance_data_refs_alignment): Likewise.
	(vect_analyze_data_refs_alignment): Likewise.
	(vect_slp_analyze_and_verify_instance_alignment
	(vect_analyze_data_ref_accesses): Likewise.
	(vect_prune_runtime_alias_test_list): Likewise.
	(vect_analyze_data_refs): Likewise.
	* tree-vect-loop-manip.c (vect_update_inits_of_drs): Likewise.
	* tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
	(vect_analyze_scalar_cycles_1): Likewise.
	(vect_get_loop_niters): Likewise.
	(vect_analyze_loop_form_1): Likewise.
	(vect_update_vf_for_slp): Likewise.
	(vect_analyze_loop_operations): Likewise.
	(vect_analyze_loop): Likewise.
	(vectorizable_induction): Likewise.
	(vect_transform_loop): Likewise.
	* tree-vect-patterns.c (vect_pattern_recog): Likewise.
	* tree-vect-slp.c (vect_analyze_slp): Likewise.
	(vect_make_slp_decision): Likewise.
	(vect_detect_hybrid_slp): Likewise.
	(vect_slp_analyze_operations): Likewise.
	(vect_slp_bb): Likewise.
	* tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
	(vectorizable_bswap): Likewise.
	(vectorizable_call): Likewise.
	(vectorizable_simd_clone_call): Likewise.
	(vectorizable_conversion): Likewise.
	(vectorizable_assignment): Likewise.
	(vectorizable_shift): Likewise.
	(vectorizable_operation): Likewise.
	* tree-vectorizer.h (DUMP_VECT_SCOPE): New macro.

From-SVN: r261710
2018-06-18 18:49:40 +00:00
Jason Merrill
5d4d0be813 PR c++/86171 - ICE with recursive alias instantiation.
* pt.c (tsubst_decl): Handle recursive alias instantiation.

From-SVN: r261709
2018-06-18 14:16:38 -04:00
Jonathan Wakely
8499a82c19 LWG 3050 Fix cv-qualification of convertibility constraints
LWG 3050 Fix cv-qualification of convertibility constraints
	* include/std/chrono (duration, operator*, operator/, operator%): Use
	const-qualified type as source type in is_convertible constraints.
	* testsuite/20_util/duration/arithmetic/dr3050.cc: New.
	* testsuite/20_util/duration/cons/dr3050.cc: New.
	* testsuite/20_util/duration/literals/range.cc: Rename to...
	* testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust
	dg-error lineno.

From-SVN: r261708
2018-06-18 19:02:24 +01:00
Maya Rashish
4f9eae9fd8 crossconfig.m4: Handle OpenBSD just like NetBSD.
2018-06-18  Maya Rashish  <coypu@sdf.org>

	* crossconfig.m4: Handle OpenBSD just like NetBSD.
	* configure: Rebuilt.

	* config/alpha/openbsd.h (TARGET_DEFAULT): Define.
	(LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
	(INTMAX_TYPE, UINTMAX_TYPE, WINT_TYPE): Likewise.

	* config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Move from
	here to ...
	* config/alpha/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Here.

From-SVN: r261707
2018-06-18 11:28:53 -06:00
Jonathan Wakely
410fb7d7b0 P0754R2 <version> header
* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/bits/c++config: Change doxygen comment to suggest <version>
	instead of <iosfwd>.
	* include/precompiled/stdc++.h: Include <cwchar> and <cwctype>
	unconditionally.  Add C++17 and C++20 headers.
	* include/std/version: New header.
	* testsuite/17_intro/headers/c++2017/all_attributes.cc: New.
	* testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: New.
	* testsuite/17_intro/headers/c++2017/all_no_rtti.cc: New.
	* testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: New.
	* testsuite/17_intro/headers/c++2017/operator_names.cc: New.
	* testsuite/17_intro/headers/c++2017/stdc++.cc: New.
	* testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
	New.
	* testsuite/17_intro/headers/c++2020/all_attributes.cc: New.
	* testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: New.
	* testsuite/17_intro/headers/c++2020/all_no_rtti.cc: New.
	* testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: New.
	* testsuite/17_intro/headers/c++2020/operator_names.cc: New.
	* testsuite/17_intro/headers/c++2020/stdc++.cc: New.
	* testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc:
	New.
	* testsuite/18_support/headers/version/macros.cc: New.
	* testsuite/18_support/headers/version/macros.cc: New.

From-SVN: r261706
2018-06-18 17:42:11 +01:00
Martin Sebor
781ff3d80e PR tree-optimization/81384 - built-in form of strnlen missing
gcc/ChangeLog:

	PR tree-optimization/81384
	* builtin-types.def (BT_FN_SIZE_CONST_STRING_SIZE): New.
	* builtins.c (expand_builtin_strnlen): New function.
	(expand_builtin): Call it.
	(fold_builtin_n): Avoid setting TREE_NO_WARNING.
	* builtins.def (BUILT_IN_STRNLEN): New.
	* calls.c (maybe_warn_nonstring_arg): Handle BUILT_IN_STRNLEN.
	Warn for bounds in excess of maximum object size.
	* tree-ssa-strlen.c (maybe_set_strlen_range): Return tree representing
	single-value ranges.  Handle strnlen.
	(handle_builtin_strlen): Handle strnlen.
	(strlen_check_and_optimize_stmt): Same.
	* doc/extend.texi (Other Builtins): Document strnlen.

gcc/testsuite/ChangeLog:

	PR tree-optimization/81384
	* gcc.c-torture/execute/builtins/lib/strnlen.c: New test.
	* gcc.c-torture/execute/builtins/strnlen-lib.c: New test.
	* gcc.c-torture/execute/builtins/strnlen.c: New test.
	* gcc.dg/attr-nonstring-2.c: New test.
	* gcc.dg/attr-nonstring-3.c: New test.
	* gcc.dg/attr-nonstring-4.c: New test.
	* gcc.dg/strlenopt-45.c: New test.
	* gcc.dg/strlenopt.h (strnlen):  Declare.

From-SVN: r261705
2018-06-18 10:32:59 -06:00
Jonathan Wakely
7314856c61 Fix bootstrap failure for bare metal due to autoconf link tests
The AC_CHECK_FUNCS tests cause the build to fail for bare metal cross
compilers, where link tests are not allowed. Replace them with
GCC_TRY_COMPILE_OR_LINK tests instead. Skip all the Filesystem
dependency checks if not building the filesystem library.

	* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Only check when
	enable_libstdcxx_filesystem_ts = yes. Check for link, readlink and
	symlink.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Remove AC_CHECK_FUNCS for link, readlink and symlink.

From-SVN: r261704
2018-06-18 17:01:24 +01:00
Jonathan Wakely
3be9ded290 LWG 3035. std::allocator's constructors should be constexpr
LWG 3035. std::allocator's constructors should be constexpr
	* include/bits/allocator.h (allocator): Add constexpr to constructors
	for C++2a. Replace dynamic exception specifications with NOTHROW
	macro.
	(allocator, operator==, operator!=): Replace USE_NOEXCEPT macro with
	NOTHROW.
	* include/bits/c++config (_GLIBCXX20_CONSTEXPR): Define.
	* include/ext/malloc_allocator.h (malloc_allocator): Add constexpr
	to constructors for C++2a.
	* include/ext/new_allocator.h (new_allocator): Likewise.

From-SVN: r261703
2018-06-18 16:47:07 +01:00
Paolo Carlini
9a977ce360 decl.c (duplicate_decls): Consistently use DECL_SOURCE_LOCATION in errors about redefined default...
2018-06-18  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl.c (duplicate_decls): Consistently use DECL_SOURCE_LOCATION
	in errors about redefined default arguments; tidy.

From-SVN: r261702
2018-06-18 14:34:50 +00:00
Prathamesh Kulkarni
5f9bda1458 tree.c (escaped_string::escape): Replace cast to char * by const_cast<char *> (unescaped).
2018-06-18  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* tree.c (escaped_string::escape): Replace cast to char * by
	const_cast<char *> (unescaped).

From-SVN: r261700
2018-06-18 14:04:37 +00:00
Wilco Dijkstra
663305dfb5 [testsuite] Add target pthread to pr86076.c
Add missing target pthread to ensure test doesn't fail on bare-metal
targets. Committed as obvious.

    testsuite/
	PR tree-optimization/86076
	* gcc.dg/pr86076.c: Add target pthread for bare-metal targets.

From-SVN: r261699
2018-06-18 12:17:10 +00:00
Wilco Dijkstra
8422c296a8 [testsuite] Remove xfail from vect-abs-compile.c
Since PR64946 has been fixed, we can remove the xfail from this test.
Committed as obvious.

    testsuite/
	PR tree-optimization/64946
	* gcc.target/aarch64/vect-abs-compile.c: Remove xfail.

From-SVN: r261698
2018-06-18 11:10:51 +00:00
Nick Clifton
eede1a6bf3 Ensure that control characters in user supplied error and warning messages are escaped.
PR 84195
	* tree.c (escaped_string): New class.  Converts an unescaped
	string into its escaped equivalent.
	(warn_deprecated_use): Use the new class to convert the
	deprecation message, if present.
	(test_escaped_strings): New self test.
	(test_c_tests): Add test_escaped_strings.

From-SVN: r261697
2018-06-18 10:39:01 +00:00
Eric Botcazou
a7fc274f87 tree.c (decl_value_expr_lookup): Revert latest change.
* tree.c (decl_value_expr_lookup): Revert latest change.
	(decl_value_expr_insert): Likewise.
fortran/
	* trans-decl.c (gfc_get_fake_result_decl): Revert latest change.

From-SVN: r261696
2018-06-18 07:52:22 +00:00
GCC Administrator
3b4f040822 Daily bump.
From-SVN: r261695
2018-06-18 00:16:42 +00:00
Eric Botcazou
ebd94f7a7a Remove superfluous prefix
From-SVN: r261688
2018-06-17 14:24:46 +00:00
Eric Botcazou
d70ba0c10d gimplify.c (nonlocal_vlas): Delete.
* gimplify.c (nonlocal_vlas): Delete.
	(nonlocal_vla_vars): Likewise.
	(gimplify_var_or_parm_decl): Do not add debug VAR_DECLs for non-local
	referenced VLAs.
	(gimplify_body): Do not create and destroy nonlocal_vlas.
	* tree-nested.c: Include diagnostic.h.
	(use_pointer_in_frame): Tweak.
	(lookup_field_for_decl): Add assertion and declare the transformation.
	(convert_nonlocal_reference_op) <PARM_DECL>: Rework and issue an
	internal error when the reference is in a wrong context.  Do not
	create a debug decl by default.
	(note_nonlocal_block_vlas): Delete.
	(convert_nonlocal_reference_stmt) <GIMPLE_BIND>: Do not call it.
	(convert_local_reference_op) <PARM_DECL>: Skip the frame decl.  Do not
	create a debug decl by default.
	(convert_gimple_call) <GIMPLE_CALL>: Issue an internal error when the
	call is in a wrong context.
	(fixup_vla_decls): New function.
	(finalize_nesting_tree_1): Adjust comment.  Call fixup_vla_decls if no
	debug variables were created.
	* tree.c (decl_value_expr_lookup): Add checking assertion.
	(decl_value_expr_insert): Likewise.
fortran/
	* fortran/trans-decl.c (nonlocal_dummy_decl_pset): Delete.
	(nonlocal_dummy_decls): Likewise.
	(gfc_nonlocal_dummy_array_decl): Likewise.
	(gfc_get_symbol_decl): Do not call gfc_nonlocal_dummy_array_decl.
	(gfc_get_fake_result_decl): Do not generate a new DECL if simply
	reusing the result of a recursive call.
	(gfc_generate_function_code): Do not create, insert and destroy
	nonlocal_dummy_decls.

From-SVN: r261687
2018-06-17 11:36:58 +00:00
GCC Administrator
f6a4a25f24 Daily bump.
From-SVN: r261686
2018-06-17 00:16:41 +00:00
Kugan Vivekanandarajah
5126ae0c6e re PR middle-end/82479 (missing popcount builtin detection)
gcc/ChangeLog:

2018-06-16  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR middle-end/82479
	* ipa-fnsummary.c (will_be_nonconstant_expr_predicate): Handle CALL_EXPR.
	* tree-scalar-evolution.c (interpret_expr): Likewise.
	(expression_expensive_p): Likewise.
	* tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Likewise.
	* tree-ssa-loop-niter.c (number_of_iterations_popcount): New.
	(number_of_iterations_exit_assumptions): Use number_of_iterations_popcount.
	(ssa_defined_by_minus_one_stmt_p): New.

gcc/testsuite/ChangeLog:

2018-06-16  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR middle-end/82479
	* gcc.dg/tree-ssa/popcount.c: New test.
	* gcc.dg/tree-ssa/popcount2.c: New test.

From-SVN: r261682
2018-06-16 21:39:31 +00:00
Kugan Vivekanandarajah
e197e64ee8 re PR tree-optimization/64946 ([AArch64] gcc.target/aarch64/vect-abs-compile.c - "abs" vectorization fails for char/short types)
gcc/ChangeLog:

2018-06-16  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR middle-end/64946
	* cfgexpand.c (expand_debug_expr): Hande ABSU_EXPR.
	* config/i386/i386.c (ix86_add_stmt_cost): Likewise.
	* dojump.c (do_jump): Likewise.
	* expr.c (expand_expr_real_2): Check operand type's sign.
	* fold-const.c (const_unop): Handle ABSU_EXPR.
	(fold_abs_const): Likewise.
	* gimple-pretty-print.c (dump_unary_rhs): Likewise.
	* gimple-ssa-backprop.c (backprop::process_assign_use): Likesie.
	(strip_sign_op_1): Likesise.
	* match.pd: Add new pattern to generate ABSU_EXPR.
	* optabs-tree.c (optab_for_tree_code): Handle ABSU_EXPR.
	* tree-cfg.c (verify_gimple_assign_unary): Likewise.
	* tree-eh.c (operation_could_trap_helper_p): Likewise.
	* tree-inline.c (estimate_operator_cost): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	* tree-vect-patterns.c (vect_recog_sad_pattern): Likewise.
	* tree.def (ABSU_EXPR): New.

gcc/c-family/ChangeLog:

2018-06-16  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* c-common.c (c_common_truthvalue_conversion): Handle ABSU_EXPR.

gcc/c/ChangeLog:

2018-06-16  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* c-typeck.c (build_unary_op): Handle ABSU_EXPR;
	* gimple-parser.c (c_parser_gimple_statement): Likewise.
	(c_parser_gimple_unary_expression): Likewise.

gcc/cp/ChangeLog:

2018-06-16  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* constexpr.c (potential_constant_expression_1): Handle ABSU_EXPR.
	* cp-gimplify.c (cp_fold): Likewise.

gcc/testsuite/ChangeLog:

2018-06-16  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR middle-end/64946
	* gcc.dg/absu.c: New test.
	* gcc.dg/gimplefe-29.c: New test.
	* gcc.target/aarch64/pr64946.c: New test.

From-SVN: r261681
2018-06-16 21:34:29 +00:00
Jakub Jelinek
ee79110cfd re PR middle-end/86095 (documentation for -Wunsafe-loop-optimizations references options which have no effect any more)
PR middle-end/86095
	* common.opt (Wunsafe-loop-optimizations): Add Ignore, remove Var,
	documented as preserved for backward compatibility only.
	* doc/invoke.texi: Remove -Wunsafe-loop-optimizations documentation.

From-SVN: r261679
2018-06-16 08:51:32 +02:00
Jakub Jelinek
81e9944699 re PR rtl-optimization/86108 (crash during unwinding with -O2)
PR rtl-optimization/86108
	* bb-reorder.c (create_forwarder_block): Renamed to ...
	(create_eh_forwarder_block): ... this.  Split OLD_BB after labels and
	jump from new landing pad to the second part.
	(sjlj_fix_up_crossing_landing_pad, dw2_fix_up_crossing_landing_pad):
	Adjust callers.

From-SVN: r261678
2018-06-16 08:50:31 +02:00
Jason Merrill
94aedc1c0e PR c++/86147 - wrong capture for template argument.
* expr.c (mark_use): Look through NOP_EXPR.

From-SVN: r261676
2018-06-16 02:35:53 -04:00
Ben Elliston
29305f6018 config.guess: Import latest version.
* config.guess: Import latest version.
	* config.sub: Likewise.

From-SVN: r261675
2018-06-16 13:32:40 +10:00
GCC Administrator
8b1d139379 Daily bump.
From-SVN: r261674
2018-06-16 00:16:50 +00:00
Jonathan Wakely
5d84e6c53e LWG 3076 basic_string CTAD ambiguity
When deduction guides are supported by the compiler (i.e. for C++17 and
later) replace two basic_string constructors by constrained function
templates as required by LWG 3075. In order to ensure that the pre-C++17
non-template constructors are still exported from the shared library
define a macro in src/c++11/string-inst.cc to force the non-template
declarations (this isn't strictly needed yet, because the string
instantiations are compiled with -std=gnu++11, but that is likely to
change).

	LWG 3076 basic_string CTAD ambiguity
	* doc/xml/manual/intro.xml: Document LWG 3076 change.
	* include/bits/basic_string.h
	[__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
	(basic_string(const _CharT*, const _Alloc&)): Turn into a function
	template constrained by _RequireAllocator.
	(basic_string(size_type, _CharT, const _Alloc&)): Likewise.
	* src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS):
	Define.
	* testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
	deduction
	* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
	Likewise.

From-SVN: r261670
2018-06-16 00:47:33 +01:00
Jakub Jelinek
487f2f61bb re PR c/86093 (volatile ignored on pointer in C)
PR c/86093
	* c-typeck.c (pointer_diff): Cast both pointers to unqualified types
	before doing POINTER_DIFF_EXPR.

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

From-SVN: r261663
2018-06-15 22:53:54 +02:00
Jakub Jelinek
da8ea71e37 re PR middle-end/85878 (ICE in convert_mode_scalar, at expr.c:287)
PR middle-end/85878
	* expr.c (expand_assignment): Remove now redundant COMPLEX_MODE_P
	check from first store_expr, use to_mode instead of GET_MODE (to_rtx).
	Only call store_expr for halves if the mode is the same.

	* gfortran.fortran-torture/compile/pr85878.f90: New test.

From-SVN: r261659
2018-06-15 22:36:38 +02:00
Jason Merrill
fe7a23a611 pt.c (tsubst_default_argument): Use push_to/pop_from_top_level.
* pt.c (tsubst_default_argument): Use push_to/pop_from_top_level.

	* name-lookup.c (do_pushtag): Don't look through complete types, but
	don't add to them either.  Get context from current_binding_level.

From-SVN: r261656
2018-06-15 16:23:00 -04:00
Jason Merrill
b4cf2e42b5 * decl.c (start_enum): Do compare dependent underlying type.
From-SVN: r261655
2018-06-15 16:22:55 -04:00
Jason Merrill
582f844c6e PR c++/82882 - ICE with lambda in template default argument.
* lambda.c (record_null_lambda_scope): New.
	* pt.c (tsubst_lambda_expr): Use it.
	* name-lookup.c (do_pushtag): Don't give a lambda DECL_CONTEXT of a
	function that isn't open.

From-SVN: r261654
2018-06-15 16:22:44 -04:00
Jason Merrill
508f1cb51f * tree.c (maybe_warn_parm_abi): Inform the location of the class.
From-SVN: r261653
2018-06-15 16:22:38 -04:00
Jakub Jelinek
b8d8500568 re PR middle-end/86123 (ICE in prepare_cmp_insn, at optabs.c:3967)
PR middle-end/86123
	* match.pd ((X / Y) == 0 -> X < Y): Don't transform complex divisions.
	Fix up comment formatting.

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

From-SVN: r261647
2018-06-15 21:30:58 +02:00
Bernd Edlinger
b48f2352a9 typed-splay-tree.h (typed_splay_tree::remove): New function.
2018-06-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * typed-splay-tree.h (typed_splay_tree::remove): New function.
        (typed_splay_tree::closure,
        typed_splay_tree::inner_foreach_fn, typed_splay_tree::m_inner): Deleted.
        (typed_splay_tree::typed_splay_tree,
        typed_splay_tree::operator =): Declared private.
        (typed_splay_tree::splay_tree_key, typed_splay_tree::splay_tree_value,
        typed_splay_tree::splay_tree_node_s, typed_splay_tree::KDEL,
        typed_splay_tree::VDEL, typed_splay_tree::splay_tree_delete_helper,
        typed_splay_tree::rotate_left, typed_splay_tree::rotate_right,
        typed_splay_tree::splay_tree_splay,
        typed_splay_tree::splay_tree_foreach_helper,
        typed_splay_tree::splay_tree_insert,
        typed_splay_tree::splay_tree_remove,
        typed_splay_tree::splay_tree_lookup,
        typed_splay_tree::splay_tree_predecessor,
        typed_splay_tree::splay_tree_successor,
        typed_splay_tree::splay_tree_min,
        typed_splay_tree::splay_tree_max): Took over from splay-tree.c/.h.
        (typed_splay_tree::root, typed_splay_tree::comp,
        typed_splay_tree::delete_key,
        typed_splay_tree::delete_value): New data members.
        * typed-splay-tree.c (selftest::test_str_to_int): Add a test for
        typed_splay_tree::remove.

From-SVN: r261645
2018-06-15 19:17:19 +00:00
Tom de Vries
df25ffcc41 [testsuite] Run dg-final.exp sequentially
2018-06-15  Tom de Vries  <tdevries@suse.de>

	* gcc.dg-selftests/dg-final.exp: Force sequential execution.

From-SVN: r261643
2018-06-15 18:51:07 +00:00
Jonathan Wakely
525d67d42f PR libstdc++/86169 unshare COW string when non-const data() called
PR libstdc++/86169
	* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
	(basic_string::data()): Unshare string.
	* testsuite/21_strings/basic_string/operations/data/char/86169.cc:
	New.

From-SVN: r261642
2018-06-15 19:47:29 +01:00
Jonathan Wakely
36eec25a6f Decorate string_view members with nonnull attribute
The C++ committee has confirmed that passing a null pointer to the
unary basic_string_view constructor is undefined. This removes the check
from our implementation, and adds the nonnull attribute to warn when the
compiler can detect undefined input.

	* include/std/string_view (basic_string_view(const CharT*)): Remove
	check for null pointer and add nonnull attribute.
	(compare(const CharT*), compare(size_type, size_type, const CharT*))
	(find(const CharT*, size_type), rfind(const CharT*, size_type))
	(find_first_of(const CharT*, size_type))
	(find_last_of(const CharT*, size_type))
	(find_first_not_of(const CharT*, size_type))
	(find_last_not_of(const CharT*, size_type)): Add nonnull attribute.
	* testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: New.
	* testsuite/21_strings/basic_string_view/operations/compare/char/
	nonnull.cc: New.
	* testsuite/21_strings/basic_string_view/operations/find/char/
	nonnull.cc: New.
	* testsuite/21_strings/basic_string_view/operations/rfind/char/
	nonnull.cc: New.

From-SVN: r261638
2018-06-15 17:47:55 +01:00
Jonathan Wakely
3438bf7b9f PR libstdc++/86168 fix ambiguous default constructor
PR libstdc++/86168
	* include/bits/random.h (random_device(const string&)): Remove
	default argument.

From-SVN: r261636
2018-06-15 17:11:12 +01:00
Matthew Fortune
9e9e626420 MIPS: Add support for -mcrc and -mginv options.
gcc/ChangeLog:

2018-06-15  Matthew Fortune  <matthew.fortune@mips.com>

	* config/mips/mips.h (ASM_SPEC): Pass through -mcrc, -mno-crc,
	-mginv and -mno-ginv to the assembler.
	* config/mips/mips.opt (-mcrc): New option.
	(-mginv): Likewise.
	* doc/invoke.text (-mcrc): Document.
	(-mginv): Likewise.

From-SVN: r261635
2018-06-15 15:50:25 +00:00
Jonathan Wakely
5a95794c58 Only define __cpp_lib_constexpr_char_traits for C++17
* include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
	define for C++17 and above.

From-SVN: r261634
2018-06-15 16:47:56 +01:00
Nick Clifton
490cced415 Force user provided warning and error messages to only occupy one line.
PR 84195
gcc: 	* tree.c (escaped_string): New class.  Converts an unescaped
 	string into its escaped equivalent.
 	(warn_deprecated_use): Use the new class to convert the
 	deprecation message, if present.
 	(test_escaped_strings): New self test.
 	(test_c_tests): Add test_escaped_strings.
 	* doc/extend.texi (deprecated): Add a note that the
 	deprecation message is affected by the -fmessage-length
 	option, and that control characters will be escaped.
 	(#pragma GCC error): Document this pragma.
 	(#pragma GCC warning): Likewise.
 	* doc/invoke.texi (-fmessage-length): Document this option's
 	effect on the #warning and #error preprocessor directives and
 	the deprecated attribute.
	
testsuite;
 	* gcc.c-torture/compile/pr84195.c: New test.

From-SVN: r261633
2018-06-15 15:25:16 +00:00
Jonathan Wakely
7f93abd805 LWG 2993 reference_wrapper<T> conversion from T&&
* doc/xml/manual/intro.xml: Document LWG 2993 change.
	* include/bits/refwrap.h (reference_wrapper(_Tp&)): Remove.
	(reference_wrapper(_Tp&&)): Remove.
	(reference_wrapper<_Up>(_Up&&)): Define new constructor as constrained
	template.
	(reference_wrapper): Add deduction guide.
	* testsuite/20_util/reference_wrapper/deduction.cc: New.
	* testsuite/20_util/reference_wrapper/lwg2993.cc: New.

From-SVN: r261632
2018-06-15 15:19:47 +01:00
Richard Biener
d1ac60d575 tree-vect-slp.c (vect_slp_bb): Dump MSG_OPTIMIZED_LOCATIONS here, also noting vector size used.
2018-06-15  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_slp_bb): Dump MSG_OPTIMIZED_LOCATIONS
	here, also noting vector size used.
	* tree-vectorizer.c (vectorize_loops): Adjust.  Note vector
	size used in MSG_OPTIMIZED_LOCATIONS dump.
	(pass_slp_vectorize::execute): Adjust.

From-SVN: r261626
2018-06-15 12:41:46 +00:00
Claudiu Zissulescu
738cb23206 [ARC] Fix warning in arc_return_address_register.
The if condition in arc_return_address_register which selects the arc
return address is not correct. The issue is signalized in bugzilla 85968.

gcc/
2018-06-15  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_return_address_register): Fix if-condition.

From-SVN: r261623
2018-06-15 13:22:10 +02:00
Richard Biener
fa68523173 re PR tree-optimization/86159 (g++ ICE at -O1 and above on valid code: incorrect type of vector CONSTRUCTOR elements)
2018-06-15  Richard Biener  <rguenther@suse.de>

	PR middle-end/86159
	* tree-cfg.c (gimplify_build3): Do not strip sign conversions,
	leave useless conversion stripping to force_gimple_operand_gsi.
	(gimplify_build2): Likewise.
	(gimplify_build1): Likewise.

	* g++.dg/pr86159.C: New testcase.

From-SVN: r261622
2018-06-15 11:08:30 +00:00
Richard Biener
5b32ec1039 re PR tree-optimization/86076 (ICE: verify_gimple failed (error: location references block not in block tree))
2018-06-15  Richard Biener  <rguenther@suse.de>

	PR middle-end/86076
	* tree-cfg.c (move_stmt_op): unshare invariant addresses
	before adjusting their block.

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

From-SVN: r261620
2018-06-15 07:25:13 +00:00
Sebastian Huber
a8ef8061e1 RISC-V: Add custom RTEMS multilibs
Add multilib variants for -march=rv64imafd, e.g. to support the BOOMv2 core.

Add -mcmodel=medany as a variant of the 64-bit multilibs for RTEMS.  The
rationale for this change is that several existing RISC-V chips map the
RAM at 0x80000000.  In RTEMS, we do not use virtual memory, so
applications will run at this location which is outside the +-2GiB range
in a 64-bit configuration.

gcc/
	* config.gcc (riscv*-*-elf* | riscv*-*-rtems*): Use custom
	multilibs for *-*-rtems*.
	* config/riscv/t-rtems: New file.

From-SVN: r261619
2018-06-15 05:19:44 +00:00
Jonathan Wakely
cb4f9a8c05 LWG 3039 Unnecessary decay in thread and packaged_task
* include/std/future (__constrain_pkgdtask): Replace with ...
	(packaged_task::__not_same): New alias template, using
	__remove_cvref_t instead of decay.
	* include/std/thread (thread::__not_same): Add comment.

From-SVN: r261618
2018-06-15 01:19:07 +01:00
GCC Administrator
024e96b90b Daily bump.
From-SVN: r261617
2018-06-15 00:16:45 +00:00
Marek Polacek
cf4763bd72 re PR c++/86063 (g++ ICE at tree check: expected tree_list, have expr_pack_expansion in cp_check_const_attributes, at cp/decl2.c:1391)
PR c++/86063
	* decl2.c (cp_check_const_attributes): Skip trees that are not
	TREE_LISTs.

	* g++.dg/cpp0x/gen-attrs-65.C: New test.

From-SVN: r261613
2018-06-14 21:07:14 +00:00