Commit Graph

168040 Commits

Author SHA1 Message Date
Jakub Jelinek
de6ae2ce07 re PR target/90187 (ICE in extract_insn, at recog.c:2304 x86_64)
PR target/90187
	* config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
	a register if both if_true and if_false are MEMs.

	* g++.target/i386/pr90187.C: New test.

From-SVN: r270537
2019-04-24 11:27:14 +02:00
Iain Buclaw
4a475b3fbb d/dmd: Merge upstream dmd 423758078
Fixes another failing test to pass on BigEndian.

Initial patch by Robin Dapp.

Reviewed-on: https://github.com/dlang/dmd/pull/9684

gcc/testsuite/ChangeLog:

2019-04-24  Iain Buclaw  <ibuclaw@gdcproject.org>

	* gdc.test/README.gcc: New file.

From-SVN: r270536
2019-04-24 09:15:59 +00:00
Ramana Radhakrishnan
0f7e4fe2e3 re PR target/89093 (C++ exception handling clobbers d8 VFP register)
PR target/89093
	* raise-gcc.c (TARGET_ATTRIBUTE): Define.
	(continue_unwind, personality_body, PERSONALITY_FUNCTION): Add
	TARGET_ATTRIBUTE.

Co-Authored-By: Bernd Edlinger <bernd.edlinger@hotmail.de>
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r270535
2019-04-24 10:16:07 +02:00
Jakub Jelinek
3795b582ac re PR tree-optimization/90208 (error: EH landing pad label)
PR tree-optimization/90208
	* tree-cfg.c (remove_bb): Move forced labels from removed bbs
	after labels of new_bb, not before them.

	* gcc.dg/tsan/pr90208-1.c: New test.
	* gcc.dg/tsan/pr90208-2.c: New test.

From-SVN: r270534
2019-04-24 10:14:50 +02:00
Jakub Jelinek
2bd49e6b64 re PR tree-optimization/90211 (ICE: tree check: expected ssa_name, have real_cst in first_readonly_imm_use, at ssa-iterators.h:351)
PR tree-optimization/90211
	* tree-parloops.c (try_create_reduction_list): Ignore phi arguments
	which are not SSA_NAMEs.

	* gcc.dg/autopar/pr90211.c: New test.

From-SVN: r270533
2019-04-24 10:13:29 +02:00
Iain Buclaw
9bedfe1899 libphobos: Fix link build errors when compiling with unsupported options
The first compilation test to get baseline warnings was getting more
messages due to a missing object.d file, compared to later configure
tests where libphobos is in the include paths.

Because there must always be an object module during compilation, let
the tests themselves be an empty object module instead.

libphobos/ChangeLog:

2019-04-24  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/88431
	* configure: Regenerate.
	* m4/libtool.m4 (lt_simple_compile_test_code): Update to not have
	dependencies on libphobos.
	(lt_simple_link_test_code): Likewise.
	(GDCFLAGS): Don't override for D compiler tests.

From-SVN: r270531
2019-04-24 02:04:04 +00:00
GCC Administrator
0c1eb9639d Daily bump.
From-SVN: r270530
2019-04-24 00:16:17 +00:00
Jonathan Wakely
e0657c24ae Avoid -Wcatch-value warning in testsuite
* testsuite/20_util/variant/run.cc: Catch exception by reference to
	prevent -Wcatch-value warning.

From-SVN: r270527
2019-04-24 00:17:52 +01:00
Jonathan Wakely
9588a07c96 Fix whitespace in ChangeLog
From-SVN: r270526
2019-04-24 00:01:35 +01:00
Jonathan Wakely
86a57ce103 Implement LWG 2904 for std::variant assignment
* include/std/variant (__variant_construct): Use template parameter
	type instead of equivalent decltype-specifier.
	(_Move_ctor_base<false, Types...>::_Move_ctor_base(_Move_ctor_base&&)):
	Replace forward with move.
	(_Move_ctor_base<false, Types...>::_M_destructive_move)
	(_Move_ctor_base<false, Types...>::_M_destructive_copy)
	(_Move_ctor_base<true, Types...>::_M_destructive_move)
	(_Move_ctor_base<true, Types...>::_M_destructive_copy): Only set the
	index after construction succeeds.
	(_Copy_assign_base<false, Types...>::operator=): Remove redundant
	if-constexpr checks that are always true. Use __remove_cvref_t instead
	of remove_reference so that is_nothrow_move_constructible check
	doesn't use a const rvalue parameter. In the potentially-throwing case
	construct a temporary and move assign it, as per LWG 2904.
	(_Move_assign_base<false, Types...>::operator=): Remove redundant
	if-constexpr checks that are always true. Use emplace as per LWG 2904.
	(variant::operator=(T&&)): Only use emplace conditionally, otherwise
	construct a temporary and move assign from it, as per LWG 2904.
	* testsuite/20_util/variant/exception_safety.cc: Check that
	assignment operators have strong exception safety guarantee.

From-SVN: r270525
2019-04-24 00:01:12 +01:00
Iain Buclaw
a012806011 libphobos: Add AArch64 Linux as a supported target.
libphobos/ChangeLog:

2019-04-24  Iain Buclaw  <ibuclaw@gdcproject.org>

	* configure.tgt: Add aarch64*-*-linux* as a supported target.

From-SVN: r270524
2019-04-23 22:53:35 +00:00
Iain Buclaw
130cc10e21 libphobos: Add D support for S/390 Linux
gcc/d/ChangeLog:

2019-04-23  Iain Buclaw  <ibuclaw@gdcproject.org>
	    Robin Dapp  <rdapp@linux.ibm.com>

	* typeinfo.cc (create_typeinfo): Write typeinfo flags as uint.

gcc/testsuite/ChangeLog:

2019-04-23  Iain Buclaw  <ibuclaw@gdcproject.org>
	    Robin Dapp  <rdapp@linux.ibm.com>

	* gdc.dg/link.d: Test if target d_runtime.
	* gdc.dg/runnable.d: Fix tests to work on BigEndian.
	* gdc.dg/simd.d: Likewise.

libphobos/ChangeLog:

2019-04-23  Iain Buclaw  <ibuclaw@gdcproject.org>
	    Robin Dapp  <rdapp@linux.ibm.com>

	* configure.tgt: Add s390*-linux* as a supported target.
	* libdruntime/gcc/sections/elf_shared.d: import gcc.builtins.
	(__tls_get_addr_internal): Declare.
	(TLS_DTV_OFFSET): Define as zero on SystemZ.
	(getTLSRange): Support getting TLS on SystemZ.
	* testsuite/libphobos.typeinfo/struct-align.d: New test.

Co-Authored-By: Robin Dapp <rdapp@linux.ibm.com>

From-SVN: r270523
2019-04-23 22:53:25 +00:00
Iain Buclaw
d9392bfa03 libphobos: Add D support for RISC-V Linux
2019-04-23  Iain Buclaw  <ibuclaw@gdcproject.org>

	* configure.tgt: Add riscv*-*-linux* as supported target.
	* libdruntime/gcc/sections/elf_shared.d (getDependencies): Adjust
	dlpi_addr on RISCV32 and RISCV64.
	* src/std/math.d: Add IEEE FPU control support for RISCV.

From-SVN: r270522
2019-04-23 22:53:12 +00:00
Thomas Rodgers
1bacd25b0c Document PSTL linker flags
* doc/xml/manual/using.xml: Add PSTL linker flags to table
        3.1.

From-SVN: r270521
2019-04-23 21:03:24 +00:00
Joseph Myers
451bbd9c40 Update .po files.
* be.po, da.po, de.po, el.po, fi.po, fr.po, hr.po, id.po, ja.po,
	nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
	zh_TW.po: Update.

From-SVN: r270520
2019-04-23 22:03:01 +01:00
Iain Buclaw
c0aebc60b2 d: Add support for compiling without libphobos library.
Merges upstream dmd 3b3dca8be

Reviewed-on: https://github.com/dlang/dmd/pull/9678

gcc/d/ChangeLog:

2019-04-23  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (d_init_versions): Add D_BetterC, D_ModuleInfo,
	D_Exceptions, D_TypeInfo as predefined version conditions.
	* d-codegen.cc (build_bounds_condition): Generate trap if D asserts
	are turned off.
	* d-frontend.cc (getTypeInfoType): Add error when -fno-rtti is set.
	* d-lang.cc (d_init_options): Initialize new front-end options.
	(d_handle_option): Handle -fdruntime, -fexceptions, and -frtti.
	(d_post_options): Turn off D runtime features if -fno-druntime is set.
	* d-spec.cc (lang_specific_driver): Handle -fdruntime.
	* d-tree.h (have_typeinfo_p): Add prototype.
	(build_typeinfo): Update prototype.
	* decl.cc (DeclVisitor::visit(StructDeclaration)): Create typeinfo
	only if TypeInfo exists.
	(DeclVisitor::visit(ClassDeclaration)): Likewise.
	(DeclVisitor::visit(InterfaceDeclaration)): Likewise.
	(DeclVisitor::visit(EnumDeclaration)): Likewise.
	* expr.cc: Update all calls to build_typeinfo.
	* gdc.texi (Runtime Options): Document -fdruntime and -frtti.
	* lang.opt: Add -fdruntime and -frtti.
	* modules.cc (build_module_tree): Create module info only if
	ModuleInfo exists.
	* toir.cc (IRVisitor::visit(ThrowStatement)): Update test for
	-fno-exceptions.
	* typeinfo.cc (create_tinfo_types): Build internal typeinfo classes
	only if Object exists.
	(have_typeinfo_p): New function.
	(class TypeInfoVisitor): Update all calls to build_typeinfo.
	(build_typeinfo): Add error when -fno-rtti is set.

gcc/testsuite/ChangeLog:

2019-04-23  Iain Buclaw  <ibuclaw@gdcproject.org>

	* gdc.test/fail_compilation/fail2456.d: New test.
	* gdc.test/fail_compilation/test18312.d: New test.
	* gdc.test/gdc-test.exp (gdc-convert-args): Handle -betterC.

From-SVN: r270518
2019-04-23 20:08:46 +00:00
Sudakshina Das
32efff9f94 [GCC, AARCH64] Add GNU note section with BTI and PAC.
This patch adds the GNU NOTE section to the BTI and/or PAC
enabled objects for linux targets.

The patches for needed for these in binutils are already approved
and committed.
https://sourceware.org/ml/binutils/2019-03/msg00072.html

*** gcc/ChangeLog ***

2018-04-23  Sudakshina Das  <sudi.das@arm.com>

	* config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
	AArch64.
	(aarch64_file_end_indicate_exec_stack): Add gnu note section.

gcc/testsuite/ChangeLog:

2018-04-23  Sudakshina Das  <sudi.das@arm.com>

	* gcc.target/aarch64/bti-1.c: Add scan directive for gnu note section
	for linux targets.
	* gcc.target/aarch64/va_arg_1.c: Update scan directive to not clash
	with GNU note section.

From-SVN: r270515
2019-04-23 15:51:25 +00:00
Iain Buclaw
c7bfed18df re PR d/90079 (SEGV in _aaKeys, _aaValues on 32-bit SPARC)
PR d/90079
libphobos: Fix SEGV in _aaKeys, _aaValues on 32-bit SPARC

Merges upstream druntime b43203a1

Reviewed-on: https://github.com/dlang/druntime/pull/2572

From-SVN: r270514
2019-04-23 15:19:55 +00:00
Jeff Law
d86bc962ae * lib/target-supports.exp
(check_effective_target_keeps_null_pointer_checks): Add cr16.

From-SVN: r270513
2019-04-23 08:39:50 -06:00
Roman Zhuykov
9fe3064bc6 modulo-sched: prevent division by zero (PR87979)
PR rtl-optimization/87979
	* modulo-sched.c (sms_schedule): Start ii value "mii" should
	not equal zero.

testsuite:

	PR rtl-optimization/87979
	* gcc.dg/pr87979.c: New test.

From-SVN: r270512
2019-04-23 13:14:57 +00:00
Roman Zhuykov
8d64622fce modulo-sched: fix branch scheduling issue (PR84032)
PR rtl-optimization/84032
	* modulo-sched.c (ps_insn_find_column): Change condition so that
	branch will always be the last insn in a row inside partial
	schedule.

testsuite:

	PR rtl-optimization/84032
	* gcc.dg/pr84032.c: New test.

From-SVN: r270511
2019-04-23 12:53:43 +00:00
Jonathan Wakely
038bc9bfd6 Implement correct std::variant triviality rules from P0602R4
The std::variant move assignment operator should not be trivial if the
variant is not trivially move constructible.

	* include/std/variant (__detail::__variant::_Traits): Make
	_S_trivial_copy_assign depend on _S_trivial_copy_ctor and make
	_S_trivial_move_assign depend on _S_trivial_move_ctor, as per
	P0602R4.
	(__detail::__variant::_Copy_assign_alias): Only depend on
	_S_trivial_copy_assign, which subsumes _S_trivial_copy_ctor now.
	* testsuite/20_util/variant/compile.cc: Correct checks for trivial
	move assignment operators.

From-SVN: r270510
2019-04-23 13:48:28 +01:00
Jonathan Wakely
06715e1cfb PR libstdc++/90165 constrain variant(T&&) constructor
Also refactor some constraints slightly to be more readable.

	PR libstdc++/90165
	* include/std/variant (variant::__not_self): New helper for the
	is_same_v<remove_cvref_t<T>, variant>==false constraints.
	(variant::__to_type_impl): Remove.
	(variant::__to_type): Add default argument to check pack size, instead
	of using __to_type_impl.
	(variant::__accepted_type): Add default argument using __not_self.
	(variant::__is_in_place_tag, variant::__not_in_place_tag): New helpers
	for variant(T&&) constructor constraint.
	(variant::variant(T&&)): Use __not_in_place_tag in constraints.
	Extract __accepted_type into a named template parameter for reuse in
	other constraints and in the exception specification.
	(variant::variant(in_place_type_t<T>, Args&&...))
	(variant::variant(in_place_type_t<T>, initializer_list<U>, Args&&...))
	(variant::variant(in_place_index_t<T>, Args&&...))
	(variant::variant(in_place_index_t<T>, initializer_list<U>, Args&&...))
	(variant::operator=T&&)): Remove redundant && from trait arguments.
	* testsuite/20_util/variant/compile.cc: Check variant(T&&) constructor
	isn't used for in_place_type or in_place_index arguments.

From-SVN: r270509
2019-04-23 13:48:18 +01:00
Jonathan Wakely
82e8c3da74 Corrections for C++2a std::unwrap_reference traits
The P0318R1 paper added to the C++2a draft recently was not the latest
version of the paper, and should have included these changes. These
changes will be made to the working draft via a Defect Report, so I'm
applying them to libstdc++ now.

	* include/std/type_traits (unwrap_reference_t): Define for C++2a.
	(unwrap_ref_decay): Remove inheritance from unwrap_reference.
	* testsuite/20_util/unwrap_reference/1.cc: Adjust test to use alias.

From-SVN: r270506
2019-04-23 11:27:14 +01:00
Richard Biener
6e27100979 re PR debug/90131 (wrong debug info at -O3)
2019-04-23  Richard Biener  <rguenther@suse.de>

	PR debug/90131
	* tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
	dest_single_pred_p argument.
	(remove_forwarder_block): Adjust.
	(remove_forwarder_block_with_phi): Likewise.

From-SVN: r270505
2019-04-23 10:10:10 +00:00
Ramana Radhakrishnan
48528842bd re PR target/89093 (C++ exception handling clobbers d8 VFP register)
PR target/89093
	* config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
	if used with general-regs-only.
	(arm_conditional_register_usage): Don't add non-general regs if
	general-regs-only.
	(arm_valid_target_attribute_rec): Handle general-regs-only.
	* config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
	general-regs-only.
	(TARGET_HARD_FLOAT_SUB): Define.
	(TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
	(TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
	(TARGET_REALLY_IWMMXT2): Likewise.
	* config/arm/arm.opt: Add -mgeneral-regs-only.
	* doc/extend.texi: Document ARM general-regs-only target.
	* doc/invoke.texi: Document ARM -mgeneral-regs-only.
libgcc/
	* config/arm/pr-support.c: Add #pragma GCC target("general-regs-only").
	* config/arm/unwind-arm.c: Likewise.
	* unwind-c.c (PERSONALITY_FUNCTION): Add general-regs-only target
	attribute for ARM.
libobjc/
	* exception.c (PERSONALITY_FUNCTION): Add general-regs-only target
	attribute for ARM.
libphobos/
	* libdruntime/gcc/deh.d: Import gcc.attribute.
	(personality_fn_attributes): New enum.
	(scanLSDA, CONTINUE_UNWINDING, gdc_personality, __gdc_personality):
	Add @personality_fn_attributes.
libstdc++-v3/
	* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Add
	general-regs-only target attribute for ARM.

Co-Authored-By: Bernd Edlinger <bernd.edlinger@hotmail.de>
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r270504
2019-04-23 12:03:41 +02:00
Jonathan Wakely
70265a0c5b Fix whitespace in ChangeLog
From-SVN: r270503
2019-04-23 10:55:36 +01:00
Jonathan Wakely
47a468bdbe Fix std::variant regression caused by never-valueless optimization
A regression was introduced by the recent changes to provide the strong
exception safety guarantee for "never valueless" types that have O(1),
non-throwing move assignment. The problematic code is:

  else if constexpr (__detail::__variant::_Never_valueless_alt<type>())
    {
      // This construction might throw:
      variant __tmp(in_place_index<_Np>, __il,
                    std::forward<_Args>(__args)...);
      // But _Never_valueless_alt<type> means this won't:
      *this = std::move(__tmp);
    }

When the variant is not assignable, the assignment is ill-formed, so
should not be attempted. When the variant has a copy assignment operator
but not a move assignment operator, the assignment performs a copy
assignment and that could throw, so should not be attempted.

The solution is to only take that branch when the variant has a move
assignment operator, which is determined by the _Traits::_S_move_assign
constant. When that is false the strong exception safety guarantee is
not possible, and so the __never_valueless function should also depend
on _S_move_assign.

While testing the fixes for this I noticed that the partial
specialization _Never_valueless_alt<basic_string<C,T,A>> incorrectly
assumed that is_nothrow_move_constructible<basic_string<C,T,A>> is
always true, but that's wrong for fully-dynamic COW strings. Fix the
partial specialization, and improve the comment describing
_Never_valueless_alt to be clear it depends on move construction as well
as move assignment.

Finally, I also observed that _Variant_storage<false, T...>::_M_valid()
was not taking advantage of the __never_valueless<T...>() function to
avoid a runtime check. Only the _Variant_storage<true, T...>::_M_valid()
function was using __never_valueless. That is also fixed.

	PR libstdc++/87431
	* include/bits/basic_string.h (_Never_valueless_alt): Make partial
	specialization also depend on is_nothrow_move_constructible.
	* include/std/variant (__detail::__variant::__never_valueless()):
	Only true if the variant would have a move assignment operator.
	(__detail::__variant::_Variant_storage<false, T...>::_M_valid()):
	Check __never_valueless<T...>().
	(variant::emplace): Only perform non-throwing move assignments
	for never-valueless alternatives if the variant has a move assignment
	operator.
	* testsuite/20_util/variant/compile.cc: Check that never-valueless
	types can be emplaced into non-assignable variants.
	* testsuite/20_util/variant/run.cc: Check that never-valueless types
	don't get copied when emplaced into non-assignable variants.

From-SVN: r270502
2019-04-23 10:55:33 +01:00
Jonathan Wakely
be46043e07 Make some std::variant helper functions noexcept
* include/std/variant (__detail::__variant::__ref_cast): Remove
	unused function.
	(__detail::__variant::_Uninitialized::_M_get)
	(__detail::__variant::__get)
	(__gen_vtable_impl::__element_by_index_or_cookie): Add noexcept.

From-SVN: r270501
2019-04-23 10:55:28 +01:00
Bin Cheng
4b5689aa6c re PR tree-optimization/90078 (ICE with deep templates caused by overflow)
PR tree-optimization/90078
	* tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
	checks for infinite_cost overflow.

	gcc/testsuite
	* gcc/testsuite/g++.dg/tree-ssa/pr90078.C: New test.

	Also fix typo in ChangeLog entry for revision 270499.

From-SVN: r270500
2019-04-23 04:07:46 +00:00
Bin Cheng
9e14603dfe re PR tree-optimization/90021 (ICE in index_in_loop_nest, at tree-data-ref.h:587 since r270203)
PR tree-optimization/92001
	* tree-chrec.c (evolution_function_is_univariate_p): New parameter
	and check univariate against it.
	* tree-chrec.h (evolution_function_is_univariate_p): New parameter.
	* tree-data-ref.c (add_other_self_distances): Pass new argument.

	gcc/testsuite
	* gcc/testsuite/gfortran.dg/pr90021.f90: New test.

From-SVN: r270499
2019-04-23 03:54:59 +00:00
GCC Administrator
6e8fc175bd Daily bump.
From-SVN: r270498
2019-04-23 00:16:13 +00:00
Steven G. Kargl
2810dfab5c re PR fortran/90166 (Compiler Fails at Assembler)
2019-04-19  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/90166
	* decl.c (in_module_or_interface): New function to check that the
	current state is in a module, submodule, or interface.
	(gfc_match_prefix): Use it.

2019-04-19  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/90166
	* gfortran.dg/submodule_22.f08: Add additional dg-error comments.

From-SVN: r270495
2019-04-22 21:00:40 +00:00
Jason Merrill
f2b6aeeab2 PR c++/87366 - wrong error with alias template.
With this testcase the code in template_args_equal to treat aliases as
distinct wasn't sufficient, because it only looked at the top level, whereas
here we have a reference to the alias.  So let's also handle treating them
as distinct in structural_comptypes.  For GCC 10 I have a more comprehensive
patch, but for GCC 9 let's go with this smaller change.

	* typeck.c (structural_comptypes): When comparing_specializations,
	aliases are unequal.
	(comptypes): When comparing_specializations, do structural
	comparison.

From-SVN: r270494
2019-04-22 15:16:46 -04:00
Roman Zhuykov
1e8dac3257 Add myself to MAINTAINERS
2019-04-22  Roman Zhuykov  <zhroma@ispras.ru>

	* MAINTAINERS (Various Maintainers): Remove Ayal Zaks and add myself
	as modulo-scheduler maintainer.

From-SVN: r270492
2019-04-22 16:05:36 +00:00
Iain Buclaw
105d4c85f3 libphobos: Merge upstream phobos b538f758a
Fixes endian bugs in std.uni, and corrects unit-tests that failed on
version(BigEndian) targets.

Initial patch by Robin Dapp.

Reviewed-on: https://github.com/dlang/phobos/pull/6975

From-SVN: r270491
2019-04-22 13:46:25 +00:00
Iain Buclaw
eb5f748a81 libphobos: Merge upstream druntime 109f0f2e
Backports more extern(C) bindings and platform ports.

Reviewed-on: https://github.com/dlang/druntime/pull/2569

From-SVN: r270490
2019-04-22 13:46:13 +00:00
Paul Thomas
16a51cf549 re PR fortran/57284 ([OOP] ICE with find_array_spec for polymorphic arrays)
2019-04-22  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/57284
	* resolve.c (find_array_spec): If this is a class expression
	and the symbol and component array specs are the same, this is
	not an error.
	*trans-intrinsic.c (gfc_conv_intrinsic_size): If a class symbol
	argument, has no namespace, it has come from the interface
	mapping and the _data component must be accessed directly.

2019-04-22  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/57284
	* gfortran.dg/class_70.f03

From-SVN: r270489
2019-04-22 06:50:33 +00:00
GCC Administrator
76a86e8616 Daily bump.
From-SVN: r270488
2019-04-22 00:16:16 +00:00
Iain Buclaw
3595df34b5 re PR d/90130 (gdc.test/runnable/test12.d FAILs)
PR d/90130
d/dmd: Merge upstream dmd 065fbd452

Fixes endian bug in CTFE, and corrects tests in the D2 testsuite that
failed on big endian targets.

Initial patch by Robin Dapp.

Reviewed-on: https://github.com/dlang/dmd/pull/9665

From-SVN: r270485
2019-04-21 20:26:12 +00:00
H.J. Lu
f94302e90b LRA: Revert "Remove useless move insns"
Useless move insn removal was added to LRA just to avoid wasting CPU
cycles on such insn processing afterwards.  Such insns are removed
anyway later in the pass pipeline.  The CPU time savings are tiny but
the removal creates too many problems including PR target/90178.
Vladimir pre-approved the patch to remove the code:

https://gcc.gnu.org/ml/gcc-patches/2019-04/msg00834.html

gcc/

	PR target/90178
	Revert:
	2018-11-21  Uros Bizjak  <ubizjak@gmail.com>

	Revert the revert:
	2013-10-26  Vladimir Makarov  <vmakarov@redhat.com>

	Revert:
	2013-10-25  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-spills.c (lra_final_code_change): Remove useless move insns.

gcc/testsuite/

	PR target/90178
	* gcc.target/i386/pr90178.c: New test.

From-SVN: r270484
2019-04-21 11:23:00 -07:00
Iain Buclaw
6397d8df30 re PR d/90064 (InSituRegion lacks SPARC64 support)
PR d/90064
libphobos: Merge upstream phobos 428460ddd

Defines growDownwards on SPARC64, initial patch by Rainer Orth.

Backports another fix to std.process, allowing permissions tests to be
skipped when running as root.

Reviewed-on: https://github.com/dlang/phobos/pull/6962

From-SVN: r270483
2019-04-21 10:21:07 +00:00
Iain Buclaw
6d679a7d9d libphobos: Merge upstream druntime 4b2674b3
Adds version (BacktraceExternal) for using libexecinfo instead of
internal implementation on FreeBSD, NetBSD, and DragonFly.

Reviewed-on: https://github.com/dlang/druntime/pull/2560

From-SVN: r270482
2019-04-21 10:02:02 +00:00
Iain Sandoe
42d3fe9afb MAINTAINERS - add iains as darwin co-maintainer.
2019-04-21  Iain Sandoe  <iain@sandoe.co.uk>

	* MAINTAINERS: Add myself as co-maintainer for Darwin.

From-SVN: r270481
2019-04-21 08:33:19 +00:00
Iain Sandoe
befa871199 Fix test fails on powerpc-darwin.
The current implementation of “speculation_barrier”
and “group_end_nop” insns emit hard-wired register
names which causes tests using them to fail on Darwin,
at least, which uses “rNN” instead of “NN”.

The patch makes the register names for these insns use
the operand output mechanism to substitute the
appropriate variant when needed.

gcc/

2019-04-21  Iain Sandoe  <iain@sandoe.co.uk>

	* config/rs6000/rs6000.md (group_end_nop): Emit insn register
	names using operand format, rather than hard-wired.
	(speculation_barrier): Likewise.

From-SVN: r270480
2019-04-21 08:25:44 +00:00
Iain Sandoe
375eb99a55 libstdc++-v3 Skip tests on Darwin8-10.
These earlier Darwin versions have “FP_≈” inside a
comment in architecture/{ppc,i386}/math.h, which is
included by math.h which causes the tests to fail.

The intent of the tests (i.e. to ensure that the
library itself does not emit non-ascii) is covered
by other platforms, including later Darwin editions.

2019-04-21  Iain Sandoe  <iain@sandoe.co.uk>

	* testsuite/17_intro/headers/c++1998/charset.cc: Skip for Darwin8
	to Darwin10.
	* testsuite/17_intro/headers/c++2011/charset.cc: Likewise.
	* testsuite/17_intro/headers/c++2014/charset.cc: Likewise.
	* testsuite/17_intro/headers/c++2017/charset.cc: Likewise.
	* testsuite/17_intro/headers/c++2020/charset.cc: Likewise.

From-SVN: r270479
2019-04-21 08:14:47 +00:00
Iain Buclaw
e64deb7447 d: Use semanticRun to prevent declaration pass from running multiple times.
This shouldn't happen during normal traversal of the AST provided from
the front-end, however as there are some cases where declarations need
to be visited out of order, such as what is being done in PR d/89017, it
then becomes necessary to guard against this.

gcc/d/ChangeLog:

2019-04-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	* decl.cc (DeclVisitor::visit(Import)): Set semanticRun after
	completion, guard against being called more than once.
	(DeclVisitor::visit(StructDeclaration)): Likewise.
	(DeclVisitor::visit(ClassDeclaration)): Likewise.
	(DeclVisitor::visit(InterfaceDeclaration)): Likewise.
	(DeclVisitor::visit(VarDeclaration)): Likewise.
	(DeclVisitor::visit(TypeInfoDeclaration)): Likewise.

From-SVN: r270478
2019-04-21 07:03:32 +00:00
Iain Buclaw
f452f0d67f d: Ensure all unittests are registered against the original module.
As any unittest functions registered against the testing module when
compiling with -fbuilding-libphobos-tests are ignored during the
generation of the ModuleInfo data.

gcc/d/ChangeLog:

2019-04-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	* modules.cc (register_module_decl): Don't register unittests against
	the ModuleInfo symbol for -fbuilding-libphobos-tests.

From-SVN: r270477
2019-04-21 07:03:22 +00:00
Sandra Loosemore
7bbcf39575 pr89009.C: Add dg-require-effective-target fpic.
2019-04-20  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/testsuite/
	* g++.dg/ipa/pr89009.C: Add dg-require-effective-target fpic.

From-SVN: r270476
2019-04-20 22:01:36 -04:00
GCC Administrator
21123d66f4 Daily bump.
From-SVN: r270475
2019-04-21 00:16:12 +00:00