gcc.git
5 years agocgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE thunk that returns...
Eric Botcazou [Wed, 23 Jan 2019 11:07:56 +0000 (11:07 +0000)]
cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE thunk that returns by reference...

* cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
thunk that returns by reference, use the type of the return object
of the thunk instead of that of the alias to build the dereference.

From-SVN: r268182

5 years ago[ARC] atomics: Add operand to DMB instruction
Vineet Gupta [Wed, 23 Jan 2019 11:04:19 +0000 (11:04 +0000)]
[ARC] atomics: Add operand to DMB instruction

Atomics use DMB instruction to enforce ordering of loads/stores.
Currently gcc generates DMB w/o any arg which is a no-op. Fix that by
generating DMB 3 which enforces R+W ordering. It is stricter than what
acq/rel expect, but there's no other way.

gcc/

2019-xx-xx  Vineet Gupta <vgupta@synopsys.com>

       * config/arc/atomic.md: Add operand to DMB instruction

From-SVN: r268181

5 years ago[libbacktrace] Use size_t for low_offset/high_offset fields of struct unit
Tom de Vries [Wed, 23 Jan 2019 10:22:43 +0000 (10:22 +0000)]
[libbacktrace] Use size_t for low_offset/high_offset fields of struct unit

2019-01-23  Tom de Vries  <tdevries@suse.de>

* dwarf.c (struct unit): Use size_t for low_offset/high_offset fields.
(units_search, find_unit): Use size_t for offset.
(build_address_map): Use size_t for unit_offset.

From-SVN: r268180

5 years agore PR tree-optimization/88964 (ICE in wide_int_to_tree_1, at tree.c:1561)
Jakub Jelinek [Wed, 23 Jan 2019 08:35:38 +0000 (09:35 +0100)]
re PR tree-optimization/88964 (ICE in wide_int_to_tree_1, at tree.c:1561)

PR tree-optimization/88964
* gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
build_zero_cst instead of build_int_cst.  Return false for loop
invariants which honor signed zeros.

* gfortran.dg/pr88964.f90: New test.

From-SVN: r268179

5 years ago[nvptx, libgomp] Fix cuMemAlloc with size zero
Tom de Vries [Wed, 23 Jan 2019 08:16:56 +0000 (08:16 +0000)]
[nvptx, libgomp] Fix cuMemAlloc with size zero

Consider test-case:
...
int
main (void)
{
  #pragma acc parallel async
  ;
  #pragma acc parallel async
  ;
  #pragma acc wait

  return 0;
}
...

This fails with:
...
libgomp: cuMemAlloc error: invalid argument
Segmentation fault (core dumped)
...
The cuMemAlloc error is due to the fact that we're try to allocate 0 bytes.

Fix this by preventing calling map_push with size zero argument in nvptx_exec.

This also has the consequence that for the abort-1.c test-case, we end up
calling cuMemFree during map_fini for the struct cuda_map allocated in
map_init, which fails because an abort happened.  Fix this by calling
cuMemFree with CUDA_CALL_NOCHECK in cuda_map_destroy.

2019-01-23  Tom de Vries  <tdevries@suse.de>

PR target/PR88946
* plugin/plugin-nvptx.c (cuda_map_destroy): Use CUDA_CALL_NOCHECK for
cuMemFree.
(nvptx_exec): Don't call map_push if mapnum == 0.
* testsuite/libgomp.oacc-c-c++-common/pr88946.c: New test.

From-SVN: r268178

5 years ago[nvptx, libgomp] Fix assert (!s->map->active) in map_fini
Tom de Vries [Wed, 23 Jan 2019 08:16:42 +0000 (08:16 +0000)]
[nvptx, libgomp] Fix assert (!s->map->active) in map_fini

There are currently two situations where this assert triggers:
...
libgomp/plugin/plugin-nvptx.c: map_fini: Assertion `!s->map->active' failed.
...

First, in abort-1.c, a parallel region triggering an abort:
...
int
main (void)
{
  #pragma acc parallel
  abort ();

  return 0;
}
...

The abort is detected in nvptx_exec as the CUDA_ERROR_ILLEGAL_INSTRUCTION
return status of the cuStreamSynchronize call after kernel launch, which is
then handled by calling non-returning function GOMP_PLUGIN_fatal.
Consequently, the map_pop in nvptx_exec that in case of cuStreamSynchronize
success would remove or inactive the element added by the map_push earlier in
nvptx_exec, does not trigger.  With the element no longer active, but still
marked active and a member of s->map,  we run into the assert during
GOMP_OFFLOAD_fini_device, which is triggered from atexit handler
gomp_target_fini (which is triggered by the GOMP_PLUGIN_fatal mentioned above
calling exit).

Second, in pr88941.c, an async parallel region without wait:
...
int
main (void)
{
  #pragma acc parallel async
  ;

  /* no #pragma acc wait */
  return 0;
}
...

Because nvptx_exec is handling an async region, it does not call map_pop for
the element added by map_push, but schedules an kernel execution completion
event to call map_pop.  Again, we run into the assert during
GOMP_OFFLOAD_fini_device, which is triggered from atexit handler
gomp_target_fini, but the exit in this case is triggered by returning from main.
So either the kernel is still running, or the kernel has completed but the
corresponding event that is supposed to call map_pop is stuck in the event
queue, waiting for an event_gc.

Fix this by removing the assert, and skipping the freeing of device memory if
the map is still marked active (though in the async case, this is more a
workaround than an fix).

2019-01-23  Tom de Vries  <tdevries@suse.de>

PR target/88941
PR target/88939
* plugin/plugin-nvptx.c (cuda_map_destroy): Handle map->active case.
(map_fini): Remove "assert (!s->map->active)".
* testsuite/libgomp.oacc-c-c++-common/pr88941.c: New test.

From-SVN: r268177

5 years ago[nvptx, libgomp] Fix map_push
Tom de Vries [Wed, 23 Jan 2019 08:16:11 +0000 (08:16 +0000)]
[nvptx, libgomp] Fix map_push

The map field of a struct ptx_stream is a FIFO.  The FIFO is implemented as a
single linked list, with pop-from-the-front semantics.

The function map_pop pops an element, either by:
- deallocating the element, if there is more than one element
- or marking the element inactive, if there's only one element

The responsibility of map_push is to push an element to the back, as well as
selecting the element to push, by:
- allocating an element, or
- reusing the element at the front if inactive and big enough, or
- dropping the element at the front if inactive and not big enough, and
  allocating one that's big enough

The current implemention gets at least the first and most basic scenario wrong:

> map = cuda_map_create (size);

We create an element, and assign it to map.

> for (t = s->map; t->next != NULL; t = t->next)
>   ;

We determine the last element in the fifo.

> t->next = map;

We append the new element.

> s->map = map;

But here, we throw away the rest of the FIFO, and declare the FIFO to be just
the new element.

This problem causes the test-case asyncwait-1.c to fail intermittently on some
systems.  The pr87835.c test-case added here is a a minimized and modified
version of asyncwait-1.c (avoiding the kernel construct) that is more likely to
fail.

Fix this by rewriting map_pop more robustly, by:
- seperating the function in two phases: select element, push element
- when reusing or dropping an element, making sure that the element is cleanly
  popped from the queue
- rewriting the push element part in such a way that it can handle all cases
  without needing if statements, such that each line is exercised for each of
  the three cases.

2019-01-23  Tom de Vries  <tdevries@suse.de>

PR target/87835
* plugin/plugin-nvptx.c (map_push): Fix adding of allocated element.
* testsuite/libgomp.oacc-c-c++-common/pr87835.c: New test.

From-SVN: r268176

5 years agoWarray-bounds-2.c: Include headers only if they exist.
Martin Sebor [Wed, 23 Jan 2019 00:23:21 +0000 (17:23 -0700)]
Warray-bounds-2.c: Include headers only if they exist.

gcc/testsuite/ChangeLog:

* c-c++-common/Warray-bounds-2.c: Include headers only if they exist.
* c-c++-common/Warray-bounds-3.c: Make xfails conditional on target
non_strict_align.
* c-c++-common/Wrestrict-2.c: Include headers only if they exist.
* c-c++-common/Wrestrict.c: Make xfails conditional on target
non_strict_align.

From-SVN: r268175

5 years agoDaily bump.
GCC Administrator [Wed, 23 Jan 2019 00:16:27 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r268174

5 years agoFix -fsplit-paths documentation
Segher Boessenkool [Tue, 22 Jan 2019 23:29:39 +0000 (00:29 +0100)]
Fix -fsplit-paths documentation

It is enabled at -O3, but the doc currently says -O2.  This fixes it.

* doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.

From-SVN: r268170

5 years agoc-c++-common/gomp/pr60823-1.c: Change aarch64-*-* target to aarch64*-*-* target.
Steve Ellcey [Tue, 22 Jan 2019 22:37:34 +0000 (22:37 +0000)]
c-c++-common/gomp/pr60823-1.c: Change aarch64-*-* target to aarch64*-*-* target.

2018-01-22  Steve Ellcey  <sellcey@marvell.com>

c-c++-common/gomp/pr60823-1.c: Change aarch64-*-* target
to aarch64*-*-* target.
c-c++-common/gomp/pr60823-3.c: Ditto.
g++.dg/gomp/declare-simd-1.C: Ditto.
g++.dg/gomp/declare-simd-3.C: Ditto.
g++.dg/gomp/declare-simd-4.C: Ditto.
g++.dg/gomp/declare-simd-7.C: Ditto.
g++.dg/gomp/pr88182.C: Ditto.
gcc.dg/gomp/declare-simd-1.c: Ditto.
gcc.dg/gomp/declare-simd-3.c: Ditto.
gcc.dg/gomp/pr59669-2.c: Ditto.
gcc.dg/gomp/pr87895-1.c: Ditto.
gcc.dg/gomp/simd-clones-2.c: Ditto.
gfortran.dg/gomp/declare-simd-2.f90: Ditto.
gfortran.dg/gomp/pr79154-1.f90: Ditto.
gfortran.dg/gomp/pr83977.f90: Ditto.

From-SVN: r268168

5 years agod/dmd: Merge dmd upstream e21c07e84
Iain Buclaw [Tue, 22 Jan 2019 22:30:56 +0000 (22:30 +0000)]
d/dmd: Merge dmd upstream e21c07e84

Fixes bootstrap regression introduced by the previous merge.

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

From-SVN: r268167

5 years agore PR target/88965 (powerpc64le vector builtin hits ICE in verify_gimple)
Jakub Jelinek [Tue, 22 Jan 2019 22:30:44 +0000 (23:30 +0100)]
re PR target/88965 (powerpc64le vector builtin hits ICE in verify_gimple)

PR target/88965
* config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
(rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.

* gcc.target/powerpc/pr88965.c: New test.

From-SVN: r268166

5 years agore PR middle-end/88968 (Stack overflow in gimplify_expr)
Jakub Jelinek [Tue, 22 Jan 2019 22:28:42 +0000 (23:28 +0100)]
re PR middle-end/88968 (Stack overflow in gimplify_expr)

PR middle-end/88968
* gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
non-integral DECL_BIT_FIELD_REPRESENTATIVEs.

* c-omp.c (c_finish_omp_atomic): For bitfield atomics, update type
variable after using BIT_FIELD_REF.

* c-c++-common/gomp/atomic-23.c: New test.

From-SVN: r268165

5 years agore PR target/87064 (libgomp.oacc-fortran/reduction-3.f90 fails starting with r263751)
Jakub Jelinek [Tue, 22 Jan 2019 22:27:32 +0000 (23:27 +0100)]
re PR target/87064 (libgomp.oacc-fortran/reduction-3.f90 fails starting with r263751)

PR target/87064
* config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
Disable for little endian.

From-SVN: r268164

5 years agore PR fortran/88579 (Calculating power of powers of two)
Harald Anlauf [Tue, 22 Jan 2019 21:23:57 +0000 (21:23 +0000)]
re PR fortran/88579 (Calculating power of powers of two)

2019-01-22  Harald Anlauf  <anlauf@gmx.de>

PR fortran/88579
* trans-expr.c (gfc_conv_power_op): Handle cases of (2**e) ** integer
and (- 2**e) ** integer.

2019-01-22  Harald Anlauf  <anlauf@gmx.de>

PR fortran/88579
* gfortran.dg/power_8.f90: New test.

From-SVN: r268163

5 years agopr87906_0.C: Add dg-require-effective-target fpic.
Sandra Loosemore [Tue, 22 Jan 2019 18:36:47 +0000 (13:36 -0500)]
pr87906_0.C: Add dg-require-effective-target fpic.

2019-01-22  Sandra Loosemore  <sandra@codesourcery.com>

gcc/testsuite/
* g++.dg/lto/pr87906_0.C: Add dg-require-effective-target fpic.
* g++.dg/vec-init-1.C: Likewise.
* gcc.dg/pr87793.c: Likewise.

From-SVN: r268162

5 years agopr86397-1.C: Add -fdelete-null-pointer-checks.
Sandra Loosemore [Tue, 22 Jan 2019 18:19:06 +0000 (13:19 -0500)]
pr86397-1.C: Add -fdelete-null-pointer-checks.

2019-01-22  Sandra Loosemore  <sandra@codesourcery.com>

gcc/testsuite/
* g++.dg/cpp0x/pr86397-1.C: Add -fdelete-null-pointer-checks.
* g++.dg/cpp0x/pr86397-2.C: Likewise.

From-SVN: r268161

5 years ago[arm] Further fixes for PR88469
Richard Earnshaw [Tue, 22 Jan 2019 17:56:02 +0000 (17:56 +0000)]
[arm] Further fixes for PR88469

A bitfield that is exactly the same size as an integral type and
naturally aligned will have DECL_BIT_FIELD cleared.  So we need to
check DECL_BIT_FIELD_TYPE to be sure whether or not the underlying
type was declared with a bitfield declaration.

I've also added a test for bitfields that are based on overaligned types.

PR target/88469
gcc:
* config/arm/arm.c (arm_needs_double_word_align): Check
DECL_BIT_FIELD_TYPE.

gcc/testsuite:
* gcc.target/arm/aapcs/bitfield2.c: New test.
* gcc.target/arm/aapcs/bitfield3.c: New test.

From-SVN: r268160

5 years agoFix vect-nop-move.c test
Wilco Dijkstra [Tue, 22 Jan 2019 17:49:46 +0000 (17:49 +0000)]
Fix vect-nop-move.c test

Fix a failing test - changes in Combine mean the test now fails
eventhough the generated code is the same.  Given there are several
AArch64-specific tests for vec-select, remove the scanning of Combine
output.  Committed as trivial fix.

    testsuite/
PR rtl-optimization/87763
* gcc.dg/vect/vect-nop-move.c: Fix testcase on AArch64.

From-SVN: r268159

5 years agoi386: Add mask2 to builtin_description
Hongtao Liu [Tue, 22 Jan 2019 16:20:25 +0000 (16:20 +0000)]
i386: Add mask2 to builtin_description

There are

struct builtin_description
{
  const HOST_WIDE_INT mask;
  const enum insn_code icode;
  const char *const name;
  const enum ix86_builtins code;
  const enum rtx_code comparison;
  const int flag;
};

Since "mask" is used for both ix86_isa_flags and ix86_isa_flags2, buitins
with both flags can't be handled easily.  This patch adds mask2 to
builtin_description to handle it properly.

2019-01-22  Hongtao Liu  <hongtao.liu@intel.com>
    H.J. Lu  <hongjiu.lu@intel.com>

PR target/88909
* config/i386/i386-builtin.def: Add mask2 to all builtin
initializations.  Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
SPECIAL_ARGS.
* config/i386/i386.c (BDESC): Add mask2 to the definition.
(BDESC_FIRST): Likewise.
(define_builtin): Add an argument for mask2.  Updated to handle
both ix86_isa_flags and ix86_isa_flags2.
(define_builtin_const): Likewise.
(define_builtin_pure): Likewise.
(define_builtin2): Deleted.
(define_builtin_const2): Likewise.
(builtin_description): Add a member, mask2.
(bdesc_*): Add mask2 to builtin initializations.
(ix86_init_mmx_sse_builtins): Update calls to def_builtin,
def_builtin_const and def_builtin_pure.  Remove SPECIAL_ARGS2
support.
(ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.

Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>
From-SVN: r268155

5 years agoPR libstdc++/88740 Print assertion messages to stderr
Jonathan Wakely [Tue, 22 Jan 2019 16:08:18 +0000 (16:08 +0000)]
PR libstdc++/88740 Print assertion messages to stderr

PR libstdc++/88740
* testsuite/util/testsuite_hooks.h [stderr] (VERIFY): Use fprintf to
write to stderr instead of using printf.

From-SVN: r268154

5 years agogolang.org/x/tools/go/analysis: pass "gccgo" to types.SizesFor
Ian Lance Taylor [Tue, 22 Jan 2019 15:43:40 +0000 (15:43 +0000)]
golang.org/x/tools/go/analysis: pass "gccgo" to types.SizesFor

    For the gofrontend copy, change calls to types.SizesFor to pass
    "gccgo" rather than "gc".  Leave the asmdecl pass unchanged since that
    pass is gc-specific anyhow.

    This has been fixed in a better way in the external repo by
    https://golang.org/cl/158317 and friends, but that is not in 1.12, so
    use this approach for now.

    Reviewed-on: https://go-review.googlesource.com/c/158842

From-SVN: r268153

5 years agoi386: Load external function address via GOT slot
H.J. Lu [Tue, 22 Jan 2019 14:53:41 +0000 (14:53 +0000)]
i386: Load external function address via GOT slot

With noplt attribute, we load the external function address via the GOT
slot so that linker won't create an PLT entry for extern function address.

gcc/

PR target/88954
* config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
noplt attribute.

gcc/testsuite/

PR target/88954
* gcc.target/i386/pr88954-1.c: New test.
* gcc.target/i386/pr88954-2.c: Likewise.

From-SVN: r268152

5 years ago[arm] PR target/88469 fix incorrect argument passing with 64-bit bitfields
Richard Earnshaw [Tue, 22 Jan 2019 14:03:22 +0000 (14:03 +0000)]
[arm] PR target/88469 fix incorrect argument passing with 64-bit bitfields

Unfortunately another PCS bug has come to light with the layout of
structs whose alignment is dominated by a 64-bit bitfield element.
Such fields in the type list appear to have alignment 1, but in
reality, for the purposes of alignment of the underlying structure,
the alignment is derived from the underlying bitfield's type.  We've
been getting this wrong since support for over-aligned record types
was added several releases back.  Worse still, the existing code may
generate unaligned memory accesses that may fault on some versions of
the architecture.

I've taken the opportunity to add a few more tests that check the
passing arguments with overalignment in the PCS.  Looking through the
existing tests it looked like they were really only checking
self-consistency and not the precise location of the arguments.

PR target/88469

gcc:
* config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
alignment is dominated by a bitfield with 64-bit aligned base type.
(arm_function_arg): Emit a warning if the alignment has changed since
earlier GCC releases.
(arm_function_arg_boundary): Likewise.
(arm_setup_incoming_varargs): Likewise.

gcc/testsuite:
* gcc.target/arm/aapcs/bitfield1.c: New test.
* gcc.target/arm/aapcs/overalign_rec1.c: New test.
* gcc.target/arm/aapcs/overalign_rec2.c: New test.
* gcc.target/arm/aapcs/overalign_rec3.c: New test.

From-SVN: r268151

5 years agoarray_function_5.f90: Fix a dg directive.
Manfred Schwarb [Tue, 22 Jan 2019 13:12:36 +0000 (14:12 +0100)]
array_function_5.f90: Fix a dg directive.

2019-01-22  Manfred Schwarb  <manfred99@gmx.ch>

* gfortran.dg/array_function_5.f90: Fix a dg directive.
* gfortran.dg/block_16.f08: Likewise.
* gfortran.dg/dec_structure_14.f90: Likewise.
* gfortran.dg/namelist_96.f90: Likewise.
* gfortran.dg/newunit_5.f90.f90: Moved to
* gfortran.dg/newunit_5.f90: here.
* gfortran.dg/pdt_28.f03: Likewise.
* gfortran.dg/spread_simplify_1.f90: Likewise.

From-SVN: r268148

5 years agore PR tree-optimization/88862 (ICE in extract_affine, at graphite-sese-to-poly.c...
Richard Biener [Tue, 22 Jan 2019 11:28:56 +0000 (11:28 +0000)]
re PR tree-optimization/88862 (ICE in extract_affine, at graphite-sese-to-poly.c:313)

2019-01-22  Richard Biener  <rguenther@suse.de>

PR tree-optimization/88862
* graphite-scop-detection.c
(scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.

From-SVN: r268147

5 years agoDocument AMD GCN.
Andrew Stubbs [Tue, 22 Jan 2019 10:51:22 +0000 (10:51 +0000)]
Document AMD GCN.

2019-01-22  Andrew Stubbs  <ams@codesourcery.com>

* doc/extend.tex (AMD GCN Function Attributes): New section.
* doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
* doc/invoke.texi (AMD GCN Options): New section.
* doc/md.texi (Constraints for Particular Machines): Add AMD GCN.

From-SVN: r268146

5 years agosparc.c (parc_delegitimize_address): Recognize the GOT register and decoded HIGH...
Eric Botcazou [Tue, 22 Jan 2019 10:20:00 +0000 (10:20 +0000)]
sparc.c (parc_delegitimize_address): Recognize the GOT register and decoded HIGH/LO_SUM combinations for labels in...

* config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
register and decoded HIGH/LO_SUM combinations for labels in PIC mode.

From-SVN: r268145

5 years agoFix overwide shifts in PR/88903 testcase
Tamar Christina [Tue, 22 Jan 2019 10:13:56 +0000 (10:13 +0000)]
Fix overwide shifts in PR/88903 testcase

gcc/testsuite/ChangeLog:

PR/tree-optimization 88903
* gcc.dg/vect/pr88903-1.c: Add explicit &.

From-SVN: r268144

5 years agore PR tree-optimization/88044 (gfortran.dg/transfer_intrinsic_3.f90 hangs after r266171)
Jakub Jelinek [Tue, 22 Jan 2019 09:58:23 +0000 (10:58 +0100)]
re PR tree-optimization/88044 (gfortran.dg/transfer_intrinsic_3.f90 hangs after r266171)

PR tree-optimization/88044
* tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
is false in the first iteration, but !every_iteration, return false
instead of true with niter->niter zero.

From-SVN: r268143

5 years agore PR lto/88422 (collect2.exe: fatal error: lto-wrapper returned 1 exit status: file...
Nidal Faour [Tue, 22 Jan 2019 09:47:52 +0000 (09:47 +0000)]
re PR lto/88422 (collect2.exe: fatal error: lto-wrapper returned 1 exit status: file not recognized: file truncated)

2019-01-22  Nidal Faour  <nidal.faour@wdc.com>

PR lto/88422
* simple-object.c (O_BINARY): Define if not already defined.
(simple_object_copy_lto_debug_sections): Create file in binary
mode.

From-SVN: r268141

5 years agore PR rtl-optimization/88904 (Basic block incorrectly skipped in jump threading.)
Jakub Jelinek [Tue, 22 Jan 2019 09:12:31 +0000 (10:12 +0100)]
re PR rtl-optimization/88904 (Basic block incorrectly skipped in jump threading.)

PR rtl-optimization/88904
* cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
any nonequal registers before processing BB_END (b).

* gcc.c-torture/execute/pr88904.c: New test.

From-SVN: r268140

5 years agore PR target/88905 (ICE: in decompose, at rtl.h:2253 with -mabm and __builtin_popcountll)
Jakub Jelinek [Tue, 22 Jan 2019 09:11:35 +0000 (10:11 +0100)]
re PR target/88905 (ICE: in decompose, at rtl.h:2253 with -mabm and __builtin_popcountll)

PR target/88905
* optabs.c (add_equal_note): Add op0_mode argument, use it instead of
GET_MODE (op0).
(expand_binop_directly, expand_doubleword_clz,
expand_doubleword_popcount, expand_ctz, expand_ffs,
expand_unop_direct, maybe_emit_unop_insn): Adjust callers.

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

From-SVN: r268139

5 years agore PR rtl-optimization/49429 (dse.c change (r175063) causes execution failures)
Jakub Jelinek [Tue, 22 Jan 2019 09:10:25 +0000 (10:10 +0100)]
re PR rtl-optimization/49429 (dse.c change (r175063) causes execution failures)

PR rtl-optimization/49429
PR target/49454
PR rtl-optimization/86334
PR target/88906
* expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
addressable from here...
(emit_block_op_via_libcall): ... to here.

* gcc.target/i386/pr86334.c: New test.
* gcc.target/i386/pr88906.c: New test.

From-SVN: r268138

5 years agotree-vect-loop.c (vect_analyze_loop_operations): Use auto_vec for cost vector to...
Richard Biener [Tue, 22 Jan 2019 08:30:51 +0000 (08:30 +0000)]
tree-vect-loop.c (vect_analyze_loop_operations): Use auto_vec for cost vector to fix memleak.

2019-01-22  Richard Biener  <rguenther@suse.de>

* tree-vect-loop.c (vect_analyze_loop_operations): Use
auto_vec for cost vector to fix memleak.
(vectorize_fold_left_reduction): Properly gather SLP defs.
(vectorizable_comparison): Do not swap operands to properly
gather SLP defs.

From-SVN: r268137

5 years agoMAINTAINERS: add myself.
Jiufu Guo [Tue, 22 Jan 2019 03:16:30 +0000 (03:16 +0000)]
MAINTAINERS: add myself.

ChangLog:

2019-01-21  Jiufu Guo  <guojiufu@linux.ibm.com>

        * MAINTAINERS (Write After Approval): Add myself.

From-SVN: r268136

5 years ago[RS6000] PR88614, output_operand: invalid %z value
Alan Modra [Tue, 22 Jan 2019 02:29:47 +0000 (12:59 +1030)]
[RS6000] PR88614, output_operand: invalid %z value

The direct cause of this PR is the fact that tls_gdld_nomark didn't
handle indirect calls.  Also, most indirect calls were being optimised
back to direct calls anyway, due to tls_gdld_nomark not checking any
of the parallel elements except the first (plus the extra element that
distinguishes this call from normal calls).  There were other unwanted
substitutions too.

So this patch attacks the problem of handling special calls in a
different way.  Rather than adding another element to the call insn
parallel to distinguish -mno-tls-markers __tls_get_addr calls from any
other calls, we now inspect the second CALL arg.  Each
call_value_nonlocal and call_value_indirect insn now checks for the
tlsgd/ld unspecs when !TARGET_TLS_MARKERS and emits the arg setup
insns.  I disallow the local call patterns since we'll only see local
calls to __tls_get_addr in testcases, and it doesn't seem a good idea
to complicate the patterns just for a minor optimisation.  Sibling
call insns aren't used for libcalls, so none of these insns need to
change.

The patch also fixes a minor problem with -mno-tls-markers
__tls_get_addr calls causing a "li 3,0" instruction to be emitted
prior to the arg setup instructions, due to using a libcall with one
arg.  That isn't correct when the call insn itself sets up its arg.
Also, I've tidied the V4 secure-plt calls, generating them in
rs6000_call_sysv rather than by splitting in rs6000.md.  The
CALL_INSN_FUNCTION_USAGE added in edit_tls_call_insn is no longer
needed (since git commit 0a4b5c66df9).

On the subject of unwanted substitutions, I also saw a
_GLOBAL_OFFSET_TABLE_ symbol_ref being substituted for the GOT reg,
resulting in code like "addi 3,_GLOBAL_OFFSET_TABLE_,tls_ld@got@tlsld".
Fixed by the unspec_tls change.

PR target/88614
* config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
stays a reg.  Allow a const_int.
* config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
* config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
(IS_NOMARK_TLSGETADDR): Define.
* config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
(rs6000_output_tlsargs): New function.
(rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
__tls_get_addr call takes an arg.
(rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
* config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
delete split..
(call_value_nonlocal_sysv): ..or here, delete split.
(tls_gdld_nomark): Delete.
(call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
predicate.  Call rs6000_output_tlsargs.  Adjust length to suit.
(call_value_nonlocal_sysv): Likewise.
(call_value_nonlocal_sysv_secure): Likewise.
(call_value_nonlocal_aix): Likewise.
(call_value_indirect_aix): Likewise.
(call_value_indirect_elfv2): Likewise.
(call_value_local32, call_value_local64): Disable for no-mark tls.
(call_value_local_aix): Likewise.

From-SVN: r268135

5 years agoDaily bump.
GCC Administrator [Tue, 22 Jan 2019 00:16:36 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r268134

5 years agore PR go/88927 (Bootstrap failure on arm in libgo starting with r268084)
Ian Lance Taylor [Tue, 22 Jan 2019 00:06:44 +0000 (00:06 +0000)]
re PR go/88927 (Bootstrap failure on arm in libgo starting with r268084)

PR go/88927
    runtime, internal/cpu: fix build for ARM GNU/Linux

    Was failing with

    ../../../libgo/go/internal/cpu/cpu.go:138:2: error: reference to undefined name 'doinit'
      138 |  doinit()
          |  ^

    Fix it by adding in Go 1.12 internal/cpu/cpu_arm.go, and the code in
    runtime that initializes the values.

    Fixes https://gcc.gnu.org/PR88927.

    Reviewed-on: https://go-review.googlesource.com/c/158717

From-SVN: r268131

5 years agolibgo: fix building, and some testing, on Solaris
Ian Lance Taylor [Mon, 21 Jan 2019 23:05:52 +0000 (23:05 +0000)]
libgo: fix building, and some testing, on Solaris

    Restore some of the fixes that were applied to golang_org/x/net/lif
    but were lost when 1.12 moved the directory to internal/x/net/lif.

    Add support for reading /proc to fetch argc/argv/env for c-archive mode.

    Reviewed-on: https://go-review.googlesource.com/c/158640

From-SVN: r268130

5 years agocompiler: stop iterator on error
Ian Lance Taylor [Mon, 21 Jan 2019 22:58:04 +0000 (22:58 +0000)]
compiler: stop iterator on error

    If there is an error reading or parsing an archive header, the
    Archive_iterator code would return a dummy header but would not mark
    itself as done.  The effect is that an invalid archive leads to an
    endless loop reading and re-reading the same archive header.  Avoid
    that by setting the offset to the end of the file, which will cause
    the iterator to == archive_end.

    No test since it doesn't seem worth constructing an invalid archive.

    Reviewed-on: https://go-review.googlesource.com/c/158217

From-SVN: r268129

5 years agore PR c++/88949 (ICE in expand_expr_real_1, at expr.c:10001 with -fopenmp)
Jakub Jelinek [Mon, 21 Jan 2019 22:33:52 +0000 (23:33 +0100)]
re PR c++/88949 (ICE in expand_expr_real_1, at expr.c:10001 with -fopenmp)

PR c++/88949
* optimize.c (cxx_copy_decl): New function.
(clone_body): Use it instead of copy_decl_no_change.

* g++.dg/gomp/pr88949.C: New test.

From-SVN: r268127

5 years ago2019-01-21 Dominique d'Humieres <dominiq@gcc.gnu.org>
Dominique d'Humieres [Mon, 21 Jan 2019 21:43:46 +0000 (22:43 +0100)]
2019-01-21  Dominique d'Humieres  <dominiq@gcc.gnu.org>

* Fix a typo in the previous commit.

From-SVN: r268126

5 years agoclass_66.f90: Fix a dg directive.
Manfred Schwarb [Mon, 21 Jan 2019 21:40:21 +0000 (22:40 +0100)]
class_66.f90: Fix a dg directive.

2019-01-21  Manfred Schwarb  <manfred99@gmx.ch>

* class_66.f90: Fix a dg directive.
* debug/pr35154-stabs.f: Likewise.
* dec_d_lines_3.f: Likewise.
* dec_d_lines_3.f: Likewise.
* dec_structure_12.f90: Likewise.
* dec_structure_15.f90: Likewise.
* deferred_character_31.f90: Likewise.
* dtio_31.f03: Likewise.
* dtio_32.f03: Likewise.
* extends_11.f03: Likewise.
* integer_plus.f90: Likewise.
* pdt_25.f03: Likewise.
* pr58968.f: Likewise.
* pr78259.f90: Likewise.
* vect/vect-2.f90: Likewise.
* matmul_const.f90: Likewise.

From-SVN: r268125

5 years agoMerge dmd upstream 180465274
Iain Buclaw [Mon, 21 Jan 2019 21:16:06 +0000 (21:16 +0000)]
Merge dmd upstream 180465274

Reduces the memory footprint of the CTFE interpreter by replacing new
with emplacement new in many places.

gcc/d/ChangeLog:

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

* d-frontend.cc (Compiler::paintAsType): Update for new signature.

From-SVN: r268124

5 years agore PR target/88938 (ICE in extract_insn, at recog.c:2304)
Uros Bizjak [Mon, 21 Jan 2019 20:14:40 +0000 (21:14 +0100)]
re PR target/88938 (ICE in extract_insn, at recog.c:2304)

PR target/88938
* config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
case IX86_BUILTIN_BEXTRI64]: Sanitize operands.

testsuite/ChangeLog:

PR target/88938
* gcc.target/i386/pr88938.c: New test.

From-SVN: r268123

5 years agore PR sanitizer/88901 (ICE when using -fsanitize=pointer-compare)
Jakub Jelinek [Mon, 21 Jan 2019 19:53:04 +0000 (20:53 +0100)]
re PR sanitizer/88901 (ICE when using -fsanitize=pointer-compare)

PR sanitizer/88901
* typeck.c (cp_build_binary_op): Don't instrument
SANITIZE_POINTER_COMPARE if processing_template_decl.
(pointer_diff): Similarly for SANITIZE_POINTER_SUBTRACT.

* g++.dg/asan/pr88901.C: New test.

From-SVN: r268122

5 years agohash-map-tests.c (test_map_of_strings_to_int): Show how to use string contents as...
Michael Ploujnikov [Mon, 21 Jan 2019 19:04:04 +0000 (19:04 +0000)]
hash-map-tests.c (test_map_of_strings_to_int): Show how to use string contents as hash_map keys.

* hash-map-tests.c (test_map_of_strings_to_int): Show how to use
string contents as hash_map keys.

From-SVN: r268121

5 years agoAArch64: Fix big-endian and ILP32 fail for simd-clone test.
Tamar Christina [Mon, 21 Jan 2019 18:03:03 +0000 (18:03 +0000)]
AArch64: Fix big-endian and ILP32 fail for simd-clone test.

gcc/testsuite/ChangeLog:

* g++.dg/vect/simd-clone-7.cc: Fix assembler scan.

--This line, a d those below, will be ignored--

M    gcc/testsuite/ChangeLog
M    gcc/testsuite/g++.dg/vect/simd-clone-7.cc

From-SVN: r268120

5 years agoMakefile.am (noinst_LTLIBRARIES): Rename libzgcj_convience.la to libz_convenience.la.
Iain Buclaw [Mon, 21 Jan 2019 17:23:58 +0000 (17:23 +0000)]
Makefile.am (noinst_LTLIBRARIES): Rename libzgcj_convience.la to libz_convenience.la.

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

* Makefile.am (noinst_LTLIBRARIES): Rename libzgcj_convience.la to
libz_convenience.la.
* Makefile.in: Regenerate.
* configure.ac: Remove target_all.
* configure: Regenerate.

From-SVN: r268119

5 years agore PR c/88928 (ICE segfault in check_address_or_pointer_of_packed_member since r268075)
Bernd Edlinger [Mon, 21 Jan 2019 17:12:09 +0000 (17:12 +0000)]
re PR c/88928 (ICE segfault in check_address_or_pointer_of_packed_member since r268075)

2019-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR c/88928
        * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
        for rvalue context.  Handle rvalues correctly.  Use min_align_of_type
        instead of TYPE_ALIGN.
        (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
        Use min_align_of_type instead of TYPE_ALIGN_UNIT.  Check for NULL
        pointer from TYPE_STUB_DECL.

testsuite:
2019-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR c/88928
        * c-c++-common/Waddress-of-packed-member-1.c: New test case.
        * gcc.dg/pr88928.c: New test case.

From-SVN: r268118

5 years agoutf-array.c: Allow wchar_t to be printed as {long ,short ,}{unsigned ,}int.
Jakub Jelinek [Mon, 21 Jan 2019 16:58:04 +0000 (17:58 +0100)]
utf-array.c: Allow wchar_t to be printed as {long ,short ,}{unsigned ,}int.

* gcc.dg/utf-array.c: Allow wchar_t to be printed as
{long ,short ,}{unsigned ,}int.

From-SVN: r268117

5 years agoFix leak in splay-tree
Tom Tromey [Mon, 21 Jan 2019 15:25:29 +0000 (15:25 +0000)]
Fix leak in splay-tree

Philippe Waroquiers noticed a memory leak in gdb, which he tracked
down to a bug in splay-tree.  splay_tree_remove does not call the
`delete_key' function when it removes the old node; but it should.

I looked at every splay tree in GCC and there is only one that passes
a non-NULL delete function -- the one in lto.c.  That file does not
call splay_tree_remove.  So, I think this is safe to check in.

I re-ran the LTO tests to double check.

libiberty/
* splay-tree.c (splay_tree_remove): Delete the key if necessary.

From-SVN: r268116

5 years agore PR tree-optimization/88934 (ICE: verify_gimple failed (Error: mismatching comparis...
Richard Biener [Mon, 21 Jan 2019 14:49:42 +0000 (14:49 +0000)]
re PR tree-optimization/88934 (ICE: verify_gimple failed (Error: mismatching comparison operand types))

2019-01-21  Richard Biener  <rguenther@suse.de>

PR tree-optimization/88934
* tree-vect-slp.c (vect_mask_constant_operand_p): Always look
at the possibly non-constant operand.
(vect_get_constant_vectors): Adjust.

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

From-SVN: r268115

5 years agoi386: Move Intel intrinsics head files to <immintrin.h>
H.J. Lu [Mon, 21 Jan 2019 12:23:49 +0000 (12:23 +0000)]
i386: Move Intel intrinsics head files to <immintrin.h>

According to Intel Intrinsics Guide:

https://software.intel.com/sites/landingpage/IntrinsicsGuide/

Intel intrinsics should be available by including <immintrin.h>.  This
patch moves remaining Intel intrinsics head files from <x86intrin.h> to
<immintrin.h>.

PR target/71659
* config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
* config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
instead of _X86INTRIN_H_INCLUDED.
* onfig/i386/clwbintrin.h: Likewise.
* config/i386/pkuintrin.h: Likewise.
* config/i386/prfchwintrin.h: Likewise.
* config/i386/rdseedintrin.h: Likewise.
* config/i386/wbnoinvdintrin.h: Likewise.
* config/i386/xsavecintrin.h: Likewise.
* config/i386/xsavesintrin.h: Likewise.
* config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
* config/i386/xsaveintrin.h: Likewise.
* config/i386/xsaveoptintrin.h: Likewise.
* config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
<prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
<xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
<clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
<wbnoinvdintrin.h> and <pkuintrin.h> to ...
* config/i386/immintrin.h: Here.

From-SVN: r268113

5 years agore PR ipa/86590 (Codegen is poor when passing std::string by value with _GLIBCXX_EXTE...
Jakub Jelinek [Mon, 21 Jan 2019 11:55:52 +0000 (12:55 +0100)]
re PR ipa/86590 (Codegen is poor when passing std::string by value with _GLIBCXX_EXTERN_TEMPLATE undefined)

PR libstdc++/86590
* include/bits/char_traits.h (__constant_string_p,
__constant_char_array_p): Use __builtin_is_constant_evaluated if
available.

From-SVN: r268112

5 years agoFix after P0600.
Ulrich Drepper [Mon, 21 Jan 2019 11:47:30 +0000 (11:47 +0000)]
Fix after P0600.

gcc/testsuite/ChangeLog
2019-02-20  Ulrich Drepper  <drepper@redhat.com>

Fix after P0600.
* g++.dg/init/new39.C: Don't just ignore result of new.

libstdc++/ChangeLog
2019-02-20  Ulrich Drepper  <drepper@redhat.com>

Implement C++20 P0600r1.
* include/backward/hash_map: Add nodiscard attribute to empty.
* include/backward/hash_set: Likewise.
* backward/hashtable.h: Likewise.
* include/bits/basic_string.h: Likewise.
* include/bits/forward_list.h: Likewise.
* include/bits/hashtable.h: Likewise.
* include/bits/regex.h: Likewise.
* include/bits/stl_deque.h: Likewise.
* include/bits/stl_list.h: Likewise.
* include/bits/stl_map.h: Likewise.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/bits/stl_queue.h: Likewise.
* include/bits/stl_set.h: Likewise.
* include/bits/stl_stack.h: Likewise.
* include/bits/stl_tree.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/unordered_map.h: Likewise.
* include/bits/unordered_set.h: Likewise.
* include/debug/array: Likewise.
* include/experimental/any: Likewise.
* include/experimental/bits/fs_path.h: Likewise.
* include/experimental/internet: Likewise.
* include/experimental/string_view: Likewise.
* include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp:
Likewise.
* include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp:
Likewise.
* include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp:
Likewise.
* include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp:
Likewise.
* include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp:
Likewise.
* include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp:
Likewise.
* include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp:
Likewise.
* include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp:
Likewise.
* include/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp:
Likewise.
*
include/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp:
Likewise.
* include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp:
Likewise.
* include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp:
Likewise.
* include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp:
Likewise.
* include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hp:
Likewise.
* include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp:
Likewise.
* include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp:
Likewise.
* include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp:
Likewise.
* include/ext/pb_ds/detail/tree_trace_base.hpp: Likewise.
* include/ext/pb_ds/trie_policy.hpp: Likewise.
* include/ext/rope: Likewise.
* include/ext/slist: Likewise.
* include/ext/vstring.h: Likewise.
* include/profile/array: Likewise.
* include/std/array: Likewise.
* include/tr1/array: Likewise.
* include/tr1/hashtable.h: Likewise.
* include/tr1/regex: Likewise.
* include/tr2/dynamic_bitset: Likewise.
* include/bits/alloc_traits.h: Add nodiscard attribute to
allocate.
* include/experimental/memory_resource: Likewise.
* include/ext/alloc_traits.h: Likewise.
* include/ext/array_allocator.h: Likewise.
* include/ext/bitmap_allocator.h: Likewise.
* include/ext/debug_allocator.h: Likewise.
* include/ext/extptr_allocator.h: Likewise.
* include/ext/mt_allocator.h: Likewise.
* include/ext/new_allocator.h: Likewise.
* include/ext/pool_allocator.h: Likewise.
* include/ext/throw_allocator.h: Likewise.
* include/std/scoped_allocator: Likewise.
* libsupc++/eh_alloc.cc: Likewise.
* include/std/future: Add nodiscard attribute to async.
* libsupc++/new: Add nodiscard attribute to new.

From-SVN: r268111

5 years agoDaily bump.
GCC Administrator [Mon, 21 Jan 2019 00:16:36 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r268110

5 years agoLimit AA walking in IPA summary generation
Martin Jambor [Sun, 20 Jan 2019 20:17:02 +0000 (21:17 +0100)]
Limit AA walking in IPA summary generation

2019-01-20  Martin Jambor  <mjambor@suse.cz>

PR ipa/87615
* ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
with aa_walk_budget.
* cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
aa_walk_budget_p parameter.
* ipa-fnsummary.c (unmodified_parm_1): New parameter fbi.  Limit AA
walk.  Updated all callers.
(unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
(eliminated_by_inlining_prob): New parameter fbi, pass it on to
unmodified_parm.
(will_be_nonconstant_expr_predicate): New parameter fbi, removed
parameter info.  Extract info from fbi.  Pass fbi to recursive calls
and to unmodified_parm.
(phi_result_unknown_predicate): New parameter fbi, removed parameter
info, updated call to will_be_nonconstant_expr_predicate.
(param_change_prob): New parameter fbi, limit AA walking.
(analyze_function_body): Initialize aa_walk_budget in fbi.  Update
calls to various above functions.
* ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
parameter.  Use it to limit AA walking.
* ipa-prop.c (detect_type_change_from_memory_writes): New parameter
fbi, limit AA walk.
(detect_type_change): New parameter fbi, pass it on to
detect_type_change_from_memory_writes.
(detect_type_change_ssa): Likewise.
(aa_overwalked): Removed.
(parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
accordingly, adjust to the neew AA limiting scheme.
(parm_ref_data_preserved_p): Likewise.
(ipa_compute_jump_functions_for_edge): Adjust call to
get_dynamic_type.
(ipa_analyze_call_uses): Likewise.
(ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
(ipa_analyze_node): Initialize aa_walk_budget.
(ipcp_transform_function): Likewise.
* tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
to get_dynamic_type.

From-SVN: r268107

5 years ago[D] Don't predefine GNU_StackGrowsDown on every target.
Iain Buclaw [Sun, 20 Jan 2019 18:53:13 +0000 (18:53 +0000)]
[D] Don't predefine GNU_StackGrowsDown on every target.

Every back-end defines STACK_GROWS_DOWNWARD, the condition should
instead be  checking whether it was defined as 1 or 0.

gcc/d/ChangeLog:

2019-01-20  Iain Buclaw  <ibuclaw@gdcproject.org>

* d-builtins.cc (d_init_versions): Check value of
STACK_GROWS_DOWNWARD.

From-SVN: r268106

5 years ago* allocfail.c (main): Increase portability of printf statement.
Gerald Pfeifer [Sun, 20 Jan 2019 15:09:02 +0000 (15:09 +0000)]
* allocfail.c (main): Increase portability of printf statement.

From-SVN: r268105

5 years ago[D] Fix identity comparison for structs with complex float fields.
Iain Buclaw [Sun, 20 Jan 2019 12:55:38 +0000 (12:55 +0000)]
[D] Fix identity comparison for structs with complex float fields.

gcc/d/ChangeLog:

2019-01-20  Iain Buclaw  <ibuclaw@gdcproject.org>

* d-codegen.cc (identity_compare_p): Return false if seen built-in
type with padding.
(build_float_identity): Moved here from expr.cc.
(lower_struct_comparison): Handle real and complex types.
* d-tree.h (build_float_identity): New.
* expr.cc (build_float_identity): Move to d-codegen.cc.

gcc/testsuite/ChangeLog:

2019-01-20  Iain Buclaw  <ibuclaw@gdcproject.org>

* gdc.dg/runnable.d: Add more tests for comparing complex types.

From-SVN: r268104

5 years ago[D] Fix IdentityExp comparison for complex floats.
Johannes Pfau [Sun, 20 Jan 2019 12:15:47 +0000 (12:15 +0000)]
[D] Fix IdentityExp comparison for complex floats.

gcc/d/ChangeLog:

2019-01-20  Johannes Pfau  <johannespfau@gmail.com>

* expr.cc (build_float_identity): New function.
(ExprVisitor::visit(IdentityExp)): Add support for complex types.

gcc/testsuite/ChangeLog:

2019-01-20  Johannes Pfau  <johannespfau@gmail.com>

* gdc.dg/runnable.d: Add tests for comparing complex types.

From-SVN: r268103

5 years agovector long long and vector double require vsx support.
Kewen Lin [Sun, 20 Jan 2019 05:58:47 +0000 (05:58 +0000)]
vector long long and vector double require vsx support.

gcc/testsuite/ChangeLog

    * gcc.target/powerpc/altivec_vld_vst_addr.c: Remove, split into
    altivec_vld_vst_addr-1.c and altivec_vld_vst_addr-2.c.
    * gcc.target/powerpc/altivec_vld_vst_addr-1.c: New test.
    * gcc.target/powerpc/altivec_vld_vst_addr-2.c: Ditto.

From-SVN: r268102

5 years agoDaily bump.
GCC Administrator [Sun, 20 Jan 2019 00:16:26 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r268101

5 years ago[multiple changes]
Dominique d'Humieres [Sat, 19 Jan 2019 21:45:43 +0000 (22:45 +0100)]
[multiple changes]

2019-01-19  Dominique d'Humieres  <dominiq@gcc.gnu.org>

PR fortran/37835
* resolve.c (resolve_types): Add !flag_automatic.
* symbol.c (gfc_add_save): Silence warnings.

2019-01-18  Dominique d'Humieres  <dominiq@gcc.gnu.org>

PR fortran/37835
* gfortran.dg/no-automatic.f90: New test.

From-SVN: r268098

5 years agore PR fortran/77960 (ICE in gfc_conv_ss_startstride, at fortran/trans-array.c:3966)
Steven G. Kargl [Sat, 19 Jan 2019 21:18:26 +0000 (21:18 +0000)]
re PR fortran/77960 (ICE in gfc_conv_ss_startstride, at fortran/trans-array.c:3966)

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

PR fortran/77960
* io.c (match_io_element): input-item cannot be an external function.

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

PR fortran/77960
* gfortran.dg/pr77960.f90: New test.

From-SVN: r268097

5 years agore PR fortran/56789 (Handling of contiguous dummy arguments)
Thomas Koenig [Sat, 19 Jan 2019 20:06:41 +0000 (20:06 +0000)]
re PR fortran/56789 (Handling of contiguous dummy arguments)

2018-01-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
Paul Thomas  <pault@gcc.gnu.org>

PR fortran/56789
* trans-expr.c (gfc_conv_procedure_call): Call
gfc_conv_subref_array_arg if the formal arg is contiguous
and the actual arg may not be.

2018-01-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
Paul Thomas  <pault@gcc.gnu.org>

PR fortran/56789
* gfortran.dg/contiguous_3.f90: Make code compilant.  Remove
scan-tree tests that fail with patch.
* gfortran.dg/contiguous_8.f90: New test.

Co-Authored-By: Paul Thomas <pault@gcc.gnu.org>
From-SVN: r268096

5 years agoaarch64.c (aarch64_stack_protect_guard): Move outside of #if CHECKING_P code.
Jakub Jelinek [Sat, 19 Jan 2019 17:28:29 +0000 (18:28 +0100)]
aarch64.c (aarch64_stack_protect_guard): Move outside of #if CHECKING_P code.

* config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
outside of #if CHECKING_P code.

From-SVN: r268095

5 years agoClaw back some of the code size regression in 548.exchange2_r
Richard Sandiford [Sat, 19 Jan 2019 12:59:51 +0000 (12:59 +0000)]
Claw back some of the code size regression in 548.exchange2_r

This patch tries harder to detect cases in which the inner dimension
of an array access is invariant, such as:

     x(i, :) = 100

It fixes some of the code size regression in 548.exchange2_r, with
size improving by 5% compared to before the patch.  Of the two other
SPEC 2017 tests affected by loop versioning, 554.roms_r improved by a
trivial amount (0.3%) and 549.fotonik3d_r didn't change.  All three
results are with -Ofast -flto.

2019-01-19  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
New function, split out from...
(loop_versioning::analyze_stride): ...here.
(loop_versioning::find_per_loop_multiplication): Use gassign.
(loop_versioning::analyze_term_using_scevs): Return a success code.
(loop_versioning::analyze_arbitrary_term): New function.
(loop_versioning::analyze_address_fragment): Use
analyze_arbitrary_term if all else fails.

gcc/testsuite/
* gfortran.dg/loop_versioning_1.f90: Bump the number of identified
inner strides.
* gfortran.dg/loop_versioning_9.f90: New test.
* gfortran.dg/loop_versioning_10.f90: Likewise.

From-SVN: r268093

5 years agore PR fortran/88871 (ICE segmentation fault in f951)
Thomas Koenig [Sat, 19 Jan 2019 11:03:28 +0000 (11:03 +0000)]
re PR fortran/88871 (ICE segmentation fault in f951)

2019-01-17  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/88871
* resolve.c (resolve_ref): Fix logic for removal of
reference.

From-SVN: r268092

5 years agore PR fortran/88902 (ICE: Segmentation fault (in DFS::DFS_write_tree_body))
Jakub Jelinek [Sat, 19 Jan 2019 08:43:12 +0000 (09:43 +0100)]
re PR fortran/88902 (ICE: Segmentation fault (in DFS::DFS_write_tree_body))

PR fortran/88902
* trans-decl.c (gfc_get_symbol_decl): Don't add length to function
or parent function if it has been added there already.

* gfortran.dg/pr88902.f90: New test.

From-SVN: r268091

5 years agoattr-nonstring-3.c: Remove an xfail.
Martin Sebor [Sat, 19 Jan 2019 00:46:56 +0000 (00:46 +0000)]
attr-nonstring-3.c: Remove an xfail.

gcc/testsuite/ChangeLog:

* c-c++-common/attr-nonstring-3.c: Remove an xfail.

From-SVN: r268090

5 years agoDaily bump.
GCC Administrator [Sat, 19 Jan 2019 00:16:34 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r268089

5 years agoPR libstdc++/88782 avoid ODR problems in std::make_shared
Jonathan Wakely [Fri, 18 Jan 2019 21:28:48 +0000 (21:28 +0000)]
PR libstdc++/88782 avoid ODR problems in std::make_shared

The old version of _Sp_counted_ptr_inplace::_M_get_deleter (up to GCC
8.2.0) expects to be passed a real std::typeinfo object, so mixing that
with the new definition of the __shared_ptr constructor (which always
passes the fake tag) leads to accessing the fake object as a real
std::typeinfo. Instead of trying to make it safe to mix the old and new
definitions, just stop using that function. By passing a reference to
__shared_ptr::_M_ptr to the __shared_count constructor it can be set
directly, without needing to obtain the pointer via the _M_get_deleter
back-channel. This avoids a virtual dispatch (which fixes PR 87514).

This means that code built against new libstdc++ headers doesn't use
_M_get_deleter at all, and so make_shared works the same whether RTTI is
enabled or not.

Also change _M_get_deleter so that it checks for a real type_info object
even when RTTI is disabled, by calling a library function. Unless
libstdc++ itself is built without RTTI that library function will be
able to test if it's the right type_info. This means the new definition
of _M_get_deleter can handle both the fake type_info tag and a real
type_info object, even if built without RTTI.

If linking to objects built against older versions of libstdc++ then if
all objects use -frtti or all use -fno-rtti, then the caller of
_M_get_deleter and the definition of _M_get_deleter will be consistent
and it will work. If mixing -frtti with -fno-rtti it can still fail if
the linker picks an old definition of _M_get_deleter and an old
__shared_ptr constructor that are incompatible. In that some or all
objects might need to be recompiled.

PR libstdc++/87514
PR libstdc++/87520
PR libstdc++/88782
* config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export new symbol.
* include/bits/shared_ptr.h
(shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...))
(allocate_shared): Change to use new tag type.
* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_eq):
Declare new member function.
(_Sp_alloc_shared_tag): Define new type.
(_Sp_counted_ptr_inplace): Declare __shared_count<_Lp> as a friend.
(_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Use
_Sp_make_shared_tag::_S_eq to check type_info.
(__shared_count(Ptr, Deleter),__shared_count(Ptr, Deleter, Alloc)):
Constrain to prevent being called with _Sp_alloc_shared_tag.
(__shared_count(_Sp_make_shared_tag, const _Alloc&, Args&&...)):
Replace constructor with ...
(__shared_count(Tp*&, _Sp_alloc_shared_tag<_Alloc>, Args&&...)): Use
reference parameter so address of the new object can be returned to
the caller. Obtain the allocator from the tag type.
(__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Replace
constructor with ...
(__shared_ptr(_Sp_alloc_shared_tag<Alloc>, Args&&...)): Pass _M_ptr
to the __shared_count constructor.
(__allocate_shared): Change to use new tag type.
* src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq): Define.

From-SVN: r268086

5 years agoPR c++/88875 - error with explicit list constructor.
Jason Merrill [Fri, 18 Jan 2019 20:35:57 +0000 (15:35 -0500)]
PR c++/88875 - error with explicit list constructor.

In my patch for CWG issue 2267, I changed reference_binding to clear
CONSTRUCTOR_IS_DIRECT_INIT on the argument init-list.  But that breaks if
there's another candidate for which CONSTRUCTOR_IS_DIRECT_INIT is correct.
So instead, let's encode in the conversion that we want to override the
flag.

* call.c (reference_binding): Don't modify EXPR.  Set
need_temporary_p on the ck_user conversion for a temporary.
(convert_like_real): Check it.

From-SVN: r268085

5 years agolibgo: update to Go1.12beta2
Ian Lance Taylor [Fri, 18 Jan 2019 19:04:36 +0000 (19:04 +0000)]
libgo: update to Go1.12beta2

    Reviewed-on: https://go-review.googlesource.com/c/158019

gotools/:
* Makefile.am (go_cmd_vet_files): Update for Go1.12beta2 release.
(GOTOOLS_TEST_TIMEOUT): Increase to 600.
(check-runtime): Export LD_LIBRARY_PATH before computing GOARCH
and GOOS.
(check-vet): Copy golang.org/x/tools into check-vet-dir.
* Makefile.in: Regenerate.

gcc/testsuite/:
* go.go-torture/execute/names-1.go: Stop using debug/xcoff, which
is no longer externally visible.

From-SVN: r268084

5 years agors6000: Fix *movsi_from_df (PR88892)
Segher Boessenkool [Fri, 18 Jan 2019 18:01:56 +0000 (19:01 +0100)]
rs6000: Fix *movsi_from_df (PR88892)

The memory store instructions (stfs[u][x], stxssp[x]) can result in
garbage if the value to be stored isn't already a valid single
precision floating point number.  So we cannot use this here.

PR target/88892
* config/rs6000/rs6000.md (*movsi_from_df): Allow only register
operands.

From-SVN: r268083

5 years agore PR libbacktrace/88890 (libbacktrace on 32-bit system with _FILE_OFFSET_BITS =...
Ian Lance Taylor [Fri, 18 Jan 2019 17:13:59 +0000 (17:13 +0000)]
re PR libbacktrace/88890 (libbacktrace on 32-bit system with _FILE_OFFSET_BITS == 64)

PR libbacktrace/88890
* mmapio.c (backtrace_get_view): Change size parameter to
uint64_t.  Check that value fits in size_t.
* read.c (backtrace_get_view): Likewise.
* internal.h (backtrace_get_view): Update declaration.
* elf.c (elf_add): Pass shstrhdr->sh_size to backtrace_get_view.

From-SVN: r268082

5 years agore PR c++/86926 (ICE for a recursive generic lambda)
Marek Polacek [Fri, 18 Jan 2019 16:42:57 +0000 (16:42 +0000)]
re PR c++/86926 (ICE for a recursive generic lambda)

PR c++/86926
* g++.dg/cpp1z/constexpr-lambda23.C: New test.

From-SVN: r268080

5 years agoUpdate PR middle-end/88587 tests
H.J. Lu [Fri, 18 Jan 2019 14:33:46 +0000 (14:33 +0000)]
Update PR middle-end/88587 tests

It is wrong to use -m32 in dg-options.  { target ia32 } should be used
instead.  Also add -fno-pic to g++.target/i386/pr88587.C since it is
invalid with PIC.

PR middle-end/88587
* g++.target/i386/pr88587.C (dg-do): Add { target ia32 }.
(dg-options): Replace -m32 with -fno-pic.
* gcc.target/i386/mvc13.c (dg-do): Add { target ia32 }.
(dg-options): Remove -m32.

From-SVN: r268079

5 years agore PR tree-optimization/88903 (wrong-code with SLP vectorized shift)
Richard Biener [Fri, 18 Jan 2019 13:13:21 +0000 (13:13 +0000)]
re PR tree-optimization/88903 (wrong-code with SLP vectorized shift)

2019-01-18  Richard Biener  <rguenther@suse.de>

PR tree-optimization/88903
* tree-vect-stmts.c (vectorizable_shift): Verify we see all
scalar stmts a SLP shift amount is composed of when detecting
shifts by scalars.

* gcc.dg/vect/pr88903-1.c: New testcase.
* gcc.dg/vect/pr88903-2.c: Likewise.

From-SVN: r268076

5 years agoc-family: Update unaligned adress of packed member check
H.J. Lu [Fri, 18 Jan 2019 13:05:18 +0000 (13:05 +0000)]
c-family: Update unaligned adress of packed member check

Check unaligned pointer conversion and strip NOPS.

gcc/c-family/

PR c/51628
PR c/88664
* c-common.h (warn_for_address_or_pointer_of_packed_member):
Remove the boolean argument.
* c-warn.c (check_address_of_packed_member): Renamed to ...
(check_address_or_pointer_of_packed_member): This.  Also
warn pointer conversion.
(check_and_warn_address_of_packed_member): Renamed to ...
(check_and_warn_address_or_pointer_of_packed_member): This.
Also warn pointer conversion.
(warn_for_address_or_pointer_of_packed_member): Remove the
boolean argument.  Don't check pointer conversion here.

gcc/c

PR c/51628
PR c/88664
* c-typeck.c (convert_for_assignment): Upate the
warn_for_address_or_pointer_of_packed_member call.

gcc/cp

PR c/51628
PR c/88664
* call.c (convert_for_arg_passing): Upate the
warn_for_address_or_pointer_of_packed_member call.
* typeck.c (convert_for_assignment): Likewise.

gcc/testsuite/

PR c/51628
PR c/88664
* c-c++-common/pr51628-33.c: New test.
* c-c++-common/pr51628-35.c: New test.
* c-c++-common/pr88664-1.c: Likewise.
* c-c++-common/pr88664-2.c: Likewise.
* gcc.dg/pr51628-34.c: Likewise.

From-SVN: r268075

5 years agoPR target/88799 Add +mp and +sec extensions to ARMv7-a
Richard Earnshaw [Fri, 18 Jan 2019 11:49:56 +0000 (11:49 +0000)]
PR target/88799 Add +mp and +sec extensions to ARMv7-a

Most armv7-a implementations support a number of basic extensions to
the architecture which are not particularly important to the compiler,
but can matter if code contains inline assembly.  This patch adds
support for these extensions, based on the capabilities that GAS
already provides for the appropriate CPUs.  For the purposes of
multilib selection we ignore these extensions entirely and map the
extended architecture versions down to the base versions we have
already support for.

gcc:
PR target/88799
* config/arm/arm-cpus.in (mp): New feature.
(sec): New feature.
(fgroup ARMv7ve): Add mp and sec features.
(arch armv7-a): Add options to allow mp and sec extensions.
(cpu generic-armv7-a): Add options to allow mp and sec extensions.
(cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
extenstions to the base architecture.
(cpu cortex-a8): Add sec extension to the base architecture.
(cpu marvell-pj4): Add mp and sec extensions to the base architecture.
* config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
variants down to the base v7-a varaint.
* config/arm/t-multilib (v7_a_arch_variants): New variable.
* doc/invoke.texi (ARM Options): Add +mp and +sec to the list
of permitted extensions for -march=armv7-a and for
-mcpu=generic-armv7-a.

testsuite:
* gcc.target/arm/multilib.exp (config "aprofile"): Add tests for
mp and sec extensions to armv7-a.

From-SVN: r268072

5 years agoBump version of __gcov_indirect_call_profiler function as there was ABI change.
Martin Liska [Fri, 18 Jan 2019 11:32:53 +0000 (12:32 +0100)]
Bump version of __gcov_indirect_call_profiler function as there was ABI change.

2019-01-18  Martin Liska  <mliska@suse.cz>

* params.def: Fix comment.
* tree-profile.c (gimple_init_gcov_profiler): Bump function
name.
(gimple_gen_ic_func_profiler): Likewise.
2019-01-18  Martin Liska  <mliska@suse.cz>

* gcc.dg/no_profile_instrument_function-attr-1.c: Update
expected function name.
2019-01-18  Martin Liska  <mliska@suse.cz>

* libgcov-profiler.c (__gcov_indirect_call_profiler_v2): Rename
to ...
(__gcov_indirect_call_profiler_v3): ... this.
* libgcov.h (__gcov_indirect_call_profiler_v2): Likewise.
(__gcov_indirect_call_profiler_v3): Likewise.
* Makefile.in: Bump function name.

From-SVN: r268071

5 years agoUpdate error message prefix in libgcov profiling.
Martin Liska [Fri, 18 Jan 2019 11:31:45 +0000 (12:31 +0100)]
Update error message prefix in libgcov profiling.

2019-01-18  Martin Liska  <mliska@suse.cz>

* libgcov-driver.c (GCOV_PROF_PREFIX): Define.
(gcov_version): Use in gcov_error.
(merge_one_data): Likewise.
(dump_one_gcov): Likewise.

From-SVN: r268070

5 years agoDescribe better version mismatch in libgcov driver.
Martin Liska [Fri, 18 Jan 2019 11:30:56 +0000 (12:30 +0100)]
Describe better version mismatch in libgcov driver.

2019-01-18  Martin Liska  <mliska@suse.cz>

* libgcov-driver.c (gcov_version_string): New function.
(gcov_version): Convert version integer into string.

From-SVN: r268069

5 years ago[AArch64] Add support for system register based stack protector canary access
Ramana Radhakrishnan [Fri, 18 Jan 2019 10:32:40 +0000 (10:32 +0000)]
[AArch64] Add support for system register based stack protector canary access

2019-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
        * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
        and put in error checks for stack protector guard options.
        (aarch64_stack_protect_guard): New.
        (TARGET_STACK_PROTECT_GUARD): Define.
        * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
        (reg_stack_protect_address<mode>): New.
        (stack_protect_set): Adjust for SSP_GLOBAL.
        (stack_protect_test): Likewise.
        * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
        (-mstack-protector-guard): Likewise.
        (-mstack-protector-guard-offset): Likewise.

From-SVN: r268068

5 years agore PR tree-optimization/86214 (Strongly increased stack usage)
Jakub Jelinek [Fri, 18 Jan 2019 10:07:27 +0000 (11:07 +0100)]
re PR tree-optimization/86214 (Strongly increased stack usage)

PR tree-optimization/86214
* tree-inline.h (struct copy_body_data): Add
add_clobbers_to_eh_landing_pads member.
* tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
(copy_edges_for_bb): Call it if EH edge destination is <
id->add_clobbers_to_eh_landing_pads.  Fix a comment typo.
(expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
if flag_stack_reuse != SR_NONE and clear it afterwards.

* g++.dg/opt/pr86214-1.C: New test.
* g++.dg/opt/pr86214-2.C: New test.

From-SVN: r268067

5 years ago[ARM][testsuite] follow-up to PR target/52813 and target/11807 fix.
Christophe Lyon [Fri, 18 Jan 2019 09:57:41 +0000 (09:57 +0000)]
[ARM][testsuite] follow-up to PR target/52813 and target/11807 fix.

2019-01-18  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/arm/pr77904.c: Add dg-warning for sp clobber.

From-SVN: r268066

5 years agoPR target/85596 Add --with-multilib-list doc for aarch64
Christophe Lyon [Fri, 18 Jan 2019 09:20:41 +0000 (09:20 +0000)]
PR target/85596 Add --with-multilib-list doc for aarch64

2019-01-18  Christophe Lyon  <christophe.lyon@linaro.org>

PR target/85596
* doc/install.texi (with-multilib-list): Document for aarch64.

From-SVN: r268065

5 years agore PR target/88734 (AArch64's ACLE intrinsics give an ICE instead of compile error...
Jakub Jelinek [Fri, 18 Jan 2019 09:15:36 +0000 (10:15 +0100)]
re PR target/88734 (AArch64's ACLE intrinsics give an ICE instead of compile error when option mismatch.)

PR target/88734
* config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
(("..."))) with ("...").

From-SVN: r268064

5 years agoReapply:
Jakub Jelinek [Fri, 18 Jan 2019 09:14:18 +0000 (10:14 +0100)]
Reapply:

2018-12-15  Jakub Jelinek  <jakub@redhat.com>

PR target/88489
* gcc.target/i386/avx512vl-vfixupimmsd-2.c: New test.
* gcc.target/i386/avx512vl-vfixupimmss-2.c: New test.

From-SVN: r268063

5 years agoDocument atomic fetch and nand
Sebastian Huber [Fri, 18 Jan 2019 08:38:06 +0000 (08:38 +0000)]
Document atomic fetch and nand

Copy code example for fetch and nand from "Legacy __sync Built-in
Functions for Atomic Memory Access" to "Built-in Functions for Memory
Model Aware Atomic Operations".

gcc/

* doc/extend.texi (Built-in Functions for Memory Model Aware
Atomic Operations): Document atomic fetch and nand.

From-SVN: r268062

5 years agoRTEMS/Ada: Remove RTEMS quirk
Sebastian Huber [Fri, 18 Jan 2019 08:34:00 +0000 (08:34 +0000)]
RTEMS/Ada: Remove RTEMS quirk

The new network stack (libbsd) supports IPv6.

gcc/ada

* s-oscons-tmplt.c (AF_INET6): Do not undefine for RTEMS.

From-SVN: r268061

5 years agoReset proper type on vector types (PR middle-end/88587).
Martin Liska [Fri, 18 Jan 2019 07:41:05 +0000 (08:41 +0100)]
Reset proper type on vector types (PR middle-end/88587).

2019-01-18  Martin Liska  <mliska@suse.cz>
    Richard Biener  <rguenther@suse.de>

PR middle-end/88587
* cgraph.h (create_version_clone_with_body): Add new argument
with attributes.
* cgraphclones.c (cgraph_node::create_version_clone): Add
DECL_ATTRIBUTES to a newly created decl.  And call
valid_attribute_p so that proper cl_target_optimization_node
is set for the newly created declaration.
* multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
for declaration.
(expand_target_clones): Do not call valid_attribute_p, it must
be already done.
* tree-inline.c (copy_decl_for_dup_finish): Reset mode for
vector types.
2019-01-18  Martin Liska  <mliska@suse.cz>

PR middle-end/88587
* g++.target/i386/pr88587.C: New test.
* gcc.target/i386/mvc13.c: New test.

Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r268060

5 years agoAdd self to MAINTAINERS
Li Jia He [Fri, 18 Jan 2019 05:37:27 +0000 (05:37 +0000)]
Add self to MAINTAINERS

2019-01-18  Li Jia He  <helijia@gcc.gnu.org>

    * MAINTAINERS (Write After Approval): Add myself.

From-SVN: r268059

5 years agoPR c++/86205 - ICE with ?: of throw and template-id.
Jason Merrill [Fri, 18 Jan 2019 03:58:22 +0000 (22:58 -0500)]
PR c++/86205 - ICE with ?: of throw and template-id.

My patch for 64372 removed a bogus lvalue-rvalue conversion for one arm of a
?: expression where the other arm is a throw.  But we still need to require
any overload to be resolved, even though we aren't getting that from
decay_conversion anymore.

* pt.c (resolve_nondeduced_context_or_error): Split out from...
* typeck.c (decay_conversion): ...here.
* call.c (build_conditional_expr_1): Use it.

From-SVN: r268058

5 years agore PR go/88202 (FAIL: runtime/pprof)
Ian Lance Taylor [Fri, 18 Jan 2019 03:29:38 +0000 (03:29 +0000)]
re PR go/88202 (FAIL: runtime/pprof)

PR go/88202
    runtime: in sigprof, skip to sigtrampgo if we don't find sigtramp

    Fixes https://gcc.gnu.org/PR88202

    Reviewed-on: https://go-review.googlesource.com/c/158218

From-SVN: r268057