1. 09 Mar, 2018 13 commits
    • re PR c++/84724 (internal compiler error: in single_succ_edge, at… · 060ad852
      re PR c++/84724 (internal compiler error: in single_succ_edge, at basic-block.h:339 with a declaration of __builtin_trap)
      
      	PR c++/84724
      	* decl.c (duplicate_decls): Don't override __* prefixed builtins
      	except for __[^b]*_chk, instead issue permerror and for -fpermissive
      	also a note and return olddecl.
      
      	* g++.dg/ext/pr84724.C: New test.
      
      From-SVN: r258391
      Jakub Jelinek committed
    • re PR target/83712 ("Unable to find a register to spill" when compiling for thumb1) · e0cd6bc0
      2018-03-09  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR target/83712
      	* lra-assigns.c (assign_by_spills): Return a flag of reload
      	assignment failure.  Do not process the reload assignment
      	failures.  Do not spill other reload pseudos if they has the same
      	reg class.
      	(lra_assign): Add a return arg.  Set up from the result of
      	assign_by_spills call.
      	(find_reload_regno_insns, lra_split_hard_reg_for): New functions.
      	* lra-constraints.c (split_reg): Add a new arg.  Use it instead of
      	usage_insns if it is not NULL.
      	(spill_hard_reg_in_range): New function.
      	(split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg.
      	* lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New
      	function prototypes.
      	(lra_assign): Change prototype.
      	* lra.c (lra): Add code to deal with fails by splitting hard reg
      	live ranges.
      
      2018-03-09  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR target/83712
      	* gcc.target/arm/pr83712.c: New.
      
      From-SVN: r258390
      Vladimir Makarov committed
    • [arm] PR target/83193: Do not print arch/cpu hints twice on invalid -march/-mcpu · a4017ff7
      Currently when handling an invalid -march or -mcpu option on a toolchain without an explicit --with-mode configuration
      and compiling without an explicit -mthumb or -marm the arm specs end up calling arm_target_thumb_only to determine
      the "thumbness" of the target, which involves parsing the architecture or cpu name. But the functions doing that
      parsing also emit error messages and hints on invalid arguments. Later when we parse the architecture or cpu string to
      as part of the canonicalisation process (arm_canon_arch_option) we end up emitting the errors again.
      
      The solution in this patch is to silence the errors during the arm_target_thumb_only processing so that they are not emitted
      twice. arm_canon_arch_option is guaranteed to run as well, so it can emit the errors and hints that it needs.
      
      Bootstrapped and tested on arm-none-linux-gnueabihf.
      
      Checked that we emit the arch/cpu hints for invalid -march/-mcpu options only once when no "thumbness" options were specified
      during configuration or invocation.
      
      	PR target/83193
      	* common/config/arm/arm-common.c (arm_parse_arch_option_name):
      	Accept complain bool parameter.  Only emit errors if it is true.
      	(arm_parse_cpu_option_name): Likewise.
      	(arm_target_thumb_only): Adjust callers of the above.
      	* config/arm/arm-protos.h (arm_parse_cpu_option_name): Adjust
      	prototype to take a default true bool parameter.
      	(arm_parse_arch_option_name): Likewise.
      
      From-SVN: r258389
      Kyrylo Tkachov committed
    • jit: use 'configure' to replace hard-coded linker options (PR jit/64089 and PR jit/84288) · deb3da39
      gcc/ChangeLog:
      	PR jit/64089
      	PR jit/84288
      	* Makefile.in (LD_VERSION_SCRIPT_OPTION, LD_SONAME_OPTION): New.
      	* configure: Regenerate.
      	* configure.ac ("linker --version-script option"): New.
      	("linker soname option"): New.
      
      gcc/jit/ChangeLog:
      	PR jit/64089
      	PR jit/84288
      	* Make-lang.in (COMMA): New.
      	(LIBGCCJIT_VERSION_SCRIPT_OPTION): New.
      	(LIBGCCJIT_SONAME_OPTION): New.
      	(jit): Move --version-script and -soname linker options to the
      	above.
      
      
      Co-Authored-By: Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
      
      From-SVN: r258388
      David Malcolm committed
    • re PR tree-optimization/84775 (ICE on valid code at -O3: in… · 20003c3c
      re PR tree-optimization/84775 (ICE on valid code at -O3: in check_loop_closed_ssa_def, at tree-ssa-loop-manip.c:709)
      
      2018-03-09  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/84775
      	* tree-if-conv.c (add_bb_predicate_gimplified_stmts): Delink
      	immediate uses of predicate stmts and mark them modified.
      
      	Revert
      	PR tree-optimization/84178
      	* tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates
      	to caller.
      	(version_loop_for_if_conversion): Delay update_ssa call.
      	(tree_if_conversion): Delay update_ssa until after predicate
      	insertion.
      
      	* gcc.dg/torture/pr84775.c: New testcase.
      
      From-SVN: r258387
      Richard Biener committed
    • S/390: libatomic: Fix 16 byte atomic exchange · a4c6bd08
      The compiler builtin will use the hardware instruction cdsg if the
      memory operand is properly aligned and will fall back to the
      library call otherwise.
      In case the compiler for one part is able to detect that the
      location is aligned and fails to do so for another usage of the hw
      instruction and the sw fall back would be mixed on the same memory
      location.  To avoid this the library fall back also has to use the
      hardware instruction if possible.
      
      libatomic/ChangeLog:
      
      2018-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/exch_n.c: New file.
      	* configure.tgt: Add the config directory for s390.
      
      From-SVN: r258384
      Andreas Krebbel committed
    • [PR c++/84733] ICE in check-local-shadow · d04e6ed5
      https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00425.html
      	PR c++/84733
      	* name-lookup.c (do_pushdecl_with_scope): Only clear
      	current_function_decl when pushing a non-class (i.e. namespace)
      	scope.
      
      From-SVN: r258383
      Nathan Sidwell committed
    • re PR debug/84404 (Several "leb128 operand is an undefined symbol" in go… · 77a5c1b6
      re PR debug/84404 (Several "leb128 operand is an undefined symbol" in go testsuite with latest debug improvements)
      
      	PR debug/84404
      	* gcc.dg/graphite/pr84404.c: Only compile on pthread effective
      	targets.
      
      From-SVN: r258382
      Jakub Jelinek committed
    • re PR target/84763 (ICE in i386_pe_seh_cold_init) · 00db1bf1
      	PR target/84763
      	* config/i386/winnt.c (i386_pe_seh_cold_init): Use small pre-allocation
      	when the function accesses prior frames.
      
      From-SVN: r258381
      Eric Botcazou committed
    • printers.py (build_libstdcxx_dictionary): Fix std::_Fwd_list_iterator and… · 5da6b013
      printers.py (build_libstdcxx_dictionary): Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers registration.
      
      2018-03-09  François Dumont  <fdumont@gcc.gnu.org>
      
      	* python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
      	Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
      	registration.
      
      From-SVN: r258380
      François Dumont committed
    • PR libstdc++/84769 qualify std::get and std::get_if to avoid ADL · 5dbbf899
      	PR libstdc++/84769
      	* include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
      	Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
      
      From-SVN: r258376
      Jonathan Wakely committed
    • Use non-throwing is_directory in filesystem::create_directory · 311735db
      The create_dir helper was calling the throwing form of
      filesystem::is_directory instead of passing the error_code argument.
      Since std::filesystem::create_directory(const path&, error_code&) is
      noexcept, it would call std::terminate if an error occurred in
      is_directory.
      
      Passing the error_code also takes care of clearing it in the case where
      is_directory returns true.
      
      	src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
      	src/filesystem/std-ops.cc (create_dir): Likewise.
      
      From-SVN: r258375
      Jonathan Wakely committed
    • Daily bump. · 0bfd8ca9
      From-SVN: r258374
      GCC Administrator committed
  2. 08 Mar, 2018 17 commits
    • re PR debug/84456 (gcc.dg/guality/pr49888.c fail) · 372e2615
      	PR debug/84456
      	* dwarf2out.c (dw_loc_list): If list && loc_list->first->next, call
      	gen_llsym, otherwise call maybe_gen_llsym.
      
      From-SVN: r258371
      Jakub Jelinek committed
    • re PR c++/80598 (-Wunused triggers for functions used in uninstantiated templates) · 80bac2eb
      	PR c++/80598
      	* call.c (build_over_call): In templates set TREE_USED (first_fn) when
      	not calling mark_used for the benefit of -Wunused-function warning.
      
      	* g++.dg/warn/Wunused-function4.C: New test.
      
      From-SVN: r258370
      Jason Merrill committed
    • re PR inline-asm/84742 (internal compiler error: in process_alt_operands, at… · 86c6352c
      re PR inline-asm/84742 (internal compiler error: in process_alt_operands, at lra-constraints.c:2112)
      
      	PR inline-asm/84742
      	* recog.c (asm_operand_ok): Return 0 if multi-character constraint
      	has ',' character inside of it.
      
      	* gcc.target/i386/pr84742-1.c: New test.
      	* gcc.target/i386/pr84742-2.c: New test.
      
      From-SVN: r258369
      Jakub Jelinek committed
    • [AArch64] PR target/84748: Mark *compare_cstore<mode>_insn as clobbering CC reg · c8574943
      In this wrong-code PR the combine pass ends up moving a CC-using instruction past a *compare_cstore<mode>_insn
      insn_and_split. After reload the *compare_cstore<mode>_insn splitter ends up generating a SUBS instruction that
      clobbers the condition flags, and things go bad.
      
      The solution is simple, the *compare_cstore<mode>_insn pattern should specify that it clobbers the CC register
      so that combine (or any other pass) does not assume that it can move CC-using patterns across it.
      
      This patch does that and fixes the testcase.
      
      The testcase FAILs on GCC 8 only, but the buggy pattern is in GCC 6 onwards, so we should backport this as
      a latent bug fix after it's had some time to bake in trunk.
      
      Bootstrapped and tested on aarch64-none-linux-gnu.
      
      	PR target/84748
      	* config/aarch64/aarch64.md (*compare_cstore<mode>_insn): Mark pattern
      	as clobbering CC_REGNUM.
      
      	* gcc.c-torture/execute/pr84748.c: New test.
      
      From-SVN: r258366
      Kyrylo Tkachov committed
    • re PR tree-optimization/84552 (Compile time hog w/ -O2 -floop-nest-optimize… · 24545562
      re PR tree-optimization/84552 (Compile time hog w/ -O2 -floop-nest-optimize -fno-tree-copy-prop -fno-tree-fre -fno-tree-loop-ivcanon)
      
      2018-03-08  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/84552
      	* tree-scalar-evolution.c: Include tree-into-ssa.h.
      	(follow_copies_to_constant): Do not follow SSA names registered
      	for update.
      
      	* gcc.dg/graphite/pr84552.c: New testcase.
      
      From-SVN: r258365
      Richard Biener committed
    • re PR tree-optimization/84178 (ICE in release_bb_predicate) · 7fea20f6
      2018-03-08  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/84178
      	* tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates
      	to caller.
      	(version_loop_for_if_conversion): Delay update_ssa call.
      	(tree_if_conversion): Delay update_ssa until after predicate
      	insertion.
      
      	* gcc.dg/torture/pr84178-2.c: New testcase.
      
      From-SVN: r258364
      Richard Biener committed
    • tree-if-conv.c: fix ICE seen with -fno-tree-forwprop (PR tree-optimization/84178) · 8b9a03d6
      PR tree-optimization/84178 reports a couple of source files that ICE inside
      ifcvt when compiled with -03 -fno-tree-forwprop (trunk and gcc 7).
      
      Both cases involve problems with ifcvt's per-BB gimplified predicates.
      
      Testcase 1 fails this assertion within release_bb_predicate during cleanup:
      
      283	      if (flag_checking)
      284		for (gimple_stmt_iterator i = gsi_start (stmts);
      285		     !gsi_end_p (i); gsi_next (&i))
      286		  gcc_assert (! gimple_use_ops (gsi_stmt (i)));
      
      The testcase contains a division in the loop, which leads to
      if_convertible_loop_p returning false (due to gimple_could_trap_p being true
      for the division).  This happens *after* the per-BB gimplified predicates
      have been created in predicate_bbs (loop).
      Hence tree_if_conversion bails out to "cleanup", but the gimplified predicates
      exist and make use of SSA names; for example this conjunction for two BB
      conditions:
      
        _4 = h4.1_112 != 0;
        _175 = (signed char) _117;
        _176 = _175 >= 0;
        _174 = _4 & _176;
      
      is using SSA names.
      
      This assertion was added in r236498 (aka c3deca2519d97c55876869c57cf11ae1e5c6cf8b):
      
          2016-05-20  Richard Biener  <rguenther@suse.de>
      
              * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
              gimple_seq_add_seq_without_update.
              (release_bb_predicate): Assert we have no operands to free.
              (if_convertible_loop_p_1): Calculate post dominators later.
              Do not free BB predicates here.
              (combine_blocks): Do not recompute BB predicates.
              (version_loop_for_if_conversion): Save BB predicates around
              loop versioning.
      
              * gcc.dg/tree-ssa/ifc-cd.c: Adjust.
      
      The following patch fixes this by adding a call to gimple_seq_discard
      to release_bb_predicate.  It also updates the assertion, so that
      instead of asserting the stmts have no imm uses, instead assert that
      they weren't added to a bb before discarding them (otherwise discarding
      them would be a bug).  We know this is the case because
      insert_gimplified_predicates has:
      
      	  /* Once the sequence is code generated, set it to NULL.  */
      	  set_bb_predicate_gimplified_stmts (bb, NULL);
      
      but asserting it seems appropriate as a double-check.
      
      The patch doesn't address the 2nd issue within PR tree-optimization/84178.
      
      gcc/ChangeLog:
      	PR tree-optimization/84178
      	* tree-if-conv.c (release_bb_predicate): Remove the
      	the assertion that the stmts have NULL use_ops.
      	Discard the statements, asserting that they haven't
      	yet been added to a BB.
      
      gcc/testsuite/ChangeLog:
      	PR tree-optimization/84178
      	* gcc.c-torture/compile/pr84178-1.c: New test.
      
      From-SVN: r258363
      David Malcolm committed
    • Fix ifunc detection in target-supports.exp file. · 24b830b6
      2018-03-08  Thomas Schwinge  <thomas@codesourcery.com>
      
      	* lib/target-supports.exp: Do not return zero from a ifunc
      	function.
      
      From-SVN: r258362
      Thomas Schwinge committed
    • re PR tree-optimization/84746 (ICE on valid code at -O2 and -O3: Segmentation fault) · de341bf0
      2018-03-08  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/84746
      	* tree-ssa-pre.c (find_leader_in_sets): Deal with SET1 being NULL.
      	(phi_translate): Pass in destination ANTIC_OUT set.
      	(phi_translate_1): Likewise.  For a simplified result lookup
      	a leader in ANTIC_OUT and AVAIL_OUT, not the ANTIC_IN sets.
      	(phi_translate_set): Adjust.
      	(do_pre_regular_insertion): Likewise.
      	(do_pre_partial_partial_insertion): Likewise.
      
      	* gcc.dg/torture/pr84746.c: New testcase.
      
      From-SVN: r258361
      Richard Biener committed
    • Document gcov-io (PR gcov-profile/84735). · 5223e95a
      2018-03-08  Martin Liska  <mliska@suse.cz>
      
      	PR gcov-profile/84735
      	* doc/gcov.texi: Document usage of profile files.
      	* gcov-io.h: Document changes in the format.
      
      From-SVN: r258360
      Martin Liska committed
    • [LVU] reset view at function entry, omit views at line zero · bc7b0ffa
      Location views might be associated with locations that lack line
      number information (line number zero), but since we omit .loc
      directives that would have been issued with line number zero, we also
      omit the symbolic view numbers that would have been issued at such
      points.
      
      Resetting views at function entry points address some of these issues,
      and alleviate the huge chains of symbolic views that have burdened
      assemblers since we disabled -ginternal-reset-location-views by
      default, but other problems of undefined views remain when it's not
      the whole function that lacks line number info, just parts of it.
      
      So, when we encounter a request to output a view that may have been
      referenced, but we decide to omit the .loc because the line is zero,
      we will now omit the view as well, i.e., we will internally regard
      that view as zero-numbered.
      
      for  gcc/ChangeLog
      
      	PR debug/84404
      	PR debug/84408
      	* dwarf2out.c (struct dw_line_info_table): Update comments for
      	view == -1.
      	(FORCE_RESET_NEXT_VIEW): New.
      	(FORCE_RESETTING_VIEW_P): New.
      	(RESETTING_VIEW_P): Check for -1 too.
      	(ZERO_VIEW_P): Likewise.
      	(new_line_info_table): Force-reset next view.
      	(dwarf2out_begin_function): Likewise.
      	(dwarf2out_source_line): Simplify zero_view_p initialization.
      	Test FORCE_RESETTING_VIEW_P and RESETTING_VIEW_P instead of
      	view directly.  Omit view when omitting .loc at line 0.
      
      for  gcc/testsuite/ChangeLog
      
      	PR debug/84404
      	PR debug/84408
      	* gcc.dg/graphite/pr84404.c: New.
      
      From-SVN: r258355
      Alexandre Oliva committed
    • re PR tree-optimization/84740 (ICE in build_constructors, at tree-switch-conversion.c:965) · ce8b1a1f
      	PR tree-optimization/84740
      	* tree-switch-conversion.c (process_switch): Call build_constructors
      	only if info.phi_count is non-zero.
      
      	* gcc.dg/torture/pr84740.c: New test.
      
      From-SVN: r258354
      Jakub Jelinek committed
    • re PR tree-optimization/84739 (ICE in get_value_for_expr, at tree-ssa-ccp.c:649) · 686faaec
      	PR tree-optimization/84739
      	* tree-tailcall.c (find_tail_calls): Check call arguments against
      	DECL_ARGUMENTS (current_function_decl) rather than
      	DECL_ARGUMENTS (func) when checking for tail recursion.
      
      	* gcc.dg/pr84739.c: New test.
      
      From-SVN: r258351
      Jakub Jelinek committed
    • printers.py (NodeIteratorPrinter): New. · fe6bd21a
      2018-03-08  François Dumont  <fdumont@gcc.gnu.org>
      
      	* python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
      	(StdListIteratorPrinter): Inherit from latter.
      	(StdFwdListIteratorPrinter): New, inherit from latter.
      	(StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
      	when iterator has no associated container.
      	(build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
      	__gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
      	registrations.
      	* testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
      	* testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
      
      From-SVN: r258350
      François Dumont committed
    • PR tree-optimization/83519 - missing -Wrestrict on an overlapping strcpy to a non-member array · 1b1a1881
      gcc/testsuite/ChangeLog:
      
      	* gcc.dg/Wrestrict-13.c: New test.
      
      From-SVN: r258348
      Martin Sebor committed
    • re PR fortran/64124 ([F95] Valid constant expr rejected) · 00df7c36
      2018-03-07  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/64124
      	PR fortran/70409
      	* decl.c (gfc_match_char_spec): Try to reduce a charlen to a constant.
      
      2018-03-07  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/64124
      	PR fortran/70409
      	* gfortran.dg/pr64124.f90: New tests.
      	* gfortran.dg/pr70409.f90: New tests.
      
      From-SVN: r258347
      Steven G. Kargl committed
    • Daily bump. · 4b7b455c
      From-SVN: r258345
      GCC Administrator committed
  3. 07 Mar, 2018 10 commits
    • contrib.texi: Add entries for Martin Liska... · 1c883d03
      	* doc/contrib.texi: Add entries for Martin Liska, David Malcolm,
      	Marek Polacek, extend Vladimir Makarov's, Jonathan Wakely's and
      	Volker Reichelt's entry and add entries for people that perform
      	GCC fuzzy testing and report numerous bugs.
      
      From-SVN: r258342
      Jakub Jelinek committed
    • lambda.c (is_capture_proxy_with_ref): Remove. · 68ad1bf7
      	* lambda.c (is_capture_proxy_with_ref): Remove.
      
      	* constexpr.c, expr.c, cp-tree.h, semantics.c: Adjust.
      
      From-SVN: r258341
      Jason Merrill committed
    • rs6000: -mreadonly-in-sdata (PR82411) · 335b7b5a
      This adds a new option -mreadonly-in-sdata (on by default) that
      controls whether readonly data can be put in sdata.  (For EABI this
      does nothing, readonly data is put in sdata2 as usual).
      
      
      	PR target/82411
      	* config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Don't put
      	readonly data in sdata, if that is disabled.
      	* config/rs6000/sysv4.opt (mreadonly-in-sdata): New option.
      	* doc/invoke.texi (RS/6000 and PowerPC Options): Document
      	-mreadonly-in-sdata option.
      
      gcc/testsuite/
      	PR target/82411
      	* gcc.target/powerpc/ppc-sdata-2.c: Skip if -mno-readonly-in-sdata.
      
      From-SVN: r258340
      Segher Boessenkool committed
    • PR tree-optimization/84468 - bogus -Wstringop-truncation despite assignment… · a76acaed
      PR tree-optimization/84468 - bogus -Wstringop-truncation despite assignment after conditional strncpy
      
      gcc/ChangeLog:
      
      	PR tree-optimization/84468
      	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Consider successor
      	basic block when looking for nul assignment.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/84468
      	* g++.dg/warn/Wstringop-truncation-2.C: New test.
      	* gcc.dg/Wstringop-truncation.c: New test.
      	* gcc.dg/Wstringop-truncation-2.c: New test.
      
      From-SVN: r258339
      Martin Sebor committed
    • re PR target/84277 (A lot of new acats testsuite failures) · b78b513e
      	PR target/84277
      	* except.h (output_function_exception_table): Adjust prototype.
      	* except.c (output_function_exception_table): Remove FNNAME parameter
      	and add SECTION parameter.  Ouput one part of the table at a time.
      	* final.c (final_scan_insn_1) <NOTE_INSN_SWITCH_TEXT_SECTIONS>: Output
      	the first part of the exception table and emit unwind directives.
      	* config/i386/i386-protos.h (i386_pe_end_cold_function): Declare.
      	(i386_pe_seh_cold_init): Likewise.
      	* config/i386/cygming.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro.
      	(ASM_DECLARE_COLD_FUNCTION_SIZE): Likewise.
      	* config/i386/i386.c (x86_expand_epilogue): Fix wording in comment.
      	(ix86_output_call_insn): Emit a nop in one more case for SEH.
      	* config/i386/winnt.c: Include except.h.
      	(struct seh_frame_state): Add reg_offset, after_prologue and
      	in_cold_section fields.
      	(i386_pe_seh_end_prologue): Set seh->after_prologue.
      	(i386_pe_seh_cold_init): New function.
      	(i386_pe_seh_fini): Add COLD parameter and bail out if it is not equal
      	to seh->in_cold_section.
      	(seh_emit_push): Record the offset of the push.
      	(seh_emit_save): Record the offet of the save.
      	(i386_pe_seh_unwind_emit): Deal with NOTE_INSN_SWITCH_TEXT_SECTIONS.
      	Test seh->after_prologue to disregard the epilogue.
      	(i386_pe_end_function): Pass FALSE to i386_pe_seh_fini.
      	(i386_pe_end_cold_function): New function.
      
      From-SVN: r258338
      Eric Botcazou committed
    • runtime: use a fence instruction before rdtsc · 2dab5d90
          
          This implements the same choices made in the gc runtime, except that
          for 32-bit x86 we only use the fence instruction if the processor
          supports SSE2.
          
          The code here is hacked up for speed; the gc runtime uses straight
          assembler.
          
          Reviewed-on: https://go-review.googlesource.com/97715
      
      From-SVN: r258336
      Ian Lance Taylor committed
    • Ada: Fix s-oscons.ads generation · 6cde8c54
      The $(GNATLIBCFLAGS) are already included in $(GNATLIBCFLAGS_FOR_C).
      
      We must call the C compiler with the right machine flags.  So, add
      $(GNATLIBCFLAGS_FOR_C) to $(OSCONS_EXTRACT).  For example, on a bi-arch
      compiler supporting 32-bit and 64-bit instruction sets we pick otherwise
      only one variant due to a missing -m32 or -m64 flag.
      
      gcc/ada
      	* gcc-interface/Makefile.in (OSCONS_CPP): Remove redundant
      	$(GNATLIBCFLAGS).
      	(OSCONS_EXTRACT): Add $(GNATLIBCFLAGS_FOR_C).
      
      From-SVN: r258334
      Sebastian Huber committed
    • re PR target/84565 (ICE in extract_insn, at recog.c:2304 on aarch64) · 454144fc
      	PR fortran/84565
      	* config/aarch64/predicates.md (aarch64_simd_reg_or_zero): Use
      	aarch64_simd_or_scalar_imm_zero rather than aarch64_simd_imm_zero.
      
      	* gfortran.dg/pr84565.f90: New test.
      
      From-SVN: r258333
      Jakub Jelinek committed
    • re PR c++/84704 (internal compiler error: gimplification failed) · b6f03d13
      	PR c++/84704
      	* gimple-expr.c (create_tmp_var_raw): Set DECL_NAMELESS flag
      	on tmp_var.
      	* tree-pretty-print.c (dump_decl_name): For TDF_COMPARE_DEBUG,
      	don't print names of DECL_NAMELESS DECL_IGNORED_P decls.
      
      From-SVN: r258317
      Jakub Jelinek committed