1. 16 Nov, 2017 40 commits
    • power9.md (power9fpdiv): New automaton and cpu_unit defined for it. · 375aa4bc
      	* rs6000/power9.md (power9fpdiv): New automaton and cpu_unit defined
      	for it.
      	(DU_C2_3_power9): Correct reservation combinations.
      	(FP_DIV_power9, VEC_DIV_power9): New.
      	(power9-alu): Split out rotate/shift...
      	(power9-rot): ...to here, correct dispatch resource.
      	(power9-cracked-alu, power9-mul, power9-mul-compare): Correct dispatch
      	resource.
      	(power9-fp): Correct latency.
      	(power9-sdiv): Add div/sqrt resource.
      	(power9-ddiv): Correct latency, add div/sqrt resource.
      	(power9-sqrt, power9-dsqrt): Add div/sqrt resource.
      	(power9-vecfdiv, power9-vecdiv): Correct latency, add div/sqrt
      	resource.
      	(power9-qpdiv, power9-qpmul): Adjust resource usage.
      
      From-SVN: r254844
      Pat Haugen committed
    • PR c++/79092 - non-type args of different types are different · 6296cf8e
      	* tree.c (cp_tree_equal): Check the type of constants.
      	* pt.c (unify) [TEMPLATE_PARM_INDEX]: Handle UNIFY_ALLOW_INTEGER
      	when comparing to previously deduced argument.
      	(maybe_convert_nontype_argument): New.
      	(convert_nontype_argument): Call it.
      	(tsubst_copy_and_build): Handle partial instantiation of
      	IMPLICIT_CONV_EXPR.
      	(unify): Ignore type when deducing from array bound.
      	(dependent_type_p_r): Handle DEFERRED_NOEXCEPT.
      	(value_dependent_expression_p): Any type-dependent expression is
      	value-dependent.  Handle IMPLICIT_CONV_EXPR.
      	* cp-tree.h (IMPLICIT_CONV_EXPR_NONTYPE_ARG): New.
      	* mangle.c (write_template_arg): Strip IMPLICIT_CONV_EXPR.
      
      From-SVN: r254843
      Jason Merrill committed
    • rs6000.c (rs6000_expand_builtin): Do not do the switch statement mapping KF… · 285346b5
      rs6000.c (rs6000_expand_builtin): Do not do the switch statement mapping KF built-ins to TF built-ins if...
      
      [gcc]
      2017-11-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000.c (rs6000_expand_builtin): Do not do the
      	switch statement mapping KF built-ins to TF built-ins if we don't
      	have the proper ISA 3.0 assembler support.
      
      [gcc/testsuite]
      2017-11-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/bfp/bfp.exp: Look for *.c files, not *.c*
      	files to prevent ~ files from getting recognized.
      	* gcc.target/powerpc/dfp/dfp.exp: Likewise.
      	* gcc.target/powerpc/vsu/vsu.exp: Likewise.
      
      From-SVN: r254839
      Michael Meissner committed
    • Makefile.am: Remove references to c-compiler-name.h and cp-compiler-name.h · 9d99775c
      	* Makefile.am: Remove references to c-compiler-name.h and
      	cp-compiler-name.h
      	* Makefile.in: Regenerate.
      	* compiler-name.hh: New file.
      	* libcc1.cc: Don't include c-compiler-name.h.  Include
      	compiler-name.hh.
      	* libcp1.cc: Don't include cp-compiler-name.h.  Include
      	compiler-name.hh.
      
      Co-Authored-By: Pedro Alves <palves@redhat.com>
      
      From-SVN: r254838
      Sergio Durigan Junior committed
    • [BRIGFE] Reduce the number of type conversions due to · dc03239c
      the untyped HSAIL regs.
      
      Instead of always representing the HSAIL's untyped registers as
      unsigned int, the gccbrig now pre-analyzes the BRIG code and
      builds the register variables as a type used the most when storing
      or reading data to/from each register. This reduces the total
      conversions which cannot be always optimized away.
      
      From-SVN: r254837
      Henry Linjamäki committed
    • tree-emutls.c (lower_emutls_data): Remove unused bb_freq. · 35a282e0
      
      	* tree-emutls.c (lower_emutls_data): Remove unused bb_freq.
      	(lower_emutls_function_body): Do not compute it.
      
      From-SVN: r254836
      Jan Hubicka committed
    • ipa-split.c (split_bb_info): Turn time to sreal. · c2e87766
      
      	* ipa-split.c (split_bb_info): Turn time to sreal.
      	(split_point): Likewise.
      	(dump_split_point): Likewise.
      	(fine_split_points): Likewise.
      	(execute_split_functions): Only zero split_bbs; turn time to sreals.
      
      From-SVN: r254835
      Jan Hubicka committed
    • ipa-fnsummary.c (analyze_function_body): Accumulate time consistently in sreal. · b71289b1
      
      	* ipa-fnsummary.c (analyze_function_body): Accumulate time consistently
      	in sreal.
      	* gcc.dg/ipa/ipcp-2.c: Lower threshold.
      
      From-SVN: r254834
      Jan Hubicka committed
    • PR middle-end/63477 - Bogus warning with -O3 -Warray-bounds: array subscript · 913f8c08
      PR middle-end/63477 - Bogus warning with -O3 -Warray-bounds: array subscript
      is above array bounds
      
      gcc/testsuite/ChangeLog:
      
      	PR middle-end/63477
      	* gcc.dg/pr63477.c: New test.
      
      From-SVN: r254833
      Martin Sebor committed
    • predict.c (combine_predictions_for_bb): Preserve zero predicted eges. · b00ff621
      
      	* predict.c (combine_predictions_for_bb): Preserve zero predicted	
      	eges.
      	(expensive_function_p): Remove useless assert.
      	(determine_unlikely_bbs): Propagate also forward; determine cold blocks
      
      From-SVN: r254832
      Jan Hubicka committed
    • Remove wrong ChangeLog entry · aef0c806
      From-SVN: r254831
      Jason Merrill committed
    • PR tree-optimization/82588 - missing -Warray-bounds on a excessively large index · 8a5ee94a
      PR tree-optimization/82588 - missing -Warray-bounds on a excessively large index
      PR tree-optimization/82583 - missing -Warray-bounds on out-of-bounds inner indic
      
      gcc/ChangeLog:
      
      	PR tree-optimization/82588
      	PR tree-optimization/82583
      	* tree-vrp.c (check_array_ref): Handle flexible array members,
      	string literals, and inner indices.
      	(search_for_addr_array): Add detail to diagnostics.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/82588
      	PR tree-optimization/82583
      	* c-c++-common/Warray-bounds.c: New test.
      	* gcc.dg/Warray-bounds-11.c: Adjust.
      	* gcc.dg/Warray-bounds-22.c: New test.
      
      From-SVN: r254830
      Martin Sebor committed
    • Makefile.in: Merge Aarch64 and ARM "ifeq" blocks. · 79cefe9d
      2017-11-16  Doug Rupp  <rupp@adacore.com>
      
      	* gcc-interface/Makefile.in: Merge Aarch64 and ARM "ifeq" blocks.
      
      From-SVN: r254829
      Doug Rupp committed
    • [multiple changes] · d2ca5779
      2017-11-16  Steve Baird  <baird@adacore.com>
      
      	* debug.adb: Update another comment to indicate gnat2scil's use of the
      	-gnatd.7 switch.
      
      2017-11-16  Bob Duff  <duff@adacore.com>
      
      	* exp_ch6.adb (Expand_Call_Helper): Avoid creating a transient scope in
      	the case of nested build-in-place calls.
      
      From-SVN: r254827
      Pierre-Marie de Rodat committed
    • [multiple changes] · c82387cc
      2017-11-16  Joel Brobecker  <brobecker@adacore.com>
      
      	* doc/gnat_ugn/gnat_utility_programs.rst: Document the switches
      	available in gnatsymbolize.
      
      2017-11-16  Steve Baird  <baird@adacore.com>
      
      	* debug.adb: Update comment to indicate gnat2scil's use of the -gnatd.7
      	switch.
      
      From-SVN: r254826
      Pierre-Marie de Rodat committed
    • [multiple changes] · a3f9da70
      2017-11-16  Gary Dismukes  <dismukes@adacore.com>
      
      	* doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, sem_ch6.adb,
      	sem_elab.adb: Minor editorial corrections.
      	* gnat_ugn.texi: Regenerate.
      
      2017-11-16  Joel Brobecker  <brobecker@adacore.com>
      
      	* doc/gnat_ugn/gnat_utility_programs.rst (GNAT UGN): Add
      	gnatsymbolize documentation.
      	* gnat_ugn.texi: Regenerate.
      
      2017-11-16  Steve Baird  <baird@adacore.com>
      
      	* sem_ch3.adb (Build_Derived_Record_Type): Replace all uses of
      	"Scope (Parent_Type)" with "Scope (Parent_Base)".
      
      From-SVN: r254825
      Pierre-Marie de Rodat committed
    • [PATCH] New lang hook · 5f3682ff
      https://gcc.gnu.org/ml/gcc-patches/2017-11/msg01340.html
      	PR c++/82836
      	PR c++/82737
      	* tree.h (COPY_DECL_RTL): Rename parms for clarity.
      	(SET_DECL_ASSEMBLER_NAME): Forward to
      	overwrite_decl_assembler_name.
      	(COPY_DECL_ASSEMBLER_NAME): Rename parms for clarity.
      	(overwrite_decl_assembler_name): Declare.
      	* tree.c (overwrite_decl_assembler_name): New.
      	* langhooks-def.h (lhd_overwrite_decl_assembler_name): Declare.
      	(LANG_HOOKS_OVERWRITE_DECL_ASSEMBLER_NAME): Provide default.
      	(LANG_HOOKS_INITIALIZER): Add it.
      	* langhooks.h (struct lang_hooks): Add overwrite_decl_assembler_name.
      	* langhooks.c (lhd_set_decl_assembler_name): Use
      	SET_DECL_ASSEMBLER_NAME.
      	(lhd_overwrite_decl_assembler_name): Default implementation.
      
      	PR c++/82836
      	PR c++/82737
      	* cp-objcp-common.h (LANG_HOOKS_OVERWRITE_DECL_ASSEMBLER_NAME):
      	Override.
      	* cp-tree.h (overwrite_mangling): Declare.
      	* decl2.c (struct mangled_decl_hash): Entries are deletable.
      	(overwrite_mangling): New.
      
      	PR c++/82836
      	PR c++/82737
      	* g++.dg/pr82836.C: New.
      
      From-SVN: r254823
      Nathan Sidwell committed
    • Add noexcept to std::shared_future copy operations (LWG DR 2799) · a930324d
      	* include/std/future (shared_future): Add noexcept to copy constructor
      	and copy-assignment operator (LWG 2799).
      
      From-SVN: r254821
      Jonathan Wakely committed
    • [BRIG] added documentation in gccbrig.texi · 6748a40f
      From-SVN: r254820
      Pekka Jääskeläinen committed
    • opt.ads: Elaboration warnings are now on by default. · 7fb62ca1
      2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* opt.ads: Elaboration warnings are now on by default. Add a comment
      	explaining why this is needed.
      	* sem_ch9.adb (Analyze_Requeue): Preserve the status of elaboration
      	warnings.
      	* sem_ch12.adb (Analyze_Package_Instantiation): Preserve the status of
      	elaboration warnings.
      	(Analyze_Subprogram_Instantiation): Preserve the status of elaboration
      	warnings.
      	* sem_elab.adb: Update the structure of Call_Attributes and
      	Instantiation_Attributes.
      	(Build_Call_Marker): Propagate the status of elaboration warnings from
      	the call to the marker.
      	(Extract_Call_Attributes): Extract the status of elaboration warnings.
      	(Extract_Instantiation_Attributes): Extract the status of elaboration
      	warnings.
      	(Process_Conditional_ABE_Activation_Impl): Elaboration diagnostics are
      	now dependent on the status of elaboration warnings.
      	(Process_Conditional_ABE_Call_Ada): Elaboration diagnostics are now
      	dependent on the status of elaboration warnings.
      	(Process_Conditional_ABE_Instantiation_Ada): Elaboration diagnostics
      	are now dependent on the status of elaboration warnings.
      	(Process_Guaranteed_ABE_Activation_Impl): Remove pragma Unreferenced
      	for formal Call_Attrs. Elaboration diagnostics are now dependent on the
      	status of elaboration warnings.
      	(Process_Guaranteed_ABE_Call): Elaboration diagnostics are now
      	dependent on the status of elaboration warnings.
      	(Process_Guaranteed_ABE_Instantiation): Elaboration diagnostics are now
      	dependent on the status of elaboration warnings.
      	* sem_prag.adb (Analyze_Pragma): Remove the unjustified warning
      	concerning pragma Elaborate.
      	* sem_res.adb (Resolve_Call): Preserve the status of elaboration
      	warnings.
      	(Resolve_Entry_Call): Propagate flag Is_Elaboration_Warnings_OK_Node
      	from the procedure call to the entry call.
      	* sem_util.adb (Mark_Elaboration_Attributes): Add formal parameter
      	Warnings.
      	(Mark_Elaboration_Attributes_Node): Preserve the status of elaboration
      	warnings
      	* sem_util.ads (Mark_Elaboration_Attributes): Add formal parameter
      	Warnings. Update the comment on usage.
      	* sinfo.adb (Is_Dispatching_Call): Update to use Flag6.
      	(Is_Elaboration_Warnings_OK_Node): New routine.
      	(Set_Is_Dispatching_Call): Update to use Flag6.
      	(Set_Is_Elaboration_Warnings_OK_Node): New routine.
      	* sinfo.ads: Attribute Is_Dispatching_Call now uses Flag6. Add new
      	attribute Is_Elaboration_Warnings_OK_Node along with occurrences
      	in nodes.
      	(Is_Elaboration_Warnings_OK_Node): New routine along with pragma
      	Inline.
      	(Set_Is_Elaboration_Warnings_OK_Node): New routine along with pragma
      	Inline.
      	* doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update various
      	sections to indicate how to suppress elaboration warnings.  Document
      	switches -gnatwl and -gnatwL.
      	* gnat_ugn.texi: Regenerate.
      
      From-SVN: r254819
      Hristian Kirtchev committed
    • [multiple changes] · 403bc026
      2017-11-16  Sylvain Dailler  <dailler@adacore.com>
      
      	* sem_util.adb (Get_Enum_Lit_From_Pos): Add a condition for Pos
      	lower than 0.
      
      2017-11-16  Bob Duff  <duff@adacore.com>
      
      	* sem_ch13.adb (Check_Expr_Constants): Avoid error message in case of
      	System'To_Address.
      
      From-SVN: r254818
      Pierre-Marie de Rodat committed
    • [PR c++/81060] ICE with invalid initialzer via lambda · c757ad4c
      https://gcc.gnu.org/ml/gcc-patches/2017-11/msg01323.html
      	PR c++/81060
      	* decl.c (xref_tag_1): Push lambda into current scope.
      	* name-lookup.c (do_pushtag): Don't deal with ts_lambda here.
      
      	PR c++81060
      	* g++.dg/cpp0x/lambda/lambda-template13.C: Avoid undefined
      	template using local type error.
      	* g++.dg/cpp0x/pr81060.C: New.
      
      From-SVN: r254817
      Nathan Sidwell committed
    • Canonicalize constant multiplies in division · 81825e28
      This patch implements some of the optimizations discussed in
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71026.
      
      Canonicalize x / (C1 * y) into (x * C2) / y.
      
      This moves constant multiplies out of the RHS of a division in order
      to allow further simplifications (such as (C1 * x) / (C2 * y) ->
      (C3 * x) / y) and to enable more reciprocal CSEs.
      
      2017-11-16  Wilco Dijkstra  <wdijkstr@arm.com>
      	    Jackson Woodruff  <jackson.woodruff@arm.com>
      
          gcc/
      	PR tree-optimization/71026
      	* match.pd: Canonicalize constant multiplies in division.
      
          gcc/testsuite/
      	PR tree-optimization/71026
      	* gcc.dg/cse_recip.c: New test.
      
      Co-Authored-By: Jackson Woodruff <jackson.woodruff@arm.com>
      
      From-SVN: r254816
      Wilco Dijkstra committed
    • Set default to -fomit-frame-pointer · efeee67f
      Almost all targets add an explict -fomit-frame-pointer in the target specific
      options.  Rather than doing this in a target-specific way, do this in the
      generic options so it works identically across all targets.  In many cases the
      target no longer needs to define TARGET_OPTION_OPTIMIZATION_TABLE, reducing
      the amount of target code.
      
          gcc/
      	* opts.c (default_options_table): Add OPT_fomit_frame_pointer entry.
      	* common/config/alpha/alpha-common.c (TARGET_OPTION_OPTIMIZATION_TABLE):
       	Remove OPT_fomit_frame_pointer entry.
      	* common/config/arc/arc-common.c: Likewise.
      	* common/config/arm/arm-common.c: Likewise.
      	* common/config/avr/avr-common.c: Likewise.
      	* common/config/c6x/c6x-common.c: Likewise.
      	* common/config/cr16/cr16-common.c: Likewise.
      	* common/config/cris/cris-common.c: Likewise.
      	* common/config/epiphany/epiphany-common.c: Likewise.
      	* common/config/fr30/fr30-common.c: Likewise.
      	* common/config/frv/frv-common.c: Likewise.
      	* common/config/ia64/ia64-common.c: Likewise.
      	* common/config/iq2000/iq2000-common.c: Likewise.
      	* common/config/lm32/lm32-common.c: Likewise.
      	* common/config/m32r/m32r-common.c: Likewise.
      	* common/config/mcore/mcore-common.c: Likewise.
      	* common/config/microblaze/microblaze-common.c: Likewise.
      	* common/config/mips/mips-common.c: Likewise.
      	* common/config/mmix/mmix-common.c: Likewise.
      	* common/config/mn10300/mn10300-common.c: Likewise.
      	* common/config/nios2/nios2-common.c: Likewise.
      	* common/config/pa/pa-common.c: Likewise.
      	* common/config/pdp11/pdp11-common.c: Likewise.
      	* common/config/powerpcspe/powerpcspe-common.c: Likewise.
      	* common/config/riscv/riscv-common.c: Likewise.
      	* common/config/rs6000/rs6000-common.c: Likewise.
      	* common/config/rx/rx-common.c: Likewise.
      	* common/config/s390/s390-common.c: Likewise.
      	* common/config/sh/sh-common.c: Likewise.
      	* common/config/sparc/sparc-common.c: Likewise.
      	* common/config/tilegx/tilegx-common.c: Likewise.
      	* common/config/tilepro/tilepro-common.c: Likewise.
      	* common/config/v850/v850-common.c: Likewise.
      	* common/config/visium/visium-common.c: Likewise.
      	* common/config/xstormy16/xstormy16-common.c: Likewise.
      	* common/config/xtensa/xtensa-common.c: Likewise.
      
          doc/
      	* invoke.texi (-fomit-frame-pointer): Update documentation.
      
      From-SVN: r254815
      Wilco Dijkstra committed
    • [AArch64] Fix frame tests · 9e780144
      Improve the AArch64 frame tests - add -f(no-)omit-frame-pointer,
      update checks and add missing tests.  As a result all tests now
      pass. 
      
          gcc/testsuite/
      	* gcc.target/aarch64/lr_free_2.c: Fix test.
      	* gcc.target/aarch64/spill_1.c: Likewise.
      	* gcc.target/aarch64/test_frame_11.c: Likewise.
      	* gcc.target/aarch64/test_frame_12.c: Likewise.
      	* gcc.target/aarch64/test_frame_13.c: Likewise.
      	* gcc.target/aarch64/test_frame_14.c: Likewise.
      	* gcc.target/aarch64/test_frame_15.c: Likewise.
      	* gcc.target/aarch64/test_frame_3.c: Likewise.
      	* gcc.target/aarch64/test_frame_5.c: Likewise.
      	* gcc.target/aarch64/test_frame_9.c: Likewise.
      
      From-SVN: r254814
      Wilco Dijkstra committed
    • * tree-cfg.c (gimple_find_sub_bbs): Do not compute freq. · 8e43e9cd
      From-SVN: r254813
      Jan Hubicka committed
    • cfg.c (scale_bbs_frequencies_int, [...]): Remove. · 62003be5
      
      	* cfg.c (scale_bbs_frequencies_int,
      	cale_bbs_frequencies_gcov_type): Remove.
      	* cfg.h (scale_bbs_frequencies_int,
      	cale_bbs_frequencies_gcov_type): Remove.
      
      From-SVN: r254812
      Jan Hubicka committed
    • * tree-ssa-loop-manip.c · 2a006669
      	(scale_dominated_blocks_in_loop): Update to profile counts.
      	(tree_transform_and_unroll_loop): Likewise.
      
      From-SVN: r254811
      Jan Hubicka committed
    • tree-vect-loop-manip.c (vect_do_peeling): Do not use scale_bbs_frequencies_int. · 00fa28d1
      
      	* tree-vect-loop-manip.c (vect_do_peeling): Do not use
      	scale_bbs_frequencies_int.
      
      From-SVN: r254810
      Jan Hubicka committed
    • re PR c++/70383 (Bogus error when attempting to capture a reference to function by copy) · debc8f4a
      2017-11-16  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/70383
      	* g++.dg/cpp0x/lambda/lambda-70383.C: New.
      
      From-SVN: r254808
      Paolo Carlini committed
    • cfgloopanal.c: Include sreal.h · 692dc070
      	* cfgloopanal.c: Include sreal.h
      	(average_num_loop_insns): Use counts and sreal for accounting.
      
      From-SVN: r254807
      Jan Hubicka committed
    • cfgloopmanip.c (duplicate_loop_to_header_edge): Cleanup profile manipulation. · e7b655e8
      	* cfgloopmanip.c (duplicate_loop_to_header_edge): Cleanup profile
      	manipulation.
      
      From-SVN: r254806
      Jan Hubicka committed
    • [multiple changes] · 1554ed7e
      2017-11-16  Yannick Moy  <moy@adacore.com>
      
      	* sem_elab.adb (Include): Fix mode of parameter Curr to out.
      
      2017-11-16  Piotr Trojanek  <trojanek@adacore.com>
      
      	* sem_util.ads, sem_util.adb (Is_CCT_Instance): Allow calls where
      	Context_Id denotes a record type.
      
      2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch8.adb (Check_SPARK_Primitive_Operation): Enable the check in
      	instantiations.
      
      2017-11-16  Doug Rupp  <rupp@adacore.com>
      
      	Initial gnat port to aarch64-wrs-vxworks7
      	* libgnarl/s-vxwork__aarch64.ads,
      	libgnat/system-vxworks7-aarch64-rtp-smp.ads,
      	libgnat/system-vxworks7-aarch64.ads: New files
      	* sigtramp-vxworks-target.inc (aarch64): New section.
      	* tracebak.c (USE_ARM_UNWINDING): Disable for ARMARCH8A.
      
      From-SVN: r254805
      Pierre-Marie de Rodat committed
    • [multiple changes] · 19c6e49c
      2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_elab.adb (Include): Including a node which is also a compilation
      	unit terminates the search because there are no more lists to examine.
      
      2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch8.adb (Analyze_Subprogram_Renaming): Ensure that a renaming
      	declaration does not define a primitive operation of a tagged type for
      	SPARK.
      	(Check_SPARK_Primitive_Operation): New routine.
      
      2017-11-16  Arnaud Charlet  <charlet@adacore.com>
      
      	* libgnat/a-elchha.adb (Last_Chance_Handler): Display Argv (0) in
      	message when using -E binder switch.
      
      2017-11-16  Piotr Trojanek  <trojanek@adacore.com>
      
      	* errout.ads: Fix minor typo in comment.
      
      From-SVN: r254804
      Pierre-Marie de Rodat committed
    • [multiple changes] · 6361db43
      2017-11-16  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Process_Subtype): If the subtype indication does not
      	syntactically denote a type, return Any_Type to prevent subsequent
      	compiler crashes or infinite loops.
      
      2017-11-16  Steve Baird  <baird@adacore.com>
      
      	* lib-writ.adb: Fix bug which causes Program_Error to be raised in some
      	cases when writing out a .ali file when a Rename_Pragma pragma is in
      	effect.
      	* lib-writ.adb (Write_Unit_Information): Replace call to
      	Pragma_Name_Unmapped with call to Pragma_Name.
      
      2017-11-16  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_elab.adb: Minor typo fixes.
      
      2017-11-16  Justin Squirek  <squirek@adacore.com>
      
      	* sem_res.adb (Resolve_Allocator): Correct warning messages and make
      	them more explicit.
      
      From-SVN: r254803
      Pierre-Marie de Rodat committed
    • [multiple changes] · 8dce7371
      2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* atree.ads (Nkind_In): Add 10 and 11 parameter versions.
      	* checks.adb (Install_Primitive_Elaboration_Check): Mark the setting of
      	the elaboration flag as elaboration code.
      	* einfo.adb (Contract): Update the comments.
      	(Ignore_SPARK_Mode_Pragmas): Update the comments.
      	(SPARK_Aux_Pragma): Update the comments.
      	(SPARK_Aux_Pragma_Inherited): Update the comments.
      	(SPARK_Pragma): Update the comments. The attribute now applies
      	to all types and abstract states.
      	(SPARK_Pragma_Inherited): Update the comments. The attribute now
      	applies to all types and abstract states.
      	(Set_Contract): Update the comments.
      	(Set_Ignore_SPARK_Mode_Pragmas): Update the comments.
      	(Set_SPARK_Aux_Pragma): Update the comments.
      	(Set_SPARK_Aux_Pragma_Inherited): Update the comments.
      	(Set_SPARK_Pragma): Update the comments. The attribute now applies to
      	all types and abstract states.
      	(Set_SPARK_Pragma_Inherited): Update the comments. The attribute now
      	applies to all types and abstract states.
      	(Write_Field40_Name): Add output for SPARK_Pragma when it appears on a
      	type and abstract states.
      	* einfo.ads: Update the documentation of attributes SPARK_Pragma and
      	SPARK_Pragma_Inherited.  Both of them now apply to all types and
      	abstract states.
      	* exp_util.adb (Set_Elaboration_Flag): Mark the setting of the
      	elaboration flag as elaboration code.
      	* sem_ch3.adb: Add with and use clauses for Sem_Elab.
      	(Analyze_Full_Type_Declaration): Set the SPARK_Mode of the type. Record
      	a derived type for later processing by the ABE mechanism.
      	(Analyze_Incomplete_Type_Decl): Set the SPARK_Mode of the type.
      	(Analyze_Private_Extension_Declaration): Set the SPARK_Mode of the
      	type.
      	* sem_ch7.adb (Analyze_Private_Type_Declaration): Set the SPARK_Mode of
      	the type.
      	* sem_elab.adb: Define the term "early call region".  Update the
      	terminology for "scenario" and "target".  Update the architecture of
      	the ABE mechanism.  Update the steps which must be taken when adding a
      	new scenario.  Update the section on debugging ABE issues.  Add new
      	hash tables Early_Call_Regions and Recorded_SPARK_Scenarios.  Add new
      	table SPARK_Scenarios.  Hash table Elaboration_Context is now
      	Elaboration_Statuses.  The majority of Process_xxx routines have been
      	updated to better reflect their role.
      	(Add_Unit): Reimplemented.
      	(Check_Elaboration_Constituent): New routine.
      	(Check_Elaboration_Scenarios): Verify previously recorded scenarios for
      	conditional ABE issues. Verify previously recorded SPARK scenarios.
      	(Check_SPARK_Derived_Type): New routine.
      	(Check_SPARK_Instantiation): New routine.
      	(Check_SPARK_Scenario): New routine.
      	(Check_SPARK_Refined_State_Pragma): New routine.
      	(Early_Call_Region): New routine.
      	(Elaboration_Status): New routine.
      	(Ensure_Prior_Elaboration): Add new formal parameter Prag_Nam. The
      	implicit Elabotate[_All] pragma is now specified via Prag_Nam.
      	(Find_Early_Call_Region): New routine.
      	(Info_Scenario): Add output for refinement constituents.
      	(Is_Recorded_SPARK_Scenario): New routine.
      	(Is_Suitable_SPARK_Derived_Type): New routine.
      	(Is_Suitable_SPARK_Instantiation): New routine.
      	(Is_Suitable_SPARK_Refined_State_Pragma): New routine.
      	(Is_Visited_Body): New routine.
      	(Kill_Elaboration_Scenario): Reimplemented.
      	(Output_Active_Scenarios): Add output for pragma Refined_State.
      	(Output_SPARK_Refined_State_Pragma): New routine.
      	(Process_Conditional_ABE_Call): Remove the use of -gnatd.v. The effect
      	is now achieved by different means.
      	(Process_Conditional_ABE_Call_SPARK): Verify that a call which precedes
      	the subprogram body appears within the early call region of the body.
      	Either ensure the prior elaboration of external subprograms or verify
      	that the context meets the suitable elaboration requirement.
      	(Process_Conditional_ABE_Instantiation_SPARK): New routine.
      	(Record_Elaboration_Scenario): Reimplement the portion which enforces
      	the level restrictions of the static model. Add support for SPARK
      	scenarios.
      	(Record_SPARK_Elaboration_Scenario): New routine.
      	(Reset_Visited_Bodies): New routine.
      	(Set_Early_Call_Region): New routine.
      	(Set_Elaboration_Status): New routine.
      	(Set_Is_Recorded_SPARK_Scenario): New routine.
      	(Update_Elaboration_Scenario): Reimplemented.
      	* sem_elab.ads: Add new subtype Library_Or_Instantiation_Level.
      	* sem_prag.adb (Analyze_Refined_State_In_Decl_Part): Save the pragma
      	for examination by the ABE Processing phase.
      	(Create_Abstract_State): Save the SPARK_Mode from the context.
      	* sem_util.adb (Is_Non_Preelaborable_Construct): New routine.
      	* sem_util.ads (Is_Non_Preelaborable_Construct): New routine.
      	* sinfo.adb (Is_Elaboration_Code): New routine.
      	(Set_Is_Elaboration_Code): New routine.
      	(Nkind_In): Add 10 and 11 parameter versions.
      	* sinfo.ads: Add new attribute Is_Elaboration_Code along with
      	occurrences in nodes.
      	(Is_Elaboration_Code): New routine along with pragma Inline.
      	(Set_Is_Elaboration_Code): New routine along with pragma Inline.
      	(Nkind_In): Add 10 and 11 parameter versions.
      
      2017-11-16  Justin Squirek  <squirek@adacore.com>
      
      	* sem.adb (Analyze): Remove requirement that the original node of N be
      	an operator in the case that analysis on the node yields the relevant
      	operator - so prefer it instead.
      
      From-SVN: r254802
      Pierre-Marie de Rodat committed
    • sem_ch6.adb (Create_Extra_Formals): The type of the BIP_Object_Access formal… · d00301ec
      sem_ch6.adb (Create_Extra_Formals): The type of the BIP_Object_Access formal must not have a designated type that...
      
      2017-11-16  Bob Duff  <duff@adacore.com>
      
      	* sem_ch6.adb (Create_Extra_Formals): The type of the BIP_Object_Access
      	formal must not have a designated type that is the full view coming
      	from a limited-with'ed package.
      	* sem_util.adb,sem_util.ads (Incomplete_View_From_Limited_With): New
      	function called from sem_ch6.
      	* sem_ch5.adb (Analyze_Assignment): Treat user-defined concatenation
      	specially for b-i-p cases.
      
      From-SVN: r254801
      Bob Duff committed
    • Provide more constraints for future use. · 36f28760
      gcc/
      	* config/nds32/constraints.md: Provide more constraints.
      	* config/nds32/nds32.h (enum reg_class, REG_CLASS_NAMES,
      	REG_CLASS_CONTENTS): Define R5_REG, R8_REG, and FRAME_POINTER_REG to
      	support constraints usage.
      
      Co-Authored-By: Kito Cheng <kito.cheng@gmail.com>
      
      From-SVN: r254800
      Chung-Ju Wu committed
    • Remove the useless constant UNSPEC_VOLATILE_FUNC_RETURN. · f968dc67
      gcc/
      	* config/nds32/constants.md (UNSPEC_VOLATILE_FUNC_RETURN): Remove.
      
      From-SVN: r254799
      Chung-Ju Wu committed