1. 06 Jan, 2017 40 commits
    • [ARM] Implement support for ACLE Coprocessor LDC and STC intrinsics · 3811581f
      gcc/ChangeLog:
      2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* config/arm/arm.md (*ldc): New.
      	(*stc): New.
      	(<ldc>): New.
      	(<stc>): New.
      	* config/arm/arm.c (arm_coproc_builtin_available): Add
      	support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
      	(arm_coproc_ldc_stc_legitimate_address): New.
      	* config/arm/arm-builtins.c (arm_type_qualifiers): Add
      	'qualifier_const_pointer'.
      	(LDC_QUALIFIERS): Define to...
      	(arm_ldc_qualifiers): ... this. New.
      	(STC_QUALIFIERS): Define to...
      	(arm_stc_qualifiers): ... this. New.
      	* config/arm/arm-protos.h
      	(arm_coproc_ldc_stc_legitimate_address): New.
      	* config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
      	__arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
      	* config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
      	stc2, stcl, stc2l): New.
      	* config/arm/constraints.md (Uz): New.
      	* config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
      	* config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
      	VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
      	VUNSPEC_STC2L): New.
      
      gcc/testsuite/ChangeLog:
      2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* gcc.target/arm/acle/ldc: New.
      	* gcc.target/arm/acle/ldc2: New.
      	* gcc.target/arm/acle/ldcl: New.
      	* gcc.target/arm/acle/ldc2l: New.
      	* gcc.target/arm/acle/stc: New.
      	* gcc.target/arm/acle/stc2: New.
      	* gcc.target/arm/acle/stcl: New.
      	* gcc.target/arm/acle/stc2l: New.
      
      From-SVN: r244173
      Andre Vieira committed
    • [ARM] Implement support for ACLE Coprocessor CDP intrinsics · d57daa0c
      gcc/ChangeLog:
      2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* config/arm/arm.md (<cdp>): New.
      	* config/arm/arm.c (neon_const_bounds): Rename this ...
      	(arm_const_bounds): ... this.
      	(arm_coproc_builtin_available): New.
      	* config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
      	(arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
      	(CDP_QUALIFIERS): Define to...
      	(arm_cdp_qualifiers): ... this. New.
      	(void_UP): Define.
      	(arm_expand_builtin_args): Add case for 6 arguments.
      	* config/arm/arm-protos.h (neon_const_bounds): Rename this ...
      	(arm_const_bounds): ... this.
      	(arm_coproc_builtin_available): New.
      	* config/arm/arm_acle.h (__arm_cdp): New.
      	(__arm_cdp2): New.
      	* config/arm/arm_acle_builtins.def (cdp): New.
      	(cdp2): New.
      	* config/arm/iterators.md (CDPI,CDP,cdp): New.
      	* config/arm/neon.md: Rename all 'neon_const_bounds' to
      	'arm_const_bounds'.
      	* config/arm/types.md (coproc): New.
      	* config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
      	* gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
      	* gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
      	arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
      
      gcc/testsuite/ChangeLog:
      2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* gcc.target/arm/acle/acle.exp: Run tests for different options
      	and make sure fat-lto-objects is used such that we can still do
      	assemble scans.
      	* gcc.target/arm/acle/cdp.c: New.
      	* gcc.target/arm/acle/cdp2.c: New.
      	* lib/target-supports.exp (check_effective_target_arm_coproc1_ok): New.
      	(check_effective_target_arm_coproc1_ok_nocache): New.
      	(check_effective_target_arm_coproc2_ok): New.
      	(check_effective_target_arm_coproc2_ok_nocache): New.
      	(check_effective_target_arm_coproc3_ok): New.
      	(check_effective_target_arm_coproc3_ok_nocache): New.
      	(check_effective_target_arm_coproc4_ok): New.
      	(check_effective_target_arm_coproc4_ok_nocache): New.
      
      From-SVN: r244172
      Andre Vieira committed
    • [ARM] Move CRC builtins to refactored framework · 7a2c8e28
      gcc/ChangeLog:
      2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
      	(UBINOP_QUALIFIERS): New.
      	(si_UP): Define.
      	(acle_builtin_data): New. Change comment.
      	(arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
      	ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
      	ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
      	arm_acle_builtins.def.
      	(ARM_BUILTIN_ACLE_PATTERN_START): Define.
      	(arm_init_acle_builtins): New.
      	(CRC32_BUILTIN): Remove.
      	(bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
      	crc32cb, crc32ch and crc32cw.
      	(arm_init_crc32_builtins): Remove.
      	(arm_init_builtins): Use arm_init_acle_builtins rather
      	than arm_init_crc32_builtins.
      	(arm_expand_acle_builtin): New.
      	(arm_expand_builtin): Use 'arm_expand_acle_builtin'.
      	* config/arm/arm_acle_builtins.def: New.
      
      From-SVN: r244171
      Andre Vieira committed
    • [ARM] Refactor NEON builtin framework to work for other builtins · 131e1faa
      gcc/ChangeLog:
      2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
      	(arm_builtin_datum): ... this.
      	(arm_init_neon_builtin): Rename to ...
      	(arm_init_builtin): ... this. Add a new parameters PREFIX
      	and USE_SIG_IN_NAME.
      	(arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
      	'arm_init_builtin'. Replace type 'neon_builtin_datum' with
      	'arm_builtin_datum'.
      	(arm_init_vfp_builtins): Likewise.
      	(builtin_arg): Rename enum's replacing 'NEON_ARG' with
      	'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
      	(arm_expand_neon_args): Rename to ...
      	(arm_expand_builtin_args): ... this. Rename builtin_arg
      	enum values and differentiate between ARG_BUILTIN_MEMORY
      	and ARG_BUILTIN_NEON_MEMORY.
      	(arm_expand_neon_builtin_1): Rename to ...
      	(arm_expand_builtin_1): ... this. Rename builtin_arg enum
      	values, arm_expand_builtin_args and add bool parameter NEON.
      	(arm_expand_neon_builtin): Use arm_expand_builtin_1.
      	(arm_expand_vfp_builtin): Likewise.
      	(NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
      
      From-SVN: r244170
      Andre Vieira committed
    • Check for __cxa_thread_atexit for freebsd crosses · ea4ad78e
      	PR libstdc++/78968
      	* crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
      	* configure: Regenerate.
      
      From-SVN: r244169
      Jonathan Wakely committed
    • Fix changelog entry. · 834a2715
      From-SVN: r244168
      Jan Hubicka committed
    • re PR middle-end/77484 (Static branch predictor causes ~6-8% regression of SPEC2000 GAP) · 350de209
      	PR middle-end/77484
      	* predict.def (PRED_POLYMORPHIC_CALL): Set to 58
      	* predict.c (tree_estimate_probability_bb): Reverse direction of
      	polymorphic call predictor.
      
      From-SVN: r244167
      Jan Hubicka committed
    • runtime: actually remove go-alloc.h · 12e917ff
      Accidentally omitted from the commit of CL 34797 (SVN revision 244036).
      
      From-SVN: r244166
      Ian Lance Taylor committed
    • re PR go/78978 (runtime/pprof FAILs on Solaris 2/x86) · 08934aed
      	PR go/78978
          libgo: build with -Wa,-nH if possible on Solaris
          
          By default the Solaris assembler records the required hardware
          capability in the object file.  This means that the AES hashing code
          breaks on systems that do not support AES, even though the code uses a
          runtime check to only actually invoke the AES instructions on systems
          that support it.  An earlier fix for the problem only fixed the shared
          library, not the static libgo.a.  Fix the problem for real by using an
          assembler option to not record the hardware capability.
          
          For GCC PR 78978.
          
          Patch by Rainer Orth.
          
          Reviewed-on: https://go-review.googlesource.com/34910
      
      From-SVN: r244165
      Ian Lance Taylor committed
    • PR middle-end/78605 - bogus -Wformat-length=1 with %f · 8a123229
      gcc/testsuite/ChangeLog:
      	* gcc.dg/tree-ssa/pr78605.c: New test.
      
      From-SVN: r244164
      Martin Sebor committed
    • Use fold expressions to reduce std::variant instantiation depth · 258ee761
      2017-01-06  Barrett Adair  <barrettellisadair@gmail.com>
      	    Jonathan Wakely  <jwakely@redhat.com>
      
      	* include/std/variant (variant, swap): Replace __and_ usage with fold
      	expressions.
      
      Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
      
      From-SVN: r244163
      Barrett Adair committed
    • Build libgo with -Wa,-nH if possible (PR go/78978) [non-libgo parts] · 1ec62aa9
      	libstdc++-v3:
      	PR go/78978
      	* acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
      	* configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
      	GLIBCXX_CHECK_ASSEMBLER_HWCAP.
      	* fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
      	HWCAP_FLAGS.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* Makefile.in, doc/Makefile.in, include/Makefile.in,
      	libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
      	src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
      	src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
      
      	config:
      	PR go/78978
      	* hwcaps.m4 (GCC_CHECK_ASSEMBLER_HWCAP): New macro.
      
      From-SVN: r244162
      Rainer Orth committed
    • passes.c: split out pass-skipping logic into subroutines · bad86e8d
      gcc/ChangeLog:
      	* passes.c (execute_one_pass): Split out pass-skipping logic
      	into...
      	(determine_pass_name_match): ...this new function and...
      	(should_skip_pass_p): ...this new function.
      
      From-SVN: r244160
      David Malcolm committed
    • lto-partition.c (promote_symbol): Write to dump file sooner, include alias promoting too. · 5406184c
      	* lto-partition.c (promote_symbol): Write to dump file sooner,
      	include alias promoting too.
      
      From-SVN: r244159
      Nathan Sidwell committed
    • ipa-visibility.c (function_and_variable_visibility): Reformat comments and long lines. · 24d3f325
      	gcc/
      	* ipa-visibility.c (function_and_variable_visibility): Reformat
      	comments and long lines.  Remove extrneous if.
      	* symtab.c (symtab_node::make_decl_local): Fix code format.
      	(symtab_node::set_section_for_node): Fix comment typo.
      
      	gcc/lto/
      	* lto-partition.c (lto_balanced_map): Reformat/respell comment.
      	(may_need_named_section_p): Likewise.
      	(rename_statics): Likewise.
      	(lto_promote_cross_file_statics): Likewise.
      
      From-SVN: r244156
      Nathan Sidwell committed
    • Fix lto-bootstrap (PR bootstrap/79003). · eb0f8780
      2017-01-06  Martin Liska  <mliska@suse.cz>
      
      	PR bootstrap/79003
      	* lra-constraints.c: Rename invariant to lra_invariant.
      	* predict.c (set_even_probabilities): Initialize e to NULL.
      2017-01-06  Martin Liska  <mliska@suse.cz>
      
      	PR bootstrap/79003
      	* Makefile.in: Add -fno-lto to {C,CPP,LD}FLAGS.
      
      From-SVN: r244155
      Martin Liska committed
    • [multiple changes] · b41f45e7
      2017-01-06  Bob Duff  <duff@adacore.com>
      
      	* bindgen.adb (Gen_Adainit, Gen_Adafinal): Change
      	"Bind_Main_Program" to "not Bind_For_Library", because otherwise
      	we won't generate the call to s_stalib_adafinal when the main
      	is not written in Ada.
      
      2017-01-06  Bob Duff  <duff@adacore.com>
      
      	* sem_prag.adb: Minor: remove pragma Warnings.
      
      2017-01-06  Tristan Gingold  <gingold@adacore.com>
      
      	* Makefile.rtl: Do not compile s-stchop by default.
      
      From-SVN: r244154
      Arnaud Charlet committed
    • Don't redefine _GLIBCXX_ASSERTIONS if already defined · 8b790281
      	* include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
      
      From-SVN: r244151
      Jonathan Wakely committed
    • PR78991 make __gnu_cxx::__ops constructors explicit · 6807f086
      	PR libstdc++/78991
      	* include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
      	(_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
      	(_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
      	move function objects.
      	(__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
      	(__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
      	* testsuite/25_algorithms/sort/78991.cc: New test.
      
      From-SVN: r244150
      Jonathan Wakely committed
    • Minor reformatting. · 88456bc1
      From-SVN: r244149
      Arnaud Charlet committed
    • aspects.adb, [...]: Reverted previous change for now. · eae66578
      2017-01-06  Patrick Bernardi  <bernardi@adacore.com>
      
      	* aspects.adb, aspects.ads, exp_ch3.adb, exp_ch9.adb, par-prag.adb,
      	sem_ch13.adb, sem_prag.adb, sem_prag.ads, snames.adb-tmpl,
      	snames.ads-tmpl, s-secsta.adb, s-secsta.ads, s-tarest.adb,
      	s-tarest.ads, s-taskin.adb, s-taskin.ads, s-tassta.adb, s-tassta.ads:
      	Reverted previous change for now.
      
      From-SVN: r244148
      Patrick Bernardi committed
    • exp_ch3.adb (Build_Initialization_Call): Apply predicate check to default… · e666e744
      exp_ch3.adb (Build_Initialization_Call): Apply predicate check to default discriminant value if checks are enabled.
      
      2017-01-06  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch3.adb (Build_Initialization_Call): Apply predicate
      	check to default discriminant value if checks are enabled.
      	(Build_Assignment): If type of component has static predicate,
      	apply check to its default value, if any.
      
      From-SVN: r244147
      Ed Schonberg committed
    • aspect.adb, aspect.ads: Added new aspect Secondary_Stack_Size. · 73bfca78
      2017-01-06  Patrick Bernardi  <bernardi@adacore.com>
      
      	* aspect.adb, aspect.ads: Added new aspect Secondary_Stack_Size.
      	* exp_ch3.adb (Build_Init_Statements): As part of initialising
      	the value record of a task, set its _Secondary_Stack_Size field
      	if present.
      	* exp_ch9.adb (Expand_N_Task_Type_Declaration): Create
      	a _Secondary_Stack_Size field in the value record of
      	the task if a Secondary_Stack_Size rep item is present.
      	(Make_Task_Create_Call): Include secondary stack size
      	parameter. If No_Secondary_Stack restriction is in place, passes
      	stack size of 0.
      	* par-prag.adb, sem_prag.adb, sem_prag.ads: Added new pragma
      	Secondary_Stack_Size.
      	* s-secsta.adb, s-secsta.ads (Minimum_Secondary_Stack_Size): New
      	function to define the overhead of the secondary stack.
      	* s-tarest.adb (Create_Restricted_Task,
      	Create_Restricted_Task_Sequential): Functions now include
      	Secondary_Stack_Size parameter to pass to Initialize_ATCB.
      	* s-tarest.adb (Create_Restricted_Task,
      	Create_Restricted_Task_Sequential): Calls to Initialize_ATCB
      	now include Secondary_Stack_Size parameter.
      	(Task_Wrapper):
      	Secondary stack now allocated to the size specified by the
      	Secondary_Stack_Size parameter in the task's ATCB.
      	* s-taskin.adb, s-taskin.adb (Common_ATCB, Initialise_ATCB): New
      	Secondary_Stack_Size component.
      	* s-tassta.adb, s-tassta.ads (Create_Restricted_Task,
      	Create_Restricted_Task_Sequential): Function now include
      	Secondary_Stack_Size parameter.
      	(Task_Wrapper): Secondary stack
      	now allocated to the size specified by the Secondary_Stack_Size
      	parameter in the task's ATCB.
      	* sem_ch13.adb (Analyze_Aspect_Specification): Add support
      	for Secondary_Stack_Size aspect, turning the aspect into its
      	corresponding internal attribute.
      	(Analyze_Attribute_Definition):
      	Process Secondary_Stack_Size attribute.
      	* snames.adb-tmpl, snames.ads-tmpl: Added names
      	Name_Secondary_Stack_Size, Name_uSecondary_Stack_Size,
      	Attribute_Secondary_Stack_Size and Pragma_Secondary_Stack_Size.
      
      From-SVN: r244146
      Patrick Bernardi committed
    • a-direio.adb, [...]: Add Flush to Sequential_IO and Direct_IO. · f6c5454e
      2017-01-06  Pascal Obry  <obry@adacore.com>
      
      	* a-direio.adb, a-direio.ads, a-sequio.adb, a-sequio.ads: Add Flush to
      	Sequential_IO and Direct_IO.
      
      From-SVN: r244145
      Pascal Obry committed
    • snames.ads-tmpl (Renamed): New name for the pragma argument. · 533e3abc
      2017-01-06  Bob Duff  <duff@adacore.com>
      
      	* snames.ads-tmpl (Renamed): New name for the pragma argument.
      	* par-ch2.adb: Allow the new pragma (with analysis deferred
      	to Sem_Prag).
      	* sinfo.ads, sinfo.adb (Map_Pragma_Name, Pragma_Name_Mapped):
      	Keep a mapping from new pragma names to old names.
      	* sem_prag.adb: Check legality of pragma Rename_Pragma, and
      	implement it by calling Map_Pragma_Name.
      	* checks.adb, contracts.adb, einfo.adb, errout.adb,
      	* exp_attr.adb, exp_ch3.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
      	* exp_prag.adb, exp_util.adb, freeze.adb, frontend.adb, ghost.adb,
      	* inline.adb, lib-writ.adb, scans.adb, scans.ads, sem_attr.adb,
      	* sem_aux.adb, sem_ch10.adb, sem_ch13.adb, sem_ch6.adb, sem_ch9.adb,
      	* sem_elab.adb, sem_res.adb, sem_util.adb, sem_util.ads,
      	* sem_warn.adb: Call Pragma_Name_Mapped instead of Pragma_Name
      	as appropriate.
      
      From-SVN: r244144
      Bob Duff committed
    • exp_ch9.adb: Minor reformatting. · a62e6287
      2017-01-06  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch9.adb: Minor reformatting.
      
      From-SVN: r244143
      Hristian Kirtchev committed
    • exp_ch9.ads, [...] (Build_Entry_Names): Remove (unused). · dbf2a2d3
      2017-01-06  Tristan Gingold  <gingold@adacore.com>
      
      	* exp_ch9.ads, exp_ch9.adb (Build_Entry_Names): Remove (unused).
      	* rtsfind.ads (RE_Task_Entry_Names_Array, RO_ST_Set_Entry_Names)
      	(RE_Protected_Entry_Names_Array, RO_PE_Set_Entry_Names): Remove
      	(unused).
      	* s-taskin.ads, s-taskin.adb (Set_Entry_Names,
      	Task_Entry_Names_Array, Task_Entry_Names_Access): Remove.
      	* s-tpoben.ads, s-tpoben.adb (Set_Entry_Names,
      	Protected_Entry_Names_Array, Protected_Entry_Names_Access): Remove.
      
      From-SVN: r244142
      Tristan Gingold committed
    • [multiple changes] · 0789ef6f
      2017-01-06  Bob Duff  <duff@adacore.com>
      
      	* sinfo.ads, sinfo.adb (Map_Pragma_Name): Preparation work,
      	dummy implementation of Map_Pragma_Name.
      
      2017-01-06  Tristan Gingold  <gingold@adacore.com>
      
      	* exp_ch9.adb (Expand_N_Protected_Type_Declaration): Make the
      	entry_body variable constant.
      	* s-taprob.ads (Entry_Body_Access): Move to s-tposen.
      	* s-tpoben.ads (Protected_Entry_Body_Access): Now access
      	to constant.
      	* s-tposen.ads (Entry_Body_Access): Moved from s-taprob,
      	now access to constant.
      
      From-SVN: r244141
      Arnaud Charlet committed
    • [multiple changes] · ffa168bc
      2017-01-06  Gary Dismukes  <dismukes@adacore.com>
      
      	* einfo.ads, sem_res.adb, sem_attr.adb, sem_ch6.adb: Minor
      	reformatting and typo fixes.
      
      2017-01-06  Bob Duff  <duff@adacore.com>
      
      	* snames.ads-tmpl: New names for pragma renaming.
      	* snames.adb-tmpl (Is_Configuration_Pragma_Name): Minor cleanup.
      	* par-prag.adb: Add new pragma name to case statement.
      	* sem_prag.adb (Rename_Pragma): Initial cut at semantic analysis
      	of the pragma.
      	* sinfo.ads, sinfo.adb (Pragma_Name_Mapped): Preparation work,
      	Dummy implementation of Pragma_Name_Mapped.
      
      From-SVN: r244140
      Arnaud Charlet committed
    • exp_ch6.adb (Expand_Protected_Subprogram_Call): Add guard to better detect call… · 9ca67d3f
      exp_ch6.adb (Expand_Protected_Subprogram_Call): Add guard to better detect call within an entry_wrapper.
      
      2017-01-06  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch6.adb (Expand_Protected_Subprogram_Call): Add guard to
      	better detect call within an entry_wrapper.
      	* sem_res.adb (Resolve_Call): A protected call within an
      	entity_wrapper is analyzed in the context of the protected
      	object but corresponds to a pre-analysis and is not an access
      	before elaboration.
      	* sem_attr.adb: Minor reformatting.
      
      From-SVN: r244139
      Ed Schonberg committed
    • [multiple changes] · 5e127570
      2017-01-06  Justin Squirek  <squirek@adacore.com>
      
      	* sem_attr.adb (Analyze_Attribute): Modify semantic checks for
      	Finalization_Size to allow a prefix of any non-class-wide type.
      	* sem_attr.ads Modify comment for Finalization_Size to include
      	definite type use case.
      
      2017-01-06  Ed Schonberg  <schonberg@adacore.com>
      
      	* einfo.ads, einfo.adb (Is_Entry_Wrapper): New flag, defined
      	on procedures that are wrappers created for entries that have
      	preconditions.
      	* sem_ch6.adb (Analyze_Subrogram_Body_Helper): If the subprogram
      	body is an entry_wrapper, compile it in the context of the
      	synchronized type, because a precondition may refer to funtions
      	of the type.
      	* exp_ch9.adb (Build_Contract_Wrapper): Set Is_Entry_Wrapper on
      	body entity.
      	* exp_ch6.adb (Expand_Protected_Subprogram_Call): if the call is
      	within an Entry_Wrapper this is an external call whose target
      	is the synchronized object that is the actual in the call to
      	the wrapper.
      
      From-SVN: r244138
      Arnaud Charlet committed
    • [multiple changes] · 50145b93
      2017-01-06  Yannick Moy  <moy@adacore.com>
      
      	* sem_attr.adb (Analyze_Attribute/Attribute_Loop_Entry): Analyze node
      	in tree, which means not analyzing the previous prefix if the node has
      	been rewritten into its prefix.
      
      2017-01-06  Gary Dismukes  <dismukes@adacore.com>
      
      	* s-tpobop.adb: Minor reformatting.
      
      From-SVN: r244137
      Arnaud Charlet committed
    • [multiple changes] · 229fa5db
      2017-01-06  Ed Schonberg  <schonberg@adacore.com>
      
      	* checks.adb (Ensure_Valid): Do not generate a validity check
      	within a generated predicate function, validity checks will have
      	been applied earlier when required.
      
      2017-01-06  Tristan Gingold  <gingold@adacore.com>
      
      	* s-tpoben.ads (Protection_Entries): Add comment and reorder
      	components for performances.
      	* s-tpobop.adb (PO_Do_Or_Queue): Implement Max_Queue_Length runtime
      	semantic.
      
      From-SVN: r244136
      Arnaud Charlet committed
    • [multiple changes] · d9c59db4
      2017-01-06  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_eval.adb (Check_Expression_Against_Static_Predicate):
      	If expression is compile-time known and obeys a static predicate
      	it must be labelled as static, to prevent spurious warnings and
      	run-time errors, e.g. in case statements. This is relevant when
      	the expression is the result of constant-folding a type conversion
      	whose expression is a variable with a known static value.
      
      2017-01-06  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_attr.adb, sem_attr.ads: Minor reformatting.
      
      From-SVN: r244135
      Arnaud Charlet committed
    • exp_attr.adb (Expand_N_Attribute_Reference): Add entry for expansion of… · f68d3344
      exp_attr.adb (Expand_N_Attribute_Reference): Add entry for expansion of Finalization_Size attribute.
      
      2017-01-06  Justin Squirek  <squirek@adacore.com>
      
      	* exp_attr.adb (Expand_N_Attribute_Reference): Add entry for
      	expansion of Finalization_Size attribute.
      	* sem_attr.adb (Analyze_Attribute): Add entry to check the
      	semantics of Finalization_Size.
      	(Eval_Attribute): Add null entry for Finalization_Size.
      	* sem_attr.ads: Add Finalization_Size to the implementation
      	dependent attribute list.
      	* snames.ads-tmpl: Add name entry for Finalization_Size attribute.
      
      From-SVN: r244134
      Justin Squirek committed
    • [multiple changes] · e11b776b
      2017-01-06  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch5.adb (Analyze_Loop_Statement): If the loop includes an
      	iterator specification with a serious syntactic error, transform
      	construct into an infinite loop in order to continue analysis
      	and prevent a compiler abort.
      
      2017-01-06  Tristan Gingold  <gingold@adacore.com>
      
      	* exp_ch9.adb (Expand_N_Protected_Type_Declaration): Do not generate
      	max_queue_lengths_array if unused.
      
      2017-01-06  Bob Duff  <duff@adacore.com>
      
      	* errout.adb (Set_Msg_Text): Protect against out-of-bounds
      	array access, in case "\" is at the end of Text.
      	* stylesw.adb (Set_Style_Check_Options): Don't include input
      	characters in the error message template, because they could
      	be control characters such as "\", which Errout will try to
      	interpret.
      
      2017-01-06  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch4.adb (Find_Indexing_Operations, Inspect_Declarations):
      	For a private type examine the visible declarations that follow
      	the partial view, not just the private declarations that follow
      	the full view.
      
      2017-01-06  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch5.adb, sem_ch3.adb, checks.adb: Minor reformatting and
      	code cleanup.
      
      From-SVN: r244133
      Arnaud Charlet committed
    • exp_ch5.adb (Get_Default_Iterator): For a derived type... · 6eca51ce
      2017-01-06  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch5.adb (Get_Default_Iterator): For a derived type, the
      	alias of the inherited op is the parent iterator, no need to
      	examine dispatch table positions which might not be established
      	yet if type is not frozen.
      	* sem_disp.adb (Check_Controlling_Formals): The formal of a
      	predicate function may be a subtype of a tagged type.
      	* sem_ch3.adb (Complete_Private_Subtype): Adjust inheritance
      	of representation items for the completion of a type extension
      	where a predicate applies to the partial view.
      	* checks.ads, checks.adb (Apply_Predicate_Check): Add optional
      	parameter that designates function whose actual receives a
      	predicate check, to improve warning message when the check will
      	lead to infinite recursion.
      	* sem_res.adb (Resolve_Actuals): Pass additional parameter to
      	Apply_Predicate_Check.
      
      From-SVN: r244132
      Ed Schonberg committed
    • Minor reformatting. · 6413509b
      From-SVN: r244131
      Arnaud Charlet committed
    • [multiple changes] · 07b3e137
      2017-01-06  Tristan Gingold  <gingold@adacore.com>
      
      	* s-rident.ads (Profile_Info): Remove No_Entry_Queue from
      	Gnat_Extended_Ravenscar.
      	* exp_ch9.adb, s-tpoben.adb, s-tpoben.ads: Fix spelling.
      
      2017-01-06  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_util.ads: Minor typo fix and reformatting.
      
      From-SVN: r244130
      Arnaud Charlet committed
    • [multiple changes] · ac8380d5
      2017-01-06  Yannick Moy  <moy@adacore.com>
      
      	* ghost.adb Minor fixing of references to SPARK RM.
      	(Check_Ghost_Context): Check whether reference is to a lvalue
      	before issuing an error about violation of SPARK RM 6.9(13)
      	when declaration has Ghost policy Check and reference has Ghost
      	policy Ignore.
      	* sem_util.adb Minor indentation.
      	* sem_ch10.adb (Analyze_Package_Body_Stub, Analyze_Protected_Body_Stub,
      	Analyze_Task_Body_Stub): Set Ekind of the defining identifier.
      	* sem_util.ads (Unique_Defining_Entity): Document the result
      	for package body stubs.
      
      2017-01-06  Tristan Gingold  <gingold@adacore.com>
      
      	* raise-gcc.c (abort): Macro to call Abort_Propagation.
      	* s-tpoben.ads (Protected_Entry_Queue_Max_Access): Make it access
      	constant.
      	* exp_ch9.adb (Expand_N_Protected_Type_Declaration):
      	Do not generate the Entry_Max_Queue_Lengths_Array if all default
      	values.
      	* exp_util.adb (Corresponding_Runtime_Package): Consider
      	Max_Queue_Length pragma.
      
      From-SVN: r244129
      Arnaud Charlet committed