]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
5 years agoClean up MPX-related stuff.
marxin [Wed, 13 Feb 2019 13:49:34 +0000 (13:49 +0000)] 
Clean up MPX-related stuff.

2019-02-13  Martin Liska  <mliska@suse.cz>

* builtins.h (expand_builtin_with_bounds): Remove declaration.
* calls.c (struct arg_data): Remove special_slot, pointer_arg
and pointer_offset fields.
(initialize_argument_information): Remove usage of dead
fields.
* cgraph.h (struct cgraph_thunk_info): Remove
add_pointer_bounds_args.
* cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
fields.
(cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
fields.
* config/i386/i386.c (ix86_function_arg_advance): Remove
unrelated comment.
(struct builtin_isa): Remove leaf_p and nothrow_p fields.
(def_builtin):  Remove usage of dead
fields.
(ix86_add_new_builtins): Likewise.
* ipa-fnsummary.c (compute_fn_summary): Likewise.
* ipa-icf.c (sem_function::equals_wpa): Likewise.
(sem_function::init): Likewise.
(sem_variable::merge): Likewise.
* ipa-visibility.c (function_and_variable_visibility): Likewise.
* ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
* lto-cgraph.c (lto_output_node): Likewise.
(lto_output_varpool_node): Likewise.
(input_node): Likewise.
(input_varpool_node): Likewise.
* lto-streamer-out.c (lto_output): Likewise.
* tree-inline.c (expand_call_inline): Remove usage of
assign_stmts.
* tree-inline.h (struct copy_body_data): Likewise.
* varpool.c (varpool_node::dump): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268844 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-02-13 Jakub Jelinek <jakub@redhat.com>
jakub [Wed, 13 Feb 2019 13:32:00 +0000 (13:32 +0000)] 
2019-02-13  Jakub Jelinek  <jakub@redhat.com>

PR middle-end/89303
* tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
into pt->vars_contains_escaped_heap instead of setting
pt->vars_contains_escaped_heap to it.

2019-02-13  Jonathan Wakely  <jwakely@redhat.com>
    Jakub Jelinek  <jakub@redhat.com>

PR middle-end/89303
* g++.dg/torture/pr89303.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268843 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix -fdec simplification (PR fortran/88649).
marxin [Wed, 13 Feb 2019 13:04:56 +0000 (13:04 +0000)] 
Fix -fdec simplification (PR fortran/88649).

2019-02-13  Martin Liska  <mliska@suse.cz>

PR fortran/88649
* resolve.c (resolve_operator): Initialize 't' right
after function entry.  Skip switch (e->value.op.op)
for -fdec operands that become function calls.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268842 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR middle-end/89281
jakub [Wed, 13 Feb 2019 12:12:09 +0000 (12:12 +0000)] 
PR middle-end/89281
* optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
INTVAL (size), compare it to GET_MODE_MASK instead of
1 << GET_MODE_BITSIZE.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268841 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago/cp
paolo [Wed, 13 Feb 2019 10:34:49 +0000 (10:34 +0000)] 
/cp
2019-02-13  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/88986
* decl.c (make_typename_type): Allow for TYPE_PACK_EXPANSION as
context (the first argument).
* pt.c (tsubst, case TYPENAME_TYPE): Handle TYPE_PACK_EXPANSION
as context.

/testsuite
2019-02-13  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/88986
* g++.dg/cpp1z/using4.C: New.
* g++.dg/cpp1z/using5.C: Likewise.
* g++.dg/cpp1z/using6.C: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268839 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR target/89290
jakub [Wed, 13 Feb 2019 08:45:37 +0000 (08:45 +0000)] 
PR target/89290
* config/i386/predicates.md (x86_64_immediate_operand): Allow
TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
-mcmodel=large.

* gcc.target/i386/pr89290.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268837 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibphobos: Fallback on UnwindBacktrace if LibBacktrace not defined.
ibuclaw [Wed, 13 Feb 2019 07:14:46 +0000 (07:14 +0000)] 
libphobos: Fallback on UnwindBacktrace if LibBacktrace not defined.

In the gcc.backtrace module, either one of LibBacktrace or
UnwindBacktrace will always be defined.  Giving UnwindBacktrace a higher
precedence over the libc backtrace as the default handler because the
latter depends on a rt.backtrace module that is not compiled in.

libphobos/ChangeLog:

* libdruntime/core/runtime.d (defaultTraceHandler): Give
UnwindBacktrace handler precedence over backtrace.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268836 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRemove a barrier when EDGE_CROSSING is removed (PR lto/88858).
marxin [Wed, 13 Feb 2019 06:57:38 +0000 (06:57 +0000)] 
Remove a barrier when EDGE_CROSSING is removed (PR lto/88858).

2019-02-13  Martin Liska  <mliska@suse.cz>

PR lto/88858
* cfgrtl.c (remove_barriers_from_footer): New function.
(try_redirect_by_replacing_jump): Use it.
(cfg_layout_redirect_edge_and_branch): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268835 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agors6000: Add support for the vec_sbox_be, vec_cipher_be etc. builtins.
luoxhu [Wed, 13 Feb 2019 06:31:01 +0000 (06:31 +0000)] 
rs6000: Add support for the vec_sbox_be, vec_cipher_be etc. builtins.

The 5 new builtins vec_sbox_be, vec_cipher_be, vec_cipherlast_be, vec_ncipher_be
and vec_ncipherlast_be only support vector unsigned char type parameters.
Add new instruction crypto_vsbox_<mode> and crypto_<CR_insn>_<mode> to handle
them accordingly, where the new mode CR_vqdi can be expanded to vector unsigned
long long for none _be postfix builtins or vector unsigned char for _be postfix
builtins.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268834 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Wed, 13 Feb 2019 00:16:15 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268833 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR go/89193
ian [Wed, 13 Feb 2019 00:10:06 +0000 (00:10 +0000)] 
PR go/89193
* Makefile.am (mostlyclean-local): Avoid getting an error from
chmod.  Remove check-vet-dir and gocache-test.
* Makefile.in: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268830 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
pthaugen [Tue, 12 Feb 2019 22:03:00 +0000 (22:03 +0000)] 
* doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
-maltivec. Delete -maltivec=be and -maltivec=le documentation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268829 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago syscall: don't assume that WIFCONTINUED is defined
ian [Tue, 12 Feb 2019 21:29:52 +0000 (21:29 +0000)] 
syscall: don't assume that WIFCONTINUED is defined

    It's not defined on the Hurd.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268828 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/89144 - link error with constexpr initializer_list.
jason [Tue, 12 Feb 2019 21:18:51 +0000 (21:18 +0000)] 
PR c++/89144 - link error with constexpr initializer_list.

In this PR, we were unnecessarily rejecting a constexpr initializer_list
with no elements.  This seems like a fairly useless degenerate case, but it
makes sense to avoid allocating an underlying array at all if there are no
elements and instead use a null pointer, like the initializer_list default
constructor.

If the (automatic storage duration) list does have initializer elements, we
continue to reject the declaration, because the initializer_list ends up
referring to an automatic storage duration temporary array, which is not a
suitable constant initializer.  If we make it static, it should be OK
because we refer to a static array.  The second hunk fixes that case.  It
also means we won't diagnose some real errors in templates, but those
diagnostics aren't required, and we'll get them when the template is
instantiated.

* call.c (convert_like_real) [ck_list]: Don't allocate a temporary
array for an empty list.
* typeck2.c (store_init_value): Don't use cxx_constant_init in a
template.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268827 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoi386: Revert revision 268678 and revision 268657
hjl [Tue, 12 Feb 2019 19:00:35 +0000 (19:00 +0000)] 
i386: Revert revision 268678 and revision 268657

i386 backend has

INT_MODE (OI, 32);
INT_MODE (XI, 64);

So, XI_MODE represents 64 INTEGER bytes = 64 * 8 = 512 bit operation,
in case of const_1, all 512 bits set.

We can load zeros with narrower instruction, (e.g. 256 bit by inherent
zeroing of highpart in case of 128 bit xor), so TImode in this case.

Some targets prefer V4SF mode, so they will emit float xorps for zeroing

Then the introduction of AVX512F fubared everything by overloading the
meaning of insn mode.

How should we use INSN mode,  MODE_XI, in standard_sse_constant_opcode
and patterns which use standard_sse_constant_opcode? 2 options:

1.  MODE_XI should only used to check if EXT_REX_SSE_REG_P is true
in any register operand.  The operand size must be determined by operand
itself , not by MODE_XI.  The operand encoding size should be determined
by the operand size, EXT_REX_SSE_REG_P and AVX512VL.
2. MODE_XI should be used to determine the operand encoding size.
EXT_REX_SSE_REG_P and AVX512VL should be checked for encoding
instructions.

gcc/

PR target/89229
* config/i386/i386.md (*movoi_internal_avx): Revert revision
268678 and revision 268657.
(*movti_internal): Likewise.

gcc/testsuite/

PR target/89229
* gcc.target/i386/pr89229-1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268811 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibphobos: Merge upstream phobos 791c5d240
ibuclaw [Tue, 12 Feb 2019 18:28:04 +0000 (18:28 +0000)] 
libphobos: Merge upstream phobos 791c5d240

Adds missing HPPA support in std.experimental.allocator.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268810 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoS/390: Reject invalid Q/R/S/T addresses after LRA
iii [Tue, 12 Feb 2019 14:51:39 +0000 (14:51 +0000)] 
S/390: Reject invalid Q/R/S/T addresses after LRA

The following insn:

(insn (set (reg:DI %r2)
           (sign_extend:DI (mem:SI
            (const:DI (plus:DI (symbol_ref:DI ("*.LC0"))
                               (const_int 16)))))))

is correctly recognized by LRA as RIL alternative of extendsidi2
define_insn.  However, when recognition runs after LRA, it returns RXY
alternative, which is incorrect, since the offset 16 points past the
end of of *.LC0 literal pool entry.  Such addresses are normally
rejected by s390_decompose_address ().

This inconsistency confuses annotate_constant_pool_refs: the selected
alternative makes it proceed with annotation, only to find that the
annotated address is invalid, causing ICE.

This patch fixes the root cause, namely, that s390_check_qrst_address ()
behaves differently during and after LRA.

gcc/ChangeLog:

2019-02-12  Ilya Leoshkevich  <iii@linux.ibm.com>

PR target/89233
* config/s390/s390.c (s390_decompose_address): Update comment.
(s390_check_qrst_address): Reject invalid address forms after
LRA.

gcc/testsuite/ChangeLog:

2019-02-12  Ilya Leoshkevich  <iii@linux.ibm.com>

PR target/89233
* gcc.target/s390/pr89233.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268798 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2018-01-12 Bill Schmidt <wschmidt@linux.ibm.com>
wschmidt [Tue, 12 Feb 2019 14:24:58 +0000 (14:24 +0000)] 
2018-01-12  Bill Schmidt  <wschmidt@linux.ibm.com>

* gcc.target/powerpc/vec-sld-modulo.c: Require p8vector_hw.
* gcc.target/powerpc/vec-srad-modulo.c: Likewise.
* gcc.target/powerpc/vec-srd-modulo.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268797 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[libbacktrace] Handle bsearch with NULL base in dwarf_lookup_pc
vries [Tue, 12 Feb 2019 14:00:59 +0000 (14:00 +0000)] 
[libbacktrace] Handle bsearch with NULL base in dwarf_lookup_pc

The call to bsearch in dwarf_lookup_pc can have NULL as base argument when
the nmemb argument is 0.  The base argument is required to be pointing to the
initial member of an array of nmemb objects.  It is not specified what
constitutes a valid pointer to an array of 0 objects, but glibc declares base
with attribute non-null, so the NULL will trigger a sanitizer runtime error.

Fix this by only calling bsearch if nmemb != 0.

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

PR libbacktrace/81983
* dwarf.c (dwarf_lookup_pc): Don't call bsearch if nmemb == 0.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268796 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRevert a hunk from r261322 (PR lto/88876).
marxin [Tue, 12 Feb 2019 13:46:41 +0000 (13:46 +0000)] 
Revert a hunk from r261322 (PR lto/88876).

2019-02-12  Martin Liska  <mliska@suse.cz>

PR lto/88876
* ipa-pure-const.c (propagate_pure_const): Revert hunk as
we need default values of funct_state for a function that
is not optimized.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268795 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix splay tree KEY leak detected in GDB test gdb.base/macscp.exp
tromey [Tue, 12 Feb 2019 13:02:48 +0000 (13:02 +0000)] 
Fix splay tree KEY leak detected in GDB test gdb.base/macscp.exp

When a node is removed from a splay tree, the splay tree was
not using the function splay_tree_delete_key_fn to release the key.
This was causing a leak, fixed by Tom Tromey.

This patch fixes another key leak, that happens when a key equal to
a key already present is inserted.  In such a case, we have to release
the old KEY.
Note that this is based on the assumption that the caller always
allocates a new KEY when doing an insert.

Also, clarify the documentation about when the release functions are
called.

2019-02-11  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

* splay-tree.h (splay_tree_delete_key_fn): Update comment.
(splay_tree_delete_value_fn): Likewise.

libiberty/ChangeLog
2019-02-11  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

* splay-tree.c (splay_tree_insert): Also release old KEY in case
of insertion of a key equal to an already present key.
(splay_tree_new_typed_alloc): Update comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268793 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * asan.c (asan_expand_mark_ifn): Take into account the alignment of
ebotcazou [Tue, 12 Feb 2019 12:23:08 +0000 (12:23 +0000)] 
* asan.c (asan_expand_mark_ifn): Take into account the alignment of
the object to pick the size of stores on strict-alignment platforms.

* config/sparc/sparc.md (*movsi_insn): Minor tweak.
(*movdi_insn_sp32): Likewise.
(*movdi_insn_sp64): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268792 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR lto/88777
hubicka [Tue, 12 Feb 2019 11:25:11 +0000 (11:25 +0000)] 
PR lto/88777
* cgraphunit.c (analyze_functions): Clear READONLY flag for external
types that needs constructiong.
* tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268791 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-02-12 Richard Biener <rguenther@suse.de>
rguenth [Tue, 12 Feb 2019 09:29:39 +0000 (09:29 +0000)] 
2019-02-12  Richard Biener  <rguenther@suse.de>

PR tree-optimization/89253
* tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
duplicate the loop.

* gfortran.dg/pr89253.f: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268790 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolinemap_line_start: protect against location_t overflow (PR lto/88147)
dmalcolm [Tue, 12 Feb 2019 01:09:31 +0000 (01:09 +0000)] 
linemap_line_start: protect against location_t overflow (PR lto/88147)

PR lto/88147 reports an assertion failure due to a bogus location_t value
when adding a line to a pre-existing line map, when there's a large
difference between the two line numbers.

For some "large differences", this leads to a location_t value that exceeds
LINE_MAP_MAX_LOCATION, in which case linemap_line_start returns 0.  This
isn't ideal, but at least should lead to safe degradation of location
information.

However, if the difference is very large, it's possible for the line
number offset (relative to the start of the map) to be sufficiently large
that overflow occurs when left-shifted by the column-bits, and hence
the check against the LINE_MAP_MAX_LOCATION limit fails, leading to
a seemingly-valid location_t value, but encoding the wrong location.  This
triggers the assertion failure:
  linemap_assert (SOURCE_LINE (map, r) == to_line);

The fix (thanks to Martin) is to check for overflow when determining
whether to reuse an existing map, and to not reuse it if it would occur.

gcc/ChangeLog: David Malcolm  <dmalcolm@redhat.com>
PR lto/88147
* input.c (selftest::test_line_offset_overflow): New selftest.
(selftest::input_c_tests): Call it.

libcpp/ChangeLog: Martin Liska  <mliska@suse.cz>
PR lto/88147
* line-map.c (linemap_line_start): Don't reuse the existing line
map if the line offset is sufficiently large to cause overflow
when computing location_t values.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268789 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Tue, 12 Feb 2019 00:16:20 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268788 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago mksysinfo: remove incorrect quotes in st_fsid handling for Hurd
ian [Tue, 12 Feb 2019 00:15:34 +0000 (00:15 +0000)] 
mksysinfo: remove incorrect quotes in st_fsid handling for Hurd

    Also stop converting st_dev on Hurd; it shouldn't appear, but if it
    somehow does we don't want to convert it.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268785 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/89241 - ICE with __func__ in lambda in template.
jason [Mon, 11 Feb 2019 23:05:16 +0000 (23:05 +0000)] 
PR c++/89241 - ICE with __func__ in lambda in template.

When we're instantiating a generic lambda, its enclosing context will
have already been instantiated, so we need to look for that as well.

* pt.c (enclosing_instantiation_of): Also check
instantiated_lambda_fn_p for the template context.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268784 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/89212 - ICE converting nullptr to pointer-to-member-function.
mpolacek [Mon, 11 Feb 2019 20:03:43 +0000 (20:03 +0000)] 
PR c++/89212 - ICE converting nullptr to pointer-to-member-function.
* pt.c (tsubst_copy_and_build) <case CONSTRUCTOR>: Return early for
null member pointer value.

* g++.dg/cpp0x/nullptr40.C: New test.
* g++.dg/cpp0x/nullptr41.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268781 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/88977
jakub [Mon, 11 Feb 2019 20:00:16 +0000 (20:00 +0000)] 
PR c++/88977
* pt.c (convert_nontype_argument): Pass true as manifestly_const_eval
to maybe_constant_value calls.

* g++.dg/cpp2a/is-constant-evaluated7.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268780 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * typeck2.c (digest_init_r): Remove commented code.
mpolacek [Mon, 11 Feb 2019 19:46:54 +0000 (19:46 +0000)] 
* typeck2.c (digest_init_r): Remove commented code.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268779 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * fi.po, fr.po: Update.
jsm28 [Mon, 11 Feb 2019 19:05:33 +0000 (19:05 +0000)] 
* fi.po, fr.po: Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268778 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[COMMITTED] Fix pthread errors in pr86637-2.c
wilco [Mon, 11 Feb 2019 18:14:37 +0000 (18:14 +0000)] 
[COMMITTED] Fix pthread errors in pr86637-2.c

Fix test errors on targets which do not support pthreads.

Committed as obvious.

    testsuite/
PR tree-optimization/86637
* gcc.c-torture/compile/pr86637-2.c: Test pthread and graphite target.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268777 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPR tree-optimization/88771 - Misleading -Werror=array-bounds error
msebor [Mon, 11 Feb 2019 17:44:05 +0000 (17:44 +0000)] 
PR tree-optimization/88771 - Misleading -Werror=array-bounds error

gcc/ChangeLog:

PR tree-optimization/88771
* gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
when -Wstringop-overflow is set.
(builtin_memref::builtin_memref): Adjust excessive upper bound
only when lower bound is not excessive.
(maybe_diag_overlap): Detect and diagnose excessive bounds via
-Wstringop-ovefflow.
(maybe_diag_offset_bounds): Rename...
(maybe_diag_access_bounds): ...to this.
(check_bounds_or_overlap): Adjust for name change above.

gcc/testsuite/ChangeLog:

PR tree-optimization/88771
* gcc.dg/Wstringop-overflow-8.c: New test.
* gcc.dg/Wstringop-overflow-9.c: New test.
* gcc.dg/Warray-bounds-40.c: New test.
* gcc.dg/builtin-stpncpy.c: Adjust.
* gcc.dg/builtin-stringop-chk-4.c: Adjust.
* g++.dg/opt/memcpy1.C: Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268775 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPR c++/87996 - size of array is negative error when SIZE_MAX/2 < sizeof(array) <...
msebor [Mon, 11 Feb 2019 17:35:17 +0000 (17:35 +0000)] 
PR c++/87996 - size of array is negative error when SIZE_MAX/2 < sizeof(array) <= SIZE_MAX

gcc/ChangeLog:

PR c++/87996
* builtins.c (max_object_size): Move from here...
* builtins.h (max_object_size): ...and here...
* tree.c (max_object_size): ...to here...
* tree.h (max_object_size): ...and here.

gcc/c-family/ChangeLog:

PR c++/87996
* c-common.c (invalid_array_size_error): New function.
(valid_array_size_p): Call it.  Handle size as well as type.
* c-common.h (valid_constant_size_p): New function.
(enum cst_size_error): New type.

gcc/cp/ChangeLog:

PR c++/87996
* decl.c (compute_array_index_type_loc): Preserve signed sizes
for diagnostics.  Call valid_array_size_p instead of error.
* init.c (build_new_1): Compute size for diagnostic.  Call
invalid_array_size_error
(build_new): Call valid_array_size_p instead of error.

gcc/testsuite/ChangeLog:

PR c++/87996
* c-c++-common/array-5.c: New test.
* c-c++-common/pr68107.c: Adjust text of diagnostics.
* g++.dg/init/new38.C: Same.
* g++.dg/init/new43.C: Same.
* g++.dg/init/new44.C: Same.
* g++.dg/init/new46.C: Same.
* g++.dg/other/large-size-array.C: Same.
* g++.dg/other/new-size-type.C: Same.
* g++.dg/template/array30.C: Same.
* g++.dg/template/array32.C: New test.
* g++.dg/template/dependent-name3.C: Adjust.
* gcc.dg/large-size-array-3.c: Same.
* gcc.dg/large-size-array-5.c: Same.
* gcc.dg/large-size-array.c: Same.
* g++.old-deja/g++.brendan/array1.C: Same.
* g++.old-deja/g++.mike/p6149.C: Same.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268774 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agogcc/testsuite/ChangeLog:
msebor [Mon, 11 Feb 2019 17:07:41 +0000 (17:07 +0000)] 
gcc/testsuite/ChangeLog:

* gcc.dg/tree-prof/inliner-1.c: Correct comments.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268773 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoArm: Update tests after register allocation changes. (PR/target 88560)
tnfchris [Mon, 11 Feb 2019 16:54:18 +0000 (16:54 +0000)] 
Arm: Update tests after register allocation changes. (PR/target 88560)

After the register allocator changes of r268705 we need to update a few tests
with new output.

In all cases the compiler is now generating the expected code, since the tests
are all float16 testcases using a hard-floar abi, we expect that actual fp16
instructions are used rather than using integer loads and stores.  Because of
we also save on some mov.f16s that were being emitted before to move between
the two.

The aapcs cases now match the f32 cases in using floating point operations.

gcc/testsuite/Changelog

PR middle-end/88560
* gcc.target/arm/armv8_2-fp16-move-1.c: Update assembler scans.
* gcc.target/arm/fp16-aapcs-1.c: Likewise.
* gcc.target/arm/fp16-aapcs-3.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268772 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[gcc]
wschmidt [Mon, 11 Feb 2019 16:50:33 +0000 (16:50 +0000)] 
[gcc]

2019-02-11  Bill Schmidt  <wschmidt@linux.ibm.com>

* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
for correct semantics.

[gcc/testsuite]

2019-02-11  Bill Schmidt  <wschmidt@linux.ibm.com>

* gcc.target/powerpc/vec-sld-modulo.c: New.
* gcc.target/powerpc/vec-srad-modulo.c: New.
* gcc.target/powerpc/vec-srd-modulo.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268771 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[RS6000] No inline PLT for V4 bss-plt, implement -mno-pltseq
amodra [Mon, 11 Feb 2019 15:19:59 +0000 (15:19 +0000)] 
[RS6000] No inline PLT for V4 bss-plt, implement -mno-pltseq

Inline PLT calls need PLT to be an array of addresses.  PowerPC 32-bit
bss-plt works differently, so this patch disables inline PLT calls
when -mbss-plt.  The patch also adds support for a new -mno-pltseq
option, which may be required when linking with -mbss-plt code.

* doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
-mlongcall and -mpltseq.
(RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
(RS/6000 and PowerPC Options <-mpltseq>): Document.
* config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
* config/rs6000/sysv4.opt (mpltseq): New option.
* config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
(SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
support is lacking.  Don't allow -mpltseq with -mbss-plt.
* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
-mpltseq given for ELFv1.
* config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
Only use UNSPEC_PLTSEQ for inline PLT calls.
(rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments.  Only
use UNSPEC_PLTSEQ for inline PLT calls.
(rs6000_indirect_call_template_1, rs6000_longcall_ref),
(rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
* config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
(pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
(pltseq_mtctr_<mode>): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268770 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPR libstdc++/89023 fix test that fails when <omp.h> not available
redi [Mon, 11 Feb 2019 12:56:59 +0000 (12:56 +0000)] 
PR libstdc++/89023 fix test that fails when <omp.h> not available

Instead of a single test that only checks whether <regex> can be
included in Parallel Mode, add tests for each of C++11/C++14/C++17 that
check whether <bits/extc++.h> is compatible with _GLIBCXX_PARALLEL.
This increases the coverage to (almost) all headers.

If <omp.h> is not available then the tests will trivially pass, because
we don't care about compatibility with _GLIBCXX_PARALLEL in that case.

PR libstdc++/89023
* testsuite/17_intro/headers/c++2011/parallel_mode.cc: New test.
* testsuite/17_intro/headers/c++2014/parallel_mode.cc: New test.
* testsuite/17_intro/headers/c++2017/parallel_mode.cc: New test.
* testsuite/28_regex/headers/regex/parallel_mode.cc: Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268769 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRestore .init_array etc. detection on 64-bit Solaris
ro [Mon, 11 Feb 2019 12:06:19 +0000 (12:06 +0000)] 
Restore .init_array etc. detection on 64-bit Solaris

* acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
Solaris ld.
* configure: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268768 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAdd AMD GCN maintainers
ams [Mon, 11 Feb 2019 11:31:43 +0000 (11:31 +0000)] 
Add AMD GCN maintainers

2019-02-11  Andrew Stubbs  <ams@codesourcery.com>

* MAINTAINERS (amdgcn port): Add myself and Julian Brown.
(Write After Approval): Remove myself and Julian.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268767 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR bootstrap/88714
jakub [Mon, 11 Feb 2019 10:39:59 +0000 (10:39 +0000)] 
PR bootstrap/88714
* config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
instead of r.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268766 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * function.c (assign_parm_setup_block): Use the stored
hp [Mon, 11 Feb 2019 09:03:51 +0000 (09:03 +0000)] 
* function.c (assign_parm_setup_block): Use the stored
size, not the passed size, when allocating stack-space,
also for a parameter with alignment larger than
MAX_SUPPORTED_STACK_ALIGNMENT.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268763 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoConstruct ipa_reduced_postorder always for overwritable (PR ipa/89009).
marxin [Mon, 11 Feb 2019 08:13:03 +0000 (08:13 +0000)] 
Construct ipa_reduced_postorder always for overwritable (PR ipa/89009).

2019-02-11  Martin Liska  <mliska@suse.cz>

PR ipa/89009
* ipa-cp.c (build_toporder_info): Remove usage of a param.
* ipa-inline.c (inline_small_functions): Likewise.
* ipa-pure-const.c (propagate_pure_const): Likewise.
(propagate_nothrow): Likewise.
* ipa-reference.c (propagate): Likewise.
* ipa-utils.c (struct searchc_env): Remove unused field.
(searchc): Always search across AVAIL_INTERPOSABLE.
(ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
the only called IPA pure const can properly not propagate
across interposable boundary.
* ipa-utils.h (ipa_reduced_postorder): Remove param.
2019-02-11  Martin Liska  <mliska@suse.cz>

PR ipa/89009
* g++.dg/ipa/pr89009.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268762 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[NDS32] Add memory mode in call pattern.
jasonwucj [Mon, 11 Feb 2019 07:04:00 +0000 (07:04 +0000)] 
[NDS32] Add memory mode in call pattern.

gcc/
* config/nds32/nds32.md (call_internal, call_value_internal,
sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268761 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
hp [Mon, 11 Feb 2019 02:04:02 +0000 (02:04 +0000)] 
* config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
typo.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268760 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoi386: Fix a typo in comments for for "Yd"
hjl [Mon, 11 Feb 2019 01:39:54 +0000 (01:39 +0000)] 
i386: Fix a typo in comments for for "Yd"

config/i386/constraints.md has

(define_register_constraint "Yd"
 "TARGET_AVX512DQ ? ALL_SSE_REGS : TARGET_SSE4_1 ? SSE_REGS : NO_REGS"
 "@internal Any EVEX encodable SSE register (@code{%xmm0-%xmm31}) for AVX512DQ target or any SSE register for SSE4_1 target.")

Comments for "Yd" should mention AVX512DQ, not AVX512BW.

* config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
in comments

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268759 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Mon, 11 Feb 2019 00:16:19 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268758 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibphobos: Merge upstream druntime 2f764ab6
ibuclaw [Sun, 10 Feb 2019 22:10:22 +0000 (22:10 +0000)] 
libphobos: Merge upstream druntime 2f764ab6

Fixes hashing of complex reals, enabling testing of rt.util.typeinfo and
core.internal.hash.

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

libphobos/ChangeLog:

* Makefile.in: Rebuild.
* configure: Rebuild.
* libdruntime/Makefile.am: Test rt.util.typeinfo and
core.internal.convert.
* libdruntime/Makefile.in: Rebuild.
* src/Makefile.in: Rebuild.
* testsuite/Makefile.in: Rebuild.
* testsuite/libphobos.hash/test_hash.d: Update test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268755 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibphobos: Apply core.internal.hash updates from druntime
ibuclaw [Sun, 10 Feb 2019 21:01:24 +0000 (21:01 +0000)] 
libphobos: Apply core.internal.hash updates from druntime

Backported from upstream druntime 2.084

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

libphobos/ChangeLog:

* libdruntime/Makefile.am (DRUNTIME_DSOURCES): Remove rt/util/hash.d
* libdruntime/Makefile.in: Rebuild.
* testsuite/libphobos.aa/aa.exp: New file.
* testsuite/libphobos.aa/test_aa.d: New test.
* testsuite/libphobos.hash/hash.exp: New file.
* testsuite/libphobos.hash/test_hash.d: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268754 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-02-10 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sun, 10 Feb 2019 15:56:41 +0000 (15:56 +0000)] 
2019-02-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/71723
* expr.c (gfc_check_assign): Add argument is_init_expr.  If we are
looking at an init expression, issue error if the target is not a
TARGET and we are not looking at a procedure pointer.
* gfortran.h (gfc_check_assign): Add optional argument
is_init_expr.

2019-02-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/71723
* gfortran.dg/pointer_init_2.f90: Adjust error messages.
* gfortran.dg/pointer_init_6.f90: Likewise.
* gfortran.dg/pointer_init_9.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268749 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-02-10 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sun, 10 Feb 2019 15:52:38 +0000 (15:52 +0000)] 
2019-02-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/71237
* expr.c (gfc_check_assign): Add argument is_init_expr.  If we are
looking at an init expression, issue error if the target is not a
TARGET and we are not looking at a procedure pointer.
* gfortran.h (gfc_check_assign): Add optional argument
is_init_expr.

2019-02-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/71237
* gfortran.dg/pointer_init_2.f90: Adjust error messages.
* gfortran.dg/pointer_init_6.f90: Likewise.
* gfortran.dg/pointer_init_9.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268748 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-02-10 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sun, 10 Feb 2019 15:38:19 +0000 (15:38 +0000)] 
2019-02-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/67679
    * gfortran.dg/warn_undefined_1.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268747 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibphobos: Merge phobos upstream 6c9fb28b0
ibuclaw [Sun, 10 Feb 2019 14:27:17 +0000 (14:27 +0000)] 
libphobos: Merge phobos upstream 6c9fb28b0

Fixes a thread deadlock that occurs in the test runner if libcurl is
missing.

Library fix for https://gcc.gnu.org/PR88654

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268746 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[NDS32] Set default --with-nds32-lib correctly.
jasonwucj [Sun, 10 Feb 2019 12:27:01 +0000 (12:27 +0000)] 
[NDS32] Set default --with-nds32-lib correctly.

gcc/
* config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268744 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR tree-optimization/89268
jakub [Sun, 10 Feb 2019 11:06:58 +0000 (11:06 +0000)] 
PR tree-optimization/89268
* tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
if preds is non-NULL.

* gcc.dg/vect/pr89268.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268743 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR lto/89272
hubicka [Sun, 10 Feb 2019 10:46:43 +0000 (10:46 +0000)] 
PR lto/89272
* tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
polymorphic types.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268742 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[NDS32] Add 'trap' pattern for __builtin_trap ().
jasonwucj [Sun, 10 Feb 2019 09:45:55 +0000 (09:45 +0000)] 
[NDS32] Add 'trap' pattern for __builtin_trap ().

gcc/
* config/nds32/nds32.md (trap): New pattern.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268741 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agod/dmd: Merge upstream dmd 39edbe17e
ibuclaw [Sun, 10 Feb 2019 09:13:26 +0000 (09:13 +0000)] 
d/dmd: Merge upstream dmd 39edbe17e

Backported fix from upstream dmd 2.079 for an internal compiler error
that occurred during semantic analysis on a recursive field initializer.

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

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268740 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[NDS32] Refine register dwarf span.
jasonwucj [Sun, 10 Feb 2019 09:09:19 +0000 (09:09 +0000)] 
[NDS32] Refine register dwarf span.

gcc/
* config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
dwarf span.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268739 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[NDS32] Have nds32_spilt_doubleword to split POST_INC.
jasonwucj [Sun, 10 Feb 2019 09:00:43 +0000 (09:00 +0000)] 
[NDS32] Have nds32_spilt_doubleword to split POST_INC.

gcc/
* config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
to split POST_INC.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268738 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDon't XPASS gnat.dg/lto19.adb
ro [Sun, 10 Feb 2019 08:14:07 +0000 (08:14 +0000)] 
Don't XPASS gnat.dg/lto19.adb

* gnat.dg/lto19.adb: Remove dg-excess-errors.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268737 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[libbacktrace] Add btest_lto
vries [Sun, 10 Feb 2019 03:16:09 +0000 (03:16 +0000)] 
[libbacktrace] Add btest_lto

Add libbacktrace test-case using -flto.

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

* Makefile.am (BUILDTESTS): Add btest_lto.
* Makefile.in: Regenerate.
* btest.c (test1, f2, f3, test3, f22, f23): Declare with
__attribute__((noclone)).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268736 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Sun, 10 Feb 2019 00:16:34 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268735 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * ipa-visibility.c (localize_node): Also do not localize
hubicka [Sat, 9 Feb 2019 21:54:28 +0000 (21:54 +0000)] 
* ipa-visibility.c (localize_node): Also do not localize
LDPR_PREVAILING_DEF_IRONLY_EXP.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268732 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix PR number.
hubicka [Sat, 9 Feb 2019 18:07:12 +0000 (18:07 +0000)] 
Fix PR number.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268729 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR lto/87809
hubicka [Sat, 9 Feb 2019 18:01:03 +0000 (18:01 +0000)] 
PR lto/87809
* tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
instead of type_with_linkage.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268728 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR ipa/88755
hubicka [Sat, 9 Feb 2019 17:56:22 +0000 (17:56 +0000)] 
PR ipa/88755
* params.def (uninlined-function-insns, uninlined-function-time,
uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
bound so we don't get overflows.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268727 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-02-09 Harald Anlauf <anlauf@gmx.de>
anlauf [Sat, 9 Feb 2019 17:25:23 +0000 (17:25 +0000)] 
2019-02-09  Harald Anlauf  <anlauf@gmx.de>

PR fortran/89077
* resolve.c (gfc_resolve_substring_charlen): Check substring
length for constantness prior to general calculation of length.

PR fortran/89077
* gfortran.dg/substr_simplify.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268726 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
acsawdey [Sat, 9 Feb 2019 17:06:12 +0000 (17:06 +0000)] 
2019-02-09  Aaron Sawdey  <acsawdey@linux.ibm.com>

* config/rs6000/rs6000-string.c (expand_compare_loop,
expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
memcmp/strncmp.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268724 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR ipa/88711
hubicka [Sat, 9 Feb 2019 16:28:45 +0000 (16:28 +0000)] 
PR ipa/88711
* gfortran.dg/pr79966.f90: Xfail everwyhere.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268723 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-02-09 Paul Thomas <pault@gcc.gnu.org>
pault [Sat, 9 Feb 2019 11:11:33 +0000 (11:11 +0000)] 
2019-02-09  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/89200
* trans-array.c (gfc_trans_create_temp_array): Set the 'span'
field for derived types.

2019-02-09  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/89200
* gfortran.dg/array_reference_2.f90 : New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268721 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR middle-end/89246
jakub [Sat, 9 Feb 2019 08:55:39 +0000 (08:55 +0000)] 
PR middle-end/89246
* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
If !node->definition and TYPE_ARG_TYPES is non-NULL, use
TYPE_ARG_TYPES instead of DECL_ARGUMENTS.

* gcc.dg/gomp/pr89246-1.c: New test.
* gcc.dg/gomp/pr89246-2.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268718 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAdd noexcept to filesystem::path query functions
redi [Sat, 9 Feb 2019 00:25:39 +0000 (00:25 +0000)] 
Add noexcept to filesystem::path query functions

In the standard these member functions are specified in terms of the
potentially-throwing path decompositions functions, but we implement
them without constructing any new paths or doing anything else that can
throw.

PR libstdc++/71044
* include/bits/fs_path.h (path::has_root_name)
(path::has_root_directory, path::has_root_path)
(path::has_relative_path, path::has_parent_path)
(path::has_filename, path::has_stem, path::has_extension)
(path::is_absolute, path::is_relative, path::_M_find_extension): Add
noexcept.
* src/c++17/fs_path.cc (path::has_root_name)
(path::has_root_directory, path::has_root_path)
(path::has_relative_path, path::has_parent_path)
(path::has_filename, path::_M_find_extension): Add noexcept.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268713 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Sat, 9 Feb 2019 00:16:31 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268712 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[RS6000] Correct save_reg_p
amodra [Fri, 8 Feb 2019 22:20:58 +0000 (22:20 +0000)] 
[RS6000] Correct save_reg_p

Fixes lack of r30 save/restore on

// -m32 -fpic -ftls-model=initial-exec
__thread char* p;
char** f1 (void) { return &p; }

and

// -m32 -fpic -msecure-plt
extern int foo (int);
int f1 (int x) { return foo (x); }

These are both caused by save_reg_p returning false when the pic
offset table reg (r30 for ABI_V4) was used, due to the logic not
exactly matching that in rs6000_emit_prologue to set up r30.

I also noticed that save_reg_p isn't following the comment regarding
calls_eh_return (since svn 267049, git 0edf78b1b2a0), and the comment
needs tweaking too.  For why the revised comment is correct, grep for
saves_all_registers in lra.c, and yes, we do want to save the pic
offset table reg for eh_return.

PR target/88343
* config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
case.  Match logic in rs6000_emit_prologue emitting pic_offset_table
setup.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268708 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR tree-optimization/88739
jakub [Fri, 8 Feb 2019 19:01:37 +0000 (19:01 +0000)] 
PR tree-optimization/88739
* gcc.c-torture/execute/pr88739.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268706 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
vmakarov [Fri, 8 Feb 2019 19:01:10 +0000 (19:01 +0000)] 
2019-02-08  Vladimir Makarov  <vmakarov@redhat.com>

PR middle-end/88560
* lra-constraints.c (process_alt_operands): Don't increase reject
for memory when offset memory is required.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268705 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-02-08 Jozef Lawrynowicz <jozef.l@mittosystems.com>
jozefl [Fri, 8 Feb 2019 16:47:28 +0000 (16:47 +0000)] 
2019-02-08  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

PR testsuite/89258
* gcc.dg/tree-ssa/pr80887.c: Require int32plus.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268704 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoS/390: Implement vector copysign.
rdapp [Fri, 8 Feb 2019 14:25:48 +0000 (14:25 +0000)] 
S/390: Implement vector copysign.

This patch implements the vector copysign operation using vector select and a
signbit mask.

gcc/ChangeLog:

2019-02-08  Robin Dapp  <rdapp@linux.ibm.com>

* config/s390/vector.md: Implement vector copysign.

gcc/testsuite/ChangeLog:

2019-02-08  Robin Dapp  <rdapp@linux.ibm.com>

* gcc.target/s390/vector/vec-copysign-execute.c: New test.
* gcc.target/s390/vector/vec-copysign.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268697 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoexpr.c: Correct indentations in expand_constructor
hjl [Fri, 8 Feb 2019 14:19:09 +0000 (14:19 +0000)] 
expr.c: Correct indentations in expand_constructor

* expr.c (expand_constructor): Correct indentations.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268696 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-02-08 Richard Biener <rguenther@suse.de>
rguenth [Fri, 8 Feb 2019 13:21:36 +0000 (13:21 +0000)] 
2019-02-08  Richard Biener  <rguenther@suse.de>

PR tree-optimization/89247
* tree-if-conv.c: Include tree-cfgcleanup.h.
(version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
(tree_if_conversion): Pass through predicate vector.
(pass_if_conversion::execute): Do CFG cleanup and SSA update
inline, see if any if-converted loops we refrece in
LOOP_VECTORIZED calls vanished and fixup.
* tree-if-conv.h (tree_if_conversion): Adjust prototype.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268689 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoS/390: Introduce jdd constraint
iii [Fri, 8 Feb 2019 12:39:27 +0000 (12:39 +0000)] 
S/390: Introduce jdd constraint

Implementation of section anchors in S/390 back-end added in r266741
broke jump labels in S/390 Linux kernel [1].  Currently jump labels
pass global variable addresses to .quad directive in inline assembly
using "X" constraint.  In the past this used to produce regular symbol
references, however, after r266741 we sometimes get values like
(plus (reg) (const_int)), where (reg) points to a section anchor.
Strictly speaking, this is still correct, since "X" accepts anything.
Thus, now we need another way to support jump labels.

The existing "i" constraint cannot be used, since with -fPIC it must
not accept non-local symbols, however, jump labels do require that,
e.g. __tracepoint_xdp_exception from kernel proper might be referenced
from kernel modules.

The existing "ZL" constraint cannot be used for the same reason.

The existing "b" constraint cannot be used because of the way
expand_asm_stmt works.  It deduces whether the constraint allows
regs, subregs or mems, and processes asm operands differently based on
that.  "b" is supposed to accept values like (mem (symbol_ref)), and
there appears to be no way to explain to expand_asm_stmt that for "b"
mem's address must not be in a register.

This patch introduces the new machine-specific constraint named "jdd" -
"j" prefix is already used for constants, and "d" stands for "data".
It accepts anything that fits into the data section, whether or not
this might require a relocation, that is, anything that passes
CONSTANT_P check.

[1] https://lkml.org/lkml/2019/1/23/346

gcc/ChangeLog:

2019-02-08  Ilya Leoshkevich  <iii@linux.ibm.com>

* config/s390/constraints.md (jdd): New constraint.

gcc/testsuite/ChangeLog:

2019-02-08  Ilya Leoshkevich  <iii@linux.ibm.com>

* gcc.target/s390/jump-label.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268688 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-02-08 Richard Biener <rguenther@suse.de>
rguenth [Fri, 8 Feb 2019 11:56:28 +0000 (11:56 +0000)] 
2019-02-08  Richard Biener  <rguenther@suse.de>

PR testsuite/89250
* gcc.dg/vect/vect-24.c: Remove XFAIL on vect_condition targets.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268680 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * gcc-interface/trans.c (gnat_to_gnu) <N_Aggregate>: Minor tweak.
ebotcazou [Fri, 8 Feb 2019 11:37:40 +0000 (11:37 +0000)] 
* gcc-interface/trans.c (gnat_to_gnu) <N_Aggregate>: Minor tweak.
* gcc-interface/utils.c (convert): Do not pad when doing an unchecked
conversion here.  Use TREE_CONSTANT throughout the function.
(unchecked_convert): Also pad if the source is a CONSTRUCTOR and the
destination is a more aligned array type or a larger aggregate type,
but not between original and packable versions of a type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268679 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoi386: Use OI/TImode in *mov[ot]i_internal_avx with AVX512VL
hjl [Fri, 8 Feb 2019 11:30:53 +0000 (11:30 +0000)] 
i386: Use OI/TImode in *mov[ot]i_internal_avx with AVX512VL

OImode and TImode moves must be done in XImode to access upper 16
vector registers without AVX512VL.  With AVX512VL, we can access
upper 16 vector registers in OImode and TImode.

PR target/89229
* config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
upper 16 vector registers without TARGET_AVX512VL.
(*movti_internal): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268678 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * gcc-interface/utils.c (max_size) <tcc_unary>: Be prepared for an
ebotcazou [Fri, 8 Feb 2019 11:20:23 +0000 (11:20 +0000)] 
* gcc-interface/utils.c (max_size) <tcc_unary>: Be prepared for an
operand with VOID_TYPE.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268675 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * gcc-interface/trans.c (elaborate_all_entities): Do not elaborate the
ebotcazou [Fri, 8 Feb 2019 11:19:51 +0000 (11:19 +0000)] 
* gcc-interface/trans.c (elaborate_all_entities): Do not elaborate the
entities of a package renaming another one.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268674 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * gcc-interface/trans.c (Regular_Loop_to_gnu): Replace tests on
ebotcazou [Fri, 8 Feb 2019 11:07:08 +0000 (11:07 +0000)] 
* gcc-interface/trans.c (Regular_Loop_to_gnu): Replace tests on
individual flag_unswitch_loops and flag_tree_loop_vectorize switches
with test on global optimize switch.
(Raise_Error_to_gnu): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268671 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR rtl-optimization/89234
jakub [Fri, 8 Feb 2019 10:26:33 +0000 (10:26 +0000)] 
PR rtl-optimization/89234
* except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
(copy_reg_eh_region_note_backward): Likewise.

* g++.dg/ubsan/pr89234.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268669 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[libbacktrace] Declare external backtrace fns noinline
vries [Fri, 8 Feb 2019 09:49:06 +0000 (09:49 +0000)] 
[libbacktrace] Declare external backtrace fns noinline

The backtrace functions backtrace_full, backtrace_print and backtrace_simple
walk the call stack, but make sure to skip the first entry, in order to skip
over the functions themselves, and start the backtrace at the caller of the
functions.

When compiling with -flto, the functions may be inlined, causing them to skip
over the caller instead.

Fix this by declaring the functions with __attribute__((noinline)).

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

* backtrace.c (backtrace_full): Declare with __attribute__((noinline)).
* print.c (backtrace_print): Same.
* simple.c (backtrace_simple): Same.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268668 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-02-08 Richard Biener <rguenther@suse.de>
rguenth [Fri, 8 Feb 2019 08:18:09 +0000 (08:18 +0000)] 
2019-02-08  Richard Biener  <rguenther@suse.de>

PR middle-end/89223
* tree-data-ref.c (initialize_matrix_A): Fail if constant
doesn't fit in HWI.
(analyze_subscript_affine_affine): Handle failure from
initialize_matrix_A.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268666 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
jakub [Fri, 8 Feb 2019 07:14:57 +0000 (07:14 +0000)] 
* cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
cfun everywhere.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268664 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[libbacktrace] Handle DW_FORM_ref_addr
vries [Fri, 8 Feb 2019 05:55:44 +0000 (05:55 +0000)] 
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268663 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Fri, 8 Feb 2019 00:16:26 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268662 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix more ICEs in -fsave-optimization-record (PR tree-optimization/89235)
dmalcolm [Thu, 7 Feb 2019 23:00:18 +0000 (23:00 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268659 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[AArch64] Change representation of SABD in RTL
ktkachov [Thu, 7 Feb 2019 18:18:16 +0000 (18:18 +0000)] 
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268658 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoi386: Fix typo in *movoi_internal_avx/movti_internal
hjl [Thu, 7 Feb 2019 17:58:19 +0000 (17:58 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268657 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-02-07 Dominique d'Humieres <dominiq@gcc.gnu.org>
dominiq [Thu, 7 Feb 2019 17:40:29 +0000 (17:40 +0000)] 
2019-02-07  Dominique d'Humieres  <dominiq@gcc.gnu.org>

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268656 138bc75d-0d04-0410-961f-82ee72b054a4