1. 26 Sep, 2017 2 commits
  2. 25 Sep, 2017 28 commits
    • rs6000-protos.h (output_probe_stack_range): Update prototype for new argument. · af2c8a96
      	* config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
      	prototype for new argument.
      	* config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function,
      	mostly extracted from rs6000_emit_allocate_stack.
      	(rs6000_emit_probe_stack_range_stack_clash): New function.
      	(rs6000_emit_allocate_stack): Call
      	rs6000_emit_probe_stack_range_stack_clash as needed.
      	(rs6000_emit_probe_stack_range): Add additional argument
      	to call to gen_probe_stack_range{si,di}.
      	(output_probe_stack_range): New.
      	(output_probe_stack_range_1): Renamed from output_probe_stack_range.
      	(output_probe_stack_range_stack_clash): New.
      	(rs6000_emit_prologue): Emit notes into dump file as requested.
      	* rs6000.md (allocate_stack): Handle -fstack-clash-protection.
      	(probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
      	Add additional operand and pass it to output_probe_stack_range.
      
      	* lib/target-supports.exp
      	(check_effective_target_supports_stack_clash_protection): Enable for
      	rs6000 and powerpc targets.
      
      From-SVN: r253179
      Jeff Law committed
    • re PR tree-optimization/82163 (ICE on valid code at -O3 on x86_64-linux-gnu: in… · d80d5c38
      re PR tree-optimization/82163 (ICE on valid code at -O3 on x86_64-linux-gnu: in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:707)
      
      	PR tree-optimization/82163
      	* tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter.
      	(checking_verify_loop_closed_ssa): New parameter.
      	* tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete.
      	(check_loop_closed_ssa_stmt): Delete.
      	(check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions.
      	(verify_loop_closed_ssa): Check loop closed ssa form for LOOP.
      	(tree_transform_and_unroll_loop): Check loop closed ssa form only for
      	changed loops.
      
      	gcc/testsuite
      	* gcc.dg/tree-ssa/pr82163.c: New test.
      
      From-SVN: r253161
      Bin Cheng committed
    • BRIGFE fixes: · c02bffe3
      * brig-builtins.def: Treat HSAIL barrier builtins as
        setjmp/longjump style functions.
      
      * brigfrontend/brig-to-generic.cc: Ensure per WI copies of
        private variables are aligned too.
      
      * rt/workitems.c: Assume the host runtime allocates the work group
        memory.
      
      From-SVN: r253160
      Pekka Jääskeläinen committed
    • lang.opt: Add -Wdo-subscript. · 15e23330
      2017-09-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	* lang.opt:  Add -Wdo-subscript.
      	* frontend-passes.c (do_t): New type.
      	(doloop_list): Use variable of do_type.
      	(if_level): Variable to track if levels.
      	(select_level): Variable to track select levels.
      	(gfc_run_passes): Initialize i_level and select_level.
      	(doloop_code): Record current level of if + select
      	level in doloop_list.  Add seen_goto if there could
      	be a branch outside the loop. Use different type for
      	doloop_list.
      	(doloop_function): Call do_intent and do_subscript; move
      	functionality of checking INTENT to do_intent.
      	(insert_index_t): New type, for callback_insert_index.
      	(callback_insert_index): New function.
      	(insert_index): New function.
      	(do_subscript): New function.
      	(do_intent): New function.
      	(gfc_code_walker): Keep track of if_level and select_level.
      	* invoke.texi: Document -Wdo-subscript.
      
      2017-09-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	* gfortran.dg/do_subscript_1.f90: New test.
      	* gfortran.dg/do_subscript_2.f90: New test.
      	* gfortran.dg/gomp/associate1.f90: Add out of bounds warning.
      	* gfortran.dg/predcom-1.f: Adjust loop bounds.
      	* gfortran.dg/unconstrained_commons.f: Add out of bounds warning.
      
      From-SVN: r253156
      Thomas Koenig committed
    • Turn CONSTANT_ALIGNMENT into a hook · 58e17cf8
      The definition:
      
        #define CONSTANT_ALIGNMENT(EXP, ALIGN) \
          (TREE_CODE (EXP) == STRING_CST \
           && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN))
      
      was very common, so the patch adds a canned definition for that,
      called constant_alignment_word_strings.  Some ports had a variation
      that used a port-local FASTEST_ALIGNMENT instead of BITS_PER_WORD;
      the patch uses constant_alignment_word_strings if FASTEST_ALIGNMENT
      was always BITS_PER_WORD and a port-local hook function otherwise.
      
      2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* target.def (constant_alignment): New hook.
      	* defaults.h (CONSTANT_ALIGNMENT): Delete.
      	* doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with...
      	(TARGET_CONSTANT_ALIGNMENT): ...this new hook.
      	* doc/tm.texi: Regenerate.
      	* targhooks.h (default_constant_alignment): Declare.
      	(constant_alignment_word_strings): Likewise.
      	* targhooks.c (default_constant_alignment): New function.
      	(constant_alignment_word_strings): Likewise.
      	* builtins.c (get_object_alignment_2): Use targetm.constant_alignment
      	instead of CONSTANT_ALIGNMENT.
      	* varasm.c (align_variable, get_variable_align, build_constant_desc)
      	(force_const_mem): Likewise.
      	* config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete.
      	* config/aarch64/aarch64.c (aarch64_constant_alignment): New function.
      	(aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT.
      	(TARGET_CONSTANT_ALIGNMENT): Redefine.
      	* config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out
      	definition.
      	* config/arc/arc.h (CONSTANT_ALIGNMENT): Delete.
      	* config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
      	constant_alignment_word_strings.
      	* config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete.
      	(CONSTANT_ALIGNMENT): Likewise.
      	* config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
      	(arm_constant_alignment): New function.
      	* config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete.
      	* config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
      	constant_alignment_word_strings.
      	* config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete.
      	* config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
      	constant_alignment_word_strings.
      	* config/cris/cris.h (CONSTANT_ALIGNMENT): Delete.
      	* config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
      	(cris_constant_alignment): New function.
      	* config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete.
      	* config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
      	(epiphany_constant_alignment): New function.
      	* config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete.
      	* config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
      	constant_alignment_word_strings.
      	* config/frv/frv.h (CONSTANT_ALIGNMENT): Delete.
      	* config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
      	constant_alignment_word_strings.
      	* config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete.
      	* config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
      	constant_alignment_word_strings.
      	* config/i386/i386.h (CONSTANT_ALIGNMENT): Delete.
      	* config/i386/i386-protos.h (ix86_constant_alignment): Delete.
      	* config/i386/i386.c (ix86_constant_alignment): Make static.
      	Use the same interface as the target hook.
      	(TARGET_CONSTANT_ALIGNMENT): Redefine.
      	* config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete.
      	* config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
      	constant_alignment_word_strings.
      	* config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete.
      	* config/iq2000/iq2000.c (iq2000_constant_alignment): New function.
      	(TARGET_CONSTANT_ALIGNMENT): Redefine.
      	* config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete.
      	* config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
      	constant_alignment_word_strings.
      	* config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete.
      	* config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
      	constant_alignment_word_strings.
      	* config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete.
      	* config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
      	constant_alignment_word_strings.
      	* config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete.
      	* config/microblaze/microblaze.c (microblaze_constant_alignment):
      	New function.
      	(TARGET_CONSTANT_ALIGNMENT): Redefine.
      	* config/mips/mips.h (CONSTANT_ALIGNMENT): Delete.
      	* config/mips/mips.c (mips_constant_alignment): New function.
      	(TARGET_CONSTANT_ALIGNMENT): Redefine.
      	* config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete.
      	* config/mmix/mmix-protos.h (mmix_constant_alignment): Delete.
      	* config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
      	(mmix_constant_alignment): Make static.  Use the same interface
      	as the target hook.
      	* config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete.
      	* config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
      	constant_alignment_word_strings.
      	* config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete.
      	* config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
      	constant_alignment_word_strings.
      	* config/pa/pa.h (CONSTANT_ALIGNMENT): Delete.
      	* config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
      	constant_alignment_word_strings.
      	* config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete.
      	* config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
      	(rs6000_constant_alignment): New function.
      	* config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete.
      	* config/riscv/riscv.c (riscv_constant_alignment): New function.
      	(TARGET_CONSTANT_ALIGNMENT): Redefine.
      	* config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete.
      	* config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
      	(rs6000_constant_alignment): New function.
      	* config/s390/s390.h (CONSTANT_ALIGNMENT): Delete.
      	* config/s390/s390.c (s390_constant_alignment): New function.
      	(TARGET_CONSTANT_ALIGNMENT): Redefine.
      	* config/sh/sh.h (CONSTANT_ALIGNMENT): Delete.
      	* config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
      	constant_alignment_word_strings.
      	* config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete.
      	* config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
      	(sparc_constant_alignment): New function.
      	* config/spu/spu.h (CONSTANT_ALIGNMENT): Delete.
      	* config/spu/spu.c (spu_constant_alignment): New function.
      	(TARGET_CONSTANT_ALIGNMENT): Redefine.
      	* config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete.
      	* config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
      	constant_alignment_word_strings.
      	* config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete.
      	* config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
      	constant_alignment_word_strings.
      	* config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete.
      	* config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
      	constant_alignment_word_strings.
      	* config/visium/visium.h (CONSTANT_ALIGNMENT): Delete.
      	* config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
      	(visium_constant_alignment): New function.
      	* config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete.
      	* config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
      	(xtensa_constant_alignment): New function.
      	* system.h (CONSTANT_ALIGNMENT): Poison.
      
      From-SVN: r253154
      Richard Sandiford committed
    • re PR c/81854 (weak alias of an incompatible symbol accepted) · 75c44d22
      	PR c/81854
      	* src/c++98/complex_io.cc (_GLIBCXX_LDBL_COMPAT): Declare alias
      	target as a C++ function with no prototype.
      
      From-SVN: r253153
      Uros Bizjak committed
    • rs6000.c (rs6000_gimple_fold_builtin): Add handling for early folding of vector… · df5cc22c
      rs6000.c (rs6000_gimple_fold_builtin): Add handling for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
      
      [gcc]
      
      2017-09-25  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
      	for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
      	(rs6000_builtin_valid_without_lhs): New helper function.
      	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
      	Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST.
      
      From-SVN: r253152
      Will Schmidt committed
    • fold-vec-st-char.c: New. · 2678bf2f
      [gcc/testsuite]
      
      2017-09-25  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
          * gcc.target/powerpc/fold-vec-st-char.c: New.
          * gcc.target/powerpc/fold-vec-st-double.c: New.
          * gcc.target/powerpc/fold-vec-st-float.c: New.
          * gcc.target/powerpc/fold-vec-st-int.c: New.
          * gcc.target/powerpc/fold-vec-st-longlong.c: New.
          * gcc.target/powerpc/fold-vec-st-pixel.c: New.
          * gcc.target/powerpc/fold-vec-st-short.c: New.
      
      From-SVN: r253151
      Will Schmidt committed
    • Change permute index type to unsigned short · f39b92e2
      This patch changes the element type of (auto_)vec_perm_indices from
      unsigned char to unsigned short.  This is needed for fixed-length
      2048-bit SVE.  (SVE is variable-length by default, but it's possible
      to ask for specific vector lengths if you want to.)
      
      2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* target.h (vec_perm_indices): Use unsigned short rather than
      	unsigned char.
      	(auto_vec_perm_indices): Likewise.
      	* config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok):
      	Use unsigned int rather than unsigned char.
      	* config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise.
      
      From-SVN: r253150
      Richard Sandiford committed
    • cfgloop.h (sort_sibling_loops): Declare. · 26993e95
      2017-09-25  Richard Biener  <rguenther@suse.de>
      
      	* cfgloop.h (sort_sibling_loops): Declare.
      	* cfgloop.c (sort_sibling_loops_cmp): New helper.
      	(sort_sibling_loops): New function sorting the sibling loop list
      	in RPO order.
      	* graphite.c (graphite_transform_loops): Sort sibling loops.
      
      From-SVN: r253149
      Richard Biener committed
    • Update interface to TARGET_VECTORIZE_VEC_PERM_CONST_OK · 579f3687
      This patch makes TARGET_VECTORIZE_VEC_PERM_CONST_OK take the permute
      vector in the form of a vec_perm_indices instead of an unsigned char *.
      It follows on from the recent patch that did the same in target-independent
      code.
      
      It was easy to make ARM and AArch64 use vec_perm_indices internally
      as well, and converting AArch64 helps with SVE.  I did try doing the same
      for the other ports, but the surgery needed was much more invasive and
      much less obviously correct.
      
      2017-09-22  Richard Sandiford  <richard.sandifird@linaro.org>
      
      gcc/
      	* target.def (vec_perm_const_ok): Change sel parameter to
      	vec_perm_indices.
      	* optabs-query.c (can_vec_perm_p): Update accordingly.
      	* doc/tm.texi: Regenerate.
      	* config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to
      	auto_vec_perm_indices and remove separate nelt field.
      	(aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
      	(aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup)
      	(aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1)
      	(aarch64_expand_vec_perm_const): Update accordingly.
      	(aarch64_vectorize_vec_perm_const_ok): Likewise.  Change sel
      	to vec_perm_indices.
      	* config/arm/arm.c (expand_vec_perm_d): Change perm to
      	auto_vec_perm_indices and remove separate nelt field.
      	(arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev)
      	(arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl)
      	(arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update
      	accordingly.
      	(arm_vectorize_vec_perm_const_ok): Likewise.  Change sel
      	to vec_perm_indices.
      	* config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
      	sel to vec_perm_indices.
      	* config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise.
      	* config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise.
      	* config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok):
      	Likewise.
      	* config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok):
      	Likewise.
      
      From-SVN: r253148
      Richard Sandiford committed
    • [PR82155] Fix crash in dwarf2out_abstract_function · 504e0b5f
      This patch is an attempt to fix the crash reported in PR82155.
      
      When generating a C++ class method for a class that is itself nested in
      a class method, dwarf2out_early_global_decl currently leaves the
      existing context DIE as it is if it already exists.  However, it is
      possible that this call happens at a point where this context DIE is
      just a declaration that is itself not located in its own context.
      
      From there, if dwarf2out_early_global_decl is not called on any of the
      FUNCTION_DECL in the context chain, DIEs will be left badly scoped and
      some (such as the nested method) will be removed by the type pruning
      machinery.  As a consequence, dwarf2out_abstract_function will will
      crash when called on the corresponding DECL because it asserts that the
      DECL has a DIE.
      
      This patch fixes this crash making dwarf2out_early_global_decl process
      context DIEs the same way we process abstract origins for FUNCTION_DECL:
      if the corresponding DIE exists but is only a declaration, call
      dwarf2out_decl anyway on it so that it is turned into a more complete
      DIE and so that it is relocated in the proper context.
      
      Bootstrapped and regtested on x86_64-linux.
      
      gcc/
      
      	PR debug/82155
      	* dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
      	on the FUNCTION_DECL function context if it has a DIE that is a
      	declaration.
      
      gcc/testsuite/
      
      	* g++.dg/pr82155.C: New testcase.
      
      From-SVN: r253147
      Pierre-Marie de Rodat committed
    • re PR tree-optimization/82285 (Optimizing error when using enumeration) · d362ac6c
      2017-09-25  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/82285
      	* tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
      	enumeral types.
      
      	* gcc.dg/torture/pr82285.c: New testcase.
      
      From-SVN: r253146
      Richard Biener committed
    • [nvptx] Add exit after call to noreturn function · fb202364
      2017-09-25  Tom de Vries  <tom@codesourcery.com>
      
      	PR target/80035
      	PR target/81069
      	* config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
      	noreturn function.
      
      From-SVN: r253145
      Tom de Vries committed
    • [multiple changes] · 851e9f19
      2017-09-25  Justin Squirek  <squirek@adacore.com>
      
      	* aspects.adb, bindgen.adb, clean.adb, erroutc.adb, exp_ch13.adb,
      	exp_dbug.adb, exp_unst.adb, exp_util.adb, frontend.adb, gnat1drv.adb,
      	gnatdll.adb, gnatlink.adb, gnatls.adb, gnatname.adb, gnatxref.adb,
      	gnatfind.adb, libgnat/a-cfhama.ads, libgnat/a-exetim__mingw.adb,
      	libgnat/a-strmap.adb, libgnat/a-teioed.adb, libgnat/g-alvety.ads,
      	libgnat/g-expect.adb, libgnat/g-regist.adb, libgnat/g-socket.adb,
      	libgnat/g-socthi__mingw.ads, libgnat/s-stausa.adb,
      	libgnat/s-tsmona__linux.adb, libgnat/s-tsmona__mingw.adb,
      	libgnarl/s-taenca.adb, libgnarl/s-tassta.adb, libgnarl/s-tarest.adb,
      	libgnarl/s-tpobop.adb, make.adb, makeusg.adb, namet.adb, output.ads,
      	put_scos.adb, repinfo.adb, rtsfind.adb, scn.ads, sem_attr.adb,
      	sem_aux.ads, sem_warn.ads, targparm.adb, xr_tabls.adb, xref_lib.adb:
      	Removal of ineffective use-clauses.
      	* exp_ch9.adb (Is_Simple_Barrier_Name): Check for false positives with
      	constant folded barriers.
      	* ghost.adb, sprint.adb, sem_ch10.adb, sem_warn.adb: Change access to
      	Subtype_Marks and Names list in use-clause nodes to their new singular
      	counterparts (e.g. Subtype_Mark, Name).
      	* par.adb, par-ch8.adb (Append_Use_Clause): Created to set
      	Prev_Ids and More_Ids in use-clause nodes.
      	(P_Use_Clause): Modify to take a list as a parameter.
      	(P_Use_Package_Clause, P_Use_Type_Clause): Divide names and
      	subtype_marks within an aggregate use-clauses into individual clauses.
      	* par-ch3.adb, par-ch10.adb, par-ch12.adb: Trivally modify call to
      	P_Use_Clause to match its new behavior.
      	* sem.adb (Analyze): Mark use clauses for non-overloaded entities.
      	* sem_ch4.adb (Try_One_Interp): Add sanity check to handle previous
      	errors.
      	* sem_ch6.adb (Analyze_Generic_Subprogram_Body,
      	Analyze_Subprogram_Body_Helper): Update use clause chain at the end of
      	the declarative region.
      	* sem_ch7.adb (Analyze_Package_Body_Helper): Update use clause chain
      	after analysis (Analyze_Package_Specification): Update use clause chain
      	when there is no body.
      	* sem_ch8.ads, sem_ch8.adb (Analyze_Use_Package, Analyze_Use_Type): Add
      	parameter to determine weither the installation of scopes should also
      	propagate on the use-clause "chain".
      	(Mark_Use_Clauses): Created to traverse use-clause chains and determine
      	what constitutes a valid "use" of a clause.
      	(Update_Use_Clause_Chain): Created to aggregate common machinary used
      	to clean up use-clause chains (and warn on ineffectiveness) at the end
      	of declaritive regions.
      	* sem_ch8.adb (Analyze_Package_Name): Created to perform analysis on a
      	package name from a use-package clause.
      	(Analyze_Package_Name_List): Created to perform analysis on a list of
      	package names (similar to Analyze_Package_Name).
      	(Find_Most_Prev): Created to traverse to the beginning of a given
      	use-clause chain.
      	(Most_Decendant_Use_Clause): Create to identify which clause from a
      	given set is highest in scope (not always the most prev).
      	(Use_One_Package, Use_One_Type): Major cleanup and reorganization to
      	handle the new chaining algorithm, also many changes related to
      	redundant clauses. A new parameter has also been added to force
      	installation to handle certain cases.
      	* sem_ch9.adb (Analyze_Entry_Body, Analyze_Protected_Body,
      	Analyze_Task_Body): Mark use clauses on relevant entities.
      	* sem_ch10.adb, sem_ch10.ads (Install_Context_Clauses,
      	Install_Parents): Add parameter to determine weither the installation
      	of scopes should also propagate on the use-clause "chain".
      	* sem_ch12.adb (Inline_Instance_Body): Add flag in call to
      	Install_Context to avoid redundant chaining of use-clauses.
      	* sem_ch13.adb: Minor reformatting.
      	* sem_res.adb (Resolve): Mark use clauses on operators.
      	(Resolve_Call, Resolve_Entity_Name): Mark use clauses on relevant
      	entities.
      	* sinfo.adb, sinfo.ads (Is_Effective_Use_Clause,
      	Set_Is_Effective_Use_Clause): Add new flag to N_Use_Clause nodes to
      	represent any given clause's usage/reference/necessity.
      	(Prev_Use_Clause, Set_Prev_Use_Clause): Add new field to N_Use_Clause
      	nodes to allow loose chaining of redundant clauses.
      	(Set_Used_Operations, Set_Subtype_Mark, Set_Prev_Ids, Set_Names,
      	Set_More_Ids, Set_Name): Modify set procedure calls to reflect
      	reorganization in node fields.
      	* types.ads (Source_File_Index): Adjust index bounds.
      	(No_Access_To_Source_File): New constant.
      
      2017-09-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Analyze_One_Aspect): In ASIS mode make a full copy of
      	the expression to be used in the generated attribute specification
      	(rather than relocating it) to avoid resolving a potentially malformed
      	tree when the expression is resolved through an ASIS-specific call to
      	Resolve_Aspect_Expressions.  This manifests itself as a crash on a
      	function with parameter associations.
      
      From-SVN: r253144
      Pierre-Marie de Rodat committed
    • [multiple changes] · 61b14896
      2017-09-25  Yannick Moy  <moy@adacore.com>
      
      	* exp_spark.adb (Expand_SPARK_Indexed_Component,
      	Expand_SPARK_Selected_Component): New procedures to insert explicit
      	dereference if required.
      	(Expand_SPARK): Call the new procedures.
      
      2017-09-25  Patrick Bernardi  <bernardi@adacore.com>
      
      	* libgnat/a-stwiun.adb, libgnat/s-stchop__vxworks.adb,
      	libgnat/g-socthi__vxworks.ads, libgnat/a-stzunb.adb,
      	libgnat/a-strunb.adb, libgnarl/s-osinte__lynxos178.adb,
      	libgnarl/s-intman__vxworks.adb, libgnarl/s-osinte__darwin.adb,
      	libgnarl/a-exetim__darwin.adb: Removed ineffective use-clauses.
      
      2017-09-25  Vasiliy Fofanov  <fofanov@adacore.com>
      
      	* adaint.c (win32_wait): Properly handle error and take into account
      	the WIN32 limitation on the number of simultaneous wait objects.
      
      2017-09-25  Yannick Moy  <moy@adacore.com>
      
      	* sem_ch3.adb (Constant_Redeclaration): Do not insert a call to the
      	invariant procedure in GNATprove mode.
      	* sem_ch5.adb (Analyze_Assignment): Likewise.
      
      From-SVN: r253143
      Pierre-Marie de Rodat committed
    • graphite-optimize-isl.c (optimize_isl): Fail and dump if ISL errors other than… · 871a0725
      graphite-optimize-isl.c (optimize_isl): Fail and dump if ISL errors other than isl_error_quota happen.
      
      2017-09-25  Richard Biener  <rguenther@suse.de>
      
      	* graphite-optimize-isl.c (optimize_isl): Fail and dump if
      	ISL errors other than isl_error_quota happen.  Dump if the
      	schedule is the same.
      	* graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
      	errors instead of aborting inside ISL.
      
      From-SVN: r253142
      Richard Biener committed
    • [multiple changes] · d449ed75
      2017-09-25  Piotr Trojanek  <trojanek@adacore.com>
      
      	* adabkend.adb (Call_Back_End): Fix wording of "front-end" and
      	"back-end" in comments.
      
      2017-09-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch6.adb (Expand_Call_Helper): The extra accessibility check in a
      	call that appears in a classwide precondition and that mentions an
      	access formal of the subprogram, must use the accessibility level of
      	the actual in the call. This is one case in which a reference to a
      	formal parameter appears outside of the body of the subprogram.
      
      From-SVN: r253141
      Pierre-Marie de Rodat committed
    • [multiple changes] · f71b4cd4
      2017-09-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_res.adb (Replace_Actual_Discriminants): Replace a discriminant
      	for GNATprove.
      	(Resolve_Entry): Clean up predicate
      
      2017-09-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Analyze_Constituent): Raise Unrecoverable_Error rather
      	than Program_Error because U_E is more in line with respect to the
      	intended behavior.
      
      2017-09-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Resolve_Aspect_Expressions): The expression for aspect
      	Storage_Size does not freeze, and thus can include references to
      	deferred constants.
      
      2017-09-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_spark.adb (Expand_SPARK_Potential_Renaming): Do not process a
      	reference when it appears within a pragma of no significance to SPARK.
      	(In_Insignificant_Pragma): New routine.
      	* sem_prag.ads: Add new table Pragma_Significant_In_SPARK.
      
      2017-09-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch12.adb (Analyze_Associations, case N_Formal_Package): If the
      	actual is a renaming, indicate that it is the renamed package that must
      	be frozen before the instantiation.
      
      2017-09-25  Yannick Moy  <moy@adacore.com>
      
      	* doc/gnat_ugn/gnat_and_program_execution.rst: Fix typo in description
      	of dimensionality system in GNAT UG.
      	* gnat_ugn.texi: Regenerate.
      
      2017-09-25  Yannick Moy  <moy@adacore.com>
      
      	* gnat1drv.adb: Call Check_Safe_Pointers from the frontend in
      	GNATprove_Mode when switch -gnatdF used.
      
      2017-09-25  Piotr Trojanek  <trojanek@adacore.com>
      
      	* adabkend.adb (Call_Back_End): Reset Current_Error_Node when starting
      	the backend.
      
      From-SVN: r253140
      Pierre-Marie de Rodat committed
    • exp_imgv.adb (Expand_Image_Attribute): Disable the optimized expansion of… · e98cd75f
      exp_imgv.adb (Expand_Image_Attribute): Disable the optimized expansion of user-defined enumeration types when...
      
      gcc/ada/
      
      2017-09-25  Javier Miranda  <miranda@adacore.com>
      
      	* exp_imgv.adb (Expand_Image_Attribute): Disable the optimized
      	expansion of user-defined enumeration types when the generation of
      	names for enumeration literals is suppressed.
      
      2017-09-25  Gary Dismukes  <dismukes@adacore.com>
      
      	* libgnarl/s-taprop__linux.adb: Minor reformatting.
      
      2017-09-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Resolve_Aspect_Expressions): Do not resolve identifiers
      	that appear as selector names of parameter associations, as these are
      	never resolved by visibility.
      
      2017-09-25  Justin Squirek  <squirek@adacore.com>
      
      	* sem_res.adb (Resolve_Entry): Generate reference for index entities.
      
      gcc/testsuite/
      
      2017-09-25  Justin Squirek  <squirek@adacore.com>
      
      	* gnat.dg/entry_family.adb: New testcase
      
      From-SVN: r253139
      Pierre-Marie de Rodat committed
    • [multiple changes] · 49742f99
      2017-09-25  Doug Rupp  <rupp@adacore.com>
      
      	* libgnarl/s-taprop__linux.adb (Compute_Base_Monotonic_Clock): Refine.
      
      2017-09-25  Javier Miranda  <miranda@adacore.com>
      
      	* exp_imgv.adb (Is_User_Defined_Enumeration_Type): New subprogram.
      	(Expand_User_Defined_Enumeration_Image): New subprogram.
      	(Expand_Image_Attribute): Enable speed-optimized expansion of
      	user-defined enumeration types when we are compiling with optimizations
      	enabled.
      
      2017-09-25  Piotr Trojanek  <trojanek@adacore.com>
      
      	* sem_util.adb (Has_Null_Abstract_State): Remove, as an exactly same
      	routine is already provided by Einfo.
      	* einfo.adb (Has_Null_Abstract_State): Replace with the body from
      	Sem_Util, which had better comments and avoided double calls to
      	Abstract_State.
      
      From-SVN: r253138
      Pierre-Marie de Rodat committed
    • [Patch, Darwin] Fix PR80556 by linking the system unwinder ahead of libgcc_eh. · 7b607822
      	PR target/80556
      	* config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
      	of libgcc_eh for m64.
      	* config/i386/darwin64.h: Likewise.
      
      /* WORKAROUND pr80556:
         For x86_64 Darwin10 and later, the unwinder is in libunwind (redirected
         from libSystem).  This doesn't use the keymgr (see keymgr.c) and therefore
         the calls that libgcc makes to obtain the KEYMGR_GCC3_DW2_OBJ_LIST are not
         updated to include new images, and might not even be valid for a single
         image.
         Therefore, for 64b exes at least, we must use the libunwind implementation,
         even when static-libgcc is specified.  We put libSystem first so that
         unwinder symbols are satisfied from there.
      
      From-SVN: r253137
      Iain Sandoe committed
    • [multiple changes] · f7fb5c08
      2017-09-25  Bob Duff  <duff@adacore.com>
      
      	* exp_ch3.adb: Rename Comp_Type_Simple to be Comp_Simple_Init.
      
      2017-09-25  Doug Rupp  <rupp@adacore.com>
      
      	* libgnarl/s-taprop__linux.adb (Base_Monotonic_Clock): New variable.
      	(Compute_Base_Monotonic_Clock): New function.
      	(Timed_Sleep): Adjust to use Base_Monotonic_Clock.
      	(Timed_Delay): Likewise.
      	(Monotonic_Clock): Likewise.
      	* s-oscons-tmplt.c (CLOCK_MONOTONIC): Use on Linux.
      
      From-SVN: r253136
      Pierre-Marie de Rodat committed
    • [multiple changes] · aa11d1dd
      2017-09-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch12.adb (Save_References_In_Aggregate): Small correction to
      	previous change.
      
      2017-09-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch5.adb, sem_ch4.adb, sem_ch13.adb, sem_attr.adb, exp_ch3.adb:
      	Minor reformatting.
      
      From-SVN: r253135
      Pierre-Marie de Rodat committed
    • re PR debug/82144 (ICE in add_dwarf_attr with alignas) · 625f7ba6
      2017-09-25  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/82144
      	* dwarf2out.c (gen_enumeration_type_die): Do not add alignment
      	attribute for incomplete types nor twice for complete ones.
      
      From-SVN: r253134
      Richard Biener committed
    • Add myself as nvptx maintainer · 55de8eb3
      2017-09-25  Tom de Vries  <tom@codesourcery.com>
      
      	* MAINTAINERS (CPU Port Maintainers): Add myself as nvptx maintainer.
      
      From-SVN: r253133
      Tom de Vries committed
    • Remove unnecessary fold_convert in gfc_(un)likely · b3565940
      This patch removes an unnecessary fold_convert to boolean_type_node at
      the end of gfc_likely and gfc_unlikely.  It makes no difference to the
      generated code, but makes tree dumps a little bit cleaner.
      
      2017-09-25  Janne Blomqvist  <jb@gcc.gnu.org>
              * trans.c (gfc_unlikely): Remove unnecessary fold_convert.
              (gfc_likely): Likewise.
      
      Regtested on x86_64-pc-linux-gnu.
      
      From-SVN: r253132
      Janne Blomqvist committed
    • Daily bump. · 28a8cba0
      From-SVN: r253131
      GCC Administrator committed
  3. 24 Sep, 2017 6 commits
  4. 23 Sep, 2017 4 commits
    • re PR bootstrap/82306 (Revision r253089 breaks bootstrap on Darwin) · 2b8e2e6a
      	PR bootstrap/82306
      	* config/i386/i386.opt (mprefer-avx256): Use
      	ix86_target_flags variable.
      	* config/i386/i386.c (ix86_target_string): Move
      	-mprefer-avx256 to flag2_opts.
      
      From-SVN: r253118
      Uros Bizjak committed
    • re PR fortran/82143 (add a -fdefault-real-16 flag) · d16d81b5
      2017-09-23  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/82143
      	* lang.opt: Add the options -fdefault-real-10 and -fdefault-real-16.
      	Rename flag_default_real to flag_default_real_8.
      	* invoke.texi: Add documentation.
      	* module.c (use_iso_fortran_env_module): flag_default_real is renamed.
      	* trans-types.c (gfc_init_kinds): Implement the flags
      	-fdefault-real-10 and -fdefault-real-16. Make -fdefault-double-8 work
      	without -fdefault-real-8.
      
      2017-09-23  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/82143
      	* gfortran.dg/promotion_3.f90: New test case.
      	* gfortran.dg/promotion_4.f90: New test case.
      
      From-SVN: r253117
      Janus Weil committed
    • PR target/82196 addendum: Fix Darwin build breakage and test FAILS on Solaris · 89762a83
      gcc/testsuite:
      	* gcc.target/i386/pr82196-1.c: (b): Remove volatile asm.
      	* gcc.target/i386/pr82196-2.c: (b): Likewise.
      
      libgcc:
      	* configure.ac: Add Check for HAVE_AS_AVX.
      	* config.in: Regenerate.
      	* configure: Likewise.
      	* config/i386/i386-asm.h: Include auto-target.h from libgcc.
      	(SSE_SAVE, SSE_RESTORE): Emit .byte sequence for !HAVE_AS_AVX.
      	Correct out-of-date comments.
      
      From-SVN: r253116
      Daniel Santos committed
    • Daily bump. · 099666b3
      From-SVN: r253114
      GCC Administrator committed