1. 16 Oct, 2017 22 commits
    • MAINTAINERS (write after approval): Add myself. · fb336a7b
      ChangeLog:
      
      2017-10-16  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
      
              * MAINTAINERS (write after approval): Add myself.
      
      Index: MAINTAINERS
      ===================================================================
      --- MAINTAINERS (revision 253797)
      +++ MAINTAINERS (working copy)
      @@ -603,6 +603,7 @@
       Philipp Tomsich                                        <philipp.tomsich@theobroma-systems.com>
       Konrad Trifunovic                              <konrad.trifunovic@inria.fr>
       Markus Trippelsdorf                            <markus@trippelsdorf.de>
      +Igor Tsimbalist                                        <igor.v.tsimbalist@intel.com>
       Martin Uecker                                  <uecker@eecs.berkeley.edu>
       David Ung                                      <davidu@mips.com>
       Neil Vachharajani                              <nvachhar@gmail.com>
      
      From-SVN: r253798
      Igor Tsimbalist committed
    • Add gnu::unique_ptr · 46d2b77d
      This is a version of the patch posted by Trevor Saunders on 2017-07-31,
      for which he wrote:
      > For most of the history of this see
      >   https://sourceware.org/ml/gdb-patches/2016-10/msg00223.html
      > The changes are mostly s/gdb/gtl/g
      
      This version was updated by me (dmalcolm) adding these changes:
      - renaming of "gtl" to "gnu" (3 letters, and one of the ones Richi
        proposed, and not a match for "*tl")
      - renaming of DEFINE_GDB_UNIQUE_PTR to DEFINE_GNU_UNIQUE_PTR
      - renaming of xfree_deleter to xmalloc_deleter, and making it
        use "free" rather than "xfree" (which doesn't exist)
      - added a gcc/unique-ptr-tests.cc
      - implement unique_xmalloc_ptr<T[]> (taken from gdb, but changing
        "xfree" to "free", and adding support for pre-C++-11)
      
      gcc/ChangeLog:
      
      	David Malcolm <dmalcolm@redhat.com>
      
      	* Makefile.in (OBJS): Add unique-ptr-tests.o.
      	* selftest-run-tests.c (selftest::run_tests): Call
      	selftest::unique_ptr_tests_cc_tests.
      	* selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
      	* unique-ptr-tests.cc: New file.
      
      include/ChangeLog:
      
      	Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      	David Malcolm <dmalcolm@redhat.com>
      
      	* unique-ptr.h: New file.
      
      From-SVN: r253797
      David Malcolm committed
    • re PR sanitizer/82353 (runtime ubsan crash) · 2de3d3c6
      2017-10-16  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR sanitizer/82353
      	* lra.c (collect_non_operand_hard_regs): Don't ignore operator
      	locations.
      	* lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
      	(make_hard_regno_born, make_hard_regno_dead): Update
      	bb_killed_pseudos and bb_gen_pseudos for fixed regs.
      
      From-SVN: r253796
      Vladimir Makarov committed
    • Fix attrib-5.c test-case. · 55015c10
      2017-10-16  Martin Liska  <mliska@suse.cz>
      
      	* c-c++-common/ubsan/attrib-5.c (float_cast2): Fix warning scan
      	so that it will work for both C and C++ FEs.
      
      From-SVN: r253795
      Martin Liska committed
    • * tree-ssa-dse.c (live_bytes_read): Fix thinko. · a279ae93
      From-SVN: r253792
      Jeff Law committed
    • re PR fortran/82511 (ICE Bad IO basetype (12) on attempted read or write of entire DEC structure) · 9b460e2e
      2017-10-16  Fritz Reese <fritzoreese@gmail.com>
      
          PR fortran/82511
          Treat UNION components as DT comp. in I/O lists.
      
          gcc/fortran/ChangeLog:
      
      	PR fortran/82511
      	* trans-io.c (transfer_expr): Treat BT_UNION as BT_DERIVED.
      
          gcc/testsuite/ChangeLog:
      
      	PR fortran/82511
      	* gfortran.dg/dec_structure_22.f90: New testcase.
      
      From-SVN: r253791
      Fritz Reese committed
    • * x86-tune-costs.h (znver1_cost): Fix move cost tables. · 01118373
      From-SVN: r253790
      Jan Hubicka committed
    • config.gcc (powerpc*-*-*spe*): Pick 8548 as the default with_cpu if we were… · 3094082d
      config.gcc (powerpc*-*-*spe*): Pick 8548 as the default with_cpu if we were configured for an e500v2 target...
      
      2017-10-16  Olivier Hainque  <hainque@adacore.com>
      
      	* gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default
      	with_cpu if we were configured for an e500v2 target cpu name.
      
      From-SVN: r253789
      Olivier Hainque committed
    • re PR c++/64931 (ICE on function with deduced return type and input is instantiated template class) · 39920b04
      2017-10-16  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/64931
      	* g++.dg/cpp1y/auto-fn43.C: New.
      
      From-SVN: r253788
      Paolo Carlini committed
    • [ARM] Allow +nodsp for -mcpu=cortex-m33 · 525f700d
      DSP instructions are optional for Arm Cortex-M33, yet its -mcpu option
      does not allow +nodsp. Users are thus left with using
      -march=armv8-m.main -mtune=cortex-m33. This patch allows +nodsp to
      -mcpu=cortex-m33.
      
      2017-10-16  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/
          * config/arm/arm-cpus.in (cortex-m33): Add nodsp option.
          * doc/invoke.texi: Document +nodsp as a valid extension for
          -mcpu=cortex-m33.
      
      From-SVN: r253787
      Thomas Preud'homme committed
    • re PR target/82442 (vect/pr31699.c fails on arm) · a310363e
      Fix PR82442
      
      Recently the gcc.dg/vect/pr31699.c was modified to check for
      vect_float effective target instead for vect_double.  As a 
      result it now fails on armhf.  Fix by avoiding double.
      Tested on armhf, aarch64 and x64.
      
          gcc/testsuite/
      	PR target/82442
      	* gcc.dg/vect/pr31699.c: Fix testcase.
      
      From-SVN: r253786
      Wilco Dijkstra committed
    • Add selftests for bitmap_set_range. · a0df1499
      2017-10-16  Martin Liska  <mliska@suse.cz>
      
      	* sbitmap.c (bitmap_bit_in_range_p_checking): New function.
      	(test_set_range): Likewise.
      	(test_range_functions): Rename to ...
      	(test_bit_in_range): ... this.
      	(sbitmap_c_tests): Add new test.
      
      From-SVN: r253785
      Martin Liska committed
    • arm_neon.h (vdot_u32, [...]): New. · 1274f086
      2017-10-16  Tamar Christina  <tamar.christina@arm.com>
      
      	* config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): New.
      	(vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
      	(vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.
      
      gcc/testsuite/
      2017-10-16  Tamar Christina  <tamar.christina@arm.com>
      
      	* gcc.target/aarch64/advsimd-intrinsics/vect-dot-qi.h: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vdot-compile.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vect-dot-s8.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vect-dot-u8.c: New.
      
      From-SVN: r253784
      Tamar Christina committed
    • 2017-10-16 Tamar Christina <tamar.christina@arm.com> · 7a08d813
      	* config/aarch64/aarch64-builtins.c
      	(aarch64_types_quadopu_lane_qualifiers): New.
      	(TYPES_QUADOPU_LANE): New.
      	* config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
      	(<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
      	(aarch64_<sur>dot_laneq<vsi2qi>): New.
      	* config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
      	(sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
      	* config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
      	(Vdottype, DOTPROD): New.
      	(sur): Add SDOT and UDOT.
      
      From-SVN: r253783
      Tamar Christina committed
    • aarch64.h (AARCH64_FL_DOTPROD): New. · 1ddc47c0
      2017-10-16  Tamar Christina  <tamar.christina@arm.com>
      
      	* config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
      	(AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
      	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add TARGET_DOTPROD.
      	* config/aarch64/aarch64-option-extensions.def (dotprod): New.
      	* config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75): Enable TARGET_DOTPROD.
      	(cortex-a75.cortex-a55): Likewise.
      	* doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.
      
      From-SVN: r253782
      Tamar Christina committed
    • arm-builtins.c (arm_unsigned_uternop_qualifiers): New. · f8e109ba
      2017-10-16  Tamar Christina  <tamar.christina@arm.com>
      
      	* config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
      	(UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS): New.
      	* config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane): new.
      	* config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
      	(UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
      	* config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
      	(neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
      	* config/arm/types.md (neon_dot, neon_dot_q): New.
      	* config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.
      
      From-SVN: r253781
      Tamar Christina committed
    • arm.h (TARGET_DOTPROD): New. · ba09dd21
      2017-10-16  Tamar Christina  <tamar.christina@arm.com>
      
      	* config/arm/arm.h (TARGET_DOTPROD): New.
      	* config/arm/arm.c (arm_arch_dotprod): New.
      	(arm_option_reconfigure_globals): Add arm_arch_dotprod.
      	* config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
      	* config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
      	(feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
      	(ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
      	* config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
      	* doc/invoke.texi (armv8.2-a): Document dotprod
      
      From-SVN: r253780
      Tamar Christina committed
    • Enable libgomp.oacc-*/declare-*.{c,f90} for non-nvidia devices · 92d5d01a
      2017-10-16  Tom de Vries  <tom@codesourcery.com>
      
      	* testsuite/libgomp.oacc-c-c++-common/declare-1.c: Don't require
      	openacc_nvidia_accel_selected.
      	* testsuite/libgomp.oacc-c-c++-common/declare-2.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/declare-4.c: Same.
      	* testsuite/libgomp.oacc-fortran/declare-2.f90: Same.
      	* testsuite/libgomp.oacc-fortran/declare-4.f90: Same
      	* testsuite/libgomp.oacc-fortran/declare-5.f90: Same.
      	* testsuite/libgomp.oacc-c-c++-common/declare-5.c: Don't require
      	openacc_nvidia_accel_selected. Skip for shared memory device.
      	* testsuite/libgomp.oacc-fortran/declare-1.f90: Same.
      	* testsuite/libgomp.oacc-fortran/declare-3.f90: Same.
      
      From-SVN: r253779
      Tom de Vries committed
    • re PR c++/53574 (ICE with -fstack-usage) · 126c1ea1
      	PR c++/53574
      	* g++.dg/other/pr53574.C: New test.
      
      From-SVN: r253778
      Jakub Jelinek committed
    • re PR c++/61323 ('static' and 'const' attributes cause non-type template argument matching failure) · 6fba3d61
      2017-10-16  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/61323
      	* g++.dg/cpp0x/constexpr-61323.C: New.
      
      From-SVN: r253777
      Paolo Carlini committed
    • re PR libstdc++/82558 (V8 JavaScript engine segfaults since r249235) · 1be043a1
      2017-10-16  François Dumont  <fdumont@gcc.gnu.org>
      
      	PR libstdc++/82558
      	* include/bits/stl_bvector.h (fill): Add iterator offset check.
      	* testsuite/23_containers/vector/bool/82558.cc: New.
      
      From-SVN: r253776
      François Dumont committed
    • Daily bump. · 181640f6
      From-SVN: r253775
      GCC Administrator committed
  2. 15 Oct, 2017 5 commits
  3. 14 Oct, 2017 13 commits
    • compare-elim.c: Include emit-rtl.h. · d7840b47
      2017-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
      	    Michael Collison <michael.collison@arm.com>
      
      	* compare-elim.c: Include emit-rtl.h.
      	(can_merge_compare_into_arith): New function.
      	(try_validate_parallel): Likewise.
      	(try_merge_compare): Likewise.
      	(try_eliminate_compare): Call the above when no previous clobber
      	is available.
      	(execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
      	dataflow problems.
      
      2017-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
      	    Michael Collison <michael.collison@arm.com>
      
      	* gcc.target/aarch64/cmpelim_mult_uses_1.c: New test.
      
      
      Co-Authored-By: Michael Collison <michael.collison@arm.com>
      
      From-SVN: r253764
      Kyrylo Tkachov committed
    • re PR c++/80908 ([c++1z] ICE on instantiating a template deducing the… · c97b789c
      re PR c++/80908 ([c++1z] ICE on instantiating a template deducing the noexcept-ness of a function pointer)
      
      2017-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/80908
      	* g++.dg/cpp1z/noexcept-type18.C: New.
      
      From-SVN: r253763
      Paolo Carlini committed
    • re PR c++/81016 (ICE: segfault with template struct specialisation) · 27b8e74a
      2017-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/81016
      	* g++.dg/cpp1z/pr81016.C: New.
      
      From-SVN: r253762
      Paolo Carlini committed
    • re PR middle-end/62263 (Good codegen for bitwise rotate requires code that is… · 14745bca
      re PR middle-end/62263 (Good codegen for bitwise rotate requires code that is technically undefined behavior)
      
      	PR middle-end/62263
      	PR middle-end/82498
      	* tree-ssa-phiopt.c (value_replacement): Comment fix.  Handle
      	up to 2 preparation statements for ASSIGN in MIDDLE_BB.
      
      	* c-c++-common/rotate-8.c: Expect no PHIs in optimized dump.
      
      From-SVN: r253761
      Jakub Jelinek committed
    • re PR middle-end/62263 (Good codegen for bitwise rotate requires code that is… · cc453086
      re PR middle-end/62263 (Good codegen for bitwise rotate requires code that is technically undefined behavior)
      
      	PR middle-end/62263
      	PR middle-end/82498
      	* tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
      	to be any operand_equal_p operands.  For & (B - 1) require
      	B to be power of 2.  Recognize
      	(X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.
      
      	* c-c++-common/rotate-5.c (f2): New function.  Move old
      	function to ...
      	(f4): ... this.  Use 127 instead of 128.
      	(f3, f5, f6): New functions.
      	(main): Test all f[1-6] functions, with both 0 and 1 as
      	second arguments.
      	* c-c++-common/rotate-6.c: New test.
      	* c-c++-common/rotate-6a.c: New test.
      	* c-c++-common/rotate-7.c: New test.
      	* c-c++-common/rotate-7a.c: New test.
      	* c-c++-common/rotate-8.c: New test.
      
      From-SVN: r253760
      Jakub Jelinek committed
    • re PR bootstrap/82553 (memory_blockage breaks bootstrap on powerpc) · 6af90df0
      	PR bootstrap/82553
      	* optabs.c (expand_memory_blockage): Fix call of
      	targetm.have_memory_blockage.
      
      From-SVN: r253759
      Uros Bizjak committed
    • sem_elab.adb (In_Preelaborated_Context): A generic package subject to… · 0fcd7270
      sem_elab.adb (In_Preelaborated_Context): A generic package subject to Remote_Call_Interface is not a suitable...
      
      gcc/ada/
      
      2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_elab.adb (In_Preelaborated_Context): A generic package subject to
      	Remote_Call_Interface is not a suitable preelaboratd context when the
      	call appears in the package body.
      
      gcc/testsuite/
      
      2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* gnat.dg/remote_call_iface.ads, gnat.dg/remote_call_iface.adb: New
      	testcase.
      
      From-SVN: r253758
      Hristian Kirtchev committed
    • [multiple changes] · 92b751fd
      2017-10-14  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* layout.ads (Set_Elem_Alignment): Add Align parameter defaulted to 0.
      	* layout.adb (Set_Elem_Alignment): Likewise.  Use M name as maximum
      	alignment for consistency.  If Align is non-zero, use the minimum of
      	Align and M for the alignment.
      	* cstand.adb (Build_Float_Type): Use Set_Elem_Alignment instead of
      	setting the alignment directly.
      
      2017-10-14  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_prag.adb (Analyze_Pragma, case Check): Defer evaluation of the
      	optional string in an Assert pragma until the expansion of the pragma
      	has rewritten it as a conditional statement, so that the string
      	argument is only evaluaed if the assertion fails. This is mandated by
      	RM 11.4.2.
      
      2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* debug.adb: Switch -gnatd.v and associated flag are now used to
      	enforce the SPARK rules for elaboration in SPARK code.
      	* sem_elab.adb: Describe switch -gnatd.v.
      	(Process_Call): Verify the SPARK rules only when -gnatd.v is in effect.
      	(Process_Instantiation): Verify the SPARK rules only when -gnatd.v is
      	in effect.
      	(Process_Variable_Assignment): Clarify why variable assignments are
      	processed reglardless of whether -gnatd.v is in effect.
      	* doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update the
      	sections on elaboration code and compilation switches.
      	* gnat_ugn.texi: Regenerate.
      
      2017-10-14  Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_util.adb, freeze.adb, sem_aggr.adb, sem_util.ads, sem_util.adb,
      	sem_warn.adb: Minor reformattings.
      
      From-SVN: r253757
      Pierre-Marie de Rodat committed
    • [multiple changes] · 2e60feb5
      2017-10-14  Ed Schonberg  <schonberg@adacore.com>
      
      	* doc/gnat_rm/implementation_defined_aspects.rst: Add documentation
      	for reverse iteration over formal containers.
      	* gnat_rm.texi: Regenerate.
      
      2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_elab.adb (Ensure_Dynamic_Prior_Elaboration): Renamed to
      	Ensure_Prior_Elaboration_Dynamic for consistency reasons.
      	(Ensure_Static_Prior_Elaboration): Renamed to
      	Ensure_Prior_Elaboration_Static for consistency reasons.
      	(Info_Variable_Reference): Renamed to Info_Variable_Read in order to
      	reflect its new purpose.
      	(Is_Initialized): New routine.
      	(Is_Suitable_Variable_Reference): Renamed to Is_Suitable_Variable_Read
      	in order to reflect its new purpose.
      	(Is_Variable_Read): New routine.
      	(Output_Variable_Reference): Renamed to Output_Variable_Read in order
      	to reflect its new purpose.
      	(Process_Variable_Assignment): This routine now acts as a top level
      	dispatcher for variable assignments.
      	(Process_Variable_Assignment_Ada): New routine.
      	(Process_Variable_Assignment_SPARK): New routine.
      	(Process_Variable_Reference): Renamed to Process_Variable_Read in order
      	to reflects its new purpose. A reference to a variable is now suitable
      	for ABE processing only when it is a read. The logic in the routine now
      	reflects the latest SPARK elaboration rules.
      
      2017-10-14  Justin Squirek  <squirek@adacore.com>
      
      	* sem_ch8.adb (Analyze_Subprogram_Renaming): Modify condition that
      	triggers marking on formal subprograms.
      
      2017-10-14  Javier Miranda  <miranda@adacore.com>
      
      	* checks.adb (Ensure_Valid): Do not skip adding the validity check on
      	renamings of objects that come from the sources.
      
      2017-10-14  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* cstand.adb (Build_Float_Type): Move down Siz parameter, add Align
      	parameter and set the alignment of the type to Align.
      	(Copy_Float_Type): Adjust call to Build_Float_Type.
      	(Register_Float_Type): Add pragma Unreferenced for Precision.  Adjust
      	call to Build_Float_Type and do not set RM_Size and Alignment.
      
      From-SVN: r253756
      Pierre-Marie de Rodat committed
    • Makefile.rtl (GNATRTL_NONTASKING_OBJ): Add s-soliin to GNATRTL_NONTASKING_OBJ. · a0b0d710
      2017-10-14  Patrick Bernardi  <bernardi@adacore.com>
      
      	* Makefile.rtl (GNATRTL_NONTASKING_OBJ): Add s-soliin to
      	GNATRTL_NONTASKING_OBJ.
      
      From-SVN: r253755
      Patrick Bernardi committed
    • [multiple changes] · bad0a3df
      2017-10-14  Bob Duff  <duff@adacore.com>
      
      	* exp_ch6.adb (Is_Build_In_Place_Result_Type): Include code for
      	enabling b-i-p for nonlimited controlled types (but disabled).
      
      2017-10-14  Justin Squirek  <squirek@adacore.com>
      
      	* sem_elab.adb (Is_Suitable_Variable_Assignment): Replace call to
      	Has_Warnings_Off with Warnings_Off.
      
      2017-10-14  Piotr Trojanek  <trojanek@adacore.com>
      
      	* sinfo.ads (Generic_Parent): Remove wrong (possibly obsolete) comment.
      
      2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch3.adb (Analyze_Declarations): Analyze the contract of an
      	enclosing package at the end of the visible declarations.
      	* sem_prag.adb (Analyze_Initialization_Item): Suppress the analysis of
      	an initialization item which is undefined due to some illegality.
      
      2017-10-14  Patrick Bernardi  <bernardi@adacore.com>
      
      	* ali.adb: Add new ALI line 'T' to read the number of tasks contain
      	within each unit that require a default-sized primary and secondary
      	stack to be generated by the binder.
      	(Scan_ALI): Scan new 'T' lines.
      	* ali.ads: Add Primary_Stack_Count and Sec_Stack_Count to Unit_Record.
      	* bindgen.adb (Gen_Output_File): Count the number of default-sized
      	stacks within the closure that are to be created by the binder.
      	(Gen_Adainit, Gen_Output_File_Ada): Generate default-sized secondary
      	stacks and record these in System.Secodnary_Stack.
      	(Resolve_Binder_Options): Check if System.Secondary_Stack is in the
      	closure of the program being bound.
      	* bindusg.adb (Display): Add "-Q" switch. Remove rouge "--RTS" comment.
      	* exp_ch3.adb (Count_Default_Sized_Task_Stacks): New routine.
      	(Expand_N_Object_Declaration): Count the number of default-sized stacks
      	used by task objects contained within the object whose declaration is
      	being expanded.  Only performed when either the restrictions
      	No_Implicit_Heap_Allocations or No_Implicit_Task_Allocations are in
      	effect.
      	* exp_ch9.adb (Create_Secondary_Stack_For_Task): New routine.
      	(Expand_N_Task_Type_Declaration): Create a secondary stack as part of
      	the expansion of a task type if the size of the stack is known at
      	run-time and the restrictions No_Implicit_Heap_Allocations or
      	No_Implicit_Task_Allocations are in effect.
      	(Make_Task_Create_Call): If using a restricted profile provide
      	secondary stack parameter: either the statically created stack or null.
      	* lib-load.adb (Create_Dummy_Package_Unit, Load_Unit,
      	Load_Main_Source): Include Primary_Stack_Count and Sec_Stack_Count in
      	Unit_Record initialization expressions.
      	* lib-writ.adb (Add_Preprocessing_Dependency,
      	Ensure_System_Dependency): Include Primary_Stack_Count and
      	Sec_Stack_Count in Unit_Record initialization expression.
      	(Write_ALI): Write T lines.
      	(Write_Unit_Information): Do not output 'T' lines if there are no
      	stacks for the binder to generate.
      	* lib-writ.ads: Updated library information documentation to include
      	new T line entry.
      	* lib.adb (Increment_Primary_Stack_Count): New routine.
      	(Increment_Sec_Stack_Count): New routine.
      	(Primary_Stack_Count): New routine.
      	(Sec_Stack_Count): New routine.
      	* lib.ads: Add Primary_Stack_Count and Sec_Stack_Count components to
      	Unit_Record and updated documentation.
      	(Increment_Primary_Stack_Count): New routine along with pragma Inline.
      	(Increment_Sec_Stack_Count): New routine along with pragma Inline.
      	(Primary_Stack_Count): New routine along with pragma Inline.
      	(Sec_Stack_Count): New routine along with pragma Inline.
      	* opt.ads: New constant No_Stack_Size.	Flag Default_Stack_Size
      	redefined.  New flag Default_Sec_Stack_Size and
      	Quantity_Of_Default_Size_Sec_Stacks.
      	* rtfinal.c Fixed erroneous comment.
      	* rtsfind.ads: Moved RE_Default_Secondary_Stack_Size from
      	System.Secondary_Stack to System.Parameters.  Add RE_SS_Stack.
      	* sem_util.adb (Number_Of_Elements_In_Array): New routine.
      	* sem_util.ads (Number_Of_Elements_In_Array): New routine.
      	* switch-b.adb (Scan_Binder_Switches): Scan "-Q" switch.
      	* libgnarl/s-solita.adb (Get_Sec_Stack_Addr): Removed routine.
      	(Set_Sec_Stack_Addr): Removed routine.
      	(Get_Sec_Stack): New routine.
      	(Set_Sec_Stack): New routine.
      	(Init_Tasking_Soft_Links): Update System.Soft_Links reference to
      	reflect new procedure and global names.
      	* libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb,
      	libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__solaris.adb,
      	libgnarl/s-taprop__vxworks.adb (Register_Foreign_Thread): Update
      	parameter profile to allow the secondary stack size to be specified.
      	* libgnarl/s-tarest.adb (Create_Restricted_Task): Update the parameter
      	profile to include Sec_Stack_Address.  Update Tasking.Initialize_ATCB
      	call to remove Secondary_Stack_Size reference.  Add secondary stack
      	address and size to SSL.Create_TSD call.
      	(Task_Wrapper): Remove secondary stack creation.
      	* libgnarl/s-tarest.ads (Create_Restricted_Task,
      	Create_Restricted_Task_Sequential): Update parameter profile to include
      	Sec_Stack_Address and clarify the Size parameter.
      	* libgnarl/s-taskin.adb (Initialize_ATCB): Remove Secondary_Stack_Size
      	from profile and body.
      	(Initialize): Remove Secondary_Stack_Size from Initialize_ATCB call.
      	* libgnarl/s-taskin.ads: Removed component Secondary_Stack_Size from
      	Common_ATCB.
      	(Initialize_ATCB): Update the parameter profile to remove
      	Secondary_Stack_Size.
      	* libgnarl/s-tassta.adb (Create_Task): Updated parameter profile and
      	call to Initialize_ATCB.  Add secondary stack address and size to
      	SSL.Create_TSD call, and catch any storage exception from the call.
      	(Finalize_Global_Tasks): Update System.Soft_Links references to reflect
      	new subprogram and component names.
      	(Task_Wrapper): Remove secondary stack creation.
      	(Vulnerable_Complete_Master): Update to reflect TSD changes.
      	* libgnarl/s-tassta.ads: Reformat comments.
      	(Create_Task): Update parameter profile.
      	* libgnarl/s-tporft.adb (Register_Foreign_Thread): Update parameter
      	profile to include secondary stack size. Remove secondary size
      	parameter from Initialize_ATCB call and add it to Create_TSD call.
      	* libgnat/s-parame.adb, libgnat/s-parame__rtems.adb,
      	libgnat/s-parame__vxworks.adb (Default_Sec_Stack_Size): New routine.
      	* libgnat/s-parame.ads, libgnat/s-parame__ae653.ads,
      	libgnat/s-parame__hpux.ads, libgnat/s-parame__vxworks.ads: Remove type
      	Percentage.  Remove constants Dynamic, Sec_Stack_Percentage and
      	Sec_Stack_Dynamic.  Add constant Runtime_Default_Sec_Stack_Size and
      	Sec_Stack_Dynamic.
      	(Default_Sec_Stack_Size): New routine.
      	* libgnat/s-secsta.adb, libgnat/s-secsta.ads: New implementation. Is
      	now Preelaborate.
      	* libgnat/s-soflin.adb: Removed unused with-clauses.  With
      	System.Soft_Links.Initialize to initialize non-tasking TSD.
      	(Create_TSD): Update parameter profile. Initialize the TSD and
      	unconditionally call SS_Init.
      	(Destroy_TSD): Update SST.SS_Free call.
      	(Get_Sec_Stack_Addr_NT, Get_Sec_Stack_Addr_Soft, Set_Sec_Stack_Addr_NT,
      	Set_Sec_Stack_Addr_Soft): Remove routines.
      	(Get_Sec_Stack_NT, Get_Sec_Stack_Soft, Set_Sec_Stack_NT,
      	Set_Sec_Stack_Soft): Add routines.
      	(NT_TSD): Move to private part of package specification.
      	* libgnat/s-soflin.ads: New types Get_Stack_Call and Set_Stack_Call
      	with suppressed access checks.  Renamed *_Sec_Stack_Addr_* routines and
      	objects to *_Sec_Stack_*.  TSD: removed warning suppression and
      	component intialization. Changed Sec_Stack_Addr to Sec_Stack_Ptr.
      	(Create_TSD): Update parameter profile.
      	(NT_TSD): Move to private section from body.
      	* libgnat/s-soliin.adb, libgnat/s-soliin.ads: New files.
      	* libgnat/s-thread.ads (Thread_Body_Enter): Update parameter profile.
      	* libgnat/s-thread__ae653.adb (Get_Sec_Stack_Addr, Set_Sec_Stack_Addr):
      	Remove routine.
      	(Get_Sec_Stack, Set_Sec_Stack): Add routine.
      	(Thread_Body_Enter): Update parameter profile and body to adapt to new
      	System.Secondary_Stack.
      	(Init_RTS): Update body for new System.Soft_Links names.
      	* gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add
      	s-soliin.o.
      
      From-SVN: r253754
      Pierre-Marie de Rodat committed
    • re PR bootstrap/82548 (After -r 253646 GCC 8.0 can't build cross compiler for mingw32) · 41f59cda
      	PR bootstrap/82548
      	* config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
      	x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
      	objects to extra_objs instead of overwriting it.
      
      From-SVN: r253753
      Jakub Jelinek committed