Commit Graph

131902 Commits

Author SHA1 Message Date
Jiong Wang
20c0aa30c5 Adding missing testcase.
(should svn add first...)

From-SVN: r213489
2014-08-01 15:20:46 +00:00
Jiong Wang
15c0c5c912 [AArch64] Improve TARGET_LEGITIMIZE_ADDRESS_P hook
currently, aarch64 LEGITIMIZE_ADDRESS_P hook will reject all "reg + offset"
address given "offset" is beyond supported range.

while this may be too strict. we should honor the "strict_p" parameter in the
hook. before reload, we accept all offset if it's a frame access, because the
offset may change during later register elimination.

the early reject of "reg + offset" may cause extra registers created, and if
that register live range is across function invoking then callee saved reg
needed, thus introduce extra reg save/restore also.

give a simple example as:

int
test15 (void)
{
   unsigned char a[480];
   initialize_array (a, 480);

   if (a[0] == 0x10)
     return 1;

   return 0;
}

.S before the patch
(-O2 -fPIC)
===
test15:
         sub     sp, sp, #480
         mov     w1, 480
         stp     x29, x30, [sp, -32]!
         add     x29, sp, 0
         str     x19, [sp, 16]
         add     x19, x29, 32
         mov     x0, x19
         bl      initialize_array
         ldrb    w0, [x19]
         ldr     x19, [sp, 16]
         ldp     x29, x30, [sp], 32
         cmp     w0, 16
         cset    w0, eq
         add     sp, sp, 480
         ret

.S after the patch
===
test15:
         stp     x29, x30, [sp, -496]!
         mov     w1, 480
         add     x29, sp, 0
         add     x0, x29, 16
         bl      initialize_array
         ldrb    w0, [x29, 16]
         ldp     x29, x30, [sp], 496
         cmp     w0, 16
         cset    w0, eq
         ret

gcc/
  * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset for
  frame access when strict_p is false.

gcc/testsuite
   * gcc.target/aarch64/legitimize_stack_var_before_reload_1.c: New testcase.

From-SVN: r213488
2014-08-01 15:17:03 +00:00
Jiong Wang
4470747882 [AArch64][2/2] Add constrain to address offset in storewb_pair/loadwb_pair insns
Add a pridicate to check whether the const offset is valid.
For 32-bit variant: -256 <= offset <= 252
For 64-bit variant: -512 <= offset <= 504

2014-07-29  Renlin Li  <renlin.li@arm.com>
2014-07-29  Jiong Wang  <jiong.wang@arm.com>

gcc/
  * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
  aarch64_offset_7bit_signed_scaled_p, remove static and use it.
  * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
  Declaration.
  * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
  predicate.
  * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
  aarch64_mem_pair_offset.

From-SVN: r213487
2014-08-01 15:09:05 +00:00
Jiong Wang
e244d1e6cc Update ChangeLog for commit 213485.
From-SVN: r213486
2014-08-01 15:05:54 +00:00
Jiong Wang
3e322b3f2f [AArch64][1/2] Fix offset glitch in load reg pair pattern
on aarch64, we are using load register pair post-writeback instruction in
epilogue.

for example, for the following instruction:

ldp, x0, x1, [sp], #16

what it's doing is:

x0 <- MEM(sp + 0)
x1 <- MEM(sp + 8)
sp < sp + 16

while there is a glitch in our loadwb_pair* pattern, the restore of the
first reg should always be with offset zero.

(set (match_operand:GPI 2 "register_operand" "=r")
-          (mem:GPI (plus:P (match_dup 1)
-                   (match_dup 4))))
+          (mem:GPI (match_dup 1)))

gcc/
  * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix offset.
  (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
  * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.

From-SVN: r213485
2014-08-01 14:54:57 +00:00
Matthew Fortune
fb01ed3883 MIPS REGISTER_PREFIX definition
gcc/

	* config/mips/mips.h (REGISTER_PREFIX): Define macro.

From-SVN: r213484
2014-08-01 14:46:25 +00:00
Ed Schonberg
1696d58da2 restrict.adb (Update_Restrictions): For restrictions with a maximum parameter (e.g.
2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* restrict.adb (Update_Restrictions): For restrictions with a
	maximum parameter (e.g. number of protected entries in Ravenscar)
	do not compute the maximum of the violation over several objects,
	because the restriction is per-object.
	(Check_Restriction): After possible message, reset the value
	of of a checked max_parameter restriction to zero, to prevent
	cascaded errors.
	* sem_ch3.adb (Build_Derived_Private_Type): Use base of parent
	(sub)type to determine whether derived type should be on the
	list of private dependents of a type whose full view may become
	visible subsequently.

From-SVN: r213483
2014-08-01 16:46:11 +02:00
Arnaud Charlet
9a30c7c409 [multiple changes]
2014-08-01  Olivier Hainque  <hainque@adacore.com>

	* gcc-interface/Make-lang.in (ADA_TOOLS_FLAGS_TO_PASS, native): use
	$(CXX) instead of ../../xg++ to feed CXX.
	(CXX_LFLAGS): Remove. Now unused as the proper flags
	are expected to be included in the CXX variable.

2014-08-01  Pierre-Marie Derodat  <derodat@adacore.com>

	* gcc-interface/decl.c (elaborate_expression_1): Return the new
	variable when debug info is needed and the expression is not
	constant.  Tag as external only new variables that are global.
	(gnat_to_gnu_entity): Call it after the GNU declaration is saved.
	* gcc-interface/trans.c (Attribute_to_gnu): Do not cache
	attributes for IN array parameters when their actual subtype
	needs debug info.
	(Compilation_Unit_to_gnu): Call it to process all remaining nodes.
	* gcc-interface/gigi.h (process_deferred_decl_context): New.
	* gcc-interface/utils.c (gnat_write_global_declarations): Do not
	emit debug info for ignored global declarations.
	(struct deferred_decl_context_node,
	add_deferred_decl_context, add_deferred_type_context,
	compute_deferred_decl_context, defer_or_set_type_context,
	deferred_decl_context_queue, get_debug_scope,
	get_global_context, process_deferred_decl_context): New.
	(gnat_pushdecl): Re-implement the DECL_CONTEXT and TYPE_CONTEXT
	computation machinery to rely on the GNAT Scope attribute.

2014-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.c (build_simple_component_ref): Add guard.

From-SVN: r213482
2014-08-01 16:45:26 +02:00
Jiong Wang
88b1a3221d Add myself to Write After Approval list.
* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r213481
2014-08-01 14:40:24 +00:00
Arnaud Charlet
a43f6434db [multiple changes]
2014-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_ch8.adb, opt.ads Minor comment updates.

2014-08-01  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_intr.adb (Expand_Unc_Deallocation): Request a renaming
	from the side effects removal machinery.
	* exp_util.adb (Duplicate_Subexpr): Add formal parameter
	Renaming_Req. Update the nested call to Remove_Side_Effects.
	(Duplicate_Subexpr_No_Checks): Add formal parameter
	Renaming_Req. Update the nested call to Remove_Side_Effects.
	(Duplicate_Subexpr_Move_Checks): Add formal parameter
	Renaming_Req. Update the nested call to Remove_Side_Effects.
	(Remove_Side_Effects): Add formal parameter Renaming_Req. Generate
	an object renaming declaration when the caller requests it.
	* exp_util.ads (Duplicate_Subexpr): Add formal
	parameter Renaming_Req. Update comment on usage.
	(Duplicate_Subexpr_No_Checks): Add formal parameter Renaming_Req.
	(Duplicate_Subexpr_Move_Checks): Add formal parameter
	Renaming_Req.

From-SVN: r213480
2014-08-01 16:37:00 +02:00
Arnaud Charlet
bdc193bad1 [multiple changes]
2014-08-01  Bob Duff  <duff@adacore.com>

	* gnat_ugn.texi: Minor updates.

2014-08-01  Robert Dewar  <dewar@adacore.com>

	* atree.adb: Minor reformatting.

2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb (Init_Hidden_Discriminants): If some ancestor is a
	private extension, get stored constraint, if any, from full view.

From-SVN: r213479
2014-08-01 16:35:44 +02:00
Arnaud Charlet
8bef7ba92c [multiple changes]
2014-08-01  Robert Dewar  <dewar@adacore.com>

	* opt.ads (No_Elab_Code_All_Pragma): New global variable.
	* sem_ch10.adb (Check_No_Elab_Code_All): New procedure
	(Analyze_Compilation_Unit): Call Check_No_Elab_Code_All
	(Analyze_Subunit_Context): Call Check_No_Elab_Code_All.
	* sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All):
	Remove code for checking with's, now in sem_ch10.adb, set
	Opt.No_Elab_Code_All_Pragma.

2014-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch3.adb (Copy_And_Build): Copy the declaration for
	access types as well and adjust the subtype mark if there are
	no constraints.

2014-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_eval.adb (Test_In_Range): Return Unknown if error posted.

From-SVN: r213478
2014-08-01 16:34:37 +02:00
Robert Dewar
316e3a13c6 sem_ch3.adb, [...]: Code clean ups.
2014-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, einfo.ads, exp_ch4.adb: Code clean ups.

From-SVN: r213477
2014-08-01 16:33:17 +02:00
Eric Botcazou
7f1a5156f9 einfo.ads (Has_Private_Ancestor): Remove obsolete usage.
2014-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Has_Private_Ancestor): Remove obsolete usage.
	* exp_ch4.adb (Expand_Composite_Equality): Add conversion
	of the actuals in the case of untagged record types too.
	* sem_ch3.adb (Build_Full_Derivation): New procedure to create the
	full derivation of a derived private type, extracted from...
	(Copy_And_Build): In the case of record types and most
	enumeration types, copy the original declaration.  Build the
	full derivation according to the approach extracted from...
	(Build_Derived_Private_Type): ...here.	Call Build_Full_Derivation
	to create the full derivation in all existing cases and also
	create it in the no-discriminants/discriminants case instead of
	deriving directly from the full view.
	(Is_Visible_Component): Remove obsolete code.
	* sem_aggr.adb (Resolve_Record_Aggregate): Likewise.

From-SVN: r213476
2014-08-01 16:31:20 +02:00
Arnaud Charlet
b5119ab13d Minor reformatting.
From-SVN: r213474
2014-08-01 16:26:57 +02:00
Arnaud Charlet
5b2bf62c76 fe.h (GNAT_Mode): New.
* fe.h (GNAT_Mode): New.                                        
	* gcc-interface/decl.c (gnat_to_gnu_entity): Do not error out on
	reverse SSO in GNAT mode.

From-SVN: r213473
2014-08-01 16:23:53 +02:00
Arnaud Charlet
7b53649518 [multiple changes]
2014-08-01  Thomas Quinot  <quinot@adacore.com>

	* freeze.adb: Minor reformatting.

2014-08-01  Thomas Quinot  <quinot@adacore.com>

	* exp_ch3.adb (Default_Initialize_Object): Do not generate
	default initialization for an imported object.

2014-08-01  Olivier Hainque  <hainque@adacore.com>

	* seh_init.c (__gnat_map_SEH): Cast argument of IsBadCodePtr
	to the expected FARPROC type instead of void *.
	* adaint.c (f2t): Expect __time64_t * as second argument, in line with
	other datastructures.
	(__gnat_file_time_name_attr): Adjust accordingly.
	(__gnat_check_OWNER_ACL): Declare pSD as PSECURITY_DESCRIPTOR,
	in line with uses.
	(__gnat_check_OWNER_ACL): Declare AccessMode
	parameter as ACCESS_MODE instead of DWORD, in line with callers
	and uses.
	(__gnat_set_executable): Add ATTRIBUTE_UNUSED on mode,
	unused on win32.  Correct cast of "args" on call to spawnvp.
	(add_handle): Cast realloc calls into their destination types.
	(win32_wait): Remove declaration and initialization of unused variable.
	(__gnat_locate_exec_on_path): Cast alloca calls
	into their destination types.
	* initialize.c (append_arg, __gnat_initialize): Cast xmalloc calls into
	their destination types.

2014-08-01  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch4.adb (Expand_N_Type_Conversion): Expand
	range checks for conversions between floating-point subtypes
	when the target and source types are the same.

2014-08-01  Robert Dewar  <dewar@adacore.com>

	* exp_aggr.adb: Minor reformatting.

2014-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch13.adb (Check_Indexing_Functions): Initialize
	Indexing_Found.

2014-08-01  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb (Gnat1drv): In gnatprove mode, we now write the
	ALI file before we call the backend (so that gnat2why can append
	to it).

2014-08-01  Thomas Quinot  <quinot@adacore.com>

	* exp_pakd.adb (Expand_Bit_Packed_Element_Set,
	Expand_Packed_Element_Reference): Pass additional Rev_SSO
	parameter indicating whether the packed array type has reverse
	scalar storage order to the s-pack* Set/Get routines.
	* s-pack*.ad* (Get, Set, GetU, SetU): New formal Rev_SSO
	indicating reverse scalar storage order.

2014-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb (Check_Initialization): Set Do_Range_Check
	for initial component value in -gnatc or GNATprove mode.
	(Process_Discriminants): Same fix for default discriminant values.
	* sem_eval.adb (Test_In_Range): Improve accuracy of results by
	checking subtypes.

2014-08-01  Robert Dewar  <dewar@adacore.com>

	* sinfo.ads: Minor comment clarification.

From-SVN: r213471
2014-08-01 16:11:18 +02:00
Arnaud Charlet
41d8ee1d52 [multiple changes]
2014-08-01  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications): Code
	reformatting. Store the generated pragma Import in the related
	subprogram as routine Wrap_Imported_Subprogram will need it later.
	* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): An item of
	a private type with discriminants is considered to fall in the
	category of unconstrained or tagged items.

2014-08-01  Arnaud charlet  <charlet@adacore.com>

	* s-os_lib.adb (Open_Append): New functions to open a file for
	appending. This binds to the already existing (but not used)
	__gnat_open_append.
	* osint.ads, osint.adb (Open_File_To_Append_And_Check): New procedure
	to open a file for appending.
	* osint-c.ads, osint-c.adb (Open_Output_Library_Info): New procedure
	to open the ALI file for appending.

From-SVN: r213470
2014-08-01 16:05:00 +02:00
Arnaud Charlet
2feb1f84d7 [multiple changes]
2014-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_ch8.adb: Minor reformatting.

2014-08-01  Yannick Moy  <moy@adacore.com>

	* sem_ch13.adb (Insert_Pragma): Add special case for precondition
	pragmas from aspects, which need to be inserted in proper order.

2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb (Expand_Record_Aggregate, Init_Hidden_Discriminants):
	Handle properly a type extension that constrains a discriminated
	derived type that renames other discriminants of an ancestor.

2014-08-01  Thomas Quinot  <quinot@adacore.com>

	* s-pack06.adb, s-pack10.adb, s-pack03.ads, s-pack12.adb, s-pack14.ads,
	s-pack25.adb: Fix minor inconsistencies and typos.

From-SVN: r213469
2014-08-01 16:02:43 +02:00
Hristian Kirtchev
fc193526f3 sem_ch8.adb (Analyze_Subprogram_Renaming): Alphabetize globals and move certain variables to the "local variable" section.
2014-08-01  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch8.adb (Analyze_Subprogram_Renaming): Alphabetize
	globals and move certain variables to the "local
	variable" section. Call Build_Class_Wide_Wrapper when
	renaming a default actual subprogram with a class-wide actual.
	(Build_Class_Wide_Wrapper): New routine.
	(Check_Class_Wide_Actual): Removed.
	(Find_Renamed_Entity): Code reformatting.
	(Has_Class_Wide_Actual): Alphabetize. Change the
	logic of the predicate as the renamed name may not necessarely
	denote the correct subprogram.

From-SVN: r213467
2014-08-01 15:56:13 +02:00
Arnaud Charlet
4887624ec8 [multiple changes]
2014-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch7.adb: Fix minor oversight in condition.

2014-08-01  Bob Duff  <duff@adacore.com>

	* projects.texi: Minor documentation improvements.

2014-08-01  Robert Dewar  <dewar@adacore.com>

	* aspects.ads, aspects.adb: Add aspect No_Elaboration_Code_All.
	* gnat_rm.texi: Document No_Elaboration_Code_All pragma and aspect.
	* lib-load.adb: Initialize No_Elab_Code_All field.
	* lib-writ.adb: Initialize No_Elab_Code_All.
	* lib.ads, lib.adb: New field No_Elab_Code_All.
	* par-prag.adb: Add dummy entry for pragma No_Elaboration_Code_All.
	* restrict.ads, restrict.adb: Restriction No_Elaboration_Code_All no
	longer exists.
	* sem_ch10.adb (Analyze_Context): Processing for
	No_Elaboration_Code_All removed.
	(Generate_Parent_References): Moved to Sem_Util.
	* sem_prag.adb: Add processing for pragma No_Elaboration_Code_All.
	* sem_util.ads, sem_util.adb (Get_Parent_Entity): Moved here from
	Sem_Ch10.
	* snames.ads-tmpl: Add entry for pragma No_Elaboration_Code_All.
	* targparm.adb: Minor comment updates Add comments on ignoring
	pragma No_Elaboration_Code_All.

2014-08-01  Nicolas Roche  <roche@adacore.com>

	* adaint.c (__gnat_set_close_on_exec): Ensure that
	we can unset "close_on_exec" flag.

2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch9.adb (Build_Wrapper_Spec, Replicate_Formals): When building
	the parameter specs of the wrapper program for a primitive operation
	of a synchronized type that implements an interface, copy the
	null_exclusion indicator as well.

2014-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_eval.ads: Minor reformatting.

From-SVN: r213466
2014-08-01 15:54:30 +02:00
Eric Botcazou
625d8a9f89 exp_ch3.adb (Build_Initialization_Call): Call Underlying_Type to go down the chain of private derivations.
2014-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch3.adb (Build_Initialization_Call): Call Underlying_Type
	to go down the chain of private derivations.
	* freeze.adb (Freeze_Entity): Fix typo in comment.

From-SVN: r213465
2014-08-01 15:51:43 +02:00
Ed Schonberg
38cea80dc4 sem_ch3.adb (Access_Type_Declaration): If designated type is a limited view...
2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Access_Type_Declaration): If designated type is
	a limited view, create a master entity (as is already done for
	class-wide types) in case the full view designates a type that
	contains tasks.
	* sem_ch8.adb (Find_Selected_Component): If prefix is a dereference
	and the designated type is a limited view, use the non-limited
	view if available.

From-SVN: r213464
2014-08-01 15:50:32 +02:00
Arnaud Charlet
bf0b0e5ee1 [multiple changes]
2014-08-01  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Preanalyze and resolve the
	prefix of attribute Loop_Entry.
	* sem_prag.adb (Analyze_Pragma): Verify the placement of pragma
	Loop_Variant with respect to an enclosing loop (if any).
	(Contains_Loop_Entry): Update the parameter profile and all
	calls to this routine.
	* sem_res.adb (Resolve_Call): Code reformatting. Do not ask
	for the corresponding body before determining the nature of the
	ultimate alias's declarative node.

2014-08-01  Robert Dewar  <dewar@adacore.com>

	* gnat1drv.adb, sem_ch4.adb: Minor reformatting.

2014-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_eval.adb (Rewrite_In_Raise_CE): Don't try to reuse inner
	constraint error node since it is a list member.

2014-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_warn.adb: Minor reformatting.

2014-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.adb (Underlying_Type): Return the underlying full view
	of a private type if present.
	* freeze.adb (Freeze_Entity):
	Build a single freeze node for partial, full and underlying full
	views, if any.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Private_Type>: Add a
	missing guard before the access to the Underlying_Full_View.
	* gcc-interface/trans.c (process_freeze_entity): Deal with underlying
	full view if present.
	* gcc-interface/utils.c (make_dummy_type): Avoid superfluous work.

From-SVN: r213463
2014-08-01 15:47:34 +02:00
Arnaud Charlet
1eb5852081 ada-tree.h (DECL_BY_DESCRIPTOR_P): Delete.
2014-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/ada-tree.h (DECL_BY_DESCRIPTOR_P): Delete.
	(DECL_FUNCTION_STUB): Likewise.
	(SET_DECL_FUNCTION_STUB): Likewise.
	(DECL_PARM_ALT_TYPE): Likewise.
	(SET_DECL_PARM_ALT_TYPE): Likewise.
	(TYPE_VAX_FLOATING_POINT_P): Delete.
	(TYPE_DIGITS_VALUE): Likewise.
	(SET_TYPE_DIGITS_VALUE): Likewise.
	* gcc-interface/gigi.h (standard_datatypes): Remove ADT_malloc32_decl.
	(malloc32_decl): Delete.
	(build_vms_descriptor): Likewise.
	(build_vms_descriptor32): Likewise.
	(fill_vms_descriptor): Likewise.
	(convert_vms_descriptor): Likewise.
	(TARGET_ABI_OPEN_VMS): Likewise.
	(TARGET_MALLOC64): Likewise.
	* gcc-interface/decl.c (add_parallel_type_for_packed_array): New.
	(gnat_to_gnu_entity): Call it to add the original type as a parallel
	type to the implementation type of a packed array type.
	<E_Procedure>: Remove now obsolete kludge.
	<E_Exception>: Delete obsolete comment.
	<object>: Small tweak.
	<E_Subprogram_Type>: Remove support for stub subprograms, as well as
	for the descriptor passing mechanism.
	(gnat_to_gnu_param): Likewise.
	* gcc-interface/misc.c (gnat_init_gcc_fp): Remove special case.
	(gnat_print_type): Adjust.
	* gcc-interface/trans.c (gigi): Remove obsolete initializations.
	(vms_builtin_establish_handler_decl): Delete.
	(gnat_vms_condition_handler_decl): Likewise.
	(establish_gnat_vms_condition_handler): Likewise.
	(build_function_stub): Likewise.
	(Subprogram_Body_to_gnu): Do not call above functions.
	(Call_to_gnu): Remove support for the descriptor passing mechanism.
	* gcc-interface/utils.c (make_descriptor_field): Delete.
	(build_vms_descriptor32): Likewise.
	(build_vms_descriptor): Likewise.
	(fill_vms_descriptor): Likewise.
	(convert_vms_descriptor64): Likewise.
	(convert_vms_descriptor32): Likewise.
	(convert_vms_descriptor): Likewise.
	* gcc-interface/utils.c (unchecked_convert): Likewise.
	* gcc-interface/utils2.c (maybe_wrap_malloc): Remove obsolete stuff.

2014-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gigi): Use gnat_to_gnu_type for the exception
	type and get_unpadded_type for the longest FP type.
	(Attribute_to_gnu) <Machine>: Compare the precision of the types.
	(convert_with_check): Adjust formatting and remove FIXME.

2014-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>:
	Do not convert the RM bounds to the base type.
	(E_Floating_Point_Subtype): Likewise.
	(E_Array_Subtype): Convert the bounds to the base type.
	* gcc-interface/trans.c (get_type_length): New function.
	(Attribute_to_gnu) <Range_Length>: Call it.
	<Length>: Likewise.
	(Loop_Statement_to_gnu): Convert the bounds to the base type.
	(gnat_to_gnu) <N_In>: Likewise.
	* gcc-interface/utils.c (make_type_from_size): Do not convert the RM
	bounds to the base type.
	(create_range_type): Likewise.
	(convert): Convert the bounds to the base type for biased types.
	* gcc-interface/utils2.c (compare_arrays): Convert the bounds to the
	base type.

2014-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gnat_to_gnu) <N_Selected_Component>: Remove
	incorrect implicit type derivation.
	* gcc-interface/utils.c (max_size) <tcc_reference>: Convert the bounds
	to the base type.

From-SVN: r213462
2014-08-01 15:46:29 +02:00
Ed Schonberg
ecda544d41 sem_res.adb (Resolve_Entry_Call): When an entry has preconditions...
2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Entry_Call): When an entry has
	preconditions, the entry call is wrapped in a procedure call
	that incorporates the precondition checks. To prevent a double
	expansion, with possible duplication of extra formals, that
	procedure call must only be pre-analyzed and resolved. Expansion
	takes place upon return to the caller Resolve_Call.

From-SVN: r213461
2014-08-01 15:35:22 +02:00
Arnaud Charlet
10671e7aff [multiple changes]
2014-08-01  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_res.adb (Resolve_Call): Do not perform
	GNATprove-specific inlining while within a generic.

2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Case_Expression): Handle properly a
	case expression with incompatible alternatives, when the first
	alternative is overloaded.

From-SVN: r213460
2014-08-01 15:32:40 +02:00
Arnaud Charlet
b80a2b4bcc [multiple changes]
2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Check_Parameterless_Call): Use Relocate_Node
	to create the name of the parameterless call, rather than
	New_Copy, to preserve the tree structure when the name is a
	complex expression, e.g. a selected component that denotes a
	protected operation, whose prefix is itself a selected component.

2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Use
	Unit_Declaration_Node to retrieve body when inlining, to handle
	properly subprogram child units.

2014-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_attr.adb: Minor reformatting.

From-SVN: r213459
2014-08-01 15:31:14 +02:00
Arnaud Charlet
4b259b2d06 [multiple changes]
2014-08-01  Vincent Celier  <celier@adacore.com>

	* debug.adb: Minor documentation addition for -dn switch.

2014-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_aggr.adb, exp_ch9.adb, sem_prag.adb, sem_util.adb,
	sem_attr.adb, sem_eval.ads, sem_cat.adb, sem_ch13.adb: Improve
	documentation of Is_Static_Expression vs Is_OK_Static_Expression.
	In several places, use the Is_OK version as suggested by the spec.

2014-08-01  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb: Revert last change which was not correct.

2014-08-01  Hristian Kirtchev  <kirtchev@adacore.com>

	* freeze.adb (Find_Constant): Ensure that the constant being
	inspected is still an object declaration (i.e. not a renaming).

From-SVN: r213458
2014-08-01 15:28:35 +02:00
Arnaud Charlet
12c5f1efb5 [multiple changes]
2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Loop_Parameter_Specification): a)
	An attribute_reference to Loop_Entry denotes an iterator
	specification: its prefix is an object, as is the case for 'Old.
	b) If the domain of iteration is an expression whose type has
	the Iterable aspect defined, this is an iterator specification.

2014-08-01  Robert Dewar  <dewar@adacore.com>

	* gnatcmd.adb: Minor reformatting.

2014-08-01  Robert Dewar  <dewar@adacore.com>

	* atree.ads (Info_Messages): New counter.
	* err_vars.ads: Minor comment update.
	* errout.adb (Delete_Warning_And_Continuations): Deal
	with new Info_Messages counter.
	(Error_Msg_Internal): ditto.
	(Delete_Warning): ditto.
	(Initialize): ditto.
	(Write_Error_Summary): ditto.
	(Output_Messages): ditto.
	(To_Be_Removed): ditto.
	* erroutc.adb (Delete_Msg): Deal with Info_Messages counter.
	(Compilation_Errors): ditto.
	* errutil.adb (Error_Msg): Deal with Info_Messages counter.
	(Finalize): ditto.
	(Initialize): ditto.
	* sem_prag.adb (Analyze_Pragma): Minor comment addition.
	* gnat_ugn.texi: Document that -gnatwe does not affect info
	messages.

From-SVN: r213457
2014-08-01 15:26:17 +02:00
Arnaud Charlet
511c5197c7 [multiple changes]
2014-08-01  Robert Dewar  <dewar@adacore.com>

	* debug.adb: Document debug switch -gnatd.Z.
	* sem.adb (Semantics): Force expansion on in no or configurable
	run time mode.

2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Loop_Parameter_Specification): An
	unchecked conversion denotes an iterator specification. Such a
	conversion will be inserted in the context of an inlined call
	when needed, and its argument is always an object.

From-SVN: r213456
2014-08-01 15:23:00 +02:00
Richard Biener
9741d942c2 re PR middle-end/61762 (failure to optimize memcpy from constant string)
2014-08-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/61762
	* gcc.dg/pr61762.c: Align the string to make the testcase work
	on strict-align targets.

From-SVN: r213454
2014-08-01 12:40:37 +00:00
Arnaud Charlet
a21d245c1b [multiple changes]
2014-08-01  Robert Dewar  <dewar@adacore.com>

	* make.adb, makeutl.ads: Minor reformatting.
	* debug.adb, opt.ads: Clarify documentation of Front_End_Inlining and
	Back_End_Inlining.

2014-08-01  Tristan Gingold  <gingold@adacore.com>

	* gnatcmd.adb (GNATCmd): Set AAMP_On_Target using command name.

From-SVN: r213453
2014-08-01 12:32:10 +02:00
Javier Miranda
0f345950ec gnat1drv.adb (Adjust_Global_Switches): Reverse meaning of -gnatd.z.
2014-08-01  Javier Miranda  <miranda@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Reverse meaning of
	-gnatd.z.
	* debug.adb: Updating documentation.
	* exp_ch6.adb (Expand_Call): Remove assertion.

From-SVN: r213452
2014-08-01 12:29:51 +02:00
Arnaud Charlet
b330e3c866 [multiple changes]
2014-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, sem_util.adb,
	sem_res.adb: Minor reformatting.

2014-08-01  Vincent Celier  <celier@adacore.com>

	* make.adb (Initialize): Set Keep_Temporary_Files to True when
	-dn is specified.
	* makeusg.adb: Add line for new switch --keep-temp-files.
	* makeutl.ads (Keep_Temp_Files_Option): New constant String.
	* opt.ads (Keep_Temporary_Files): Document that it is also used
	by gnatmake and gprbuild.
	* switch-m.adb: Recognize new switch --keep-temp-files.

From-SVN: r213451
2014-08-01 12:28:52 +02:00
Arnaud Charlet
24de083ff5 [multiple changes]
2014-08-01  Tristan Gingold  <gingold@adacore.com>

	* sem_ch9.adb (Analyze_Task_Type_Declaration): Move code from ...
	* exp_ch9.adb (Make_Task_Create_Call): ... here.

2014-08-01  Vincent Celier  <celier@adacore.com>

	* gnat1drv.adb: Do not try to get the target parameters when
	invoked with -gnats.

2014-08-01  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Find_Last_Init): Nothing to do for an object
	declaration subject to No_Initialization.

2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Array_Aggregate): Reject choice that
	is a subtype with dynamic predicates, or a non-static subtype
	with predicates.
	* sem_ch3.adb (Analyze_Number_Declaration): Reject qualified
	expression if subtype has a dynamic predicate.
	(Constrain_Index): Reject subtype indication if subtype mark
	has predicates.
	(Inerit_Predicate_Flags): Inherit Has_Predicates as well.
	(Make_Index): If index is a subtype indication, itype inhereits
	predicate flags for subsequent testing.
	* sem_ch5.adb (Analyze_Loop_Parameter_Specification): New
	procedure Check_Predicate_Use, to reject illegal uses of domains
	of iteration that have dynamic predicates.
	* sem_res.adb (Resolve_Slice): Reject slices given by a subtype
	indication to which a predicate applies.
	* sem_util.adb (Bad_Predicated_Subtype_Use): Add guard to
	prevent cascaded errors when subtype is invalid.

From-SVN: r213450
2014-08-01 12:26:42 +02:00
Arnaud Charlet
73999267a3 [multiple changes]
2014-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_ch10.adb: Minor reformatting.

2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Same_Generic_Actual): Make function symmetric,
	because either type may be a subtype of the other.

2014-08-01  Vincent Celier  <celier@adacore.com>

	* makeusg.adb: Add documentation for debug switch -dn.

2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_dim.adb (Process_Minus, Process_Divide): Label dimension
	expression with standard operator and type, for pretty-printing
	use, when in ASIS_Mode. When generating code dimensional analysis
	is not involved and dimension expressions are handled statically,
	and other operators are resolved in the usual way.

2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Build_Derived_Record_Type): Remove setting of
	Parent_Subtype in ASIS mode, leads to several failures.
	* sem_ch4.adb (Analyze_Selected_Component): In an instance,
	if the prefix is a type extension, check whether component is
	declared in the parent type, possibly in a parent unit. Needed
	in ASIS mode when Parent_Subtype is not set.

From-SVN: r213449
2014-08-01 12:24:57 +02:00
Arnaud Charlet
885e570af1 [multiple changes]
2014-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb: Minor reformatting.
	* s-regpat.adb: Minor reformatting.
	* sem_ch3.adb (Analyze_Object_Declaration): Do not set
	Treat_As_Volatile on constants.

2014-08-01  Tristan Gingold  <gingold@adacore.com>

	* exp_ch9.adb (Make_Task_Create_Call): Improve error message.

2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Analyze_Compilation_Unit): Do not place a
	warning on a with_clause created for the renaming of a parent
	unit in an explicit with_clause.

From-SVN: r213448
2014-08-01 12:22:23 +02:00
Arnaud Charlet
8894aa20ff [multiple changes]
2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications, case Aspect_Import):
	Set Is_Imported flag at once, to simplify subsequent legality
	checks. Reject the aspect on an object whose declaration has an
	explicit initial value.
	* sem_prag.adb (Process_Import_Or_Interface): Use original node
	to check legality of an initial value for an imported entity.
	Set Is_Imported flag in case of error to prevent cascaded errors.
	Do not set the Is_Imported flag if the pragma comes from an
	aspect, because it is already done when analyzing the aspect.

2014-08-01  Emmanuel Briot  <briot@adacore.com>

	* g-regpat.adb (Parse): Add support for non-capturing parenthesis.

From-SVN: r213447
2014-08-01 12:15:59 +02:00
Arnaud Charlet
7b4ebba523 [multiple changes]
2014-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_ch7.adb, einfo.adb, einfo.ads, sem_ch13.adb: Minor change of
	identifier name.

2014-08-01  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb (Analyze_Object_Contract): Enable the volatility
	checks when the related variable comes from source.
	* sem_res.adb (Resolve_Actuals): Enable the volatility checks
	when the related actual parameter comes from source. Update comment.
	* freeze.adb (Freeze_Record_Type): Do not freeze the designated
	type of an array of pointers when the designated type is
	class-wide and its root type is the record being currently frozen.

2014-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Iterator_Specification): Preserve Ekind
	of renaming declaration created for domain of iteration.
	* sem_aggr.adb (Resolve_Array_Aggregate): Better placement
	for error messages on aggregates whose index subtypes have
	predicates. The new placement avoids posting messages on previous
	subtype declarations rather than on the aggregate itself.
	* sem_disp.adb (Is_Inherited_Public_Operation): New predicate for
	Add_Dispatching_Operation, to handle properly the overriding of
	the predefined operations on controlled types, when the partial
	view of a type is not visibly controlled.

2014-08-01  Ben Brosgol  <brosgol@adacore.com>

	* gnat_ugn.texi: Add tutorial on portable fixed-point types as an
	appendix.

From-SVN: r213446
2014-08-01 12:13:54 +02:00
Arnaud Charlet
798595680b [multiple changes]
2014-08-01  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb (Is_Hidden_Non_Overridden_Subprogram): Remove the
	assertion check as the attribute is defined for all entities.
	(Set_Is_Hidden_Non_Overridden_Subprogram): Remove the assertion
	check as the attribute is defined for all entities.
	* einfo.ads Update the documentation of attribute
	Is_Hidden_Non_Overridden_Subprogram.
	* sem_ch7.adb (Install_Package_Entity): No need to check the
	entity kind of the Id.
	* sem_ch13.adb (Hide_Matching_Homograph): Update the comment on
	usage. Ensure that the homographs are of the same entity kind
	and not fully conformant.
	(Hide_Non_Overridden_Subprograms): Update the comment on usage.

2014-08-01  Robert Dewar  <dewar@adacore.com>

	* inline.adb: Minor code reorganization.
	* sem_ch12.adb, s-tasdeb.ads: Minor reformatting.

From-SVN: r213445
2014-08-01 12:11:16 +02:00
Arnaud Charlet
3fe5ceadbb [multiple changes]
2014-08-01  Robert Dewar  <dewar@adacore.com>

	* inline.adb, s-os_lib.ads: Minor reformatting.

2014-08-01  Arnaud Charlet  <charlet@adacore.com>

	* s-tasdeb.ads, s-tasdeb.adb (Master_Hook, Master_Completed_Hook): New.
	* s-tassta.adb (Task_Wrapper, Vulnerable_Complete_Master): Call new
	hooks.

From-SVN: r213444
2014-08-01 12:08:23 +02:00
Arnaud Charlet
39521a94f8 [multiple changes]
2014-08-01  Yannick Moy  <moy@adacore.com>

	* inline.adb (Cannot_Inline): Issue info message instead of
	warning for subprograms not inlined in GNATprove mode.
	* sem_res.adb (Resolve_Call): Take body into account for deciding
	whether subprogram can be inlined in GNATprove mode or not.

2014-08-01  Claire Dross  <dross@adacore.com>

	* exp_util.ads (Get_First_Parent_With_Ext_Axioms_For_Entity): Renaming
	of Get_First_Parent_With_External_Axiomatization_For_Entity for
	shorter.
	* sem_ch12.adb (Analyze_Associations): Only call Build_Wrapper
	for parameters of packages with external axiomatization.

From-SVN: r213443
2014-08-01 12:06:44 +02:00
Nathan Sidwell
b98a872b22 Makefile.in (LIBGCOV_MERGE, [...]): Reformat.
* Makefile.in (LIBGCOV_MERGE, LIBGCOV_PROFILER,
	LIBGCOV_INTERFACE): Reformat.
	* libgcov-driver.c (gcov_exit, __gcov_init): Disable when
	IN_GCOV_TOOL.
	* libgcov-interface.c: Reformat some comments.
	(__gcov_flush_mx): Add declaration.  Tidy up definition.

From-SVN: r213442
2014-08-01 10:05:42 +00:00
Arnaud Charlet
4d49c6e149 [multiple changes]
2014-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_res.adb: Minor comment addition.

2014-08-01  Arnaud Charlet  <charlet@adacore.com>

	* s-crtl.ads, i-cstrea.ads, adaint.c, adaint.h, osint.adb,
	s-fileio.adb (__gnat_fopen, __gnat_freopen): Remove vms_form parameter,
	no longer used.
	* s-os_lib.ads: Minor reformatting.

From-SVN: r213441
2014-08-01 12:04:35 +02:00
Arnaud Charlet
d18bbd2534 [multiple changes]
2014-08-01  Arnaud Charlet  <charlet@adacore.com>

	* exp_attr.adb (Is_Inline_Floating_Point_Attribute): Restore more
	completely previous code since only GCC back-ends are prepared
	to handle e.g. 'Machine attribute.
	* targparm.adb, targparm.ads: Remove remaining refs and
	handling of OpenVMS_On_Target, VAX_Float_On_Target and
	RTX_RTSS_Kernel_Module_On_Target.
	* hostparm.ads (OpenVMS, Max_Debug_Name_Length): Removed,
	no longer used.

2014-08-01  Robert Dewar  <dewar@adacore.com>

	* exp_dist.adb, exp_attr.adb: Minor reformatting.
	* sem_ch3.adb, mlib-tgt-specific-hpux.adb, a-direct.ads,
	a-synbar-posix.adb, exp_ch9.adb, sem_ch10.adb, sem_prag.adb,
	sem_ch12.adb, sem.ads, sem_res.adb, s-exctra.adb, s-soflin.ads,
	g-alveop.ads, sem_ch8.adb, vxaddr2line.adb, sem_cat.ads: Remove
	improper use of shall.

From-SVN: r213440
2014-08-01 12:01:31 +02:00
Robert Dewar
37368818b9 sem_aggr.adb, [...]: Minor reformatting & code reorganization.
2014-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_aggr.adb, exp_atag.adb, layout.adb, nlists.adb, nlists.ads,
	exp_attr.adb, exp_ch9.adb, par-ch12.adb, exp_aggr.adb,
	exp_ch3.adb: Minor reformatting & code reorganization.

From-SVN: r213439
2014-08-01 11:57:04 +02:00
Arnaud Charlet
e08add8ea9 [multiple changes]
2014-08-01  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Remove VMS specific rules for pragma Ident.
	* Makefile.rtl, adaint.c, gnat_rm.texi, s-asthan.adb, s-asthan.ads,
	s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
	s-po32gl.adb, s-po32gl.ads, s-vaflop.adb, s-vaflop.ads, s-vmexta.adb,
	s-vmexta.ads, sem_vfpt.adb, sem_vfpt.ads, socket.c: Remove VMS specific
	code.
	* gcc-interface/decl.c, gcc-interface/Makefile.in,
	gcc-interface/Make-lang.in: Ditto. Also remove refs to rTX.

2014-08-01  Pascal Obry  <obry@adacore.com>

	* s-os_lib.ads: Rename File_Size to Large_File_Size.

From-SVN: r213438
2014-08-01 11:55:31 +02:00
Robert Dewar
21c51f53f0 a-numaux-vxworks.ads, [...]: Fix bad package header comments.
2014-08-01  Robert Dewar  <dewar@adacore.com>

	* a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
	a-numaux-darwin.adb, a-numaux-darwin.ads, a-numaux.ads,
	a-numaux-libc-x86.ads: Fix bad package header comments.
	* elists.ads, elists.adb (Append_New_Elmt): New procedure.
	* gnat_rm.texi, a-calend.adb, gnatcmd.adb, einfo.adb, einfo.ads,
	checks.adb, sem_prag.adb, sem_prag.ads, rtsfind.ads, freeze.adb,
	sem_util.adb, sem_attr.adb, exp_dbug.adb, exp_dbug.ads, gnat1drv.adb,
	targparm.adb, targparm.ads, exp_ch6.adb, switch-b.adb, s-shasto.ads,
	stand.ads, s-auxdec.ads, opt.adb, opt.ads, mlib-tgt.ads, s-fatgen.adb,
	s-fatgen.ads, system.ads, snames.ads-tmpl, s-stalib.ads,
	s-os_lib.adb: Remove VMS-specific code.

From-SVN: r213437
2014-08-01 11:48:28 +02:00
Arnaud Charlet
78433fec9a exp_attr.adb (Is_Inline_Floating_Point_Attribute): Revert to previous state in CodePeer_Mode.
2014-08-01  Arnaud Charlet  <charlet@adacore.com>

	* exp_attr.adb (Is_Inline_Floating_Point_Attribute): Revert to
	previous state in CodePeer_Mode.

From-SVN: r213435
2014-08-01 11:46:10 +02:00