Commit Graph

168138 Commits

Author SHA1 Message Date
Jakub Jelinek
fc2b685884 re PR target/89093 (C++ exception handling clobbers d8 VFP register)
PR target/89093
	* config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
	whitespace at the start of target attribute string.

	* gcc.target/arm/pr89093-2.c: New test.

From-SVN: r270404
2019-04-17 10:30:44 +02:00
Iain Buclaw
347ef24548 d: Fix the build on hosts missing _MAX and _MAX macros.
gcc/d/ChangeLog:

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

	* d-system.h (POSIX): Define unix as POSIX.
	(INT32_MAX, INT32_MIN, INT64_MIN, UINT32_MAX, UINT64_MAX): Provide
	fallback definitions.

From-SVN: r270403
2019-04-17 06:02:01 +00:00
GCC Administrator
1b02929ad0 Daily bump.
From-SVN: r270401
2019-04-17 00:16:11 +00:00
Iain Buclaw
460ad044bc d: Use build_exeext suffix for D generator programs.
Updated build and invocation of idgen and impcnvgen, ensuring that they
are removed when cleaning the build directory.

Added BUILD_LIBDEPS on the link command for the generator programs as
well, which is necessary when the system installed compiler is not GCC.

gcc/d/ChangeLog:

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

	* Make-lang.in (d.mostyclean): Clean idgen and impcnvgen.
	(d/idgen): Rename to d/idgen$(build_exeext), add BUILD_LIBDEPS.
	(d/impcnvgen): Rename to d/impcnvgen$(build_exeext), add
	BUILD_LIBDEPS.
	(d/id.c): Call idgen$(build_exeext).
	(d/impcnvtab.c): Call impcnvgen$(build_exeext).

From-SVN: r270397
2019-04-16 21:16:43 +00:00
Jakub Jelinek
0382a41d63 re PR c++/86953 (compiler crashes with constexpr operator== and specific struct (cxx_eval_bit_field_ref, at cp/constexpr.c:2704))
PR c++/86953
	* g++.dg/cpp0x/constexpr-86953.C: New test.

From-SVN: r270396
2019-04-16 21:06:41 +02:00
Pat Haugen
590df85d1c re PR target/84369 (test case gcc.dg/sms-10.c fails on power9)
PR target/84369
	* config/rs6000/power9.md: Add store forwarding bypass.

From-SVN: r270394
2019-04-16 15:58:02 +00:00
Martin Liska
ee06f6463a Filter out LTO in config/bootstrap-lto-lean.mk.
2019-04-16  Martin Liska  <mliska@suse.cz>

	* bootstrap-lto-lean.mk: Filter out -flto in STAGEtrain_CFLAGS.

From-SVN: r270393
2019-04-16 15:24:53 +00:00
Dominique d'Humieres
ef9387d8fe pr89358_0.C: Replace dg-* with dg-lto-*.
2019-04-16  Dominique d'Humieres  <dominiq@gcc.gnu.org>

	* g++.dg/lto/pr89358_0.C: Replace dg-* with dg-lto-*.

From-SVN: r270390
2019-04-16 15:24:58 +02:00
Alexandre Oliva
2689fcc80e [PR89528] reset debug uses of return value when dropping dead RTL call
When we remove an RTL call, we wouldn't clean up references to the
return value of the call in debug insns.  Make it so that we do.


for  gcc/ChangeLog

	PR debug/89528
	* valtrack.c (dead_debug_insert_temp): Reset debug references
	to the return value of a call being removed.

for  gcc/testsuite/ChangeLog

	PR debug/89528
	* gcc.dg/guality/pr89528.c: New.

From-SVN: r270389
2019-04-16 12:44:57 +00:00
Alexandre Oliva
1ce6a0f5b0 [PR86438] avoid too-long shift in test
The test fell back to long long and long when __int128 is not
available, but it assumed sizeof(long) < sizeof(long long) because of
a shift count that would be out of range for a long long if their
widths are the same.  Fixed by splitting it up into two shifts.


for  gcc/testsuite/ChangeLog

	PR rtl-optimization/86438
	* gcc.dg/torture/pr86438.c: Split up too-wide shift.

From-SVN: r270388
2019-04-16 12:44:46 +00:00
Claudiu Zissulescu
b9bc3b128c [ARC] Refactor deprecated macros.
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc-protos.h (arc_register_move_cost): Remove.
	* config/arc/arc.c (arc_register_move_cost): Re-purpose it to
	implement target hook.
	(arc_memory_move_cost): New function.
	(TARGET_REGISTER_MOVE_COST): Define.
	(TARGET_MEMORY_MOVE_COST): Likewise.
	* config/arc/arc.h (REGISTER_MOVE_COST): Remove.
	(MEMORY_MOVE_COST): Likewise.

fix

From-SVN: r270387
2019-04-16 12:21:15 +02:00
Claudiu Zissulescu
fa27cbfeb3 [ARC] Remove Rs5 constraint.
New LRA algorithms require the all the register constraints to be
defined using define_register_constraint keyword. However, Rs5
constraint was not LRA proof. Remove it and replace it by equivalent
Rcd constraint.

gcc/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.md (sibcall_insn): Use Rcd constraint.
	(sibcall_value_insn): Likewise.
	* config/arc/constraints.md (Rs5): Remove.

From-SVN: r270386
2019-04-16 12:21:03 +02:00
Claudiu Zissulescu
47d8cb2384 [ARC] Refurb eliminate regs.
gcc/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

        * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
        for last two fake registers.
        (arc_conditional_register_usage): Make sure fake frame and arg
        pointer regs are in general regs class.
        (FRAME_POINTER_MASK): Remove.
        (RETURN_ADDR_MASK): Remove.
        (arc_must_save_register): Use hard frame regnum.
        (frame_restore_reg): Use hard_frame_pointer_rtx.
        (arc_save_callee_saves): Likewise.
        (arc_restore_callee_saves): Likewise.
        (arc_save_callee_enter): Likewise.
        (arc_restore_callee_leave): Likewise.
        (arc_save_callee_milli): Likewise.
        (arc_eh_return_address_location): Likewise.
        (arc_check_multi): Use hard frame regnum.
        (arc_can_eliminate): Likewise.
        * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
        for register allocator.
        (REG_CLASS_CONTENTS): Update GENERAL_REGS.
        (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
        (FRAME_POINTER_REGNUM): Change it to a fake register.
        (HARD_FRAME_POINTER_REGNUM): Defined.
        (ARG_POINTER_REGNUM): Change it to a new fake register.
        (ELIMINABLE_REGS): Update.
        (REGISTER_NAMES): Update names.
        * config/arc/arc.md (LP_START): Remove.
        (LP_END): Likewise.
        (shift_si3_loop): Update pattern.

From-SVN: r270385
2019-04-16 12:20:52 +02:00
Claudiu Zissulescu
1ec86e1eaa [ARC] Emit blockage regardless to avoid delay slot scheduling.
1.The delay slot scheduler can reschedule some of the frame related
instructions resulting in having incorect CFI information. This patch
introduces a schedule blockage to avoid this problem.

2.There are cases when an interrupt may happen and not all the current
function stack operations are done, which may result in stack
corruption. Such an example is accessing an returning a local
structure members, which members are allocated on stack. The stack
adjustment and the accessing of the struct member can be reorder as
they may not use both the SP register for the access.

3.Also, do not save/restore SP when in interrupt. The SP is switch by
the core IRQ machinery.

gcc/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
	to avoid delay slot scheduling.
	(arc_must_save_register): Don't save SP.
	* config/arc/arc.md (stack_tie): Remove.
	(UNSPEC_ARC_STKTIE): Likewise.

From-SVN: r270384
2019-04-16 12:20:40 +02:00
Kito Cheng
85b242968b [NDS32] Fix nds32_split_ashiftdi3 with large shift amount.
gcc/
	* config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
	code gen with large shift amount.

Co-Authored-By: Shiva Chen <shiva0217@gmail.com>

From-SVN: r270383
2019-04-16 09:27:31 +00:00
Chung-Ju Wu
7f85e52c40 [NDS32] Handle subreg correctly in wext_odd_dep_p.
gcc/
	* config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
	subreg.

From-SVN: r270382
2019-04-16 09:22:26 +00:00
Jakub Jelinek
8feb61a3c5 re PR target/90096 (Misleading option hint for AVX intrinsics)
PR target/90096
	* config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
	print -m64/-mx32/-m32 if it is true.
	(ix86_debug_options, ix86_function_specific_print): Pass true as
	ADD_ABI_P to ix86_target_string.
	(ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
	ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
	or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.

	* gcc.target/i386/pr90096.c: New test.
	* gcc.target/i386/pr69255-1.c: Adjust expected diagnostics.
	* gcc.target/i386/pr69255-2.c: Likewise.
	* gcc.target/i386/pr69255-3.c: Likewise.

From-SVN: r270381
2019-04-16 10:40:58 +02:00
Jakub Jelinek
234b5365c5 re PR rtl-optimization/90082 (ICE in delete_unmarked_insns, at dce.c:653)
PR rtl-optimization/90082
	* dce.c (can_delete_call): New function.
	(deletable_insn_p, mark_insn): Use it.

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

From-SVN: r270380
2019-04-16 10:26:26 +02:00
Jakub Jelinek
41b5808d56 re PR tree-optimization/90090 (ICE in mark_reachable_handlers, at tree-eh.c:3938 since r219202)
PR tree-optimization/90090
	* tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
	throw internally.
	(is_division_by_square): Likewise.  Formatting fix.

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

From-SVN: r270379
2019-04-16 10:24:47 +02:00
Richard Biener
8c996ec644 re PR tree-optimization/56049 (Simplification to constants not done)
2019-04-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56049
	* tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
	equality check if alias-set zero will prevail.

	* gfortran.dg/pr56049.f90: New testcase.

From-SVN: r270378
2019-04-16 07:55:41 +00:00
Iain Buclaw
5d71d6f24f libphobos: Fix configure test for backtrace-supported.h
libphobos/ChangeLog:

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

	* config.h.in: Regenerate.
	* configure: Regenerate.
	* m4/druntime/libraries.m4 (DRUNTIME_LIBRARIES_BACKTRACE): Set
	CPPFLAGS correctly for backtrace support test.

From-SVN: r270377
2019-04-16 05:58:25 +00:00
GCC Administrator
80d3ca49f1 Daily bump.
From-SVN: r270376
2019-04-16 00:16:12 +00:00
Jeff Law
afe9b7c5e6 microblaze.c (microblaze_expand_block_move): Treat size and alignment as unsigned.
* config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
	size and alignment as unsigned.

From-SVN: r270373
2019-04-15 15:19:21 -06:00
Iain Buclaw
7262646b3b Backport PRs 90059, 90060, 90062
PR d/90059
	PR d/90060
	PR d/90062
libphobos: Merge upstream druntime 70b9fea6

Backports fixes in the extern(C) bindings for the Solaris/SPARC port.

Initial patch by Rainer Orth.

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

From-SVN: r270372
2019-04-15 20:32:50 +00:00
Richard Biener
b7a9e9f4a2 re PR debug/90074 (wrong debug info at -O3)
2019-04-15  Richard Biener  <rguenther@suse.de>

	PR debug/90074
	* tree-loop-distribution.c (destroy_loop): Preserve correct
	debug info.

	* gcc.dg/guality/pr90074.c: New testcase.

From-SVN: r270370
2019-04-15 12:26:11 +00:00
Richard Biener
98dc565ef0 re PR tree-optimization/90071 (internal compiler error: SSA corruption)
2019-04-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90071
	* tree-ssa-reassoc.c (init_range_entry): Do not pick up
	abnormal operands from def stmts.

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

From-SVN: r270369
2019-04-15 11:59:02 +00:00
Segher Boessenkool
c7797fd3e8 combine: Count auto_inc properly (PR89794)
The code that checks if an auto-increment from i0 or i1 is not lost is
a bit shaky.  The code to check the same for i2 is non-existent, and
cannot be implemented in a similar way at all.  So, this patch counts
all auto-increments, and makes sure we end up with the same number as
we started with.  This works because we still have a check that we
will not duplicate any.

We should do this some better way, but not while we are in stage 4.


	PR rtl-optimization/89794
	* combine.c (count_auto_inc): New function.
	(try_combine): Count how many auto_inc expressions there were in the
	original instructions.  Ensure we have the same number in the new
	instructions.  Remove the code that tried to ensure auto_inc side
	effects on i1 and i0 are not lost.

gcc/testsuite/
	PR rtl-optimization/89794
	* gcc.dg/torture/pr89794.c: New testcase.

From-SVN: r270368
2019-04-15 13:33:29 +02:00
Richard Biener
869032b176 re PR ipa/88936 (-fipa-pta breaks bash (incorrect optimisation of recursive static function))
2019-04-15  Richard Biener  <rguenther@suse.de>

	PR ipa/88936
	* tree.h (auto_var_p): Declare.
	* tree.c (auto_var_p): New function, split out from ...
	(auto_var_in_fn_p): ... here.
	* tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
	member.
	(new_var_info): Initialize it.
	(set_uids_in_ptset): Also set the shadow variable uid if required.
	(ipa_pta_execute): Postprocess points-to solutions assigning
	shadow variable uids for locals that may reach their containing
	function recursively.
	* tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
	assert but instead check whether the points-to solution is
	a singleton.

	* gcc.dg/torture/pr88936-1.c: New testcase.
	* gcc.dg/torture/pr88936-2.c: Likewise.
	* gcc.dg/torture/pr88936-3.c: Likewise.

From-SVN: r270366
2019-04-15 10:09:08 +00:00
Martin Jambor
79a1870200 Reorganize cgraph_node::clone_of_p
2019-04-15  Martin Jambor  <mjambor@suse.cz>

	PR ipa/pr89693
	* cgraph.c (clone_of_p): Loop over clone chain for each step in
	the thunk chain.

	testsuite/
	* g++.dg/ipa/pr89693.C: New test.

From-SVN: r270364
2019-04-15 10:30:36 +02:00
Monk Chiang
887e182f05 [NDS32] Refine force unwind. Linux kernel only uses RT_SIGRETURN.
libgcc/
	* config/nds32/linux-unwind.h (SIGRETURN): Remove.
	(RT_SIGRETURN): Update.
	(nds32_fallback_frame_state): Update.

From-SVN: r270363
2019-04-15 08:19:23 +00:00
Monk Chiang
3da4a68a3e [NDS32] nds32*-*-linux* target using init_array/finit_array for ctor/dtor.
gcc/
	* config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.

From-SVN: r270362
2019-04-15 08:05:03 +00:00
Monk Chiang
0398ae783a [NDS32] Rewrite PIC/TLS patterns.
gcc/
	* config/nds32/nds32-md-auxiliary.c
	(nds32_legitimize_pic_address): Use new PIC pattern.
	(nds32_legitimize_tls_address): Use new TLS pattern.
	(nds32_output_symrel): New.
	* config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
	(nds32_alloc_relax_group_id): Ditto.
	* config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
	(nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
	relax_group_id.
	(nds32_group_tls_insn): Ditto.
	(nds32_group_float_insns): Ditto.
	* config/nds32/nds32.md (tls_le): New.
	(sym_got): Ditto.

Co-Authored-By: Kito Cheng <kito.cheng@gmail.com>
Co-Authored-By: Shiva Chen <shiva0217@gmail.com>

From-SVN: r270361
2019-04-15 07:59:01 +00:00
Dominique d'Humieres
1a9825f7d4 re PR tree-optimization/90020 (-O2 -Os x86-64 wrong code generated for GNU Emacs)
2019-04-15  Dominique d'Humieres  <dominiq@gcc.gnu.org>

	PR tree-optimization/90020
	* gcc.dg/torture/pr90020.c: Add linker options for darwin.

From-SVN: r270360
2019-04-15 09:56:43 +02:00
Chung-Ju Wu
303ebdaf6c [NDS32] Provide one valid nds32 assembly instruction to check assembler debugging options and features.
gcc/
	* configure: Add nds32 target for dwarf2 debug_line checking.
	* configure.ac: Regenerated.

From-SVN: r270359
2019-04-15 07:39:20 +00:00
GCC Administrator
edae4cfffb Daily bump.
From-SVN: r270358
2019-04-15 00:16:17 +00:00
Jan Hubicka
d2a0371d26 re PR lto/89358 (Combining -std=c++14 and -std=c++17 objects gives ODR warnings)
PR lto/89358
	* g++.dg/lto/pr89358_0.C: New testcase.
	* g++.dg/lto/pr89358_1.C: New testcase.
	* ipa-devirt.c (skip_in_fields_list_p): New.
	(odr_types_equivalent_p): Use it.

From-SVN: r270355
2019-04-14 20:56:45 +00:00
Thomas Koenig
ceae614e1d re PR fortran/85448 (Report binding label clash with a global identifyer)
2019-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/85448
    * gfortran.dg/bind_c_usage_33.f90: New test and...
    * gfortran.dg/bind_c_usage_33_c.c: Additional source.

From-SVN: r270354
2019-04-14 20:15:48 +00:00
Paul Thomas
0d78e4aa06 re PR fortran/89843 (CFI_section delivers incorrect result descriptor)
2019-04-14  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/89843
	* trans-decl.c (gfc_get_symbol_decl): Assumed shape and assumed
	rank dummies of bind C procs require deferred initialization.
	(convert_CFI_desc): New procedure to convert incoming CFI
	descriptors to gfc types and back again.
	(gfc_trans_deferred_vars): Call it.
	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Null the CFI
	descriptor pointer. Free the descriptor in all cases.

	PR fortran/89846
	* expr.c (is_CFI_desc): New function.
	(is_subref_array): Tidy up by referencing the symbol directly.
	* gfortran.h : Prototype for is_CFI_desc.
	* trans_array.c (get_CFI_desc): New function.
	(gfc_get_array_span, gfc_conv_scalarized_array_ref,
	gfc_conv_array_ref): Use it.
	* trans.c (get_array_span): Extract the span from descriptors
	that are indirect references.

	PR fortran/90022
	* trans-decl.c (gfc_get_symbol_decl): Make sure that the se
	expression is a pointer type before converting it to the symbol
	backend_decl type.
	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Eliminate
	temporary creation for intent(in).

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

	PR fortran/89843
	* gfortran.dg/ISO_Fortran_binding_4.f90: Modify the value of x
	in ctg. Test the conversion of the descriptor types in the main
	program.
	* gfortran.dg/ISO_Fortran_binding_10.f90: New test.
	* gfortran.dg/ISO_Fortran_binding_10.c: Called by it.

	PR fortran/89846
	* gfortran.dg/ISO_Fortran_binding_11.f90: New test.
	* gfortran.dg/ISO_Fortran_binding_11.c: Called by it.

	PR fortran/90022
	* gfortran.dg/ISO_Fortran_binding_1.c: Correct the indexing for
	the computation of 'ans'. Also, change the expected results for
	CFI_is_contiguous to comply with standard.
	* gfortran.dg/ISO_Fortran_binding_1.f90: Correct the expected
	results for CFI_is_contiguous to comply with standard.
	* gfortran.dg/ISO_Fortran_binding_9.f90: New test.
	* gfortran.dg/ISO_Fortran_binding_9.c: Called by it.

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

	PR fortran/89843
	* runtime/ISO_Fortran_binding.c (cfi_desc_to_gfc_desc): Only
	return immediately if the source pointer is null. Bring
	forward the extraction of the gfc type. Extract the kind so
	that the element size can be correctly computed for sections
	and components of derived type arrays. Remove the free of the
	CFI descriptor since this is now done in trans-expr.c.
	(gfc_desc_to_cfi_desc): Only allocate the CFI descriptor if it
	is not null.
	(CFI_section): Normalise the difference between the upper and
	lower bounds by the stride to correctly calculate the extents
	of the section.

	PR fortran/89846
	* runtime/ISO_Fortran_binding.c (cfi_desc_to_gfc_desc): Use
	the stride measure for the gfc span if it is not a multiple
	of the element length. Otherwise use the element length.

	PR fortran/90022
	* runtime/ISO_Fortran_binding.c (CFI_is_contiguous) : Return
	1 for true and 0 otherwise to comply with the standard. Correct
	the contiguity check for rank 3 and greater by using the stride
	measure of the lower dimension rather than the element length.

From-SVN: r270353
2019-04-14 18:14:58 +00:00
Johannes Pfau
4d024c3269 PR d/87799 Fix D build on windows hosts
PR d/87799
* d-system.h (_mkdir): Forward _mkdir on MinGW to mkdir in system.h.
* configure.ac: Remove d from unsupported languages on mingw and cygwin.
* configure: Regenerate.

From-SVN: r270349
2019-04-14 09:52:22 +00:00
Rainer Orth
7d31d33130 Enable libphobos on Solaris 11/x86
toplevel:
	* configure.ac (enable_libphobos): Check LIBPHOBOS_SUPPORTED.
	* configure: Regenerate.

	libphobos:
	* configure.tgt (LIBPHOBOS_SUPPORTED): Default to no.
	Set to yes explicitly.
	* configure.ac: Handle --enable-libphobos.
	(x86_64-*-solaris2.* | i?86-*-solaris2.*): Only mark supported
	with gas.
	(ENABLE_LIBPHOBOS): New conditional.
	* configure: Regenerate.
	* Makefile.am (SUBDIRS): Only set if ENABLE_LIBPHOBOS.
	* Makefile.in: Regenerate.

From-SVN: r270348
2019-04-14 09:38:01 +00:00
Rainer Orth
235d1c467b Work around lack of dlpi_tls_modid before Solaris 11.5
2019-04-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
	    Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/88150
	* m4/druntime/os.m4 (DRUNTIME_OS_DLPI_TLS_MODID): New macro.
	* configure.ac: Use it.
	Call AC_USE_SYSTEM_EXTENSIONS.
	* configure: Regenerate.
	* Makefile.in, libdruntime/Makefile.in, src/Makefile.in,
	testsuite/Makefile.in: Regenerate.
	* libdruntime/gcc/config.d.in (OS_Have_Dlpi_Tls_Modid): Define.
	* libdruntime/gcc/sections/elf_shared.d: Import gcc.config.
	(scanSegments) <PT_TLS> [OS_Have_Dlpi_Tls_Modid]: Use
	dlpi_tls_modid.
	[Solaris]: Use dlinfo(RTLD_DI_LINKMAP) to get rt_tlsmodid.
	Otherwise clear pdso._tlsMod, pdso._tlsSize.
	(getTLSRange) [Solaris && !OS_Have_Dlpi_Tls_Modid]: Readjust mod.

Co-Authored-By: Iain Buclaw <ibuclaw@gdcproject.org>

From-SVN: r270347
2019-04-14 09:30:42 +00:00
Rainer Orth
ba838aa6c3 Work around Solaris ld bug linking __tls_get_addr on 64-bit x86
* m4/druntime/os.m4 (DRUNTIME_OS_LINK_SPEC): New macro.
	* configure.ac: Call it.
	* configure: Regenerate.
	* Makefile.in, libdruntime/Makefile.in, src/Makefile.in,
	testsuite/Makefile.in: Regenerate.
	* src/libgphobos.spec.in (*link): Append OS_LINK_SPEC.

From-SVN: r270346
2019-04-14 09:24:26 +00:00
Rainer Orth
4d51312053 Use gcc/sections/elf_shared.d on Solaris 11.5 (PR d/88150)
PR d/88150
	* libdruntime/gcc/sections/elf_shared.d [Solaris] (SharedELF): Set
	to true.
	Import core.sys.solaris.dlfcn, core.sys.solaris.link,
	core.sys.solaris.sys.elf, core.sys.solaris.sys.link.
	(dummy_ref): Declare.
	(initSections): Initialize dummy_ref.
	(getDependencies): Set strtab.
	(handleForName): Don't dlclose handle.
	(findDSOInfoForAddr): Set IterateManually.
	(getprogname): Declare.
	(progname): Use it.
	* libdruntime/gcc/sections/package.d [Solaris]: Import
	gcc.sections.elf_shared instead of gcc.sections.solaris.
	* libdruntime/gcc/sections/solaris.d: Remove.
	* libdruntime/Makefile.am (DRUNTIME_DSOURCES): Remove
	gcc/sections/solaris.d.

From-SVN: r270345
2019-04-14 09:18:42 +00:00
GCC Administrator
77086e0125 Daily bump.
From-SVN: r270344
2019-04-14 00:16:15 +00:00
Iain Buclaw
8b6518285b libphobos: Move rt.sections modules to gcc.sections
These modules depend on a mixture between how the compiler emits
run-time module information, and what functions are exposed by the
platform to inquire about loaded global and thread-local data sections.

As the upstream implementation is written to work only with how the
reference D compiler writes out data, much of what is present does not
apply to the GCC D front-end.  So it has been moved to a non-upstream
location in the source tree, where most of it will be rewritten once
each port has been completed.

The only tested module sections/elf_shared.d has been cleaned up so that
all deprecated declarations have been removed, as well as the brittle
module collision checking, which required bss_sections.c.  All other
ports have been left unchanged apart from a commonizing of attributes.

libphobos/ChangeLog:

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

	* libdruntime/Makefile.am (DRUNTIME_CSOURCES): Remove bss_sections.c.
	(DRUNTIME_DSOURCES): Rename rt/sections_* modules to gcc/sections/*.
	* libdruntime/Makefile.in: Regenerate.
	* libdruntime/gcc/sections/android.d: New file.
	* libdruntime/gcc/sections/elf_shared.d: New file.
	* libdruntime/gcc/sections/osx.d: New file.
	* libdruntime/gcc/sections/package.d: New file.
	* libdruntime/gcc/sections/solaris.d: New file.
	* libdruntime/gcc/sections/win32.d: New file.
	* libdruntime/gcc/sections/win64.d: New file.
	* libdruntime/rt/bss_section.c: Remove.
	* libdruntime/rt/sections.d: Publicly import gcc.sections.
	* libdruntime/rt/sections_android.d: Remove.
	* libdruntime/rt/sections_elf_shared.d: Remove.
	* libdruntime/rt/sections_osx.d: Remove.
	* libdruntime/rt/sections_solaris.d: Remove.
	* libdruntime/rt/sections_win32.d: Remove.
	* libdruntime/rt/sections_win64.d: Remove.

From-SVN: r270341
2019-04-13 15:29:15 +00:00
Jakub Jelinek
151c5c0b80 * gcc.pot: Regenerate.
From-SVN: r270340
2019-04-13 17:22:23 +02:00
Jakub Jelinek
6cf5881044 re PR target/89093 (C++ exception handling clobbers d8 VFP register)
PR target/89093
	* config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
	instead of strncmp when checking for thumb and arm.  Formatting fixes.

	* gcc.target/arm/pr89093.c: New test.

From-SVN: r270339
2019-04-13 17:20:46 +02:00
Dominique d'Humieres
917971706f re PR fortran/79842 (i18n: subword translation in "Can't use the same %smodule")
2019-04-13  Dominique d'Humieres  <dominiq@gcc.gnu.org>

	PR fortran/79842
	* module.c (gfc_use_module): use complete sentences.

From-SVN: r270338
2019-04-13 13:32:49 +02:00
Jakub Jelinek
4b4f5ccdee * gcc.pot: Regenerate.
From-SVN: r270337
2019-04-13 10:16:59 +02:00
Ian Lance Taylor
fdc59f56c1 compiler: improve type handling for string concat ops on constants
Resolve a small problem with concatenation of string constants: in a
    string concat X + Y where X has named type and Y has abstract string
    type, insure that the result has X's type, and disable folding if the
    both sides have a concrete type that does not match.
    
    Fixes golang/go#31412.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/171797

From-SVN: r270336
2019-04-13 01:03:55 +00:00