Nicolas Roche [Fri, 20 Oct 2017 09:29:35 +0000 (09:29 +0000)]
configure.ac (ACX_PROG_GNAT): Append "libgnat" to the include dir.
* configure.ac (ACX_PROG_GNAT): Append "libgnat" to the include dir.
* configure: Regenerate.
From-SVN: r253928
Jakub Jelinek [Fri, 20 Oct 2017 07:35:48 +0000 (09:35 +0200)]
re PR target/82158 (_Noreturn functions that do return clobber caller's registers on ARM32 (but not other arches))
PR target/82158
* tree-cfg.c (pass_warn_function_return::execute): In noreturn
functions when optimizing replace GIMPLE_RETURN stmts with
calls to __builtin_unreachable ().
* gcc.dg/tree-ssa/noreturn-1.c: New test.
From-SVN: r253926
Jakub Jelinek [Fri, 20 Oct 2017 07:32:35 +0000 (09:32 +0200)]
re PR sanitizer/82595 (bootstrap fails in libsanitizer on powerpc64-unknown-linux-gnu)
PR sanitizer/82595
* config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o
for -fsanitize=thread link of executables.
(LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak
link of executables.
* lsan/lsan.h (__lsan_init): Add SANITIZER_INTERFACE_ATTRIBUTE.
* lsan/Makefile.am (nodist_toolexeclib_HEADERS): Add
liblsan_preinit.o.
(lsan_files): Remove lsan_preinit.cc.
(liblsan_preinit.o): New rule.
* lsan/Makefile.in: Regenerated.
From-SVN: r253925
Jakub Jelinek [Fri, 20 Oct 2017 07:30:33 +0000 (09:30 +0200)]
re PR target/82370 (AVX512 can use a memory operand for immediate-count vpsrlw, but gcc doesn't.)
PR target/82370
* config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
New mode iterators.
(<shift_insn><mode>3<mask_name>): Change the last of the 3
define_insns for logical vector shifts to use VI248_AVX512BW
iterator instead of VI48_AVX512, remove <mask_mode512bit_condition>
condition, useless isa and prefix attributes. Change the first
2 of these define_insns to ...
(<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new
define_insn for avx512vl.
(<shift_insn><mode>3): ... and this, new define_insn without
masking for non-avx512vl.
* gcc.target/i386/avx-pr82370.c: New test.
* gcc.target/i386/avx2-pr82370.c: New test.
* gcc.target/i386/avx512f-pr82370.c: New test.
* gcc.target/i386/avx512bw-pr82370.c: New test.
* gcc.target/i386/avx512vl-pr82370.c: New test.
* gcc.target/i386/avx512vlbw-pr82370.c: New test.
From-SVN: r253924
Jakub Jelinek [Fri, 20 Oct 2017 07:28:25 +0000 (09:28 +0200)]
re PR target/82370 (AVX512 can use a memory operand for immediate-count vpsrlw, but gcc doesn't.)
PR target/82370
* config/i386/sse.md (*andnot<mode>3,
<mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split
(=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit
and 256-bit vectors, the (=x,x,xm) alternative and when mask is
not applied use empty suffix even for TARGET_AVX512VL.
* config/i386/subst.md (mask_prefix3, mask_prefix4): When mask
is applied, supply evex,evex or evex,evex,evex instead of just
evex.
From-SVN: r253923
Julia Koval [Fri, 20 Oct 2017 06:31:33 +0000 (08:31 +0200)]
Add GFNI command line options and macros
gcc/
* common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET,
(OPTION_MASK_ISA_GFNI_UNSET): New.
(ix86_handle_option): Handle OPT_mgfni.
* config/i386/cpuid.h (bit_GFNI): New.
* config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni.
* config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__.
* config/i386/i386.c (ix86_target_string): Add -mgfni.
(ix86_valid_target_attribute_inner_p): Add OPT_mgfni.
* config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New.
* config/i386/i386.opt: Add mgfni.
From-SVN: r253922
Orlando Arias [Fri, 20 Oct 2017 04:49:57 +0000 (04:49 +0000)]
msp430.c (msp430_option_override): Disable -fdelete-null-pointer-checks.
* config/msp430/msp430.c (msp430_option_override): Disable
-fdelete-null-pointer-checks.
* doc/invoke.text (-fdelete-null-pointer-checks): Document that.
* lib/target-supports.exp (check_effective_target_keeps_null_pointer_checks):
Add msp430 to the list.
From-SVN: r253921
Paolo Carlini [Fri, 20 Oct 2017 00:30:41 +0000 (00:30 +0000)]
re PR c++/82308 ([C++17] deduction of template arguments results in internal compiler error)
2017-10-19 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/82308
* g++.dg/cpp1z/class-deduction45.C: New.
From-SVN: r253920
GCC Administrator [Fri, 20 Oct 2017 00:16:15 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r253919
Bob Duff [Thu, 19 Oct 2017 23:12:27 +0000 (23:12 +0000)]
exp_ch6.adb (Is_Build_In_Place_Result_Type): Fix silly bug -- "Typ" should be "T".
2017-10-19 Bob Duff <duff@adacore.com>
* exp_ch6.adb (Is_Build_In_Place_Result_Type): Fix silly bug -- "Typ"
should be "T". Handle case of a subtype of a class-wide type.
From-SVN: r253916
Pierre-Marie de Rodat [Thu, 19 Oct 2017 23:08:29 +0000 (23:08 +0000)]
[multiple changes]
2017-10-19 Bob Duff <duff@adacore.com>
* exp_util.adb: (Process_Statements_For_Controlled_Objects): Clarify
which node kinds can legitimately be ignored, and raise Program_Error
for others.
2017-10-19 Hristian Kirtchev <kirtchev@adacore.com>
* sem_elab.adb (Compilation_Unit): Handle the case of a subprogram
instantiation that acts as a compilation unit.
(Find_Code_Unit): Reimplemented.
(Find_Top_Unit): Reimplemented.
(Find_Unit_Entity): New routine.
(Process_Instantiation_SPARK): Correct the elaboration requirement a
package instantiation imposes on a unit.
2017-10-19 Bob Duff <duff@adacore.com>
* exp_ch6.adb (Is_Build_In_Place_Result_Type): Enable build-in-place
for a narrow set of controlled types.
2017-10-19 Eric Botcazou <ebotcazou@adacore.com>
* sinput.ads (Line_Start): Add pragma Inline.
* widechar.ads (Is_Start_Of_Wide_Char): Likewise.
2017-10-19 Bob Duff <duff@adacore.com>
* exp_attr.adb (Expand_N_Attribute_Reference): Disable
Make_Build_In_Place_Call_... for F(...)'Old, where F(...) is a
build-in-place function call so that the temp is declared in the right
place.
From-SVN: r253915
Alan Modra [Thu, 19 Oct 2017 23:06:20 +0000 (09:36 +1030)]
PR82575, lto debugobj references __gnu_lto_slim, ld test liblto-17 fails
If __gnu_lto_slim is global, undefined, default visibility in the
early debug object, then it finds its way into .dynsym when creating
shared libraries. __gnu_lto_slim in a symbol table (.dynsym or
.symtab) signals nm and other binutils that the object is an LTO
object needing a plugin, but that isn't the case for the ld liblti-17
tests. So, make __gnu_lto_slim hidden to prevent it becoming
dynamic. Further, make it weak because some linkers may warn on
finding an undefined global non-default visibility symbol.
PR lto/82575
* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
Make discarded non-local symbols weak and hidden.
From-SVN: r253914
Jan Hubicka [Thu, 19 Oct 2017 20:43:30 +0000 (22:43 +0200)]
x86-tune-costs.h (generic_cost, core_cost): Correct costs of x87 and SSE instructions.
* x86-tune-costs.h (generic_cost, core_cost): Correct costs
of x87 and SSE instructions.
From-SVN: r253911
Jan Hubicka [Thu, 19 Oct 2017 20:19:15 +0000 (22:19 +0200)]
asan.c (create_cond_insert_point): Do not update edge count.
* asan.c (create_cond_insert_point): Do not update edge count.
* auto-profile.c (afdo_propagate_edge): Update for edge count removal.
(afdo_propagate_circuit): Likewise.
(afdo_calculate_branch_prob): Likewise.
(afdo_annotate_cfg): Likewise.
* basic-block.h (struct edge_def): Remove count.
(edge_def::count): New accessor.
* bb-reorder.c (rotate_loop): Update.
(find_traces_1_round): Update.
(connect_traces): Update.
(sanitize_hot_paths): Update.
* cfg.c (unchecked_make_edge): Update.
(make_single_succ_edge): Update.
(check_bb_profile): Update.
(dump_edge_info): Update.
(update_bb_profile_for_threading): Update.
(scale_bbs_frequencies_int): Update.
(scale_bbs_frequencies_gcov_type): Update.
(scale_bbs_frequencies_profile_count): Update.
(scale_bbs_frequencies): Update.
* cfganal.c (connect_infinite_loops_to_exit): Update.
* cfgbuild.c (compute_outgoing_frequencies): Update.
(find_many_sub_basic_blocks): Update.
* cfgcleanup.c (try_forward_edges): Update.
(try_crossjump_to_edge): Update
* cfgexpand.c (expand_gimple_cond): Update
(expand_gimple_tailcall): Update
(construct_exit_block): Update
* cfghooks.c (verify_flow_info): Update
(redirect_edge_succ_nodup): Update
(split_edge): Update
(make_forwarder_block): Update
(duplicate_block): Update
(account_profile_record): Update
* cfgloop.c (find_subloop_latch_edge_by_profile): Update.
* cfgloopanal.c (expected_loop_iterations_unbounded): Update.
* cfgloopmanip.c (scale_loop_profile): Update.
(loopify): Update.
(lv_adjust_loop_entry_edge): Update.
* cfgrtl.c (try_redirect_by_replacing_jump): Update.
(force_nonfallthru_and_redirect): Update.
(purge_dead_edges): Update.
(rtl_flow_call_edges_add): Update.
* cgraphunit.c (init_lowered_empty_function): Update.
(cgraph_node::expand_thunk): Update.
* gimple-pretty-print.c (dump_probability): Update.
(dump_edge_probability): Update.
* gimple-ssa-isolate-paths.c (isolate_path): Update.
* haifa-sched.c (sched_create_recovery_edges): Update.
* hsa-gen.c (convert_switch_statements): Update.
* ifcvt.c (dead_or_predicable): Update.
* ipa-inline-transform.c (inline_transform): Update.
* ipa-split.c (split_function): Update.
* ipa-utils.c (ipa_merge_profiles): Update.
* loop-doloop.c (add_test): Update.
* loop-unroll.c (unroll_loop_runtime_iterations): Update.
* lto-streamer-in.c (input_cfg): Update.
(input_function): Update.
* lto-streamer-out.c (output_cfg): Update.
* modulo-sched.c (sms_schedule): Update.
* postreload-gcse.c (eliminate_partially_redundant_load): Update.
* predict.c (maybe_hot_edge_p): Update.
(unlikely_executed_edge_p): Update.
(probably_never_executed_edge_p): Update.
(dump_prediction): Update.
(drop_profile): Update.
(propagate_unlikely_bbs_forward): Update.
(determine_unlikely_bbs): Update.
(force_edge_cold): Update.
* profile.c (compute_branch_probabilities): Update.
* reg-stack.c (better_edge): Update.
* shrink-wrap.c (handle_simple_exit): Update.
* tracer.c (better_p): Update.
* trans-mem.c (expand_transaction): Update.
(split_bb_make_tm_edge): Update.
* tree-call-cdce.c: Update.
* tree-cfg.c (gimple_find_sub_bbs): Update.
(gimple_split_edge): Update.
(gimple_duplicate_sese_region): Update.
(gimple_duplicate_sese_tail): Update.
(gimple_flow_call_edges_add): Update.
(insert_cond_bb): Update.
(execute_fixup_cfg): Update.
* tree-cfgcleanup.c (cleanup_control_expr_graph): Update.
* tree-complex.c (expand_complex_div_wide): Update.
* tree-eh.c (lower_resx): Update.
(unsplit_eh): Update.
(cleanup_empty_eh_move_lp): Update.
* tree-inline.c (copy_edges_for_bb): Update.
(freqs_to_counts): Update.
(copy_cfg_body): Update.
* tree-ssa-dce.c (remove_dead_stmt): Update.
* tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
* tree-ssa-loop-im.c (execute_sm_if_changed): Update.
* tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
(unloop_loops): Update.
* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
* tree-ssa-loop-split.c (connect_loops): Update.
(split_loop): Update.
* tree-ssa-loop-unswitch.c (hoist_guard): Update.
* tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
* tree-ssa-reassoc.c (branch_fixup): Update.
* tree-ssa-tail-merge.c (replace_block_by): Update.
* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
(compute_path_counts): Update.
(update_profile): Update.
(recompute_probabilities): Update.
(update_joiner_offpath_counts): Update.
(estimated_freqs_path): Update.
(freqs_to_counts_path): Update.
(clear_counts_path): Update.
(ssa_fix_duplicate_block_edges): Update.
(duplicate_thread_path): Update.
* tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
(case_bit_test_cmp): Update.
(collect_switch_conv_info): Update.
(gen_inbound_check): Update.
(do_jump_if_equal): Update.
(emit_cmp_and_jump_insns): Update.
* tree-tailcall.c (decrease_profile): Update.
(eliminate_tail_call): Update.
* tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
(vect_do_peeling): Update.
* tree-vect-loop.c (scale_profile_for_vect_loop): Update.
* ubsan.c (ubsan_expand_null_ifn): Update.
(ubsan_expand_ptr_ifn): Update.
* value-prof.c (gimple_divmod_fixed_value): Update.
(gimple_mod_pow2): Update.
(gimple_mod_subtract): Update.
(gimple_ic): Update.
(gimple_stringop_fixed_value): Update.
From-SVN: r253910
Eric Botcazou [Thu, 19 Oct 2017 19:14:41 +0000 (19:14 +0000)]
Fix oversights
From-SVN: r253909
Uros Bizjak [Thu, 19 Oct 2017 17:35:39 +0000 (19:35 +0200)]
re PR target/82618 (Inefficient double-word subtraction on x86_64)
PR target/82618
* config/i386/i386.md (sub to cmp): New peephole2 pattern.
testsuite/ChangeLog:
PR target/82618
* gcc.target/i386/pr82618.c: New test.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r253905
Alexander Monakov [Thu, 19 Oct 2017 16:48:34 +0000 (19:48 +0300)]
ira-color: fix allocno_priority_compare_func for qsort (PR 82395)
PR rtl-optimization/82395
* ira-color.c (allocno_priority_compare_func): Fix comparison step
based on non_spilled_static_chain_regno_p.
From-SVN: r253904
Uros Bizjak [Thu, 19 Oct 2017 16:32:55 +0000 (18:32 +0200)]
i386.c (output_387_binary_op): Rewrite SSE part.
* config/i386/i386.c (output_387_binary_op): Rewrite SSE part.
(ix86_emit_mode_set): Rewrite insn mnemonic construction.
(ix86_prepare_fp_compare_args): Redefine is_sse as bool.
From-SVN: r253903
Martin Sebor [Thu, 19 Oct 2017 16:03:07 +0000 (16:03 +0000)]
PR tree-optimization/82596 - missing -Warray-bounds on an out-of-bounds
PR tree-optimization/82596 - missing -Warray-bounds on an out-of-bounds
index into string literal
gcc/ChangeLog:
* tree.c (array_at_struct_end_p): Handle STRING_CST.
gcc/testsuite/ChangeLog:
* gcc/testsuite/gcc.dg/pr82596.c: New test.
From-SVN: r253902
Eric Botcazou [Thu, 19 Oct 2017 15:58:05 +0000 (15:58 +0000)]
asan.c (handle_builtin_alloca): Deal with all alloca variants.
* asan.c (handle_builtin_alloca): Deal with all alloca variants.
(get_mem_refs_of_builtin_call): Likewise.
* builtins.c (expand_builtin_apply): Adjust call to
allocate_dynamic_stack_space.
(expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass
the third argument to allocate_dynamic_stack_space, otherwise -1.
(expand_builtin): Deal with all alloca variants.
(is_inexpensive_builtin): Likewise.
* builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New.
* calls.c (special_function_p): Deal with all alloca variants.
(initialize_argument_information): Adjust call to
allocate_dynamic_stack_space.
(expand_call): Likewise.
* cfgexpand.c (expand_call_stmt): Deal with all alloca variants.
* doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max
* explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and
use it for the stack usage computation.
* explow.h (allocate_dynamic_stack_space): Adjust prototype.
* function.c (gimplify_parameters): Turn BUILT_IN_ALLOCA_WITH_ALIGN
into BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX and pass maximum size.
* gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow.
Take into account 3rd argument of __builtin_alloca_with_align_and_max.
(in_loop_p): Remove first argument and useless check.
(pass_walloca::execute): Remove useless test and adjust call to above.
* gimple.c (gimple_build_call_from_tree): Deal with all alloc variants
* gimplify.c (gimplify_vla_decl): Turn BUILT_IN_ALLOCA_WITH_ALIGN into
BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX and pass maximum size.
(gimplify_call_expr): Deal with all alloca variants.
* hsa-gen.c (gen_hsa_alloca): Likewise.
(gen_hsa_insns_for_call): Likewise.
* ipa-pure-const.c (special_builtin_state): Likewise.
* tree-chkp.c (chkp_build_returned_bound): Likewise.
* tree-object-size.c (alloc_object_size): Likewise.
* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
(call_may_clobber_ref_p_1): Likewise.
* tree-ssa-ccp.c (evaluate_stmt): Likewise.
(ccp_fold_stmt): Likewise.
(optimize_stack_restore): Likewise.
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
(mark_all_reaching_defs_necessary_1): Likewise.
(propagate_necessity): Likewise.
(eliminate_unnecessary_stmts): Likewise.
* tree.c (build_common_builtin_nodes): Build
BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX.
* tree.h (ALLOCA_FUNCTION_CODE_P): New macro.
(CASE_BUILT_IN_ALLOCA): Likewise.
* varasm.c (incorporeal_function_p): Deal with all alloca variants.
c-family/
* c-common.c (check_builtin_function_arguments): Also check arguments
of __builtin_alloca_with_align_and_max.
From-SVN: r253901
Jakub Jelinek [Thu, 19 Oct 2017 14:24:39 +0000 (16:24 +0200)]
re PR c++/82600 (Address of local variable returned [-Werror=return-local-addr] when building mozilla-central)
PR c++/82600
* typeck.c (check_return_expr): Don't call
maybe_warn_about_returning_address_of_local in templates.
* g++.dg/warn/Wreturn-local-addr-4.C: New test.
From-SVN: r253899
Jonathan Wakely [Thu, 19 Oct 2017 13:57:10 +0000 (14:57 +0100)]
Improve tests for error reporting in Filesystem TS
* testsuite/experimental/filesystem/iterators/
recursive_directory_iterator.cc: Ensure that error_code arguments are
cleared when required.
* testsuite/experimental/filesystem/operations/create_directory.cc:
Remove redundant check.
* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
Ensure that error_code argument is cleared when required.
From-SVN: r253897
Jonathan Wakely [Thu, 19 Oct 2017 13:57:06 +0000 (14:57 +0100)]
Fix path::iterator post-increment and post-decrement
* include/experimental/bits/fs_path.h (path::iterator++(int))
(path::iterator--(int)): Fix for paths with only one component.
* testsuite/experimental/filesystem/path/itr/traversal.cc: Test
post-increment and post-decrement.
From-SVN: r253896
Jonathan Wakely [Thu, 19 Oct 2017 13:57:02 +0000 (14:57 +0100)]
Update references to C++17 in libstdc++ manual
* doc/xml/manual/status_cxx2017.xml: Update references to C++17
section numbers.
From-SVN: r253895
Jonathan Wakely [Thu, 19 Oct 2017 13:56:55 +0000 (14:56 +0100)]
Use __LONG_LONG_MAX__ instead of LONG_LONG_MAX in test
* testsuite/decimal/conversion-to-integral.cc: Use predefined macro
instead of non-standard glibc one.
From-SVN: r253894
Eric Botcazou [Thu, 19 Oct 2017 13:50:10 +0000 (13:50 +0000)]
re PR debug/82509 (DW_AT_endianity issues with attribute scalar_storage_order)
PR debug/82509
* dwarf2out.c (new_die_raw): New static inline function.
(new_die): Use it to create the DIE.
(add_AT_external_die_ref): Likewise.
(clone_die): Likewise.
(clone_as_declaration): Likewise.
(dwarf2out_vms_debug_main_pointer): Likewise.
(base_type_die): Likewise. Remove early return for corner cases.
Do not call add_pubtype on the DIE here.
(is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE.
(modified_type_die): Adjust the lookup for reverse order DIEs. Skip
typedefs for base types with DW_AT_endianity. Make sure a DIE with
native order exists for base types, attach the DIE manually and call
add_pubtype on it. Do not equate a reverse order DIE to the type.
From-SVN: r253893
Richard Earnshaw [Thu, 19 Oct 2017 13:10:42 +0000 (13:10 +0000)]
[ARM] PR 82445 - suppress 32-bit aligned ldrd/strd peepholing with -mno-unaligned-access
Peephole patterns exist in the arm backend to spot load/store
operations to adjacent memory operations in order to convert them into
ldrd/strd instructions. However, when we have strict alignment
enforced, then we can only do this if the accesses are known to be
64-bit aligned; this is unlikely to be the case for most loads. The
patch adds some alignment checking to the code that validates the
addresses for use in the peephole patterns. This should also fix
incorrect generation of ldrd/strd with unaligned accesses that could
previously have occurred on ARMv5e where all such operations must be
64-bit aligned.
I've added some new tests as well. In doing so I discovered that the
ldrd/strd peephole tests could never fail since they would match the
source file name in the scanned assembly as well as any instructions
of the intended type. I've fixed those by tightening the scan results
slightly.
gcc:
* config/arm/arm.c (align_ok_ldrd_strd): New function.
(mem_ok_for_ldrd_strd): New parameter align. Extract the alignment of the
mem into it.
(gen_operands_ldrd_strd): Validate the alignment of the accesses.
testsuite:
* gcc.target/arm/peep-ldrd-1.c: Tighten test scan pattern.
* gcc.target/arm/peep-strd-1.c: Likewise.
* gcc.target/arm/peep-ldrd-2.c: New test.
* gcc.target/arm/peep-strd-2.c: New test.
From-SVN: r253890
Jakub Jelinek [Thu, 19 Oct 2017 12:09:52 +0000 (14:09 +0200)]
flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN.
* flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN. Or
SANITIZE_BUILTIN into SANITIZE_UNDEFINED.
* sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN,
BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins.
* opts.c (sanitizer_opts): Add builtin.
* ubsan.c (instrument_builtin): New function.
(pass_ubsan::execute): Call it.
(pass_ubsan::gate): Enable even for SANITIZE_BUILTIN.
* doc/invoke.texi: Document -fsanitize=builtin.
* c-c++-common/ubsan/builtin-1.c: New test.
From-SVN: r253888
Jakub Jelinek [Thu, 19 Oct 2017 11:23:59 +0000 (13:23 +0200)]
ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch builtins...
* ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch
builtins, store max (log2 (align), 0) into uchar field instead of
align into uptr field.
(ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins,
store uchar 0 field instead of uptr 0 field.
(instrument_nonnull_return): Use _v1 suffixed nonnull return builtin,
instead of passing one address of struct with 2 locations pass
two addresses of structs with 1 location each.
* sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH,
BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed.
(BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1,
BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT,
BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1,
BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins.
* c-c++-common/ubsan/float-cast-overflow-1.c: Drop value keyword
from expected output regexps.
* c-c++-common/ubsan/float-cast-overflow-2.c: Likewise.
* c-c++-common/ubsan/float-cast-overflow-3.c: Likewise.
* c-c++-common/ubsan/float-cast-overflow-4.c: Likewise.
* c-c++-common/ubsan/float-cast-overflow-5.c: Likewise.
* c-c++-common/ubsan/float-cast-overflow-6.c: Likewise.
* c-c++-common/ubsan/float-cast-overflow-8.c: Likewise.
* c-c++-common/ubsan/float-cast-overflow-9.c: Likewise.
* c-c++-common/ubsan/float-cast-overflow-10.c: Likewise.
* g++.dg/ubsan/float-cast-overflow-bf.C: Likewise.
* gcc.dg/ubsan/float-cast-overflow-bf.c: Likewise.
* g++.dg/asan/default-options-1.C (__asan_default_options): Add
used attribute.
* g++.dg/asan/asan_test.C: Run with ASAN_OPTIONS=handle_segv=2
in the environment.
* All source files: Merge from upstream 315899.
* asan/Makefile.am (nodist_saninclude_HEADERS): Add
include/sanitizer/tsan_interface.h.
* asan/libtool-version: Bump the libasan SONAME.
* lsan/Makefile.am (sanitizer_lsan_files): Add lsan_common_mac.cc.
(lsan_files): Add lsan_linux.cc, lsan_mac.cc and lsan_malloc_mac.cc.
* sanitizer_common/Makefile.am (sanitizer_common_files): Add
sancov_flags.cc, sanitizer_allocator_checks.cc,
sanitizer_coverage_libcdep_new.cc, sanitizer_errno.cc,
sanitizer_file.cc, sanitizer_mac_libcdep.cc and
sanitizer_stoptheworld_mac.cc. Remove sanitizer_coverage_libcdep.cc
and sanitizer_coverage_mapping_libcdep.cc.
* tsan/Makefile.am (tsan_files): Add tsan_external.cc.
* ubsan/Makefile.am (DEFS): Add -DUBSAN_CAN_USE_CXXABI=1.
(ubsan_files): Add ubsan_init_standalone.cc and
ubsan_signals_standalone.cc.
* ubsan/libtool-version: Bump the libubsan SONAME.
* asan/Makefile.in: Regenerate.
* lsan/Makefile.in: Regenerate.
* sanitizer_common/Makefile.in: Regenerate.
* tsan/Makefile.in: Regenerate.
* ubsan/Makefile.in: Regenerate.
From-SVN: r253887
Martin Liska [Thu, 19 Oct 2017 11:08:28 +0000 (13:08 +0200)]
Revert r238089 (PR driver/81829).
2017-10-19 Martin Liska <mliska@suse.cz>
PR driver/81829
* file-find.c (remove_prefix): Remove.
* file-find.h (remove_prefix): Likewise.
* gcc-ar.c: Remove smartness of lookup.
From-SVN: r253886
Segher Boessenkool [Thu, 19 Oct 2017 10:55:51 +0000 (12:55 +0200)]
rs6000: Fix "missing mode" on UNSPEC_TOCSLOT
Currently gen* warn about a missing mode on an UNSPEC_TOCSLOT unspec in
some call patterns. Those unspecs are created from rs6000.c, with Pmode
always. This patch fixes the patterns to say :P as well.
* config/rs6000/rs6000.md (*call_indirect_aix<mode>,
*call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>,
*call_value_indirect_elfv2<mode>): Add correct mode to the unspec.
From-SVN: r253885
Jakub Jelinek [Thu, 19 Oct 2017 08:37:04 +0000 (10:37 +0200)]
re PR target/82580 (Optimize comparisons for __int128 on x86-64)
PR target/82580
* config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2.
(setcc + and to xor + setcc): New peephole2.
* gcc.target/i386/pr82580.c: Use {\msbb} instead of "sbb" in
scan-assembler-times. Check that there are no movzb* instructions
if lp64.
From-SVN: r253884
Tom de Vries [Thu, 19 Oct 2017 08:24:26 +0000 (08:24 +0000)]
Specify required stack size for gcc.dg/tree-ssa/ldist-27.c
2017-10-19 Tom de Vries <tom@codesourcery.com>
* gcc.dg/tree-ssa/ldist-27.c: Use dg-require-stack-size.
From-SVN: r253883
Tom de Vries [Thu, 19 Oct 2017 08:11:26 +0000 (08:11 +0000)]
Add dg-require-stack-size
2017-10-19 Tom de Vries <tom@codesourcery.com>
* lib/target-supports-dg.exp (dg-require-stack-size): New proc.
* gcc.c-torture/execute/
20030209-1.c: Use dg-require-stack-size.
* gcc.c-torture/execute/
20040805-1.c: Same.
* gcc.c-torture/execute/920410-1.c: Same.
* gcc.c-torture/execute/921113-1.c: Same.
* gcc.c-torture/execute/921208-2.c: Same.
* gcc.c-torture/execute/comp-goto-1.c: Same.
* gcc.c-torture/execute/pr20621-1.c: Same.
* gcc.c-torture/execute/pr28982b.c: Same.
* gcc.dg/tree-prof/comp-goto-1.c: Same.
* doc/sourcebuild.texi (Test Directives, Variants of
dg-require-support): Add dg-require-stack-size.
From-SVN: r253882
Bernhard Reutner-Fischer [Thu, 19 Oct 2017 07:55:43 +0000 (09:55 +0200)]
Derive interface buffers from max name length
2017-10-19 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
* interface.c (check_sym_interfaces, check_uop_interfaces,
gfc_check_interfaces): Base interface_name buffer off
GFC_MAX_SYMBOL_LEN.
From-SVN: r253881
Aldy Hernandez [Thu, 19 Oct 2017 07:51:54 +0000 (07:51 +0000)]
Update my last ChangeLog entry to properly specify overloaded functions.
From-SVN: r253880
Martin Liska [Thu, 19 Oct 2017 07:50:48 +0000 (09:50 +0200)]
Do not instrument use-after-scope for vars with large alignment (PR sanitizer/82517).
2017-10-19 Martin Liska <mliska@suse.cz>
PR sanitizer/82517
* gimplify.c (gimplify_decl_expr): Do not instrument variables
that have a large alignment.
(gimplify_target_expr): Likewise.
2017-10-19 Martin Liska <mliska@suse.cz>
PR sanitizer/82517
* gcc.dg/asan/pr82517.c: New test.
From-SVN: r253879
Jakub Jelinek [Thu, 19 Oct 2017 07:38:59 +0000 (09:38 +0200)]
re PR fortran/82568 ([6/7/8] ICE with do-loop inside BLOCK inside omp)
PR fortran/82568
* gfortran.h (gfc_resolve_do_iterator): Add a bool arg.
(gfc_resolve_omp_local_vars): New declaration.
* openmp.c (omp_current_ctx): Make static.
(gfc_resolve_omp_parallel_blocks): Handle EXEC_OMP_TASKLOOP
and EXEC_OMP_TASKLOOP_SIMD.
(gfc_resolve_do_iterator): Add ADD_CLAUSE argument, if false,
don't actually add any clause. Move omp_current_ctx test
earlier.
(handle_local_var, gfc_resolve_omp_local_vars): New functions.
* resolve.c (gfc_resolve_code): Call gfc_resolve_omp_parallel_blocks
instead of just gfc_resolve_omp_do_blocks for EXEC_OMP_TASKLOOP
and EXEC_OMP_TASKLOOP_SIMD.
(gfc_resolve_code): Adjust gfc_resolve_do_iterator caller.
(resolve_codes): Call gfc_resolve_omp_local_vars.
* gfortran.dg/gomp/pr82568.f90: New test.
From-SVN: r253878
Bernhard Reutner-Fischer [Thu, 19 Oct 2017 07:24:33 +0000 (09:24 +0200)]
Use Levenshtein spelling suggestions in Fortran FE
gcc/fortran/ChangeLog
2017-10-19 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
* gfortran.h (gfc_lookup_function_fuzzy): New declaration.
(gfc_closest_fuzzy_match): New declaration.
(vec_push): New definition.
* misc.c (gfc_closest_fuzzy_match): New definition.
* resolve.c: Include spellcheck.h.
(lookup_function_fuzzy_find_candidates): New static function.
(lookup_uop_fuzzy_find_candidates): Likewise.
(lookup_uop_fuzzy): Likewise.
(resolve_operator) <INTRINSIC_USER>: Call lookup_uop_fuzzy.
(gfc_lookup_function_fuzzy): New definition.
(resolve_unknown_f): Call gfc_lookup_function_fuzzy.
* interface.c (check_interface0): Likewise.
(lookup_arg_fuzzy_find_candidates): New static function.
(lookup_arg_fuzzy ): Likewise.
(compare_actual_formal): Call lookup_arg_fuzzy.
* symbol.c: Include spellcheck.h.
(lookup_symbol_fuzzy_find_candidates): New static function.
(lookup_symbol_fuzzy): Likewise.
(gfc_set_default_type): Call lookup_symbol_fuzzy.
(lookup_component_fuzzy_find_candidates): New static function.
(lookup_component_fuzzy): Likewise.
(gfc_find_component): Call lookup_component_fuzzy.
gcc/testsuite/ChangeLog
2017-10-19 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
* gfortran.dg/spellcheck-operator.f90: New testcase.
* gfortran.dg/spellcheck-procedure_1.f90: New testcase.
* gfortran.dg/spellcheck-procedure_2.f90: New testcase.
* gfortran.dg/spellcheck-structure.f90: New testcase.
* gfortran.dg/spellcheck-parameter.f90: New testcase.
From-SVN: r253877
GCC Administrator [Thu, 19 Oct 2017 00:16:14 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r253876
Thomas Koenig [Wed, 18 Oct 2017 21:29:37 +0000 (21:29 +0000)]
re PR fortran/82567 ([6/7/8] gfortran takes a long time to compile a simple implied-do with -Optimization.)
2017-10-18 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/82567
* frontend-passes.c (combine_array_constructor): If an array
constructor is all constants and has more elements than a small
constant, don't convert a*[b,c] to [a*b,a*c] to reduce compilation
times.
2017-10-18 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/82567
* gfortran.dg/array_constructor_51.f90: New test.
From-SVN: r253872
Segher Boessenkool [Wed, 18 Oct 2017 21:08:18 +0000 (23:08 +0200)]
ira: volatile asm's are not moveable (PR82602)
A volatile asm statement can not be moved (relative to other volatile
asm, etc.), but IRA would do it nevertheless. This patch fixes it.
PR rtl-optimization/82602
* ira.c (rtx_moveable_p): Return false for volatile asm.
From-SVN: r253869
Thomas Koenig [Wed, 18 Oct 2017 20:32:34 +0000 (20:32 +0000)]
re PR fortran/79795 (Fortran ICE in resolve_symbol starting with r163221)
2017-10-18 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/79795
* resolve.c (resovle_symbol): Change gcc_assert to
sensible error message.
2017-10-18 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/79795
* gfortran.dg/assumed_size_2.f90: New test.
From-SVN: r253868
Uros Bizjak [Wed, 18 Oct 2017 20:19:05 +0000 (22:19 +0200)]
re PR target/82580 (Optimize comparisons for __int128 on x86-64)
PR target/82580
* config/i386/i386-modes.def (CCGZ): New CC mode.
* config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern.
* config/i386/predicates.md (ix86_comparison_operator):
Handle CCGZmode.
* config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons
with double-word subtraction.
(put_condition_code): Handle CCGZmode.
testsuite/ChangeLog:
PR target/82580
* gcc.target/i386/pr82580.c: New test.
From-SVN: r253867
Aldy Hernandez [Wed, 18 Oct 2017 19:49:08 +0000 (19:49 +0000)]
wide-int.cc (debug): New.
* wide-int.cc (debug) [const wide_int &]: New.
(debug) [const wide_int *]: New.
(debug) [const widest_int &]: New.
(debug) [const widest_int *]: New.
From-SVN: r253866
Thomas Koenig [Wed, 18 Oct 2017 17:54:18 +0000 (17:54 +0000)]
re PR libfortran/82233 (execute_command_line causes program to stop when command fails (or does not exist))
2017-10-18 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/82233
* gfortran.dg/execute_command_line_3.f90: Remove unneeded output.
Move test with wait=.false. before the last test.
From-SVN: r253865
Vladimir Makarov [Wed, 18 Oct 2017 16:44:27 +0000 (16:44 +0000)]
re PR middle-end/82556 (internal compiler error in curr_insn_transform, at lra-constraints.c:4307)
2017-10-18 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/82556
* lra-constraints.c (curr_insn_transform): Use non-input operand
instead of output one for matched reload.
2017-10-18 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/82556
* gcc.target/i386/pr82556.c: New.
From-SVN: r253862
Bin Cheng [Wed, 18 Oct 2017 16:04:16 +0000 (16:04 +0000)]
tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
* tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
(tree-ssa-loop-ivopts.h): New header file.
(struct builtin_info): New fields.
(classify_builtin_1): Compute and record base and offset parts for
memset builtin partition by calling strip_offset.
(offset_cmp, fuse_memset_builtins): New functions.
(finalize_partitions): Fuse adjacent memset partitions by calling
above function.
* tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration.
Expose the interface.
* tree-ssa-loop-ivopts.h (strip_offset): New declaration.
* gcc.dg/tree-ssa/ldist-17.c: Adjust test string.
* gcc.dg/tree-ssa/ldist-32.c: New test.
* gcc.dg/tree-ssa/ldist-35.c: New test.
* gcc.dg/tree-ssa/ldist-36.c: New test.
From-SVN: r253859
Bin Cheng [Wed, 18 Oct 2017 15:56:15 +0000 (15:56 +0000)]
re PR tree-optimization/82574 (wrong code at -O3 on x86_64-linux-gnu)
PR tree-optimization/82574
* tree-loop-distribution.c (find_single_drs): New parameter. Check
that data reference must be executed exactly once per iteration
against the outermost loop in nest.
(classify_partition): Update call to above function.
gcc/testsuite
* gcc.dg/tree-ssa/pr82574.c: New test.
From-SVN: r253857
Richard Biener [Wed, 18 Oct 2017 14:35:26 +0000 (14:35 +0000)]
re PR tree-optimization/82591 ([graphite] Compile-time hog w/ -O2 -floop-nest-optimize)
2017-10-18 Richard Biener <rguenther@suse.de>
PR tree-optimization/82591
* graphite.c (graphite_transform_loops): Move code gen message
printing ...
* graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
Here. Handle scop_to_isl_ast failing.
(scop_to_isl_ast): Limit the number of ISL operations.
From-SVN: r253856
Richard Biener [Wed, 18 Oct 2017 13:34:00 +0000 (13:34 +0000)]
2017-10-18 Richard Biener <rguenther@suse.de>
* graphite-isl-ast-to-gimple.c
(translate_isl_ast_to_gimple::set_rename): Simplify.
(translate_isl_ast_to_gimple::set_rename_for_each_def): Inline...
(graphite_copy_stmts_from_block): ... here.
(copy_bb_and_scalar_dependences): Simplify.
(add_parameters_to_ivs_params): Canonicalize.
(generate_entry_out_of_ssa_copies): Simplify.
* graphite-sese-to-poly.c (extract_affine_name): Simplify
by passing in ISL dimension.
(parameter_index_in_region_1): Rename to ...
(parameter_index_in_region): ... this.
(extract_affine): Adjust assert, pass down parameter index.
(add_param_constraints): Use range-info when available.
(build_scop_context): Adjust.
* sese.c (new_sese_info): Adjust.
(free_sese_info): Likewise.
* sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t):
Remove unused typedefs.
(struct sese_info_t): Simplify rename_map, remove incomplete_phis.
From-SVN: r253855
Martin Liska [Wed, 18 Oct 2017 12:44:08 +0000 (14:44 +0200)]
Fix failing test-case
2017-10-18 Martin Liska <mliska@suse.cz>
* gcc.dg/tree-prof/switch-case-2.c: Scan IPA profile dump
file instead of expand. Reason is that switch statement is
not yet expanded as decision tree, which also contains a BB
with count == 2000.
From-SVN: r253854
Martin Liska [Wed, 18 Oct 2017 11:23:50 +0000 (13:23 +0200)]
Fix -Wimplicit-fallthrough in combine.c
2017-10-18 Martin Liska <mliska@suse.cz>
* combine.c (simplify_compare_const): Add gcc_fallthrough.
From-SVN: r253853
Eric Botcazou [Wed, 18 Oct 2017 10:41:03 +0000 (10:41 +0000)]
misc.c (gnat_tree_size): Move around.
* gcc-interface/misc.c (gnat_tree_size): Move around.
* gcc-interface/utils.c (max_size): Deal with SSA names.
From-SVN: r253852
Jakub Jelinek [Wed, 18 Oct 2017 09:20:31 +0000 (11:20 +0200)]
re PR lto/82598 (lto debugobj lacks .note.GNU-stack)
PR lto/82598
* simple-object.c (handle_lto_debug_sections): Copy over also
.note.GNU-stack section with unchanged name.
* simple-object-elf.c (SHF_EXECINSTR): Define.
(simple_object_elf_copy_lto_debug_section): Drop SHF_EXECINSTR bit
on .note.GNU-stack section.
From-SVN: r253851
Robin Dapp [Wed, 18 Oct 2017 09:14:16 +0000 (09:14 +0000)]
S/390: Do not end groups after fallthru edge.
gcc/ChangeLog:
2017-10-17 Robin Dapp <rdapp@linux.vnet.ibm.com>
* config/s390/s390.c (s390_bb_fallthru_entry_likely): New function.
(s390_sched_init): Do not reset s390_sched_state if we entered the
current basic block via a fallthru edge and all others are unlikely.
From-SVN: r253850
Robin Dapp [Wed, 18 Oct 2017 09:10:09 +0000 (09:10 +0000)]
S/390: Handle long-running instructions.
gcc/ChangeLog:
2017-10-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
* config/s390/s390.c (NUM_SIDES): New variable.
(LONGRUNNING_THRESHOLD): New variable.
(LATENCY_FACTOR): New variable.
(s390_sched_score): Decrease score for long-running instructions on
wrong side.
(s390_sched_variable_issue): Perform bookkeeping for long-running
instructions.
From-SVN: r253849
Paul Thomas [Wed, 18 Oct 2017 08:55:27 +0000 (08:55 +0000)]
re PR fortran/82550 (program using submodules fails to link)
2017-10-18 Paul Thomas <pault@gcc.gnu.org>
PR fortran/82550
* trans_decl.c (gfc_get_symbol_decl): Procedure symbols that
have the 'used_in_submodule' attribute should be processed by
'gfc_get_extern_function_decl'.
2017-10-18 Paul Thomas <pault@gcc.gnu.org>
PR fortran/82550
* gfortran.dg/submodule_30.f08 : New test.
From-SVN: r253848
Richard Biener [Wed, 18 Oct 2017 08:30:45 +0000 (08:30 +0000)]
graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id): Simplify with removal of the parameter rename map.
2017-10-18 Richard Biener <rguenther@suse.de>
* graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
Simplify with removal of the parameter rename map.
(set_rename): Likewise.
(should_copy_to_new_region): Likewise.
(graphite_copy_stmts_from_block): Likewise.
(copy_bb_and_scalar_dependences): Remove initialization of
unused copied_bb_map.
(copy_def): Remove.
(copy_internal_parameters): Likewise.
(graphite_regenerate_ast_isl): Do not call copy_internal_parameters.
* graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
Use INTEGRAL_TYPE_P.
(parameter_index_in_region_1): Rename to ...
(assign_parameter_index_in_region): ... this. Assert we have
a parameter we handle.
(scan_tree_for_params): Adjust.
* sese.h (parameter_rename_map_t): Remove.
(struct sese_info_t): Remove unused parameter_rename_map and
copied_bb_map members.
* sese.c (new_sese_info): Adjust.
(free_sese_info): Likewise.
From-SVN: r253847
Andreas Krebbel [Wed, 18 Oct 2017 08:21:45 +0000 (08:21 +0000)]
S/390: Fix vec-cmp-2 testcase
The functions all call foo and therefore need a stack frame what makes
them subject to shrink wrapping. Also all the additional instructions
in the function body makes it fragile wrt instruction scheduling. Just
set a global variable instead to circumvent this.
gcc/testsuite/ChangeLog:
2017-10-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gcc.target/s390/zvector/vec-cmp-2.c
(all_eq_double, all_ne_double, all_gt_double)
(all_lt_double, all_ge_double, all_le_double)
(any_eq_double, any_ne_double, any_gt_double)
(any_lt_double, any_ge_double, any_le_double)
(all_eq_int, all_ne_int, all_gt_int)
(all_lt_int, all_ge_int, all_le_int)
(any_eq_int, any_ne_int, any_gt_int)
(any_lt_int, any_ge_int, any_le_int): Set global variable instead
of calling foo(). Fix return type.
From-SVN: r253846
Martin Liska [Wed, 18 Oct 2017 08:14:47 +0000 (10:14 +0200)]
Do not put gimple stmt on an abnormal edge (PR sanitizer/82545).
2017-10-18 Martin Liska <mliska@suse.cz>
PR sanitizer/82545
* asan.c (asan_expand_poison_ifn): Do not put gimple stmt
on an abnormal edge.
2017-10-18 Martin Liska <mliska@suse.cz>
PR sanitizer/82545
* gcc.dg/asan/pr82545.c: New test.
From-SVN: r253845
Paolo Carlini [Wed, 18 Oct 2017 07:53:27 +0000 (07:53 +0000)]
re PR c++/69057 ([C++14] constexpr static variable template assertion segmentation fault)
2017-10-18 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/69057
* g++.dg/cpp1y/auto-fn45.C: New.
From-SVN: r253844
Paolo Carlini [Wed, 18 Oct 2017 07:43:06 +0000 (07:43 +0000)]
re PR c++/68884 (template of value template crashes the compiler)
2017-10-18 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/68884
* g++.dg/cpp0x/variadic-crash4.C: New.
From-SVN: r253843
Sebastian Huber [Wed, 18 Oct 2017 07:36:38 +0000 (07:36 +0000)]
Update -ffunction/data-sections documentation
gcc/
* doc/invoke.texi (ffunction-sections and fdata-sections):
Update.
From-SVN: r253842
Paolo Carlini [Wed, 18 Oct 2017 07:24:50 +0000 (07:24 +0000)]
re PR c++/79474 (Multiple definitions of user-defined conversion operator cause ICE (internal compiler error))
2017-10-18 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/79474
* g++.dg/cpp1y/auto-fn44.C: New.
From-SVN: r253841
GCC Administrator [Wed, 18 Oct 2017 00:16:14 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r253840
Eric Botcazou [Tue, 17 Oct 2017 21:53:34 +0000 (21:53 +0000)]
tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if the use statement can throw internally.
* tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if
the use statement can throw internally.
From-SVN: r253834
Eric Botcazou [Tue, 17 Oct 2017 20:34:29 +0000 (20:34 +0000)]
* gcc.dg/attr-alloc_size-11.c: UnXFAIL for visium-*-*.
From-SVN: r253831
Eric Botcazou [Tue, 17 Oct 2017 20:28:33 +0000 (20:28 +0000)]
visium.c (visium_select_cc_mode): Return CCmode for any RTX present on the RHS of a SET.
* config/visium/visium.c (visium_select_cc_mode): Return CCmode
for any RTX present on the RHS of a SET.
* compare-elim.c (try_eliminate_compare): Restore comment.
From-SVN: r253830
Jakub Jelinek [Tue, 17 Oct 2017 20:11:00 +0000 (22:11 +0200)]
langhooks.h (struct lang_hooks): Document that tree_size langhook may be also called on tcc_type nodes.
* langhooks.h (struct lang_hooks): Document that tree_size langhook
may be also called on tcc_type nodes.
* langhooks.c (lhd_tree_size): Likewise.
* gcc-interface/misc.c (gnat_tree_size): New function.
(LANG_HOOKS_TREE_SIZE): Redefine.
From-SVN: r253829
Paolo Carlini [Tue, 17 Oct 2017 19:49:06 +0000 (19:49 +0000)]
re PR c++/71821 (ICE on invalid C++11 code (incorrect argument for alignas): unexpected expression ‘f<int>’ of kind template_id_expr)
2017-10-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/71821
* g++.dg/cpp0x/alignas12.C: New.
From-SVN: r253828
David Malcolm [Tue, 17 Oct 2017 19:41:01 +0000 (19:41 +0000)]
Simplify format_warning_at_substring API
The format_warning_at_substring API has a rather clunk way of indicating
the location of the pertinent param (if any): a source_range * is passed
in, which can be NULL. Doing so requires extracting a range from the
location_t and passing around a pointer to it, or NULL, as needed.
This patch simplifies things by eliminating the source_range * in
favor of a location_t, with UNKNOWN_LOCATION used to signify that
no param location is available.
gcc/c-family/ChangeLog:
* c-format.c (format_warning_at_char): Pass UNKNOWN_LOCATION
rather than NULL to format_warning_va.
(check_format_types): Likewise when calling format_type_warning.
Remove code to extract source_ranges and source_range * in favor
of just a location_t.
(format_type_warning): Convert source_range * param to a
location_t.
gcc/ChangeLog:
* gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of
format_warning_at_substring.
(maybe_warn): Convert source_range * param to a location_t. Pass
UNKNOWN_LOCATION rather than NULL to fmtwarn.
(format_directive): Remove code to extract source_ranges and
source_range * in favor of just a location_t.
(parse_directive): Pass UNKNOWN_LOCATION rather than NULL to
fmtwarn.
* substring-locations.c (format_warning_va): Convert
source_range * param to a location_t.
(format_warning_at_substring): Likewise.
* substring-locations.h (format_warning_va): Likewise.
(format_warning_at_substring): Likewise.
From-SVN: r253827
Paolo Carlini [Tue, 17 Oct 2017 19:36:49 +0000 (19:36 +0000)]
re PR c++/71368 ([concepts] ICE on constrained compound requirement)
2017-10-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/71368
* g++.dg/concepts/pr71368.C: New.
From-SVN: r253826
Martin Liska [Tue, 17 Oct 2017 19:17:36 +0000 (19:17 +0000)]
Add gcc_checking_assert for sbitmap.c.
From-SVN: r253825
Jan Hubicka [Tue, 17 Oct 2017 17:37:23 +0000 (19:37 +0200)]
* i386/i386.c (x86_builtin_vectorization_cost): Likewise.
From-SVN: r253824
Jan Hubicka [Tue, 17 Oct 2017 17:35:54 +0000 (19:35 +0200)]
target.h (enum vect_cost_for_stmt): Add vec_gather_load and vec_scatter_store
* target.h (enum vect_cost_for_stmt): Add vec_gather_load and
vec_scatter_store
* tree-vect-stmts.c (record_stmt_cost): Make difference between normal
and scatter/gather ops.
* aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add
vec_gather_load and vec_scatter_store.
* arm/arm.c (arm_builtin_vectorization_cost): Likewise.
* powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise.
* rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise.
* s390/s390.c (s390_builtin_vectorization_cost): Likewise.
* spu/spu.c (spu_builtin_vectorization_cost): Likewise.
From-SVN: r253823
Uros Bizjak [Tue, 17 Oct 2017 16:35:11 +0000 (18:35 +0200)]
reg-stack.c (compare_for_stack_reg): Add bool argument.
* reg-stack.c (compare_for_stack_reg): Add bool argument.
Detect FTST instruction and handle its register pops. Only pop
second operand if can_pop_second_op is true.
(subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to
set can_pop_second_op to false in the compare_for_stack_reg call.
* config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call
output_fp_compare for stack register operands.
* config/i386/i386.c (output_fp_compare): Do not output SSE compare
instructions here. Do not emit stack register pops here. Assert
that FCOMPP pops next to top stack register. Rewrite function.
From-SVN: r253821
Nathan Sidwell [Tue, 17 Oct 2017 15:52:21 +0000 (15:52 +0000)]
[C++ PATCH 82560] missing dtor call
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg01068.html
PR c++/82560
* call.c (build_over_call): Don't pass tf_no_cleanup to nested
calls.
PR c++/82560
* g++.dg/cpp0x/pr82560.C: New.
From-SVN: r253820
Nathan Sidwell [Tue, 17 Oct 2017 15:42:19 +0000 (15:42 +0000)]
[PATCH, middle-end/82577] Fix DECL_ASSEMBLER_NAME ICE
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg01067.html
gcc/
PR middle-end/82577
* alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P,
use DECL_ASSEMBLER_NAME_RAW.
gcc/testsuite/
PR middle-end/82577
* g++.dg/opt/pr82577.C: New.
From-SVN: r253819
Nathan Sidwell [Tue, 17 Oct 2017 14:49:05 +0000 (14:49 +0000)]
[PATCH PR/82546] tree node size
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00899.html
PR middle-end/82546
gcc/
* tree.c (tree_code_size): Reformat. Punt to lang hook for unknown
TYPE nodes.
gcc/cp/
* cp-objcp-common.c (cp_tree_size): Reformat. Adjust returns size
of TYPE nodes.
gcc/objc/
* objc-act.c (objc_common_tree_size): Return size of TYPE nodes.
From-SVN: r253817
Qing Zhao [Tue, 17 Oct 2017 14:17:17 +0000 (14:17 +0000)]
re PR middle-end/80295 (ICE in __builtin_update_setjmp_buf expander)
gcc/ChangeLog
2017-10-17 Qing Zhao <qing.zhao@oracle.com>
Wilco Dijkstra <wilco.dijkstra@arm.com>
* builtins.c (expand_builtin_update_setjmp_buf): Add a
converstion to Pmode from the buf_addr.
gcc/testsuite/ChangeLog
2017-10-17 Qing Zhao <qing.zhao@oracle.com>
Wilco Dijkstra <wilco.dijkstra@arm.com>
PR middle-end/80295
* gcc.target/aarch64/pr80295.c: New test.
From-SVN: r253815
Qing Zhao [Tue, 17 Oct 2017 14:16:35 +0000 (14:16 +0000)]
re PR middle-end/80295 (ICE in __builtin_update_setjmp_buf expander)
gcc/ChangeLog
2017-10-17 Qing Zhao <qing.zhao@oracle.com>
Wilco Dijkstra <wilco.dijkstra@arm.com>
* builtins.c (expand_builtin_update_setjmp_buf): Add a
converstion to Pmode from the buf_addr.
gcc/testsuite/ChangeLog
2017-10-17 Qing Zhao <qing.zhao@oracle.com>
Wilco Dijkstra <wilco.dijkstra@arm.com>
PR middle-end/80295
* gcc.target/aarch64/pr80295.c: New test.
Co-Authored-By: Wilco Dijkstra <wdijkstr@arm.com>
From-SVN: r253814
Richard Biener [Tue, 17 Oct 2017 13:56:14 +0000 (13:56 +0000)]
graphite-dependences.c (scop_get_reads_and_writes): Change output parameters to references.
2017-10-17 Richard Biener <rguenther@suse.de>
* graphite-dependences.c (scop_get_reads_and_writes): Change
output parameters to references.
From-SVN: r253813
Jackson Woodruff [Tue, 17 Oct 2017 13:22:48 +0000 (13:22 +0000)]
Factor out division by squares and remove division around comparisons (0/2)
Commit gcc/fold-const.c missing from r252827:
gcc/
PR 71026/tree-optimization
* fold-const.c (distribute_real_division): Removed.
(fold_binary_loc): Remove calls to distribute_real_divison.
From-SVN: r253812
Richard Biener [Tue, 17 Oct 2017 13:19:51 +0000 (13:19 +0000)]
2017-10-17 Richard Biener <rguenther@suse.de>
* graphite-scop-detection.c
(scop_detection::stmt_has_simple_data_refs_p): Always use
the full nest as region.
(try_generate_gimple_bb): Likewise.
* sese.c (scalar_evolution_in_region): Simplify now that
SCEV can handle instantiation in regions.
* tree-scalar-evolution.c (instantiate_scev_name): Also instantiate
in the non-loop part of a function if requested.
From-SVN: r253811
Richard Biener [Tue, 17 Oct 2017 13:17:30 +0000 (13:17 +0000)]
re PR tree-optimization/82563 ([graphite] ICE in check_loop_closed_ssa_def, at tree-ssa-loop-manip.c:709)
2017-10-17 Richard Biener <rguenther@suse.de>
PR tree-optimization/82563
* graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies):
New function.
(graphite_regenerate_ast_isl): Call it.
* graphite-scop-detection.c (build_scops): Remove entry edge split.
* gcc.dg/graphite/pr82563.c: New testcase.
From-SVN: r253809
Thomas Schwinge [Tue, 17 Oct 2017 11:17:00 +0000 (13:17 +0200)]
Restore "dg-do run" directives for libgomp.oacc-fortran/declare-*.f90
libgomp/
* testsuite/libgomp.oacc-fortran/declare-1.f90: Restore "dg-do
run" directive.
* testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise.
From-SVN: r253808
Paolo Carlini [Tue, 17 Oct 2017 09:06:53 +0000 (09:06 +0000)]
re PR c++/67831 (Internal error on complicated constexpr initialization.)
2017-10-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/67831
* g++.dg/cpp0x/constexpr-ice18.C: New.
From-SVN: r253807
Paolo Carlini [Tue, 17 Oct 2017 08:38:07 +0000 (08:38 +0000)]
re PR c++/82570 (Lambda fails to compile because it doesn't meet constexpr requirements)
2017-10-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/82570
* g++.dg/cpp1z/constexpr-lambda18.C: New.
From-SVN: r253806
Jakub Jelinek [Tue, 17 Oct 2017 07:38:32 +0000 (09:38 +0200)]
re PR tree-optimization/82549 (ICE at -O1 and above: verify_gimple failed)
PR tree-optimization/82549
* fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
Formatting fixes. Instead of calling make_bit_field_ref with negative
bitpos return 0.
* gcc.c-torture/compile/pr82549.c: New test.
From-SVN: r253805
Martin Liska [Tue, 17 Oct 2017 07:31:30 +0000 (09:31 +0200)]
Improve FAIL message for dump-*-times functions.
2017-10-17 Martin Liska <mliska@suse.cz>
* lib/scanasm.exp: Print how many times a regex pattern is
found.
* lib/scandump.exp: Likewise.
From-SVN: r253804
Olga Makhotina [Tue, 17 Oct 2017 07:12:45 +0000 (07:12 +0000)]
Add missing REDUCE[SD,SS] intrinsics
gcc/
* config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
_mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20
_mm_maskz_reduce_ss): New.
* config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
__builtin_ia32_reducess_mask): Ditto..
(__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
* config/i386/sse.md (reduces<mode>): Renamed to ...
(reduces<mode><mask_scalar_name>): ... this.
(vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}): Changed
to ...
(vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
%0<mask_scalar_operand4>, %1, %2, %3}): ... this.
gcc/testsuite/
* gcc.target/i386/avx512dq-vreducesd-1.c (_mm_mask_reduce_sd,
_mm_maskz_reduce_sd): Test new intrinsics.
* gcc.target/i386/avx512dq-vreducesd-2.c: New.
* gcc.target/i386/avx512dq-vreducess-1.c (_mm_mask_reduce_ss,
_mm_maskz_reduce_ss): Test new intrinsics.
* gcc.target/i386/avx512dq-vreducess-2.c: New.
* gcc.target/i386/avx-1.c (__builtin_ia32_reducesd,
__builtin_ia32_reducess): Remove builtin.
(__builtin_ia32_reducesd_mask,
__builtin_ia32_reducess_mask): Test new builtin.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.
From-SVN: r253803
GCC Administrator [Tue, 17 Oct 2017 00:16:15 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r253801
Igor Tsimbalist [Mon, 16 Oct 2017 21:36:39 +0000 (23:36 +0200)]
MAINTAINERS (write after approval): Add myself.
ChangeLog:
2017-10-16 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
* MAINTAINERS (write after approval): Add myself.
Index: MAINTAINERS
===================================================================
--- MAINTAINERS (revision 253797)
+++ MAINTAINERS (working copy)
@@ -603,6 +603,7 @@
Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Konrad Trifunovic <konrad.trifunovic@inria.fr>
Markus Trippelsdorf <markus@trippelsdorf.de>
+Igor Tsimbalist <igor.v.tsimbalist@intel.com>
Martin Uecker <uecker@eecs.berkeley.edu>
David Ung <davidu@mips.com>
Neil Vachharajani <nvachhar@gmail.com>
From-SVN: r253798
David Malcolm [Mon, 16 Oct 2017 20:50:40 +0000 (20:50 +0000)]
Add gnu::unique_ptr
This is a version of the patch posted by Trevor Saunders on 2017-07-31,
for which he wrote:
> For most of the history of this see
> https://sourceware.org/ml/gdb-patches/2016-10/msg00223.html
> The changes are mostly s/gdb/gtl/g
This version was updated by me (dmalcolm) adding these changes:
- renaming of "gtl" to "gnu" (3 letters, and one of the ones Richi
proposed, and not a match for "*tl")
- renaming of DEFINE_GDB_UNIQUE_PTR to DEFINE_GNU_UNIQUE_PTR
- renaming of xfree_deleter to xmalloc_deleter, and making it
use "free" rather than "xfree" (which doesn't exist)
- added a gcc/unique-ptr-tests.cc
- implement unique_xmalloc_ptr<T[]> (taken from gdb, but changing
"xfree" to "free", and adding support for pre-C++-11)
gcc/ChangeLog:
David Malcolm <dmalcolm@redhat.com>
* Makefile.in (OBJS): Add unique-ptr-tests.o.
* selftest-run-tests.c (selftest::run_tests): Call
selftest::unique_ptr_tests_cc_tests.
* selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
* unique-ptr-tests.cc: New file.
include/ChangeLog:
Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
David Malcolm <dmalcolm@redhat.com>
* unique-ptr.h: New file.
From-SVN: r253797
Vladimir Makarov [Mon, 16 Oct 2017 20:34:53 +0000 (20:34 +0000)]
re PR sanitizer/82353 (runtime ubsan crash)
2017-10-16 Vladimir Makarov <vmakarov@redhat.com>
PR sanitizer/82353
* lra.c (collect_non_operand_hard_regs): Don't ignore operator
locations.
* lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
(make_hard_regno_born, make_hard_regno_dead): Update
bb_killed_pseudos and bb_gen_pseudos for fixed regs.
From-SVN: r253796
Martin Liska [Mon, 16 Oct 2017 19:45:02 +0000 (21:45 +0200)]
Fix attrib-5.c test-case.
2017-10-16 Martin Liska <mliska@suse.cz>
* c-c++-common/ubsan/attrib-5.c (float_cast2): Fix warning scan
so that it will work for both C and C++ FEs.
From-SVN: r253795
Jeff Law [Mon, 16 Oct 2017 17:56:06 +0000 (11:56 -0600)]
* tree-ssa-dse.c (live_bytes_read): Fix thinko.
From-SVN: r253792
Fritz Reese [Mon, 16 Oct 2017 17:40:53 +0000 (17:40 +0000)]
re PR fortran/82511 (ICE Bad IO basetype (12) on attempted read or write of entire DEC structure)
2017-10-16 Fritz Reese <fritzoreese@gmail.com>
PR fortran/82511
Treat UNION components as DT comp. in I/O lists.
gcc/fortran/ChangeLog:
PR fortran/82511
* trans-io.c (transfer_expr): Treat BT_UNION as BT_DERIVED.
gcc/testsuite/ChangeLog:
PR fortran/82511
* gfortran.dg/dec_structure_22.f90: New testcase.
From-SVN: r253791
Jan Hubicka [Mon, 16 Oct 2017 17:39:01 +0000 (19:39 +0200)]
* x86-tune-costs.h (znver1_cost): Fix move cost tables.
From-SVN: r253790