Commit Graph

166785 Commits

Author SHA1 Message Date
Tom de Vries
2bd0a246c6 [libbacktrace] Handle DW_FORM_ref_addr
Add handling of the DW_FORM_ref_addr encoding to libbacktrace.

2019-02-08  Tom de Vries  <tdevries@suse.de>

	PR libbacktrace/78063
	* dwarf.c (build_address_map): Keep all parsed units.
	(read_referenced_name_from_attr): Handle DW_FORM_ref_addr.

From-SVN: r268663
2019-02-08 05:55:44 +00:00
GCC Administrator
0dc1a7f1dd Daily bump.
From-SVN: r268662
2019-02-08 00:16:26 +00:00
David Malcolm
25b67546a1 Fix more ICEs in -fsave-optimization-record (PR tree-optimization/89235)
PR tree-optimization/89235 reports an ICE inside -fsave-optimization-record
whilst reporting the inlining chain of of the location_t in the
vect_location global.

This is very similar to PR tree-optimization/86637, fixed in r266821.

The issue is that the inlining chains are read from the location_t's
ad-hoc data, referencing GC-managed tree blocks, but the former are
not GC roots; it's simply assumed that old locations referencing dead
blocks never get used again.

The fix is to reset the "vect_location" global in more places.  Given
that is a somewhat subtle detail, the patch adds a sentinel class to
reset vect_location at the end of a scope.  Doing it as a class
simplifies the task of ensuring that the global is reset on every
exit path from a function, and also gives a good place to signpost
the above subtlety (in the documentation for the class).

The patch also adds test cases for both of the PRs mentioned above.

gcc/testsuite/ChangeLog:
	PR tree-optimization/86637
	PR tree-optimization/89235
	* gcc.c-torture/compile/pr86637-1.c: New test.
	* gcc.c-torture/compile/pr86637-2.c: New test.
	* gcc.c-torture/compile/pr86637-3.c: New test.
	* gcc.c-torture/compile/pr89235.c: New test.

gcc/ChangeLog:
	PR tree-optimization/86637
	PR tree-optimization/89235
	* tree-vect-loop.c (optimize_mask_stores): Add an
	auto_purge_vect_location sentinel to ensure that vect_location is
	purged on exit.
	* tree-vectorizer.c
	(auto_purge_vect_location::~auto_purge_vect_location): New dtor.
	(try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
	to ensure that vect_location is purged on exit.
	(pass_slp_vectorize::execute): Likewise, replacing the manual
	reset.
	* tree-vectorizer.h (class auto_purge_vect_location): New class.

From-SVN: r268659
2019-02-07 23:00:18 +00:00
Kyrylo Tkachov
8544ed6eea [AArch64] Change representation of SABD in RTL
Richard raised a concern about the RTL we use to represent the AdvSIMD SABD
(vector signed absolute difference) instruction.
We currently represent it as ABS (MINUS op1 op2).

This isn't exactly what SABD does. ABS treats its input as a signed value
and returns the absolute of that.

For example:
(sabd:QI 64 -128) == 192 (unsigned) aka -64 (signed)
whereas
(minus:QI 64 -128) == 192 (unsigned) aka -64 (signed), (abs ...) of that is 64.

A better way to describe the instruction is with MINUS (SMAX (op1 op2) SMIN (op1 op2)).
This patch implements that, and also implements similar semantics for the UABD instruction
that uses UMAX and UMIN.

That way for the example above we'll have:
(minus:QI (smax:QI (64 -128)) (smin:QI (64 -128))) == (minus:QI 64 -128) == 192 (or -64 signed) which matches
what SABD does. 

	* config/aarch64/iterators.md (max_opp): New code_attr.
	(USMAX): New code iterator.
	* config/aarch64/predicates.md (aarch64_smin): New predicate.
	(aarch64_smax): Likewise.
	* config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
	(*aarch64_<su>abd<mode>_3): ... Change RTL representation to
	MINUS (MAX MIN).

	* gcc.target/aarch64/abd_1.c: New test.
	* gcc.dg/sabd_1.c: Likewise.

From-SVN: r268658
2019-02-07 18:18:16 +00:00
H.J. Lu
2b99b6c0cc i386: Fix typo in *movoi_internal_avx/movti_internal
PR target/89229
	* config/i386/i386.md (*movoi_internal_avx): Set mode to OI
	for TARGET_AVX512VL.
	(*movti_internal): Set mode to TI for TARGET_AVX512VL.

From-SVN: r268657
2019-02-07 09:58:19 -08:00
Dominique d'Humieres
2a88974cd1 re PR fortran/52789 (gfortran sets -Wunused-parameter in the C sense as well as the Fortran sense)
2019-02-07  Dominique d'Humieres  <dominiq@gcc.gnu.org>

	PR fortran/52789
	* gfortran.dg/wunused-parameter_2.f90: New test.

From-SVN: r268656
2019-02-07 18:40:29 +01:00
Matthew Malcomson
accd3cd688 Only run on arm architecture
My previous patch failed to only run an arm test on arm architecture.
This adds that condition to the test.

gcc/testsuite/ChangeLog:

2019-02-07  Matthew Malcomson  <matthew.malcomson@arm.com>

	* gcc.dg/rtl/arm/ldrd-peepholes.c: Only run on arm

From-SVN: r268655
2019-02-07 16:54:54 +00:00
Eric Botcazou
f15542a4b7 * libgnarl/s-linux__sparc.ads (ETIMEDOUT): Set to correct value.
From-SVN: r268652
2019-02-07 16:28:40 +00:00
Andreas Krebbel
993f9e7d06 S/390: Fix the vec_xl / vec_xst style builtins
This patch fixes several problems with the vec_xl/vec_xst builtins:

- vec_xl/vec_xst needs to use the alignment of the scalar memory
  operand for the vector type reference. This is required to emit the
  proper vl/vst alignment hints.
- vec_xl / vec_xld2 / vec_xlw4 should accept const pointer source operands
- vec_xlw4 / vec_xstw4 needs to accept float memory operands

gcc/ChangeLog:

2019-02-07  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def: Add new types.
	* config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
	(s390_vec_xlw4): Make the memory operand into a const pointer.
	(s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
	float.
	* config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
	a new vector type with the alignment of the scalar memory operand.

gcc/testsuite/ChangeLog:

2019-02-07  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/zvector/xl-xst-align-1.c: New test.
	* gcc.target/s390/zvector/xl-xst-align-2.c: New test.

From-SVN: r268651
2019-02-07 15:53:38 +00:00
Matthew Malcomson
c272bbda1a [Patch] [arm] Fix 88714, Arm LDRD/STRD peepholes.
These peepholes match a pair of SImode loads or stores that can be
implemented with a single LDRD or STRD instruction.
When compiling for TARGET_ARM, these peepholes originally created a set
pattern in DI mode to be caught by movdi patterns.

This approach failed to take into account the possibility that the two
matched insns operated on memory with different aliasing information.
The peepholes lost the aliasing information on one of the insns, which
could then cause the scheduler to make an invalid transformation.

This patch changes the peepholes so they generate a PARALLEL expression
of the two relevant loads or stores, which means the aliasing
information of both is kept.  Such a PARALLEL pattern is what the
peepholes currently produce for TARGET_THUMB2.

In order to match these new insn patterns, we add two new define_insn's.  These
define_insn's use the same checks as the peepholes to find valid insns.

Note that the patterns now created by the peepholes for LDRD and STRD
are very similar to those created by the peepholes for LDM and STM.
Many patterns could be matched by the LDM and STM define_insns, which
means we rely on the order the define_insn patterns are defined in the
machine description, with those for LDRD/STRD defined before those for
LDM/STM.

The difference between the peepholes for LDRD/STRD and those for LDM/STM
are mainly that those for LDRD/STRD have some logic to ensure that the
two registers are consecutive and the first one is even.

Bootstrapped and regtested on arm-none-linux-gnu.
Demonstrated fix of bug 88714 by bootstrapping on armv7l.


gcc/ChangeLog:

2019-02-07  Matthew Malcomson  <matthew.malcomson@arm.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/88714
	* config/arm/arm-protos.h (valid_operands_ldrd_strd,
	arm_count_ldrdstrd_insns): New declarations.
	* config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
	MINUS.
	(valid_operands_ldrd_strd): New function.
	(arm_count_ldrdstrd_insns): New function.
	* config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
	sets instead of single DImode set and define new insns to match this.

gcc/testsuite/ChangeLog:

2019-02-07  Matthew Malcomson  <matthew.malcomson@arm.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/88714
	* gcc.c-torture/execute/pr88714.c: New test.
	* gcc.dg/rtl/arm/ldrd-peepholes.c: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r268644
2019-02-07 14:54:15 +00:00
Tamar Christina
5eb9ac1e27 AArch64: Fix initializer for array so it's a C initializer instead of C++.
This fixes a missing = that would cause the array initializer to be a C++
initializer instead of a C one, causing a warning when building with pre-C++11
standards compiler.

Committed under the GCC obvious rules.

gcc/ChangeLog:

	* config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
	Make it a C initializer.

From-SVN: r268614
2019-02-07 11:05:22 +00:00
Tamar Christina
4fcb52c4ef Arm: Fix NEON REG to REG reload failures. (PR/target 88850)
We currently return cost 2 for NEON REG to REG moves, which would be incorrect
for 64 bit moves.  We currently don't have a pattern for this in the neon_move
alternatives because this is a bit of a special case.  We would almost never
want it to use this r -> r pattern unless it really has no choice.

As such we add a new neon r -> r move pattern but also hide it from being used
to determine register preferences and also disparage it during LRA.

gcc/ChangeLog:

	PR/target 88850
	* config/arm/neon.md (*neon_mov<mode>): Add r -> r case.

gcc/testsuite/ChangeLog:

	PR/target 88850
	* gcc.target/arm/pr88850.c: New test.

From-SVN: r268612
2019-02-07 10:05:57 +00:00
Kyrylo Tkachov
51e6029f69 [arm] Use neon_dot_q type for 128-bit V[US]DOT instructions where appropriate
For the Dot Product instructions we have the scheduling types neon_dot and neon_dot_q for the 128-bit versions.
It seems that we're only using the former though, not assigning the neon_dot_q type anywhere.

This patch fixes that by adding the <q> mode attribute suffix to the type, similar to how we do it for other
types in neon.md. 

	* config/arm/neon.md (neon_<sup>dot<vsi2qi>):
	Use neon_dot<q> for type.
	(neon_<sup>dot_lane<vsi2qi>): Likewise.

From-SVN: r268611
2019-02-07 09:32:46 +00:00
Kyrylo Tkachov
3ed8fcfa3a [AArch64] Use neon_dot_q type for 128-bit [US]DOT instructions where appropriate
For the Dot Product instructions we have the scheduling types neon_dot and neon_dot_q for the 128-bit versions.
It seems that we're only using the former though, not assigning the neon_dot_q type anywhere.

This patch fixes that by adding the <q> mode attribute suffix to the type, similar to how we do it for other
types in aarch64-simd.md.

	* config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
	Use neon_dot<q> for type.
	(aarch64_<sur>dot_lane<vsi2qi>): Likewise.
	(aarch64_<sur>dot_laneq<vsi2qi>): Likewise.

From-SVN: r268610
2019-02-07 09:31:33 +00:00
Alexandre Oliva
dc51dece7a [PR86218] handle ck_aggr in compare_ics in both and either conversion
Because of rank compares, and checks for ck_list, we know that if we
see user_conv_p or ck_list in ics1, we'll also see it in ics2.  This
reasoning does not extend to ck_aggr, however, so we might have
ck_aggr conversions starting both ics1 and ics2, which we handle
correctly, or either, which we likely handle by crashing on whatever
path we take depending on whether ck_aggr is in ics1 or ics2.

We crash because, as we search the conversion sequences, we may very
well fail to find what we are looking for, and reach the end of the
sequence, which is unexpected in all paths.

This patch arranges for us to take the same path when ck_aggr is in
ics2 only that we would if it was in ics1 (regardless of ics2), and it
deals with not finding the kind of conversion we look for there.

I've changed the type of the literal constant in the testcase, so as
to hopefully make it well-formed.  We'd fail to reject the narrowing
conversion in the original testcase, but that's a separate bug.


for  gcc/cp/ChangeLog

	PR c++/86218
	* call.c (compare_ics): Deal with ck_aggr in either cs.

for  gcc/testsuite/ChangeLog

	PR c++/86218
	* g++.dg/cpp0x/pr86218.C: New.

From-SVN: r268606
2019-02-07 07:50:42 +00:00
Ian Lance Taylor
18591d3ee7 os, syscall: Hurd fixes for a couple of tests
Based on patch by Svante Signell.
    
    Reviewed-on: https://go-review.googlesource.com/c/161520

From-SVN: r268605
2019-02-07 05:02:26 +00:00
Ian Lance Taylor
4a3e25712f os, net, crypto/x509: add hurd support
Patch by Svante Signell.
    
    Reviewed-on: https://go-review.googlesource.com/c/161519

From-SVN: r268604
2019-02-07 04:45:01 +00:00
Ian Lance Taylor
4321f202f9 syscall: add Hurd support
Loosely based on a patch by Svante Signell.
    
    Reviewed-on: https://go-review.googlesource.com/c/161518

From-SVN: r268603
2019-02-07 03:11:47 +00:00
Ian Lance Taylor
9fa4b2aa45 internal/syscall/unix: add constants for hurd
Patch by Svante Signell.
    
    Reviewed-on: https://go-review.googlesource.com/c/161517

From-SVN: r268602
2019-02-07 02:22:57 +00:00
GCC Administrator
3a3dc1d3a0 Daily bump.
From-SVN: r268601
2019-02-07 00:16:25 +00:00
Vladimir Makarov
f8dc3fb202 re PR rtl-optimization/89225 (LRA hang on ppc64le compiling glibc starting with r268404)
2019-02-06  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/89225
	* lra-constaints.c (simplify_operand_subreg): Add subreg mode
	sizes check.

2019-02-06  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/89225
	* gcc.target/powerpc/pr89225.c: New.

From-SVN: r268597
2019-02-06 21:48:45 +00:00
Eric Botcazou
a4f73f96f1 i386.c (ix86_expand_prologue): Emit a memory blockage after restoring registers saved to allocate the frame on...
* config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
	after restoring registers saved to allocate the frame on Windows.

From-SVN: r268593
2019-02-06 21:03:03 +00:00
Joseph Myers
2f2205e2ff * eo.po: Update.
From-SVN: r268592
2019-02-06 21:02:28 +00:00
Ian Lance Taylor
73fe55d752 re PR go/89199 (libgo regression in implementation of CompareAndSwap functions resulting in intermittent testcase failures on ppc64le power9 after r268458)
PR go/89199
    sync/atomic: use strong form of atomic_compare_exchange_n
    
    In the recent change to use atomic_compare_exchange_n I thought we
    could use the weak form, which can spuriously fail. But that is not
    how it is implemented in the gc library, and it is not what the rest
    of the library expects.
    
    Thanks to Lynn Boger for identifying the problem.
    
    Fixes https://gcc.gnu.org/PR89199
    
    Reviewed-on: https://go-review.googlesource.com/c/161359

From-SVN: r268591
2019-02-06 20:46:00 +00:00
Thomas Koenig
16e2bcd5b9 re PR fortran/71860 ([OOP] ICE on pointing to null(mold), verify_gimple failed)
2019-02-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/71860
	* gfortran.dg/null_10.f90: New test.

From-SVN: r268590
2019-02-06 20:34:42 +00:00
David Malcolm
aa9dc19314 Fix locations in conversion_null_warnings (PR c++/71302)
PR c++/71302 reports that g++ shows poor locations for
-Wzero-as-null-pointer-constant for pointers in function calls,
using the close parenthesis of the call, rather than showing the
pertinent argument.

This particular case was fixed in GCC 8, but regressed on trunk
in r260973.

This patch fixes the regression, and adds column numbers to the
test cases (where they're correct) to avoid regressing them in the
future.  There are still various places where the locations aren't
correct, but fixing them isn't stage 4 material.

gcc/cp/ChangeLog:
	PR c++/71302
	* call.c (get_location_for_expr_unwinding_for_system_header): New
	function.
	(conversion_null_warnings): Use it when getting locations for
	EXPR, effectively adding a call to
	get_location_for_expr_unwinding_for_system_header for
	-Wconversion-null and making use of EXPR_LOCATION for
	-Wzero-as-null-pointer-constant.

gcc/testsuite/ChangeLog:
	PR c++/71302
	* g++.dg/cpp0x/Wzero-as-null-pointer-constant-1.C: Add expected
	column numbers to dg-warning directives where they are correct.
	* g++.dg/warn/Wzero-as-null-pointer-constant-5.C: Likewise.
	* g++.dg/warn/Wzero-as-null-pointer-constant-7.C: Likewise.
	* g++.dg/warn/Wzero-as-null-pointer-constant-8.C: New test.

From-SVN: r268589
2019-02-06 19:44:52 +00:00
Rainer Orth
d0307ff2cd Fix gcc.dg/debug/dwarf2/inline5.c with Solaris as (PR debug/87451)
PR debug/87451
	* gcc.dg/debug/dwarf2/inline5.c: Allow for non-comment before
	"(DIE (0x[0-9a-f]*) DW_TAG_variable".
	xfail scan-assembler-not with Solaris as.

From-SVN: r268588
2019-02-06 18:54:16 +00:00
Joseph Myers
d24b0ba320 * ru.po: Update.
From-SVN: r268587
2019-02-06 17:41:59 +00:00
Jonathan Wakely
373c726ec6 PR libstdc++/89102 fix common_type<> and common_type<T> specializations
This is a partial implementation of the revised std::common_type rules
from P0435R1.

	PR libstdc++/89102 (partial)
	* include/std/type_traits (common_type<>): Define.
	(common_type<T>): Derive from common_type<T, T>.
	* testsuite/20_util/common_type/requirements/explicit_instantiation.cc:
	Test zero-length template argument list.
	* testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc:
	Test additional single argument cases.
	* testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc:
	Adjust expected error.

From-SVN: r268586
2019-02-06 17:25:26 +00:00
Bill Seurer
12f82acc9e vsx-vector-6.p7.c: Update instruction counts and target.
2019-02-06  Bill Seurer  <seurer@linux.vnet.ibm.com>

	* gcc.target/powerpc/vsx-vector-6.p7.c: Update instruction
	counts and target.
	* gcc.target/powerpc/vsx-vector-6.p8.c: Update instruction
	counts and target.
	* gcc.target/powerpc/vsx-vector-6.p9.c: Update instruction
	counts and target.

From-SVN: r268585
2019-02-06 16:29:56 +00:00
Ian Lance Taylor
2afcc6c3c1 README: update text to describe current status
Reviewed-on: https://go-review.googlesource.com/c/161338

From-SVN: r268584
2019-02-06 16:28:31 +00:00
Arnaud Charlet
b49fa5e020 s-linux__x32.ads: Resync list of signals with s-linux.ads
* libgnarl/s-linux__x32.ads: Resync list of signals with s-linux.ads

From-SVN: r268576
2019-02-06 12:50:15 +01:00
Richard Biener
124f4f57c4 re PR tree-optimization/89182 ([graphite] ICE in extract_affine, at graphite-sese-to-poly.c:280)
2019-02-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89182
	* graphite.h (cached_scalar_evolution_in_region): Declare.
	* graphite.c (struct seir_cache_key): New.
	(struct sese_scev_hash): Likewise.
	(seir_cache): New global.
	(cached_scalar_evolution_in_region): New function.
	(graphite_transform_loops): Allocate and release seir_cache.
	* graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
	cached_scalar_evolution_in_region.
	* graphite-scop-detection.c (scop_detection::can_represent_loop):
	Simplify.
	(scop_detection::graphite_can_represent_expr: Use
	cached_scalar_evolution_in_region.
	(scop_detection::stmt_simple_for_scop_p): Likewise.
	(find_params_in_bb): Likewise.
	(gather_bbs::before_dom_children): Likewise.
	* graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
	(add_loop_constraints): Likewise.

	* gfortran.dg/graphite/pr89182.f90: New testcase.

From-SVN: r268575
2019-02-06 11:18:33 +00:00
Jakub Jelinek
cfc30fd175 re PR c/89211 (ICE in int_mode_for_mode, at stor-layout.c:403)
PR c/89211
	* c-parser.c (c_parser_declaration_or_fndef): Don't update
	DECL_ARGUMENTS of d if it has been defined already.  Use a single if
	instead of 3 nested ifs.

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

From-SVN: r268574
2019-02-06 10:17:55 +01:00
Jakub Jelinek
4763581763 re PR middle-end/89210 (ICE tree check: expected integer_cst, have real_cst in to_wide, at tree.h:5600)
PR middle-end/89210
	* fold-const-call.c (fold_const_vec_convert): Pass true as last
	operand to new_unary_operation only if both element types are integral
	and it isn't a widening conversion.  Return NULL_TREE if
	new_unary_operation failed.

	* c-c++-common/builtin-convertvector-2.c: New test.

From-SVN: r268573
2019-02-06 10:16:19 +01:00
Nikhil Benesch
ce4321c918 re PR go/89019 (LTO and gccgo cause ICE during free_lang_data)
gcc/go:
        PR go/89019
        * go-gcc.cc (Gcc_backend::placeholder_struct_type): Mark
        placeholder structs as requiring structural equality.
        (Gcc_backend::set_placeholder_pointer_type): Propagate the
	canonical type from the desired pointer type to the placeholder
	pointer type.
gcc/testsuite/:
        * lib/go-torture.exp: Test compiling with -flto.

From-SVN: r268572
2019-02-06 04:48:35 +00:00
Joseph Myers
fbe83e6b4d Fix type of extern array declared in inner scope with outer initialization shadowed (PR c/88584).
As reported in bug 88584, if you have a file-scope array with external
linkage, initialized at file scope, and that array is shadowed at
block scope, and is declared again with external linkage and an
incomplete type in an inner scope, it is wrongly given a complete type
in that inner scope when the correct C semantics give it an incomplete
type (only the visible declarations contribute to the type in a given
scope).

In general, issues with the types of external linkage declarations
being different in different scopes were addressed by my fixes for bug
13801, for GCC 4.0.  In this case, however, the code in pushdecl
dealing with giving declarations the right type in each scope works
fine, and the type is subsequently modified by complete_array_type
called from finish_decl: finish_decl is trying to complete an array
type based on an initializer, but that's only correct for the original
initialization at file scope, not for such a declaration in an inner
scope (it's harmless but unnecessary in the case where the original
declaration is still visible in the inner scope).  Thus, this patch
changes finish_decl to stop this logic applying for such an external
declaration in an inner scope.  (An erroneous attempt to include an
initializer for an extern variable in an inner scope is diagnosed
elsewhere.)

This is a regression from GCC 3.4, which properly rejected the code in
question (quite likely by accident).

Bootstrapped with no regressions on x86_64-pc-linux-gnu.

gcc/c:
	PR c/88584
	* c-decl.c (finish_decl): Do not complete array types for arrays
	with external linkage not at file scope.

gcc/testsuite:
	PR c/88584
	* gcc.dg/redecl-18.c: New test.

From-SVN: r268571
2019-02-06 01:51:29 +00:00
GCC Administrator
e9f061bd28 Daily bump.
From-SVN: r268570
2019-02-06 00:16:19 +00:00
Joseph Myers
4f2f8148e6 Update .po files.
gcc/po:
	* be.po, da.po, de.po, el.po, es.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.

libcpp/po:
	* be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, fi.po, fr.po,
	id.po, ja.po, nl.po, pr_BR.po, ru.po, sr.po, sv.po, tr.po, uk.po,
	vi.po, zh_CN.po, zh_TW.po: Update.

From-SVN: r268567
2019-02-05 23:20:00 +00:00
Jonathan Wakely
5bb89e0a28 PR libstdc++/89128 add deduction guides for container adaptors
PR libstdc++/89128
	* include/bits/stl_queue.h (queue, priority_queue): Add deduction
	guides.
	* include/bits/stl_stack.h (stack): Likewise.
	* testsuite/23_containers/priority_queue/deduction.cc: New test.
	* testsuite/23_containers/queue/deduction.cc: New test.
	* testsuite/23_containers/stack/deduction.cc: New test.

From-SVN: r268566
2019-02-05 22:58:22 +00:00
Jakub Jelinek
d397e3948e re PR c++/89187 (ICE in initialize_argument_information, at calls.c:2023)
PR c++/89187
	* optimize.c (maybe_thunk_body): Clear TREE_ADDRESSABLE on
	PARM_DECLs of the thunk.
	* lambda.c (maybe_add_lambda_conv_op): Likewise.

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

From-SVN: r268564
2019-02-05 23:28:25 +01:00
Andrea Corallo
216090cc0f libgccjit: introduce gcc_jit_context_add_driver_option
gcc/jit/ChangeLog:
2019-02-05  Andrea Corallo <andrea.corallo@arm.com>

	* docs/topics/compatibility.rst (LIBGCCJIT_ABI_11): New ABI tag.
	* docs/topics/contexts.rst (Additional driver options): New
	section.
	* jit-playback.c (invoke_driver): Add call to append_driver_options.
	* jit-recording.c: Within namespace gcc::jit...
	(recording::context::~context): Free the optnames within
	m_driver_options.
	(recording::context::add_driver_option): New method.
	(recording::context::append_driver_options): New method.
	(recording::context::dump_reproducer_to_file): Add driver
	options.
	* jit-recording.h: Within namespace gcc::jit...
	(recording::context::add_driver_option): New method.
	(recording::context::append_driver_options): New method.
	(recording::context::m_driver_options): New field.
	* libgccjit++.h (gccjit::context::add_driver_option): New
	method.
	* libgccjit.c (gcc_jit_context_add_driver_option): New API
	entrypoint.
	* libgccjit.h (gcc_jit_context_add_driver_option): New API
	entrypoint.
	(LIBGCCJIT_HAVE_gcc_jit_context_add_driver_option): New
	macro.
	* libgccjit.map (LIBGCCJIT_ABI_11): New ABI tag.

gcc/testsuite/ChangeLog:
2019-02-05  Andrea Corallo <andrea.corallo@arm.com>

	* jit.dg/add-driver-options-testlib.c: Add support file for
	test-add-driver-options.c testcase.
	* jit.dg/all-non-failing-tests.h: Add note about
	test-add-driver-options.c
	* jit.dg/jit.exp (jit-dg-test): Update to support
	add-driver-options-testlib.c compilation.
	* jit.dg/test-add-driver-options.c: New testcase.

From-SVN: r268563
2019-02-05 22:11:04 +00:00
Jakub Jelinek
6fc4ecbc55 re PR rtl-optimization/11304 (Wrong code production with -fomit-frame-pointer)
PR rtl-optimization/11304
	* gcc.target/i386/call-1.c (set_eax): Add "eax" clobber.
	* gcc.target/i386/call-2.c: New test.

From-SVN: r268562
2019-02-05 23:00:29 +01:00
Marek Polacek
0d80643880 PR c++/89158 - by-value capture of constexpr variable broken.
* call.c (convert_like_real) <case ck_user>: Call mark_exp_read
	instead of mark_rvalue_use.

	* g++.dg/cpp0x/lambda/lambda-89158.C: New test.

From-SVN: r268561
2019-02-05 21:30:51 +00:00
Ian Lance Taylor
b81e1cd506 compiler: check duplicate implicit indexes in slices/arrays
Fixes golang/go#28186.
    
    Reviewed-on: https://go-review.googlesource.com/c/160832

From-SVN: r268554
2019-02-05 18:21:07 +00:00
Segher Boessenkool
959dcbc80a Fix pr84711.c testcase
On powerpc64-linux, this testcase complains the ABI for vector args
has changed, making the testcase fail (excess output).  This patch
shuts up that warning.


	* gcc.dg/vect/pr84711.c: Use -Wno-psabi.

From-SVN: r268553
2019-02-05 19:03:55 +01:00
Andreas Krebbel
64c8e85aa5 S/390: Remove load and test fp splitter
gcc/ChangeLog:

2019-02-05  Andreas Krebbel  <krebbel@linux.ibm.com>

	PR target/88856
	* config/s390/s390.md: Remove load and test FP splitter.

From-SVN: r268550
2019-02-05 17:14:11 +00:00
Aaron Sawdey
faaeebd646 re PR target/89112 (Incorrect code generated by rs6000 memcmp expansion)
2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>

	PR target/89112
	* config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
	expand_compare_loop, expand_block_compare_gpr,
	expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
	REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
	#include "profile-count.h" and "predict.h" for types and functions
	needed to work with REG_BR_PROB notes.

From-SVN: r268547
2019-02-05 10:32:06 -06:00
Aaron Sawdey
60f34f084a re PR target/89112 (Incorrect code generated by rs6000 memcmp expansion)
2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>

	PR target/89112
	* config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
	for the long branch case.

From-SVN: r268546
2019-02-05 10:30:45 -06:00
Jakub Jelinek
44381cb6c7 vec-extract-sint128-1.c: Require int128 effective target.
* gcc.target/powerpc/vec-extract-sint128-1.c: Require int128 effective
	target.
	* gcc.target/powerpc/vec-extract-uint128-1.c: Likewise.

From-SVN: r268545
2019-02-05 17:22:21 +01:00