Commit Graph

164413 Commits

Author SHA1 Message Date
Rasmus Villemoes fc8abc4660 libgcc: apply LIB2FUNCS_EXCLUDE logic to LIB2FUNCS_ST
One target file (config/c6x/t-elf) lists _printf and _gcc_bcmp in
LIB2FUNCS_EXCLUDE, but that does not have any effect, since those are
not filtered away from LIB2FUNCS_ST. Another option is to do as in
config/rl78/t-rl78, which explicitly sets LIB2FUNCS_ST

# Remove __gcc_bcmp from LIB2FUNCS_ST
LIB2FUNCS_ST = _eprintf

but honouring LIB2FUNCS_EXCLUDE also for LIB2FUNCS_ST seems more
natural.

From-SVN: r265246
2018-10-17 18:39:48 +00:00
Eric Botcazou 1906e1a607 re PR middle-end/87623 (bytes swapped in register when comparing cause fail when compiled with -O1 or higher)
PR middle-end/87623
	* fold-const.c (fold_truth_andor_1): If the right side is not constant,
	bail out if both sides do not have the same storage order.

From-SVN: r265242
2018-10-17 17:49:28 +00:00
Aldy Hernandez 54994253d3 bitmap.c (bitmap_head::dump): New.
* bitmap.c (bitmap_head::dump): New.
	* bitmap.h (bitmap_head): Add dump().
	* gimple-ssa-evrp-analyze.c
	(evrp_range_analyzer::try_find_new_range): Adjust for value_range API.
	(evrp_range_analyzer::set_ssa_range_info): Same.
	(evrp_range_analyzer::record_ranges_from_phis): Same.
	(evrp_range_analyzer::record_ranges_from_stmt): Same.
	* gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Same.
	* gimple-ssa-sprintf.c (get_int_range): Same.
	(format_integer): Same.
	(sprintf_dom_walker::handle_gimple_call): Same.
	* ipa-cp.c (ipcp_vr_lattice::meet_with_1): Same.
	(ipcp_vr_lattice::top_p): Same.
	(ipcp_vr_lattice::bottom_p): Same.
	(ipcp_vr_lattice::set_to_bottom): Same.
	(ipa_vr_operation_and_type_effects): Same.
	(propagate_vr_across_jump_function): Same.
	(ipcp_store_vr_results): Same.
	* ipa-prop.c (struct ipa_vr_ggc_hash_traits): Same.
	(ipa_print_node_jump_functions_for_edge): Same.
	(ipa_get_value_range): Same.
	(ipa_compute_jump_functions_for_edge): Same.
	(ipa_write_jump_function): Same.
	* tree-ssa-dom.c (simplify_stmt_for_jump_threading): Same.
	* tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
	Same.
	* vr-values.c (set_value_range_to_nonnegative): Same.
	(set_value_range_to_truthvalue): Same.
	(vr_values::get_value_range): Same.
	(vr_values::set_defs_to_varying): Same.
	(vr_values::update_value_range): Same.
	(symbolic_range_based_on_p): Same.
	(vr_values::op_with_boolean_value_range_p): Same.
	(vr_values::extract_range_for_var_from_comparison_expr): Same.
	(vr_values::extract_range_from_ssa_name): Same.
	(vr_values::extract_range_from_binary_expr): Same.
	(vr_values::extract_range_from_unary_expr): Same.
	(vr_values::extract_range_from_cond_expr): Same.
	(vr_values::extract_range_from_comparison): Same.
	(vr_values::check_for_binary_op_overflow): Same.
	(vr_values::extract_range_basic): Same.
	(vr_values::extract_range_from_assignment): Same.
	(compare_ranges): Same.
	(compare_range_with_value): Same.
	(vr_values::adjust_range_with_scev): Same.
	(vrp_valueize): Same.
	(vrp_valueize_1): Same.
	(vr_values::get_vr_for_comparison): Same.
	(vr_values::compare_name_with_value): Same.
	(vr_values::compare_names): Same.
	(vr_values::vrp_evaluate_conditional): Same.
	(find_case_label_ranges): Same.
	(vr_values::vrp_visit_switch_stmt): Same.
	(vr_values::extract_range_from_phi_node): Same.
	(vr_values::simplify_div_or_mod_using_ranges): Same.
	(vr_values::simplify_bit_ops_using_ranges): Same.
	(test_for_singularity): Same.
	(range_fits_type_p): Same.
	(vr_values::simplify_cond_using_ranges_1): Same.
	(vr_values::simplify_switch_using_ranges): Same.
	(vr_values::simplify_float_conversion_using_ranges): Same.
	(vr_values::two_valued_val_range_p): Same.
	(vr_values::add_equivalence): Move to value_range::equiv_add.
	* vr-values.h (vr_values::add_equivalence): Remove.
	(VR_INITIALIZER): Remove.
	* tree-vrp.c (value_range::set): New.
	(value_range::equiv_add): New.
	(value_range::value_range): New.
	(value_range::deep_copy): New.
	(value_range::check): New.
	(value_range::equal_p): New.
	(value_range::ignore_equivs_equal_p): New.
	(value_range::operator==): New.
	(value_range::operator!=): New.
	(value_range::symbolic_p): New.
	(value_range::numeric_p): New.
	(value_range::set_undefined): New.
	(value_range::set_varying): New.
	(value_range::may_contain_p): New.
	(value_range::equiv_clear): New.
	(value_range::singleton_p): New.
	(value_range::intersect): New.
	(value_range::dump): New.
	(value_range::set_and_canonicalize): New.
	(set_value_range): Adjust for value_range API.
	(set_value_range_to_undefined): Same.
	(set_value_range_to_varying): Same.
	(set_and_canonicalize_value_range): Same.
	(set_value_range_to_nonnull): Same.
	(set_value_range_to_null): Same.
	(range_is_null): Same.
	(range_is_nonnull): Same.
	(range_int_cst_p): Same.
	(range_int_cst_singleton_p): Same.
	(symbolic_range_p): Same.
	(range_includes_zero_p): Same.
	(value_range_constant_singleton): Same.
	(vrp_set_zero_nonzero_bits): Same.
	(ranges_from_anti_range): Same.
	(extract_range_into_wide_ints): Same.
	(extract_range_from_multiplicative_op): Same.
	(set_value_range_with_overflow): Same.
	(extract_range_from_binary_expr_1): Same.
	(extract_range_from_unary_expr): Same.
	(dump_value_range): Same.
	(debug_value_range): Same.
	(vrp_prop::check_array_ref): Same.
	(vrp_prop::check_mem_ref): Same.
	(vrp_prop::vrp_initialize): Same.
	(vrp_prop::visit_stmt): Same.
	(intersect_ranges): Same.
	(vrp_prop::visit_phi): Same.
	(vrp_prop::vrp_finalize): Same.
	(determine_value_range_1): Same.
	(determine_value_range): Same.
	(vrp_intersect_ranges_1): Rename to...
	(vrp_intersect_1): this.
	(vrp_intersect_ranges): Rename to...
	(value_range::intersect_helper): ...this.
	(vrp_meet_1): Rename to...
	(value_range::union_helper): ...this.
	(vrp_meet): Rename to...
	(value_range::union_): ...this.
	(copy_value_range): Remove.
	* tree-vrp.h (struct value_range): Rewrite into a proper class.
	(value_range::vrtype): New.
	(value_range::type): New.
	(value_range::equiv): New.
	(value_range::min): New.
	(value_range::max): New.
	(value_range::varying_p): New.
	(value_range::undefined_p): New.
	(value_range::null_p): New.
	(value_range::equiv_add): New.
	(copy_value_range): Remove.

From-SVN: r265241
2018-10-17 15:59:25 +00:00
David Malcolm 033eb56717 Run selftests for C++ as well as C
gcc/ChangeLog:
	* Makefile.in (SELFTEST_TARGETS): New.
	(selftest) Change from s-selftest-c to $(SELFTEST_TARGETS).
	(C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb)
	(selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move to
	c/Make-lang.in.
	(CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++)
	(selftest-c++-gdb, selftest-c++-valgrind): Move to
	cp/Make-lang.in.
	* configure: Regenerate.
	* configure.ac (selftest_languages): New.

gcc/brig/ChangeLog:
	* Make-lang.in (selftest-brig): New.

gcc/c/ChangeLog:
	* Make-lang.in (selftest-c): New.
	(C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb)
	(selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move here
	from gcc/Makefile.in.

gcc/cp/ChangeLog:
	* Make-lang.in (selftest-c++): New.
	(CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++)
	(selftest-c++-gdb, selftest-c++-valgrind): Move here from
	gcc/Makefile.in.

gcc/fortran/ChangeLog:
	* Make-lang.in (selftest-fortran): New.

gcc/go/ChangeLog:
	* Make-lang.in (selftest-go): New.

gcc/jit/ChangeLog:
	* Make-lang.in (selftest-jit): New.

gcc/lto/ChangeLog:
	* Make-lang.in (selftest-lto): New.

gcc/objc/ChangeLog:
	* Make-lang.in (selftest-objc): New.

gcc/objcp/ChangeLog:
	* Make-lang.in (selftest-obj-c++): New.

From-SVN: r265240
2018-10-17 13:56:05 +00:00
Aldy Hernandez e8f1d5cb7c tree-vrp.c (extract_range_from_multiplicative_op): Remove overflow wraps argument.
* tree-vrp.c (extract_range_from_multiplicative_op): Remove
	overflow wraps argument.
        (extract_range_from_binary_expr_1): Do not pass overflow wraps to
	wide_int_range_multiplicative_op.
        * wide-int-range.cc (wide_int_range_mult_wrapping): Remove
	overflow wraps argument.
        (wide_int_range_multiplicative_op): Same.
        (wide_int_range_lshift): Same.
        (wide_int_range_div): Same.
        * wide-int-range.h (wide_int_range_multiplicative_op): Same.
        (wide_int_range_lshift): Same.
        (wide_int_range_div): Same.

From-SVN: r265238
2018-10-17 12:32:08 +00:00
Aldy Hernandez fa6b20f32c wide-int-range.h (wide_int_range_shift_undefined_p): Adjust to use sign as argument.
* wide-int-range.h (wide_int_range_shift_undefined_p): Adjust to
	use sign as argument.
	* tree-vrp.c (extract_range_from_binary_expr_1): Pass sign to
	wide_int_range_shift_undefined_p.

From-SVN: r265237
2018-10-17 12:31:58 +00:00
Paolo Carlini cd1e244a1c 2018-10-17 Paolo Carlini <paolo.carlini@oracle.com>
* Fix typo in ChangeLog.

From-SVN: r265234
2018-10-17 07:34:28 +00:00
Paolo Carlini 2be9999874 re PR c++/84705 (internal compiler error: in add_stmt, at cp/semantics.c:390)
/cp
2018-10-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84705
	* init.c (build_cplus_new): Avoid duplicate diagnostic about
	incomplete type, early return error_mark_node if the second
	argument is error_mark_node.

/testsuite
2018-10-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84705
	* g++.dg/cpp0x/pr84705.C: New.

From-SVN: r265233
2018-10-17 07:32:15 +00:00
Paul Thomas ece6652651 re PR fortran/56386 ([F03] ICE with ASSOCIATE construct and an derived type array component)
2018-10-17  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/56386
	PR fortran/58906
	PR fortran/77385
	PR fortran/80260
	PR fortran/82077
	* resolve.c (resolve_variable): Fix up expressions with array
	associate names, where the parser did not detect that this is
	array and there was no array part_ref in the expression.

2018-10-17  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/56386
	PR fortran/58906
	PR fortran/77385
	* gfortran.dg/associate_44.f90 : New test.

	PR fortran/80260
	* gfortran.dg/select_type_45.f90 : New test.

	PR fortran/82077
	* gfortran.dg/select_type_46.f90 : New test.

From-SVN: r265232
2018-10-17 07:16:16 +00:00
GCC Administrator 17d6b74d7f Daily bump.
From-SVN: r265228
2018-10-17 00:17:01 +00:00
Joseph Myers 9419a8e244 * es.po: Update.
From-SVN: r265223
2018-10-17 01:10:29 +01:00
Jonathan Wakely ec2e0ad5ea Fix regression in std::random_device default constructor
When the default constructor was split out into a separate function (in
r261522) I accidentally  made it call _M_init("mt19937") instead of
_M_init_pretr1("mt19937"). That means it will always throw an exception,
because "mt19937" isn't a valid token accepted by the _M_init function.
Restore the original behaviour by calling _M_init_pretr1("mt19937").

	* include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
	Fix default constructor to call correct function.

From-SVN: r265218
2018-10-16 23:42:39 +01:00
Tobias Burnus 01982cfbe7 Extend source-expr test case
PR fortran/67125
        * gfortran.dg/allocate_with_source_26.f90: Extend
        testcase with polymorphic variables.

From-SVN: r265215
2018-10-16 23:07:31 +02:00
Tobias Burnus c152593057 Fix bounds with ALLOCATE with source-expr
PR fortran/67125
        * trans-array.c (gfc_array_init_size, gfc_array_allocate):
        Rename argument e3_is_array_constr to e3_has_nodescriptor
        and update comments.
        * trans-stmt.c (gfc_trans_allocate): Also fix lower bound
        to 1 for nonalloc/nonpointer func results/vars besides
        array constructors.

        PR fortran/67125
        * gfortran.dg/allocate_with_source_26.f90: New.

From-SVN: r265212
2018-10-16 20:37:08 +02:00
Tobias Burnus 91ab2a1d6e Handle form_team w/ function args
PR fortran/87556
        * trans-stmt.c (form_team, change_team, sync_team):
        Don't ignore argse.pre/argse.post.

From-SVN: r265211
2018-10-16 20:32:11 +02:00
Kyrylo Tkachov 21cebf90b6 [AArch64] Use @ pattern to eliminate switch statement in one more place
We can use the new '@' modifier to MD patterns to generate mode-parametrised gen_ functions
for the despeculate_copy patterns and therefore remove the switch on modes in aarch64.c
that is used to pick the right generator. This simplifies the code. 

	* config/aarch64/aarch64.md (despeculate_copy<ALLI_TI:mode>):
	Rename to...
	(@despeculate_copy<ALLI_TI:mode>): ... This.
	* config/aarch64/aarch64.c (aarch64_speculation_safe_value): Remove
	switch statement.

From-SVN: r265210
2018-10-16 17:28:56 +00:00
Jonathan Wakely 436ea0e5d3 Rename namespace alias in test to avoid name collision
* testsuite/experimental/net/internet/address/v4/creation.cc: Do not
	declare ip in global namespace, to avoid collision with struct ip
	defined in <netinet/ip.h>.

From-SVN: r265205
2018-10-16 17:13:00 +01:00
Jonathan Wakely a70a4be9c2 Fix versioned namespace macros for Networking TS
We no longer put the versioned namespace macros on the innermost
namespace, but always nested directly below namespace std.

	* include/experimental/bits/net.h: Move versioned namespace macros
	to correct location.
	* include/experimental/buffer: Likewise.
	* include/experimental/executor: Likewise.
	* include/experimental/internet: Likewise.
	* include/experimental/io_context: Likewise.
	* include/experimental/netfwd: Likewise.
	* include/experimental/socket: Likewise.
	* include/experimental/timer: Likewise.

From-SVN: r265204
2018-10-16 17:12:51 +01:00
Jonathan Wakely 82a0f2fd10 Use autoconf to check for features needed by Networking TS
* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Check for headers used by Networking TS.
	* include/experimental/executor: Include <condition_variable>
	instead of <mutex>.
	* include/experimental/internet: Use autoconf macros for available
	headers.  Include <sys/socket.h> for.  Remove <cstring> and use
	__builtin_memcpy and __builtin_strchr.
	(resolver_errc) [!_GLIBCXX_HAVE_NETDB_H]: Do not define.
	(address_v4::to_string, address_v6::to_string)
	[!_GLIBCXX_HAVE_ARPA_INET_H]: Likewise.
	(basic_resolver_results) [!_GLIBCXX_HAVE_NETDB_H]: Make private
	constructors report errors.
	[!_GLIBCXX_HAVE_NETINET_TCP_H] (tcp::no_delay): Do not define.
	* include/experimental/io_context: Likewise.
	* include/experimental/socket: Likewise.
	[!_GLIBCXX_HAVE_SYS_SOCKET_H, !_GLIBCXX_HAVE_POLL_H] (socket_base): Do
	not define nested types when relevant header not available.
	(__socket_impl::native_non_blocking) [!_GLIBCXX_HAVE_FCNTL_H]: Report
	an error.
	(__basic_socket_impl::open, __basic_socket_impl::local_endpoint)
	(__basic_socket_impl::bind) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
	(__basic_socket_impl::io_control) [!_GLIBCXX_HAVE_SYS_IOCTL_H]:
	Likewise.
	(basic_socket::at_mark, basic_socket::shutdown)
	(basic_socket::remote_endpoint, basic_socket::connect)
	(basic_socket::async_connect) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
	(basic_socket::available) [_GLIBCXX_HAVE_SYS_IOCTL_H]: Check macro
	for <sys/ioctl.h> availability.
	(basic_socket::wait) [!_GLIBCXX_HAVE_POLL_H]: Likewise.
	(basic_datagram_socket::receive, basic_datagram_socket::async_receive)
	(basic_datagram_socket::receive_from)
	(basic_datagram_socket::async_receive_from)
	(basic_datagram_socket::send, basic_datagram_socket::async_send)
	(basic_datagram_socket::send_to, basic_datagram_socket::async_send_to)
	[!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
	(basic_stream_socket::receive, basic_stream_socket::async_receive)
	(basic_stream_socket::send, basic_stream_socket::async_send)
	[!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
	(basic_socket_acceptor::listen, basic_socket_acceptor::accept)
	(basic_socket_acceptor::async_accept) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
	Likewise.
	(basic_socket_acceptor::wait) [!_GLIBCXX_HAVE_POLL_H]: Likewise.

From-SVN: r265203
2018-10-16 17:12:32 +01:00
Jonathan Wakely 7e8b87e901 Use effective target in Networking TS tests
* testsuite/experimental/net/headers.cc: Remove dg-options.
	* testsuite/experimental/net/buffer/arithmetic.cc: Replace dg-options
	with dg-do using effective target.
	* testsuite/experimental/net/buffer/const.cc: Likewise.
	* testsuite/experimental/net/buffer/creation.cc: Likewise.
	* testsuite/experimental/net/buffer/mutable.cc: Likewise.
	* testsuite/experimental/net/buffer/size.cc: Likewise.
	* testsuite/experimental/net/buffer/traits.cc: Likewise.
	* testsuite/experimental/net/execution_context/use_service.cc:
	Likewise.
	* testsuite/experimental/net/internet/address/v4/comparisons.cc:
	Likewise.
	* testsuite/experimental/net/internet/address/v4/cons.cc: Likewise.
	* testsuite/experimental/net/internet/address/v4/creation.cc:
	Likewise.
	* testsuite/experimental/net/internet/address/v4/members.cc: Likewise.
	* testsuite/experimental/net/internet/resolver/base.cc: Likewise.
	* testsuite/experimental/net/internet/resolver/ops/lookup.cc:
	Likewise.
	* testsuite/experimental/net/internet/resolver/ops/reverse.cc:
	Likewise.
	* testsuite/experimental/net/timer/waitable/cons.cc: Likewise.
	* testsuite/experimental/net/timer/waitable/dest.cc: Likewise.
	* testsuite/experimental/net/timer/waitable/ops.cc: Likewise.

From-SVN: r265200
2018-10-16 16:37:10 +01:00
Jonathan Wakely 345fba60b1 Add missing return
* include/experimental/socket (basic_socket::at_mark): Add missing
	return.

From-SVN: r265199
2018-10-16 16:24:00 +01:00
Jonathan Wakely 5ae2c32a8a Define _GLIBCXX_USE_DEV_RANDOM as replacement for _GLIBCXX_USE_RANDOM_TR1
Define and use a new macro with a more descriptive name. Only use the
old macro in <tr1/random.h>.

	* acinclude.m4 (GLIBCXX_CHECK_RANDOM_TR1): Replace with ...
	(GLIBCXX_CHECK_DEV_RANDOM): New macro with more descriptive name.
	Define _GLIBCXX_USE_DEV_RANDOM as well as _GLIBCXX_USE_RANDOM_TR1.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Use GLIBCXX_CHECK_DEV_RANDOM instead of
	GLIBCXX_CHECK_RANDOM_TR1.
	crossconfig.m4: Likewise.
	* include/bits/random.h (random_device): Use _GLIBCXX_USE_DEV_RANDOM
	instead of _GLIBCXX_USE_RANDOM_TR1.
	* testsuite/26_numerics/random/random_device/cons/token.cc: Likewise.

From-SVN: r265197
2018-10-16 15:49:29 +01:00
Rainer Orth 630f2da967 Introduce dg-add-options net_ts
* testsuite/lib/dg-options.exp (add_options_for_net_ts): New proc.
	* testsuite/experimental/net/internet/address/v4/comparisons.cc:
	Add dg-add-options net_ts.
	* testsuite/experimental/net/internet/address/v4/cons.cc: Likewise.
	* testsuite/experimental/net/internet/address/v4/creation.cc: Likewise.
	* testsuite/experimental/net/internet/address/v4/members.cc: Likewise.
	* testsuite/experimental/net/internet/resolver/base.cc: Likewise.
	* testsuite/experimental/net/internet/resolver/ops/lookup.cc: Likewise.
	* testsuite/experimental/net/internet/resolver/ops/reverse.cc: Likewise.

From-SVN: r265192
2018-10-16 12:27:52 +00:00
Jonathan Wakely b57d432bdd Fix tests that fail when compiled without optimisation
* testsuite/20_util/duration/literals/range_neg.cc: Adjust pruned
	diagnostic to account for quotes around 'constexpr'.
	* testsuite/23_containers/deque/capacity/max_size.cc: Define static
	variable.
	* testsuite/23_containers/vector/capacity/max_size.cc: Likewise.

From-SVN: r265190
2018-10-16 13:06:05 +01:00
Jonathan Wakely d30096b45f PR libstdc++/87618 fix typos in linker script
PR libstdc++/87618
	* config/abi/pre/gnu.ver: Fix typos in patterns for basic_stringbuf.
	* testsuite/27_io/basic_stringbuf/cons/char/default.cc: Disable
	optimisation to check constructor definition can be linked to.
	* testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: Likewise.

From-SVN: r265188
2018-10-16 12:14:37 +01:00
Rasmus Villemoes 92a7f46b09 fixincludes: vxworks: regs.h: Fix includes in regs.h wrapper
A quick experiment reveals that this hack is needed for C code - simply
removing this hack entirely breaks the build of libstdc++, since
regs.h (more accurately, the cpu-specific header it pulls in) defines
structs in terms of types from vxTypesOld. Those definitions are
properly guarded by #ifndef _ASMLANGUAGE, but the cpu-files do not take
care to include vxTypesOld.h for the types they depend on.

But when using regs.h from some assembly file, the assembler chokes on
the typedefs in vxTypesOld.h. We can fix that by guarding the include of
vxTypesOld by !_ASMLANGUAGE. This should not affect existing C code.

Now, the OS' regs.h contains preprocessor conditionals such as

#if     CPU_FAMILY==I960
...
#endif  /* CPU_FAMILY==I960 */
#if     CPU_FAMILY==MC680X0
...
#endif  /* CPU_FAMILY==MC680X0 */

Without definitions of CPU_FAMILY, I960 etc., these would all be true,
which will not end well. Code using the fix-included regs.h
automatically get vxCpu.h via a chain of includes from vxTypesOld.h, but
we can make regs.h a little more self-contained for both C and asm users
by doing an explicit include of vxCpu.h.

From-SVN: r265187
2018-10-16 09:40:27 +00:00
Rainer Orth ca3a27b638 Obsolete Solaris 10 support
contrib:
	* config-list.mk (LIST): Switch to i686-solaris2.11,
	sparc64-sun-solaris2.11.

	gcc:
	* config.gcc: Obsolete *-*-solaris2.10*.
	* doc/install.texi (Specific, *-*-solaris2*): Document it.

From-SVN: r265186
2018-10-16 08:50:48 +00:00
GCC Administrator 7bb031ede3 Daily bump.
From-SVN: r265183
2018-10-16 00:17:03 +00:00
Jeff Law 95debbf143 ft32.md (ft32_general_movsrc_operand): Disable reg + sym +- const_int addressing modes.
* config/ft32/ft32.md (ft32_general_movsrc_operand): Disable
	reg + sym +- const_int addressing modes.

From-SVN: r265179
2018-10-15 17:22:05 -06:00
David Malcolm 0141ab44c5 diagnostics: add minimum width to left margin for line numbers
This patch adds a minimum width to the left margin used for printing
line numbers.   I set the default to 6.  Hence rather than:

some-filename:9:1: some message
9 | some source text
  | ^~~~~~~~~~~~~~~~
some-filename:10:1: another message
10 | more source text
   | ^~~~~~~~~~~~~~~~

we now print:

some-filename:9:42: some message
    9 | some source text
      | ^~~~~~~~~~~~~~~~
some-filename:10:42: another message
   10 | more source text
      | ^~~~~~~~~~~~~~~~

This implicitly fixes issues with margins failing to line up due
to different lengths of the number when we haven't read the full
file yet and so don't know the highest possible line number, for
line numbers up to 99999.

Doing so adds some whitespace on the left-hand side, for non-huge
files, at least.  I believe that this makes it easier to see where each
diagnostic starts, by visually breaking things up at the leftmost
column; my hope is to make it easier for the eye to see the different
diagnostics as if they were different "paragraphs".

gcc/ChangeLog:
	* common.opt (fdiagnostics-minimum-margin-width=): New option.
	* diagnostic-show-locus.c (layout::layout): Apply the minimum
	margin width.
	(layout::start_annotation_line): Only print up to 3 of the
	margin character, to avoid touching the left-hand side.
	(selftest::test_diagnostic_show_locus_fixit_lines): Update for
	minimum margin width, as set by test_diagnostic_context's ctor.
	(selftest::test_fixit_insert_containing_newline): Likewise.
	(selftest::test_fixit_insert_containing_newline_2): Likewise.
	(selftest::test_line_numbers_multiline_range): Clear
	dc.min_margin_width.
	* diagnostic.c (diagnostic_initialize): Initialize
	min_margin_width.
	* diagnostic.h (struct diagnostic_context): Add field
	"min_margin_width".
	* doc/invoke.texi: Add -fdiagnostics-minimum-margin-width=.
	* opts.c (common_handle_option): Handle
	OPT_fdiagnostics_minimum_margin_width_.
	* selftest-diagnostic.c
	(selftest::test_diagnostic_context::test_diagnostic_context):
	Initialize min_margin_width to 6.
	* toplev.c (general_init): Initialize global_dc->min_margin_width.

gcc/testsuite/ChangeLog:
	* gcc.dg/missing-header-fixit-3.c: Update expected indentation
	to reflect minimum margin width.
	* gcc.dg/missing-header-fixit-4.c: Likewise.
	* gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.c:
	Likewise.
	* gcc.dg/plugin/diagnostic-test-show-locus-color-line-numbers.c:
	Likewise.
	* gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers-2.c:
	New test.
	* gcc.dg/plugin/plugin.exp (plugin_test_list): Add it.

From-SVN: r265178
2018-10-15 22:16:59 +00:00
David Malcolm 95baaced40 Remove stray reference to error_at_rich_loc
"error_at_rich_loc" went away in r254280 (in favor of overloading
"error_at"), but there was a stray reference in a comment.

Remove it.

gcc/ChangeLog:
	* gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
	Fix usage of "error_at_rich_loc" in the comment.

From-SVN: r265177
2018-10-15 22:09:51 +00:00
Tobias Burnus 91fe8d0624 re PR fortran/87597 (wrong result with matmul inlining)
2018-10-15  Tobias Burnus  <burnus@net-b.de>

       PR fortran/87597
       * gfortran.dg/inline_matmul_24.f90: Tweak scan-tree.

From-SVN: r265175
2018-10-15 20:58:17 +02:00
Renlin Li 4124119974 [PR87563][AARCH64-SVE]: Don't keep ifcvt loop when COND_<OP> ifn could not be vectorized.
ifcvt will created versioned loop and it will permissively generate
scalar COND_<OP> ifn.

If in the loop vectorize pass, COND_<OP> could not get vectoized,
the if-converted loop should be abandoned when the target doesn't support
such ifn.


gcc/

2018-10-12  Renlin Li  <renlin.li@arm.com>

	PR target/87563
	* tree-vectorizer.c (try_vectorize_loop_1): Don't use
	if-conversioned loop when it contains ifn with types not
	supported by backend.
	* internal-fn.c (expand_direct_optab_fn): Add an assert.
	(direct_internal_fn_supported_p): New helper function.
	* internal-fn.h (direct_internal_fn_supported_p): Declare.

gcc/testsuite/

2018-10-12  Renlin Li  <renlin.li@arm.com>

	PR target/87563
	* gcc.target/aarch64/sve/pr87563.c: New.

From-SVN: r265172
2018-10-15 16:49:05 +00:00
Paul Thomas e60f68ec46 re PR fortran/87566 (ICE with class(*) and select)
2018-10-15  Paul Thomas  <pault@gcc.gnu.org>
	    Tobias Burnus  <burnus@gcc.gnu.org>

	PR fortran/87566
	* resolve.c (resolve_assoc_var): Add missing array spec for
	class associate names.
	(resolve_select_type): Handle case where last typed component
	of the selector has a different type to the expression.
	* trans-expr.c (gfc_find_and_cut_at_last_class_ref): Replace
	call to gfc_expr_to_initialize with call to gfc_copy_expr.
	(gfc_conv_class_to_class): Guard assignment to 'len' field
	against case where zero constant is supplied.

2018-10-15  Paul Thomas  <pault@gcc.gnu.org>
	    Tobias Burnus  <burnus@gcc.gnu.org>

	PR fortran/87566
	* gfortran.dg/select_type_44.f90: New test.
	* gfortran.dg/associate_42.f90: New test.


Co-Authored-By: Tobias Burnus <burnus@gcc.gnu.org>

From-SVN: r265171
2018-10-15 16:31:15 +00:00
Jakub Jelinek 72551c683c re PR target/87572 (ICE in emit_move_insn, at expr.c:3722)
PR target/87572
	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET):
	Remove OPTION_MASK_ISA_AVX5124FMAPS_UNSET and
	OPTION_MASK_ISA_AVX5124VNNIW_UNSET.

From-SVN: r265169
2018-10-15 18:08:09 +02:00
Jonathan Wakely b219eb0378 Adjust test to pass with latest glibc
Glibc changed the it_IT locales to use thousands separators,
invalidating this test. Use nl_NL instead, as Dutch only uses grouping
for money not numbers.

	* testsuite/22_locale/numpunct/members/char/3.cc: Adjust test to
	account for change to glibc it_IT localedata (glibc bz#10797).

From-SVN: r265165
2018-10-15 14:55:42 +01:00
Jonathan Wakely f9bd185f18 PR libstdc++/87587 prevent -Wabi warnings
The warnings about changes to empty struct parameter passing can be
ignored because the callers are all internal to the library, and so
compiled with the same -fabi-version as the function definitions.

It would be preferable to use #pragma GCC diagnostic warning "-Wabi=12"
to get warnings about any other ABI changes in future versions, but
until PR c++/87611 is fixed the warnings must be completely disabled
with #pragma GCC diagnostic ignroed "-Wabi".

	PR libstdc++/87587
	* src/c++11/cxx11-shim_facets.cc: Suppress -Wabi warnings.

From-SVN: r265163
2018-10-15 13:58:51 +01:00
Bin Cheng 0df7c778ed re PR tree-optimization/87022 (miscompilation with -ftree-loop-distribution)
PR tree-optimization/87022
	* tree-loop-distribution.c (pg_add_dependence_edges): Check all
	bits in dist vector rather than the first one.
	
	gcc/testsuite
	PR tree-optimization/87022
	* gcc.dg/tree-ssa/pr87022.c: New test.

From-SVN: r265161
2018-10-15 11:35:56 +00:00
Richard Biener 61e189a874 re PR middle-end/87610 (wrong-code with restrict)
2018-10-15  Richard Biener  <rguenther@suse.de>

	PR middle-end/87610
	* tree-ssa-structalias.c (struct vls_data): Add escaped_p member.
	(visit_loadstore): When a used restrict tag escaped verify that
	the points-to solution of "other" pointers do not include
	escaped.
	(compute_dependence_clique): If a used restrict tag escaped
	communicated that down to visit_loadstore.

	* gcc.dg/torture/restrict-6.c: New testcase.

From-SVN: r265160
2018-10-15 10:58:28 +00:00
Andreas Krebbel cab5fe166d S/390: Fix problem with vec_init expander
gcc/ChangeLog:

2018-10-15  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.c (s390_expand_vec_init): Force vector element
	into reg if it isn't a general operand.

gcc/testsuite/ChangeLog:

2018-10-15  Andreas Krebbel  <krebbel@linux.ibm.com>

	* g++.dg/vec-init-1.C: New test.

From-SVN: r265158
2018-10-15 08:07:13 +00:00
François Dumont 4b186707ee vector (vector<>::cbegin()): Use C++11 direct initialization.
2018-10-15  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/vector (vector<>::cbegin()): Use C++11 direct
	initialization.
	(vector<>::cend()): Likewise.
	(vector<>::emplace(const_iterator, _Args&&...)): Likewise and use
	consistent iterator comparison.
	(vector<>::insert(const_iterator, size_type, const _Tp&)): Likewise.
	(vector<>::insert(const_iterator, _InputIterator, _InputIterator)):
	Likewise.
	(vector<>::erase(const_iterator)): Likewise.
	(vector<>::erase(const_iterator, const_iterator)): Likewise.

From-SVN: r265156
2018-10-15 05:24:51 +00:00
GCC Administrator 524af591fd Daily bump.
From-SVN: r265155
2018-10-15 00:16:53 +00:00
H.J. Lu 77919e6aff i386: Add register source to movddup
Add register source to movddup so that IRA will allow register source
for *vec_dupv2di when SSE3 is enabled.

gcc/

	PR target/87599
	* config/i386/sse.md (*vec_dupv2di): Add register source to
	movddup.

gcc/testsuite/

	PR target/87599
	* gcc.target/i386/pr87599.c: New test.

From-SVN: r265151
2018-10-14 13:39:05 -07:00
H.J. Lu 190667ae25 i386: Also disable AVX512IFMA/AVX5124FMAPS/AVX5124VNNIW
Also disable AVX512IFMA, AVX5124FMAPS and AVX5124VNNIW when disabling
AVX512F.

gcc/

	PR target/87572
	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET):
	Add OPTION_MASK_ISA_AVX512IFMA_UNSET,
	OPTION_MASK_ISA_AVX5124FMAPS_UNSET and
	OPTION_MASK_ISA_AVX5124VNNIW_UNSET.

gcc/testsuite/

	PR target/87572
	* gcc.target/i386/pr87572.c: New test.

From-SVN: r265150
2018-10-14 13:30:02 -07:00
Bin Cheng fc7367ea77 * MAINTAINERS: Update my email address.
From-SVN: r265149
2018-10-14 09:45:35 +00:00
Paul Thomas 188a13e145 re PR fortran/83146 (ICE on SELECT CASE statement with associate name)
2018-10-14  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/83146
	* gfortran.dg/associate_43.f90: New test.

From-SVN: r265148
2018-10-14 09:25:13 +00:00
Anthony Green 049f5ef927 This patch adjusts one of the c-torture tests to account for the possible lack of divide-by-zero exceptions on certain moxie targets.
From-SVN: r265147
2018-10-14 09:21:51 +00:00
GCC Administrator 514d6f1746 Daily bump.
From-SVN: r265146
2018-10-14 00:16:37 +00:00
Eric Botcazou 464b6c1117 dwarf2cfi.c (struct dw_trace_info): Add args_size_defined_for_eh.
* dwarf2cfi.c (struct dw_trace_info): Add args_size_defined_for_eh.
	(notice_args_size): Set it in the current trace if no insn that can
	throw internally has been seen yet.
	(connect_traces): When connecting args_size between traces, allow the
	incoming values not to match if there is an insn setting it before the
	first insn that can throw internally; in that case, force the creation
	of a CFI note on this latter insn.

From-SVN: r265142
2018-10-13 17:32:07 +00:00
Jonathan Wakely f77bca9ac3 Fix compilation failure with C++98 compilers
* opt-problem.h (opt_wrapper): Use template-argument-list when naming
	the base class, because using the injected-class-name was not clearly
	specified until DR 176.

From-SVN: r265140
2018-10-13 12:19:09 +01:00