1. 15 Jan, 2018 28 commits
    • rs6000: Delete "delayed_cr" insn type · 34ef0745
      "delayed_cr" is just "cr_logical" with the second source operand not
      equal to the destination operand.  This patch changes it to be
      expressed as type "cr_logical", with a new boolean attribute
      "cr_logical_3op" added.  This simplifies code.
      
      
      	* config/rs6000/rs6000.md (define_attr "type"): Remove delayed_cr.
      	(define_attr "cr_logical_3op"): New.
      	(cceq_ior_compare): Adjust.
      	(cceq_ior_compare_complement): Adjust.
      	(*cceq_rev_compare): Adjust.
      	* config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
      	(is_cracked_insn): Adjust.
      	(insn_must_be_first_in_group): Adjust.
      	* config/rs6000/40x.md: Adjust.
      	* config/rs6000/440.md: Adjust.
      	* config/rs6000/476.md: Adjust.
      	* config/rs6000/601.md: Adjust.
      	* config/rs6000/603.md: Adjust.
      	* config/rs6000/6xx.md: Adjust.
      	* config/rs6000/7450.md: Adjust.
      	* config/rs6000/7xx.md: Adjust.
      	* config/rs6000/8540.md: Adjust.
      	* config/rs6000/cell.md: Adjust.
      	* config/rs6000/e300c2c3.md: Adjust.
      	* config/rs6000/e500mc.md: Adjust.
      	* config/rs6000/e500mc64.md: Adjust.
      	* config/rs6000/e5500.md: Adjust.
      	* config/rs6000/e6500.md: Adjust.
      	* config/rs6000/mpc.md: Adjust.
      	* config/rs6000/power4.md: Adjust.
      	* config/rs6000/power5.md: Adjust.
      	* config/rs6000/power6.md: Adjust.
      	* config/rs6000/power7.md: Adjust.
      	* config/rs6000/power8.md: Adjust.
      	* config/rs6000/power9.md: Adjust.
      	* config/rs6000/rs64.md: Adjust.
      	* config/rs6000/titan.md: Adjust.
      
      From-SVN: r256716
      Segher Boessenkool committed
    • i386: Rewrite indirect_branch_operand logic · 894c144c
      	* config/i386/predicates.md (indirect_branch_operand): Rewrite
      	ix86_indirect_branch_register logic.
      
      From-SVN: r256715
      H.J. Lu committed
    • Don't check ix86_indirect_branch_register for GOT operand · 4a5a0497
      Since GOT_memory_operand and GOT32_symbol_operand are simple pattern
      matches, don't check ix86_indirect_branch_register here.  If needed,
      -mindirect-branch= will convert indirect branch via GOT slot to a call
      and return thunk.
      
      	* config/i386/constraints.md (Bs): Update
      	ix86_indirect_branch_register check.  Don't check
      	ix86_indirect_branch_register with GOT_memory_operand.
      	(Bw): Likewise.
      	* config/i386/predicates.md (GOT_memory_operand): Don't check
      	ix86_indirect_branch_register here.
      	(GOT32_symbol_operand): Likewise.
      
      From-SVN: r256714
      H.J. Lu committed
    • i386: Rewrite ix86_indirect_branch_register logic · 5ca876c3
      Rewrite ix86_indirect_branch_register logic with
      
      (and (not (match_test "ix86_indirect_branch_register"))
           (original condition before r256662))
      
      	* config/i386/predicates.md (constant_call_address_operand):
      	Rewrite ix86_indirect_branch_register logic.
      	(sibcall_insn_operand): Likewise.
      
      From-SVN: r256713
      H.J. Lu committed
    • i386: Rename to ix86_indirect_branch_register · e71cf74a
      Rename the variable for -mindirect-branch-register to
      ix86_indirect_branch_register to match the command-line option name.
      
      	* config/i386/constraints.md (Bs): Replace
      	ix86_indirect_branch_thunk_register with
      	ix86_indirect_branch_register.
      	(Bw): Likewise.
      	* config/i386/i386.md (indirect_jump): Likewise.
      	(tablejump): Likewise.
      	(*sibcall_memory): Likewise.
      	(*sibcall_value_memory): Likewise.
      	Peepholes of indirect call and jump via memory: Likewise.
      	* config/i386/i386.opt: Likewise.
      	* config/i386/predicates.md (indirect_branch_operand): Likewise.
      	(GOT_memory_operand): Likewise.
      	(call_insn_operand): Likewise.
      	(sibcall_insn_operand): Likewise.
      	(GOT32_symbol_operand): Likewise.
      
      From-SVN: r256712
      H.J. Lu committed
    • re PR middle-end/83837 (libgomp.fortran/pointer[12].f90 FAIL) · b4e47472
      	PR middle-end/83837
      	* omp-expand.c (expand_omp_atomic_pipeline): Use loaded_val
      	type rather than type addr's type points to.
      	(expand_omp_atomic_mutex): Likewise.
      	(expand_omp_atomic): Likewise.
      
      From-SVN: r256710
      Jakub Jelinek committed
    • PR testsuite/83869 - c-c++-common/attr-nonstring-3.c fails starting with r256683 · 732ed80a
      testsuite/CHangeLog:
      	* c-c++-common/attr-nonstring-3.c: Work around bug c++/74762.
      
      From-SVN: r256709
      Martin Sebor committed
    • PR libstdc++/83833 fix chi_squared_distribution::param(const param&) · 8b3085e7
      	PR libstdc++/83833
      	* include/bits/random.h (chi_squared_distribution::param): Update
      	gamma distribution parameter.
      	* testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
      	test.
      
      From-SVN: r256708
      Jonathan Wakely committed
    • compiler: reclaim memory of escape analysis Nodes · 97a78e33
          
          Reclaim the memory of escape analysis Nodes before kicking off
          the backend, as they are not needed in get_backend.
          
          Reviewed-on: https://go-review.googlesource.com/86243
      
      From-SVN: r256707
      Ian Lance Taylor committed
    • compiler: make sure variables captured by defer closure live · 7c3bc15e
          
          Local variables captured by the deferred closure need to be live
          until the function finishes, especially when the deferred
          function runs. In Function::build, for function that has a defer,
          we wrap the function body in a try block. So the backend sees
          the local variables only live in the try block, without knowing
          that they are needed also in the finally block where we invoke
          the deferred function. Fix this by creating top-level
          declarations for non-escaping address-taken locals when there
          is a defer.
          
          An example of miscompilation without this CL:
          
          func F(fn func()) {
                  didPanic := true
                  defer func() {
                          println(didPanic)
                  }()
                  fn()
                  didPanic = false
          }
          
          With escape analysis turned on, at optimization level -O1 or -O2,
          the store "didPanic = false" is elided by the backend's
          optimizer, presumably because it thinks "didPanic" is not live
          after the store, so the store is useless.
          
          Reviewed-on: https://go-review.googlesource.com/86241
      
      From-SVN: r256706
      Ian Lance Taylor committed
    • re PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with KIND=/BACK=) · 64b1806b
      2018-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/54613
      	* gfortran.h (gfc_check_f): Rename f4ml to f5ml.
      	(gfc_logical_4_kind): New macro
      	* intrinsic.h (gfc_simplify_minloc): Add a gfc_expr *argument.
      	(gfc_simplify_maxloc): Likewise.
      	(gfc_resolve_maxloc): Likewise.
      	(gfc_resolve_minloc): Likewise.
      	* check.c (gfc_check_minloc_maxloc): Add checking for "back"
      	argument; also raise error if it is used (for now). Add it
      	if it isn't present.
      	* intrinsic.c (add_sym_4ml): Rename to
      	(add_sym_5ml), adjust for extra argument.
      	(add_functions): Add "back" constant. Adjust maxloc and minloc
      	for back argument.
      	* iresolve.c (gfc_resolve_maxloc): Add back argument. If back is
      	not of gfc_logical_4_kind, convert.
      	(gfc_resolve_minloc): Likewise.
      	* simplify.c (gfc_simplify_minloc): Add back argument.
      	(gfc_simplify_maxloc): Likewise.
      	* trans-intinsic.c (gfc_conv_intrinsic_minmaxloc): Rename last
      	argument to %VAL to ensure passing by value.
      	(gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_minmaxloc
      	also for library calls.
      
      2018-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/54613
      	* m4/iparm.m4: Add back_arg macro if in minloc or maxloc.
      	* m4/iforeach-s.m4: Add optional argument back with back_arg
      	macro. Improve m4 quoting. If HAVE_BACK_ARG is defined, assert
      	that back is non-true.
      	* m4/iforeach.m4: Likewise.
      	* m4/ifunction-s.m4: Likewise.
      	* m4/ifunction.m4: Likewise.
      	* m4/maxloc0.m4: Include assert.h
      	* m4/minloc0.m4: Likewise.
      	* m4/maxloc0s.m4: #define HAVE_BACK_ARG.
      	* m4/minloc0s.m4: Likewise.
      	* m4/maxloc1s.m4: Likewise.
      	* m4/minloc1s.m4: Likewise.
      	* m4/maxloc1.m4: Include assert.h, #define HAVE_BACK_ARG.
      	* m4/minloc1.m4: Likewise.
      	* m4/maxloc2s.m4: Add assert.h, add back_arg, assert that
      	back is non-true.
      	* m4/minloc2s.m4: Likewise.
      	* generated/iall_i1.c: Regenerated.
      	* generated/iall_i16.c: Regenerated.
      	* generated/iall_i2.c: Regenerated.
      	* generated/iall_i4.c: Regenerated.
      	* generated/iall_i8.c: Regenerated.
      	* generated/iany_i1.c: Regenerated.
      	* generated/iany_i16.c: Regenerated.
      	* generated/iany_i2.c: Regenerated.
      	* generated/iany_i4.c: Regenerated.
      	* generated/iany_i8.c: Regenerated.
      	* generated/iparity_i1.c: Regenerated.
      	* generated/iparity_i16.c: Regenerated.
      	* generated/iparity_i2.c: Regenerated.
      	* generated/iparity_i4.c: Regenerated.
      	* generated/iparity_i8.c: Regenerated.
      	* generated/maxloc0_16_i1.c: Regenerated.
      	* generated/maxloc0_16_i16.c: Regenerated.
      	* generated/maxloc0_16_i2.c: Regenerated.
      	* generated/maxloc0_16_i4.c: Regenerated.
      	* generated/maxloc0_16_i8.c: Regenerated.
      	* generated/maxloc0_16_r10.c: Regenerated.
      	* generated/maxloc0_16_r16.c: Regenerated.
      	* generated/maxloc0_16_r4.c: Regenerated.
      	* generated/maxloc0_16_r8.c: Regenerated.
      	* generated/maxloc0_16_s1.c: Regenerated.
      	* generated/maxloc0_16_s4.c: Regenerated.
      	* generated/maxloc0_4_i1.c: Regenerated.
      	* generated/maxloc0_4_i16.c: Regenerated.
      	* generated/maxloc0_4_i2.c: Regenerated.
      	* generated/maxloc0_4_i4.c: Regenerated.
      	* generated/maxloc0_4_i8.c: Regenerated.
      	* generated/maxloc0_4_r10.c: Regenerated.
      	* generated/maxloc0_4_r16.c: Regenerated.
      	* generated/maxloc0_4_r4.c: Regenerated.
      	* generated/maxloc0_4_r8.c: Regenerated.
      	* generated/maxloc0_4_s1.c: Regenerated.
      	* generated/maxloc0_4_s4.c: Regenerated.
      	* generated/maxloc0_8_i1.c: Regenerated.
      	* generated/maxloc0_8_i16.c: Regenerated.
      	* generated/maxloc0_8_i2.c: Regenerated.
      	* generated/maxloc0_8_i4.c: Regenerated.
      	* generated/maxloc0_8_i8.c: Regenerated.
      	* generated/maxloc0_8_r10.c: Regenerated.
      	* generated/maxloc0_8_r16.c: Regenerated.
      	* generated/maxloc0_8_r4.c: Regenerated.
      	* generated/maxloc0_8_r8.c: Regenerated.
      	* generated/maxloc0_8_s1.c: Regenerated.
      	* generated/maxloc0_8_s4.c: Regenerated.
      	* generated/maxloc1_16_i1.c: Regenerated.
      	* generated/maxloc1_16_i16.c: Regenerated.
      	* generated/maxloc1_16_i2.c: Regenerated.
      	* generated/maxloc1_16_i4.c: Regenerated.
      	* generated/maxloc1_16_i8.c: Regenerated.
      	* generated/maxloc1_16_r10.c: Regenerated.
      	* generated/maxloc1_16_r16.c: Regenerated.
      	* generated/maxloc1_16_r4.c: Regenerated.
      	* generated/maxloc1_16_r8.c: Regenerated.
      	* generated/maxloc1_16_s1.c: Regenerated.
      	* generated/maxloc1_16_s4.c: Regenerated.
      	* generated/maxloc1_4_i1.c: Regenerated.
      	* generated/maxloc1_4_i16.c: Regenerated.
      	* generated/maxloc1_4_i2.c: Regenerated.
      	* generated/maxloc1_4_i4.c: Regenerated.
      	* generated/maxloc1_4_i8.c: Regenerated.
      	* generated/maxloc1_4_r10.c: Regenerated.
      	* generated/maxloc1_4_r16.c: Regenerated.
      	* generated/maxloc1_4_r4.c: Regenerated.
      	* generated/maxloc1_4_r8.c: Regenerated.
      	* generated/maxloc1_4_s1.c: Regenerated.
      	* generated/maxloc1_4_s4.c: Regenerated.
      	* generated/maxloc1_8_i1.c: Regenerated.
      	* generated/maxloc1_8_i16.c: Regenerated.
      	* generated/maxloc1_8_i2.c: Regenerated.
      	* generated/maxloc1_8_i4.c: Regenerated.
      	* generated/maxloc1_8_i8.c: Regenerated.
      	* generated/maxloc1_8_r10.c: Regenerated.
      	* generated/maxloc1_8_r16.c: Regenerated.
      	* generated/maxloc1_8_r4.c: Regenerated.
      	* generated/maxloc1_8_r8.c: Regenerated.
      	* generated/maxloc1_8_s1.c: Regenerated.
      	* generated/maxloc1_8_s4.c: Regenerated.
      	* generated/maxval_i1.c: Regenerated.
      	* generated/maxval_i16.c: Regenerated.
      	* generated/maxval_i2.c: Regenerated.
      	* generated/maxval_i4.c: Regenerated.
      	* generated/maxval_i8.c: Regenerated.
      	* generated/maxval_r10.c: Regenerated.
      	* generated/maxval_r16.c: Regenerated.
      	* generated/maxval_r4.c: Regenerated.
      	* generated/maxval_r8.c: Regenerated.
      	* generated/minloc0_16_i1.c: Regenerated.
      	* generated/minloc0_16_i16.c: Regenerated.
      	* generated/minloc0_16_i2.c: Regenerated.
      	* generated/minloc0_16_i4.c: Regenerated.
      	* generated/minloc0_16_i8.c: Regenerated.
      	* generated/minloc0_16_r10.c: Regenerated.
      	* generated/minloc0_16_r16.c: Regenerated.
      	* generated/minloc0_16_r4.c: Regenerated.
      	* generated/minloc0_16_r8.c: Regenerated.
      	* generated/minloc0_16_s1.c: Regenerated.
      	* generated/minloc0_16_s4.c: Regenerated.
      	* generated/minloc0_4_i1.c: Regenerated.
      	* generated/minloc0_4_i16.c: Regenerated.
      	* generated/minloc0_4_i2.c: Regenerated.
      	* generated/minloc0_4_i4.c: Regenerated.
      	* generated/minloc0_4_i8.c: Regenerated.
      	* generated/minloc0_4_r10.c: Regenerated.
      	* generated/minloc0_4_r16.c: Regenerated.
      	* generated/minloc0_4_r4.c: Regenerated.
      	* generated/minloc0_4_r8.c: Regenerated.
      	* generated/minloc0_4_s1.c: Regenerated.
      	* generated/minloc0_4_s4.c: Regenerated.
      	* generated/minloc0_8_i1.c: Regenerated.
      	* generated/minloc0_8_i16.c: Regenerated.
      	* generated/minloc0_8_i2.c: Regenerated.
      	* generated/minloc0_8_i4.c: Regenerated.
      	* generated/minloc0_8_i8.c: Regenerated.
      	* generated/minloc0_8_r10.c: Regenerated.
      	* generated/minloc0_8_r16.c: Regenerated.
      	* generated/minloc0_8_r4.c: Regenerated.
      	* generated/minloc0_8_r8.c: Regenerated.
      	* generated/minloc0_8_s1.c: Regenerated.
      	* generated/minloc0_8_s4.c: Regenerated.
      	* generated/minloc1_16_i1.c: Regenerated.
      	* generated/minloc1_16_i16.c: Regenerated.
      	* generated/minloc1_16_i2.c: Regenerated.
      	* generated/minloc1_16_i4.c: Regenerated.
      	* generated/minloc1_16_i8.c: Regenerated.
      	* generated/minloc1_16_r10.c: Regenerated.
      	* generated/minloc1_16_r16.c: Regenerated.
      	* generated/minloc1_16_r4.c: Regenerated.
      	* generated/minloc1_16_r8.c: Regenerated.
      	* generated/minloc1_16_s1.c: Regenerated.
      	* generated/minloc1_16_s4.c: Regenerated.
      	* generated/minloc1_4_i1.c: Regenerated.
      	* generated/minloc1_4_i16.c: Regenerated.
      	* generated/minloc1_4_i2.c: Regenerated.
      	* generated/minloc1_4_i4.c: Regenerated.
      	* generated/minloc1_4_i8.c: Regenerated.
      	* generated/minloc1_4_r10.c: Regenerated.
      	* generated/minloc1_4_r16.c: Regenerated.
      	* generated/minloc1_4_r4.c: Regenerated.
      	* generated/minloc1_4_r8.c: Regenerated.
      	* generated/minloc1_4_s1.c: Regenerated.
      	* generated/minloc1_4_s4.c: Regenerated.
      	* generated/minloc1_8_i1.c: Regenerated.
      	* generated/minloc1_8_i16.c: Regenerated.
      	* generated/minloc1_8_i2.c: Regenerated.
      	* generated/minloc1_8_i4.c: Regenerated.
      	* generated/minloc1_8_i8.c: Regenerated.
      	* generated/minloc1_8_r10.c: Regenerated.
      	* generated/minloc1_8_r16.c: Regenerated.
      	* generated/minloc1_8_r4.c: Regenerated.
      	* generated/minloc1_8_r8.c: Regenerated.
      	* generated/minloc1_8_s1.c: Regenerated.
      	* generated/minloc1_8_s4.c: Regenerated.
      	* generated/minval_i1.c: Regenerated.
      	* generated/minval_i16.c: Regenerated.
      	* generated/minval_i2.c: Regenerated.
      	* generated/minval_i4.c: Regenerated.
      	* generated/minval_i8.c: Regenerated.
      	* generated/minval_r10.c: Regenerated.
      	* generated/minval_r16.c: Regenerated.
      	* generated/minval_r4.c: Regenerated.
      	* generated/minval_r8.c: Regenerated.
      	* generated/norm2_r10.c: Regenerated.
      	* generated/norm2_r16.c: Regenerated.
      	* generated/norm2_r4.c: Regenerated.
      	* generated/norm2_r8.c: Regenerated.
      	* generated/parity_l1.c: Regenerated.
      	* generated/parity_l16.c: Regenerated.
      	* generated/parity_l2.c: Regenerated.
      	* generated/parity_l4.c: Regenerated.
      	* generated/parity_l8.c: Regenerated.
      	* generated/product_c10.c: Regenerated.
      	* generated/product_c16.c: Regenerated.
      	* generated/product_c4.c: Regenerated.
      	* generated/product_c8.c: Regenerated.
      	* generated/product_i1.c: Regenerated.
      	* generated/product_i16.c: Regenerated.
      	* generated/product_i2.c: Regenerated.
      	* generated/product_i4.c: Regenerated.
      	* generated/product_i8.c: Regenerated.
      	* generated/product_r10.c: Regenerated.
      	* generated/product_r16.c: Regenerated.
      	* generated/product_r4.c: Regenerated.
      	* generated/product_r8.c: Regenerated.
      	* generated/sum_c10.c: Regenerated.
      	* generated/sum_c16.c: Regenerated.
      	* generated/sum_c4.c: Regenerated.
      	* generated/sum_c8.c: Regenerated.
      	* generated/sum_i1.c: Regenerated.
      	* generated/sum_i16.c: Regenerated.
      	* generated/sum_i2.c: Regenerated.
      	* generated/sum_i4.c: Regenerated.
      	* generated/sum_i8.c: Regenerated.
      	* generated/sum_r10.c: Regenerated.
      	* generated/sum_r16.c: Regenerated.
      	* generated/sum_r4.c: Regenerated.
      	* generated/sum_r8.c: Regenerated.
      
      2018-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/54613
      	* gfortran.dg/minmaxloc_9.f90: New test.
      	* gfortran.dg/minmaxloc_10.f90: New test.
      	* gfortran.dg/minmaxloc_11.f90: New test.
      
      From-SVN: r256705
      Thomas Koenig committed
    • i386: Don't use ASM_OUTPUT_DEF for TARGET_MACHO · 650d669b
      ASM_OUTPUT_DEF isn't defined for TARGET_MACHO.  Use ASM_OUTPUT_LABEL to
      generate the __x86_return_thunk label, instead of the set directive.
      Update testcase to remove the __x86_return_thunk label check.  Since
      -fno-pic is ignored on Darwin, update testcases to scan or "push" only
      on Linux.
      
      gcc/
      
      	PR target/83839
      	* config/i386/i386.c (output_indirect_thunk_function): Use
      	ASM_OUTPUT_LABEL, instead of ASM_OUTPUT_DEF, for TARGET_MACHO
      	for  __x86_return_thunk.
      
      gcc/testsuite/
      
      	PR target/83839
      	* gcc.target/i386/indirect-thunk-1.c: Scan for "push" only on
      	Linux.
      	* gcc.target/i386/indirect-thunk-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-4.c: Likewise.
      	* gcc.target/i386/indirect-thunk-7.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-1.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-5.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-6.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-7.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-1.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-4.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-7.c: Likewise.
      	* gcc.target/i386/indirect-thunk-register-1.c: Likewise.
      	* gcc.target/i386/indirect-thunk-register-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-register-4.c: Likewise.
      	* gcc.target/i386/ret-thunk-10.c: Likewise.
      	* gcc.target/i386/ret-thunk-11.c: Likewise.
      	* gcc.target/i386/ret-thunk-12.c: Likewise.
      	* gcc.target/i386/ret-thunk-13.c: Likewise.
      	* gcc.target/i386/ret-thunk-14.c: Likewise.
      	* gcc.target/i386/ret-thunk-15.c: Likewise.
      	* gcc.target/i386/ret-thunk-9.c: Don't check the
      	__x86_return_thunk label.
      	Scan for "push" only for Linux.
      
      From-SVN: r256704
      H.J. Lu committed
    • PR libstdc++/83830 Define std::has_unique_object_representations_v · b0e63d94
      	PR libstdc++/83830
      	* include/std/type_traits (has_unique_object_representations_v): Add
      	variable template.
      	* testsuite/20_util/has_unique_object_representations/value.cc: Check
      	variable template.
      
      From-SVN: r256701
      Jonathan Wakely committed
    • re PR target/83850 (Spills on vector extract, gcc.target/i386/pr80846-1.c FAILs) · e8f3b70d
      2018-01-15  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/83850
      	* expmed.c (extract_bit_field_1): Fix typo.
      
      From-SVN: r256700
      Richard Biener committed
    • Missing vect_double in gcc.dg/vect/pr79920.c (PR83836) · fc58f4ae
      2018-01-15  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/testsuite/
      	PR testsuite/79920
      	* gcc.dg/vect/pr79920.c: Restrict reduction test to vect_double
      
      From-SVN: r256698
      Richard Sandiford committed
    • [arm] PR target/83687: Fix invalid combination of VSUB + VABS into VABD · d0b6b5a7
      In this wrong-code bug we combine a VSUB.I8 and a VABS.S8
      into a VABD.S8 instruction . This combination is not valid
      for integer operands because in the VABD instruction the semantics
      are that the difference is computed in notionally infinite precision
      and the absolute difference is computed on that, whereas for a
      VSUB.I8 + VABS.S8 sequence the VSUB operation will perform any
      wrapping that's needed for the 8-bit signed type before the VABS
      gets its hands on it.
      
      This leads to the wrong-code in the PR where the expected
      sequence from the intrinsics:
      VSUB + VABS of two vectors {-100, -100, -100...}, {100, 100, 100...}
      gives a result of {56, 56, 56...} (-100 - 100)
      
      but GCC optimises it into a single
      VABD of {-100, -100, -100...}, {100, 100, 100...}
      which produces a result of {200, 200, 200...}
      
      The transformation is still valid for floating-point operands,
      which is why it was added in the first place I believe (r178817)
      but this patch disables it for integer operands.
      The HFmode variants though only exist for TARGET_NEON_FP16INST, so
      this patch adds the appropriate guards to the new mode iterator
      
      Bootstrapped and tested on arm-none-linux-gnueabihf.
      
      	PR target/83687
      	* config/arm/iterators.md (VF): New mode iterator.
      	* config/arm/neon.md (neon_vabd<mode>_2): Use the above.
      	Remove integer-related logic from pattern.
      	(neon_vabd<mode>_3): Likewise.
      
      	* gcc.target/arm/neon-combine-sub-abs-into-vabd.c: Delete integer
      	tests.
      	* gcc.target/arm/pr83687.c: New test.
      
      From-SVN: r256696
      Kyrylo Tkachov committed
    • Make optional conditionally trivially_{copy,move}_{constructible,assignable} · c89f2d24
      * include/std/optional (_Optional_payload): Fix the comment in
      the class head and turn into a primary and one specialization.
      (_Optional_payload::_M_engaged): Strike the NSDMI.
      (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
      New.
      (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
      Likewise.
      (_Optional_payload<_Tp, false>::_M_get): Likewise.
      (_Optional_payload<_Tp, false>::_M_reset): Likewise.
      (_Optional_base_impl): Likewise.
      (_Optional_base): Turn into a primary and three specializations.
      (optional(nullopt)): Change the base init.
      * testsuite/20_util/optional/assignment/8.cc: New.
      * testsuite/20_util/optional/cons/trivial.cc: Likewise.
      * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
      
      From-SVN: r256694
      Ville Voutilainen committed
    • Adjust tests to AVR_TINY. · 1759d116
      	* gcc.target/avr/progmem.h (pgm_read_char): Handle AVR_TINY.
      	* gcc.target/avr/pr52472.c: Add "! avr_tiny" target filter.
      	* gcc.target/avr/pr71627.c: Same.
      	* gcc.target/avr/torture/addr-space-1-0.c: Same.
      	* gcc.target/avr/torture/addr-space-1-1.c: Same.
      	* gcc.target/avr/torture/addr-space-1-x.c: Same.
      	* gcc.target/avr/torture/addr-space-2-0.c: Same.
      	* gcc.target/avr/torture/addr-space-2-1.c: Same.
      	* gcc.target/avr/torture/addr-space-2-x.c: Same.
      	* gcc.target/avr/torture/sat-hr-plus-minus.c: Same.
      	* gcc.target/avr/torture/sat-k-plus-minus.c: Same.
      	* gcc.target/avr/torture/sat-llk-plus-minus.c: Same.
      	* gcc.target/avr/torture/sat-r-plus-minus.c: Same.
      	* gcc.target/avr/torture/sat-uhr-plus-minus.c: Same.
      	* gcc.target/avr/torture/sat-uk-plus-minus.c: Same.
      	* gcc.target/avr/torture/sat-ullk-plus-minus.c: Same.
      	* gcc.target/avr/torture/sat-ur-plus-minus.c: Same.
      	* gcc.target/avr/torture/pr61055.c: Same.
      	* gcc.target/avr/torture/builtins-3-absfx.c: Only use __flash if
      	available.
      	* gcc.target/avr/torture/int24-mul.c: Same.
      	* gcc.target/avr/torture/pr51782-1.c: Same.
      	* gcc.target/avr/torture/pr61443.c: Same.
      	* gcc.target/avr/torture/builtins-2.c: Factor out addr-space stuff...
      	* gcc.target/avr/torture/builtins-2-flash.c: ...to this new test.
      
      From-SVN: r256690
      Georg-Johann Lay committed
    • PR libstdc++/80276 fix template argument handling in type printers · bab0a26d
      	PR libstdc++/80276
      	* python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
      	(get_template_arg_list): New.
      	(StdVariantPrinter._template_args): Remove, use get_template_arg_list
      	instead.
      	(TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
      	of strings and regular expressions.
      	(add_one_template_type_printer): Adapt to new TemplateTypePrinter.
      	(FilteringTypePrinter): Add docstring. Match using startswith. Use
      	strip_inline_namespaces instead of strip_versioned_namespace.
      	(add_one_type_printer): Prepend namespace to match argument.
      	(register_type_printers): Add type printers for char16_t and char32_t
      	string types and for types using cxx11 ABI. Update calls to
      	add_one_template_type_printer to provide default argument dicts.
      	* testsuite/libstdc++-prettyprinters/80276.cc: New test.
      	* testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
      	basic_string<unsigned char> and basic_string<signed char>.
      	* testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
      	to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
      
      From-SVN: r256689
      Jonathan Wakely committed
    • Correct earlier ChangeLog entry · ed99ae13
      Add Juraj Oršulić as original patch author.
      
      From-SVN: r256688
      Juraj Oršulić committed
    • re PR c/83801 ([avr] String constant in __flash not put into .progmem) · 93c74e59
      	PR c/83801
      	PR c/83729
      	* gcc.target/avr/torture/pr83729.c: New test.
      	* gcc.target/avr/torture/pr83801.c: New test.
      
      From-SVN: r256687
      Georg-Johann Lay committed
    • re PR middle-end/82694 (Linux kernel miscompiled since r250765) · 3fccbb9e
      	PR middle-end/82694
      	* common.opt (fstrict-overflow): No longer an alias.
      	(fwrapv-pointer): New option.
      	* tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED): Define
      	also for pointer types based on flag_wrapv_pointer.
      	* opts.c (common_handle_option) <case OPT_fstrict_overflow>: Set
      	opts->x_flag_wrap[pv] to !value, clear opts->x_flag_trapv if
      	opts->x_flag_wrapv got set.
      	* fold-const.c (fold_comparison, fold_binary_loc): Revert 2017-08-01
      	changes, just use TYPE_OVERFLOW_UNDEFINED on pointer type instead of
      	POINTER_TYPE_OVERFLOW_UNDEFINED.
      	* match.pd: Likewise in address comparison pattern.
      	* doc/invoke.texi: Document -fwrapv and -fstrict-overflow.
      
      	* gcc.dg/no-strict-overflow-7.c: Revert 2017-08-01 changes.
      	* gcc.dg/tree-ssa/pr81388-1.c: Likewise.
      
      From-SVN: r256686
      Jakub Jelinek committed
    • re PR lto/83804 ([meta] LTO memory consumption) · 2aa89839
      2018-01-15  Richard Biener  <rguenther@suse.de>
      
      	PR lto/83804
      	* tree.c (free_lang_data_in_type): Always unlink TYPE_DECLs
      	from TYPE_FIELDS.  Free TYPE_BINFO if not used by devirtualization.
      	Reset type names to their identifier if their TYPE_DECL doesn't
      	have linkage (and thus is used for ODR and devirt).
      	(save_debug_info_for_decl): Remove.
      	(save_debug_info_for_type): Likewise.
      	(add_tree_to_fld_list): Adjust.
      	* tree-pretty-print.c (dump_generic_node): Make dumping of
      	type names more robust.
      
      From-SVN: r256685
      Richard Biener committed
    • BASE-VER: Bump to 8.0.1. · a55e8b53
      2018-01-15  Richard Biener  <rguenther@suse.de>
      
      	* BASE-VER: Bump to 8.0.1.
      
      From-SVN: r256684
      Richard Biener committed
    • re PR other/83508 ([arm] c-c++-common/Wrestrict.c fails since r255836) · e0676e2e
      	PR other/83508
      	* builtins.c (check_access): Avoid warning when the no-warning bit
      	is set.
      
      	PR other/83508
      	* gcc.dg/Wstringop-overflow-2.c: New test.
      
      From-SVN: r256683
      Martin Sebor committed
    • tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Stabilize sort. · 5804f627
      	* tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Stabilize sort.
      	* ira-color (allocno_hard_regs_compare): Likewise.
      
      From-SVN: r256682
      Cory Fields committed
    • re PR target/83013 (MicroBlaze - #ident - Error: operation combines symbols in different segments) · aba0d181
              PR target/83013
              * config/microblaze/microblaze.c (microblaze_asm_output_ident):
              Use .pushsection/.popsection.
      
      From-SVN: r256681
      Nathan Rossi committed
    • Daily bump. · 42d3f20a
      From-SVN: r256680
      GCC Administrator committed
  2. 14 Jan, 2018 12 commits
    • PR c++/81327 - cast to void* does not suppress -Wclass-memaccess · 656280b0
      gcc/ChangeLog:
      	PR c++/81327
      	* doc/invoke.texi (-Wlass-memaccess): Document suppression by casting.
      
      From-SVN: r256677
      Martin Sebor committed
    • Fix date in log. · ba791a6c
      From-SVN: r256676
      Jerry DeLisle committed
    • Fix date in Changelog · 511f5ccf
      From-SVN: r256674
      Jerry DeLisle committed
    • Correct ChangeLog of x86: Add -mfunction-return= · 616ef62f
      From-SVN: r256673
      H.J. Lu committed
    • Correct ChangeLog of x86: Add -mindirect-branch= · dfc358bf
      From-SVN: r256672
      H.J. Lu committed
    • re PR libfortran/83811 (fortran 'e' format broken for single digit exponents) · 33b2b069
      2018-01-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
              PR libgfortran/83811
              * write.c (select_buffer): Adjust buffer size up by 1.
      
              * gfortran.dg/fmt_e.f90: New test.
      
      From-SVN: r256669
      Jerry DeLisle committed
    • re PR libstdc++/81092 (Missing symbols for new std::wstring constructors) · a61bac1e
      PR libstdc++/81092
      * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
      
      From-SVN: r256668
      Andreas Schwab committed
    • config.gcc (i[34567]86-*-*): Remove one duplicate gfniintrin.h entry from extra_headers. · 2abaf67e
      	* config.gcc (i[34567]86-*-*): Remove one duplicate gfniintrin.h
      	entry from extra_headers.
      	(x86_64-*-*): Remove two duplicate gfniintrin.h entries from
      	extra_headers, make the list bitwise identical to the i?86-*-* one.
      
      From-SVN: r256667
      Jakub Jelinek committed
    • x86: Disallow -mindirect-branch=/-mfunction-return= with -mcmodel=large · 95d11c17
      Since the thunk function may not be reachable in large code model,
      -mcmodel=large is incompatible with -mindirect-branch=thunk,
      -mindirect-branch=thunk-extern, -mfunction-return=thunk and
      -mfunction-return=thunk-extern.  Issue an error when they are used with
      -mcmodel=large.
      
      gcc/
      
      	* config/i386/i386.c (ix86_set_indirect_branch_type): Disallow
      	-mcmodel=large with -mindirect-branch=thunk,
      	-mindirect-branch=thunk-extern, -mfunction-return=thunk and
      	-mfunction-return=thunk-extern.
      	* doc/invoke.texi: Document -mcmodel=large is incompatible with
      	-mindirect-branch=thunk, -mindirect-branch=thunk-extern,
      	-mfunction-return=thunk and -mfunction-return=thunk-extern.
      
      gcc/testsuite/
      
      	* gcc.target/i386/indirect-thunk-10.c: New test.
      	* gcc.target/i386/indirect-thunk-8.c: Likewise.
      	* gcc.target/i386/indirect-thunk-9.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-10.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-11.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-9.c: Likewise.
      	* gcc.target/i386/ret-thunk-17.c: Likewise.
      	* gcc.target/i386/ret-thunk-18.c: Likewise.
      	* gcc.target/i386/ret-thunk-19.c: Likewise.
      	* gcc.target/i386/ret-thunk-20.c: Likewise.
      	* gcc.target/i386/ret-thunk-21.c: Likewise.
      
      From-SVN: r256664
      H.J. Lu committed
    • x86: Add 'V' register operand modifier · 6abe11c1
      Add 'V', a special modifier which prints the name of the full integer
      register without '%'.  For
      
      extern void (*func_p) (void);
      
      void
      foo (void)
      {
        asm ("call __x86_indirect_thunk_%V0" : : "a" (func_p));
      }
      
      it generates:
      
      foo:
      	movq	func_p(%rip), %rax
      	call	__x86_indirect_thunk_rax
      	ret
      
      gcc/
      
      	* config/i386/i386.c (print_reg): Print the name of the full
      	integer register without '%'.
      	(ix86_print_operand): Handle 'V'.
      	 * doc/extend.texi: Document 'V' modifier.
      
      gcc/testsuite/
      
      	* gcc.target/i386/indirect-thunk-register-4.c: New test.
      
      From-SVN: r256663
      H.J. Lu committed
    • x86: Add -mindirect-branch-register · d543c04b
      Add -mindirect-branch-register to force indirect branch via register.
      This is implemented by disabling patterns of indirect branch via memory,
      similar to TARGET_X32.
      
      -mindirect-branch= and -mfunction-return= tests are updated with
      -mno-indirect-branch-register to avoid false test failures when
      -mindirect-branch-register is added to RUNTESTFLAGS for "make check".
      
      gcc/
      
      	* config/i386/constraints.md (Bs): Disallow memory operand for
      	-mindirect-branch-register.
      	(Bw): Likewise.
      	* config/i386/predicates.md (indirect_branch_operand): Likewise.
      	(GOT_memory_operand): Likewise.
      	(call_insn_operand): Likewise.
      	(sibcall_insn_operand): Likewise.
      	(GOT32_symbol_operand): Likewise.
      	* config/i386/i386.md (indirect_jump): Call convert_memory_address
      	for -mindirect-branch-register.
      	(tablejump): Likewise.
      	(*sibcall_memory): Likewise.
      	(*sibcall_value_memory): Likewise.
      	Disallow peepholes of indirect call and jump via memory for
      	-mindirect-branch-register.
      	(*call_pop): Replace m with Bw.
      	(*call_value_pop): Likewise.
      	(*sibcall_pop_memory): Replace m with Bs.
      	* config/i386/i386.opt (mindirect-branch-register): New option.
      	* doc/invoke.texi: Document -mindirect-branch-register option.
      
      gcc/testsuite/
      
      	* gcc.target/i386/indirect-thunk-1.c (dg-options): Add
      	-mno-indirect-branch-register.
      	* gcc.target/i386/indirect-thunk-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-4.c: Likewise.
      	* gcc.target/i386/indirect-thunk-5.c: Likewise.
      	* gcc.target/i386/indirect-thunk-6.c: Likewise.
      	* gcc.target/i386/indirect-thunk-7.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-1.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-4.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-5.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-6.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-7.c: Likewise.
      	* gcc.target/i386/indirect-thunk-bnd-1.c: Likewise.
      	* gcc.target/i386/indirect-thunk-bnd-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-bnd-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-bnd-4.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-1.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-4.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-5.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-6.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-7.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-1.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-4.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-5.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-6.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-7.c: Likewise.
      	* gcc.target/i386/ret-thunk-10.c: Likewise.
      	* gcc.target/i386/ret-thunk-11.c: Likewise.
      	* gcc.target/i386/ret-thunk-12.c: Likewise.
      	* gcc.target/i386/ret-thunk-13.c: Likewise.
      	* gcc.target/i386/ret-thunk-14.c: Likewise.
      	* gcc.target/i386/ret-thunk-15.c: Likewise.
      	* gcc.target/i386/ret-thunk-9.c: Likewise.
      	* gcc.target/i386/indirect-thunk-register-1.c: New test.
      	* gcc.target/i386/indirect-thunk-register-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-register-3.c: Likewise.
      
      From-SVN: r256662
      H.J. Lu committed
    • x86: Add -mfunction-return= · 45e14019
      Add -mfunction-return= option to convert function return to call and
      return thunks.  The default is 'keep', which keeps function return
      unmodified.  'thunk' converts function return to call and return thunk.
      'thunk-inline' converts function return to inlined call and return thunk.
      'thunk-extern' converts function return to external call and return
      thunk provided in a separate object file.  You can control this behavior
      for a specific function by using the function attribute function_return.
      
      Function return thunk is the same as memory thunk for -mindirect-branch=
      where the return address is at the top of the stack:
      
      __x86_return_thunk:
      	call L2
      L1:
      	pause
      	lfence
      	jmp L1
      L2:
      	lea 8(%rsp), %rsp|lea 4(%esp), %esp
      	ret
      
      and function return becomes
      
      	jmp __x86_return_thunk
      
      -mindirect-branch= tests are updated with -mfunction-return=keep to
      avoid false test failures when -mfunction-return=thunk is added to
      RUNTESTFLAGS for "make check".
      
      gcc/
      
      	* config/i386/i386-protos.h (ix86_output_function_return): New.
      	* config/i386/i386.c (ix86_set_indirect_branch_type): Also
      	set function_return_type.
      	(indirect_thunk_name): Add ret_p to indicate thunk for function
      	return.
      	(output_indirect_thunk_function): Pass false to
      	indirect_thunk_name.
      	(ix86_output_indirect_branch): Likewise.
      	(output_indirect_thunk_function): Create alias for function
      	return thunk if regno < 0.
      	(ix86_output_function_return): New function.
      	(ix86_handle_fndecl_attribute): Handle function_return.
      	(ix86_attribute_table): Add function_return.
      	* config/i386/i386.h (machine_function): Add
      	function_return_type.
      	* config/i386/i386.md (simple_return_internal): Use
      	ix86_output_function_return.
      	(simple_return_internal_long): Likewise.
      	* config/i386/i386.opt (mfunction-return=): New option.
      	(indirect_branch): Mention -mfunction-return=.
      	* doc/extend.texi: Document function_return function attribute.
      	* doc/invoke.texi: Document -mfunction-return= option.
      
      gcc/testsuite/
      
      	* gcc.target/i386/indirect-thunk-1.c (dg-options): Add
      	-mfunction-return=keep.
      	* gcc.target/i386/indirect-thunk-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-4.c: Likewise.
      	* gcc.target/i386/indirect-thunk-5.c: Likewise.
      	* gcc.target/i386/indirect-thunk-6.c: Likewise.
      	* gcc.target/i386/indirect-thunk-7.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-1.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-4.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-5.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-6.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-7.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-8.c: Likewise.
      	* gcc.target/i386/indirect-thunk-bnd-1.c: Likewise.
      	* gcc.target/i386/indirect-thunk-bnd-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-bnd-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-bnd-4.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-1.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-4.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-5.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-6.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-7.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-1.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-4.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-5.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-6.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-7.c: Likewise.
      	* gcc.target/i386/ret-thunk-1.c: New test.
      	* gcc.target/i386/ret-thunk-10.c: Likewise.
      	* gcc.target/i386/ret-thunk-11.c: Likewise.
      	* gcc.target/i386/ret-thunk-12.c: Likewise.
      	* gcc.target/i386/ret-thunk-13.c: Likewise.
      	* gcc.target/i386/ret-thunk-14.c: Likewise.
      	* gcc.target/i386/ret-thunk-15.c: Likewise.
      	* gcc.target/i386/ret-thunk-16.c: Likewise.
      	* gcc.target/i386/ret-thunk-2.c: Likewise.
      	* gcc.target/i386/ret-thunk-3.c: Likewise.
      	* gcc.target/i386/ret-thunk-4.c: Likewise.
      	* gcc.target/i386/ret-thunk-5.c: Likewise.
      	* gcc.target/i386/ret-thunk-6.c: Likewise.
      	* gcc.target/i386/ret-thunk-7.c: Likewise.
      	* gcc.target/i386/ret-thunk-8.c: Likewise.
      	* gcc.target/i386/ret-thunk-9.c: Likewise.
      
      From-SVN: r256661
      H.J. Lu committed