]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
6 years ago2019-01-21 Iain Buclaw <ibuclaw@gdcproject.org>
ibuclaw [Mon, 21 Jan 2019 17:23:58 +0000 (17:23 +0000)] 
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.

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

6 years ago2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Mon, 21 Jan 2019 17:12:09 +0000 (17:12 +0000)] 
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.

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

6 years ago * gcc.dg/utf-array.c: Allow wchar_t to be printed as
jakub [Mon, 21 Jan 2019 16:58:04 +0000 (16:58 +0000)] 
* gcc.dg/utf-array.c: Allow wchar_t to be printed as
{long ,short ,}{unsigned ,}int.

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

6 years agoFix leak in splay-tree
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.

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

6 years ago2019-01-21 Richard Biener <rguenther@suse.de>
rguenth [Mon, 21 Jan 2019 14:49:42 +0000 (14:49 +0000)] 
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.

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

6 years agoi386: Move Intel intrinsics head files to <immintrin.h>
hjl [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.

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

6 years ago PR libstdc++/86590
jakub [Mon, 21 Jan 2019 11:55:52 +0000 (11:55 +0000)] 
PR libstdc++/86590
* include/bits/char_traits.h (__constant_string_p,
__constant_char_array_p): Use __builtin_is_constant_evaluated if
available.

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

6 years agogcc/testsuite/ChangeLog
drepper [Mon, 21 Jan 2019 11:47:30 +0000 (11:47 +0000)] 
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.

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

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

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

6 years agoLimit AA walking in IPA summary generation
jamborm [Sun, 20 Jan 2019 20:17:02 +0000 (20:17 +0000)] 
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.

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

6 years ago[D] Don't predefine GNU_StackGrowsDown on every target.
ibuclaw [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.

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

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

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

6 years ago[D] Fix identity comparison for structs with complex float fields.
ibuclaw [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.

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

6 years ago[D] Fix IdentityExp comparison for complex floats.
ibuclaw [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.

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

6 years agovector long long and vector double require vsx support.
linkw [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.

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

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

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

6 years ago2019-01-19 Dominique d'Humieres <dominiq@gcc.gnu.org>
dominiq [Sat, 19 Jan 2019 21:45:43 +0000 (21:45 +0000)] 
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.

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

6 years ago2019-01-19 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Sat, 19 Jan 2019 21:18:26 +0000 (21:18 +0000)] 
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.

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

6 years ago2018-01-19 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sat, 19 Jan 2019 20:06:41 +0000 (20:06 +0000)] 
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.

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

6 years ago * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
jakub [Sat, 19 Jan 2019 17:28:29 +0000 (17:28 +0000)] 
* config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
outside of #if CHECKING_P code.

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

6 years agoClaw back some of the code size regression in 548.exchange2_r
rsandifo [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.

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

6 years ago2019-01-17 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sat, 19 Jan 2019 11:03:28 +0000 (11:03 +0000)] 
2019-01-17  Thomas Koenig  <tkoenig@gcc.gnu.org>

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

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

6 years ago PR fortran/88902
jakub [Sat, 19 Jan 2019 08:43:12 +0000 (08:43 +0000)] 
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.

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

6 years agogcc/testsuite/ChangeLog:
msebor [Sat, 19 Jan 2019 00:46:56 +0000 (00:46 +0000)] 
gcc/testsuite/ChangeLog:

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

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

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

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

6 years agoPR libstdc++/88782 avoid ODR problems in std::make_shared
redi [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.

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

6 years ago PR c++/88875 - error with explicit list constructor.
jason [Fri, 18 Jan 2019 20:35:57 +0000 (20:35 +0000)] 
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.

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

6 years ago libgo: update to Go1.12beta2
ian [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.

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

6 years agors6000: Fix *movsi_from_df (PR88892)
segher [Fri, 18 Jan 2019 18:01:56 +0000 (18:01 +0000)] 
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.

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

6 years ago PR libbacktrace/88890
ian [Fri, 18 Jan 2019 17:13:59 +0000 (17:13 +0000)] 
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.

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

6 years ago PR c++/86926
mpolacek [Fri, 18 Jan 2019 16:42:57 +0000 (16:42 +0000)] 
PR c++/86926
* g++.dg/cpp1z/constexpr-lambda23.C: New test.

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

6 years agoUpdate PR middle-end/88587 tests
hjl [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.

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

6 years ago2019-01-18 Richard Biener <rguenther@suse.de>
rguenth [Fri, 18 Jan 2019 13:13:21 +0000 (13:13 +0000)] 
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.

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

6 years agoc-family: Update unaligned adress of packed member check
hjl [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.

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

6 years agoPR target/88799 Add +mp and +sec extensions to ARMv7-a
rearnsha [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.

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

6 years agoBump version of __gcov_indirect_call_profiler function as there was ABI change.
marxin [Fri, 18 Jan 2019 11:32:53 +0000 (11:32 +0000)] 
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.

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

6 years agoUpdate error message prefix in libgcov profiling.
marxin [Fri, 18 Jan 2019 11:31:45 +0000 (11:31 +0000)] 
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.

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

6 years agoDescribe better version mismatch in libgcov driver.
marxin [Fri, 18 Jan 2019 11:30:56 +0000 (11:30 +0000)] 
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.

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

6 years ago[AArch64] Add support for system register based stack protector canary access
ramana [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.

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

6 years ago PR tree-optimization/86214
jakub [Fri, 18 Jan 2019 10:07:27 +0000 (10:07 +0000)] 
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.

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

6 years ago[ARM][testsuite] follow-up to PR target/52813 and target/11807 fix.
clyon [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.

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

6 years agoPR target/85596 Add --with-multilib-list doc for aarch64
clyon [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.

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

6 years ago PR target/88734
jakub [Fri, 18 Jan 2019 09:15:36 +0000 (09:15 +0000)] 
PR target/88734
* config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
(("..."))) with ("...").

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

6 years ago Reapply:
jakub [Fri, 18 Jan 2019 09:14:18 +0000 (09:14 +0000)] 
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.

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

6 years agoDocument atomic fetch and nand
sh [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.

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

6 years agoRTEMS/Ada: Remove RTEMS quirk
sh [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.

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

6 years agoReset proper type on vector types (PR middle-end/88587).
marxin [Fri, 18 Jan 2019 07:41:05 +0000 (07:41 +0000)] 
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.

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

6 years agoAdd self to MAINTAINERS
helijia [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.

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

6 years ago PR c++/86205 - ICE with ?: of throw and template-id.
jason [Fri, 18 Jan 2019 03:58:22 +0000 (03:58 +0000)] 
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.

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

6 years ago PR go/88202
ian [Fri, 18 Jan 2019 03:29:38 +0000 (03:29 +0000)] 
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

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

6 years agolibphobos: Add Fiber/Thread support for StackGrowsUp.
ibuclaw [Fri, 18 Jan 2019 01:51:36 +0000 (01:51 +0000)] 
libphobos: Add Fiber/Thread support for StackGrowsUp.

The StackGrowsDown version being turned off for hppa targets.

After other fixes in the compiler, this allows core.thread unittests to
all pass, as well as the garbage collector to work correctly.

Backported from upstream druntime 2.084.

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

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

6 years agolibphobos: Add platform bindings for hppa-linux-gnu.
ibuclaw [Fri, 18 Jan 2019 00:48:51 +0000 (00:48 +0000)] 
libphobos: Add platform bindings for hppa-linux-gnu.

Backported from upstream druntime 2.084

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

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

6 years ago2018-01-17 Steve Ellcey <sellcey@cavium.com>
sje [Fri, 18 Jan 2019 00:41:40 +0000 (00:41 +0000)] 
2018-01-17  Steve Ellcey  <sellcey@cavium.com>

PR fortran/88898
* gfortran.dg/gomp/declare-simd-2.f90: Add aarch64 target specifier to
warning checks.
* gfortran.dg/gomp/pr79154-1.f90: Ditto.
* gfortran.dg/gomp/pr83977.f90: Ditto.

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

6 years agoDaily bump.
gccadmin [Fri, 18 Jan 2019 00:16:43 +0000 (00:16 +0000)] 
Daily bump.

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

6 years agolibphobos: Add OSX bindings for core.sys.posix.aio
ibuclaw [Fri, 18 Jan 2019 00:05:51 +0000 (00:05 +0000)] 
libphobos: Add OSX bindings for core.sys.posix.aio

Backported from upstream druntime 2.084

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

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

6 years ago PR target/88734
jakub [Thu, 17 Jan 2019 23:34:42 +0000 (23:34 +0000)] 
PR target/88734
* config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
(("..."))) with ("...").  Use arch=armv8.2-a+sha3 instead of
arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.

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

6 years agoPR middle-end/88273 - [8/9 Regression] warning: 'memcpy' offset [-527, -529]
msebor [Thu, 17 Jan 2019 22:52:47 +0000 (22:52 +0000)] 
PR middle-end/88273 - [8/9 Regression] warning: 'memcpy' offset [-527, -529]
is out of the bounds [0, 16]

gcc/ChangeLog:

PR middle-end/88273
* gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
Handle anti-ranges the same as no range at all.

gcc/testsuite/ChangeLog:

PR middle-end/88273
* gcc.dg/Warray-bounds-38.c: New test.

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

6 years agoImprove the C error for mismatched array string literal initialization.
jason [Thu, 17 Jan 2019 20:43:38 +0000 (20:43 +0000)] 
Improve the C error for mismatched array string literal initialization.

* c-typeck.c (digest_init): Revised the error message produced for
ill-formed cases of array initialization with a string literal.
(error_init): Make variadic.

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

6 years ago PR c++/86740, ICE with constexpr if and nested generic lambdas.
jason [Thu, 17 Jan 2019 20:36:31 +0000 (20:36 +0000)] 
PR c++/86740, ICE with constexpr if and nested generic lambdas.

When we partially instantiate the constexpr if, we walk through its body to
see what it uses from the enclosing local_specializations.  That walk was
overlooking the use of 'count' in the captures of the innermost lambda,
because we weren't walking into the capture list.

* tree.c (cp_walk_subtrees): Handle LAMBDA_EXPR.

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

6 years ago2018-01-17 Steve Ellcey <sellcey@cavium.com>
sje [Thu, 17 Jan 2019 19:08:12 +0000 (19:08 +0000)] 
2018-01-17  Steve Ellcey  <sellcey@cavium.com>

* c-c++-common/gomp/pr60823-1.c: Add aarch64 specific
warning checks and assembler scans.
* c-c++-common/gomp/pr60823-3.c: Ditto.
* c-c++-common/gomp/pr63328.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.
* g++.dg/vect/simd-clone-7.cc: 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/pr87895-2.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.

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

6 years ago2018-01-17 Steve Ellcey <sellcey@cavium.com>
sje [Thu, 17 Jan 2019 19:06:37 +0000 (19:06 +0000)] 
2018-01-17  Steve Ellcey  <sellcey@cavium.com>

* config/aarch64/aarch64.c (cgraph.h): New include.
(intl.h): New include.
(supported_simd_type): New function.
(currently_supported_simd_type): Ditto.
(aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
(aarch64_simd_clone_adjust): Ditto.
(aarch64_simd_clone_usable): Ditto.
(TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
(TARGET_SIMD_CLONE_ADJUST): Ditto.
(TARGET_SIMD_CLONE_USABLE): Ditto.
* config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
* omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
call.

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

6 years ago/cp
paolo [Thu, 17 Jan 2019 18:01:43 +0000 (18:01 +0000)] 
/cp
2019-01-17  Paolo Carlini  <paolo.carlini@oracle.com>

* decl.c (grokdeclarator): Use typespec_loc in error messages
about 'auto' and trailing return type.

/testsuite
2019-01-17  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/cpp0x/auto52.C: Test locations too.
* g++.dg/cpp0x/trailing2.C: Likewise.
* g++.dg/cpp1y/auto-fn18.C: Likewise.
* g++.dg/cpp1y/auto-fn25.C: Likewise.
* g++.dg/cpp1y/auto-fn52.C: Likewise.
* g++.dg/cpp1y/auto-fn53.C: Likewise.
* g++.dg/cpp1y/auto-fn54.C: Likewise.

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

6 years agoC++: Fix ICE when adding overloaded operator via using_decl (PR c++/88699)
dmalcolm [Thu, 17 Jan 2019 17:07:20 +0000 (17:07 +0000)] 
C++: Fix ICE when adding overloaded operator via using_decl (PR c++/88699)

PR c++/88699 reports an ICE within this assertion in add_method:

  gcc_assert (!current_fns || !DECL_DESTRUCTOR_P (method));

when adding an overloaded operator to a class via a using_decl, due to
DECL_DESTRUCTOR_P requiring a FUNCTION_DECL, but "method" being a
USING_DECL.

This patch weakens the assertion to avoid testing DECL_DESTRUCTOR_P
for the case where "via_using" is true, fixing the ICE.

gcc/cp/ChangeLog:
PR c++/88699
* class.c (add_method): Don't use DECL_DESTRUCTOR_P on
USING_DECLs.

gcc/testsuite/ChangeLog:
PR c++/88699
* g++.dg/template/pr88699.C: New test.

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

6 years agoPR tree-optimization/88800 - Spurious -Werror=array-bounds for non-taken branch
msebor [Thu, 17 Jan 2019 16:33:55 +0000 (16:33 +0000)] 
PR tree-optimization/88800 - Spurious -Werror=array-bounds for non-taken branch

gcc/ChangeLog:

PR tree-optimization/88800
* gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
NO_WARNING bit here.  Avoid folding out-of-bounds calls.
* gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
redundant argument.  Add new argument and issue diagnostics under
its control.  Detect out-of-bounds access even with warnings
disabled.
(check_bounds_or_overlap): Change return type.  Add argument.
(wrestrict_dom_walker::check_call): Adjust.
* gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
* tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
check_bounds_or_overlap's return value.
(handle_builtin_stxncpy): Same.
(handle_builtin_strcat): Same.

gcc/testsuite/ChangeLog:

PR tree-optimization/88800
* c-c++-common/Wrestrict.c: Adjust.
* gcc.dg/Warray-bounds-37.c: New test.
* gcc.dg/builtin-memcpy-2.c: New test.
* gcc.dg/builtin-memcpy.c: New test.

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

6 years agoFix filesystem::equivalent for mingw
redi [Thu, 17 Jan 2019 15:32:10 +0000 (15:32 +0000)] 
Fix filesystem::equivalent for mingw

* src/c++17/fs_ops.cc
(equivalent(const path&, const path&, error_code&))
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use GetFileInformationByHandle to
compare files instead of relying on incomplete info returned by stat.

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

6 years agoPR libstdc++/88884 fix filesystem::absolute("//") for mingw
redi [Thu, 17 Jan 2019 15:32:05 +0000 (15:32 +0000)] 
PR libstdc++/88884 fix filesystem::absolute("//") for mingw

PR libstdc++/88884
* src/c++17/fs_ops.cc (absolute(const path&, error_code&)): Do nothing
if the path is already absolute.
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Normalize root-directory.
[!_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Pass error_code to current_path.

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

6 years agoPR libstdc++/88881 adjust filesystem::status and tests for mingw semantics
redi [Thu, 17 Jan 2019 15:31:59 +0000 (15:31 +0000)] 
PR libstdc++/88881 adjust filesystem::status and tests for mingw semantics

On Windows stat("foo/bar/../.") will resolve to "foo" even if that is a
non-directory and "foo/bar" does not exist. This is the expected
behaviour and consistent with boost::filesystem, so don't try to correct
it. The only unwanted behaviour is that stat("baz/") fails due to a
mingw bug (fixed in mingw-w64 v6.0.0) so add a workaround.

PR libstdc++/88881
* src/c++17/fs_ops.cc (canonical(const path&, error_code&))
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Normalize path, to match behaviour
of filesystem::exists.
(create_directories(const path&, error_code&)): Add assertions.
(status(const path&, error_code&)) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]:
Add workaround for bug in _wstat for paths with trailing slash.
* testsuite/27_io/filesystem/operations/create_directories.cc: Adjust
for expected behaviour on mingw.
* testsuite/experimental/filesystem/operations/create_directories.cc:
Likewise.
* testsuite/27_io/filesystem/operations/temp_directory_path.cc: Use
"TMP" instead of "TMPDIR" and clean environment before each test. Do
not test permissions on mingw targets.

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

6 years agoFix Arm testcase by using NEON.
tnfchris [Thu, 17 Jan 2019 15:17:57 +0000 (15:17 +0000)] 
Fix Arm testcase by using NEON.

gcc/testsuite/ChangeLog:

PR target/88850
* gcc.target/arm/pr51968.c: Use neon intrinsics.

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

6 years ago[libbacktrace] Add btest_dwz test-case
vries [Thu, 17 Jan 2019 13:42:30 +0000 (13:42 +0000)] 
[libbacktrace] Add btest_dwz test-case

Add test-case to verify that libbacktrace can read debug info that was
compressed with dwz.

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

PR libbacktrace/82857
* configure.ac (DWZ): Set with AC_CHECK_PROG.
(HAVE_DWZ): Set with AM_CONDITIONAL.
* configure: Regenerate.
* Makefile.am (TESTS): Add btest_dwz.
* Makefile.in: Regenerate.

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

6 years ago[libbacktrace] Handle DW_FORM_GNU_ref_alt
vries [Thu, 17 Jan 2019 13:42:20 +0000 (13:42 +0000)] 
[libbacktrace] Handle DW_FORM_GNU_ref_alt

Handle DW_FORM_GNU_ref_alt which references the .debug_info section in the
.gnu_debugaltlink file.

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

PR libbacktrace/82857
* dwarf.c (enum attr_val_encoding): Add ATTR_VAL_REF_ALT_INFO.
(read_attribute): Handle DW_FORM_GNU_ref_alt using
ATTR_VAL_REF_ALT_INFO.
(read_referenced_name_from_attr): Handle DW_FORM_GNU_ref_alt.

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

6 years ago[libbacktrace] Add find_unit
vries [Thu, 17 Jan 2019 13:42:09 +0000 (13:42 +0000)] 
[libbacktrace] Add find_unit

Add a function that finds the unit given an offset into .debug_info.

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

* dwarf.c (struct unit): Add low_offset and high_offset fields.
(struct unit_vector): New type.
(struct dwarf_data): Add units and units_counts fields.
(find_unit): New function.
(find_address_ranges): Add and handle unit_tag parameter.
(build_address_map): Add and handle units_vec parameter.
(build_dwarf_data): Pass units_vec to build_address_map.  Store resulting
units vector.

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

6 years agoPort testsuite to GCN
ams [Thu, 17 Jan 2019 12:37:57 +0000 (12:37 +0000)] 
Port testsuite to GCN

This collection of miscellaneous patches configures the testsuite to run on AMD
GCN in a standalone (i.e. not offloading) configuration.  It assumes you have
your Dejagnu set up to run binaries via the gcn-run tool.

2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
    Kwok Cheung Yeung  <kcy@codesourcery.com>
    Julian Brown  <julian@codesourcery.com>
    Tom de Vries  <tom@codesourcery.com>

gcc/
* doc/sourcebuild.texi: Document dg-add-options sqrt_insn.

gcc/testsuite/
* gcc.dg/20020312-2.c: Add amdgcn support.
* gcc.dg/Wno-frame-address.c: Disable on amdgcn.
* gcc.dg/builtin-apply2.c: Likewise.
* gcc.dg/torture/stackalign/builtin-apply-2.c: Likewise.
* gcc.dg/gimplefe-28.c: Add dg-add-options for sqrt_insn.
* gcc.dg/intermod-1.c: Add -mlocal-symbol-id on amdgcn.
* gcc.dg/memcmp-1.c: Increase timeout factor.
* gcc.dg/pr59605-2.c: Addd -DMAX_COPY=1025 on amdgcn.
* gcc.dg/sibcall-10.c: xfail on amdgcn.
* gcc.dg/sibcall-9.c: Likewise.
* gcc.dg/tree-ssa/gen-vect-11c.c: Likewise.
* gcc.dg/tree-ssa/pr84512.c: Likewise.
* gcc.dg/tree-ssa/loop-1.c: Adjust expectations for amdgcn.
* gfortran.dg/bind_c_array_params_2.f90: Likewise.
* lib/target-supports.exp (check_effective_target_trampolines):
Configure amdgcn.
(check_profiling_available): Likewise.
(check_effective_target_global_constructor): Likewise.
(check_effective_target_return_address): Likewise.
(check_effective_target_fopenacc): Likewise.
(check_effective_target_fopenmp): Likewise.
(check_effective_target_vect_int): Likewise.
(check_effective_target_vect_intfloat_cvt): Likewise.
(check_effective_target_vect_uintfloat_cvt): Likewise.
(check_effective_target_vect_floatint_cvt): Likewise.
(check_effective_target_vect_floatuint_cvt): Likewise.
(check_effective_target_vect_simd_clones): Likewise.
(check_effective_target_vect_shift): Likewise.
(check_effective_target_whole_vector_shift): Likewise.
(check_effective_target_vect_bswap): Likewise.
(check_effective_target_vect_shift_char): Likewise.
(check_effective_target_vect_long): Likewise.
(check_effective_target_vect_float): Likewise.
(check_effective_target_vect_double): Likewise.
(check_effective_target_vect_perm): Likewise.
(check_effective_target_vect_perm_byte): Likewise.
(check_effective_target_vect_perm_short): Likewise.
(check_effective_target_vect_widen_mult_qi_to_hi): Likewise.
(check_effective_target_vect_widen_mult_hi_to_si): Likewise.
(check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise.
(check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise.
(check_effective_target_vect_natural_alignment): Likewise.
(check_effective_target_vect_fully_masked): Likewise.
(check_effective_target_vect_element_align): Likewise.
(check_effective_target_vect_masked_store): Likewise.
(check_effective_target_vect_scatter_store): Likewise.
(check_effective_target_vect_condition): Likewise.
(check_effective_target_vect_cond_mixed): Likewise.
(check_effective_target_vect_char_mult): Likewise.
(check_effective_target_vect_short_mult): Likewise.
(check_effective_target_vect_int_mult): Likewise.
(check_effective_target_sqrt_insn): Likewise.
(check_effective_target_vect_call_sqrtf): Likewise.
(check_effective_target_vect_call_btrunc): Likewise.
(check_effective_target_vect_call_btruncf): Likewise.
(check_effective_target_vect_call_ceil): Likewise.
(check_effective_target_vect_call_floorf): Likewise.
(check_effective_target_lto): Likewise.
(check_vect_support_and_set_flags): Likewise.
(check_effective_target_vect_stridedN): Enable when fully masked is
available.
(add_options_for_sqrt_insn): New procedure.

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

6 years agoIgnore LLVM's blank lines.
ams [Thu, 17 Jan 2019 12:36:49 +0000 (12:36 +0000)] 
Ignore LLVM's blank lines.

The GCN toolchain must use the LLVM assembler and linker because there's no
binutils port.  The LLVM tools do not have the same diagnostic style as
binutils, so the "blank line(s) in output" tests are inappropriate (and very
noisy).

The LLVM tools also have different command line options, so it's not possible
to autodetect object formats in the same way.

This patch addresses both issues.

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

gcc/
* doc/sourcebuild.texi: Document dg-require-effective-target
llvm_binutils and offload_gcn.

gcc/testsuite/
* lib/file-format.exp (gcc_target_object_format): Handle AMD GCN.
* lib/gcc-dg.exp (gcc-dg-prune): Ignore blank lines from the LLVM
linker.
* lib/target-supports.exp (check_effective_target_llvm_binutils): New.

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

6 years agoTestsuite: GCN is always PIE.
ams [Thu, 17 Jan 2019 12:36:10 +0000 (12:36 +0000)] 
Testsuite: GCN is always PIE.

The GCN/HSA loader ignores the load address and uses a random location, so we
build all GCN binaries as PIE, by default.

This patch makes the necessary testsuite adjustments to make this work
correctly.

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

gcc/testsuite/
* gcc.dg/graphite/scop-19.c: Check pie_enabled.
* gcc.dg/pic-1.c: Disable on amdgcn.
* gcc.dg/pic-2.c: Disable on amdgcn.
* gcc.dg/pic-3.c: Disable on amdgcn.
* gcc.dg/pic-4.c: Disable on amdgcn.
* gcc.dg/pie-3.c: Disable on amdgcn.
* gcc.dg/pie-4.c: Disable on amdgcn.
* gcc.dg/uninit-19.c: Check pie_enabled.
* lib/target-supports.exp (check_effective_target_pie): Add amdgcn.

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

6 years agoAdd dg-require-effective-target exceptions
ams [Thu, 17 Jan 2019 12:35:28 +0000 (12:35 +0000)] 
Add dg-require-effective-target exceptions

There are a number of tests that fail because they assume that exceptions are
available, but GCN does not support them, yet.

This patch adds "dg-require-effective-target exceptions" in all the affected
tests.  There's probably an automatic way to test for exceptions, but the
current implementation simply says that AMD GCN does not support them.  This
should ensure that no other targets are affected by the change.

2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
    Kwok Cheung Yeung  <kcy@codesourcery.com>
    Julian Brown  <julian@codesourcery.com>
    Tom de Vries  <tom@codesourcery.com>

gcc/
* doc/sourcebuild.texi: Document dg-required-effective-target
exceptions.

gcc/testsuite/
* c-c++-common/ubsan/pr71512-1.c: Require exceptions.
* c-c++-common/ubsan/pr71512-2.c: Require exceptions.
* gcc.c-torture/compile/pr34648.c: Require exceptions.
* gcc.c-torture/compile/pr41469.c: Require exceptions.
* gcc.dg/20111216-1.c: Require exceptions.
* gcc.dg/cleanup-10.c: Require exceptions.
* gcc.dg/cleanup-11.c: Require exceptions.
* gcc.dg/cleanup-12.c: Require exceptions.
* gcc.dg/cleanup-13.c: Require exceptions.
* gcc.dg/cleanup-5.c: Require exceptions.
* gcc.dg/cleanup-8.c: Require exceptions.
* gcc.dg/cleanup-9.c: Require exceptions.
* gcc.dg/gomp/pr29955.c: Require exceptions.
* gcc.dg/lto/pr52097_0.c: Require exceptions.
* gcc.dg/nested-func-5.c: Require exceptions.
* gcc.dg/pch/except-1.c: Require exceptions.
* gcc.dg/pch/valid-2.c: Require exceptions.
* gcc.dg/pr41470.c: Require exceptions.
* gcc.dg/pr42427.c: Require exceptions.
* gcc.dg/pr44545.c: Require exceptions.
* gcc.dg/pr47086.c: Require exceptions.
* gcc.dg/pr51481.c: Require exceptions.
* gcc.dg/pr51644.c: Require exceptions.
* gcc.dg/pr52046.c: Require exceptions.
* gcc.dg/pr54669.c: Require exceptions.
* gcc.dg/pr56424.c: Require exceptions.
* gcc.dg/pr64465.c: Require exceptions.
* gcc.dg/pr65802.c: Require exceptions.
* gcc.dg/pr67563.c: Require exceptions.
* gcc.dg/tree-ssa/pr41469-1.c: Require exceptions.
* gcc.dg/tree-ssa/ssa-dse-28.c: Require exceptions.
* gcc.dg/vect/pr46663.c: Require exceptions.
* lib/target-supports.exp (check_effective_target_exceptions): New.

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

6 years agoGCN back-end config
ams [Thu, 17 Jan 2019 12:34:28 +0000 (12:34 +0000)] 
GCN back-end config

This patch contains the configuration adjustments needed to enable the GCN
back-end.

The new configure check for dlopen is required to allow building the new
gcn-run tool.  This tool uses libdl to load the HSA runtime libraries, which
are required to run programs on the GPU.  The tool is disabled if libdl is not
available.

2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
    Kwok Cheung Yeung  <kcy@codesourcery.com>
    Julian Brown  <julian@codesourcery.com>
    Tom de Vries  <tom@codesourcery.com>
    Jan Hubicka  <hubicka@ucw.cz>
    Martin Jambor  <mjambor@suse.cz>

* configure.ac: Likewise.
* configure: Regenerate.
* contrib/config-list.mk: Add amdgcn-amdhsa.

gcc/
* config.gcc: Add amdgcn*-*-amdhsa configuration.
* configure.ac: Check for dlopen.
* configure: Regenerate.

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

6 years agoGCN back-end code
ams [Thu, 17 Jan 2019 12:33:19 +0000 (12:33 +0000)] 
GCN back-end code

This patch contains the major part of the GCN back-end.  The machine
description has been broken out to avoid the mailing list size limit.

The back-end contains various bits that support OpenACC and OpenMP, but the
middle-end and libgomp patches are missing, as is mkoffload.  I include them
here because they're harmless and carving up the files seems like unnecessary
effort.  The remaining offload support will be posted at a later date.

The gcn-run.c is a separate tool that can run a GCN program on a GPU using
the ROCm drivers and HSA runtime libraries.

2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
    Kwok Cheung Yeung  <kcy@codesourcery.com>
    Julian Brown  <julian@codesourcery.com>
    Tom de Vries  <tom@codesourcery.com>
    Jan Hubicka  <hubicka@ucw.cz>
    Martin Jambor  <mjambor@suse.cz>

gcc/
* common/config/gcn/gcn-common.c: New file.
* config/gcn/driver-gcn.c: New file.
* config/gcn/gcn-builtins.def: New file.
* config/gcn/gcn-hsa.h: New file.
* config/gcn/gcn-modes.def: New file.
* config/gcn/gcn-opts.h: New file.
* config/gcn/gcn-passes.def: New file.
* config/gcn/gcn-protos.h: New file.
* config/gcn/gcn-run.c: New file.
* config/gcn/gcn-tree.c: New file.
* config/gcn/gcn.c: New file.
* config/gcn/gcn.h: New file.
* config/gcn/gcn.opt: New file.
* config/gcn/t-gcn-hsa: New file.

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

6 years agoGCN machine description
ams [Thu, 17 Jan 2019 12:31:28 +0000 (12:31 +0000)] 
GCN machine description

This patch contains the machine description portion of the GCN back-end.  I've
broken it out mainly to avoid the mailing list size limit.

2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
    Kwok Cheung Yeung  <kcy@codesourcery.com>
    Julian Brown  <julian@codesourcery.com>
    Tom de Vries  <tom@codesourcery.com>
    Jan Hubicka  <hubicka@ucw.cz>
    Martin Jambor  <mjambor@suse.cz>

gcc/
* config/gcn/constraints.md: New file.
* config/gcn/gcn-valu.md: New file.
* config/gcn/gcn.md: New file.
* config/gcn/predicates.md: New file.

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

6 years agoGCN libgcc.
ams [Thu, 17 Jan 2019 12:29:13 +0000 (12:29 +0000)] 
GCN libgcc.

This patch contains the GCN port of libgcc.

2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
    Kwok Cheung Yeung  <kcy@codesourcery.com>
    Julian Brown  <julian@codesourcery.com>
    Tom de Vries  <tom@codesourcery.com>

libgcc/
* config.host: Recognize amdgcn*-*-amdhsa.
* config/gcn/crt0.c: New file.
* config/gcn/lib2-divmod-hi.c: New file.
* config/gcn/lib2-divmod.c: New file.
* config/gcn/lib2-gcn.h: New file.
* config/gcn/sfp-machine.h: New file.
* config/gcn/t-amdgcn: New file.

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

6 years agoGCN libgfortran.
ams [Thu, 17 Jan 2019 12:27:46 +0000 (12:27 +0000)] 
GCN libgfortran.

This patch contains the GCN port of libgfortran.  We use the minimal
configuration created for NVPTX.  That's all that's required, besides the
target-independent bug fixes posted already.

2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
    Kwok Cheung Yeung  <kcy@codesourcery.com>
    Julian Brown  <julian@codesourcery.com>
    Tom de Vries  <tom@codesourcery.com>

libgfortran/
* configure.ac: Use minimal mode for amdgcn.
* configure: Regenerate.

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

6 years ago * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
ebotcazou [Thu, 17 Jan 2019 12:12:58 +0000 (12:12 +0000)] 
* gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
(stmt_uses_0_or_null_in_undefined_way): Likewise.
* tree-ssa-alias.c (same_addr_size_stores_p): Likewise.

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

6 years agoRename stack-clash protection CFA register to avoid clash
tnfchris [Thu, 17 Jan 2019 12:06:04 +0000 (12:06 +0000)] 
Rename stack-clash protection CFA register to avoid clash

gcc/ChangeLog:

PR target/88851
* config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
* config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
it and document registers.

gcc/testsuite/ChangeLog:

PR target/88851
* gcc.target/aarch64/stack-check-cfa-3.c: Update test.

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

6 years ago[PR c++/86610] lambda captures in templates
nathan [Thu, 17 Jan 2019 11:56:58 +0000 (11:56 +0000)] 
[PR c++/86610] lambda captures in templates

https://gcc.gnu.org/ml/gcc-patches/2019-01/msg00948.html
PR c++/86610
* semantics.c (process_outer_var_ref): Only skip dependent types
in templates.

PR c++/86610
* g++.dg/cpp0x/pr86610.C: New.

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

6 years ago[AArch64] Initial -mcpu=ares tuning
ktkachov [Thu, 17 Jan 2019 10:08:55 +0000 (10:08 +0000)] 
[AArch64] Initial -mcpu=ares tuning

This patch adds a tuning struct for the Arm Ares CPU and uses it for -m{cpu,tune}=ares.
The tunings are an initial attempt and may be improved upon in the future, but they serve
as a decent starting point for GCC 9.

With this I see a 1.3% improvement on SPEC2006 int and 0.3% on SPEC2006 fp with -mcpu=ares.
On SPEC2017 I see a 0.6% improvement in intrate and changes in the noise for fprate.

        * config/aarch64/aarch64.c (ares_tunings): Define.
        * config/aarch64/aarch64-cores.def (ares): Use the above.

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

6 years agogcc/testsuite/ChangeLog
xguo [Thu, 17 Jan 2019 10:01:07 +0000 (10:01 +0000)] 
gcc/testsuite/ChangeLog
2019-01-17  Wei Xiao  <wei3.xiao@intel.com>

* gcc.target/i386/avx512f-vfixupimmpd-2.c: Fix the test cases for
VFIXUPIMM* intrinsics.
* gcc.target/i386/avx512f-vfixupimmps-2.c: Ditto.
* gcc.target/i386/avx512f-vfixupimmsd-2.c: Ditto.
* gcc.target/i386/avx512f-vfixupimmss-2.c: Ditto.

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

6 years agogcc/ChangeLog
xguo [Thu, 17 Jan 2019 09:54:56 +0000 (09:54 +0000)] 
gcc/ChangeLog
2019-01-17  Wei Xiao  <wei3.xiao@intel.com>

PR target/88794
Revert:

2018-11-06  Wei Xiao  <wei3.xiao@intel.com>

* config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
(_mm512_fixupimm_round_pd): Update parameters and builtin.
(_mm512_maskz_fixupimm_round_pd): Ditto.
(_mm512_fixupimm_round_ps): Ditto.
(_mm512_maskz_fixupimm_round_ps): Ditto.
(_mm_fixupimm_round_sd): Ditto.
(_mm_maskz_fixupimm_round_sd): Ditto.
(_mm_fixupimm_round_ss): Ditto.
(_mm_maskz_fixupimm_round_ss): Ditto.
(_mm512_fixupimm_pd): Ditto.
(_mm512_maskz_fixupimm_pd): Ditto.
(_mm512_fixupimm_ps): Ditto.
(_mm512_maskz_fixupimm_ps): Ditto.
(_mm_fixupimm_sd): Ditto.
(_mm_maskz_fixupimm_sd): Ditto.
(_mm_fixupimm_ss): Ditto.
(_mm_maskz_fixupimm_ss): Ditto.
(_mm512_mask_fixupimm_round_pd): Update builtin.
(_mm512_mask_fixupimm_round_ps): Ditto.
(_mm_mask_fixupimm_round_sd): Ditto.
(_mm_mask_fixupimm_round_ss): Ditto.
(_mm512_mask_fixupimm_pd): Ditto.
(_mm512_mask_fixupimm_ps): Ditto.
(_mm_mask_fixupimm_sd): Ditto.
(_mm_mask_fixupimm_ss): Ditto.
* config/i386/avx512vlintrin.h:
(_mm256_fixupimm_pd): Update parameters and builtin.
(_mm256_maskz_fixupimm_pd): Ditto.
(_mm256_fixupimm_ps): Ditto.
(_mm256_maskz_fixupimm_ps): Ditto.
(_mm_fixupimm_pd): Ditto.
(_mm_maskz_fixupimm_pd): Ditto.
(_mm_fixupimm_ps): Ditto.
(_mm_maskz_fixupimm_ps): Ditto.
(_mm256_mask_fixupimm_pd): Update builtin.
(_mm256_mask_fixupimm_ps): Ditto.
(_mm_mask_fixupimm_pd): Ditto.
(_mm_mask_fixupimm_ps): Ditto.
* config/i386/i386-builtin-types.def: Add new types and remove useless ones.
* config/i386/i386-builtin.def: Update builtin definitions.
* config/i386/i386.c: Handle new builtin types and remove useless ones.
* config/i386/sse.md: Update VFIXUPIMM* patterns.
(<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
(<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
(<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
(avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
(avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
(avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
* config/i386/subst.md:
(round_saeonly_sd_mask_operand4): Add new subst_attr.
(round_saeonly_sd_mask_op4): Ditto.
(round_saeonly_expand_operand5): Ditto.
(round_saeonly_expand): Update.

gcc/testsuite/ChangeLog
2019-01-17  Wei Xiao  <wei3.xiao@intel.com>

PR target/88794
Revert:
2018-11-06  Wei Xiao  <wei3.xiao@intel.com>

* gcc.target/i386/avx-1.c: Update tests for VFIXUPIMM* intrinsics.
* gcc.target/i386/avx512f-vfixupimmpd-1.c: Ditto.
* gcc.target/i386/avx512f-vfixupimmpd-2.c: Ditto.
* gcc.target/i386/avx512f-vfixupimmps-1.c: Ditto.
* gcc.target/i386/avx512f-vfixupimmsd-1.c: Ditto.
* gcc.target/i386/avx512f-vfixupimmsd-2.c: Ditto.
* gcc.target/i386/avx512f-vfixupimmss-1.c: Ditto.
* gcc.target/i386/avx512f-vfixupimmss-2.c: Ditto.
* gcc.target/i386/avx512vl-vfixupimmpd-1.c: Ditto.
* gcc.target/i386/avx512vl-vfixupimmps-1.c: Ditto.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-14.c: Ditto.
* gcc.target/i386/sse-22.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.
* gcc.target/i386/testimm-10.c: Ditto.
* gcc.target/i386/testround-1.c: Ditto.

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

6 years ago2019-01-17 Wei Xiao <wei3.xiao@intel.com>
xguo [Thu, 17 Jan 2019 09:34:00 +0000 (09:34 +0000)] 
2019-01-17  Wei Xiao  <wei3.xiao@intel.com>

        PR target/88794
        Revert:
        2018-11-12  Wei Xiao  <wei3.xiao@intel.com>

        * config/i386/sse.md: Combine VFIXUPIMM* patterns
        (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
        (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
        (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
        (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
        (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
        (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.

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

6 years agogcc/ChangeLog:
xguo [Thu, 17 Jan 2019 08:51:01 +0000 (08:51 +0000)] 
gcc/ChangeLog:
2019-01-17  Wei Xiao  <wei3.xiao@intel.com>

        PR target/88794
        Revert:
        2018-12-15  Jakub Jelinek  <jakub@redhat.com>

        PR target/88489
        * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
        (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
        instead of UNSPEC_FIXUPIMM.

gcc/testsuite/ChangeLog:
2019-01-17  Wei Xiao  <wei3.xiao@intel.com>

        PR target/88794
        Revert:
        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.

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

6 years ago2019-01-17 Richard Biener <rguenther@suse.de>
rguenth [Thu, 17 Jan 2019 08:45:00 +0000 (08:45 +0000)] 
2019-01-17  Richard Biener  <rguenther@suse.de>

PR lto/86736
* dwarf2out.c (want_pubnames): Never generate pubnames sections
and friends for the LTO part of debug info.

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

6 years ago PR tree-optimization/86214
jakub [Thu, 17 Jan 2019 08:05:12 +0000 (08:05 +0000)] 
PR tree-optimization/86214
* cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
if x == y.

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

6 years ago PR rtl-optimization/88870
jakub [Thu, 17 Jan 2019 08:04:28 +0000 (08:04 +0000)] 
PR rtl-optimization/88870
* dce.c (deletable_insn_p): Never delete const/pure calls that can
throw if we can't alter the cfg or delete dead exceptions.
(mark_insn): Don't call find_call_stack_args for such calls.

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

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

6 years ago[rs6000] Support more prototypes for vec_ld and vec_st.
linkw [Thu, 17 Jan 2019 07:49:24 +0000 (07:49 +0000)] 
[rs6000] Support more prototypes for vec_ld and vec_st.

2019-01-17  Kewen Lin  <linkw@gcc.gnu.org>

gcc/ChangeLog
    * doc/extend.texi: Add four new prototypes for vec_ld and seven new
    prototypes for vec_st.
    * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
    for scalar address type variants of altivec_vec_ld/altivec_vec_st,
    mainly on signed/unsigned long long and double.

gcc/testsuite/ChangeLog
    * gcc.target/powerpc/altivec_vld_vst_addr.c: New test.

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

6 years ago[PR87768] reset location wrapper suppression when reentering top level
aoliva [Thu, 17 Jan 2019 07:32:29 +0000 (07:32 +0000)] 
[PR87768] reset location wrapper suppression when reentering top level

Concepts-checking and other kinds of early tsubsting may often take
place while location wrappers are suppressed, e.g. because we've
triggered template instantiation within template parameter lists.

With that, exprs that are usually wrapped by VIEW_CONVERT_EXPRs
location wrappers may end up wrapped by NON_LVALUE_EXPRs that are not
marked as location wrappers.  If such NON_LVALUE_EXPRs tsubsted exprs
undergo another round of tsubsting, say for constraint checking, or
even for another round of specialization, they will be rejected by
tsubst_copy_and_build.

This patch arranges for suppress_location_wrappers to be saved and
reset when pushing to the top level, and restored when popping from
it.

for  gcc/cp/ChangeLog

PR c++/87768
* cp-tree.h (saved_scope): Add suppress_location_wrappers.
* name-lookup.c (do_push_to_top_level): Save and reset it.
(do_pop_from_top_level): Restore it.

for  gcc/testsuite/ChangeLog

PR c++/87768
* g++.dg/concepts/pr87768.C: New.

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

6 years ago[PR86648] use auto identifier for class placeholder templates
aoliva [Thu, 17 Jan 2019 07:32:16 +0000 (07:32 +0000)] 
[PR86648] use auto identifier for class placeholder templates

dwarf2out recognizes unspecified auto types by the identifier.  C++
template class placeholders are unspecified auto types that take the
identifier of the class rather than those used by preexisting auto
types, so dwarf2out ICEs when it finds one of those.  Alas, they may
be visible to dwarf2out, since the types of e.g. static data members
of templates are only deduced at member instantiation, i.e., if the
data member is actually referenced, but the data member is added as a
field, still with unspecified auto placeholder type, when the
enclosing class is instantiated.

I've changed placeholder creator to use an auto identifier instead,
which allowed dropping the placeholder test in C++'s is_auto (alas, it
can't be used in dwarf2out, think LTO).  To avoid losing information
in error messages and dumps and whatnot, I've added code to recognize
placeholders for template classes say A and print them out as
A<...auto...>.

for  gcc/cp/ChangeLog

PR c++/86648
        * pt.c (make_template_placeholder): Use auto_identifier.
        (is_auto): Drop CLASS_PLACEHOLDER_TEMPLATE test.
        * error.c (dump_type): Handle template placeholders.
        * cxx-pretty-print.c (pp_cx_unqualified_id): Likewise.

for  gcc/testsuite/ChangeLog

PR c++/86648
        * gcc.dg/cpp1z/pr86648.C: New.

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

6 years ago[PR88146] avoid diagnostics diffs if cdtor_returns_this
aoliva [Thu, 17 Jan 2019 04:49:55 +0000 (04:49 +0000)] 
[PR88146] avoid diagnostics diffs if cdtor_returns_this

Diagnostics for testsuite/g++.dg/cpp0x/inh-ctor32.C varied across
platforms.  Specifically, on ARM, the diagnostics within the subtest
derived_ctor::inherited_derived_ctor::constexpr_noninherited_ctor did
not match those displayed on other platforms, and the test failed.

The difference seemed to have to do with locations assigned to ctors,
but it was more subtle: on ARM, the instantiation of bor's template
ctor was nested within the instantiation of bar's template ctor
inherited from bor.  The reason turned out to be related with the
internal return type of ctors: arm_cxx_cdtor_returns_this is enabled
for because of AAPCS, while cxx.cdtor_returns_this is disabled on most
other platforms.  While convert_to_void returns early with a VOID
expr, the non-VOID return type of the base ctor CALL_EXPR causes
convert_to_void to inspect the called decl for nodiscard attributes:
maybe_warn_nodiscard -> cp_get_fndecl_from_callee ->
maybe_constant_init -> cxx_eval_outermost_constant_expr ->
instantiate_constexpr_fns -> nested instantiation.

The internal return type assigned to a cdtor should not affect
instantiation (constexpr or template) decisions, IMHO.  We know it
affects diagnostics, but I have a hunch this might bring deeper issues
with it, so I've arranged for the CALL_EXPR handler in convert_to_void
to disregard cdtors, regardless of the ABI.

for  gcc/cp/ChangeLog

PR c++/88146
* cvt.c (convert_to_void): Handle all cdtor calls as if
returning void.

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

6 years ago PR target/87306
linkw [Thu, 17 Jan 2019 03:03:38 +0000 (03:03 +0000)] 
PR target/87306
    * gcc.dg/vect/bb-slp-pow-1.c: Modify to reflect that
    the loop is not vectorized on POWER unless hardware
    misaligned loads are available.

--T his line, and those below, will be ignored--

M    gcc/testsuite/ChangeLog
M    gcc/testsuite/gcc.dg/vect/bb-slp-pow-1.c

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

6 years ago runtime: dropg before CAS g status to _Grunnable/_Gwaiting
ian [Thu, 17 Jan 2019 02:14:28 +0000 (02:14 +0000)] 
runtime: dropg before CAS g status to _Grunnable/_Gwaiting

    Currently, we dropg (which clears gp.m) after we CAS the g status
    to _Grunnable or _Gwaiting. Immediately after CASing the g status,
    another thread may CAS it to _Gscan status and scan its stack.
    With precise stack scan, it accesses gp.m in order to switch to g
    and back (in doscanstackswitch). This races with dropg. If
    doscanstackswitch reads gp.m, then dropg runs, when we restore
    the m at the end of the scan it will set to a stale value. Worse,
    if dropg runs after doscanstackswitch sets the new m, gp will be
    running with a nil m.

    To fix this, we do dropg before CAS g status to _Grunnable or
    _Gwaiting. We can do this safely if we are CASing from _Grunning,
    as we own the g when it is in _Grunning. There is one case where
    we CAS from _Gsyscall to _Grunnable. It is not safe to dropg when
    it is in _Gsyscall, as precise stack scan needs to read gp.m in
    order to signal the m. So we need to introduce a transient state,
    _Gexitingsyscall, between _Gsyscall and _Grunnable, where the GC
    should not scan its stack.

    In is a little unfortunate that we have to add another g status.
    We could reuse an existing one (e.g. _Gcopystack), but it is
    clearer and safer to just use a new one, as Austin suggested.

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

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

6 years agoDaily bump.
gccadmin [Thu, 17 Jan 2019 00:16:26 +0000 (00:16 +0000)] 
Daily bump.

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

6 years ago[libbacktrace] Handle DW_FORM_GNU_strp_alt
vries [Thu, 17 Jan 2019 00:08:05 +0000 (00:08 +0000)] 
[libbacktrace] Handle DW_FORM_GNU_strp_alt

Handle DW_FORM_GNU_strp_alt which references the .debug_str section in the
.gnu_debugaltlink file.

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

PR libbacktrace/82857
* dwarf.c (read_attribute): Handle DW_FORM_GNU_strp_alt
using altlink.

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

6 years ago[libbacktrace] Handle alt FORMS without .gnu_debugaltlink
vries [Thu, 17 Jan 2019 00:07:53 +0000 (00:07 +0000)] 
[libbacktrace] Handle alt FORMS without .gnu_debugaltlink

Handle DW_FORM_GNU_strp_alt and DW_FORM_GNU_ref_alt references robustly in
presence of missing .gnu_debugaltlink file.

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

* dwarf.c (enum attr_val_encoding): Add ATTR_VAL_NONE.
(read_attribute): Add altlink parameter.  Handle missing altlink for
DW_FORM_GNU_strp_alt and DW_FORM_GNU_ref_alt.
(find_address_ranges, build_address_map, build_dwarf_data): Add and
handle altlink parameter.
(read_referenced_name, read_function_entry): Add argument to
read_attribute call.

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