Richard Sandiford [Mon, 21 Aug 2017 11:14:56 +0000 (11:14 +0000)]
Move vector_type_mode to tree.c
...so that it's possible to use TYPE_MODE in tree.h.
2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
gcc/
* stor-layout.h (vector_type_mode): Move to...
* tree.h (vector_type_mode): ...here.
* stor-layout.c (vector_type_mode): Move to...
* tree.c (vector_type_mode): ...here. Include rtl.h and regs.h.
From-SVN: r251221
Richard Biener [Mon, 21 Aug 2017 10:29:00 +0000 (10:29 +0000)]
re PR go/78628 (GO fails to build a translation unit decl)
2017-08-21 Richard Biener <rguenther@suse.de>
include/
* simple-object.h (simple_object_copy_lto_debug_sections): New
function.
libiberty/
* simple-object-common.h (struct simple_object_functions): Add
copy_lto_debug_sections hook.
* simple-object.c: Include fcntl.h.
(handle_lto_debug_sections): New helper function.
(simple_object_copy_lto_debug_sections): New function copying
early LTO debug sections to regular debug sections in a new file.
(simple_object_start_write): Handle NULL segment_name.
* simple-object-coff.c (simple_object_coff_functions): Adjust
for not implemented copy_lto_debug_sections hook.
* simple-object-mach-o.c (simple_object_mach_o_functions): Likewise.
* simple-object-xcoff.c (simple_object_xcoff_functions): Likewise.
* simple-object-elf.c (SHT_NULL, SHT_SYMTAB, SHT_RELA, SHT_REL,
SHT_GROUP): Add various sectopn header types.
(SHF_EXCLUDE): Add flag.
(Elf32_External_Sym, Elf64_External_Sym): Add symbol struct.
(ELF_ST_BIND, ELF_ST_TYPE, ELF_ST_INFO): Add accessors.
(STT_OBJECT, STT_FUNC, STT_TLS, STT_GNU_IFUNC): Add Symbol types.
(STV_DEFAULT): Add symbol visibility.
(SHN_COMMON): Add special section index name.
(struct simple_object_elf_write): New.
(simple_object_elf_start_write): Adjust for new private data.
(simple_object_elf_write_shdr): Pass in values for all fields
we write.
(simple_object_elf_write_to_file): Adjust. Copy from recorded
section headers if requested.
(simple_object_elf_release_write): Release private data.
(simple_object_elf_copy_lto_debug_sections): Copy and rename sections
as denoted by PFN and all their dependences, symbols and relocations
to the empty destination file.
(simple_object_elf_functions): Adjust for copy_lto_debug_sections hook.
gcc/
* debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
register_external_die hooks.
(debug_false_tree_charstarstar_uhwistar): Declare.
(debug_nothing_tree_charstar_uhwi): Likewise.
* debug.c (do_nothing_debug_hooks): Adjust.
(debug_false_tree_charstarstar_uhwistar): New do nothing.
(debug_nothing_tree_charstar_uhwi): Likewise.
* dbxout.c (dbx_debug_hooks): Adjust.
(xcoff_debug_hooks): Likewise.
* sdbout.c (sdb_debug_hooks): Likewise.
* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
* dwarf2out.c (macinfo_label_base): New global.
(dwarf2out_register_external_die): New function for the
register_external_die hook.
(dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
(dwarf2_debug_hooks): Use them.
(dwarf2_lineno_debug_hooks): Adjust.
(struct die_struct): Add with_offset flag.
(DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
defining section names for the early LTO debug variants.
(reset_indirect_string): New helper.
(add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
(print_dw_val): Add support for offsetted symbol references.
(get_ultimate_context): Split out from is_cxx.
(is_cxx): Use get_ultimate_context.
(is_fortran): Add decl overload.
(compute_comp_unit_symbol): Split out worker from
compute_section_prefix.
(compute_section_prefix): Call compute_comp_unit_symbol and
set comdat_type_p here.
(output_die): Skip DIE symbol output for the LTO added one.
Handle DIE symbol references with offset.
(output_comp_unit): Guard section name mangling properly.
For LTO debug sections emit a symbol at the section beginning
which we use to refer to its DIEs.
(add_abstract_origin_attribute): For DIEs registered via
dwarf2out_register_external_die directly refer to the early
DIE rather than indirectly through the shadow one we created.
Remove obsolete call to dwarf2out_abstract_function for
non-function/block origins.
(gen_array_type_die): When generating early LTO debug do
not emit DW_AT_string_length.
(gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
late when in LTO. As suggested place a gcc_unreachable for
the DECL_ABSTRACT_P case.
(gen_subprogram_die): Avoid another specification DIE
for early built declarations/definitions for the late LTO case.
(gen_variable_die): Add type references for late duplicated VLA dies
when in late LTO.
(gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
we have the abstract instance already.
(process_scope_var): Adjust decl DIE contexts in LTO which
first puts them in limbo.
(gen_decl_die): Do not generate type DIEs late apart from
types for VLAs or for decls we do not yet have a DIE. Do not
call dwarf2out_abstract_function late.
(dwarf2out_early_global_decl): Make sure to create DIEs
for abstract instances of a decl first.
(dwarf2out_late_global_decl): Adjust comment.
(output_macinfo_op): With multiple macro sections use
macinfo_label_base to distinguish labels.
(output_macinfo): Likewise. Update macinfo_label_base.
Pass in the line info label.
(note_variable_value_in_expr): When generating LTO resolve
all variable values here by generating DIEs as needed.
(init_sections_and_labels): Add early LTO debug flag parameter
and generate different sections and names if set. Add generation
counter for the labels so we can have multiple of them.
(reset_dies): Helper to allow DIEs to be output multiple times.
(dwarf2out_finish): When outputting DIEs to the fat part of an
LTO object first reset DIEs.
(dwarf2out_early_finish): Output early DIEs when generating LTO.
(modified_type_die): Check for decl_ultimate_origin being self
before recursing.
(gen_type_die_with_usage): Likewise.
(gen_typedef_die): Allow decl_ultimate_origin being self.
(set_decl_abstract_flags): Remove.
(set_block_abstract_flags): Likewise.
(dwarf2out_abstract_function): Treat the early generated DIEs
as the abstract copy and only add DW_AT_inline and
DW_AT_artificial here and call set_decl_origin_self.
If the DIE has an abstract origin don't do anything.
* tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
if we have none yet (Go fails to build one, PR78628).
(variably_modified_type_p): Prevent endless recursion for Ada
cyclic pointer types.
* lto-streamer-in.c: Include debug.h.
(dref_queue): New global.
(lto_read_tree_1): Stream in DIE references.
(lto_input_tree): Register DIE references.
(input_function): Stream DECL_DEBUG_ARGS.
* lto-streamer-out.c: Include debug.h.
(lto_write_tree_1): Output DIE references.
(DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
(output_function): Stream DECL_DEBUG_ARGS.
* tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
Stream DECL_ABSTRACT_ORIGIN.
* tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
(write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
DECL_CONTEXT for file-scope decls.
* lto-streamer.h (struct dref_entry): Declare.
(dref_queue): Likewise.
* cfgexpand.c (pass_expand::execute): Do not call the
outlining_inline_function hook here.
* lto-wrapper.c (debug_obj): New global.
(tool_cleanup): Unlink it if required.
(debug_objcopy): New function.
(run_gcc): Handle early debug sections in the IL files by
extracting them to separate files, partially linkin them and
feeding the result back as result to the linker.
* config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
sections into a separate segment.
* config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
segments.
(darwin_asm_dwarf_section): Likewise.
(darwin_asm_output_dwarf_offset): Likewise.
* config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
lto/
* lto.c (unify_scc): Truncate DIE reference queue for dropped SCCs.
(lto_read_decls): Process TRANSLATION_UNIT_DECLs. Remove
TYPE_DECL debug processing, register DIE references from
prevailing SCCs with the debug machinery.
(lto_section_with_id): Handle LTO debug sections.
libstdc++/
* testsuite/libstdc++-prettyprinters/prettyprinters.exp: Run all
tests with -flto as well if supported.
testsuite/
* c-c++-common/asan/global-overflow-1.c: Adjust diagnostic location
regex to handle the LTO case.
* c-c++-common/asan/heap-overflow-1.c: Likewise.
* c-c++-common/asan/misalign-1.c: Likewise.
* c-c++-common/asan/misalign-2.c: Likewise.
* c-c++-common/asan/null-deref-1.c: Likewise.
* c-c++-common/asan/stack-overflow-1.c: Likewise.
* c-c++-common/asan/strncpy-overflow-1.c: Likewise.
* c-c++-common/asan/use-after-free-1.c: Likewise.
* c-c++-common/asan/alloca_big_alignment.c: Likewise.
* c-c++-common/asan/alloca_detect_custom_size.c: Likewise.
* c-c++-common/asan/alloca_overflow_partial.c: Likewise.
* c-c++-common/asan/alloca_overflow_right.c: Likewise.
* c-c++-common/asan/alloca_underflow_left.c: Likewise.
* g++.dg/asan/large-func-test-1.C: Likewise.
* gfortran.dg/save_6.f90: Add -flto -g variant of save_5.f90.
From-SVN: r251220
Richard Sandiford [Mon, 21 Aug 2017 09:51:14 +0000 (09:51 +0000)]
Pass rtx and index to read-md.c iterator routines
The read-md.c iterator callbacks previously used a void * to record the
position at which the iterator value should be installed. This doesn't
scale easily to the SUBREG_BYTE representation used by a later patch,
so this patch replaces the void * with both an rtx and an operand
number. The operand number is ignored for modes and codes.
2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
gcc/
* read-md.h (md_reader::record_potential_iterator_use): Replace
pointer argument with an rtx and an index.
* read-rtl.c (iterator_group::apply_iterator): Likewise.
(apply_mode_iterator): Likewise.
(apply_code_iterator): Likewise.
(apply_int_iterator): Likewise.
(apply_subst_iterator): Likewise.
(record_iterator_use): Likewise.
(record_attribute_use): Likewise.
(md_reader::record_potential_iterator_use): Likewise. Update calls
to record_iterator_use and apply_iterator.
(iterator_use): Replace ptr with x and index.
(attribute_use): Likewise.
(apply_attribute_uses): Update calls to apply_iterator.
(apply_iterators): Likewise. Update initialization of iterator_use.
(rtx_reader::read_rtx_code): Update calls to record_iterator_use
and record_potential_iterator_use.
(rtx_reader::read_rtx_operand): Likewise.
Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r251219
Richard Sandiford [Mon, 21 Aug 2017 09:46:05 +0000 (09:46 +0000)]
Fix bogus CONST_WIDE_INT hash
The CONST_WIDE_INT case in const_rtx_hash_1 started the hash
with the precision of the mode, but the mode is always VOIDmode.
2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
gcc/
* varasm.c (const_rtx_hash_1): Don't hash in the mode of a
CONST_WIDE_INT.
Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r251218
Richard Biener [Mon, 21 Aug 2017 07:37:59 +0000 (07:37 +0000)]
re PR tree-optimization/81884 (Invalid code generation with zero size arrays or flexible array members)
2017-08-21 Richard Biener <rguenther@suse.de>
PR middle-end/81884
* tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
at struct end conservatively when comparing common bases.
* g++.dg/torture/pr81884.C: New testcase.
From-SVN: r251217
Richard Biener [Mon, 21 Aug 2017 07:21:33 +0000 (07:21 +0000)]
tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
2017-08-21 Richard Biener <rguenther@suse.de>
* tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
(mem_ref_in_stmt): Remove.
(determine_max_movement): Use ref index to get at the reference.
(invariantness_dom_walker::before_dom_children): Deal with
lim data already initialized.
(gather_mem_refs_stmt): Initialize lim data and record ref index.
From-SVN: r251216
GCC Administrator [Mon, 21 Aug 2017 00:16:57 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r251215
Martin Sebor [Sun, 20 Aug 2017 21:31:39 +0000 (21:31 +0000)]
re PR c/81854 (weak alias of an incompatible symbol accepted)
libstdc++/ChangeLog:
PR c/81854
* src/c++98/compatibility.cc (_GLIBCXX_3_4_SYMVER): Declare alias
target as a C++ function with no prototype.
(_GLIBCXX_3_4_5_SYMVER): Ditto.
From-SVN: r251211
John David Anglin [Sun, 20 Aug 2017 19:03:36 +0000 (19:03 +0000)]
Fix typo.
From-SVN: r251210
John David Anglin [Sun, 20 Aug 2017 18:52:59 +0000 (18:52 +0000)]
re PR testsuite/81056 (FAIL: 17_intro/names.cc (test for excess errors))
PR testsuite/81056
* testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__
From-SVN: r251208
John David Anglin [Sun, 20 Aug 2017 18:23:41 +0000 (18:23 +0000)]
re PR ipa/77732 (FAIL: gcc.dg/ipa/ipcp-cstagg-7.c scan-ipa-dump-times cp "Discovered an indirect call to a known target" 3)
PR ipa/77732
* gcc.dg/ipa/ipcp-cstagg-7.c: Xfail on 32-bit hppa.
From-SVN: r251206
GCC Administrator [Sun, 20 Aug 2017 00:16:25 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r251205
Uros Bizjak [Sat, 19 Aug 2017 12:31:08 +0000 (14:31 +0200)]
i386.h (OPTION_MASK_ISA_ROUND): Remove.
* config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
(TARGET_ISA_ROUND): Ditto.
(TARGET_ROUND): Ditto.
* config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
* config/i386/i386.md: Ditto.
* config/i386/sse.md: Ditto.
* config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
with OPTION_MASK_ISA_SSE4_1.
From-SVN: r251201
Uros Bizjak [Sat, 19 Aug 2017 08:20:20 +0000 (10:20 +0200)]
re PR target/81894 (Typo in x86 built-in function list)
PR target/81894
* doc/extend.texi (x86 Built-in Functions): Correct the name of
__builtin_ia32_lzcnt_u16.
From-SVN: r251197
GCC Administrator [Sat, 19 Aug 2017 00:16:47 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r251196
David Malcolm [Fri, 18 Aug 2017 23:56:28 +0000 (23:56 +0000)]
jit: fix segfault with autovectorization (PR tree-optimization/46805)
libgccjit ran into its own version of PR tree-optimization/46805 (seen
with the Go frontend); this patch fixes it in the same way.
gcc/jit/ChangeLog:
PR tree-optimization/46805
* dummy-frontend.c (jit_langhook_parse_file): Handle vector types.
gcc/testsuite/ChangeLog:
PR tree-optimization/46805
* jit.dg/all-non-failing-tests.h: Add test-autovectorize.c.
* jit.dg/test-autovectorize.c: New test case.
From-SVN: r251192
David Malcolm [Fri, 18 Aug 2017 23:50:34 +0000 (23:50 +0000)]
jit: make simpler reproducers
The C reproducers generated by gcc_jit_context_dump_reproducer_to_file
contain numerous pointer values (from %p) to ensure uniqueness of the
identifiers, but this makes them less readable than they could be.
This patch updates reproducer::make_identifier so that the pointer
is only added if it's necessary for uniqueness.
gcc/jit/ChangeLog:
* jit-recording.c (class gcc::jit::reproducer): Rename field
"m_identifiers" to "m_map_memento_to_identifier". Add field
"m_set_identifiers" and struct hash_traits for it.
(gcc::jit::reproducer::reproducer): Update for above.
(convert_to_identifier): New function.
(gcc::jit::reproducer::ensure_identifier_is_unique): New method.
(gcc::jit::reproducer::make_identifier): Avoid appending the %p
unless necessary for uniqueness. Update for field renaming.
(gcc::jit::reproducer::get_identifier): Update for field renaming.
From-SVN: r251191
Peter Bergner [Fri, 18 Aug 2017 23:41:41 +0000 (18:41 -0500)]
re PR target/80210 (ICE in in extract_insn, at recog.c:2311 on ppc64 for with __builtin_pow)
gcc/
PR target/80210
* config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
(rs6000_set_current_function): Rewrite function to use it.
gcc/testsuite/
PR target/80210
* gcc.target/powerpc/pr80210.c: New test.
From-SVN: r251190
Ian Lance Taylor [Fri, 18 Aug 2017 20:17:26 +0000 (20:17 +0000)]
re PR go/81893 (compilation error in libgo starting with r251127)
PR go/81893
runtime: only use PPC GNU/Linux register code on little endian
Reportedly the current code builds on little endian but not big endian.
Fixes https://gcc.gnu.org/PR81893.
Reviewed-on: https://go-review.googlesource.com/57110
From-SVN: r251188
Jonathan Wakely [Fri, 18 Aug 2017 18:20:43 +0000 (19:20 +0100)]
Simplify allocator usage in unordered containers
* include/bits/hashtable_policy.h (_ReuseOrAllocNode): Remove
__value_alloc_type and __value_alloc_traits typedefs.
(_ReuseOrAllocNode::operator()): Call construct and destroy on the
node allocator.
(_Hashtable_alloc): Simplify __value_alloc_traits typedef.
(_Hashtable_alloc<_NodeAlloc>::_M_allocate_node(_Args&&...)): Call
construct on the node allocator.
(_Hashtable_alloc<_NodeAlloc>::_M_deallocate_node(__node_type*)): Call
destroy on the node allocator.
From-SVN: r251187
David Malcolm [Fri, 18 Aug 2017 18:12:47 +0000 (18:12 +0000)]
C++: fix ordering of missing std #include suggestion (PR c++/81514)
gcc/cp/ChangeLog:
PR c++/81514
* name-lookup.c (maybe_suggest_missing_header): Convert return
type from void to bool; return true iff a suggestion was offered.
(suggest_alternative_in_explicit_scope): Move call to
maybe_suggest_missing_header to before use of best_match, and
return true if the former offers a suggestion.
gcc/testsuite/ChangeLog:
PR c++/81514
* g++.dg/lookup/empty.h: New file.
* g++.dg/lookup/missing-std-include-2.C: Replace include of
stdio.h with empty.h and a declaration of a "std::sprintf" not based
on a built-in.
From-SVN: r251186
Jonathan Wakely [Fri, 18 Aug 2017 17:46:57 +0000 (18:46 +0100)]
PR libstdc++/81891 fix double-free in hashtable constructor
PR libstdc++/81891
* include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator,
size_type, const _H1&, const _H2&, const _Hash&, const _Equal&,
const _ExtractKey&, const allocator_type&)): Let destructor do clean
up if an exception is thrown.
* testsuite/23_containers/unordered_map/cons/81891.cc: New.
From-SVN: r251185
Ian Lance Taylor [Fri, 18 Aug 2017 14:05:52 +0000 (14:05 +0000)]
misc/cgo/test: make cgo tests run on AIX
Reviewed-on: https://go-review.googlesource.com/56910
From-SVN: r251182
Marek Polacek [Fri, 18 Aug 2017 12:26:00 +0000 (12:26 +0000)]
c-parser.c (c_parser_postfix_expression): Remove unused code.
* c-parser.c (c_parser_postfix_expression): Remove unused code. Update
commentary.
From-SVN: r251181
H.J. Lu [Fri, 18 Aug 2017 09:38:38 +0000 (09:38 +0000)]
Add warn_if_not_aligned attribute
Add warn_if_not_aligned attribute as well as command line options:
-Wif-not-aligned and -Wpacked-not-aligned.
__attribute__((warn_if_not_aligned(N))) causes compiler to issue a
warning if the field in a struct or union is not aligned to N:
typedef unsigned long long __u64
__attribute__((aligned(4),warn_if_not_aligned(8)));
struct foo
{
int i1;
int i2;
__u64 x;
};
__u64 is aligned to 4 bytes. But inside struct foo, __u64 should be
aligned at 8 bytes. It is used to define struct foo in such a way that
struct foo has the same layout and x has the same alignment when __u64
is aligned at either 4 or 8 bytes.
Since struct foo is normally aligned to 4 bytes, a warning will be issued:
warning: alignment 4 of 'struct foo' is less than 8
Align struct foo to 8 bytes:
struct foo
{
int i1;
int i2;
__u64 x;
} __attribute__((aligned(8)));
silences the warning. It also warns the field with misaligned offset:
struct foo
{
int i1;
int i2;
int i3;
__u64 x;
} __attribute__((aligned(8)));
warning: 'x' offset 12 in 'struct foo' isn't aligned to 8
This warning is controlled by -Wif-not-aligned and is enabled by default.
When -Wpacked-not-aligned is used, the same warning is also issued for
the field with explicitly specified alignment in a packed struct or union:
struct __attribute__ ((aligned (8))) S8 { char a[8]; };
struct __attribute__ ((packed)) S {
struct S8 s8;
};
warning: alignment 1 of 'struct S' is less than 8
This warning is disabled by default and enabled by -Wall.
gcc/
PR c/53037
* print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
and TYPE_WARN_IF_NOT_ALIGN.
* stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
(handle_warn_if_not_align): New.
(place_union_field): Call handle_warn_if_not_align.
(place_field): Call handle_warn_if_not_align. Copy
TYPE_WARN_IF_NOT_ALIGN.
(finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
(layout_type): Likewise.
* tree-core.h (tree_type_common): Add warn_if_not_align. Set
spare to 18.
(tree_decl_common): Add warn_if_not_align.
* tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
* tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
(SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
(DECL_WARN_IF_NOT_ALIGN): Likewise.
(SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
* doc/extend.texi: Document warn_if_not_aligned attribute.
* doc/invoke.texi: Document -Wif-not-aligned and
-Wpacked-not-aligned.
gcc/c-family/
PR c/53037
* c-attribs.c (handle_warn_if_not_aligned_attribute): New.
(c_common_attribute_table): Add warn_if_not_aligned.
(handle_aligned_attribute): Renamed to ...
(common_handle_aligned_attribute): Remove argument, name, and add
argument, warn_if_not_aligned. Handle warn_if_not_aligned.
(handle_aligned_attribute): New.
* c.opt: Add -Wif-not-aligned and -Wpacked-not-aligned.
gcc/c/
PR c/53037
* c-decl.c (merge_decls): Also merge DECL_WARN_IF_NOT_ALIGN.
(check_bitfield_type_and_width): Don't allow bit-field with
warn_if_not_aligned type.
gcc/cp/
PR c/53037
* decl.c (duplicate_decls): Also merge DECL_WARN_IF_NOT_ALIGN.
* decl2.c (grokbitfield): Don't allow bit-field with
warn_if_not_aligned type.
gcc/testsuite/
PR c/53037
* c-c++-common/pr53037-5.c: New test.
* g++.dg/pr53037-1.C: Likewise.
* g++.dg/pr53037-2.C: Likewise.
* g++.dg/pr53037-3.C: Likewise.
* g++.dg/pr53037-4.C: Likewise.
* gcc.dg/pr53037-1.c: Likewise.
* gcc.dg/pr53037-2.c: Likewise.
* gcc.dg/pr53037-3.c: Likewise.
* gcc.dg/pr53037-4.c: Likewise.
From-SVN: r251180
Ian Lance Taylor [Fri, 18 Aug 2017 04:40:42 +0000 (04:40 +0000)]
cmd/go: pass -funwind-tables when compiling C code
Using -funwind-tables is necessary to permit Go code to correctly
throw a panic through C code. This hasn't been necessary in the past
as -funwind-tables is the default on x86. However, it is not the
default for PPC AIX.
Reviewed-on: https://go-review.googlesource.com/56650
From-SVN: r251179
GCC Administrator [Fri, 18 Aug 2017 00:16:33 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r251178
Martin Liska [Thu, 17 Aug 2017 19:56:46 +0000 (21:56 +0200)]
Fix build of --enable-gather-detailed-mem-stats (PR bootstrap/81864).
2017-08-17 Martin Liska <mliska@suse.cz>
PR bootstrap/81864
* tree-loop-distribution.c (ddrs_table): Change type to pointer
type.
(get_data_dependence): Use it as pointer type.
(distribute_loop): Likewise.
From-SVN: r251165
Bill Schmidt [Thu, 17 Aug 2017 19:31:54 +0000 (19:31 +0000)]
altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
2017-08-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
(p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
(p8_vmrgow_<mode>_direct): New define_insn.
* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
handle endianness for vmrgew and vmrgow permute patterns.
From-SVN: r251161
Nathan Sidwell [Thu, 17 Aug 2017 18:57:03 +0000 (18:57 +0000)]
cp-tree.def (TEMPLATE_TEMPLATE_PARM): Remove stale comment.
* cp-tree.def (TEMPLATE_TEMPLATE_PARM): Remove stale comment.
* cp-tree.h (ENUM_TEMPLATE_INFO): Delete.
(TYPE_TEMPLATE_INFO): Simplify.
(SET_TYPE_TEMPLATE_INFO): Simplify.
From-SVN: r251159
Peter Bergner [Thu, 17 Aug 2017 17:58:31 +0000 (12:58 -0500)]
altivec.md (VParity): Remove TARGET_VSX_TIMODE.
gcc/
* config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
* config/rs6000/rs6000-cpus.def: Remove comment.
(ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
(POWERPC_MASKS): Likewise.
* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
use of TARGET_VSX_TIMODE.
(rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
(rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
TARGET_VSX_TIMODE. Change use of TARGET_VSX_TIMODE to TARGET_VSX.
(rs6000_option_override_internal): Remove dead code.
(rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
(rs6000_legitimize_reload_address): Likewise.
(rs6000_legitimate_address_p): Likewise.
(rs6000_opt_masks): Delete "vsx-timode".
(rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
from function comment.
* config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
* config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
(V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
condition.
* config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
* config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
* config/rs6000/vsx.md (VSX_LE_128): Likewise.
(VSX_TI): Likewise.
(VSX_M): Likewise.
(define_peephole2): Likewise.
gcc/testsuite/
* gcc.target/powerpc/p8vector-int128-1.c: Remove use of -mvsx-timode.
* gcc.target/powerpc/p9-vparity.c: Likewise.
* gcc.target/powerpc/pr68805.c: Likewise.
* gcc.target/powerpc/pr80098-4.c: Remove useless test case.
From-SVN: r251158
Martin Sebor [Thu, 17 Aug 2017 16:50:06 +0000 (16:50 +0000)]
PR c/81859 - [8 Regression] valgrind error from warn_about_normalization
gcc/ChangeLog:
PR c/81859
* pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
past the end of an array.
(test_pp_format): Add test cases.
From-SVN: r251157
Richard Sandiford [Thu, 17 Aug 2017 16:31:09 +0000 (16:31 +0000)]
Add missing ECF_NOTHROW flags to internal.def
This patch adds missing ECF_NOTHROW flags to the vectorisable
integer internal functions.
2017-08-17 Richard Sandiford <richard.sandiford@linaro.org>
gcc/
* internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
missing ECF_NOTHROW flags.
From-SVN: r251155
Nathan Sidwell [Thu, 17 Aug 2017 15:56:49 +0000 (15:56 +0000)]
lex.c (maybe_add_lang_type_raw): BOUND_TEMPLATE_TEMPLATE_PARMs don't need lang_type.
* lex.c (maybe_add_lang_type_raw): BOUND_TEMPLATE_TEMPLATE_PARMs
don't need lang_type.
(cxx_make_type): Use maybe_add_lang_type_raw return value.
* mangle.c (CLASSTYPE_TEMPLATE_ID_P): Don't rely on
TYPE_LANG_SPECIFIC.
From-SVN: r251154
Peter Bergner [Thu, 17 Aug 2017 15:56:48 +0000 (10:56 -0500)]
re PR target/72804 (Poor code gen with -mvsx-timode)
gcc/
PR target/72804
* config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
operands residing in integer registers.
(*vsx_le_perm_load_<mode>): Likewise.
(*vsx_le_perm_store_<mode>): Likewise.
(define_peephole2): Add peepholes to optimize the above.
gcc/testsuite/
PR target/72804
* gcc.target/powerpc/pr72804.c: New test.
From-SVN: r251153
Marek Polacek [Thu, 17 Aug 2017 14:33:13 +0000 (14:33 +0000)]
re PR middle-end/81814 (Incorrect behaviour at -O0 (conditional operator))
PR middle-end/81814
* fold-const.c (operand_equal_for_comparison_p): Remove code that used
to mimic what shorten_compare did. Change the return type to bool.
(fold_cond_expr_with_comparison): Update call to
operand_equal_for_comparison_p.
(fold_ternary_loc): Likewise.
* gcc.dg/torture/pr81814.c: New test.
From-SVN: r251152
Richard Biener [Thu, 17 Aug 2017 13:39:58 +0000 (13:39 +0000)]
re PR ada/81878 (--disable-bootstrap --enable-languages=ada fails)
2017-08-17 Richard Biener <rguenther@suse.de>
PR ada/81878
* Makefile.in (CXX_LFLAGS): Remove.
(TOOLS_FLAGS_TO_PASS_NATIVE): Pass $(CXX) as CXX.
(TOOLS_FLAGS_TO_PASS_RE): Likewise.
From-SVN: r251150
Jackson Woodruff [Thu, 17 Aug 2017 12:54:10 +0000 (12:54 +0000)]
[AArch64] Improve SIMD store of zero.
This patch changes patterns in aarch64-simd.md to replace
movi v0.4s, 0
str q0, [x0, 16]
With:
stp xzr, xzr, [x0, 16]
When we are storing zeros to vectors like this:
void f(uint32x4_t *p) {
uint32x4_t x = { 0, 0, 0, 0};
p[1] = x;
}
gcc/
2017-08-17 Jackson Woodruff <jackson.woodruff@arm.com>
* aarch64-simd.md (mov<mode>): No longer force zero immediate into
register.
(*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
gcc/testsuite/
2017-08-17 Jackson Woodruff <jackson.woodruff@arm.com>
* gcc.target/aarch64/simd/vect_str_zero.c: New testcase.
From-SVN: r251149
Nathan Sidwell [Thu, 17 Aug 2017 12:47:30 +0000 (12:47 +0000)]
cp-tree.h (struct lang_type): Remove template_info field.
* cp-tree.h (struct lang_type): Remove template_info field.
(CLASSTYPE_TEMPLATE_INFO): Use TYPE_LANG_SLOT_1.
(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise.
From-SVN: r251148
H.J. Lu [Thu, 17 Aug 2017 12:34:40 +0000 (05:34 -0700)]
Add the missing ChangeLog for r251076
From-SVN: r251147
Richard Biener [Thu, 17 Aug 2017 12:10:11 +0000 (12:10 +0000)]
tree-ssa-structalias.c (solve_graph): When propagating to successors update the graphs succ edges and avoid duplicate...
2017-08-17 Richard Biener <rguenther@suse.de>
* tree-ssa-structalias.c (solve_graph): When propagating
to successors update the graphs succ edges and avoid duplicate work.
From-SVN: r251146
Maxim Ostapenko [Thu, 17 Aug 2017 11:58:13 +0000 (11:58 +0000)]
re PR target/81861 (ASan pr64820.c testcase segfaults with LTO and -fstack-protector-strong)
2017-08-17 Maxim Ostapenko <m.ostapenko@samsung.com>
PR target/81861
* config/i386/i386.c (ix86_option_override_internal): Save target
specific options after ix86_stack_protector_guard_reg was changed.
From-SVN: r251145
Tom de Vries [Thu, 17 Aug 2017 11:27:29 +0000 (11:27 +0000)]
Require effective target nonlocal_goto for ipa/pr81696.c
2017-08-17 Tom de Vries <tom@codesourcery.com>
* gcc.dg/ipa/pr81696.c: Require effective target nonlocal_goto.
From-SVN: r251144
Richard Biener [Thu, 17 Aug 2017 10:04:04 +0000 (10:04 +0000)]
re PR fortran/81827 (Large compile time with derived-type rrays)
2017-08-17 Richard Biener <rguenther@suse.de>
PR tree-optimization/81827
* tree-ssa-structalias.c (struct variable_info): Add is_reg_var
flag.
(new_var_info): Initialize it conservatively.
(get_call_vi): Mark register vars.
(new_scalar_tmp_constraint_exp): Likewise.
(handle_rhs_call): Likewise.
(handle_const_call): Likewise.
(create_function_info_for): Likewise.
(solve_constraints): Sort varinfos to separate register from
non-register vars to pack points-to solution bitmaps during
iteration.
From-SVN: r251143
Marek Polacek [Thu, 17 Aug 2017 09:35:46 +0000 (09:35 +0000)]
gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
* gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of
1.
From-SVN: r251142
Richard Biener [Thu, 17 Aug 2017 07:16:30 +0000 (07:16 +0000)]
tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p to true when overflow is undefined and we saturated the...
2017-08-17 Richard Biener <rguenther@suse.de>
* tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
to true when overflow is undefined and we saturated the
result.
* gcc.dg/tree-ssa/vrp117.c: New testcase.
From-SVN: r251141
Alan Modra [Thu, 17 Aug 2017 02:03:03 +0000 (11:33 +0930)]
[RS6000] PR 80938, Don't emit frame info for regs that don't need saving
It is possible when using out-of-line register saves or store multiple
to save some registers unnecessarily, for example one reg in the block
saved might be unused. We don't need to emit frame info for those
registers as that just bloats the info, and also can result in an ICE
when shrink-wrap gives multiple paths through the function saving
different sets of registers. Join points need to have identical frame
register save state regardless of the path taken.
This patch reverts the previous fix for PR80939 "Use SAVE_MULTIPLE
only if we restore what it saves (PR80938)" and instead fixes the PR
by correcting the frame info. The change to rs6000_savres_strategy
is an optimization, but note that it hides the underlying problem in
the PR testcase.
PR target/80938
* config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
Don't use store multiple if only one reg needs saving.
(interesting_frame_related_regno): New function.
(rs6000_frame_related): Don't emit frame info for regs that
don't need saving.
(rs6000_emit_epilogue): Likewise.
From-SVN: r251140
GCC Administrator [Thu, 17 Aug 2017 00:16:37 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r251139
Ian Lance Taylor [Wed, 16 Aug 2017 20:58:26 +0000 (20:58 +0000)]
runtime: better implementation of netpoll for AIX
Reviewed-on: https://go-review.googlesource.com/54170
From-SVN: r251133
Joseph Myers [Wed, 16 Aug 2017 20:21:28 +0000 (21:21 +0100)]
* fr.po: Update.
From-SVN: r251131
Nathan Sidwell [Wed, 16 Aug 2017 19:42:28 +0000 (19:42 +0000)]
tree-core.h (tree_type_non_common): Rename binfo to lang_1.
* tree-core.h (tree_type_non_common): Rename binfo to lang_1.
* tree.h (TYPE_BINFO): Use type_non_common.maxval.
(TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
* tree.c (free_lang_data_in_type): Use else-if chain. Always
clear TYPE_LANG_1. Remove obsolete member-function stripping.
(find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
(verify_type): Adjust for TYPE_BINFO move.
* lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
process TYPE_BINFO directly.
(hash_tree): Likewise.
* tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
Likewise.
* tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
Likewise.
lto/
* lto.c (mentions_vars_p_type): Use TYPE_LANG_SLOT_1.
(compare_tree_sccs_1): No need to compare TYPE_BINFO directly.
(lto_fixup_prevailing_decls): Use TYPE_LANG_SLOT_1.
From-SVN: r251129
David Malcolm [Wed, 16 Aug 2017 19:08:16 +0000 (19:08 +0000)]
diagnostic-show-locus.c: remove unused field from class colorizer
gcc/ChangeLog:
* diagnostic-show-locus.c (colorizer::m_caret): Remove unused
field.
From-SVN: r251128
Ian Lance Taylor [Wed, 16 Aug 2017 19:04:00 +0000 (19:04 +0000)]
runtime: improvements for signal registers
Fix dumpregs on i386, implement dumpregs for PPC Linux/AIX, get PC on AIX.
Reviewed-on: https://go-review.googlesource.com/56170
From-SVN: r251127
Uros Bizjak [Wed, 16 Aug 2017 18:44:28 +0000 (20:44 +0200)]
patchable_function_entry-decl.c (dg-final): Adapt scan-assembler-times for alpha*-*-*.
* c-c++-common/patchable_function_entry-decl.c (dg-final): Adapt
scan-assembler-times for alpha*-*-*.
* c-c++-common/patchable_function_entry-default.c (dg-final): Ditto.
* c-c++-common/patchable_function_entry-definition.c (dg-final): Ditto.
From-SVN: r251126
Thomas Koenig [Wed, 16 Aug 2017 17:21:22 +0000 (17:21 +0000)]
re PR fortran/81116 (Last character of allocatable-length string reset to blank in an assigment)
2017-08-16 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/81116
* frontend-passes.c (realloc_string_callback): If expression is a
concatenation, also check for dependency.
(constant_string_length): Check for presence of symtree.
2017-08-16 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/81116
* gfortran.dg/realloc_on_assignment_29.f90: New test.
From-SVN: r251125
Uros Bizjak [Wed, 16 Aug 2017 15:25:34 +0000 (17:25 +0200)]
re PR target/46091 (missed optimization: x86 bt/btc/bts instructions)
PR target/46091
* config/i386/i386.md (*anddi_1_btr): Change predicates of
operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
Add ix86_binary_operator_ok to insn constraint.
(*iordi_1_bts): Ditto.
(*xordi_1_btc): Ditto.
(*btsq): Change predicate of operand 0 to nonimmediate_operand.
Update corresponding peephole2 pattern.
(*btrq): Ditto.
(*btcq): Ditto.
testsuite/ChangeLog:
PR target/46091
* gcc.target/i386/pr46091-1.c: Update scan-assembler-times.
(testm): New test function.
* gcc.target/i386/pr46091-2.c: Ditto.
* gcc.target/i386/pr46091-3.c: Ditto.
From-SVN: r251124
Bin Cheng [Wed, 16 Aug 2017 15:02:03 +0000 (15:02 +0000)]
re PR middle-end/81832 (ICE in expand_LOOP_DIST_ALIAS, at internal-fn.c:2273)
PR tree-optimization/81832
* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
copy loop header which has IFN_LOOP_DIST_ALIAS call.
gcc/testsuite
* gcc.dg/tree-ssa/pr81832.c: New test.
From-SVN: r251123
Marek Polacek [Wed, 16 Aug 2017 11:26:41 +0000 (11:26 +0000)]
re PR middle-end/81695 (internal compiler error: in size_binop_loc, at fold-const.c:1768)
PR middle/81695
* fold-const.c (fold_indirect_ref_1): Restore original behavior
regarding size_zero_node.
From-SVN: r251119
Martin Liska [Wed, 16 Aug 2017 07:51:55 +0000 (09:51 +0200)]
Fix building of cross compiler (PR target/81753).
2017-08-16 Martin Liska <mliska@suse.cz>
PR target/81753
* config.gcc: Respect previously set extra_objs in case
of darwin target.
From-SVN: r251118
Richard Sandiford [Wed, 16 Aug 2017 07:51:13 +0000 (07:51 +0000)]
PR81815: Invalid conditional reduction
We weren't checking whether the phi in a conditional reduction was
used by the condition itself (which isn't a case we handle).
2017-08-11 Richard Sandiford <richard.sandiford@linaro.org>
gcc/
PR tree-optimization/81835
* tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
the phi SSA_NAME. Check that the condition in a COND_EXPR does
not depend on the phi.
gcc/testsuite/
PR tree-optimization/81835
* gcc.dg/vect/pr81815.c: New test.
From-SVN: r251117
Alan Modra [Wed, 16 Aug 2017 01:28:04 +0000 (10:58 +0930)]
[RS6000] Delete code made dead by r250482
* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
dead code.
From-SVN: r251116
Alan Modra [Wed, 16 Aug 2017 01:19:59 +0000 (10:49 +0930)]
[RS6000] Merge rs6000_reg_live_or_pic_offset_p into save_reg_p
rs6000_reg_live_or_pic_offset_p is just save_reg_p with special
handling for the pic register and eh_return. This merge also
simplifies the eh_return handling. The intent of
https://gcc.gnu.org/ml/gcc-patches/2010-09/msg01838.html was to say
the PIC reg needed to be saved for eh_return, not all gprs. Of
course, it doesn't hurt to say all gprs need to be saved for eh_return
as that is what the target-independent code does by setting DF live,
but it's unnecessary in the backend.
* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
(save_reg_p): ..into this. Update all callers.
(first_reg_to_save): Simplify.
From-SVN: r251115
Alan Modra [Wed, 16 Aug 2017 01:06:35 +0000 (10:36 +0930)]
[RS6000] Don't restore fixed regs
* config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
fixed regs.
From-SVN: r251114
GCC Administrator [Wed, 16 Aug 2017 00:18:45 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r251113
Joseph Myers [Tue, 15 Aug 2017 23:42:23 +0000 (00:42 +0100)]
Limit SH strncmp inline expansion (PR target/78460).
GCC mainline built for sh4-linux-gnu runs out of memory building a
glibc test, which calls strncmp with very large constant size
argument, resulting in the SH inline strncmp expansion trying to
inline a fully unrolled expansion of strncmp for that size.
This patch limits that fully unrolled expansion to the case of less
than 32 bytes. This is explicitly *not* trying to be optimal in any
way (very likely a lower threshold makes sense), just to limit enough
to avoid the out-of-memory issue in the glibc testsuite.
I have *not* run the GCC testsuite for SH. I have verified that this
allows the glibc testsuite to build OK, with both GCC mainline and GCC
7 branch (and that the included test builds quickly with patched GCC,
runs out of memory with unpatched GCC).
PR target/78460
PR target/67712
gcc:
* config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
constant count if that count is less than 32.
gcc/testsuite:
* gcc.c-torture/compile/string-large-1.c: New test.
From-SVN: r251108
Joseph Myers [Tue, 15 Aug 2017 20:38:31 +0000 (21:38 +0100)]
Update .po files.
* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
zh_TW.po: Update.
From-SVN: r251106
Nathan Sidwell [Tue, 15 Aug 2017 12:44:58 +0000 (12:44 +0000)]
gcc.c (execute): Emit friendlier message if inferior is killed by an external cause.
* gcc.c (execute): Emit friendlier message if inferior is killed
by an external cause.
From-SVN: r251104
Richard Biener [Tue, 15 Aug 2017 11:26:32 +0000 (11:26 +0000)]
re PR tree-optimization/81790 (ICE in vn_nary_build_or_lookup_1, at tree-ssa-sccvn.c:1738)
2017-08-15 Richard Biener <rguenther@suse.de>
PR tree-optimization/81790
* tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
CONSTRUCTORs from simplifying and VN.
* gcc.dg/torture/pr81790.c: New testcase.
From-SVN: r251103
Martin Sebor [Mon, 14 Aug 2017 21:32:07 +0000 (21:32 +0000)]
builtin-attrs.def: Add comments.
gcc/ChangeLog:
* builtin-attrs.def: Add comments.
From-SVN: r251101
Martin Sebor [Mon, 14 Aug 2017 20:21:44 +0000 (20:21 +0000)]
PR c/81117 - Improve buffer overflow checking in strncpy - part 2
gcc/ChangeLog:
PR c/81117
* doc/extend.texi (attribute nonstring): Document new attribute.
gcc/c-family/ChangeLog:
PR c/81117
* c-attribs.c (c_common_attribute_table): Add nonstring entry.
(handle_nonstring_attribute): New function.
gcc/testsuite/ChangeLog:
PR c/81117
* c-c++-common/attr-nonstring-1.c: New test.
From-SVN: r251100
Martin Sebor [Mon, 14 Aug 2017 18:35:13 +0000 (18:35 +0000)]
PR c/81117 - Improve buffer overflow checking in strncpy - part 1
gcc/ChangeLog:
PR c/81117
* tree-diagnostic.c (default_tree_printer): Handle %G.
* gimple-pretty-print.h (percent_G_format): Declare new function.
* gimple-pretty-print.c (percent_G_format): Define.
* tree-pretty-print.c (percent_K_format): Add argument.
gcc/c/ChangeLog:
PR c/81117
* c-objc-common.c (c_objc_common_init): Handle 'G'.
gcc/c-family/ChangeLog:
PR c/81117
* c-format.h (T89_G): New macro.
* c-format.c (local_gcall_ptr_node): New variable.
(init_dynamic_diag_info): Initialize it.
gcc/cp/ChangeLog:
PR c/81117
* error.c (cp_printer): Handle 'G'.
gcc/testsuite/ChangeLog:
PR c/81117
* gcc.dg/format/gcc_diag-10.c: Exercise %G.
From-SVN: r251098
David Edelsohn [Mon, 14 Aug 2017 18:04:31 +0000 (18:04 +0000)]
ucnid-5.c: Skip on AIX.
* gcc.dg/ucnid-5.c: Skip on AIX.
* gcc.target/powerpc/pr79909.c: Skip on AIX.
From-SVN: r251097
Martin Sebor [Mon, 14 Aug 2017 16:47:40 +0000 (16:47 +0000)]
PR translation/79998 - typo in diagnostic "specified bound %wu"
gcc/ChangeLog:
* gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
Remove a stray space.
From-SVN: r251096
Uros Bizjak [Mon, 14 Aug 2017 16:42:15 +0000 (18:42 +0200)]
re PR target/46091 (missed optimization: x86 bt/btc/bts instructions)
PR target/46091
* config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
(*iordi_1_bts): Ditto.
(*xordi_1_btc): Ditto.
testsuite/ChangeLog:
PR target/46091
* gcc.target/i386/pr46091-1.c: New test.
* gcc.target/i386/pr46091-2.c: Ditto.
* gcc.target/i386/pr46091-3.c: Ditto.
From-SVN: r251095
Wilco Dijkstra [Mon, 14 Aug 2017 16:18:37 +0000 (16:18 +0000)]
[AArch64] Fix longbranch test
Fix longbranch test so it still generates long tbz branches.
gcc/testsuite/
PR target/81643
* gcc.target/aarch64/long_branch_1.c: Improve testcase.
From-SVN: r251094
Bill Schmidt [Mon, 14 Aug 2017 14:26:33 +0000 (14:26 +0000)]
re PR target/79845 (rs6000: make code in rs6000.c more i18n-friendly)
[gcc]
2017-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/79845
* config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
Likewise.
* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
quoted strings, and make more translator-friendly.
(darwin_rs6000_override_options): Likewise.
(rs6000_option_override_internal): Likewise.
(rs6000_return_in_memory): Fix overlong line.
(init_cmulative_args): Use quoted strings, and make more
translator-friendly.
(rs6000_pass_by_reference): Fix overlong line.
(def_builtin): Use quoted strings.
(altivec_expand_predicate_builtin): Use quoted strings, and make
more translator-friendly.
(htm_expand_builtin): Use quoted strings.
(cpu_expand_builtin): Use quoted strings, and make more
translator-friendly.
(altivec_expand_builtin): Likewise.
(paired_expand_predicate_builtin): Likewise.
(rs6000_invalid_builtin): Likewise.
(builtin_function_type): Use quoted strings.
(rs6000_expand_split_stack_prologue): Use quoted strings, and make
more translator-friendly.
(rs6000_trampoline_init): Likewise.
(rs6000_handle_altivec_attribute): Likewise.
(rs6000_inner_target_options): Use quoted strings.
(rs6000_disable_incompatible_switches): Likewise.
* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
strings, and make more translator-friendly.
(SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
[gcc/testsuite]
2017-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/79845
* g++.dg/ext/altivec-cell-5.C: Adjust diagnostic strings.
* gcc.target/powerpc/altivec-cell-5.c: Likewise.
* gcc.target/powerpc/bfp/scalar-cmp-exp-eq-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-cmp-exp-gt-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-cmp-exp-lt-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-extract-exp-1.c: Likewise.
* gcc.target/powerpc/bfp/scalar-extract-exp-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-extract-exp-4.c: Likewise.
* gcc.target/powerpc/bfp/scalar-extract-exp-5.c: Likewise.
* gcc.target/powerpc/bfp/scalar-extract-sig-1.c: Likewise.
* gcc.target/powerpc/bfp/scalar-extract-sig-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-extract-sig-4.c: Likewise.
* gcc.target/powerpc/bfp/scalar-extract-sig-5.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-1.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-10.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-11.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-4.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-5.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-7.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-8.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-data-class-11.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-data-class-6.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-data-class-7.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-neg-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-neg-3.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-neg-5.c: Likewise.
* gcc.target/powerpc/bfp/vec-extract-exp-2.c: Likewise.
* gcc.target/powerpc/bfp/vec-extract-exp-3.c: Likewise.
* gcc.target/powerpc/bfp/vec-extract-sig-2.c: Likewise.
* gcc.target/powerpc/bfp/vec-extract-sig-3.c: Likewise.
* gcc.target/powerpc/bfp/vec-insert-exp-2.c: Likewise.
* gcc.target/powerpc/bfp/vec-insert-exp-3.c: Likewise.
* gcc.target/powerpc/bfp/vec-insert-exp-6.c: Likewise.
* gcc.target/powerpc/bfp/vec-insert-exp-7.c: Likewise.
* gcc.target/powerpc/bfp/vec-test-data-class-2.c: Likewise.
* gcc.target/powerpc/bfp/vec-test-data-class-3.c: Likewise.
* gcc.target/powerpc/byte-in-either-range-1.c: Likewise.
* gcc.target/powerpc/byte-in-range-1.c: Likewise.
* gcc.target/powerpc/byte-in-set-1.c: Likewise.
* gcc.target/powerpc/byte-in-set-2.c: Likewise.
* gcc.target/powerpc/cmpb-3.c: Likewise.
* gcc.target/powerpc/crypto-builtin-2.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-1.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-11.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-16.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-21.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-26.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-31.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-36.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-41.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-46.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-51.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-56.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-6.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-61.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-66.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-71.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-76.c: Likewise.
* gcc.target/powerpc/no-r11-3.c: Likewise.
* gcc.target/powerpc/pr80098-1.c: Likewise.
* gcc.target/powerpc/pr80098-2.c: Likewise.
* gcc.target/powerpc/pr80098-3.c: Likewise.
* gcc.target/powerpc/pr80098-4.c: Likewise.
* gcc.target/powerpc/vsu/vec-all-nez-7.c: Likewise.
* gcc.target/powerpc/vsu/vec-any-eqz-7.c: Likewise.
* gcc.target/powerpc/vsu/vec-cmpnez-7.c: Likewise.
* gcc.target/powerpc/vsu/vec-cntlz-lsbb-2.c: Likewise.
* gcc.target/powerpc/vsu/vec-cnttz-lsbb-2.c: Likewise.
* gcc.target/powerpc/vsu/vec-xl-len-12.c: Likewise.
* gcc.target/powerpc/vsu/vec-xl-len-13.c: Likewise.
* gcc.target/powerpc/vsu/vec-xlx-7.c: Likewise.
* gcc.target/powerpc/vsu/vec-xrx-7.c: Likewise.
* gcc.target/powerpc/vsu/vec-xst-len-12.c: Likewise.
* gcc.target/powerpc/vsu/vec-xst-len-13.c: Likewise.
From-SVN: r251092
Bin Cheng [Mon, 14 Aug 2017 11:46:03 +0000 (11:46 +0000)]
re PR tree-optimization/81799 (ICE on valid code at -O3: verify_gimple failed)
PR tree-optimization/81799
* tree-loop-distribution.c (version_loop_by_alias_check): Force
cond_expr to simple gimple operand.
gcc/testsuite
* gcc.dg/tree-ssa/pr81799.c: New.
From-SVN: r251088
Wilco Dijkstra [Mon, 14 Aug 2017 11:18:50 +0000 (11:18 +0000)]
Add check_effective_target_autoincdec.
Add check_effective_target_autoincdec that returns true if a target
runs the auto_inc_dec optimization pass.
gcc/
* doc/sourcebuild.texi (autoincdec): Add autoincdec description.
gcc/testsuite/
PR middle-end/46932
* gcc.dg/pr46932.c: Use dg-require-effective-target autoincdec.
* lib/target-supports.exp: Add check_effective_target_autoincdec.
From-SVN: r251087
Szabolcs Nagy [Mon, 14 Aug 2017 10:28:45 +0000 (10:28 +0000)]
[AArch64] Fix dbl_mov_immediate_1.c test
gcc/testsuite:
* gcc.target/aarch64/dbl_mov_immediate_1.c: Add
-mno-pc-relative-literal-loads.
From-SVN: r251086
Georg-Johann Lay [Mon, 14 Aug 2017 09:14:16 +0000 (09:14 +0000)]
re PR target/81754 (Building of cross compiler avr-elf is broken)
gcc/
PR target/81754
PR target/81268
* config/avr/avr.opt (mgas-isr-prologues): New Var
avr_gasisr_prologues.
* config/avr/avr.md (gasisr, *gasisr): Use it instead of
TARGET_GASISR_PROLOGUES.
* config/avr/avr.c (avr_option_override): Same.
(avr_pass_pre_proep::execute): Same.
From-SVN: r251085
GCC Administrator [Mon, 14 Aug 2017 00:17:20 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r251080
H.J. Lu [Sun, 13 Aug 2017 18:31:39 +0000 (11:31 -0700)]
i386: Replace frame pointer with stack pointer in debug insns
When we eliminate frame pointer, we should also replace frame pointer
with stack pointer - UNITS_PER_WORD in debug insns. This patch fixed:
FAIL: gcc.dg/guality/pr58791-5.c -Os line pr58791-5.c:20 b1 == 9
FAIL: gcc.dg/guality/pr58791-5.c -Os line pr58791-5.c:20 b2 == 73
FAIL: gcc.dg/guality/pr58791-5.c -Os line pr58791-5.c:20 b3 == 585
FAIL: gcc.dg/guality/pr58791-5.c -Os line pr58791-5.c:20 b4 == 4681
FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:17 s1.f == 5.0
FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:17 s1.g == 6.0
FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:17 s2.g == 6.0
FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:20 s1.f == 5.0
FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:20 s1.g == 6.0
FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:20 s2.f == 5.0
FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:20 s2.g == 6.0
on Linux/i386.
PR target/81820
* config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
From-SVN: r251076
Uros Bizjak [Sun, 13 Aug 2017 16:08:25 +0000 (18:08 +0200)]
i386.md (*load_tp_<mode>): Redefine as define_insn_and_split.
* config/i386/i386.md (*load_tp_<mode>): Redefine as
define_insn_and_split. Split to a memory load from 0 in
DEFAULT_TLS_SEG_REG address space. Merge with *load_tp_x32
using PTR mode iterator.
(*load_tp_x32_zext"): Redefine as define_insn_and_split.
Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
(*add_tp_<mode>): Redefine as define_insn_and_split.
Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
address space. Merge with *add_tp_x32 using PTR mode iterator.
(*add_tp_x32_zext"): Redefine as define_insn_and_split.
Split to an add with a memory load from 0 in
DEFAULT_TLS_SEG_REG address space.
From-SVN: r251075
Thomas Koenig [Sun, 13 Aug 2017 10:29:34 +0000 (10:29 +0000)]
gfortran.texi: Document format of unformatted sequential files.
2017-08-13 Thomas Koenig <tkoenig@gcc.gnu.org>
* gfortran.texi: Document format of unformatted sequential files.
From-SVN: r251074
Andrew Pinski [Sun, 13 Aug 2017 00:18:39 +0000 (00:18 +0000)]
aarch64-option-extensions.def (rdma): Fix feature string to what Linux prints out in /proc/cpuinfo.
2017-08-12 Andrew Pinski <apinski@cavium.com>
* config/aarch64/aarch64-option-extensions.def (rdma):
Fix feature string to what Linux prints out in /proc/cpuinfo.
From-SVN: r251073
GCC Administrator [Sun, 13 Aug 2017 00:16:57 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r251072
Rainer Orth [Sat, 12 Aug 2017 16:00:00 +0000 (16:00 +0000)]
Require -static support in gcc.dg/pie-static-[12].c (PR testsuite/81793)
PR testsuite/81793
* gcc.dg/pie-static-1.c: Require both static and pie support.
* gcc.dg/pie-static-2.c: Likewise.
From-SVN: r251067
Pierre-Marie de Rodat [Sat, 12 Aug 2017 09:07:12 +0000 (09:07 +0000)]
[PR79542][Ada] Fix ICE in dwarf2out.c with nested func. inlining
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79542 reports an ICE in
dwarf2out.c for an Ada testcase built with optimization.
This crash happens during the late generation pass because
add_gnat_descriptive_type cannot find the type DIE corresponding to some
descriptive type after having tried to generate it. This is because the
DIE was generated during the early generation pass, but then pruned by
the type pruning machinery. So why was it pruned?
We are in a situation where we have cloned types (because of inlining,
IIUC) whose TYPE_NAME have non-null DECL_ABSTRACT_ORIGIN attributes. As
a consequence:
* In modified_type_die, the "handle C typedef types" part calls
gen_type_die on the cloned type.
* gen_type_die matches a typedef variant, and then calls gen_decl_die
on its TYPE_NAME, which will end up calling gen_typedef_die.
* gen_typedef_die checks decl_ultimate_origin for this TYPE_DECL, and
finds one, so it only adds a DW_AT_abstract_origin attribute to the
DW_TAG_typedef DIE, but the cloned type itself does not get its own
DIE.
* Back in modified_type_die, the call to lookup_type_die on the type
passed to gen_type_die returns NULL.
In the end, whole type trees, i.e. the ones referenced by
DECL_ABSTRACT_ORIGIN attributes, are never referenced from type pruning
"roots" and are thus pruned. The descriptive type at stake here is one
of them, hence the assertion failure.
This patch attemps to fix that with what seems to be the most sensible
thing to do in my opinion: updating the "handle C typedef types" part in
modified_type_die to check decl_ultimate_origin before calling
gen_type_die: if that function returns something not null, then we know
that gen_type_die/gen_typedef_die will not generate a DIE for the input
type, so we try to process the ultimate origin instead. It also updates
in a similar way gen_type_die_with_usage, assert that when
gen_typedef_die is called on nodes that have an ultimate origin, this
origin is themselves.
gcc/
PR ada/79542
* dwarf2out.c (modified_type_die): For C typedef types that have
an ultimate origin, process the ultimate origin instead of the
input type.
(gen_typedef_die): Assert that input DECLs have no ultimate
origin.
(gen_type_die_with_usage): For typedef variants that have an
ultimate origin, just call gen_decl_die on the original DECL.
(process_scope_var): Avoid creating DIEs for local typedefs and
concrete static variables.
gcc/testsuite/
PR ada/79542
* gnat.dg/debug13.ads, gnat.dg/debug13.adb: New testcase.
From-SVN: r251066
Alan Modra [Sat, 12 Aug 2017 00:28:04 +0000 (09:58 +0930)]
[RS6000] linux startfile/endfile
These need to match the gnu-user.h definitions to support
--enable-default-pie. Otherwise we end up linking the wrong startup
files when defaulting to PIE.
PR target/81170
PR target/81295
* config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
match gnu-user.h startfile.
(ENDFILE_LINUX_SPEC): Similarly.
From-SVN: r251065
GCC Administrator [Sat, 12 Aug 2017 00:16:31 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r251064
Marek Polacek [Fri, 11 Aug 2017 18:02:18 +0000 (18:02 +0000)]
re PR c/81795 (Stray "originally defined here" when using -Wc++-compat with #pragma GCC diagnostic push/pop)
PR c/81795
* c-decl.c (pushtag): Only print inform if the warning was printed.
(grokdeclarator): Likewise.
* gcc.dg/pr81795.c: New test.
From-SVN: r251056
Thomas Koenig [Fri, 11 Aug 2017 17:48:45 +0000 (17:48 +0000)]
invoke.texi: Actually commit change about -Ofast.
2017-08-11 Thomas Koenig <tkoenig@gcc.gnu.org>
* invoke.texi: Actually commit change about -Ofast.
From-SVN: r251055
Thomas Koenig [Fri, 11 Aug 2017 17:45:36 +0000 (17:45 +0000)]
re PR fortran/60355 ([F08] constraint C519 for BIND attribute not enforced)
2017-08-11 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/60355
* resolve.c (resolve_symbol): Adjust (and reformat)
comment. Perform check if a BIND(C) is declared
at module level regardless of whether it is typed
implicitly or not.
2017-08-11 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/60355
* gfortran.dg (bind_c_usage_30): New test.
From-SVN: r251054
Thomas Schwinge [Fri, 11 Aug 2017 15:37:14 +0000 (17:37 +0200)]
[PR lto/81430] Revert "Add nvptx_override_options_after_change"
This reverts r250421; properly fixed by r250852.
PR lto/81430
* config/nvptx/nvptx.c (nvptx_override_options_after_change):
Remove function.
(TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
From-SVN: r251053
William Schmidt [Fri, 11 Aug 2017 14:11:22 +0000 (14:11 +0000)]
Correct invalid ChangeLog entry
From-SVN: r251052
Tamar Christina [Fri, 11 Aug 2017 13:47:57 +0000 (13:47 +0000)]
aarch64.md (mov<mode>): Change.
2017-08-11 Tamar Christina <tamar.christina@arm.com>
* config/aarch64/aarch64.md (mov<mode>): Change.
(*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
* config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
From-SVN: r251051
Eric Botcazou [Fri, 11 Aug 2017 13:06:43 +0000 (13:06 +0000)]
tree-sra.c (build_access_from_expr_1): Use more precise diagnostics for storage order barriers.
* tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
for storage order barriers.
From-SVN: r251050
Martin Liska [Fri, 11 Aug 2017 10:01:13 +0000 (12:01 +0200)]
Do not instrument void variables with MPX (PR tree-opt/79987).
2017-08-11 Martin Liska <mliska@suse.cz>
PR tree-opt/79987
* tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
variables of void type.
2017-08-11 Martin Liska <mliska@suse.cz>
PR tree-opt/79987
* gcc.target/i386/mpx/pr79987.c: New test.
From-SVN: r251049
Martin Liska [Fri, 11 Aug 2017 08:14:54 +0000 (10:14 +0200)]
Introduce TARGET_SUPPORTS_ALIASES
2017-08-11 Martin Liska <mliska@suse.cz>
* c-opts.c (c_common_post_options): Replace ASM_OUTPUT_DEF with
TARGET_SUPPORTS_ALIASES.
2017-08-11 Martin Liska <mliska@suse.cz>
* asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
TARGET_SUPPORTS_ALIASES.
* cgraph.c (cgraph_node::create_same_body_alias): Likewise.
* ipa-visibility.c (can_replace_by_local_alias): Likewise.
(optimize_weakref): Likewise.
* symtab.c (symtab_node::noninterposable_alias): Likewise.
* varpool.c (varpool_node::create_extra_name_alias): Likewise.
* defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
2017-08-11 Martin Liska <mliska@suse.cz>
* decl2.c (get_tls_init_fn): Replace ASM_OUTPUT_DEF with
TARGET_SUPPORTS_ALIASES.
(handle_tls_init): Likewise.
(note_mangling_alias): Likewise. Remove ATTRIBUTE_UNUSED for
both arguments.
* optimize.c (can_alias_cdtor): Likewise.
From-SVN: r251048
Martin Liska [Fri, 11 Aug 2017 08:10:42 +0000 (10:10 +0200)]
Fix ifunc and resolver (PR ipa/81213).
2017-08-11 Martin Liska <mliska@suse.cz>
PR ipa/81213
* config/i386/i386.c (make_resolver_func): Do complete
refactoring of the function.
2017-08-11 Martin Liska <mliska@suse.cz>
PR ipa/81213
* gcc.target/i386/pr81213.c: New test.
From-SVN: r251047