1. 21 Sep, 2017 8 commits
    • Add missing int_cst_rangeN checks to tree-vrp.c · 53cb6378
      The BIT_AND_EXPR handling in extract_range_from_binary_expr_1
      was using value_range_constant_singleton without first checking
      whether the range was a constant.  The earlier handling was correctly
      guarded:
      
      	  /* If either input range contains only non-negative values
      	     we can truncate the result range maximum to the respective
      	     maximum of the input range.  */
      	  if (int_cst_range0 && tree_int_cst_sgn (vr0.min) >= 0)
      	    wmax = wi::min (wmax, vr0.max, TYPE_SIGN (expr_type));
      	  if (int_cst_range1 && tree_int_cst_sgn (vr1.min) >= 0)
      	    wmax = wi::min (wmax, vr1.max, TYPE_SIGN (expr_type));
      
      so this patch uses the same guards again.
      
      Existing tests showed the need for this once polynomial constants
      are added.
      
      2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* tree-vrp.c (extract_range_from_binary_expr_1): Check
      	int_cst_rangeN before calling value_range_constant_singleton (&vrN).
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r253054
      Richard Sandiford committed
    • re PR tree-optimization/71351 (ICE: Segmentation fault (graphite)) · 2e1dd137
      2017-09-21  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/71351
      	* graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
      	graphite_create_new_loop_guard): Remove, fold remaining parts
      	into caller ...
      	(translate_isl_ast_node_for): ... here and simplify.
      
      	* gfortran.dg/graphite/pr71351.f90: New testcase.
      	* gfortran.dg/graphite/interchange-3.f90: Adjust.
      
      From-SVN: r253052
      Richard Biener committed
    • Fix tests for std::clamp · f3f08c3f
      	* testsuite/25_algorithms/clamp/1.cc: Fix order of arguments and
      	expected results when using predicate defining reverse order.
      	* testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
      
      From-SVN: r253051
      Jonathan Wakely committed
    • re PR target/82260 ([x86] Unnecessary use of 8-bit registers with -Os. slightly… · a4f65ca8
      re PR target/82260 ([x86] Unnecessary use of 8-bit registers with -Os.  slightly slower and larger code)
      
      	PR target/82260
      	* config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
      	with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
      	latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
      	alternative always use QI mode, for -Os imov (=R,R) alternative
      	always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
      	ignore -Os.
      
      	* gcc.target/i386/pr82260-1.c: New test.
      	* gcc.target/i386/pr82260-2.c: New test.
      
      From-SVN: r253050
      Jakub Jelinek committed
    • s390.c (MIN_UNROLL_PROBES): Define. · d3347cd2
      	* config/s390/s390.c (MIN_UNROLL_PROBES): Define.
      	(allocate_stack_space): New function, partially extracted from
      	s390_emit_prologue.
      	(s390_emit_prologue): Track offset to most recent stack probe.
      	Code to allocate space moved into allocate_stack_space.
      	Dump actions when no stack is allocated.
      	(s390_prologue_plus_offset): New function.
      	(s390_emit_stack_probe): Likewise.
      
      	* gcc.dg/stack-check-5.c:  Add argument for s390.
      	* lib/target-supports.exp:
      	(check_effective_target_supports_stack_clash_protection): Enable for
      	s390/s390x targets.
      
      Co-Authored-By: Jeff Law <law@redhat.com>
      
      From-SVN: r253049
      Andreas Krebbel committed
    • [C++ PATCH] class member ordering · 12f71313
      https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01426.html
      	* name-lookup.c (member_name_cmp): Use DECL_UID for final
      	ordering.
      
      From-SVN: r253048
      Nathan Sidwell committed
    • enable handling of -gno- command-line options as negated prefixes · 9ed32e27
      This patch that adds -g to the set of negatable prefixes along with -f,
      -m and -W.  Besides the mapping from -gno- to negated -g in option_map
      and adding g to the [fmW] matches for negatable options, I had to
      introduce gno- as an remapping prefix, for the option searching
      machinery to backtrack to and recognize as a remapping prefix, instead
      of backtracking to -g and stopping at it as if no-* was its Joined
      argument.  Adding such remapping prefixes to preempt further
      backtracking can be accomplished by introducing the prefix as an
      Undocumented option with a Joined argument and without Driver, Target,
      Common, or any language-specific option.  Whenever we match such a fake
      options prefix, we abandon further backtracking (it matches, after all),
      but find_opt returns the same code it would if it hadn't found any
      match, so that we resort to option mapping.
      
      I've arranged for such remapping prefixes to not be considered when
      looking for and suggesting a correct spelling for misspelled options.
      While testing that, I found a few -W-started options that were not
      marked as RejectNegative but should (-Wno-a, is not something we'd like
      to suggest ;-)  I've also marked as such -g-started options that
      it makes no sense to negate, and removed the explicit -gno- ones,
      allowing their opposites to be negated.
      
      for  gcc/ChangeLog
      
      	* common.opt (Wa, Wl, Wp, g, gz=): Add
      	RejectNegative.
      	(gno-column-info): Remove.
      	(gcolumn-info): Drop RejectNegative.
      	(gno-): New prefix.
      	(gno-record-gcc-switches): Remove.
      	(grecord-gcc-switches): Drop RejectNegative.
      	(gno-split-dwarf): Remove.
      	(gsplit-dwarf): Drop RejectNegative.
      	(gno-strict-dwarf): Remove.
      	(gstrict-dwarf): Drop RejectNegative.
      	* config/darwin.opt (gfull, gused): Add RejectNegative.
      	* dwarf2out.c (gen_producer_string): Drop
      	gno-record-gcc-switches handler.
      	* optc-gen.awk: Add g to prefixes with negative forms.
      	* opts-common.c (remapping_prefix_p): New.
      	(find_opt): Check it.
      	(generate_canonical_option): Test g prefix.
      	(option_map): Add -gno- mapping.
      	(add_misspelling_candidates): Check remapping_prefix_p.
      
      for  gcc/ada/ChangeLog
      
      	* gcc-interface/lang.opt (gant, gnatO, gnat): Add
              RejectNegative.
      
      for  gcc/c-family/ChangeLog
      
      	* c.opt (gen-decls): Add RejectNegative.
      
      From-SVN: r253047
      Alexandre Oliva committed
    • Daily bump. · d8a61466
      From-SVN: r253046
      GCC Administrator committed
  2. 20 Sep, 2017 32 commits
    • libgo: fix build when using -enable-static=no · 7399e345
          
          With -enable-static=no we don't build non-pic objects, but libgotool.a
          is built from non-pic objects.  Build the packages that go into
          libgotool.a in static mode in all cases.
          
          Also ensure that internal test packages are built, since nothing
          explicitly depended on them.
          
          Reviewed-on: https://go-review.googlesource.com/65050
      
      From-SVN: r253042
      Ian Lance Taylor committed
    • Fix C++ testsuite fallout from r252976. · 073809a7
      gcc/testsuite/ChangeLog:
      
      	PR c/81854
      	* g++.dg/ext/attr-ifunc-2.C: Correct type errors.
      	* g++.dg/ext/attr-ifunc-4.C: Ditto.
      	* lib/target-supports.exp: Adjust for C++.
      
      From-SVN: r253041
      Martin Sebor committed
    • Fix testsuite fallout from r252976. · 5f2fd590
      gcc/testsuite/ChangeLog:
      
      	PR c/81854
      	* gcc.dg/attr-ifunc-1.c: Correct type errors.
      	* gcc.dg/attr-ifunc-2.c: Ditto.
      	* gcc.dg/attr-ifunc-3.c: Ditto.
      	* gcc.dg/attr-ifunc-4.c: Ditto.
      	* gcc.dg/attr-ifunc-5.c: Ditto.
      	* gcc.dg/pr81854.c: Require ifunc support.
      	* gcc/testsuite/lib/target-supports.exp: Correct type error.
      
      From-SVN: r253037
      Martin Sebor committed
    • powerpcspe.c (rs6000_expand_prologue): Fix thinko in stack clash protection support. · 329c9aee
      	* config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
      	thinko in stack clash protection support.
      
      From-SVN: r253036
      Jeff Law committed
    • PR libstdc++/79162 Fix std::string regression due to LWG 2946 (old ABI) · 9d2bac69
      	PR libstdc++/79162
      	* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
      	(basic_string::_If_sv): Remove from the overload set when the
      	argument is derived from basic_string.
      
      From-SVN: r253035
      Jonathan Wakely committed
    • explow.c (compute_stack_clash_protection_loop_data): Use CONST_INT_P instead of explicit test. · 94c23e39
      	* explow.c (compute_stack_clash_protection_loop_data): Use
      	CONST_INT_P instead of explicit test.  Verify object is a
      	CONST_INT_P before looking at INTVAL.
      	(anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
      	instead of explicit test.
      
      	* gcc.target/i386/stack-check-11.c: Update test and regexp
      	so that it works for both i?86 and x86_64.
      
      From-SVN: r253034
      Jeff Law committed
    • rs6000: Don't touch below the stack pointer (PR77687) · 6073d002
      With the 32-bit SVR4 ABI we don't have a red zone, so we have to restore
      the callee-saved registers before we restore the stack pointer.
      
      The previous fix for this PR failed in two ways, for huge frames: first,
      we use a negative offset from r11 in that case, so the (mem:BLK 11) access
      does no good; second, sched does not handle accesses to mem:BLK correctly
      in this case (does not make dependencies).
      
      This patch fixes it by doing a store to (mem:BLK (scratch)) instead.
      This means no unrelated (not to stack) loads/stores can be moved over the
      stack restore either, but so be it.
      
      
      	PR target/77687
      	* config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
      	address instead of to r1 and r11.
      
      gcc/testsuite/
      	PR target/77687
      	* gcc.target/powerpc/pr77687.c: New testcase.
      
      From-SVN: r253033
      Segher Boessenkool committed
    • re PR sanitizer/77631 (no symbols in backtrace shown by ASan when debug info is split) · 9283471b
      	PR sanitizer/77631
      	Support for external debug info.
      	* elf.c: Include <errno.h>, <sys/stat.h>, <unistd.h>.
      	(S_ISLNK): Define if not defined.
      	(xstrnlen): Define if strnlen is not available.
      	(b_elf_note): Define type.
      	(NT_GNU_BUILD_ID): Define macro.
      	(elf_crc32, elf_crc32_file): New static functions.
      	(elf_is_symlink, elf_readlink): New static functions.
      	(elf_open_debugfile_by_buildid): New static function.
      	(elf_try_debugfile): New static function.
      	(elf_find_debugfile_by_debuglink): New static function.
      	(elf_open_debugfile_by_debuglink): New static function.
      	(elf_add): Add filename and debuginfo parameters.  Adjust all
      	callers.  Look for external debug info notes, and try to fetch
      	debug info from external file.
      	(struct phdr_data): Add exe_filename field.
      	(phdr_callback): Pass filename to elf_add.
      	(backtrace_initialize): Add filename parameter.
      	* internal.h (backtrace_initialize): Add filename parameter.
      	* fileline.c (fileline_initialize): Pass filename to
      	backtrace_initialize.
      	* pecoff.c (fileline_initialize): Add unused filename parameter.
      	* unknown.c (fileline_initialize): Likewise.
      	* xcoff.c (fileline_initialize): Likewise.
      	* configure.ac: Check for objcopy --add-gnu-debuglink.
      	* Makefile.am (dtest): New test target.
      	* configure, Makefile.in: Rebuild.
      
      Co-Authored-By: Denis Khalikov <d.khalikov@partner.samsung.com>
      
      From-SVN: r253032
      Ian Lance Taylor committed
    • P0409R2 - allow lambda capture [=, this] · 2ffb5745
      	P0409R2 - allow lambda capture [=, this]
      	* parser.c (cp_parser_lambda_introducer): For cxx2a don't pedwarn on
      	redundant [=, this].
      
      	* g++.dg/cpp1z/lambda-this1.C: Don't expect error for c++2a on [=, this]
      	capture.  Add further tests.
      	* g++.dg/cpp0x/lambda/lambda-capture-redundancy.C: Don't expect error
      	for c++2a on [=, this] capture.
      
      From-SVN: r253030
      Jakub Jelinek committed
    • cplusplus.C: Test that __cplusplus is equal to 201703L. · fb3cd39d
      	* g++.dg/cpp1z/cplusplus.C: Test that __cplusplus is equal to 201703L.
      	* g++.dg/cpp1z/cplusplus_1z.C: New test.
      
      From-SVN: r253029
      Jakub Jelinek committed
    • PR libstdc++/79162 Fix std::string regression due to LWG 2946 · 4cf5930f
      	PR libstdc++/79162
      	* include/bits/basic_string.h (basic_string::_If_sv): Remove from the
      	overload set when the argument is derived from basic_string.
      	* testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: New
      	test.
      	* testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
      	New test.
      
      From-SVN: r253024
      Jonathan Wakely committed
    • syscall: enable ParseDirent for AIX · 836cccc7
          
          Reviewed-on: https://go-review.googlesource.com/64990
      
      From-SVN: r253022
      Ian Lance Taylor committed
    • Fix failing C++17 test · e18f68c7
      	* testsuite/24_iterators/range_access_cpp17.cc: Fix order of dg-do
      	and dg-options directives. Fix invalid test.
      
      From-SVN: r253019
      Jonathan Wakely committed
    • PR libstdc++/81469 deprecate std::uncaught_exception for C++17 · 95ed529d
      	PR libstdc++/81469
      	* libsupc++/exception (uncaught_exception): Deprecate for C++17.
      	* testsuite/18_support/exception_ptr/62258.cc: Add -Wno-deprecated.
      	* testsuite/18_support/uncaught_exception/14026.cc: Likewise.
      
      From-SVN: r253018
      Jonathan Wakely committed
    • Deprecate nested types in std::hash · f78958c9
      	* include/bits/c++config (_GLIBCXX17_DEPRECATED): Define.
      	* include/bits/functional_hash.h (__hash_base::result_type)
      	(__hash_base::argument_type): Add _GLIBCXX17_DEPRECATED.
      	* include/std/optional (hash<optional<T>>::result_type)
      	(hash<optional<T>>::argument_type): Add deprecated attribute.
      	(__is_fast_hash<hash<optional<T>>>): Add partial specialization.
      	* include/std/variant (hash<variant<Types...>>::result_type)
      	(hash<variant<Types...>>::argument_type): Add deprecated attribute.
      	(__is_fast_hash<hash<variant<Types...>>>): Add partial specialization.
      
      From-SVN: r253017
      Jonathan Wakely committed
    • config.gcc: Support "knm". · cace2309
      gcc/
      
              * config.gcc: Support "knm".
              * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
              * config/i386/i386-c.c (ix86_target_macros_internal): Handle
              PROCESSOR_KNM.
              * config/i386/i386.c (m_KNM): Define.
              (processor_target_table): Add "knm".
              (PTA_KNM): Define.
              (ix86_option_override_internal): Add "knm".
              (ix86_issue_rate): Add PROCESSOR_KNM.
              (ix86_adjust_cost): Ditto.
              (ia32_multipass_dfa_lookahead): Ditto.
              (get_builtin_code_for_version): Handle PROCESSOR_KNM.
              (fold_builtin_cpu): Add M_INTEL_KNM.
              * config/i386/i386.h (processor_costs): Define TARGET_KNM.
              (processor_type): Add PROCESSOR_KNM.
               * config/i386/x86-tune.def: Add m_KNM.
              * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.
      
      libgcc/
              * config/i386/cpuinfo.h (processor_types): Add INTEL_KNM.
              * config/i386/cpuinfo.c (get_intel_cpu): Detect Knights Mill.
      
      gcc/testsuite/
      
              * gcc.target/i386/builtin_target.c: Test knm.
              * gcc.target/i386/funcspec-56.inc: Test arch=knm.
      
      From-SVN: r253013
      Sebastian Peryt committed
    • Revert my 2017-09-19 patch. · 2288ea23
      From-SVN: r253012
      Uros Bizjak committed
    • Remove non-standard std::copy_exception function · 20f661fb
      	* libsupc++/exception_ptr.h (copy_exception): Remove deprecated
      	non-standard function.
      
      From-SVN: r253011
      Jonathan Wakely committed
    • PR libstdc++/82262 fix std::hash<std::optional<const T>> · f6b05c44
      	PR libstdc++/82262
      	* include/std/optional (__optional_hash_call_base): Add template
      	parameter for remove_const_t<_Tp> and use it consistently.
      	* testsuite/20_util/optional/hash.cc: Test optional<const T>.
      
      From-SVN: r253010
      Jonathan Wakely committed
    • re PR tree-optimization/80213 (ICE in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:704) · 3c16e99c
      2017-09-20  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/80213
      	* graphite-scop-detection.c (trivially_empty_bb_p): Labels
      	are allowed in empty BBs as well.
      	(canonicalize_loop_closed_ssa): Also look for other complex
      	edges.
      	(scop_detection::get_sese): Include the loop-closed PHI block
      	in loop SESEs.
      	(scop_detection::merge_sese): Remove code adding extra blocks.
      	(scop_detection::region_has_one_loop): Adjust for get_sese changes.
      	(build_scops): Assert the final returned scop is invalid.
      
      From-SVN: r253008
      Richard Biener committed
    • re PR tree-optimization/77362 ([graphite] ICE in sese_build_liveouts_use w/ -O2… · 52e22c79
      re PR tree-optimization/77362 ([graphite] ICE in sese_build_liveouts_use w/ -O2 -floop-nest-optimize)
      
      2017-09-20  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/77362
      	* gcc.dg/graphite/pr77362.c: New testcase.
      
      From-SVN: r253006
      Richard Biener committed
    • re PR tree-optimization/82264 (ICE in vn_phi_lookup at gcc/tree-ssa-sccvn.c:3125) · 2a900079
      2017-09-20  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/82264
      	* tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
      	for GIMPLE_CONDs.
      	(vn_phi_lookup): Likewise.
      	(vn_phi_insert): Likewise.
      
      	* gcc.dg/torture/pr82264.c: New testcase.
      
      From-SVN: r253005
      Richard Biener committed
    • dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST that fits into uhwi or shwi... · 88272c01
      	* dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
      	that fits into uhwi or shwi, add DW_AT_const_value regardless
      	of early_dwarf without going through RTL, using add_AT_unsigned
      	or add_AT_int.
      
      	* g++.dg/debug/dwarf2/template-params-13.C: New test.
      	* g++.dg/debug/dwarf2/template-params-5.C: Adjust regexps so that
      	it doesn't match newlines.
      	* g++.dg/debug/dwarf2/template-params-3.C: Likewise.
      	* g++.dg/debug/dwarf2/template-func-params-3.C: Likewise.
      	* g++.dg/debug/dwarf2/lang-cpp98.C: Likewise.
      	* g++.dg/debug/dwarf2/template-func-params-2.C: Likewise.
      	* g++.dg/debug/dwarf2/template-func-params-1.C: Likewise.
      	* g++.dg/debug/dwarf2/template-func-params-5.C: Likewise.
      	* g++.dg/debug/dwarf2/template-params-1.C: Likewise.
      	* g++.dg/debug/dwarf2/template-params-2.C: Likewise.
      	* g++.dg/debug/dwarf2/lang-cpp14.C: Likewise.
      	* g++.dg/debug/dwarf2/lang-cpp11.C: Likewise.
      
      From-SVN: r253004
      Jakub Jelinek committed
    • dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines. · dcc34072
      	* dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
      	(DEBUG_LTO_ABBREV_SECTION): Likewise.
      	(DEBUG_LTO_MACINFO_SECTION): Likewise.
      	(DEBUG_MACRO_SECTION): Likewise.
      	(DEBUG_LTO_MACRO_SECTION): Likewise.
      	(DEBUG_STR_DWO_SECTION): Likewise.
      	(DEBUG_LTO_STR_DWO_SECTION): Likewise.
      	(DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
      	(DEBUG_LTO_DWO_LINE_SECTION): Define.
      	(DEBUG_LTO_LINE_STR_SECTION): Define.
      	(init_sections_and_labels): Initialize debug_line_str_section
      	variable.  Initialize debug_loc_section for -gdwarf-5 to
      	DEBUG_LOCLISTS_SECTION.  Formatting fixes.
      
      From-SVN: r253003
      Jakub Jelinek committed
    • re PR c++/64954 (GCC incorrectly rejects constexpr variable initialization.) · 0f45457e
      2017-09-20  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/64954
      	* g++.dg/cpp0x/constexpr-ctor20.C: New.
      
      From-SVN: r253002
      Paolo Carlini committed
    • graphite-sese-to-poly.c (extract_affine): Properly handle POINTER_PLUS_EXPR,… · f6b5c26b
      graphite-sese-to-poly.c (extract_affine): Properly handle POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
      
      2017-09-20  Richard Biener  <rguenther@suse.de>
      
      	* graphite-sese-to-poly.c (extract_affine): Properly handle
      	POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
      
      From-SVN: r253001
      Richard Biener committed
    • re PR tree-optimization/81373 (Graphite ICE in ssa_default_def at gcc/tree-dfa.c:305) · 73fe2f32
      2017-09-20  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/81373
      	* graphite-scop-detection.c (build_cross_bb_scalars_def):
      	Force SESE live-out defs to be handled even if they are
      	scev_analyzable_p.
      
      	* gcc.dg/graphite/pr81373.c: New testcase.
      
      From-SVN: r253000
      Richard Biener committed
    • combine-stack-adj.c (combine_stack_adjustments_for_block): Do nothing for stack… · ac9c032e
      combine-stack-adj.c (combine_stack_adjustments_for_block): Do nothing for stack adjustments with REG_STACK_CHECK.
      
      	* combine-stack-adj.c (combine_stack_adjustments_for_block): Do
      	nothing for stack adjustments with REG_STACK_CHECK.
      	* sched-deps.c (parse_add_or_inc): Reject insns with
      	REG_STACK_CHECK from dependency breaking.
      	* config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
      	(ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
      	* reg-notes.def (STACK_CHECK): New note.
      
      	* gcc.target/i386/stack-check-11.c: New test.
      
      From-SVN: r252999
      Jeff Law committed
    • i386.c (ix86_adjust_stack_and_probe_stack_clash): New. · 8e7a09c3
      	* config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
      	(ix86_expand_prologue): Dump stack clash info as needed.
      	Call ix86_adjust_stack_and_probe_stack_clash as needed.
      
      	* gcc.dg/stack-check-4.c: New test.
      	* gcc.dg/stack-check-5.c: New test.
      	* gcc.dg/stack-check-6.c: New test.
      	* gcc.dg/stack-check-6a.c: New test.
      	* gcc.dg/stack-check-7.c: New test.
      	* gcc.dg/stack-check-8.c: New test.
      	* gcc.dg/stack-check-9.c: New test.
      	* gcc.dg/stack-check-10.c: New test.
      	* lib/target-supports.exp
      	(check_effective_target_supports_stack_clash_protection): Enable for
      	x86 and x86_64 targets.
      
      From-SVN: r252998
      Jeff Law committed
    • function.c (dump_stack_clash_frame_info): New function. · 8a502a80
              * function.c (dump_stack_clash_frame_info): New function.
              * function.h (dump_stack_clash_frame_info): Prototype.
              (enum stack_clash_probes): New enum.
      
      From-SVN: r252997
      Jeff Law committed