2007-12-27  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/34553
	* adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
	instead of mktemp() or tmpnam() on NetBSD.

2007-12-23  Eric Botcazou  <ebotcazou@adacore.com>

	* trans.c (call_to_gnu): Make the temporary for non-addressable
	In parameters passed by reference.
	(addressable_p): Return true for STRING_CST and CALL_EXPR.

2007-12-19  Robert Dewar  <dewar@adacore.com>

	* g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
	Add pragma Warnings (Off) for unassigned IN OUT arguments

	* sem_warn.adb (Output_Reference): Suppress messages for internal names
	(Check_References): Extensive changes to tune up warnings
	(Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
	(Has_Pragma_Unmodifed_Check_Spec): New function
	(Check_References): Implement pragma Unmodified
	(Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified

	* par-prag.adb: Dummy entry for pragma Unmodified

	* sem_prag.adb: Implement pragma Unmodified

	* einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
	(Proc_Next_Component_Or_Discriminant): Fix typo.
	Update comments.

	* sem_util.adb (Note_Possible_Modification): Add processinng for pragma
	Unmodified.
	(Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
	because the former already takes care of discarding the result.
	(Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
	Add comment.

	* snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified

2007-12-19  Eric Botcazou  <ebotcazou@adacore.com>

	* targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
	system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
	system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
	system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
	system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
	system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
	system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
	system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
	system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
	system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
	(Dynamic_Trampolines_Used): Delete.

	* system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
	Turn on stack probing mechanism on LynxOS.

2007-12-19  Bob Duff  <duff@adacore.com>

	* atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
	the resulting tail recursion by hand. This prevents running out of
	memory on deeply nested concatenations, since Field2 is where the left
	operand of concatenations is stored.
	Fix bug (was returning OK_Orig in some cases). Fix return subtype to
	clarify that it can only return OK or Abandon.

	* sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
	operand by iteration, in order to avoid running out of memory on
	deeply-nested concatenations. Use the Parent pointer to get back up the
	tree.
	(Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
	 Resolve_Op_Concat_Rest): New procedures split out of
	Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
	clearer.

	* checks.adb (Remove_Checks): Use Traverse_Proc instead of
	Traverse_Func, because the former already takes care of discarding the
	result.

	* errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
	because the former already takes care of discarding the result.
	(Remove_Warning_Messages): Use appropriate subtype for Status and
	Discard

2007-12-19  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
	discriminants forces expansion of the aggregate into assignments.
	(Init_Record_Controller):  If the type of the aggregate is untagged and
	is not inherently limited, the record controller is not limited either.

2007-12-19  Robert Dewar  <dewar@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
	handling compile time known size of record or array (case of front end
	layout active, e.g. in GNAAMP).

2007-12-19  Javier Miranda  <miranda@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
	that forces the construction of static dispatch tables in case of
	record subtypes.

2007-12-19  Robert Dewar  <dewar@adacore.com>

	* exp_ch9.adb (Null_Statements): Moved to library level
	(Trivial_Accept_OK): New function
	(Expand_Accept_Declaration): Use Trivial_Accept_OK
	(Expand_N_Accept_Statement): Use Trivial_Accept_OK

2007-12-19  Robert Dewar  <dewar@adacore.com>

	* exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
	in complex case where array is Volatile.

2007-12-19  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
	properly the Ada2005 rules concerning when the current instance of a
	record type is aliased.

2007-12-19  Ed Schonberg  <schonberg@adacore.com>

	* par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
	mangled declaration
	(P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
	declarations.
	(P_Variant_Part): Cleaner patch for parenthesized discriminant

2007-12-19  Vincent Celier  <celier@adacore.com>

	* prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
	package is not known

	* prj-attr.ads (Unknown_Package): New constant
	Do not crash when an unknown package is in several projects

	* prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
	ignored

	* prj-nmsc.adb (Check): Remove obsolete code related to no longer
	existing package Language_Processing.

2007-12-19  Ed Schonberg  <schonberg@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>
	    Samuel Tardieu  <sam@rfc1149.net>

	PR ada/15803, ada/15805
	* sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
	illegal access subtypes when there is a constrained partial view.
	(Check_For_Premature_Usage): New procedure inside
	Access_Subprogram_Declaration for checking that an access-to-subprogram
	type doesn't reference its own name within any formal parameters or
	result type (including within nested anonymous access types).
	(Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
	(Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
	context is an access_to_variable, the expression cannot be an
	access_to_constant.

2007-12-19  Bob Duff  <duff@adacore.com>

	* sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
	(Analyze_Concatenation): Use iteration instead of recursion in order
	to avoid running out of stack space for deeply nested concatenations.

2007-12-19  Ed Schonberg  <schonberg@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
	whose renamed entity is a subprogram that requires overriding.
	(Premature_Usage): Test for the case of N_Full_Type_Declaration when
	issuing an error for premature usage and issue a message that says
	'type' rather than 'object'.

2007-12-19  Gary Dismukes  <dismukes@adacore.com>

	PR ada/34149
	* sem_disp.adb (Check_Dispatching_Call): Augment existing test for
	presence of a statically tagged operand (Present (Static_Tag)) with
	test for Indeterm_Ancestor_Call when determining whether to propagate
	the static tag to tag-indeterminate operands (which forces dispatching
	on such calls).
	(Check_Controlling_Formals): Ada2005, access parameters can have
	defaults.
	(Add_Dispatching_Operation, Check_Operation_From_Private_View): do
	not insert subprogram in list of primitive operations if already there.

2007-12-19  Tristan Gingold  <gingold@adacore.com>

	* utils.c (create_var_decl_1): call rest_of_decl_compilation only for
	global variable.

2007-12-19  Thomas Quinot  <quinot@adacore.com>

	Part of PR ada/33688
	* gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
	datagram info on Linux.

2007-12-19  Vincent Celier  <celier@adacore.com>

	* makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
	that the source path name is always found in the dependencies.

2007-12-19  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
	Fix name of Wide_Wide_Latin_1/9 file names
	Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
	Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
	Add missing documentation for Ada.Command_Line.Response_File
	Update list of warning letters for Warnings pragma
	Add documentation for pragma Unmodified

2007-12-19  Samuel Tardieu  <sam@rfc1149.net>

	* Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.

2007-12-17  Arnaud Charlet  <charlet@adacore.com>

	* s-vxwork-alpha.ads: Removed, no longer used.

2007-12-15  Jakub Jelinek  <jakub@redhat.com>

	* Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.

2007-12-13  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/34360
	* Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
	mlib-tgt-specific.adb.

2007-12-13  Bob Duff  <duff@adacore.com>

	* trans.c (Attribute_to_gnu): Check for violations of the
	No_Implicit_Dynamic_Code restriction. This checking used to be done in
	the front end, but is moved here so we can make it more accurate.

2007-12-13  Pascal Obry  <obry@adacore.com>

	* adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
	 version is provided for older GNU/Linux distribution not
	 supporting thread affinity sets.

	* s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
	call.
	(bit_field): New packed boolean type used by cpu_set_t.
	(cpu_set_t): New type corresponding to the C type with
	the same name. Note that on the Ada side we use a bit
	field array for the affinity mask. There is not need
	for the C macro for setting individual bit.
	(pthread_setaffinity_np): New imported routine.

	* s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
	no null.
	(Create_Task): Set the processor affinity mask if information
	is present.

	* s-tasinf-linux.ads, s-tasinf-linux.adb: New files.

2007-12-13  Robert Dewar  <dewar@adacore.com>

	* s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
	s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
	s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
	s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
	s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
	s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
	s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
	i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
	for subprogram pointers.

	* g-ctrl_c.adb: New file.

	* g-ctrl_c.ads (Install_Handler): New body.

	* freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
	instead of obsolete function Is_Always_Inlined.
	(Freeze_Entity): check for tagged type in imported C subprogram
	(Freeze_Entity): check for 8-bit boolean in imported C subprogram
	(Freeze_Entity): check for convention Ada subprogram pointer in
	imported C subprogram.
	(Freeze_Fixed_Point_Type): In the case of a base type where the low
	bound would be chopped off and go from negative to zero, force
	Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
	bound) so that the size computation for the base type will take
	negative values into account.

2007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
	    Bob Duff  <duff@adacore.com>
	    Tristan Gingold  <gingold@adacore.com>

	* system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
	system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
	system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
	system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
	system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
	system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
	system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
	system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
	system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
	system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
	system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
	(Always_Compatible_Rep): New flag to control trampolines globally.
	(Dynamic_Trampolines_Used): New flag for implementing the
	No_Implicit_Dynamic_Code restriction more correctly (not yet used,
	and not yet set correctly for some targets).

	* s-taprop-vxworks.adb: Use stack limit method of stack checking.
	Simply indirectly call s-stchop when a task is created.

	* ali.ads:
	New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
	appears as an argument (entries A) in an ALI file.

	* fe.h (Stack_Check_Limits): Declare new target parameter.
	(Check_Implicit_Dynamic_Code_Allowed): New procedure.

	* init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
	This variable is declared in C to be sure not subject to elaboration
	code.
	(__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
	Storage_Error.

	* targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
	(Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.

	* s-stchop.ads: Add comments.

	* s-stchop-vxworks.adb: Package almost fully rewritten to use stack
	limit method of stack checking.

	* s-stchop-limit.ads: New file.

2007-12-13  Robert Dewar  <dewar@adacore.com>

	* sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
	a-cihama.adb, g-awk.adb,
	s-inmaop-posix.adb: Update handling of assigned value/unreferenced
	warnings

	* exp_smem.adb: Update handling of assigned value/unreferenced warnings

	* sem.adb: Update handling of assigned value/unreferenced warnings

	* a-exexpr-gcc.adb: Add a pragma warnings off for boolean return

	* lib-xref.ads: Improve documentation for k xref type

	* lib-xref.adb:
	Update handling of assigned value/unreferenced warnings
	(Generate_Reference): Warning for reference to entity for which a
	pragma Unreferenced has been given should be unconditional.
	If the entity is a discriminal, mark the original
	discriminant as referenced.

	* sem_warn.ads, sem_warn.adb
	(Check_One_Unit): Test Renamed_In_Spec to control giving warning for
	no entities referenced in package
	(Check_One_Unit): Don't give message about no entities referenced in
	a package if a pragma Unreferenced has appeared.
	Handle new warning flag -gnatw.a/-gnatw.A
	Update handling of assigned value/unreferenced warnings

	* atree.h: Add flags up to Flag247
	(Flag231): New macro.

2007-12-13  Jose Ruiz  <ruiz@adacore.com>

	* adaint.h: (__gnat_plist_init): Not defined for RTX.

	* initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
	RTX systems.

	* Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
	(LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
	EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
	GNATLIB_SHARED for RTX run time): Use the versions required by RTX.

	* mingw32.h:
	Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.

	* sysdep.c (winflush_function for RTX): Procedure that does nothing
	since we only have problems with Windows 95/98, which are not
	supported by RTX.
	(__gnat_ttyname): Return the empty string on Nucleus, just as
	done on vxworks.

2007-12-13  Robert Dewar  <dewar@adacore.com>

	* a-textio.adb, a-textio.ads:
	Extensive changes to private part for wide character encoding

	* a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
	(Look_Ahead): Fix mishandling of encoded sequences
	Move declaration of Wch_Con to private part (should not be visible)

	* ali.adb (Scan_ALI): Set default encoding method to brackets instead of
	UTF-8. Probably this is never used, but if it is, brackets is
	clearly correct.

	* bindgen.adb (Get_WC_Encoding): New procedure to properly handle
	setting wide character encoding for no main program case and when
	encoding is specified using -W?
	Initialize stack limit of environment task if stack limit method of
	stack checking is enabled.
	(Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
	(Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
	(Get_Main_Unit_Name): New function.
	(Gen_Adainit_Ada): Add call to main program for .NET when needed.
	(Gen_Output_File): Set Bind_Main_Program to True for .NET

	* bindusg.adb: Add line for -Wx switch

	* s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
	Add comments
	Add new useful constant WC_Longest_Sequences

	* switch-b.adb: Clean up handling of -Wx switch
	For -gnatWx, set Wide_Character_Encoding_Method_Specified

	* switch-c.adb: -gnatg activates warning on assertion errors
	For -gnatWx, set Wide_Character_Encoding_Method_Specified

	* s-wchcon.adb: (Is_Start_Of_Encoding): New function

2007-12-13  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* a-ngcoty.adb: New pragma Fast_Math

	* opt.adb: New pragma Fast_Math

	* par-prag.adb:
	Add Implemented_By_Entry to the list of pragmas which do not require any
	special processing.
	(Favor_Top_Level): New pragma.
	New pragma Fast_Math

	* exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
	(Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
	Expand_Allocator_Expression): Take into account VM_Target
	(Expand_Attribute, case 'Identity):  Handle properly the case where
	the prefix is a task interface.
	New pragma Fast_Math

	* par.adb (Next_Token_Is): New function
	(P_Pragma): Add Skipping parameter
	(U_Left_Paren): New procedure
	(U_Right_Paren): New procedure
	New pragma Fast_Math

	* par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
	subunit
	New pragma Fast_Math

	* sem_prag.adb: Add significance value to table Sig_Flag for pragma
	Implemented_By_Entry.
	(Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
	(Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
	items, since it can apply to more than one overloadable entity. Set
	new flag Has_Pragma_Inline_Always for Inline_Always case.
	(Analyze_Pragma, case Complex_Representation): Improve error message.
	(Analyze_Pragma, case Assert): When assertions are disabled build the
	rewritten code with Sloc of expression rather than pragma, so new
	warning about failing is not deleted.
	(Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
	protected types and update error message to reflect that. Test whether
	the protected type is allowed for the pragma (an error is issued if the
	type has any entries, or components that do not have preelaborable
	initialization).
	New pragma Fast_Math
	(Analyze_Pragma, case No_Return): Handle generic instance

	* snames.h, snames.ads, snames.adb:
	Add new predefined name for interface primitive _Disp_Requeue.
	New pragma Fast_Math

	* a-tags.ads, a-tags.adb: New calling sequence for
	String_To_Wide_[Wide_]String
	(Secondary_Tag): New subprogram.

	* exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
	from Exp_Attr
	New calling sequence for String_To_Wide_[Wide_]String
	(Expand_Image_Attribute): Major rewrite. New calling sequence avoids
	the use of the secondary stack for image routines.

	* a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
	calling sequence for String_To_Wide_[Wide_]String

	* par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
	Ada 95 mode
	(P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
	Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List

	* par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
	(P_Formal_Part): Use Skipping parameter in P_Pragma call
	to improve error recovery

	* par-util.adb (Next_Token_Is): New function
	(Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function

	* par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
	semicolon if missing
	(P_Pragma): Implement new Skipping parameter
	Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
	Fix location of flag for unrecognized pragma message

	* par-tchk.adb (U_Left_Paren): New procedure
	(U_Right_Paren): New procedure

2007-12-13  Geert Bosch  <bosch@adacore.com>

	* a-tifiio.adb:
	(Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
	the second or later Scaled_Divide would omit leading zeroes,
	resulting in too few digits produced and a Layout_Error as result.
	(Put): Initialize Pos.

2007-12-13  Robert Dewar  <dewar@adacore.com>

	atree.ads, atree.adb (Flag231..Flag247): New functions
	(Set_Flag231..Set_Flag247): New procedures
	(Basic_Set_Convention): Rename Set_Convention to be
	Basic_Set_Convention
	(Nkind_In): New functions
	Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List

	* exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
	instead
	 of obsolete function Is_Always_Inlined
	(Register_Predefined_DT_Entry): Initialize slots of the second
	secondary dispatch table.
	Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
	(Expand_N_Function_Call): Remove special provision for stack checking.

	* exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
	Include _Disp_Requeue in the list of predefined operations.
	(Find_Interface_ADT): Modified to fulfill the new specification.
	Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List

	* par-ch4.adb, nlists.ads, nlists.adb:
	Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List

	* sinfo.ads, sinfo.adb: (Nkind_In): New functions
	Fix location of flag for unrecognized pragma message

	* sem_ch7.adb: Use Nkind_In

2007-12-13  Vincent Celier  <celier@adacore.com>

	* opt.ads:
	Indicate what flags are used by the Project Manager, gprbuild and
	gprclean.
	(Opt.Follow_Links_For_Dirs): New flag
	(Warn_On_Assertion_Failure): New flag
	(Wide_Character_Encoding_Method_Specified): New flag
	(Suppress_All_Inlining): New switch set by -fno-inline
	(Real_VMS_Target): New flag
	New pragma Fast_Math

2007-12-13  Robert Dewar  <dewar@adacore.com>

	* back_end.adb: Recognize -fno-inline

2007-12-13  Robert Dewar  <dewar@adacore.com>

	* checks.adb: Fix optimization problem with short-circuited form

2007-12-13  Bob Duff  <duff@adacore.com>

	* clean.adb (Usage): Add line for -aP
	(Check_Version_And_Help): Change Check_Version_And_Help to be generic,
	with a parameter "procedure Usage", instead of passing a pointer to a
	procedure. This is to eliminate trampolines (since the Usage procedure
	is often nested in a main procedure, and it would be inconvenient to
	unnest it).

	* g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
	to be generic, with a parameter "procedure Callback (...)", instead of
	passing a pointer to a procedure. This is to eliminate trampolines
	(since the Callback procedure is usually nested).

	* gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
	gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
	(Check_Version_And_Help): Change Check_Version_And_Help to be generic.

	* g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
	Use the generic Heap_Sort_G instead of Heap_Sort_A.

2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
	(Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
	(Write_Entry_Flags): Add an entry for Implemented_By_Entry.
	(Renamed_In_Spec): New flag
	(Has_Pragma_Inline_Always): New flag
	Add missing doc for pragma Obsolescent_Warning
	Add missing doc for 17 additional unused flags (230-247)
	(Is_Derived_Type): Remove condition "not Is_Generic_Type".
	Alphabetize with clauses.
	Separate Is_Thunk and Has_Thunks flags
	(Write_Entity_Flags): Add forgotten entry for Has_Thunks
	(Related_Interface): Renamed to Related_Type.
	(Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
	(Set_Is_Flag): Restrict the assertion.

2007-12-13  Vincent Celier  <celier@adacore.com>

	* errout.adb (Output_Source_Line): Do not keep a trailing space after
	the source line number if the source line is empty.

2007-12-13  Geert Bosch  <bosch@adacore.com>

	* eval_fat.adb (Decompose_Int): Handle argument of zero.
	(Compose): Remove special casing of zero.
	(Exponent): Likewise.
	(Fraction): Likewise.
	(Machine): Likewise.
	(Decompose): Update comment.

2007-12-13  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
	limited ancestor part, initialize controllers of enclosing record
	before expanding ancestor aggregate.
	(Gen_Assign): If a component of the aggregate is box-initialized, add
	code to call Initialize if the component is controlled, and explicit
	assignment of null if the component is an access type.

	Handle properly aggregates for limited types that appear in object
	declarations when the aggregate contains controlled values such as
	protected types.
	When expanding limited aggregates into individual components, do not
	call Adjust on controlled components that are limited.

2007-12-13  Ed Schonberg  <schonberg@adacore.com>

	* expander.adb: Take into account N_Subprogram_Renaming_Declaration

2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
	predefined primitive _Disp_Requeue.
	(Make_Predefined_Primitive_Specs): Create the spec for predefined
	primitive _Disp_Requeue.
	(Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
	type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
	(Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
	an interface type. In case of limited interfaces we now declare all the
	predefined primitives associated with synchronized interfaces as
	abstract.
	(Predef_Spec_Or_Body): For interface types generate abstract subprogram
	declarations.
	(Predefined_Primitive_Bodies): Add body of "=" if the parent of the
	tagged type is an interface type and there is no user-defined equality
	function.
	Add also bodies of predefined primitives associated with synchronized
	interfaces.
	(Freeze_Record_Type): Do not build bodies of predefined primitives of
	interface types because they are now defined abstract.
	Add missing documentation.
	(Expand_Record_Controller): Update occurrence of Related_Interface
	to Related_Type.
	(Build_Offset_To_Top_Functions): Do nothing in case of VM.
	(Expand_N_Object_Declaration): Take into account VM_Target when handling
	class wide interface object declaration.
	(Expand_Previous_Access_Type): Do not create a duplicate master entity
	if the access type already has one.
	(Expand_N_Object_Declaration): Defend against attempt to validity check
	generic types. Noticed for -gnatVcf specified with previous errors.

2007-12-13  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
	Expand_Allocator_Expression): Take into account VM_Target

	* exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
	secondary stack when VM_Target /= No_VM

2007-12-13  Javier Miranda  <miranda@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
	Is_Complation_Unit by Is_Library_Level_Entity in the code
	that decides if the static dispatch tables need to be built.
	(Wrap_Transient_Declaration): Do not generate a finalization call if
	this is a renaming declaration and the renamed object is a component
	of a controlled type.

2007-12-13  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
	In the case where the renamed subprogram is a dereference, call
	Force_Evaluation on the prefix.

2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* exp_ch9.adb (Expand_N_Asynchronous_Select,
	Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
	comment reformatting.
	(Set_Privals): Inherit aliased flag from formal. From code reading.
	(Build_Simple_Entry_Call): Out parameters of an access type are passed
	by copy and initialized from the actual. This includes entry parameters.
	(Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
	and Ada 2005 models of requeue.
	(Null_Statements): Still connsider do-end block null if it contains
	Unreferenced and Warnings pragmas.
	(Expand_N_Accept_Statement): Do not optimize away null do end if
	dispatching policy is other than defaulted.
	(Expand_N_Timed_Entry_Call): When the triggering statement is a
	dispatching call, manually analyze the delay statement.
	(Find_Parameter_Type): Move subprogram to Sem_Util.

2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
	_Disp_Requeue occupies dispatch table slot number 15. Move
	_Disp_Timed_Select to slot 16.
	(Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
	generate the spec and body of _Disp_Reqeueue.
	(Make_DT): Build and initialize the second dispatch table.
	Handle initialization of RC_Offset when the parent
	is a private type with variable size components.
	(Make_Secondary_DT): Complete documentation. Add support to
	initialize the second dispatch table.
	(Make_Tags): Generate the tag of the second dispatch table.
	(Register_Primitive): Add support to register primitives in the
	second dispatch table.

2007-12-13  Pascal Obry  <obry@adacore.com>

	* expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
	Windows. This signal is used by gnatmake to kill child processes for
	example.

2007-12-13  Javier Miranda  <miranda@adacore.com>

	* exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
	support for generic dispatching constructor calls in which we need to
	locate the tag of a secondary dispatch table associated with an
	interface type to properly dispatch the call.
	(Expand_N_Attribute_Reference [case Address],
	Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
	handling of VM targets.

2007-12-13  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
	assert fail

	* ug_words: Add entries for -gnatw.a -gnatw.A

	* sem_res.adb (Set_String_Literal_Subtype): If the context of the
	literal is a subtype with non-static constraints, use the base type of
	the context as the base of the string subtype, to prevent type
	mismatches in gigi.
	(Resolve_Actuals): If the actual is an entity name, generate a
	reference before the actual is resolved and expanded, to prevent
	spurious warnings on formals of enclosing protected operations.
	(Analyze_Overloaded_Selected_Component): If type of prefix if
	class-wide, use visible components of base type.
	(Resolve_Selected_Component): Ditto.
	(Resolve_Short_Circuit): Detect case of pragma Assert argument
	evaluating to False, and issue warning message.

	* usage.adb: Add lines for -gnatw.a and -gnatw.A

2007-12-13  Emmanuel Briot  <briot@adacore.com>

	* g-calend.ads (No_Time): New constant, to represent an uninitialized
	time value

	* g-catiio.ads, g-catiio.adb (Value): Added support for more date
	formats.
	(Month_Name_To_Number): New subprogram

	* g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
	letter to upper-case.

2007-12-13  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target

	* layout.adb (Resolve_Attribute, case 'Access): If designated type of
	context is a limited view, use non-limited view when available. If the
	non-limited view is an unconstrained array, this enforces consistency
	requirements in 3.10.2 (27).
	(Layout_Type): For an access type whose designated type is a limited
	view, examine its declaration to determine if it is an unconstrained
	array, and size the access type accordingly.
	(Layout_Type): Do not force 32-bits for convention c subprogram
	pointers in -gnatdm mode, only if real vms target.

	* sem_attr.adb (Analyze_Access_Attribute): Use new flag
	Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
	(Analyze_Access_Attribute,Attribute_Address): Remove checks for
	violations of the No_Implicit_Dynamic_Code restriction.
	(Resolve_Attribute, case 'Access): If designated type of context is a
	limited view, use non-limited view when available. If the non-limited
	view is an unconstrained array, this enforces consistency requirements
	in 3.10.2 (27).
	(Layout_Type): For an access type whose designated type is a limited
	view, examine its declaration to determine if it is an unconstrained
	array, and size the access type accordingly.

2007-12-13  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
	object directory of main project does not exist.
	On VMS, correctly set then environment variable for the source
	directories.

2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>

	* g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
	set to True this procedure will create the value of type REG_EXPAND_SZ.
	It was only possible to create REG_SZ values before.

2007-12-13  Robert Dewar  <dewar@adacore.com>

	* g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
	g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
	namet-sp.adb, namet-sp.ads: New files.

	* g-speche.adb: Use generic routine in g-spchge

	* s-wchcnv.ads, s-wchcnv.adb:
	Minor code cleanup (make formal type consistent with spec)

	* namet.adb: Update comments.

	* par-endh.adb (Evaluate_End_Entry): Use new
	Namet.Sp.Is_Bad_Spelling_Of function

	* par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function

	* sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
	ancestor is an access type initialized with a box, set its type
	explicitly, for use in subsequent expansion.
	(Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
	function

2007-12-13  Robert Dewar  <dewar@adacore.com>

	* g-spipat.adb (Break): Fix accessibility error (vsn taking not null
	access Vstring)

2007-12-13  Robert Dewar  <dewar@adacore.com>

	* inline.adb (Back_End_Cannot_Inline): Use new flag
	Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined

	* sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
	Has_Pragma_Inline_Always instead.
	of obsolete function Is_Always_Inlined
	(Build_Body_To_Inline): Same change
	(Cannot_Inline): Same change
	Do not give warning on exception raise in No_Return function

	* sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
	component has two inconsistent component clauses in the same record
	representation clause, favor the message that complains about
	duplication rather than inconsistency.
	Update comments.
	(Record_Representation_Clause): Do not warn on missing component
	clauses for inherited components of a type extension.
	(Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
	an overloadable item if it is a pragma that can apply to multiple
	overloadable entities (e.g. Inline) because a pragma cannot be on
	more than one chain at a time.
	(Validate_Unchecked_Conversion): Add code to warn on unchecked
	conversion where one of the operands is Ada.Calendar.Time.
	(Analyze_Attribute_Definition_Clause): Fix typo in error message.
	For now, ignore Component_Size clause on VM targets, as done for
	pragma Pack.

2007-12-13  Emmanuel Briot  <briot@adacore.com>
	    Vincent Celier  <celier@adacore.com>

	* prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
	string
	(Must_Check_Configuration, Default_Language_Is_Ada): new flags in
	prj.ads
	(Hash): Move instantiation of System.HTable.Hash from spec to body
	(prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
	systems, since we do not need to recompute the Name_Id for the canonical
	file name.
	(Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
	as a parameter. This parameter is in fact always "ada" in all calls, and
	we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
	while loading a project with 40000 files

	* prj-attr.adb: Fix name of attribute Dependency_Driver
	Change the kind of indexing for attribute Root

	* prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
	variables already declared, in case constructions.

	* prj-env.adb (Initialize): Reset Current_Source_Path_File and
	Current_Object_Path_File to No_Path.

	* prj-ext.adb (Initialize_Project_Path): In multi language mode, use
	ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.

	* prj-makr.adb: new parameter Current_Dir

	* prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
	Ada sources when language is not Ada.
	Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
	(Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
	(Must_Check_Configuration, Default_Language_Is_Ada): new flags.
	(Locate_Directory): Always resolve links when computing Canonical_Path
	(Look_For_Sources): Make sure that Name_Buffer contains the file name
	in Source_Files before checking for the presence of a directory
	separator.
	Optimize calls to Name_Find when on case sensitive systems.
	(Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
	as a parameter.
	(Prj.Nmsc.Check): new parameter Current_Dir
	(Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
	cannot be empty and the spec suffix cannot be the same as the body or
	separate suffix.
	(Get_Unit): When a file name can be of several unit kinds (spec, body or
	subunit), always consider the longest suffix.
	(Check_Configuration): Do not issue an error if there is no compiler
	for a language. Just issue a warning and ignore the sources for the
	language.
	(Check_Library_Attributes): Only check Library_Dir if Library_Name is
	not empty.
	(Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
	(Unit_Exceptions): New hash table
	(Check_Naming_Schemes): Check if a file that could be a unit because of
	the naming scheme is not in fact a source because there is an exception
	for the unit.
	(Look_For_Sources): Put the unit exceptions in hash table
	Unit_Exceptions
	(Get_Unit_Exceptions): Give initial value No_Source to local variable
	Other_Part to avoid exception when code is compiled with validity
	checking.
	(Get_Sources_From_File): Check that there is no directory information
	in the file names.
	(Look_For_Sources): Check that there is no directory information in the
	list of file names in Source_Files.
	(Look_For_Sources): In multi-language mode, do not allow exception file
	names that are excluded.
	(Excluded_Sources_Htable): New hash table
	(Search_Directories.Check_File): New procedure to simplify
	Search_Directories.
	(Search_Directories): Do not consider excluded sources
	(Look_For_Sources): Populate Excluded_Sources_Htable before calling
	Search_Directories.
	(Get_Exceptions): Set component Lang_Kind of Source_Data
	(Get_Unit_Exceptions): Ditto
	(Search_Directories): Ditto

	* prj-pars.adb: new parameter Current_Dir

	* prj-part.ads, prj-part.adb:
	Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
	(Opt.Follow_Links_For_Dirs): New flag
	(Project_Path_Name_Of): Cache information returned by this routine as
	Locate_Regular_File is a costly routine. The code to output a log
	information and the effective call to Locate_Regular_File is now
	factorized into a routine (code clean-up).
	(Parse, Parse_Single_Project): new parameter Current_Dir
	When main project file cannot be found, indicate in the error
	message the project path that was used to do the search.

	* prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
	(Prj.Proc.Process*): new parameter Current_Dir

	* switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files

2007-12-13  Bob Duff  <duff@adacore.com>

	* restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
	procedure to be called from the back end to check the
	No_Implicit_Dynamic_Code restriction.

2007-12-13  Arnaud Charlet  <charlet@adacore.com>

	* rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
	Fixes another case where RTE_Available_Call was ignored instead of being
	taken into account.
	(Load_Fail): Ditto.

	* rtsfind.ads: Add new entries.

2007-12-13  Robert Dewar  <dewar@adacore.com>

	* g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
	g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.

	* scn.adb: Implement BOM recognition

2007-12-13  Thomas Quinot  <quinot@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
	subprogram body that acts as its own spec may not have a non-private
	WITH clause on a private sibling.
	(Build_Unit_Name): If the parent unit in the name in a with_clause on a
	child unit is a renaming, create an implicit with_clause on that
	parent, and not on the unit it renames, to prevent visibility errors
	in the current unit.

2007-12-13  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
	renaming declaration, use the Slocs of the formal parameters from the
	declaration of the formal subprogram when creating the formal parameter
	entities in the renaming declaration.
	(Analyze_Formal_Type_Declaration): Change the placement of the error
	message concerning illegal known discriminants. It is now posted on the
	type rather than on the first discriminant. This change ensures early
	error report.
	(Freeze_Subprogram_Body): If the generic subprogram is nested within
	the package body that contains the instance, do not generate an
	out-of-place freeze node for the enclosing package.
	(Collect_Previous_Instantiations): Ignore internal instantiations
	generated for formal packages.
	(Validate_Derived_Type_Instance): Add a check that when a formal
	derived type is Known_To_Have_Preelab_Init then the actual type must
	have preelaborable initialization, and issue an error when this
	condition is violated.

2007-12-13  Robert Dewar  <dewar@adacore.com>

	* s-imenne.adb, s-imenne.ads: New files.

	* s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
	s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
	s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
	s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
	s-imgwch.ads: New calling sequence for Image routines to avoid sec
	stack usage.

2007-12-13  Javier Miranda  <miranda@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
	generation of spurious error if parent is an interface type; caused
	because predefined primitive bodies will be generated later by
	Freeze_Record_Type.
	(Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
	flag.
	(Derive_Subprograms): Handle derivations of predefined primitives
	after all the user-defined primitives to ensure that they are
	found in proper order in instantiations.
	(Add_Interface_Tag_Components, Inherit_Components): Update occurrences
	of Related_Interface to Related_Type.
	(Record_Type_Declaration): Minor reordering of calls to decorate the
	Tag component because the entity must have set its Ekind attribute
	before setting its Is_Tag attribute.
	(Analyze_Subtype_Declaration): In the case of subtypes with
	Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.

2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Selected_Component): Include the requeue
	statement to the list of contexts where a selected component with a
	concurrent tagged type prefix should yield a primitive operation.
	(Find_Primitive_Operation): Handle case of class-wide types.
	(Analyze_Overloaded_Selected_Component): If type of prefix is
	class-wide, use visible components of base type.
	(Resolve_Selected_Component): Ditto.
	(Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
	formal of a generic subprogram. find candidate interpretations by
	scanning the list of generic formal declarations.:
	(Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
	type from a limited_with_clause, and the full view is available, use it
	for subsequent semantic checks.
	(Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
	(Find_Primitive_Operation): New function.
	(Analyze_Overloaded_Selected_Component): insert explicit dereference
	only once if several interpretations of the prefix yield an access type.
	(Try_Object_Operation): Code and comment cleanup.
	(Analyze_Selected_Component): Reorder local variables. Minot comment and
	code reformatting. When the type of the prefix is tagged concurrent, a
	correct interpretation might be available in the primitive and
	class-wide operations of the type.

2007-12-13  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
	renaming entry as subprogram using rename-as-body if subprogram spec
	frozen.
	(Use_One_Type): The clause is legal on an access type whose designated
	type has a limited view.
	(Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
	(Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
	(Analyze_Renamed_Primitive_Operation): new procedure to determine the
	operation denoted by a selected component.
	(Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
	it can be an expression, possibly overloaded, that returns a task or
	an access to one.

2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
	requeue statement is dispatching. Do not emit an error when the name is
	not an entry and the context is a dispatching select. Add code to
	perform subtype conformance between the formals of the current entry
	and those of the target interface primitive.
	(Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
	Timed_Entry_Call): Analyze the triggering statement as the first step of
	the processing. If this is a dispatching select, postpone the analysis
	of all select statements until the Expander transforms the select. This
	approach avoids generating duplicate identifiers after the Expander has
	replicated some of the select statements. In case the Expander is
	disabled, perform regular analysis.
	(Check_Triggering_Statement): New routine.
	(Analyze_Requeue): Exclude any interpretations that are not entries when
	checking overloaded names in a requeue. Also test type conformance for
	matching interpretations rather than requiring subtype conformance at
	that point to conform with the RM's resolution rule for requeues.

2007-12-13  Ed Schonberg  <schonberg@adacore.com>

	* sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
	inherited operation is a defaulted tag-indeterminate call, and there is
	a statically tagged actual, use the static tag as a controlling actual
	for the defaulted actual.

2007-12-13  Geert Bosch  <bosch@adacore.com>

	* sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
	context, so do not call Check_Non_Static_Context.

2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
	whether formal E is an entity which may have parameters.

2007-12-13  Bob Duff  <duff@adacore.com>
	    Javier Miranda  <miranda@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
	(Set_Convention): New procedure to set the Convention flag, and in
	addition make sure the Favor_Top_Level flag is kept in sync (all
	foreign-language conventions require Favor_Top_Level = True).
	(Collect_Abstract_Interfaces): Update occurrences of Related_Interface
	to Related_Type.
	(Collect_Interfaces_Info): Minor update to handle the two secondary
	dispatch tables. Update occurrence of Related_Interface to Related_Type.
	(Generate_Parent_Ref): Add parameter to specify entity to check
	(Is_Preelaborable_Expression): Allow the name of a discriminant to
	initialize a component of a type with preelaborable initialization.
	This includes the case of a discriminal used in such a context.
	(Is_Dependent_Component_Of_Mutable_Object): Take into account the
	latest Ada 2005 rules about renaming and 'Access of
	discriminant-dependent components.
	(Check_Nested_Access): Add handling when there are no enclosing
	subprograms (e.g. case of a package body).
	(Find_Parameter_Type): Factor routine from several other compiler files.
	Remove routine from Find_Overridden_Synchronized_Primitive.

2007-12-13  Thomas Quinot  <quinot@adacore.com>

	* sinput.adb (Get_Source_File_Index): Add assertion to guard against
	an invalid access to an uninitialized slot in the
	Source_File_Index_Table.

2007-12-13  Thomas Quinot  <quinot@adacore.com>

	* sinput-l.adb (Load_File): Disable style checks when preprocessing.

2007-12-13  Bob Duff  <duff@adacore.com>

	* s-soflin.ads: Apply new pragma Favor_Top_Level to all
	access-to-subprogram types in this package.

2007-12-13  Olivier Hainque  <hainque@adacore.com>

	* s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
	with Stack_Grows_Down in System.Parameters. Rename Array_Address into
	Stack_Overlay_Address and document that we are using an internal
	abstraction.
	(Byte_Size, Unsigned_32_Size): Remove, now useless.
	(Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
	consistently throughout the various implementation pieces.

	* s-stausa.adb (Stack_Slots): New type, abstraction for the stack
	overlay we are using to fill the stack area with patterns.
	(Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
	(Push_Index_Step_For, Pop_Index_Step_For): Likewise.
	(Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.

2007-12-13  Robert Dewar  <dewar@adacore.com>

	* s-stoele.adb ("mod"): mod negative value raises Constraint_Error

2007-12-13  Arnaud Charlet  <charlet@adacore.com>

	* s-tassta.adb:
	(Create_Task): Take into account tasks created by foreign threads.
	Code clean up: use constants instead of hard coded values.

2007-12-13  Robert Dewar  <dewar@adacore.com>

	* styleg.adb (Check_Comment): More liberal rules for comment placement

2007-12-13  Olivier Hainque  <hainque@adacore.com>

	* tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
	of Procedure Value instead of Frame Pointer as the invocation
	identifier associated with the instruction pointer in each traceback
	entry.

	* g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
	TB_Entry_For): Revert back to use of Procedure Value instead of Frame
	Pointer as the invocation identifier passed to tbk$symbolize.

	* s-traent-vms.ads, s-traent-vms.adb
	(Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
	Procedure Value instead of Frame Pointer as the invocation identifier
	passed to tbk$symbolize.

2007-12-13  Robert Dewar  <dewar@adacore.com>

	* tbuild.ads, tbuild.adb:
	Fix location of flag for unrecognized pragma message

2007-12-13  Robert Dewar  <dewar@adacore.com>

	* treepr.ads, treepr.adb: (pl): implement use of positive value
	shorthands

2007-12-13  Robert Dewar  <dewar@adacore.com>

	* xeinfo.adb: Remove warnings
	* xnmake.adb: Remove warnings
	* xsinfo.adb: Remove warnings
	* xtreeprs.adb: Remove warnings
	* xsnames.adb: Remove warnings

	* a-ngcoar.adb: Fix typo.
	* s-interr.adb: Minor reformatting
	* env.c: Minor reformatting.
	* g-bytswa.adb: Minor reformatting.
	* g-rannum.ads: Minor documentation improvements
	* s-tasinf-mingw.adb: Minor header fix
	* a-clrefi.adb: Minor reformatting
	* g-sttsne.ads: Minor documentation improvement
	* g-sttsne-locking.ads: Minor documentation improvement
	* g-soliop-solaris.ads: Minor documentation improvement
	* g-soliop-mingw.ads: Minor documentation improvement
	* g-soliop.ads: Minor documentation improvement
	* exp_aggr.ads: Minor reformatting
	* debug.adb: Add documentation for the gprbuild debug flags
	* exp_ch2.adb: Use Nkind_In to simplify code throughout
	* exp_pakd.adb: Minor reformatting

	* g-altive.ads, g-alleve.adb: Remove assertions.
	Add comment about minor differences between targets regarding
	floating-point operations.

	* g-thread.adb: Remove pragma unreferenced.
	* lib.ads: Minor reformatting
	* par-ch9.adb: Minor reformatting of error messages
	* sem_case.adb: Minor reformatting
	* s-fileio.adb: Minor reformattinng
	* s-vmexta.ads: Minor typo
	* vxaddr2line.adb:
	Take into account 'Success' value as per new GNAT warning.

2007-12-13  Vincent Celier  <celier@adacore.com>

	* a-direct.adb (Create_Path): Always take '/' as a directory separator,
	even on Windows

2007-12-13  Robert Dewar  <dewar@adacore.com>
	    Bob Duff  <duff@adacore.com>

	* gnat_ugn.texi: Dcoument new rules for style check comment alignment
	Document that suffixes may be terminations of each others
	Add doc for -gnatw.a and -gnatw.A
	Document gnatbind -Wx switch
	Document BOM recognition
	Document pragma Implemented_By_Entry.
	Document new units.

	* gnat_rm.texi: (Favor_Top_Level): Document new pragma.
	Add doc for pragma Unreferenced suppressing no entities referenced msg
	Add documentation of GNAT.Directory_Operations.Iteration
	Add documentation of GNAT.Random_Numbers
	Add documentation for pragma Shared.
	Correct documentation for Bit_Order
	Add documentation for the Pool_Address attribute.
	Fix and improve documentation of pragma machine_attribute.
	New pragma Fast_Math
	Document BOM recognition

	* vms_data.ads: Add entries for -gnatw.a -gnatw.A
	Add /Wide_Character_Encoding for binder
	Add qualifier for the new gnatpp option --no-separate-loop-then

2007-12-13  Matthew Heaney  <heaney@adacore.com>

	* a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
	which generic formal operations are called for each operation.

2007-12-13  Olivier Hainque  <hainque@adacore.com>

	* tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
	(__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.

2007-12-13  Emmanuel Briot  <briot@adacore.com>

	* s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
	Reference_Dir unless we actually need it.

2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
	    Tristan Gingold  <gingold@adacore.com>

	* g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.

	* s-osprim-vms.adb,
	a-calend-vms.adb: Remove pragma warning off and add pragma
	unreferenced.

2007-12-13  Robert Dewar  <dewar@adacore.com>

	* impunit.adb: Add entries for missing units

	* Makefile.rtl: Add new run-time units.

	* Make-lang.in:  Update dependencies.

2007-12-13  Bob Duff  <duff@adacore.com>

	* itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
	types, set Can_Use_Internal_Rep appropriately, based on
	Always_Compatible_Rep_On_Target.

2007-12-13  Gary Dismukes  <dismukes@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
	it to the front end and setting the aamp_target environment variable
	to the switch's argument to ensure that gnaampbind and gnaamplink will
	take the specified library into account.
	(Make): Only set Check_Object_Consistency to False for JVM, not for CIL
	target, since the CIL compiler supports an "object" file (.il files).

2007-12-13  Vincent Celier  <celier@adacore.com>

	* symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
	(Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.

2007-12-13  Geert Bosch  <bosch@adacore.com>

	* s-parame-vxworks.adb:
	Update comments to reflect usage of this package by Nucleus.

2007-12-13  Arnaud Charlet  <charlet@adacore.com>

	* i-vxwork.ads: Kill new warning on Convention C, since changing the
	spec would break code.

	* i-forbla-unimplemented.ads, vx_stack_info.c: New files.

	* system-vxworks-alpha.ads: Removed.

2007-12-10  Eric Botcazou  <ebotcazou@adacore.com>

	* ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.

2007-12-09  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/34366
	* sem_ch3.adb (Designates_T): New function.
	(Mentions_T): Factor reusable part of the logic into Designates_T.
	Consider non-access parameters and access and non-access result.
	(Check_Anonymous_Access_Components): Set ekind of anonymous access to
	E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.

	* einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.

2007-12-07  Ludovic Brenta  <ludovic@ludovic-brenta.org>

	PR ada/34361
	* mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
	the new implementation of target-specific calls.

2007-12-07  Olivier Hainque  <hainque@adacore.com>

	* decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
	the designated full view, only follow a second level Full_View link
	for Non_Limited_Views of from_limited_with references.

2007-12-07  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/15805
	* sem_ch6.adb (Process_Formals): Prevent an access type formal
	to be initialized with an access to constant object.

	* sem_ch3.adb (Analyze_Object_Declaration): Signal an error
	when an access to constant is used to initialize an access
	value.

	PR ada/21346
	* a-direct.adb (Compose): Containing_Directory can be an empty string.

2007-12-07  Olivier Hainque  <hainque@adacore.com>

	PR ada/34173
	* decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
	the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
	this is from an alignment clause on the GNAT entity.
	* utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
	to distinguish the case where we set it from the type's alignment.
	When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
	whether this alignment was set from an explicit alignment clause.

2007-12-06  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (make_packable_type): Revert last change.
	(gnat_to_gnu_field): Avoid setting size and position multiple times.
	* utils.c (finish_record_type): Retrieve the real name of the type.

2007-12-05  Eric Botcazou  <ebotcazou@adacore.com>

	* trans.c (lvalue_required_p): Take base node directly instead
	of its parent.  Rename second parameter to 'gnu_type'.
	<N_Indexed_Component>: Return 0 if the node isn't the prefix.
	<N_Slice>: Likewise.
	(Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
	Adjust calls to lvalue_required_p.

2007-12-05  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/21489
	* exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
	parameters of an entry call.

2007-12-03  Robert Dewar  <dewar@adacore.com>
	    Samuel Tardieu  <sam@rfc1149.net>

    	PR ada/34287
    	* sem_util.adb (Safe_To_Capture_Value): Do not capture values
    	of variables declared in a library-level package.

2007-12-02  Samuel Tardieu  <sam@rfc1149.net>

	* clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
	of Empty_String'Unchecked_Access.

	* Makefile.in: Add support for sh4-linux.

	* system-linux-sh4.ads: New file.

2007-12-01  Kostik Belousov  <kostikbel@ukr.net>

	PR ada/33722
	* env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
	and its argument must not be free()ed.

2007-11-29  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (make_packable_type): Retrieve the real name of the type.
	(maybe_pad_type): Simplify similar code.

2007-11-28  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/15804
	* par-ch3.adb (P_Variant_Part): Signal an error when anything other
	than an identifier is used after "case" in a variant_part.

	PR ada/17318
	* par-ch4.adb (Is_Parameterless_Attribute): New map.
	(P_Name, Scan_Apostrophe block): Parse left parenthesis following
	attribute name or not depending on the new map.

	* sem-attr.adb (Analyze_Attribute): Parameterless attributes
	returning a string or a type will not be called with improper
	arguments.

	* sem-attr.ads (Attribute_Class_Array): Move to snames.ads.

	* snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.

	PR ada/32792
	* sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
	Signal an error when attribute argument is a fixed-point value of
	an unknown type.

	PR ada/22559
	* sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
	a derived ordinary fixed point type.

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
	RM_Size when a Small clause is found.

2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>

	PR 34081/C++
	* trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
	Pass 'false' for the new allocate_struct_function parameter.
	* utils.c (build_function_stub): Likewise.

2007-11-25  Richard Guenther  <rguenther@suse.de>

	* utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
	(gnat_poplevel): Likewise.

2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
	strict alignment, no alignment clause and a known static size, cap
	the type alignment to the greatest power of 2 factor of the size.
	(gnat_to_gnu_field): If the field has a component clause, is aliased
	or of a type with strict alignment, require that its size be equal to
	that of the type.
	(validate_size): Use the type size as the minimum size for a type with
	strict alignment.

2007-11-23  Samuel Tardieu  <sam@rfc1149.net>

	* s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
	s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
	s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
	Use 'Access instead of 'Unchecked_Access in second and third
	arguments of pthread_sigmask.

2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (ceil_alignment): New function.
	(gnat_to_gnu_entity): Use it to set the alignment on atomic types.
	(make_packable_type): Likewise.

2007-11-22  Olivier Hainque  <hainque@adacore.com>

	* trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
	to fit in 80 columns.

2007-11-21  Aurelien Jarno  <aurelien@aurel32.net>

	* s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
	* Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.

2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/34098
	* misc.c (gnat_adjust_rli): Delete.
	(gnat_init): Do not initialize the translation code here.
	Do not call set_lang_adjust_rli.
	* trans.c (init_code_table): Make static.
	(gnat_init_stmt_group): Delete.
	(gigi): Initialize the translation code entirely here.
	Emit debug info for the common types here instead of...
	* utils.c (gnat_init_decl_processing): ...here.
	* gigi.h (init_code_table): Delete.
	(gnat_init_stmt_group): Likewise.

2007-11-16  Olivier Hainque  <hainque@adacore.com>

	* utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
	retrieving an allocator return value from a super-aligned address from
	here to ...
	* trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
	expect a super-aligned address for a fat or thin pointer.

2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>

	* trans.c (call_to_gnu): Always set the source location on the call
	expression.  If the function returns-by-target, also set it on the
	address expression.

2007-11-14  Samuel Tardieu  <sam@rfc1149.net>

	* adaint.c, init.c, initialize.c, link.c: Remove system-specific
	sections of non-supported Interix target.

	* s-osinte-interix.ads: Removed.

	* i-cstrin.ads (chars_ptr): Make it a C convention type.

2007-11-13  Samuel Tardieu  <sam@rfc1149.net>

	* a-tasatt.adb: Add a comment at the beginning of the package
	explaining why in general 'Unchecked_Access must be used instead
	of 'Access.

	* sem_prag.adb (Process_Convention): Move the test for the
	entity on which the Convention pragma applies down to also
	forbid pragma Convention on enumeration literals reached
	through renamings.

2007-11-10  Samuel Tardieu  <sam@rfc1149.net>

	* a-tasatt.adb: Revert previous change for this file as it will
	generate an error when this package is instantiated from a
	local context.

2007-11-07  Samuel Tardieu  <sam@rfc1149.net>

	* a-tasatt.adb: Type Wrapper should be declared in comment instead
	of already declared type Node_Access.
	Use 'Access instead of 'Unchecked_Access when applicable. Local
	lifetime is the one of the package.
	(Set_Value): W is allocated on the heap.

	* g-socket.adb: Use 'Access instead of 'Unchecked_Access when
	applicable.
	(Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
	access type.
	(Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
	access type.

	* s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
	applicable.
	(elaboration code): Timer_Queue lifetime is the one of the
	package.

	* tracebak.c (i386 alternative): Remove useless comparaison
	which is always false; LOWEST_ADDRESS is 0 and is never greater
	than an unsigned integer.

	* sem_attr.adb (Analyze_Attribute): Remove duplicate identical
	embedded check for "Ada_Version >= Ada_05".

2007-11-07  Olivier Hainque  <hainque@adacore.com>

	* decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
	craft and expand comment.

2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>

	* lang-specs.h: Move translation of -fRTS= after -gnatez switch.

2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>

	* misc.c (gnat_handle_option): Replace call to abort with
	call to gcc_unreachable.
	(gnat_init): Likewise.
	(gnat_expand_expr): Likewise.
	(fp_prec_to_size): Likewise.
	(fp_size_to_prec): Likewise.

2007-10-23  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/33608
	* tracebak.c: #undef abort after including system.h.

2007-10-20  Danny Smith  <dannysmith@users.sourceforge.net>

	* Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
	s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
	for win32 targets.
	(EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.

2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>

	* s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
	Set the protection status of the guard page based on the value of On.

	* s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.

	* s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
	(Exit_Task): Pass False to Hide_Yellow_Zone.

2007-10-15  Robert Dewar  <dewar@adacore.com>

	* s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
	s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
	a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
	checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
	freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
	gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
	mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
	prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
	sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
	s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
	uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
	a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
	a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
	a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
	a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
	a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
	Minor reformatting.
	Add Unreferenced and Warnings (Off) pragmas for cases of
	variables modified calls where they are IN OUT or OUT parameters and
	the resulting values are not subsequently referenced. In a few cases,
	we also remove redundant code found by the new warnings.

	* ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
	sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
	sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
	sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
	warning controlled by -gnatw.o that warns on cases of out parameter
	values being ignored.

2007-10-15  Geert Bosch  <bosch@adacore.com>

	* adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.

	* expect.c: Initial port to arm-mentor-nucleus.
	Use kill for __gnat_kill() on VMS.

2007-10-15  Emmanuel Briot  <briot@adacore.com>

	* ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
	value.
	(Xref_Record): Change type for Line, since in the case of a reference to
	a predefined entity (as happens for array index types), the line is set
	to 0.
	Add support for parsing multiple array index types info, or
	multiple inherited interfaces info. This information cannot be stored
	in Xref_Entity_Record, which only supports a single instance of Tref_*,
	and is therefore stored in the list of references instead. It has a
	special treatement later on in tools that use this information.

2007-10-15  Tristan Gingold  <gingold@adacore.com>

	* debug.adb: Document use of -gnatd.a and -gnatd.I

	* layout.adb: On OpenVMS -gnatd.a disables alignment optimization.

2007-10-15  Javier Miranda  <miranda@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
	Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
	care of access to class-wide interface types plus removal of bizarre
	conversion of tagged object to access type (reported by Gary
	Dismukes). After this patch there is no need to perform any
	additional management on these nodes in Expand_Interface_Actuals.

	* exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
	that handles use of 'Access and 'Unchecked_Access applied to
	actuals covering interface types. Such code is now
	centralized in Expand_N_Attribute_Reference.

2007-10-15  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
	of tagged types whose ultimate ancestor is a CPP type.
	(Freeze_Array_Type): For a packed array type, generate an initialization
	procedure if the type is public, to handle properly a client that
	specifies Normalize_Scalars.

2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
	inside a generic body, retrieve the full view of the entry family
	discrete subtype if available.

2007-10-15  Thomas Quinot  <quinot@adacore.com>

	* exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
	attempt to generate stubs for hidden primitive operations.

2007-10-15  Vincent Celier  <celier@adacore.com>

	* mlib-tgt-specific.adb (Support_For_Libraries): New function,
	returning None, used when there is no platform specific body for
	MLib.Tgt.Specific.

2007-10-15  Bob Duff  <duff@adacore.com>

	* sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
	(passing'Unrestricted_Access of nested subprograms to Sort) with use of
	the generic Heap_Sort_G, in order to avoid trampolines.

2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
	    Jose Ruiz  <ruiz@adacore.com>

	* vx_stack_info.c: New file.

	* i-forbla-unimplemented.ads: New file.

	* Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
	for unsupported configurations; use it on VMS targets instead of the
	real one.
	(EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
	vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
	used by VxWorks targets to have access to task-specific data and be
	able to extract the stack boundaries for stack checking.
	Use system-vms-ia64.ads on ivms.

	* Make-lang.in: Update dependencies.

	* sysdep.c (__gnat_get_stack_info): Move to a standalone file
	(vx_stack_info.c).

2007-10-15  Vincent Celier  <celier@adacore.com>

	* snames.adb, snames.ads: Add new standard name runtime_library_dir

	* prj.ads (Language_Config): Add new component Runtime_Library_Dir

	* prj-attr.adb: Add project level attribute Runtime_Library_Dir

	* prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
	the source is unknown.

	* prj-ext.adb: Spelling error fix

	* prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
	95 reserved word in its name.
	(Process_Project_Level_Array_Attributes): Process new attribute
	Runtime_Library_Dir.

	* prj-part.adb (Parse_Single_Project): Do not check the name of the
	config project against the user project names.

	* prj-proc.adb (Expression): In multi-language mode, indexes that do
	not include a dot are always case insensitive.
	(Process_Declarative_Items): Ditto
	(Process_Project_Tree_Phase_1): Set Success to False in case an error is
	detected.

	* prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
	True, compare both indexes in lower case.

2007-10-15  Robert Dewar  <dewar@adacore.com>

	* rtsfind.adb: (Load_RTU): Turn off style checks for Load call

2007-10-15  Gary Dismukes  <dismukes@adacore.com>

	* sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
	association for an access component, add an association with null as
	the expression. Remove testing for array subtypes and the setting in
	that case of Ctyp to the array component type, which prevented proper
	inclusion of an association for null-initialized arrays. Collapse
	condition that tests for array subtypes into just a test of
	Is_Partially_Initialized_Type (which already covers arrays anyway).

2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch12.adb: Minor code reformatting.
	(Check_Generic_Child_Unit): Iterate over the homonym chain in order to
	find the parent package which may have been hidden by local
	declarations.

2007-10-15  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
	flag of derived concurrent types, taking into account the flag setting
	on the parent subtype and any new set of discriminants.

2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch4.adb: Minor code and comment reformatting.
	(Analyze_Allocator): When the designated type of an unconstrained
	allocator is a record with unknown discriminants or an array with
	unknown range bounds, emit a detailed error message depending on the
	compilation mode and whether the designated type is limited.

2007-10-15  Tristan Gingold  <gingold@adacore.com>

	* system-vms-ia64.ads: New file.

	* system-vms_64.ads: Minor comment fix.

2007-10-15  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
	body generated for a function with a controlling result that is a null
	extension, discard the generated body in favor of the current explicit
	one.

2007-10-15  Ed Schonberg  <schonberg@adacore.com>

	* sem_disp.adb (Find_Controlling_Arg): Examine the call node before
	examining its original form, to handle properly operator calls that
	have been rewritten.

2007-10-15  Olivier Hainque  <hainque@adacore.com>

	* tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
	instead of a procedure value in each traceback entry.

	* g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
	instead of procedure value to TBK$SYMBOLIZE.

	* s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
	field.
	(TB_Entry_For): Account for the PV/FP renaming.

	* s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
	add comment.
	(Null_TB_Entry): Account for change of component name.
	(PV_For): Rename as FP_For.

2007-10-15  Tristan Gingold  <gingold@adacore.com>

	* trans.c (gnat_to_gnu): Remove the padding structure more often.
	This optimize assignment to over-aligned record.

2007-10-15  Emmanuel Briot  <briot@adacore.com>

	* xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
	interfaces.

	* xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
	type, for dispatching calls.

2007-10-15  Vincent Celier  <celier@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Add documentation for switches --version and --help
	for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
	gnatxref, gnatfind, gnatls, and gnatclean.
	Document -gnatw.o.
	Mention attribute Excluded_Source_Dirs
	Replace obsolescent attribute Locally_Removed_Files with attribute
	Excluded_Source_Files.
	Improve documentation of -u (gnatbind)
	Document how to do reliable stack checking for the environmental task
	on iVMS.

	* gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
	Document attribute Excluded_Source_Files and indicate that attribute
	Locally_Removed_Files is obsolescent.

2007-10-15  Thomas Quinot  <quinot@adacore.com>

	* g-soccon-vms.ads: Fix value of MSG_WAITALL.

	* gen-soccon.c:
	Update documentation to note that OpenVMS 8.3 or later must be used
	to generate g-soccon-vms.ads.

	* atree.adb: Add ??? comment

	* exp_util.adb: Minor reformatting.
	Add ??? comment in Kill_Dead_Code.

2007-10-15  Robert Dewar  <dewar@adacore.com>

	* errout.ads: Comment clarification

	* exp_ch4.adb (Expand_N_Allocator): Code cleanup.
	(Expand_N_Op_Eq): Improve handling of array equality with -gnatVa

	* lib.ads: Comment update

	* init.c: Minor reformatting.

	* sem_attr.adb: Minor formatting

	* osint-b.ads: Minor reformatting

	* sem_ch9.adb: Implement -gnatd.I switch

	* g-comlin.adb: (Start): Fix handling of empty command line.

	* gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
	even when -rules follows the -cargs section.

2007-10-08  Ollie Wild  <aaw@google.com>

	* misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
	gnat_return_tree.
	(gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
	gnat_return_tree.
	(gnat_eh_runtime_type): Removed.
	(gnat_return_tree): New function.

2007-10-08  Ben Elliston  <bje@au.ibm.com>

	PR ada/33454
	Revert:
	2007-08-31  Ben Elliston  <bje@au.ibm.com>

	* Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
	when compiling for powerpc64-*-linux.
	* system-linux-ppc64.ads: New file.

2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>

	Mapped location support
	* back_end.adb (Call_Back_End): Pass information about source
	files instead of units to gigi.
	* gigi.h (struct File_Info_Type): New.
	(gigi): Rename and change type of number_units parameter, change
	type of file_info_ptr parameter.
	* trans.c (number_files): New global variable.
	(gigi): Rename and change type of number_units parameter, change
	type of file_info_ptr parameter.
	If mapped location support is enabled, create the isomorphic mapping
	between source files and line maps.
	(Sloc_to_locus): If mapped location support is enabled, translate
	source location into mapped location.
	(annotate_with_node): Rename into set_expr_location_from_node.
	Call set_expr_location instead of annotate_with_locus.
	(Pragma_to_gnu): Adjust for above change.
	(Loop_Statement_to_gnu): Likewise.
	(call_to_gnu): Likewise.
	(Handled_Sequence_Of_Statements_to_gnu): Likewise.
	(gnat_to_gnu): Likewise.
	(add_stmt_with_node): Likewise.
	(add_cleanup): Likewise.
	* utils.c (gnat_init_decl_processing): Do not set input_line.

2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch8.adb (Analyze_Use_Type): Code cleanup.
	(Applicable_Use): Emit a warning when a package tries to use itself.
	(Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
	is already in use or the package where it is declared is in use or is
	declared in the current package.
	(Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.

	* a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
	s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
	s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.

2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-calend-vms.adb, a-calend.adb:
	Add a section on leap seconds control along with two entities used to
	enable and disable leap seconds support. The array Leap_Second_Times is
	now constant and contains hard time values pre-generated. Remove
	all elaboration code used to populate the table of leap seconds.

	* bindgen.adb:
	Add entity Leap_Seconds_Support to the list of global run-time variables
	along with a comment on its usage and values.
	(Gen_Adainit_Ada): Add code to generate the declaration and import of
	Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
	or one (enabled) depending on the presence of binder switch "-y".
	(Gen_Adainit_C): Add code to generate the declaration of external int
	__gl_leap_seconds_support. Set is value to zero (disabled) or one
	(enabled) depending on the presence of binder switch "-y".

	* init.c: Add __gl_leap_seconds_support to the list of global values
	computed by the binder.

2007-09-26  Jerome Guitton  <guitton@adacore.com>

	* s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
	s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
	 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
	s-taprop-posix.adb (Stop_Task): New function, dummy implementation.

	* s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.

	* s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
	function which can be called by the debugger to interrupt the tasks of
	an Ada application asynchronously, as needed on VxWorks.
	(Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.

	* s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
	renamed from Stop_All_Tasks. Update comments.
	(Stop_All_tasks): New function declaration.

2007-09-26  Olivier Hainque  <hainque@adacore.com>

	* adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
	#include <utime.h> and #define GCC_RESOURCE_H before
	#include <sys/wait.h>.
	Add more protections in __gnat_translate_vms.

	* expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
	#include <sys/wait.h>.

2007-09-26  Thomas Quinot  <quinot@adacore.com>
	    Sergey Rybin  <rybin@adacore.com>

	* gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.

	* exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
	where it belongs.

	* opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.

	* rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
	where it belongs.

	* sem_dist.ads: Minor comment fix

	* tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.

2007-09-26  Javier Miranda  <miranda@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* a-tags.adb:
	(Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
	 indirection added to the HT_Link component of the TSD. This is required
	 to statically allocate the TSD.

	* a-tags.ads:
	Minor reordering of the declarations in the private part. Required to
	add a level of indirection to the contents of the TSD component HT_Link.
	This is required to statically allocate the TSD.

	* decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
	Is_Statically_Allocated set from constant objects.
	Do not make exported constants created by the compiler volatile.
	(gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
	as read-only.

	* trans.c (Identifier_to_gnu): For constants, unshare initializers
	before returning them.

	* exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
	public part of the package.
	(Make_DT): Move HT_Link component out of the TSD record. For this
	purpose Make_DT now declares a separate object that stores the
	HT_Link value, and initializes the TSD component with the address
	of this new object. The addition of this level of indirection is
	required to statically allocate the TSD because the TSD cannot
	have variable components.
	(Expand_Interface_Conversion): Improve the expanded code.
	(Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.

	* sem_disp.adb (Check_Dispatching_Operation): In case of a body
	declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
	if we are building static dispatch tables then we must not generate
	extra code to register the primitive because the dispatch table will
	be built at the end of the library package; otherwise we notify that
	we cannot build the static dispatch table.

2007-09-26  Robert Dewar  <dewar@adacore.com>

	* checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
	overlays.

	* sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
	(Analyze_Record_Representation_Clause): Suppress junk warning for
	missing component clause.
	(Analyze_Attribute_Definition_Clause, case Address): Apply the special
	tests for controlled type overlay to composites with controlled
	components.
	(Analyze_Record_Representation_Clause): Add reference for component name

2007-09-26  Javier Miranda  <miranda@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
	for thunks associated with interface types.

	* einfo.ads: Improve documentatation of Is_Internal
	(Is_Thunk): New attribute applicable to subprograms. True for thunks
	associated with interface types.
	Extensive comment fixes regarding flags that appear in all entities. The
	documentation is now consistent for all such flags (there were a number
	of errors in the documentation in this regard).

	* exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.

	* exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
	of these procedures are passed a function call that already has
	build-in-place actuals (testing new flag
	Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
	the case where processing continues.
	(Expand_Call): If the call is generated from a thunk body then we
	propagate the extra actuals associated with the accessibility
	level of the access type actuals.

	* sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
	of each extra formal of a protected operation to reference the
	corresponding extra formal of the subprogram denoted by the
	operation's Protected_Body_Subprogram.

	* sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
	N_Function_Call nodes.

2007-09-26  Robert Dewar  <dewar@adacore.com>

	* exp_ch5.adb: Activate memmove type processing if debug flag d.s is set

	* debug.adb: Add d.s flag.

2007-09-26  Gary Dismukes  <dismukes@adacore.com>

	* exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
	debug variable so that it won't be initialized when pragma
	Initialize_Scalars is in effect.

2007-09-26  Gary Dismukes  <dismukes@adacore.com>

	* freeze.adb (Freeze_Entity): Remove check for preelaborable
	initialization of a full view. This is moved to
	Analyze_Package_Specification.

	* sem_ch7.adb (Analyze_Package_Specification): Add check for
	preelaborable initialization of a full view in entity loop.
	(Uninstall_Declarations): If entity is a use-visible compilation unit,
	its child units are use-visible only if they are visible child units.

	* sem_util.adb (Is_Preelaborable_Expression): New function to determine
	whether an expression can be used within a type declaration that
	requires preelaborable init.
	(Check_Components): Replace inline code that does partial checking for
	preelaborable default expressions with call to
	Is_Preelaborable_Expression.
	(Has_Preelaborable_Initialization): In the case of a generic actual
	subtype, (that is, Is_Generic_Actual is True), return the result of
	applying Has_Preelaborable_Initialization to the generic actual's base
	type.

2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>

	* g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
	call to Jan_1_Day _Of_Week to optimize its performance.
	(Is_Leap): Move the routine to the scope of Week_In_Year.
	(Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
	weekday on which January 1 falls of Year - 1 and Year + 1. This function
	avoids calling Time_Of and Split, thus making it more efficent.
	(Week_In_Year): Reimplemented in oder to follow ISO 8601.

	* g-calend.ads (Week_In_Year): Change comment to reflect new
	implementation.

2007-09-26  Emmanuel Briot  <briot@adacore.com>

	* g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
	Command_Line): New types
	(Define_Alias, Define_Prefix, Free): New subprograms. These provide
	support for defining how switches can be grouped on a command line (as
	is the case for -gnatw... for GNAT), and how simple switches can be
	used as aliases for more complex switches (-gnatwa is same as
	-gnatwbcef...)
	(Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
	(Start, Current_*): New subprograms
	Added support for parsing an array of strings in addition to the real
	command line.
	(Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
	 be moved from the body to the private part of the spec.
	(*): All subprograms now have an extra parameter with default value to
	specify which parser should be used. For backward compatibility, it
	defaults to parsing the command line of the application. They were also
	modified to properly handle cases where each of the argument does not
	start at index 1 (which is always true for Ada.Command_Line, but not
	when processing any Argument_List).
	(Free): New subprogram
	(Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
	Argument): New subprograms
	(Switch_Parameter_Type): New enum, which clarifies the code. The extra
	special characters like ':', '=',... are now handled in a single place,
	which makes the code more extensible eventually.
	(Getopt, Full_Switch): When the switch was returned as part of the
	special character '*', make sure it is prepended by the switch character
	('-' in general), so that the application knows whether "foo" or "-foo"
	was specified on the command line.

2007-09-26  Florian Villoing  <villoing@adacore.com>

	* g-dirope.adb (Remove_Dir): In case we are removing directories
	recursively, make sure that if an exception is raised during the
	processing, the current working directory is reset to its initial
	value before propagating the exception.

2007-09-26  Vincent Celier  <celier@adacore.com>

	* gnatbind.adb: If there are several ALI files specified and there is
	a main program to bind, the first ALI is expected to contain the main
	subprogram and the names of the binder generated files will be derived
	from the first ALI file name.
	(Gnatbind): Fix insertion character in invocation of Error_Msg

2007-09-26  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb (Check_Files): Do not include sources that have been
	removed by attributes Exclude_Source_Files or Locally_Removed_Files.

2007-09-26  Ed Schonberg  <schonberg@adacore.com>

	* lib-xref.ads, lib-xref.adb: The entry for array types now carries
	information about each of its index types, following the type
	reference for its component type.

2007-09-26  Vincent Celier  <celier@adacore.com>

	* make.adb: (Kill): New procedure (__gnat_kill imported)
	(Running_Compile, Outstanding_Compiles): Global variables that
	were previously local to procedure Compile_Sources.
	(Sigint_Intercepted): Send signal SIGINT to all outstanding
	compilation processes.

	(Gnatmake): If project files are used, create the mapping of all the
	sources, so that the correct paths will be found.

	* prj-env.ads, prj-env.adb (Create_Mapping): New procedure

2007-09-26  Vincent Celier  <celier@adacore.com>

	* makeutl.ads (Main_Config_Project): Moved to gpr_util.ads

	* prj.ads, prj.adb (Default_Language): Remove function, no longer used
	Replace components Compiler_Min_Options and Binder_Min_Options with
	Compiler_Required_Switches and Binder_Required_Switches in record
	Language_Config.
	Remove components Default_Language and Config in Project_Tree_Data,
	no longer used.

	* prj-attr.adb: New attributes Required_Switches (<language>) in
	packages Compiler and Binder.

	* prj-nmsc.adb: Major rewrite of the processing of configuration
	attributes for gprbuild. No impact on GNAT tools.

	* prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
	process configuration attributes: this is done in Prj.Nmsc.Check.
	(Recursive_Process): Make a full copy of packages inherited from project
	being extended, instead of a shallow copy.
	(Process_Project_Tree_Phase_1): New procedure
	(Process_Project_Tree_Phase_1): New procedure
	(Process): Implementation now uses the two new procedures

	* prj-util.adb (Executable_Of): Get the suffix and the default suffix
	from the project config, not the tree config that no longer exists.

2007-09-26  Vincent Celier  <celier@adacore.com>

	* Make-lang.in: Update dependencies..

2007-09-26  Vincent Celier  <celier@adacore.com>

	* osint.adb, osint.ads: Minor reformatting

	* osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure

2007-09-26  Gary Dismukes  <dismukes@adacore.com>

	* par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
	message to cite use of <> in aggregate component associations rather
	than wrongly indicating use of limited aggregates.

2007-09-26  Robert Dewar  <dewar@adacore.com>

	* sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
	Address_Taken.

2007-09-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
	ancestor of the derived type, the operations are inherited from the
	primary dispatch table of the parent.
	(OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
	when the context is an explicit type conversion.

2007-09-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
	rule for qualified expressions properly, to detect improper conversions
	and resolve some cases of overloading.

2007-09-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Call): If the call is dispatching, generate the
	proper kind of reference to the primitive operation, for better source
	navigation.
	(Valid_Conversion): A tagged conversion is legal if both operands are
	tagged.

2007-09-26  Robert Dewar  <dewar@adacore.com>

	* sem_warn.adb (Check_References): Catch more cases of unreferenced
	packages.

2007-09-26  Vincent Celier  <celier@adacore.com>

	* snames.adb, snames.ads: Change Include_Option to Include_Switches

2007-09-26  Robert Dewar  <dewar@adacore.com>

	* s-wchstw.adb: provide messages for run time unit exceptions

	* a-witeio.adb: Minor reformatting

	* exp_ch13.adb: Minor reformatting

2007-09-26  Sergey Rybin  <rybin@adacore.com>

	* vms_data.ads: Revise gnatmetric qualifiers.
	Add qualified for the new gnatbind option '-y'

	* gnat_ugn.texi: Revise the gnatmetric section.
	Add entry for new gnatbind option '-y'.

	* gnat_rm.texi: Minor spelling correction.
	Document restriction on overlaying controlled types

2007-09-26  Vincent Celier  <celier@adacore.com>

	* makegpr.adb (Link_Executables): Do not fail when the root project has
	no sources, but is an extending project.

2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>

	* trans.c: Fix misplaced #define.

2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>

	* utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
	the TYPE_REF_CAN_ALIAS_ALL flag to the result.

2007-09-21  Olivier Hainque  <hainque@adacore.com>

	* utils.c (type_for_nonaliased_component_p): Return false for
	all AGGREGATE_TYPEs.

2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
	object covered by 13.3(19) volatile.

2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/26797
	PR ada/32407
	* utils.c (unchecked_convert): Use a subtype as the intermediate type
	in the special VIEW_CONVERT_EXPR case.

2007-09-12  Robert Dewar  <dewar@adacore.com>

	* types.ads, a-charac.ads, freeze.adb: Minor reformatting.

	* a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
	lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
	s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
	s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
	s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
	s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
	s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
	s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
	a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
	g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
	s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
	s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
	snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
	s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
	s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
	s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
	s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
	pragma Compiler_Unit and adds it to relevant library units.

2007-09-12  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Record_Aggregate): An others association with
	a box need not correspond to any component.

2007-09-12  Robert Dewar  <dewar@adacore.com>

	* g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
	the tasking version of the Ada run time when foreign threads are
	present and there are no explicit Ada tasks or tasking constructs.

	* gnat_rm.texi: Clarify documentation of GNAT.Threads.

2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>

	* bindusg.adb (Display): Correct comment for switch -X. Add a line for
	the usage of switch -y.

	* switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
	when switch -y is present.

	* opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
	leap seconds in Ada.Calendar and its children.

2007-09-12  Jose Ruiz  <ruiz@adacore.com>

	* a-extiti.ads (Timer): The discriminant is a "not null access
	constant" in the Reference Manual.
	(Cancel_Handler): Cancelled is an out parameter in the Reference Manual.

2007-09-12  Robert Dewar  <dewar@adacore.com>

	* a-swuwha.adb: Remove junk RM header

2007-09-12  Vincent Celier  <celier@adacore.com>

	* g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
	indicator

	* g-bytswa.ads: Minor reformatting

2007-09-12  Thomas Quinot  <quinot@adacore.com>

	* g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
	Add new constant Thread_Blocking_IO, always True by default, set False
	on a per-runtime basis.
	(Need_Netdb_Buffer): New constant.

2007-09-12  Arnaud Charlet  <charlet@adacore.com>

	* s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
	Added renames for corresponding functions in System.Partition_Interface.

2007-09-12  Doug Rupp  <rupp@adacore.com>

	* Makefile.in: Remove VMS specific System.CRTL packages which are no
	longer needed.

	* s-crtl-vms64.ads: Removed.

2007-09-12  Olivier Hainque  <hainque@adacore.com>

	* decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
	with discriminant constraints, generalize the code for BIT_FIELDs
	to PACKED fields of constant size and propagate DECL_PACKED.

2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (array_type_has_nonaliased_component): New predicate.
	(gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
	set the TYPE_NONALIASED_COMPONENT flag on the type.
	<E_Array_Subtype>: Likewise.
	* gigi.h (type_for_nonaliased_component_p): Declare.
	* utils.c (type_for_nonaliased_component_p): New predicate.
	(create_field_decl): Invoke the above predicate to set the
	DECL_NONADDRESSABLE_P flag on the field.

2007-09-11  Javier Miranda  <miranda@adacore.com>

	* einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
	in library level record type entities if we are generating statically
	allocated dispatch tables.

	* exp_disp.adb (Make_Tags/Make_DT): Replace previous code
	importing/exporting the _tag declaration by new code
	importing/exporting the dispatch table wrapper. This change allows us
	to statically allocate of the TSD.
	(Make_DT.Export_DT): New procedure.
	(Build_Static_DT): New function.
	(Has_DT): New function.

	* freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
	True_Constant and Current_Value. Required to statically
	allocate the dispatch tables.
	(Check_Allocator): Make function iterative instead of recursive.
 	Also return inner allocator node, when present, so that we do not have
 	to look for that node again in the caller.

2007-09-11  Jan Hubicka  <jh@suse.cz>

	* misc.c (gnat_expand_body): Kill.
	(LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.

2007-09-10  Robert Dewar  <dewar@adacore.com>

	* exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
	mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
	mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
	mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
	ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
	bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
	bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
	butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
	comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
	elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
	err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
	exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
	exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
	exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
	exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
	exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
	exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
	exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
	exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
	exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
	exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
	exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
	fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
	get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
	gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
	gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
	gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
	gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
	gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
	gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
	inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
	lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
	lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
	make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
	mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
	mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
	mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
	mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
	osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
	osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
	par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
	par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
	par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
	par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
	par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
	prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
	prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
	prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
	prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
	prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
	prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
	prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
	rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
	scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
	sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
	sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
	sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
	sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
	sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
	sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
	sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
	sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
	sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
	sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
	sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
	sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
	sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
	sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
	stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
	styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
	switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
	switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
	tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
	treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
	types.h, uintp.h, urealp.h, usage.adb, usage.ads,
	validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
	xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
	xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
	gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
	mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
	symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
	mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
	mlib-tgt-vms.ads: Replace headers with GPL v3 headers.

2007-09-10  Emmanuel Briot  <briot@adacore.com>

	* s-regpat.adb (Parse_Character_Class): Fix handling of empty character
	classes ("[]").

2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>

	* adaint.c (__gnat_translate_vms): new function.

2007-09-10  Gary Dismukes  <dismukes@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

	* exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
	create an abstract subprogram in the case of 'Input. For 'Output we now
	create a real spec/body when the type is abstract, since it can
	potentially be called.
	(Predefined_Primitive_Bodies): Now allow the creation of a predefined
	body for 'Output when the type is abstract (only the creation of the
	body for 'Input is excluded when the type is abstract).
	(Stream_Operation_OK): Add an additional condition in the return
	statement, so that False will be returned for TTS_Stream_Input if the
	associated tagged type is an abstract extension. Add comments for
	return statement.
	(Expand_N_Object_Declaration): For the case of a shared passive
	variable, insert init proc call only after the shared variable
	procedures have been processed, because the IP call needs to undergo
	shared passive variable reference expansion, which requires these
	procedures to be available (and elaborated).

2007-09-10  Vincent Celier  <celier@adacore.com>

	* prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
	parameter Runtime_Project.

2007-09-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
	given a box association, the type of the component is discriminated,
	and the value of the discriminant is the discriminant of the enclosing
	type, retrieve its value from the aggregate itself, where it must have
	been supplied.

	* sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
	to remove other spurious ambiguities on arithmetic operations involving
	literals and addresses, on systems where Address is a visible integer
	type, when the operator is called in functional notation.
	(Try_Primitive_Operation): Within an instance, a call in prefixed form
	is legal when the types match, even if the operation is currently
	hidden.

2007-09-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Build_Local_Package): A formal package with no
	associations is legal if all formals have defaults. It is not
	equivalent to a formal declared with a box.

2007-09-10  Sergey Rybin  <rybin@adacore.com>

	* vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option

2007-09-10  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi: Add description of the new '-lratio' option
	Update 7.3.1 section about availability of the feature.

2007-09-10  Thomas Quinot  <quinot@adacore.com>

	* exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
	inserted node.

2007-09-10  Olivier Hainque  <hainque@adacore.com>

	* Makefile.in: (mips-irix section): Activate build of libgmem.

2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>

	* a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
	x87 registers.

2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
	a debug renaming declaration specially.

2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
	which a constant renaming is treated as a normal object declaration.
	* trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
	the N_Indexed_Component case.
	<N_Indexed_Component>: Fall through to above case.
	<N_Object_Renaming_Declaration>: Return true for all composite types.

2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (make_packable_type): If the new type has been given BLKmode,
	try again to get an integral mode for it.

2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>

	Re-apply accidentally reverted change:

	2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>

	* raise-gcc.c (get_region_description_for, get_call_site_action_for,
	get_action_description_for): Replace _Unwind_Word with _uleb128_t
	and _Unwind_SWord with _sleb128_t.

2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>

	* trans.c (convert_with_check): Update call to real_2expN.

2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>

	* trans.c (Compilation_unit_to_gnu): Use set_cfun.
	* utils.c (end_subprog_body): Likewise.

2007-09-03  Nick Clifton  <nickc@redhat.com>

	* Make-lang.in: Change copyright header to refer to version 3 of
	the GNU General Public License and to point readers at the
	COPYING3 file and the FSF's license web page.
	* ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
	Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
	namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
	treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
	Likewise.

2007-08-31  Vincent Celier  <celier@adacore.com>

	PR ada/4720

	* gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
	gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
	(Check_Version_And_Help): New procedure in package Switch to process
	switches --version and --help.
	Use Check_Version_And_Help in GNAT tools

	* make.adb:  Ditto.
	(Compile_Sources): Make sure that sources that are "excluded" are not
	compiled.
	(Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
	project file is used.
	(Version_Switch): Remove, moved to Switch
	(Help_Switch): Remove, moved to Switch
	(Display_Version): Remove, moved to Switch

	* switch.ads, switch.adb (Check_Version_And_Help): New procedure in
	package Switch to process switches --version and --help.
	(Display_Version): New procedure

	* gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.

2007-08-31  Javier Miranda  <miranda@adacore.com>

	* a-tags.adb (Internal_Tag): Protect the run-time against wrong
	internal tags.

2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>

	* checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
	(Mark_Non_Null): If the node for which we just generated an access check
	is a reference to an *in* parameter and the reference appears in the
	declarative part of a subprogram body, mark the node as known non null.

2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
	structure of E_Exception to reflect the new flag.
	(Is_Raised, Set_Is_Raised): New inlined routines.
	Update the usage of available flag to reflect the addition of Is_Raised.
	(Is_Raised, Set_Is_Raised): Bodies of new routines.
	(Write_Entity_Flags): Write the status of flag Is_Raised.
	(Is_Descendent_Of_Address): New entity flag, to simplify handling of
	spurious ambiguities when integer literals appear in the context of an
	address type that is a visible integer type.

	* sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
	exceptions never being raised.
	(Analyze_Raise_Statement): When analyzing an exception, mark it as being
	explicitly raised.

2007-08-31  Javier Miranda  <miranda@adacore.com>

	* exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
	statement when compiling under restriction No_Exceptions_Proparation.

2007-08-31  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch3.adb (Build_Record_Init_Proc): If there is a static
	initialization aggregate for the type, generate itype references for
	thetypes of its (sub)components, to prevent out-of-scope errors in gigi.

2007-08-31  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
	library-level package renaming, pass the declaration associated with
	the renaming's special debug variable to Qualify_Entity_Names to ensure
	that its encoded name is properly qualified.

	* exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
	occurring in the list of entities to qualify, and do not attempt to
	traverse an entity list in that case. Variables associated with
`	library-level package renamings can now occur in the table.

	* exp_dbug.ads: Revise documentation of the encoding for renaming
	declarations.

2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* layout.adb (Layout_Type): Use Underlying_Type to determine whether an
	access type points to an unconstrained array.

2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>

	* restrict.adb, namet.adb, par-util.adb: Remove redundant type
	conversion.

	* sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
	simple redundant qualifications. The check is performed whenever the
	expression is a non-overloaded identifier.
	(Resolve_Type_Conversion): Enchance the redundant type conversion check
	to include loop parameters.
	(Valid_Conversion): Avoid generation of spurious error message.

2007-08-31  Bob Duff  <duff@adacore.com>

	* par-ch4.adb (P_Simple_Expression): Fold long sequences of
	concatenations of string literals into a single literal, in order to
	avoid very deep recursion in the front end, which was causing stack
	overflow.

	* sem_eval.adb (Eval_Concatenation): If the left operand is the empty
	string, and the right operand is a string literal (the case of "" &
	"..."), optimize by avoiding copying the right operand -- just use the
	value of the right operand directly.

	* stringt.adb (Store_String_Chars): Optimize by growing the
	String_Chars table all at once, rather than appending characters one by
	one.
	(Write_String_Table_Entry): If the string to be printed is very long,
	just print the first few characters, followed by the length. Otherwise,
	doing "pn(n)" in the debugger can take an extremely long time.

	* sem_prag.adb (Process_Interface_Name): Replace loop doing
	Store_String_Char with Store_String_Chars.

2007-08-31  Vincent Celier  <celier@adacore.com>

	* prj-attr.adb: Add new attribute Excluded_Source_Files

	* prj-nmsc.adb: Use attribute Excluded_Source_Files before
	Locally_Removed_Files.

	* snames.ads, snames.adb: New standard name Excluded_Source_Files

2007-08-31  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
	clauses of subunits, ignore limited_with_clauses that are illegal and
	have not been fully analyzed.

2007-08-31  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
	flag, for effiency. It is called when analyzing arithmetic operators
	and also for actuals in calls that are universal_integers. The flag is
	set for the predefined type address, and for any type or subtype
	derived from it.

	* sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
	Universal_Integer, when the formal is a descendent of address and the
	call appears in user code.
	(Analyze_Selected_Component): if the prefix is a private extension, the
	tag component is visible.

	* sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
	entity flag.

2007-08-31  Robert Dewar  <dewar@adacore.com>

	* s-fileio.adb (Open): Normalize file name to lower case in non-case
	sensitive file name systems to avoid unexpected mismatch in Vista.

2007-08-31  Vincent Celier  <celier@adacore.com>

	* tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR

2007-08-31  Vincent Celier  <celier@adacore.com>

	* symbols-vms.adb (Initialize): Read symbol files with continuation
	lines
	(Finalize): If symbol is long, split the line

2007-08-31  Vincent Celier  <celier@adacore.com>

	* fmap.ads: Minor comment updates

2007-08-31  GNAT Script  <nobody@adacore.com>

	* Make-lang.in: Makefile automatically updated

2007-08-31  Bob Duff  <duff@adacore.com>

	* sinfo.ads: Minor comment fix.

2007-08-31  Thomas Quinot  <quinot@adacore.com>

	* stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
	with implementation.
	Documentation cleanup only.

2007-08-31  Sergey Rybin  <rybin@adacore.com>

	* vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
	gnatpp '--separate-stmt-name' option.
	Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
	option.

	* gnat_ugn.texi: Add description for the new gnatpp
	'--separate-stmt-name' and '--use-on-new-line' options.

2007-08-31  Ben Elliston  <bje@au.ibm.com>

	* Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
	when compiling for powerpc64-*-linux.
	* system-linux-ppc64.ads: New file.

2007-08-22  Krister Walfridsson  <cato@df.lth.se>

	* env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
	NetBSD.

2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* misc.c (gnat_type_max_size): Constify.

2007-08-16  Gary Dismukes  <dismukes@adacore.com>

	* cstand.adb (Create_Standard): Create an entity for a zero-sized type
	associated with Standard_Debug_Renaming_Type, to be used as the type of
	the special variables whose names provide debugger encodings for
	renaming declarations.

	* einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
	(Set_Debug_Renaming_Link): Change to set Node25.
	(Write_Field13_Name): Remove case for E_Enumeration_Literal.
	(Write_Field25_Name): Add case for E_Variable to output
	"Debug_Renaming_Link".
	(Write_Field23_Name): Correct the output string for "Limited_View".

	* exp_dbug.adb: Add with and use of Tbuild.
	(Debug_Renaming_Declaration): Replace creation of an enumeration type
	and literal with creation of a variable of type
	Standard_Debug_Renaming_Type whose name encodes both the renamed object
	and the entity of the renaming declaration.
	(Qualify_Entity_Name): Add the delayed qualification of the entity name
	part of the name of a variable that has a Debug_Renaming_Link.

	* stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
	special type to be associated with variables that provide debugger
	encodings for renaming declarations.

2007-08-16  Gary Dismukes  <dismukes@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
	ancestor part given by an aggregate to test for an unchecked conversion,
	since this can occur in some cases when the ancestor part is a function
	call, and we don't want to fall into the recursive call to this
	procedure in that case.

	* exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
	stream attributes on limited types to account for user-specified
	attributes as well as whether Input (resp. Output) becomes available
	due to Read (resp. Write) being available for the type. Change Boolean
	variable to the more accurate name
	Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
	double-"not" predicate at beginning of return statement to more
	understandable form.

	* exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
	return has an associated N_Handled_Sequence_Of_Statements, then wrap it
	in a block statement and use that as the first statement of the
	expanded return rather than incorrectly using the handled sequence as
	the first statement.

	* exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
	operation, generate an explicit freeze node for it rather than
	generating extra formals, to ensure that gigi has the proper order of
	elaboration for anonymous subtypes in the signature of the subprograms.
	(Build_In_Place_Formal): Move assertion to beginning of loop.
	(Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
	applied to a function call (occurs for some cases of 'Input).
	(Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
	applied to a function call (occurs for some cases of 'Input).

	* exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
	2005, generate an extended return statement enclosing the result object
	and 'Read call.

	* freeze.adb (Freeze_Record_Type): Extend the current management of
	components that are access type with an allocator as default value: add
	missing support to the use of qualified expressions of the
	allocator (which also cause freezing of the designated type!)
	(Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
	dispatching operation, since extra formals may be needed by calls to
	build-in-place functions (such as stream 'Input).

	* sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
	formals for 'Constrained and accessibility level in the case of a
	predefined dispatching operation.

	* exp_util.adb (Insert_Actions): A protected body is a valid insertion
	point, no need to find the parent node.

2007-08-16  Javier Miranda  <miranda@adacore.com>

	* exp_attr.adb (Attribute_Priority): Add missing support for entries
	and entry barriers.

2007-08-16  Javier Miranda  <miranda@adacore.com>

	* exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
	is not really required and can introduce regression with the debugger.
	The original problem is fixed with the patch written for checks.adb.

2007-08-16  Thomas Quinot  <quinot@adacore.com>

	* g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
	Range_Check on Allocated_Table.

2007-08-16  Vincent Celier  <celier@adacore.com>

	* make.adb (Collect_Arguments): Call Test_If_Relative_Path with
	Including_Non_Switch set to False.
	(Gnatmake): For the compiler, call Test_If_Relative_Path with
	Including_Non_Switch set to False.

	* makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
	parameter Including_Non_Switch, defaulted to True. When
	Including_Non_Switch is False, options that are not switches and
	appear as relative path are not converted to absolute paths.

2007-08-16  Nicolas Roche  <roche@adacore.com>

	* Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
	makefiles

	* Make-lang.in: Update dependencies

2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch10.adb (Has_With_Clause): If the name of the with clause
	currently inspected is a selected component, retrieve the entity of
	its selector.
	(Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
	from the immediate ancestor of Main_Unit_Entity.
	(Install_Limited_Withed_Unit): Do not install the limited view of
	package P if P is reachable through an ancestor chain from package C
	and C also has a with clause for P in its body.
	(Has_Limited_With_Clause): New routine.
	(Has_With_Clause): New routine.

2007-08-16  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
	generic for an enclosing instance is a global reference, even though
	its scope is the enclosing instance.

2007-08-16  Gary Dismukes  <dismukes@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
	initialize a limited object.
	(Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
	13/2 and 14/2.
	Make sure Has_Complex_Representation is inherited by derived type.

2007-08-16  Robert Dewar  <dewar@adacore.com>

	* sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
	exception case

2007-08-16  Ed Schonberg  <schonberg@adacore.com>

	* sem_disp.adb (Check_Dispatching_Operation): If the operation
	implements an operation inherited from a progenitor interface, verify
	that they are subtype-conformant.

2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
	    Bob Duff  <duff@adacore.com>
	    Nicolas Setton  <setton@adacore.com>

	* sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
	(Resolve): Alphabetize local variables. Add new variable From_Lib. When
	the statement which is being resolved comes from a predefined library
	unit, all non-predefined library interpretations are skipped.
	(Resolve_Op_Concat): If string concatenation was folded in the parser,
	but the "&" is user defined, give an error, because the folding would
	be wrong.

	* sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
	the parser has folded a long sequence of concatenations of string
	literals.

	* trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
	and "JMP_BUF" variables as artificial.
	(N_String_Literal): Do not use alloca for very long string literals. Use
	xmalloc/free instead. Otherwise the stack might overflow.

	* utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
	compiler.

2007-08-16  Vincent Celier  <celier@adacore.com>

	* vms_conv.adb (Process_Argument): Ensure that project related options
	are not put in the -cargs section when using GNAT COMPILE.

2007-08-16  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Add note on preprocessing (output file not written)

2007-08-16  Thomas Quinot  <quinot@adacore.com>

	* a-tags.adb: Minor reformatting.

2007-08-16  Bob Duff  <duff@adacore.com>

	* sem_type.ads, sem_ch4.adb: Minor reformatting.

2007-08-14  Thomas Quinot  <quinot@adacore.com>

	* g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
	s-osinte-interix.ads, system-interix.ads: Removed.

2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
	calls to Check_Within_Time_Bounds.
	("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
	(Difference): Account for possible rounding of the resulting difference

2007-08-14  Robert Dewar  <dewar@adacore.com>

	* uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
	par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
	s-osinte-solaris.adb, s-osinte-solaris.ads,
	s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.

	* styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
	switch -gnatyS. Enable -gnatyS in GNAT style check mode

2007-08-14  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
	Suppress unmodified in-out parameter warning in some cases
	This patch is a also fairly significant change to the way suppressible
	checks are handled.

	* checks.ads, checks.adb (Install_Null_Excluding_Check): No check
	needed for access to concurrent record types generated by the expander.
	(Generate_Range_Check): When generating a temporary to capture the
	value of a conversion that requires a range check, set the type of the
	temporary before rewriting the node, so that the type is always
	properly placed for back-end use.
	(Apply_Float_Conversion_Check): Handle case where the conversion is
	truncating.
	(Get_Discriminal): Code reformatting. Climb the scope stack looking
	for a protected type in order to examine its discriminants.

2007-08-14  Robert Dewar  <dewar@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

	* a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
	a-stwisu.adb, a-strsup.adb: Fix warnings for range
	tests optimized out.

	* exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
	(Get_Allocator_Final_List): For the case of an anonymous access type
	that has a specified Associated_Final_Chain, do not go up to the
	enclosing scope.
	(Expand_N_Type_Conversion): Test for the case of renamings of access
	parameters when deciding whether to apply a run-time accessibility
	check.
	(Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
	aggregate code before allocator, and ahead of declaration for
	temporary, to prevent access before elaboration when the allocator is
	an actual for an access parameter.
	(Expand_N_Type_Conversion): On an access type conversion involving an
	access parameter, do not apply an accessibility check when the
	operand's original node was an attribute other than 'Access. We now
	create access conversions for the expansion of 'Unchecked_Access and
	'Unrestricted_Access in certain cases and clearly accessibility should
	not be checked for those.

	* exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
	includes a type conversion of a packed component that has been expanded,
	recover the original expression for the object, and use this expression
	in the post-call assignment statement, so that the assignment is made
	to the object and not to a back-end temporary.
	(Freeze_Subprogram): In case of primitives of tagged types not defined
	at the library level force generation of code to register the primitive
	in the dispatch table. In addition some code reorganization has been
	done to leave the implementation clear.
	(Expand_Call): When expanding an inherited implicit conversion,
	preserve the type of the inherited function after the intrinsic
	operation has been expanded.

	* exp_ch2.ads, exp_ch2.adb
	(Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
	of an entry formal appearing in an assignment statement does not assign
	to the formal.
	(Expand_Current_Value): Instead of calling a routine to determine
	whether the prefix of an attribute reference should be optimized or
	not, prevent the optimization of such prefixes all together.

	* lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
	component whose prefix is known to be of an access type is an implicit
	dereference and does not assign to the prefix.

2007-08-14  Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
	itype is visited, make an entry into table to link associated node and
	new itype.
	Add comments and correct harmless error in Build_NCT_Hash_Tables
	(Array_Aggr_Subtype): Associate each itype created for an index type to
	the corresponding range construct, and not to the aggregate itself. to
	maintain a one-to-one correspondence between itype and its associated
	node, to prevent errors when complex expression is copied.
	Fix mishandling of multiple levels of parens

	* sem_aggr.adb: Create a limited view of an incomplete type, to make
	treatment of limited views uniform for all visible declarations in a
	limited_withed package.
	(New_Copy_Tree): If hash table is being used and itype is visited,
	make an entry into table to link associated node and new itype.
	(Resolve_Record_Aggregate): Do not add an others box association for a
	discriminated record component that has only discriminants, when there
	is a box association for the component itself.

	* par-ch4.adb: Fix mishandling of multiple levels of parens

2007-08-14  Robert Dewar  <dewar@adacore.com>

	* comperr.adb: Fix problem with suppressing warning messages from gigi

	* erroutc.ads, erroutc.adb, errout.ads,
	errout.adb (Write_Eol): Remove trailing spaces before writing the line
	(Write_Eol_Keep_Blanks): New procedure to write a line, including
	possible trailing spaces.
	(Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
	Fix problem with suppressing warning messages from back end
	Improve handling of deleted warnings

	* gnat1drv.adb:
	Fix problem with suppressing warning messages from back end
	Handle setting of Static_Dispatch_Tables flag.

	* prepcomp.adb:
	Fix problem with suppressing warning messages from back end

	* exp_intr.adb: Improve handling of deleted warnings

2007-08-14  Robert Dewar  <dewar@adacore.com>

	* debug.adb: Improve -gnatdI to cover all cases of serialization
	Add documentation of dZ, d.t

	* sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
	serialization.
	(Sprint_Node_Actual): Generate new output associated with implicit
	importation and implicit exportation of object declarations.

2007-08-14  Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Javier Miranda  <miranda@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* einfo.ads, einfo.adb: Create a limited view of an incomplete type,
	to make treatment of limited views uniform for all visible declarations
	in a limited_withed package.
	Improve warnings for in out parameters
	(Set_Related_Interaface/Related_Interface): Allow the use of this
	attribute with constants.
	(Write_Field26_Name): Handle attribute Related_Interface in constants.
	Warn on duplicate pragma Preelaborable_Initialialization

	* sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
	generation of a freezing node to ensure proper management of null
	excluding access types in the backend.
	(Create_Extra_Formals): Test base type of the formal when checking for
	the need to add an extra accessibility-level formal. Pass the entity E
	on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
	originally being done in a couple of cases), to ensure that the
	Extra_Formals list gets set on the entity E when the first entity is
	added.
	(Conforming_Types): Add missing calls to Base_Type to the code that
	handles anonymous access types. This is required to handle the
	general case because Process_Formals builds internal subtype entities
	to handle null-excluding access types.
	(Make_Controlling_Function_Wrappers): Create wrappers for constructor
	functions that need it, even when not marked Requires_Overriding.
	Improve warnings for in out parameters
	(Analyze_Function_Return): Warn for disallowed null return
	Warn on return from procedure with unset out parameter
	Ensure consistent use of # in error messages
	(Check_Overriding_Indicator): Add in parameter Is_Primitive.
	(Analyze_Function_Return): Move call to Apply_Constraint_Check before
	the implicit conversion of the expression done for anonymous access
	types. This is required to generate the code of the null excluding
	check (if required).

	* sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
	A formal parameter is never publicly referenceable outside of its body.
	(Check_References): For an unreferenced formal parameter in an accept
	statement, use the same warning circuitry as for subprogram formal
	parameters.
	(Warn_On_Unreferenced_Entity): New subprogram, taken from
	Output_Unreferenced_Messages, containing the part of that routine that
	is now reused for entry formals as described above.
	(Goto_Spec_Entity): New function
	(Check_References): Do not give IN OUT warning for dispatching operation
	Improve warnings for in out parameters
	(Test_Ref): Check that the entity is not undefinite before calling
	Scope_Within, in order to avoid infinite loops.
	Warn on return from procedure with unset out parameter
	Improved warnings for unused variables

2007-08-14  Robert Dewar  <dewar@adacore.com>
	    Javier Miranda  <miranda@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
	(Expand_N_Attribute_Reference): Further unify the handling of the
	three forms of access attributes, using common code now for all three
	cases. Add a test for the case of applying an access attribute to
	an explicit dereference when the context is an access-to-interface
	type. In that case we need to apply the conversion to the prefix
	of the explicit dereference rather than the prefix of the attribute.
	(Attribute_Version, UET_Address): Set entity as internal to ensure
	proper dg output of implicit importation.
	(Expand_Access_To_Type): Removed.
	(Expand_N_Attribute_Reference): Merge the code from the three cases
	of access attributes, since the processing is largely identical for
	these cases. The substantive fix here is to process the case of a
	type name prefix (current instance case) before handling the case
	of interface prefixes.

2007-08-14  Thomas Quinot  <quinot@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
	(Freeze_Array_Type, Freeze_Record_Type): For the case of a component
	type that is an anonymous access to controlled object, establish
	an associated finalization chain to avoid corrupting the global
	finalization list when a dynamically allocated object designated
	by such a component is deallocated.
	(Make_Controlling_Function_Wrappers): Create wrappers for constructor
	functions that need it, even when not marked Requires_Overriding.
	(Initialize_Tag): Replace call to has_discriminants by call to
	Is_Variable_Size_Record in the circuitry that handles the
	initialization of secondary tags.
	(Is_Variable_Size_Record): New implementation.
	(Expand_N_Object_Declaration): Suppress call to init proc if there is a
	Suppress_Initialization pragma for a derived type.
	(Is_Variable_Size_Record): New subprogram.
	(Build_Offset_To_Top_Functions): New implementation that simplifies the
	initial version of this routine and also fixes problems causing
	incomplete initialization of the table of interfaces.
	(Build_Init_Procedure): Improve the generation of code to initialize the
	the tag components of secondary dispatch tables.
	(Init_Secondary_Tags): New implementation that simplifies the previous
	version of this routine.
	(Make_DT): Add parameter to indicate when type has been frozen by an
	object declaration, for diagnostic purposes.
	(Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
	diagnose attemps to freeze a subprogram when some untagged type of its
	profile is a private type whose full view has not been analyzed yet.
	(Freeze_Array_Type): Generate init proc for packed array if either
	Initialize or Normalize_Scalars is set.
	(Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
	constructing the new profile, copy the null_exclusion indicator for each
	parameter, to ensure full conformance of the new body with the spec.

	* sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
	Create wrappers for constructor functions that need it, even when not
	marked Requires_Overriding.
	(Covers): Handle properly designated types of anonymous access types,
	whose non-limited views are themselves incomplete types.
	(Add_Entry): Use an entity to store the abstract operation which hides
	an interpretation.
	(Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
	(Collect_Interps): Use Empty as an actual for Abstract_Op in the
	initialization aggregate.
	(Function_Interp_May_Be_Hidden): Rename to
	Function_Interp_Has_Abstract_Op.
	(Has_Compatible_Type): Remove machinery that skips interpretations if
	they are labeled as potentially hidden by an abstract operator.
	(Has_Hidden_Interp): Rename to Has_Abstract_Op.
	(Set_May_Be_Hidden): Rename to Set_Abstract_Op.
	(Write_Overloads): Output the abstract operator if present.
	(Add_Entry): Before inserting a new entry into the interpretation table
	for a node, determine whether the entry will be disabled by an abstract
	operator.
	(Binary_Op_Interp_May_Be_Hidden): New routine.
	(Collect_Interps): Add value for flag May_Be_Hidden in initialization
	aggregate.
	(Function_Interp_May_Be_Hidden): New routine.
	(Has_Compatible_Type): Do not consider interpretations hidden by
	abstract operators when trying to determine whether two types are
	compatible.
	(Has_Hidden_Interp): New routine.
	(Set_May_Be_Hidden_Interp): New routine.
	(Write_Overloads): Write the status of flag May_Be_Hidden.

2007-08-14  Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
	types declared in the declarative part of a nested package body or in
	the proper body of a stub.
	(Set_All_DT_Position): Add missing check to avoid wrong assignation
	of the same dispatch table slot to renamed primitives.
	(Make_Select_Specific_Data_Table): Handle private types.
	(Tagged_Kind): Handle private types.
	(Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
	output of implicit importation and exportation.
	(Expand_Interface_Thunk): Fix bug in the expansion assuming that the
	first formal of the thunk is always associated with the controlling
	type. In addition perform the following code cleanup: remove formal
	Thunk_Alias which is no longer required, cleanup evaluation of the
	the controlling type, and update the documentation.
	Replace occurrence of Default_Prim_Op_Count by
	Max_Predef_Prims. Addition of compile-time check to verify
	that the value of Max_Predef_Prims is correct.
	(Check_Premature_Freezing): Apply check in Ada95 mode as well.
	(Make_DT): Add parameter to indicate when type has been frozen by an
	object declaration, for diagnostic purposes.
	(Build_Static_Dispatch_Tables): New subprogram that takes care of the
	construction of statically allocated dispatch tables.
	(Make_DT): In case of library-level tagged types export the declaration
	of the primary tag. Remove generation of tags (now done by Make_Tags).
	Additional modifications to handle non-static generation of dispatch
	tables. Take care of building tables for asynchronous interface types
	(Make_Tags): New subprogram that generates the entities associated with
	the primary and secondary tags of Typ and fills the contents of Access_
	Disp_Table. In case of library-level tagged types imports the forward
	declaration of the primary tag that will be declared later by Make_DT.
	(Expand_Interface_Conversion): In case of access types to interfaces
	replace an itype declaration by an explicit type declaration to avoid
	problems associated with the scope of such itype in transient blocks.

2007-08-14  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* exp_util.ads, exp_util.adb:
	This patch replaces a number of occurrences of explicit tests for N_Null
	with calls to Known_Null. This improves tracking of null values, since
	Known_Null also catches null constants, and variables currently known to
	be null, so we get better tracking.
	(Ensure_Defined): create an itype reference only in the scope of the
	itype.
	(Side_Effect_Free): A selected component of an access type that
	denotes a component with a rep clause must be treated as not
	side-effect free, because if it is part of a linked structure its
	value may be affected by a renaming.
	(Expand_Subtype_From_Expr): For limited objects initialized with build
	in place function calls, do nothing; otherwise we prematurely introduce
	an N_Reference node in the expression initializing the object, which
	breaks the circuitry that detects and adds the additional arguments to
	the called function. Bug found working in the new patch for statically
	allocated dispatch tables.
	(Is_Library_Level_Tagged_Type): New subprogram.
	(Remove_Side_Effects): If the expression of an elementary type is an
	operator treat as a function call.
	(Make_Literal_Range): If the index type of the array is not integer, use
	attributes properly to compute the constraint on the resulting aggregate
	which is a string.

	* freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
	class-wide type whose base type is an incomplete private type, leave
	class-wide type unfrozen so that freeze nodes can be generated
	properly at a later point.
	(Freeze_Entity, array case): Handle case of pragma Pack and component
	size attributre clause for same array.

2007-08-14  Vincent Celier  <celier@adacore.com>

	* prj.ads, prj.adb: Update Project Manager to new attribute names for
	gprbuild.
	Allow all valid declarations in configuration project files
	(Reset): Initialize all tables and hash tables in the project tree data
	Major update of the Project Manager and of the project aware tools,
	including gprmake, so that the same sources in the GNAT repository
	can be used by gprbuild.
	(Slash_Id): Change type to be Path_Name_Type
	(Slash): Return a Path_Name_Type instead of a File_Name_Type

	* prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
	gprbuild.
	Update Project Manager to new attribute names for ghprbuild
	Allow all valid declarations in configuration project files
	Major update of the Project Manager and of the project aware tools,
	including gprmake, so that the same sources in the GNAT repository
	can be used by gprbuild.

	* prj-com.ads:
	Major update of the Project Manager and of the project aware tools,
	including gprmake, so that the same sources in the GNAT repository
	can be used by gprbuild.

	* prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
	insensitive flag for attributes with optional index.
	(Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
	array attribute, put the index in lower case.
	Update Project Manager to new attribute names for ghprbuild
	Allow all valid declarations in configuration project files
	Major update of the Project Manager and of the project aware tools,
	including gprmake, so that the same sources in the GNAT repository
	can be used by gprbuild.

	* prj-env.ads, prj-env.adb:
	Major update of the Project Manager and of the project aware tools,
	including gprmake, so that the same sources in the GNAT repository
	can be used by gprbuild.
	(Get_Reference): Change type of parameter Path to Path_Name_Type

	* prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
	removing '-' from the path to start with the first character of the
	next directory.
	Major update of the Project Manager and of the project aware tools,
	including gprmake, so that the same sources in the GNAT repository
	can be used by gprbuild.
	Major update of the Project Manager and of the project aware tools,
	including gprmake, so that the same sources in the GNAT repository
	can be used by gprbuild.

	* prj-nmsc.ads, prj-nmsc.adb:
	Update Project Manager to new attribute names for ghprbuild
	Allow all valid declarations in configuration project files
	(Search_Directories): Detect subunits that are specified with an
	attribute Body in package Naming. Do not replace a source/unit in the
	same project when the order of the source dirs are known. Detect
	duplicate sources/units in the same project when the order of the
	source dirs are not known.
	(Check_Ada_Name): Allow all identifiers that are not reserved words
	in Ada 95.
	Major update of the Project Manager and of the project aware tools,
	including gprmake, so that the same sources in the GNAT repository
	can be used by gprbuild.
	(Look_For_Sources): If the list of sources is empty, set the object
	directory of non extending project to nil.
	Change type of path name variables to be Path_Name_Type
	(Locate_Directory): Make sure that on Windows '/' is converted to '\',
	otherwise creating missing directories will fail.

	* prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
	prj-part.ads, prj-part.adb:
	Major update of the Project Manager and of the project aware tools,
	including gprmake, so that the same sources in the GNAT repository
	can be used by gprbuild.

	* prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
	insensitive flag for attributes with optional index.
	(Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
	array attribute, put the index in lower case.
	(Parse_Variable_Reference): Allow the current project name to be used in
	the prefix of an attribute reference.

	* prj-util.ads, prj-util.adb
	(Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
	defaulted to False. When True, always check against indexes in lower
	case.

	* snames.ads, snames.h, snames.adb:
	Update Project Manager to new attribute names for gprbuild
	Allow all valid declarations in configuration project files

2007-08-14  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* opt.ads: Warning for non-local exception propagation now off by
	default
	New switch -gnatI to disable representation clauses
	Implement new pragma Implicit_Packing

	* usage.adb:
	Warning for non-local exception propagation now off by default
	Add warning for unchecked conversion of pointers wi different
	conventions.
	New switch -gnatI to disable representation clauses

	* usage.adb: new switch -gnatyS

	* gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
	note that aggregates of anonymous array types are not flagged.
	-gnatwc now includes membership tests optimized away
	-gnatw.x warnings are now off by default
	Added conditional compilation Appendix
	Add documentation of -gnatI
	Add documentation for new -gnatyS style check
	Update documentation about SAL and auto-init on Windows.

	* gnat_rm.texi:
	Add documentation for pragma Check_Name and 'Enabled attribute
	Document that Eliminate on dispatching operation is ignored
	Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
	Document pragma Main
	Document pragma Implicit_Packing

	* sem_ch13.adb: Add warning for unchecked conversion of pointers wi
	different conventions
	New switch -gnatI to disable representation clauses

	* switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
	recognized, report the invalid characters including "-gnat" instead of
	just the first character in the switch.
	New switch -gnatI to disable representation clauses
	Set Warn_On_Object_Renames_Function true for -gnatg

	* vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
	Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
	Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
	to switch -aP (add directory to project search dir).

	* par-prag.adb: Implement new pragma Implicit_Packing

	* sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
	type as having a non-standard representation, to force expansion on
	conversion to related types.
	(Analyze_Pragma): Warn on misspelled pragma
	(Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
	Ensure consistent use of # in error messages
	Implement pragma Implicit_Packing

2007-08-14  Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* targtyps.c (get_target_maximum_default_alignment): New function.
	Maximum alignment
	that the compiler might choose by default for a type or object.
	(get_target_default_allocator_alignment): New function. Alignment known
	to be honored by the target default allocator.
	(get_target_maximum_allowed_alignment): New function. Maximum alignment
	we might accept for any type or object on the target.
	(get_target_maximum_alignment): Now synonym of maximum_default_alignment

	* gigi.h (get_target_maximum_default_alignment): Declare new function.
	(get_target_default_allocator_alignment): Likewise.
	(get_target_maximum_allowed_alignment): Likewise.

	PR ada/19037
	* decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
	result of a function call, first try to use a stabilized reference for
	a constant renaming too.
	(validate_alignment): Use target_maximum_allowed_alignment instead of
	MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
	(gnat_to_gnu_entity): Use common nodes directly.
	(gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
	alignment and size for the object.
	(lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
	and N_Procedure_Call_Statement.
	(takes_address): Rename to lvalue_required_p, add third parameter
	'aliased' and adjust recursive calls.
	<N_Indexed_Component>: Update 'aliased' from the array type.
	<N_Selected_Component>: New case.
	<N_Object_Renaming_Declaration>: New Likewise.
	(Identifier_to_gnu): Adjust for above changes.
	(maybe_stabilize_reference) <CONST_DECL>: New case.

	* utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
	between type variants.
	(build_simple_component_ref): Likewise.
	(build_call_alloc_dealloc): Use target_default_allocator_alignment
	instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
	aligning type circuitry for allocations from the default storage pool.
	(build_allocator): Likewise.
	(build_simple_component_ref): Manually fold the reference for a
	constructor if the record type contains a template.

	* utils.c (value_zerop): Delete.
	(gnat_init_decl_processing): Emit debug info for common types.
	(rest_of_record_type_compilation): If a union contains a field
	with a non-constant qualifier, treat it as variable-sized.
	(finish_record_type): Give the stub TYPE_DECL a name.
	(rest_of_record_type_compilation): Likewise.
	(convert) <CONSTRUCTOR>: New case.  Build a new constructor if
	types are equivalent array types.
	(create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
	even if the type is not passed by reference.
	(static_ctors, static_dtors): Delete.
	(end_subprog_body): Do not record constructors and destructors.
	(build_global_cdtor): Delete.
	(gnat_write_global_declarations): Do not call build_global_cdtor.

	* lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
	-fRTS=rtp is specified.
	If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
	specified.

	* misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
	of the personality function with SJLJ exceptions.

	* raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
	the name of the personality function with SJLJ exceptions.

2007-08-14  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* par.ads, par.adb: Improve handling of extra right parens.
	(Par): Remove flag From_Limited_With_Clause.

	* par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
	Improve handling of extra right parens.

2007-08-14  Robert Dewar  <dewar@adacore.com>

	* par-tchk.adb (TF_Semicolon): Improve error recovery

2007-08-14  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
	enumeration type, mark all literals as referenced.
	(Eval_Attribute, case 'Image): If the argument is an enumeration
	literal and names are available, constant-fold but mark nevertheless as
	non-static.
	Clean up function names.
	(Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
	comment.
	(Requires_Simple_Name_Prefix): Removed.

2007-08-14  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_ch11.adb: Improved warnings for unused variables

	* sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
	is a synchronized interface, the derived type is limited.
	(Analyze_Object_Declaration): Mark the potential coextensions in the
	definition and expression of an object declaration node.
	(Build_Derived_Type): For the completion of a private type declaration
	with a derived type declaration, chain the parent type's representation
	items to the last representation item of the derived type (not the
	first one) if they are not present already.
	(Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
	object declaration of forward references to tags.
	(Access_Subprogram_Declaration): In Ada2005, anonymous access to
	subprogram types can appear as access discriminants of synchronized
	types.
	(OK_For_Limited_Init_In_05): The initialization is legal is it is a call
	given in prefixed form as a selected component.
	(Process_Discriminants): If not all discriminants have defaults, place
	error message on a default that is present.
	(Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
	extend a synchronized tagged type.
	Improved warnings for unused variables
	(Is_Visible_Component): Fix a visibility hole on a component inherited
	by a private extension when parent is itself declared as a private
	extension, and the derivation is in a child unit.
	(Find_Hidden_Interface): Move spec from the package body.

2007-08-14  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb: Improve warnings on redundant assignments

	* sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
	parameter
	(Is_Synchronized_Tagged_Type): New subprogram that returns true
	in case of synchronized tagged types (AARM 3.9.4 (6/2)).
	(Safe_To_Capture_Value): Can now return True for constants, even if Cond
	is set to False. Improves handling of Known_[Not_]Null.
	(Wrong_Type): Special case address arithmetic attempt
	(Collect_Abstract_Interfaces): Add new formal to allow collecting
	abstract interfaces just using the partial view of private types.
	(Has_Abstract_Interfaces): Add new formal to allow checking types
	covering interfaces using the partial view of private types.
	(Is_Fully_Initialized_Type): Special VM case for uTag component. This
	component still needs to be defined in this case, but is never
	initialized as VMs are using other dispatching mechanisms.
	(Abstract_Interface_List): For a protected type, use base type to get
	proper declaration.
	Improve warnings on redundant assignments
	(Is_Variable): Handle properly an implicit dereference of a prefixed
	function call.
	(Build_Actual_Subtype): If this is an actual subtype for an
	unconstrained formal parameter, use the sloc of the body for the new
	declaration, to prevent anomalises in the debugger.

2007-08-14  Robert Dewar  <dewar@adacore.com>

	* sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
	dispatching operation

2007-08-14  Ed Schonberg  <schonberg@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* exp_aggr.ads,
	exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
	expanded aggregate code before allocator, and ahead of declaration for
	temporary, to prevent access before elaboration when the allocator is
	an actual for an access parameter.
	(Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
	the TSD and the table of interfaces.
	(Convert_To_Assignments): Augment the test for delaying aggregate
	expansion for limited return statements to include the case of extended
	returns, to prevent creation of an unwanted transient scope.
	(Is_Static_Dispatch_Table_Aggregate): New subprogram.
	(Expand_Array_Aggregate): Handle aggregates associated with
	statically allocated dispatch tables.
	(Expand_Record_Aggregate): Handle aggregates associated with
	statically allocated dispatch tables.
	(Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
	of anonymous access type.

2007-08-14  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
	is a variable that renames a slice, use the variable itself in the
	expannsion when the renamed expression itself may be modified between
	the declaration of the renaming and the array assignment.

2007-08-14  Jerome Guitton  <guitton@adacore.com>

	* s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
	s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
	s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
	New functions; dummy implementations.

	* s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
	functions, used to implement the multi-tasks mode routines on VxWorks.

	* s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
	New functions, thin
	binding to the VxWorks routines which have changed between VxWorks 5
	and 6.
	(Int_Lock, Int_Unlock): New function, thin binding to kernel routines
	which are not callable from a RTP.

	* s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
	implemented for the multi-tasks mode on VxWorks 5 and 6.

	* s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.

	* s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
	functions.

2007-08-14  Vincent Celier  <celier@adacore.com>

	* clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
	gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
	mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
	mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
	mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
	mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
	mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
	procedure.
	(Major_Id_Name): New function.
	mlib-tgt.ads/mlib.tgt.adb:
	(Library_Major_Minor_Id_Supported): New function, default returns True
	Most mlib-tgt-*.adb that support shared libraries and symbolic links:
	(Build_Dynamic_Library): Add support for major/minor ids for shared libs
	Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
	Implementation of Library_Major_Minor_Id_Supported returns False
	clean.adb:
	(Clean_Library_Directory): If major/minor ids are supported, clean all
	library files.
	Major update of the Project Manager and of the project aware tools,
	including gprmake, so that the same sources in the GNAT repository
	can be used by gprbuild.

2007-08-14  Olivier Hainque  <hainque@adacore.com>

	* system-solaris-x86.ads (ZCX_By_Default): Switch to True.
	(GCC_ZCX_Support): Switch to True.

	* s-intman-solaris.adb (Notify_Exception): Call
	Adjust_Context_For_Raise before raising, as expected for signal
	handlers in general.

	* s-intman-posix.adb (Notify_Exception): Remove declaration of
	Adjust_Context_For_Raise, moved to the spec of this unit to be visible
	to other implementation bodies.

	* s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
	be visible by multiple implementation bodies.

	* init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
	only for conditions coming from hardware.
	[alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
	adjustments to signal context prior to exception raise from signal
	handler.
	(__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
	mode.
	Solaris section: (__gnat_adjust_context_for_raise): New function.
	Implementation of the machine context adjustments to perform prior to
	raise from a signal handler. Version for both sparc and x86.
	(HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
	(__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
	prior to raising as expected for any handler, before possible nested
	faults to make sure all the contexts in a chain have been adjusted by
	the time we propagate.

2007-08-14  Pascal Obry  <obry@adacore.com>

	* s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
	(SYSTEM_INFO): New record.
	(SetThreadIdealProcessor): New imported routine needed for supporting
	task_info pragma on Windows.

	* s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
	info can be applied to the current host.
	(Create_Task): Set the ideal processor if information is present.

	* s-tasinf-mingw.adb, s-tasinf-mingw.ads,
	a-exetim-mingw.adb, a-exetim-mingw.ads: New files.

2007-08-14  Olivier Hainque  <hainque@adacore.com>

	* s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
	stack size and initial stack pointer value for a given task.
	(Enter_Task): Get the stack attributes of the task we are entering and
	let the stack checking engine know about them.

	* s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
	Let the stack-checking engine know about the initial sp value and stack
	size associated with the current task.
	(Set_Stack_Info): If a stack base has been notified for the current
	task, honor it. Fallback to the previous less accurate method otherwise.

	* s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.

2007-08-14  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb: Create a limited view of an incomplete type, to make
	treatment of limited views uniform for all visible declarations in a
	limited_withed package.
	Set flag indicating that a subprogram body for a child unit has a
	generated spec.
	(Analyze_Compilation_Unit): If unit is a subprogram body that has no
	separate declaration, remove the unit name from visibility after
	compilation, so that environment is clean for subsequent compilations.
	(Install_Limited_Context_Clauses): Do not install a
	limited_private_with_clause unless the current unit is a body or a
	private child unit.
	(Analyze_Subunit, Install_Parents): Treat generic and non-generic units
	in the same fashion.
	(Install_Limited_Withed_Unit): Do not install a limited with clause if
	it applies to the declaration of the current package body.
	(Remove_Private_With_Clauses): If there is a regular with_clause for
	the unit, delete Private_With_Clause from context, to prevent improper
	hiding when processing subsequent nested packages and instantiations.

2007-08-14  Jose Ruiz  <ruiz@adacore.com>

	* adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
	dir/file, device:/dir/file, and device:drive_letter:/dir/file as
	representing absolute path names.
	__gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.

	* cstreams.c (__gnat_full_name for VxWorks): Use
	__gnat_is_absolute_path to detect whether we need to add the current
	directory to normalize the path.

2007-08-14  Javier Miranda  <miranda@adacore.com>

	* a-tags.ads,
	a-tags.adb (Displace): Associate a message with the raised CE
	exception.
	(To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
	To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
	To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
	spec.
	(Default_Prim_Op_Count): Removed.
	(IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
	Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
	Remove pragma Inline_Always.

	* rtsfind.ads (Default_Prim_Op_Count): Removed
	(Max_Predef_Prims): New entity
	(RE_Expanded_Name): Removed
	(RE_HT_Link): Removed
	(RE_Iface_Tag): Remmoved
	(RE_Ifaces_Table): Removed
	(RE_Interfaces_Array): Removed
	(RE_Interface_Data_Element): Removed
	(RE_Nb_Ifaces): Removed
	(RE_RC_Offset): Removed
	(RE_Static_Offset_To_Top): Removed

	* exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
	formal.
	(Build_Inherit_Predefined_Prims): Replace occurrences of Default_
	Prim_Op_Count by Max_Predef_Prims.

2007-08-14  Thomas Quinot  <quinot@adacore.com>
	    Vincent Celier  <celier@adacore.com>

	* binde.adb (Elab_All_Links): Remove unnecessary call to
	Generic_Separately_Compiled (if a unit satisfies this predicate, there
	won't be an associated Afile).
	(Elab_All_Links): Fail if a referenced unit cannot be found

	* bindgen.adb:
	Fix comments in bindgen regarding consistency checks done in Bcheck:
	the checks are made across units within a partition, not across several
	partitions.
	Fix generation of C binder file for VxWorks.

	* lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
	Generic_May_Lack_ALI, more descriptive of the current use of the
	predicate, and update documentation.

	* lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
	reorganization and documentation update for the case of predefined
	library generics (for which we do not reference an Afile).

2007-08-14  Robert Dewar  <dewar@adacore.com>

	* s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
	s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
	s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
	s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
	s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
	s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
	s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
	s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
	exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
	s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
	s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
	a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
	s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
	g-altcon.adb: Minor reformatting

	ada-tree.h: Delete empty line.

	ali.ads: Minor reformatting
	Clarification of comments.
	Minor spelling correction

	* exp_dbug.adb: Add Warnings Off to suppress new warning

	* a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
	formal

	* a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
	value

	* a-textio.adb (Write): Remove an unnecessary IN OUT mode from

	* a-textio.ads: Reorder the standard input/output/error declarations
	for consistency.

	* g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call

	* par-ch2.adb: Recognize RM specially in errout
	Change 'R'M to RM in all error messages

	* scng.adb: Recognize RM specially in errout

	* sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
	N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.

	* s-direio.adb: Add missing routine header box.

	* sem_attr.ads: Add ??? comments

	* sem_eval.adb: Recognize RM specially in errout
	Change 'R'M to RM in all error messages

	* sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes

	* s-tasinf.ads: Fix minor comment typo.

	* a-cihama.adb: Minor comment addition

	* a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
	formal

	* s-tasinf-tru64.ads: Fix minor comment typo.

	* itypes.ads: Comment update.

	* ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
	anymore.

	* argv.c: Added protection against null gnat_argv and gnat_envp.

	* bcheck.adb (Check_Consistency): Use correct markup character ({) in
	warning message when Tolerate_Consistency_Errors is True.

	* cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
	Any_Id, as this subprogram is only applicable to *type* entities (it
	sets RM_Size). Instead initialize just Esize and Alignment.

2007-08-14  Bob Duff  <duff@adacore.com>

	* a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
	a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
	a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
	a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
	a-coorse.ads (Next): Applied pragma Inline.
	Make all Containers packages Remote_Types (unless they are already
	Pure).
	(Previous): applied pragma Inline
	(Elements_Type): is now a record instead of an array

2007-08-14  Thomas Quinot  <quinot@adacore.com>

	* table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
	of Set_Item.
	(Set_Item): When the new item is an element of the currently allocated
	table passed by reference, save a copy on the stack if we're going
	to reallocate. Also, in Table.Set_Item, make sure we test the proper
	variable to determine whether to call Set_Last.

	* sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
	symbols-vms.adb, symbols-processing-vms-alpha.adb,
	symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
	some occurrences of the pattern
	   T.Increment_Last;
	   T.Table (T.Last) := Value;
	with a cleaner call to
	   T.Append (Value);

2007-08-14  Ed Schonberg  <schonberg@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

	* sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
	derived type with interface progenitors use the analyzed formal as the
	parent of the actual, to create renamings for all the inherited
	operations in Derive_Subprograms.
	(Collect_Previous_Instances): new procedure within of
	Load_Parent_Of_Generic, to instantiate all bodies in the compilation
	unit being loaded, to ensure that the generation of global symbols is
	consistent in different compilation modes.
	(Is_Tagged_Ancestor): New function testing the ancestor relation that
	takes progenitor types into account.
	(Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
	traversing over the primitives of the formal and actual types to locate
	any abstract subprograms of the actual type that correspond to a
	nonabstract subprogram of the formal type's ancestor type(s), and issue
	an error if such is found.
	(Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
	Instantiate_Package_Body, Instantiate_Subprogram_Body):
	Remove bogus guard around calls to Inherit_Context.
	(Reset_Entity): If the entity is the selector of a selected component
	that denotes a named number, propagate constant-folding to the generic
	template only if the named number is global to the generic unit.
	(Set_Instance_Env): Only reset the compilation switches when compiling
	a predefined or internal unit.

2007-08-14  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
	parameter to determine whether operation applies to the prefix.
	(Complete_Object_Operation): If actual has an access type and
	controlling formal is not an in_parameter, reject the actual if it is
	an access_to_constant type.
	(Try_Primitive_Operation): If the type of the prefix is a formal tagged
	type, the candidate operations are found in the scope of declaration of
	the type, because the type has no primitive subprograms.
	(Analyze_Selected_Component): If prefix is class-wide, and root type is
	a private extension, only examine visible components before trying to
	analyze as a prefixed call.
	Change Entity_List to Type_To_Use, for better readability.
	(Has_Fixed_Op): Use base type when checking whether the type of an
	operator has a user-defined multiplication/division
	(Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
	user-defined operators are available for fixed-point types.

2007-08-14  Thomas Quinot  <quinot@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
	formal At_Any_Place indicating, when True, that we want to test for
	availability of the stream attribute at any place (as opposed to the
	current visibility context only).
	(Missing_Read_Write_Attributes): A stream attribute is missing for the
	purpose of enforcing E.2.2(8) only if it is not available at any place.
	Take into account the Ada2005 pragma Has_Preelaborable_Initialization
	when checking the legality of an extension aggregate in a preelaborable
	package. Treat the literal null as a valid default expression in a
	component declaration for a type with preelaborable initialization.
	A limited interface is a legal progenitor for the designated type of a
	remote access to class-wide type.

2007-08-14  Thomas Quinot  <quinot@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
	reference): Use correct entity as denoted entity for the selector of
	the rewritten node.
	(Find_Direct_Name): Add comment about Generate_Reference incorrectly
	setting the Referenced_As_LHS flag for entities that are implicitly
	dereferenced.
	(Find_Type): If the type is an internally generated incomplete type,
	mark the full view as referenced, to prevent spurious warnings.
	(Find_Selected_Component, Has_Components): Handle properly non-limited
	views that are themselves incomplete types.
	Handle interfaces visible through limited-with clauses.
	(Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
	subprogram generic actual for which we have generated a renaming.
	Warn when the renaming introduces a homonym of
	the renamed entity, and the renamed entity is directly visible.

2007-08-14  Ed Schonberg  <schonberg@adacore.com>
	    Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_res.adb (Resolve_Allocator): Propagate any coextensions that
	appear in the subtree to the current allocator if it is not a static
	coextension.
	(Resolve_Allocator): Perform cleanup if resolution has determined that
	the allocator is not a coextension.
	(Resolve): Skip an interpretation hidden by an abstract operator only
	when the type of the interpretation matches that of the context.
	(Resolve): When looping through all possible interpretations of a node,
	do not consider those that are hidden by abstract operators.
	(Resolve_Actuals): When verifying that an access to class-wide object
	is an actual  for a controlling formal, ignore anonymous access to
	subprograms whose return type is an access to class_wide type.
	(Resolve_Slice): If the prefix of the slice is a selected component
	whose type depends on discriminants, build its actual subtype before
	applying range checks on the bounds of the slice.
	(Valid_Conversion): In an instance or inlined body, compare root types,
	to prevent anomalies between private and public views.
	(Resolve): Improve error message for ambiguous fixed multiplication
	expressions that involve universal_fixed multiplying operations.

2007-08-14  Javier Miranda  <miranda@adacore.com>
	    Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch9.adb (Build_Protected_Entry): Propagate the original source
	location to allow the correct generation of errors in case of
	restrictions applied to the expanded code.
	(Expand_Entry_Barrier): Remove all generated renamings for a barrier
	function if the condition does not reference them.
	(Expand_Entry_Body_Declarations): Mark the index constant as having a
	valid value.

2007-08-14  Thomas Quinot  <quinot@adacore.com>
	    Pablo Oliveira  <oliveira@adacore.com>

	* exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
	typecode parameters for a union (in a variant record), remove
	extraneous layer of Any wrapping for member label.
	(Expand_Receiving_Stubs_Bodies): For an RCI package body that has
	elabration statements, register the package with the name server
	at the beginning, not at the end, of the elaboration statements so
	that they can create remote access to subprogram values that designate
	remote subprograms from the package.

2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
	values to compute the number of seconds since the Unix Epoc in order to
	account for Daylight Savings Time. Perform special processing for dates
	that are earlier than the Unix Epoc to obtain a negative number.

2007-08-14  Emmanuel Briot  <briot@adacore.com>

	* g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
	switches.

2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>

	* gnatlink.adb (Gnatlink): Pass switches to the linker even if the
	binder-generated file is not in Ada.
	Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
	recorded in the ALI file.
	Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.

2007-08-14  Vincent Celier  <celier@adacore.com>

	* gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
	(Output_Source): Do nothing if parameter is No_Sdep_Id

	* make.adb (Gnatmake): Do not rebuild an archive simply because a
	shared library it imports has a later time stamp.
	(Check): Resolve the symbolic links in the path name of the object
	directory.
	Check that the ALI file is in the correct object directory
	Check if a file name does not correspond to the mapping of units
	to file names.
	(Display_Version): New procedure
	(Initialize): Process switches --version and --help
	Use type Path_Name_Type for path name

2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>

	* impunit.adb: Re-organize System.Random_Numbers and
	GNAT.Random_Numbers and add to builds.

	* Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*

	* s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.

	* a-assert.ads, a-assert.adb: New files.

2007-08-14  Gary Dismukes  <dismukes@adacore.com>

	* layout.adb (Layout_Type): In the case of access-to-subprogram types,
	if AAMP_On_Target is True, then the size of the type encompasses two
	addresses (a static link and a subprogram address), except in the case
	of library-level access types.

2007-08-14  Vincent Celier  <celier@adacore.com>

	* output.ads, output.adb (Write_Eol): Remove trailing spaces before
	writing the line.
	(Write_Eol_Keep_Blanks): New procedure to write a line, including
	possible trailing spaces.
	(Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line

2007-08-14  Javier Miranda  <miranda@adacore.com>

	* par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
	null-excluding access types.

2007-08-14  Javier Miranda  <miranda@adacore.com>

	* sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
	that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
	of private types add missing check on matching interfaces in the
	partial and full declarations.
	(Analyze_Protected_Type): Code cleanup.
	(Analyze_Task_Type): Code cleanup.

2007-08-14  Javier Miranda  <miranda@adacore.com>

	* sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
	generated interface thunk.

2007-08-14  Ed Schonberg  <schonberg@adacore.com>

	* s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
	obsolescent warning on application of 'Class to an incomplete type.

	* s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
	prevent obsolescent warning on application of 'Class to an incomplete
	type.

2007-08-14  Pascal Obry  <obry@adacore.com>

	* s-fileio.adb (Is_Open): Add check for usability of the underlying
	file stream.

2007-08-14  Cyrille Comar  <comar@adacore.com>

	* s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
	since it is potentially used in cases implying double finalization of
	the same object.

2007-08-14  Jose Ruiz  <ruiz@adacore.com>

	* s-tasini.adb (Get_Stack_Info): Move this function to
	System.Soft_Links.Tasking because it is common to the full and the
	restricted run times.
	(Init_RTS): Do not set the Get_Stack_Info soft link because it is done
	in SSL.Tasking.Init_Tasking_Soft_Links.

	* s-solita.adb (Get_Stack_Info): Function moved from
	System.Tasking.Initialization because it is common to the full and the
	restricted run times.
	(Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.

2007-08-14  Arnaud Charlet  <charlet@adacore.com>

	* s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
	s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
	(PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
	parameter.

	* s-tassta.adb (Task_Wrapper): Increased value of the small overflow
	guard to 12K.

2007-08-14  Gary Dismukes  <dismukes@adacore.com>

	* s-veboop.adb (SU): New named number initialized to
	System.Storage_Unit.
	(True_Val): The initialization expression is revised to use SU (=
	Storage_Unit) rather than assuming 8 for the component size of an
	unpacked Boolean array.

2007-08-14  Tristan Gingold  <gingold@adacore.com>

	* tracebak.c: Use tb-ivms.c on OpenVMS Itanium.

	* tb-ivms.c: New file.

	* g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2

2007-08-14  Geert Bosch  <bosch@adacore.com>

	* i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
	s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
	Add required linker pragmas for automatically linking with the gnalasup
	linear algebra support library, and the systems math library.
	Rename cdot to cdotu and zdot to zdotu.
	Update header comment to describe purpose of package.

2007-08-14  Thomas Quinot  <quinot@adacore.com>

	* exp_ch7.adb (Find_Final_List): For an anonymous access type that has
	an explicitly specified Associated_Final_Chain, use that list.
	(Expand_N_Package_Body): Build dispatch tables of library level tagged
	types.
	(Expand_N_Package_Declaration): Build dispatch tables of library level
	tagged types. Minor code cleanup.

2007-08-14  Vincent Celier  <celier@adacore.com>

	* gnatchop.adb (Terminate_Program): Remove exception and use
	Types.Terminate_Program instead.

	* osint.ads, osint.adb (Current_Exit_Status): New global variable
	(Find_Program_Name): Added protection against empty name.
	(OS_Exit_Through_Exception): New procedure

	* s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
	(OS_Exit_Default): New procedure that contains the previous
	implementation of procedure OS_Exit.
	(Final_Value): Remove obsolete Interix stuff.

2007-08-14  Thomas Quinot  <quinot@adacore.com>

	* g-socket.ads: Reorganize example code so that it also works on
	Windows XP.

2007-08-14  Tristan Gingold  <gingold@adacore.com>

	* g-trasym.ads: AIX now supports symbolic backtraces.

2007-08-14  Ed Schonberg  <schonberg@adacore.com>

	* lib-load.adb (From_Limited_With_Chain): Always scan the stack of
	units being loaded to detect circularities. A circularity may be
	present even if the current chain of pending units to load starts from
	a limited_with_clause.

	* lib-load.ads: Change profile of Load_Unit to use a with_clause
	rather than a boolean flag, in order to detect circularities in
	with_clauses.

	* par-load.adb: Use current with_clause in calls to Load_Unit, rather
	than propagating the From_Limited_With flag, in order to handle
	properly circularities involving with_clauses.

2007-08-14  Nicolas Setton  <setton@adacore.com>

	* link.c (FreeBSD): Add "const" keyword where needed, to eliminate
	warnings.

2007-08-14  Arnaud Charlet  <charlet@adacore.com>

	* Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
	to build for libgnala.
	libgnat: Add rules to build libgnala.a
	(LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
	target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
	Add s-osinte-vxworks-kernel.adb to the target pairs of the
	kernel run-time lib for VxWorks 6, which would provide a different
	implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
	x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
	running ZCX by default.
	Add g-sttsne-locking to LynxOS version.
	Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
	On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.

	* system-darwin-x86.ads: New file.

	* Make-lang.in: Delete files before copying onto them, so if they are
	read-only, the copy won't fail.
	Update dependencies

2007-08-14  Pascal Obry  <obry@adacore.com>

	* mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
	naming scheme.

2007-08-14  Vincent Celier  <celier@adacore.com>

	* mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
	(Gcc): Initialize Gcc_Name at the first call

2007-08-14  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch7.adb (Analyze_Package_Specification): Do not install private
	with_clauses of the enclosing unit when analyzing the package
	specification of a nested instance.

2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
	(Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
	Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
	layout of N_Allocator.

2007-08-14  Thomas Quinot  <quinot@adacore.com>

	* rtsfind.adb (Check_RPC): Add PCS version check.

	* gnatvsn.ads, gnatvsn.adb: Add PCS version.
	(Gnat_Free_Software): New function.

	* sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
	the PCS_Version value from s-parint, used to check that it is consistent
	with what exp_dist expects.

	* s-parint.ads (PCS_Version): New entity for checking consistency
	between exp_dist and PCS.

	* gen-soccon.c: (SO_REUSEPORT): New constant.

2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-calfor.adb (Image (Duration; Boolean)): Change type of local
	variable Sub_Second to Duration in order to accomodate a larger range
	of arithmetic operations.

2007-08-14  Bob Duff  <duff@adacore.com>

	* g-sttsne-locking.ads: Move comments from spec to body.
	* g-sttsne-locking.adb: Move comments from spec to body.
	* g-sttsne-vxworks.ads: Removed.
	* g-sttsne-vxworks.adb: Removed.

2007-08-11  Ian Lance Taylor  <iant@google.com>

	* misc.c (gnat_get_alias_set): Change return type to
	alias_set_type.

2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* decl.c, utils2.c: Fix whitespace in last change.

2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* decl.c (compare_field_bitpos): Constify.
	* utils2.c (compare_elmt_bitpos): Likewise.

2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>

	* s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
	anonymous access type.
	(pthread_sigmask): Now take an access sigset_t.

2007-07-05  Joel Sherrill  <joel.sherrill@oarcorp.com>

	* s-osinte-rtems.ads: Correct prototype of pthread_sigmask.

2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/25737
	* misc.c (gnat_post_options): Do not force flag_tree_salias to 0.

2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* trans.c (Attribute_to_gnu): When subtracting an
	offset from a pointer, use POINTER_PLUS_EXPR with
	NEGATE_EXPR instead of MINUS_EXPR.
	(gnat_to_gnu): Likewise.
	* utils.c (convert): When converting between
	thin pointers, use POINTER_PLUS_EXPR and sizetype
	for the offset.
	* utils2.c (known_alignment): POINTER_PLUS_EXPR
	have the same semantics as PLUS_EXPR for alignment.
	(build_binary_op): Add support for the semantics of
	POINTER_PLUS_EXPR's operands.
	When adding an offset to a pointer, use POINTER_PLUS_EXPR.

2007-06-11  Rafael Ávila de Espíndola  <espindola@google.com>

	* trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
	of get_signed_or_unsigned_type.
	* misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.

2007-06-11  Bob Duff  <duff@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

	* g-stsifd-sockets.adb (Create): Work around strange behavior of
	'bind' on windows that causes 'connect' to fail intermittently, by
	retrying the 'bind'.
	(GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.

2007-06-10  Duncan Sands  <baldrick@free.fr>

	* decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
	than to void, for the fields when making a new fat pointer type.
	(gnat_substitute_in_type): Now substitute_in_type.
	* gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
	* trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
	* utils.c (update_pointer_to): Update fat pointers by updating the
	dummy node pointers used for the fields.

2007-06-06  Thomas Quinot  <quinot@adacore.com>
	    Bob Duff  <duff@adacore.com>

	* g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
	g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
	g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
	constant Thread_Blocking_IO, always True by default, set False
	on a per-runtime basis.
	(Need_Netdb_Buffer): New constant.

	* g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
	g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
	files.

	* g-socthi-vxworks.ads, g-socthi-vxworks.adb,
	g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
	Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
	child package Task_Safe_NetDB
	(Host_Error_Messages): Add stub body.
	(GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.

	* g-soccon-mingw.ads: Add Windows-specific constants.
	(Need_Netdb_Buffer): New constant.
	(GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
	wrapper and import inet_addr(3) from the standard sockets library
	directly instead.
	(In_Addr): Add alignment clause.
	(GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
	s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
	s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
	s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
	s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
	s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
	a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
	a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
	a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
	g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
	g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
	i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
	s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
	s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
	s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
	s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
	s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
	s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
 	s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
	s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
	s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
	s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
	s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
	s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
	s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
	s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
	s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
	s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
	s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
	s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
	s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
	a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
	Unchecked_* by Ada.Unchecked_*

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
	s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
	g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
	output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
	g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
	a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.

	* s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
	s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
	s-tasloc.adb, s-tasloc.ads: New files.

2007-06-06  Bob Duff  <duff@adacore.com>

	* g-expect-vms.adb:
	(Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
	* g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
	(Send_Signal, Close): Raise Invalid_Process if the process id is
	invalid.
	(Pattern_Matcher_Access): Is now a general access type to be able to
	use aliased string.

2007-06-06  Thomas Quinot  <quinot@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
	(SIGEMT is now used instead of SIGTERM on AIX).

	* s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
	(Time_Slice_Supported): Set to True.
	Use SIGEMT instead of SIGTERM as SIGADAABORT.

2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
	(Time, Time)): Use To_Relative_Time rather than manual calculation to
	express the bounds of Duration as Time. Raise Time_Error when the
	result is greater or equal to the higher bound of Duration (on the
	margin case).
	("+" (Time, Duration)): Reorder code. Remove the declaration of constant
	Ada_High_And_Leaps.
	("-" (Time, Duration)): Reorder code. Remove the declaration of constant
	Ada_High_And_Leaps.
	("-" (Time, Time)): Reorder code.
	(All_Leap_Seconds): Removed.
	(Arithmetic_Operations.Add): Remove sign related kludge.
	(Arithmetic_Operations.Difference): Control the leaps seconds processing
	with flag Leap_Support.
	(Arithmetic_Operations.Subtract): Remove sign related kludge.
	(Check_Within_Time_Bounds): New procedure.
	(Clock): Control the leap seconds processing with flag Leap_Support.
	(Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
	(Formatting_Operations.Split): Control the leap seconds processing with
	flag Leap_Support.
	(Formatting_Operations.Time_Of): Control the leaps seconds processing
	with flag Leap_Support. Adjust the year, month and day (if applicable)
	when the value of day seconds designates a new day.
	(Split): Use parameter associations for better readability. Integrate
	flag Is_Ada_05.
	(Time_Of): Use parameter associations for better readability. Integrate
	flag Is_Ada_05.

	* a-calfor.adb (Split): Use parameter associations for better
	readability. Integrate flag Is_Ada_05.
	(Time_Of): Remove flag Leap_Checks. Use parameter associations for
	better readability. Integrate flag Is_Ada_05.

2007-06-06  Arnaud Charlet  <charlet@adacore.com>

	* s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
	s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
	s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
	s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
	s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
	s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
	s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
	s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
	s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
	s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
	s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
	time when entering this routine to detect a backward clock setting
	(manual setting or DST adjustment), to avoid waiting for a longer delay
	than needed.
	(Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
	Remove handling of deferred priority change, and replace by setting the
	task priority directly, as required by AI-188.
	Update comments.
	(Max_Task_Image_Length): New constant.
	Replace Warnings (Off) by Unreferenced pragma, cleaner.
	(Dynamic_Priority_Support): Removed, no longer needed.
	(Poll_Base_Priority_Change): Ditto.
	(Set_Ceiling): Add this procedure to change the ceiling priority
	associated to a lock. This is a dummy implementation because dynamic
	priority ceilings are not supported by the underlying system.

	* a-dynpri.adb (Set_Priority): Take into account case where Target is
	accepting a RV with its priority boosted.
	Remove handling of deferred priority change, and replace by setting the
	task priority directly, as required by AI-188.

	* s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
	Succeeded = True.
	Remove handling of deferred priority change, and replace by setting the
	task priority directly, as required by AI-188.
	(Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
	of Self_Id earlier.

	* s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
	(Poll_Base_Priority_Change): Removed.
	Code clean up: use SSL.Current_Target_Exception.

	* s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
	to run as this is a potentially dispatching point.
	(Call_Synchronous): Use Local_Defer_Abort.
	(Callable): Relax assertion.
	(Selective_Wait): Relax assertion in case abort is not allowed.
	Remove handling of deferred priority change, and replace by setting the
	task priority directly, as required by AI-188.

	* s-tasuti.adb (Make_Passive): Adjust assertions.
	Remove handling of deferred priority change, and replace by setting the
	task priority directly, as required by AI-188.

2007-06-06  Arnaud Charlet  <charlet@adacore.com>

	* system-vxworks-sparcv9.ads, system-solaris-x86.ads,
	system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
	system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
	system-vxworks-mips.ads, system-vxworks-alpha.ads,
	system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
	system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
	system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
	system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
	system-solaris-sparcv9.ads, system-vms.ads, system.ads,
	system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
	system-linux-ia64.ads: Document mapping between Ada and OS priorities.
	This patch changes the largest non-binary modulus from 2**31-1 to
	2**32-1.
	(Compiler_System_Version): Removed, no longer used.
	Clean up system files by removing flags only used on a single target.
	Also remove obsolete flags, only used during bootstrap from system.ads
	(Address): Add a pragma Preelaborable_Initialization.

	* system-aix.ads:  Ditto.
	(GCC_ZCX_Support): Set to true.
	Update priority range on AIX and map Ada priorities to target
	priorities appropriately for different scheduling policies.

	* ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1

2007-06-06  Vincent Celier  <celier@adacore.com>

	* mlib-tgt-specific.adb, mlib-tgt-specific.ads,
	mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.

	* mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
	mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
	mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
	mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
	mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
	MLib.Tgt, containing the default versions of the exported subprograms.
	For each platform, create a specific version of the body of new child
	package MLib.Tgt.Specific that contains only the body of subprograms
	that are different from the default.
	(Archive_Builder_Append_Options): New function.

2007-06-06  Matthew Gingell  <gingell@adacore.com>

	* s-osinte-aix.adb: Map Ada priorities to target priorities
	appropriately for different scheduling policies.

2007-06-06  Arnaud Charlet  <charlet@adacore.com>

	* s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
	its C counterpart.
	Remove references to Unchecked_Conversion, and use Ada.xxx instead.
	Replace Unchecked_Conversion by Ada.Unchecked_Conversion.

2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>

	* s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
	Noop on VMS, added for interface commonality.

2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
	    Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
	    Olivier Hainque  <hainque@adacore.com>

	* decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
	renamed expression of a full renaming at toplevel.
	(gnat_to_gnu_entity, case object): If not defining, do not look inside
	the values the constant is initialized to if it is an N_Allocator.
	(gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
	TYPE_SIZE_UNIT of inner types after the stride is elaborated.
	(make_aligning_type): Accept an extra ROOM argument for storage to be
	made available before the aligned field, and an extra BASE_ALIGN
	argument for callers to pass the alignment guaranteed to be honored for
	the whole aligning object. Avoid call to finish_record_type, which only
	interferes with the sizes we want to set.
	(gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
	make_aligning_type for super-aligned objects on stack.
	(components_to_record): Pass the adjusted size of the type when creating
	fields in the qualified union for the variant part.
	(gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
	(gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
	packed array type.
	(maybe_pad_type): Set TYPE_USER_ALIGN.
	(make_aligning_type): Likewise.
	ALIGN argument is unsigned int.
	(gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
	(gnat_to_gnu_param): Likewise, for parameters.
	(gnat_to_gnu_entity) <object>: Always instantiate the renaming object
	if it is constant and stems from a function call.
	(gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
	of the record is specified.  Adjust accordingly.
	(adjust_packed): New static function.
	(gnat_to_gnu_field): Use it to adjust the packedness setting.
	(components_to_record): Likewise.
	(gnat_to_gnu_entity) <object>: Do not test the renamed expression for
	side-effects if the object is deemed constant.
	(gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
	type instead of merely finalizing it.  Tidy.
	<E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
	<E_Access_Type>: Likewise.
	(defer_debug_incomplete_list): Rename to defer_finalize_list.
	(defer_debug_level): Delete.
	(gnat_to_gnu_entity) <debug_deferred>: Likewise
	<E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
	type.
	<E_Record_Type>: Do not explicitly defer finalizing the type.
	Adjust for write_record_type_debug_info renaming.
	<E_Subprogram_Type>: Likewise.
	Finalize deferred types right after deferred incomplete types are
	expanded.
	(rest_of_type_decl_compilation): New global function.
	(components_to_record): Rename defer_debug parameter to do_not_finalize.
	(components_to_record): Propagate the packedness to the fields of the
	qualified union type if there is a variant part.
	(gnat_to_gnu_entity) <E_Array_Type>: Use new function
	instead of inline code to adjust the XUT field offsets.
	(gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
	<E_Record_Subtype>: Do not let finish_record_type compute the sizes
	and write the debug info if the type derives from a discriminated one.
	(gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
	<E_Array_Subtype>: Likewise.
	<E_String_Literal_Subtype>: Likewise.
	(gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
	an alignment clause.
	(maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
	before giving warning.
	(prepend_one_attribute_to): New function, helper to prepend an attribute
	to an attribute list.
	(gnat_to_gnu_entity) <E_Procedure>: Use it.
	(prepend_attributes): Likewise.
	(gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
	<E_Array_Type>: Declare the padding type for the element type, if any.
	<E_Array_Subtype>: Likewise.
	(defer_limited_with): New variable.
	(Gigi_Equivalent_Type): New function.
	(gnat_to_gnu_entity): Use it at start and use result throughout.
	(gnat_to_gnu_entity, case E_Access_Type): Rework to use
	Gigi_Equivalent_Type, support Limited_With, allow two levels of
	indirection, precompute if unconstrained array to simplify logic, and
	use defer_limited_with to defer elaboration of some types from limited
	with.
	(finalize_from_with_types): New function.

2007-06-06  Gary Dismukes  <dismukes@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>
	    Tristan Gingold  <gingold@adacore.com>
	    Olivier Hainque  <hainque@adacore.com>

	* trans.c (Identifier_to_gnu): Change test for deferred constant by
	adding guard that the entity is an E_Constant before testing presence
	of Full_view (and remove unnecessary test that entity is not a type).
	For a CONST_DECL used by reference, manually retrieve
	the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
	(struct language_function): Move from utils.c to here.
	(struct parm_attr): New structure.
	(parm_attr, parm_attr vector, parm_attr GC vector): New types.
	(f_parm_attr_cache): New macro.
	(Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
	expressions for the 'First, 'Last and 'Length attributes of the
	unconstrained array IN parameters.
	(Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
	Allocate the information structure for the function earlier, as well
	as the language-specific part.
	If the parameter attributes cache has been populated, evaluate the
	cached expressions on entry.
	(takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
	N_Procedure_Call_Statement and N_Indexed_Component.
	(Pragma_to_gnu): Translate inspection_point to an asm statement
	containaing a comment and a reference to the object (either its address
	for BLKmode or its value).
	(Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
	to go to DECL_INITIAL. Together with the size constraint relaxation
	in create_var_decl, enlarges the set of situations in which an
	identifier may be used as an initializer without implying elaboration
	code.
	(Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
	DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
	node.
	(maybe_stabilize_reference): Remove lvalues_only parameter.
	(gnat_stabilize_reference): Adjust for above change.
	(gnat_to_gnu): Do not set location information on the result
	if it is a reference.
	(add_cleanup): Add gnat_node parameter and set the location of the
	cleanup to it.
	(Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
	(Exception_Handler_to_gnu_zcx): Likewise.
	(gigi): Remove the cgraph node if the elaboration procedure is empty.
	(Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
	the former right after the latter.
	(start_stmt_group): Make global.
	(end_stmt_group): Likewise.
	(gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
	vars.
	(gnu_program_error_label_stack): Likewise.
	(gigi): Initialize them.
	(call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
	(gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
	New cases.
	(push_exception_label_stack): New function.
	(takes_address): New function.

	* utils.c (struct language_function): Move to trans.c from here.
	(unchecked_convert): Do not wrap up integer constants in
	VIEW_CONVERT_EXPRs.
	(create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
	the latter for aggregate types, unexpected by later passes, and relax an
	arbitrary size constraint on the former.
	(create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
	to compare the sizes.
	(convert_vms_descriptor): When converting to a fat pointer type, be
	prepared for a S descriptor at runtime in spite of a SB specification.
	(shift_unc_components_for_thin_pointers): New function.
	(write_record_type_debug_info): For variable-sized fields, cap the
	alignment of the pointer to the computed alignment.
	(finish_record_type): Change HAS_REP parameter into REP_LEVEL.
	If REP_LEVEL is 2, do not compute the sizes.
	(build_vms_descriptor): Adjust for new prototype of finish_record_type.
	(build_unc_object_type): Likewise.
	(declare_debug_type): New function.

	* ada-tree.def: USE_STMT: removed (not emitted anymore).

	* misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
	no statement is expandable anymore.
	(gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
	(gnat_handle_option): Only allow flag_eliminate_debug_types to be set
	when the user requested it explicitely.
	(gnat_post_options): By default, set flag_eliminate_unused_debug_types
	to 0 for Ada.
	(get_alias_set): Return alias set 0 for a type if
	TYPE_UNIVERSAL_ALIASING_P is set on its main variant.

	* ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
	(DECL_FUNCTION_STUB): New accessor macro.
	(SET_DECL_FUNCTION_STUB): New setter macro.

	* lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.

	* fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
	declarations.

2007-06-06  Jose Ruiz  <ruiz@adacore.com>

	* s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
	Rename to Abort_Task_Interrupt to be able to keep the same interface
	as the rest of the targets.

	* s-osinte-vxworks.ads s-osinte-vxworks.adb
	(To_VxWorks_Priority): Remove explicit "in" mode indicator

	* s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
	New files.

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* a-chahan.ads: Remove obsolescent pragmas

	* a-chlat1.ads: Minor reformatting

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
	for Errout

	* errout.adb: New Finalize/Compilation_Errors/Output_Messages
	implementation

	* errout.ads (Finalize): Changed interface
	(Output_Messages): New procedure
	(Compilation_Errors): New Interface

	* prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
	Finalize/Output_Messages interface for Errout
	(Prepare_To_Preprocess): New Finalize/Output_Messages interface for
	Errout.

2007-06-06  Thomas Quinot  <quinot@adacore.com>
	    Olivier Hainque  <hainque@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
	check.
	(Raise_Current_Excep): Call Debug_Raise_Exception just before
	propagation starts, to let debuggers know about the event in a reliable
	fashion.
	(Local_Raise): Moved to System.Exceptions
	More convenient to have this as a separate unit

	* s-except.adb, s-except.ads: New files.

	* a-exextr.adb (Unhandled_Exception): Delete - replaced by
	Debug_Unhandled_Exception in System.Exceptions where it belongs
	together with a couple of other debug helpers.
	(Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
	the former Unhandled_Exception.

	* exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
	(Warn_No_Exception_Propagation): New procedure
	(Warn_If_No_Propagation): Rewritten for new warning generation
	(Expand_Exception_Handlers): New warning generation
	(Expand_N_Raise_xxx_Error): Rewritten for new warnings
	(Add_Exception_Label): Use Special_Exception_Package_Used for test
	instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
	(Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
	even if restriction is set (makes life easier in Check_Returns)
	(Expand_Local_Exception_Handlers): Follow renamed entity chain when
	checking exception identities.
	(Expand_Local_Exception_Handlers): Do not optimize when all others case
	(Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
	block for handler (used by Check_Returns)
	(Expand_Local_Exception_Handlers): Local_Raise now takes an address
	(Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
	remove all exception handlers when optimizing local raise statements.
	(Find_Local_Handler): Use Get_Renamed_Entity
	(Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
	marked analyzed after expanding exception handlers, do not generate
	redundant cleanup actions, because they have been constructed already.

2007-06-06  Thomas Quinot  <quinot@adacore.com>

	* a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
	presence of this categorization pragma is mandated by the language.
	(Limited_Controlled): Add missing pragma Preelaborable_Initialization
	for this type.

2007-06-06  Vincent Celier  <celier@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
	butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
	err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
	fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
	lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
	makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
	par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
	prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
	prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
	sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
	uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
	ali.ads, ali.adb:
	Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
	package Namet. Make File_Name_Type and Unit_Name_Type types derived from
	Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
	Use variables of types File_Name_Type and Unit_Name_Type in error
	messages.
	(Get_Name): Add parameter Ignore_Special, and set it reading file name
	(New_Copy): When debugging the compiler, call New_Node_Debugging_Output
	here.
	Define flags Flag217-Flag230 with associated subprograms
	(Flag_Word5): New record type.
	(Flag_Word5_Ptr): New access type.
	(To_Flag_Word5): New unchecked conversion.
	(To_Flag_Word5_Ptr): Likewise.
	(Flag216): New function.
	(Set_Flag216): New procedure.

2007-06-06  Arnaud Charlet  <charlet@adacore.com>

	* a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
	instead of 'Size.

	* a-stwifi.ads, a-stzfix.ads: Minor reformatting

2007-06-06  Javier Miranda  <miranda@adacore.com>

	* a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
	the package.
	(Object_Specific_Data_Array): This is now internal to the package.
	(Object_Specific_Data): This is now internal to the package.
	(Select_Specific_Data_Element): This is now internal to the package.
	(Select_Specific_Data_Array): This is now internal to the package.
	(Select_Specific_Data): This is now internal to the package.
	(Offset_To_Top_Function_Ptr): This is now public.
	(To_Offset_To_Top_Function_Ptr): Removed.
	(Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
	 local to subprogram Offset_To_Top.
	(Predefined_DT): Removed.
	(Typeinfo_Ptr): Removed.
	(OSD): This function is now internal to this package.
	(SSD): This function is now internal to this package.
	(DT): New function that displaces the pointer to the table of primitives
	 to get access to the enclosing wrapper record.
	(IW_Membership): Code cleanup.
	(Offset_To_Top): Code cleanup.
	(Predefined_DT): Removed.
	(Register_Interface_Tag): Removed.
	(Set_Interface_Table): Removed.
	(Set_Offset_Index): Removed.
	(Set_Offset_To_Top): Code cleanup.
	(Set_OSD): Removed.
	(Set_Signature): Removed.
	(Set_SSD): Removed.
	(Set_Tagged_Kind): Removed.
	(Typeinfo_Ptr): Removed.
	(TSD): Removed.
	(Displace): Add missing check on null actual.

	* exp_disp.ads, exp_disp.adb
	(Select_Expansion_Utilities): Removed.
	(Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
	(Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
	the interface requires a new parameter.
	(Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
	Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
	calls to subprograms Build_T, Build_S, etc. by the corresponding code.
	Done to remove package Select_Expansion_Utilities.
	(Make_DT): New implementation for statically allocated dispatch tables.
	(Make_Secondary_DT): Moved to the scope of Make_DT.
	(Register_Primitive): Code cleanup plus incoporate the use of the new
	function DT_Address_Attribute.
	(Expand_Interface_Thunk): The profile of this subprogram has been
	changed to return the Thunk_Id and the corresponding code.
	(Fill_DT_Entry): Removed. Its functionality is now provided by
	subprogram Register_Primitive.
	(Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
	subprogram Register_Primitive.
	(Register_Primitive): New subprogram that incorporates the previous
	functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
	(Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
	was only required to call Make_DT_Access_Action, which is now removed.
	(Ada_Actions): Removed
	(Action_Is_Proc): Removed
	(Action_Nb_Arg): Removed
	Replace all the calls to Make_DT_Access_Action by direct calls to
	Make_Procedure_Call_Statement or Make_Function_Call.
	(Set_DTC_Entity_Value): New subprogram.
	(Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
	(Expand_Interface_Thunk): Add missing support for primitives that are
	functions with a controlling result (case in which there is no need
	to generate the thunk).

	* exp_atag.ads, exp_atag.adb
	(Build_DT): New subprogram that displaces the pointer to reference the
	base of the wrapper record.
	(Build_Typeinfo_Offset): Removed.
	(RTE_Tag_Node): Removed.
	(Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
	(Build_Get_RC_Offset): Removed.
	(Build_Inherit_Predefined_Prims): Removed.
	(Build_Inherit_TSD: Removed.
	(Build_New_TSD): Removed.
	(Build_Set_External_Tag): Removed.
	(Build_Set_Predefined_Prim_Op_Address): Add documentation.
	(Build_Set_Prim_Op_Address): Add documentation.
	(Build_Set_TSD): Removed.

	* rtsfind.ads, rtsfind.adb
	(Load_Fail): If load fails and we are not in configurable run-time
	mode, then raise Unrecoverable_Error.
	(Text_IO_Kludge): Generate an error message if a run-time library is
	not available in a given run-time (ie. zfp run-time).
	(RTE_Record_Component): Add code to check that the component we search
	for is not found in two records in the given run-time package.
	(RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
	(RE_DT_Predef_Prims_Offset): New entity
	(RE_Static_Offset_To_Top): New entity
	(RE_HT_Link): New entity.
	(System_Address_Image): Addition of this run-time package.
	(RE_Address_Image): New entity.
	(RE_Abstract_Interface): Removed.
	(RE_Default_Prim_Op_Count): Removed.
	(RE_DT_Entry_Size): Removed.
	(RE_DT_Min_Prologue_Size): Removed.
	(RE_DT_Prologue_Size): Removed.
	(RE_Ifaces_Table_Ptr): Removed.
	(RE_Interface_Data_Ptr): Removed.
	(RE_Type_Specific_Data): Removed.
	(RE_Primary_DT): Removed.
	(RE_Register_Interface_Tag): Removed.
	(RE_Set_Offset_Index): Removed.
	(RE_Set_OSD): Removed.
	(RE_Set_SSD): Removed.
	(RE_Set_Signature): Removed.
	(RE_Set_Tagged_Kind): Removed.
	(RE_Address_Array): New entity.
	(RE_DT): New entity.
	(RE_Iface_Tag): New entity.
	(RE_Interfaces_Table): New entity.
	(RE_No_Dispatch_Table): New entity.
	(RE_NDT_Prims_Ptr): New entity.
	(RE_NDT_TSD): New entity.
	(RE_Num_Prims): New entity.
	(RE_Offset_To_Top_Function_Ptr): New entity.
	(RE_OSD_Table): New entity.
	(RE_OSD_Num_Prims): New entity.
	(RE_Predef_Prims): New entity
	(RE_Predef_Prims_Table_Ptr): New entity.
	(RE_Primary_DT): New entity.
	(RE_Signature): New entity.
	(RE_SSD): New entity.
	(RE_TSD): New entity.
	(RE_Type_Specific_Data): New entity.
	(RE_Tag_Kind): New entity.

2007-06-06  Thomas Quinot  <quinot@adacore.com>

	* a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
	C imported variable.
	(Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
	on entry.

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* a-tienio.adb (Get): Adjust buffer size to accomodate one extra
	character

2007-06-06  Vincent Celier  <celier@adacore.com>

	* a-tifiio.adb (Put, internal): For negative numbers, check that there
	is room for at least one digit and the minus sign.
	(Put.Put_Character): Never put a character outside of the range of
	string To.

2007-06-06  Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* utils2.c (build_allocator): Provide the extra arguments to
	make_aligning_type for super-aligned objects allocated from the default
	pool. Leave enough room for a pointer before the aligning field, and
	store the system's allocator return value there.
	(build_call_alloc_dealloc): When releasing a super-aligned object,
	retrieve the system's allocator return value from where build_allocator
	has stored it, just ahead of the adjusted address we are passed.
	(build_call_raise): Handle properly the generation of line numbers when
	the node is marked No_Location.
	(compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
	by using DECL_UID on ties.
	(build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
	main variant.
	(build_call_raise): Handle converting exception into goto; support new
	argument KIND.
	(build_component_ref): Add new arg to build_call_raise.

2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
	"." in the case of nnn.xxx when nnn terminates with an underscore.
	Parse the remaining "#" or ":" in the case of nnn#.xxx#

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT

2007-06-06  Arnaud Charlet  <charlet@adacore.com>
	    Vincent Celier  <celier@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
	needed.
	(Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
	((destructor)) for adafinal, even when switch -a is used.
	Do not issue pragma Linker_Destructor for adafinal when switch -a is
	used.
	(Gen_Object_Files_Options): Add formatting of Linker Options, when
	Output_Linker_Option_List is set. Suppress this formatting when
	Zero_Formatting is set.
	Add case for CLI_Target.
	(System_Restrictions_Used): New flag, used to avoid generating with of
	System_Restrictions and initialization of the data unless there is
	some use of System.Restrictions in the partition.
	(Check_System_Restrictions_Used): New procedure

	* s-stalib.adb: Remove with of System.Restrictions. No longer needed
	since we only with this unit in the binder file if it is used elsewhere
	in the partition.

2007-06-06  Vincent Celier  <celier@adacore.com>

	* bindusg.adb: Add line for @<response file>
	Add lines for new switches -R and -Z

	* gnatbind.adb (Gnatbind): Do not include sources from the GNAT
	hierarchy in the list of files of the closure when -R is used
	(Gnatbind): Accept arguments starting with '@' to indicate response
	files and take the arguments from the response files.
	If List_Closure is set, display the referenced files

2007-06-06  Javier Miranda  <miranda@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
	which the address-clause is applied to in-mode actuals (allowed by
	13.1(22)).
	(Apply_Discriminant_Check): Do not generate a check if the type is
	constrained by a current instance.
	(Activate_Division_Check): New procedure
	(Activate_Overflow_Check): New procedure
	(Activate_Range_Check): New procedure
	Call these new Activate procedures instead of setting flags directly
	(Apply_Array_Size_Check): Removed, no longer needed.
	Code clean up: remove obsolete code related to GCC 2.
	(Get_E_Length): Protect against bomb in case scope is standard
	(Selected_Range_Checks): If the node to be checked is a conversion to
	an unconstrained array type, and the expression is a slice, use the
	bounds of the slice to construct the required constraint checks.
	Improve NOT NULL error messages
	(Apply_Constraint_Check): If the context is a null-excluding access
	type, diagnose properly the literal null.

2007-06-06  Pascal Obry  <obry@adacore.com>

	* clean.adb (Clean_Archive): Use untouched casing for the archive name
	and the corresponding .deps file.
	(Clean_Interface_Copy_Directory): Use untouched casing for the library
	src directory. Minor code-clean-up. Use untouched casing for files
	read into the library src dir.
	(Clean_Library_Directory): Idem.
	(Parse_Cmd_Line): Accept new switch -aP

2007-06-06  Javier Miranda  <miranda@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* einfo.ads, einfo.adb (Available_View): New synthesized attribute
	applicable to types that have the With_Type flag set. Returns the
	non-limited view of the type, if available, otherwise the type itself.
	For class-wide types, there is no direct link in the tree, so we have
	to retrieve the class-wide type of the non-limited view of the Etype.
	New attributes Static_Initialization and Static_Elaboration_Desired.
	Remove the pragma Thread_Body, and the associated flag
	Is_Thread_Body in entities, and all related code.
	(Suppress_Value_Tracking_On_Call): New flag
	E_Exception has Esize and Alignment fields
	(Universal_Aliasing): New function.
	(Set_Universal_Aliasing): New procedure.
	(Write_Entity_Flags): Deal with Universal_Aliasing flag.
	(Check_Nested_Access): New procedure.
	(Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
	(Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
	(Related_Interface): New attribute. Present in dispatch table pointer
	components of records. Set to point to the entity of the corresponding
	interface type.
	(Is_By_Reference_Type): Recurse on the full view of an incomplete type.
	(Original_Access_Type): Remove, not needed.
	(Root_Type): Handle properly subtypes of class-wide-types.
	Update comments.

	* sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
	class-wide types visible through limited-with clauses.
	(Try_Primitive_Operation): When examining all primitive operations of a
	tagged type, do not consider subprograms labeled as hidden unless they
	belong to a private generic type with a tagged parent.
	(Try_Object_Operation): Extensive rewriting, to handle properly various
	overloading cases, when several ancestors may have class-wide operations
	that are possible candidates, and when the overloaded functions return
	array types and have defaulted parameters so that the call may be
	interpreted as an indexing.
	(Analyze_Allocator): Remove Mark_Allocator and its invocation.
	(Process_Function_Call): use Next, rather than Next_Actual, to analyze
	successive actuals before analyzing the call itself.
	(Try_Primitive_Operation): A primitive operation is compatible with the
	prefix if the prefix has a synchronized type and the type of the formal
	is its corresponding record, as can be the case when the primitive
	operation is declared outside of the body of the type.
	(Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
	perform homonym traversal, looking for class-wide operation matches
	(formerly done in statements of Try_Class_Wide_Operation). Matches on
	access parameters are now restricted to anonymous access types.
	(Mark_Allocator): An allocator with a discriminant association parent is
	a coextension.
	(Try_One_Prefix_Interpretation): If the type of the object is
	incomplete, as can be happen when it is a limited view obtained through
	a limited_with_clause, the selected component is not part of a prefixed
	call.
	(Complete_Object_Operation): Diagnose properly an object that is not
	aliased when the corresponding controlling formal is an access
	parameter.
	(Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
	ambiguous calls in prefixed notation, where two primitives differ only
	in that the controlling argument of one is an access parameter.

	* sem_ch6.adb (Has_Single_Return): Add guard in code that determines
	whether a function that returns an unconstrained type can be inlined.
	(Process_Formals): Diagnose properly the illegal use of an incomplete
	type in the profile of an access_to_subprogram declaration.
	(Check_Synchronized_Overriding): Nothing check for concurrent types, the
	operations are attached to the corresponding record.
	(Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
	When processing a primitive of a concurrent type which implements an
	interface change the type of all controlling formals to that of the
	corresponding record type.
	(Check_Synchronized_Overriding): Relax the conditional logic when trying
	to determine the tagged type to which a primitive belongs.
	(Check_Conventions): Capture condition to ignore a primitive operation
	(which is shared between the loop in Check_Conventions and the one in
	Check_Convention) in a new local function Skip_Check.
	(Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
	confusion with Check_Conventions' own Prim_Op local variable.
	(Create_Extra_Formals): Test for a tagged result type rather than a
	controlling result when determining whether to add a BIP_Alloc_Form
	formal and a BIP_Final_List formal to the function.
	(Check_Conformance); For parameters that are anonymous access types,
	subtype conformance requires that the not null and the constant
	indicators must match
	(Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
	to retrieve the appropriate type when processing a concurrent type
	declared within a generic. Minor comment reformatting. Change invocation
	of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
	mitive.
	(Analyze_Subprogram_Body): If the return type of a function is an
	anonymous access to the limited view of a class-wide type, and the
	non-limited view of the type is available, update the type of the
	function so that code can be generated.
	(Process_Formals): In case of access-subtype itype whose designated
	type is also an itype (situation that happens now with access to
	subprograms) we mark the access-type itype with the Has_Delayed_Freeze
	attribute to avoid backend problems.
	(Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
	init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
	anonymous types' designated types are same before testing
	Subtypes_Statically_Match.
	(Create_Extra_Formals): Test for a named access parameter that is a
	controlling formal as an additional condition for adding an
	accessibility level formal. This can occur in the subp type created for
	dispatching calls in Expand_Dispatching_Call, and allows calling
	Create_Extra_Formals from that procedure rather than special-casing the
	extra formals there.
	(Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
	when the function has a controlling result.
	(Check_Returns): Add much more knowledge of the optimization of local
	raise statements to gotos, to retain proper warnings in this case.
	(Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
	nodes when looking for last statement.

	* sem_type.ads, sem_type.adb (Specific_Type): Add support for
	class-wide types visible through limited with clauses.
	(Add_One_Interp): If the operands are anonymous access types, the
	predefined operator on universal_access is immediately visibles
	(Find_Unique_Type): Handle anonymous access to subprogram types just as
	other anonymous access types.
	(Disambiguate): Take into account CIL convention.
	(Interface_Present_In_Ancestor): Add support for class-wide interfaces.

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
	sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
	elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
	Fix lower bound of tables.
	Add rep clauses.

	* nlists.adb: Ditto.
	(Prev_Node, Next_Node): Change index type to Int so that it properly
	covers the range First_Node_Id - 1 up.

2007-06-06  Javier Miranda  <miranda@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Bob Duff  <duff@adacore.com>
	    Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_aggr.ads, exp_aggr.adb:
	(Build_Record_Aggr_Code): Add missing initialization of secondary tags
	in extension aggregates.
	(Flatten): Other conditions being met, an aggregate is static if the
	low bound given by component associations is different from the low
	bound of the base index type.
	(Packed_Array_Aggregate_Handled): If the component type is itself a
	packed array or record, the front-end must expand into assignments.
	(Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
	Init_Pr, instead of Ancestor_Is_Expression.
	(Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
	coextension chain root, either generate a list controller or use the
	already existing one.
	(Static_Array_Aggregate): New procedure to construct a positional
	aggregate that can be handled by the backend, when all bounds and
	components are compile-time known constants.
	(Expand_Record_Aggregate): Force conversion of aggregates of tagged
	types covering interface types into assignments.
	(Replace_Type): move to Build_Record_Aggr_Code.
	(Expand_Record_Aggr_Code): if the target of the aggregate is an
	interface type, convert to the definite type of the aggregate itself,
	so that needed components are visible.
	(Convert_Aggr_In_Object_Decl): If the aggregate has controlled
	components and the context is an extended return statement do not
	create a transient block for it, to prevent premature finalization
	before the return is executed.
	(Gen_Assign): Do not generate a call to deep adjust routine if the
	component type is itself an array of controlled (sub)-components
	initialized with an inner aggregate.
	(Component_Check): New name for Static_Check. This name is now more
	appropriate, and documentation is added which was missing.
	(Component_Check): Add test for bit aligned component value
	(Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
	Tagged_Comps, name is more appropriate given added function below.
	(Component_Not_OK_For_Backend): Check for bit aligned component ref.

2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
	    Javier Miranda  <miranda@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
	Terminated: Add unchecked type conversion from System.Address to
	System.Tasking.Task_Id when calling the predefined primitive
	_disp_get_task_id.
	Disable new Ada 05 accessibility check for JVM.NET targets, which
	cannot be implemented in a practical way.
	(Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
	the sources always references the tag of the actual object. Therefore,
	if 'Tag is applied in the sources to class-wide interface objects we
	generate code that displaces "this" to reference the base of the object.
	(Expand_N_Attribute_Reference, case Size): Return specified size if
	known to front end.
	(Expand_N_Attribute_Reference): The expansion of the 'Address attribute
	has code that displaces the pointer of the object to manage interface
	types. However this code must not be executed when the prefix is a
	subprogram. This bug caused the wrong expansion of the internally
	generated assignment that fills the dispatch table when the primitive
	is a function returning a class-wide interface type.
	(Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
	Set_Attribute_Name for Name_Unaligned_Valid.

2007-06-06  Ed Schonberg  <schonberg@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
	If the initialization is the equivalent aggregate of the initialization
	procedure of the type, do not remove it.
	(Expand_N_Attribute_Definition_Clause): Exclude access variables
	initialized to null from having their expression reset to empty and
	note this exception in the comment.

2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
	Add "with" and "use" clauses for Sem_Attr.
	(Expand_Current_Value): Do not replace occurences of attribute
	references where the prefix must be a simple name.

	* sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
	Namet. Add new arrays Attribute_Name_Modifies_Prefix and
	Attribute_Requires_Simple_Name_Prefix.
	(Name_Modifies_Prefix): Body of new function.
	(Requires_Simple_Name_Prefix): Body of new function.
	(Resolve_Attribute, case Access): Improve error message for case of
	mismatched conventions.
	(Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
	incomplete type.
	(Analyze_Attribute, case 'Access): If the type of the prefix is a
	constrained subtype for a nominal unconstrained type, use its base type
	to check for conformance with the context.
	(Resolve_Attribute): Remove test of the access type being associated
	with a return statement from condition for performing accessibility
	checks on access attributes, since this case is now captured by
	Is_Local_Anonymous_Access.
	(Analyze_Access_Attribute): Set Address_Taken on entity
	(Analyze_Attribute, case Address): Set Address_Taken on entity
	(OK_Self_Reference): Traverse tree to locate enclosing aggregate when
	validating an access attribute whose prefix is a current instance.
	(Resolve_Attribute): In case of attributes 'Code_Address and 'Address
	applied to dispatching operations, if freezing is required then we set
	the attribute Has_Delayed_Freeze in the prefix's entity.
	(Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
	current scope if access of local subprogram taken
	(Analyze_Access_Attribute): Check legality of self-reference even if the
	expression comes from source, as when a single component association in
	an aggregate has a box association.
	(Resolve_Attribute, case 'Access): Do not apply accessibility checks to
	the prefix if it is a protected operation and the attribute is
	Unrestricted_Access.
	(Resolve_Attribute, case 'Access): Set the Etype of the attribute
	reference to the base type of the context, to force a constraint check
	when the context is an access subtype with an explicit constraint.
	(Analyze_Attribute, case 'Class): If the prefix is an interface and the
	node is rewritten as an interface conversion. leave unanalyzed after
	resolution, to ensure that type checking against the context will take
	place.

2007-06-06  Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
	wrapper when the full view of the controlling type of an inherited
	function that dispatches on result implements interfaces.
	(Expand_N_Object_Declaration): In cases where the type of the
	declaration is anonymous access, create finalization list for it.
	(Expand_N_Object_Declaration): Generate a persistent_bss directive only
	if the object has no explicit initialization, to match description of
	functionality of pragam Persistent_BSS.
	(Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
	new function to build static aggregates, to replace initialization call
	when static initialization is desired.
	(Freeze_Type): Generate a list controller for an access type whenever
	its designated type has controlled anonymous access discriminants.
	(Build_Equivalent_Aggregate): New procedure to compute a static
	aggregate to be used as default initialization for composite types,
	instead of a generating a call to the initialization procedure for the
	type.
	(Build_Initialization_Call): When available, replace a call to the
	initialization procedure with a copy of the equivalent static aggregate
	for the type.
	(Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
	declarations for objects of a class-wide interface type, rather than
	just identifiers, to prevent visibility problems.
	(Expand_N_Object_Declaration): When expanding the declaration for an
	object of a class-wide interface type, preserve the homonym chain of
	the original entity before exchanging it with that of the generated
	renaming declaration.
	(Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
	active, because there is no way to handle the exception.
	(Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
	to do a minimum decoration of the Access_Disp_Table list.
	(Expand_Record_Controller): Avoid the addition of the controller between
	the component containing the tag of a secondary dispatch table and its
	adjacent component that stores the offset to the base of the object.
	This latter component is only generated when the parent type has
	discriminants ---documented in Add_Interface_Tag_Components).
	(Apply_Array_Size_Check): Removed, no longer needed.
	(Expand_N_Full_Type_Declaration): If the type has anonymous access
	components, create a Master_Entity for it only if it contains tasks.
	(Build_Init_Procedure): Suppress the tag assignment compiling under
	no run-time mode.
	(Freeze_Record_Type): Remove code associated with creation of dispatch
	table.
	(Init_Secondary_Tags): Update type of actuals when generating calls to
	Ada.Tags.Set_Offset_To_Top
	(Stream_Operation_OK): Disable use of streams compiling under no
	run-time mode
	(Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
	if Has_Init_Expression set.
	(Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
	Register_Primitive, which provides the same functionality.
	(Requires_Init_Proc): Return false in case of interface types.
	(Add_Secondary_Tables): Use the new attribute Related_Interface to
	cleanup the code.
	(Predefined_Primitive_Freeze): Do not assume that an internal entity
	is always associated with a predefined primitive because the internal
	entities associated with interface types are not predefined primitives.
	Therefore, the call to Is_Internal is replaced by a call to the
	function Is_Predefined_Dispatching_Operation.
	(Make_Eq_If): When generating the list of comparisons for the
	components of a given variant, omit the controller component that is
	present if the variant has controlled components.

2007-06-06  Javier Miranda  <miranda@adacore.com>
	    Hristian Kirtchev  <kirtchev@adacore.com>
	    Bob Duff  <duff@adacore.com>

	* exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
	handle the creation of finalization lists and calls for nested
	coextensions when the root of the chains is part of a return statement.
	(Inside_A_Return_Statement): New function inside Complete_Coextension_
	Finalization.
	(Expand_Record_Equality): Skip components that are interface types.
	(Displace_Allocator_Pointer): Add missing support for interface subtypes
	(Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
	with Rewrite_Coextension. Change the condition for detecting coextension
	root nodes.
	(Is_Local_Access_Discriminant): Removed.
	(Rewrite_Coextension): New routine which rewrites a static coextension
	as a temporary and uses its unrestricted access in the construction of
	the outer object.
	(Complete_Coextension_Finalization): New routine. Generate finalization
	attachment calls to all delayed coextensions.
	(Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
	the allocator is not a coextension itself and has delayed coextensions.
	If the current allocator is controlled, but also a coextension, delay
	the generation of the finalization attachment call.
	Rename local variable "Node" to "Nod" in order to avoid confusion with
	"Elists.Node".
	(Expand_Allocator_Expression): Call Adjust for initialized allocators of
	limited types that are not inherently limited. Such an allocator is
	illegal, but is generated by the expander for a return statement, to
	copy the result onto the secondary stack. This is the only case where a
	limited object can be copied. Generate code to displace the pointer
	to the object if the qualified expression is a class-wide interface
	object. Such displacement was missing and hence the copy of the object
	was wrong.
	(Apply_Accessibility_Check): Handle allocated objects initialized in
	place.
	(Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
	and Expand_Allocator_Expression. Allocating class-wide interface objects
	this routine displaces the pointer to the allocated object to reference
	the component referencing the corresponding secondary dispatch table.
	Expand_Allocator_Expression): Add missing support to allocate class-wide
	interface objects initialized with a qualified expression.
	(Get_Allocator_Final_List): Test for an anonymous access type that is a
	function result type, and use the finalization list associated with the
	function scope in that case (such an anonymous type should not be
	treated like an access parameter's type).

2007-06-06  Ed Schonberg  <schonberg@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
	controlled type, use Make_Handler_For_Ctrl_Operation to construct the
	required exception handler.
	(Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
	properly the case of a function whose return type is a limited
	class-wide interface type. Modify the code of the accessibility
	check to handle class-wide interface objects. In this case we need to
	displace "this" to reference the primary dispatch table to get access
	to the TSD of the object (to evaluate its accessibility level).
	(Expand_N_Extended_Return_Statement): Test for a tagged result type
	rather than a controlling result as one of the conditions for
	generating tests of the implicit BIP_Alloc_Form formal. The
	initialization assignment is also handled according to whether the
	result is tagged instead of controlling.
	In the case where the init assignment is inserted in the "then" part of
	the allocation conditional, rewrite the target to be a dereference of
	the implicit BIP_Object_Access formal.
	If the returned value is unconstrained and created on the secondary
	stack, mark the enclosing block and function so that the secondary
	stack is not reclaimed on return.
	Treat returns from functions with controlling results similarly to
	returns from functions with unconstrained result subtypes.
	If the object returned is unconstrained, and an allocator must be
	created for it, analyze the allocator once the block for the extended
	return is installed, to ensure that finalizable components
	of the expression use the proper finalization list. Guard the call to
	Move_Final_List with a check that there is something to finalize.
	(Make_Tag_Ctrl_Assignment): Use "old" handling
	of controlled type assignment for virtual machines, since new code uses
	unsupported features (such as direct access to bytes in memory).

2007-06-06  Gary Dismukes  <dismukes@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
	accessibility actual, check for the case of an aliased object that has
	been rewritten as an Access attribute, and assign Prev to Prev_Orig so
	we fall into processing for the attribute rather than the name of the
	object.
	(Expand_Inline_Call): If an actual is a literal, and the corresponding
	formal has its address taken in the body, create a temporary to capture
	value.  If the return type is a limited interface, do not treat the
	return value as Controlled.
	(Is_In_Place_Function):  If the return type is a limited interface,
	treat as returning in place. The actual returned object may not always
	be limited, but the caller has to assume that it is returned in place.
	(Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
	context of an allocator, use the correct finalization chain (that is,
	the chain belonging to the access type, rather than the chain belonging
	to the current scope).
	(Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
	result type rather than a controlling result as a precondition for
	adding an allocation form actual to a build-in-place call.
	(Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
	(Freeze_Subprogram): Code cleanup. Remove all the code that register the
	primitive in the dispatch tables. This work is now done by Make_DT when
	the type is frozen.
	(Register_Predefined_DT_Entry): Removed.
	(Add_Return): If end label is not present, use sloc of last statement
	for generated return statement in procedure, for better gdb behavior
	on expanded code.
	(Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
	object address nodes to ensure proper processing by routines like
	Insert_After*.
	(Expand_Call): Fix generation of validity check for parameter
	(Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
	the allocation form parameter if the result subtype is constrained,
	except when the function has a controlling result.
	(Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
	rather than Is_Controlled and Has_Controlled_Component, since we want to
	include class-wide result types in this treatment. Also test for a
	controlling result, since that also requires passing a finalization
	list.
	(Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
	even when the result subtype is constrained, to handle calls involving
	controlling results.
	(Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
	is now called even when the result subtype is constrained, to handle
	calls involving controlling results.
	(Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
	on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
	now performs the test).
	(Make_Build_In_Place_Call_In_Object_Declaration):
	Add_Alloc_Form_Actual_* is now called even when the result subtype is
	constrained, to handle calls involving controlling results.
	(Add_Return): Accomodate rewritten pattern from local raise to goto
	transformation, so that we still recognize an transfer statement
	and do the right thing here in that case.
	(Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
	and end of subprogram code.
	(Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
	support for primitives that are functions (without formals) with a
	controlling result.
	(Inherited_From_Formal): If the actual subtype has not generic parent
	type, it is not an actual for a formal derived type, and there is no
	operation to inherit from the formal.

2007-06-06  Ed Schonberg  <schonberg@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

	* exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
	inserted cleanup code appropriately for GDB use.
	(Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
	exception handler for Deep_Adjust or Deep_Finalize.
	(Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
	Raise_From_Controlled_Operation is available, use a call to that
	subprogram instead of a plain "raise Program_Error" node to raise
	Program_Error if an exception is propagated from an Adjust or Finalize
	operation.
	(Insert_Actions_In_Scope_Around): If the statement to be wrapped
	appears in the optional statement list of a triggering alternative, the
	scope actions can be inserted directly there, and not in the list that
	includes the asynchronous select itself.

2007-06-06  Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
	generated exception handler appropriately when debugging generated code.
	Deal properly with No_Exception_Propagation restriction mode.
	(Expand_N_Abort_Statement): Add an unchecked type conversion from
	System.Address to System.Tasking.Task_Id when processing the result of
	the predefined primitive _disp_get_task_id.
	(Expand_N_Asynchronous_Select): Clarify comment.
	(Expand_N_Protected_Type_Declaration): Minor code cleanup.
	(Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
	(Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
	(Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
	privals and for generated call to Complete_Entry_Body, for better gdb
	behavior.
	(Copy_Result_Type): Utility to construct a parameter and result profile
	for protected functions whose return type is an anonymous access to
	subprogram.
	(Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
	call the above.
	(Build_Task_Activation_Call): Insert Activate_Tasks call at proper
	point when the local-raise-to-goto transformation has taken place.

2007-06-06  Javier Miranda  <miranda@adacore.com>
	    Nicolas Setton  <setton@adacore.com>

	* exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
	functionality when the backend is generating code.
	Otherwise any serious error
	reported by the backend calling the frontend routine Error_Msg
	changes the Compilation_Mode to Check_Semantics, disables the
	functionality of this routine and causes the generation of
	spureous additional errors.

	* exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
	debugging information now generated by the compiler for fat-pointer
	types.
	Document the contents of DW_AT_producer in the GNAT Vendor extensions to
	DWARF2/3.
	Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.

2007-06-06  Thomas Quinot  <quinot@adacore.com>

	* exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
	(GARLIC_Support.Build_Subprogram_Receiving_Stubs,
	PolyORB_Support.Build_Subprogram_Receiving_Stubs):
	For a remote call to a function with a classwide return type, apply an
	E.4(18) check to the returned value.
	(Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
	stream attributes of the designated type of an RACW, as they are not
	dispatching primitive operations.

2007-06-06  Geert Bosch  <bosch@adacore.com>

	* exp_fixd.adb (Integer_Literal): Add optional argument to construct a
	negative literal
	(Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
	positive
	(Do_Divide_Fixed_Universal): Handle case of negative Frac.
	(Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
	positive
	(Do_Multiply_Fixed_Universal): Handle case of negative Frac.

2007-06-06  Javier Miranda  <miranda@adacore.com>

	* exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
	attribute compiling package Ada.Tags under No_Run_Time_Mode.

2007-06-06  Javier Miranda  <miranda@adacore.com>

	* exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
	deallocation of class-wide interface objects.
	(Expand_Dispatching_Constructor_Call): Take into account that if the
	result of the dispatching constructor is an interface type, the
	function returns a class-wide interface type; otherwise the returned
	object would be actual. The frontend previously accepted returning
	interface types because Expand_Interface_Actuals silently performed
	the management of the returned type "as if" it were a class-wide
	interface type.
	(Expand_Dispatching_Constructor_Call): Replace call to
	Make_DT_Access_Action by direct call to Make_Function_Call.

2007-06-06  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
	compute masking constant, since we now set Esize properly to the
	underlying size.
	(Create_Packed_Array_Type): Set proper Esize value adjusted as required
	to match the alignment.
	(Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
	packed arrays of 8 bits or less.

	* freeze.adb (Freeze_Entity): When freezing the formals of a
	subprogram, freeze the designated type of a parameter of an access type
	only if it is an access parameter.
	Increase size of C convention enumeration object
	(Freeze_Entity, array type case): Make sure Esize value is properly
	adjusted for the alignment if it is known.
	(Freeze_Entity, array type case): When checking bit packed arrays for
	the size being incorrect, check RM_Size, not Esize.
	(Freeze_Record_Type): Check for bad discriminated record convention
	(In_Exp_Body): Return true if the body is generated for a subprogram
	renaming, either an attribute renaming or a renaming as body.
	(Check_Itype): If the designated type of an anonymous access component
	is a non-protected subprogram type, indicate that it is frozen, to
	prevent out-of-scope freeze node at some subsequent call.
	(Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
	only if the subprogram is neither imported nor exported, as well as the
	NCA descriptor class if the subprogram is exported.

2007-06-06  Ed Schonberg  <schonberg@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
	default initialization on an imported object, when there is no
	initialization call generated for it.
	(Expand_Pragma_Assert): Add handling of No_Exception_Propagation
	restriction

	* snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
	Static_Elaboration_Desired.
	Remove pragma Thread_Body.
	Implement a new pragma No_Body
	Removes the Explicit_Overriding pragma
	Remove Optional_Overriding pragma
	(Prag): Deal with Universal_Aliasing.
	(Name_CIL, Name_CIL_Constructor, Convention_CIL,
	Pragma_CIL_Constructor): New names.

	* sem_cat.adb (Validate_Object_Declaration): An initialization that
	uses the equivalent aggregate of a type must be treated as an implicit
	initialization.
	(Get_Categorization): Check a unit for pragma Preelaborate only if it
	has none of the other categories.
	(Process_Import_Or_Interface_Pragma): Report an error for an attempt
	to apply Import to an object renaming declaration.

	* sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
	from a C++ class should be declared as limited and that it will be
	considererd limited.
	(Analyze_Pragma): Warn that a type specified with pragma CPP_Class
	should be declared as limited and that it will be considererd limited.
	(Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
	(Analyze_Pragma, case Export): Diagnose export of enumeration literal
	(Analyze_Pragma): Deal with Universal_Aliasing.
	(Sig_Flags): Likewise.
	(Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
	(Overflow_Checks_Unsuppressed): New flag.
	(Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
	(Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
	case of JVM or .NET targets, and compiling user code.
	Add debugging convenience routine rv

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
	are interface type.
	(Build_Elementary_Input_Call): For floating-point use right type in the
	absence of strange size or stream size clauses.
	(Build_Elementary_Write_Call): Same fix
	(Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
	set to value that does not match base type size.

2007-06-06  Ed Schonberg  <schonberg@adacore.com>

	* exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
	object of a limited type can be initialized with a call to a function
	that returns in place. If the limited type has unknown discriminants,
	and the underlying type is a constrained composite type, build an actual
	subtype from the function call, as is done for private types.
	(Side_Effect_Free): An expression that is the renaming of an object or
	whose prefix is the renaming of a object, is not side-effect free
	because it may be assigned through the renaming and its value must be
	captured in a temporary.
	(Has_Controlled_Coextensions): New routine.
	(Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
	as is done for other limited types.
	(Non_Limited_Designated_Type): new predicate.
	(Make_CW_Equivalent_Type): Modified to handle class-wide interface
	objects.
	Remove all handling of with_type clauses.

	* par-ch10.adb: Remove all handling of with_type clauses.

	* lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
	checksum if the main source could not be parsed.
	(Loat_Unit): When processing a child unit, determine properly whether
	the parent unit is a renaming when the parent is itself a child unit.
	Remove handling of with_type clauses.

	* sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
	(Set_Is_Static_Coextension): New procedure.
	(Has_Local_Raise): New function
	(Set_Has_Local_Raise): New procedure
	(Renaming_Exception): New field
	(Has_Init_Expression): New flag
	(Delay_Finalize_Attach): Remove because flag is obsolete.
	(Set_Delay_Finalize_Attach): Remove because flag is obsolete.
	Remove all handling of with_type clauses.
	(Exception_Junk): Can now be set in N_Block_Statement

2007-06-06  Vincent Celier  <celier@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* frontend.adb (Frontend): Return immediately if the main source could
	not be parsed, because of preprocessing errors.

	* gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
	(Gnat1drv): Exit with errors if the main source could not be parsed,
	because of preprocessing errors.
	(Check_Rep_Info): New procedure

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* g-hesorg.ads, g-heasor.ads,
	g-busorg.ads, g-bubsor.ads: Update documentation
	GNAT.Heap/Bubble_Sort_G is now pure

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* g-catiio.ads, g-catiio.adb (Image): Check for null picture string

2007-06-06  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* g-comlin.ads, g-comlin.adb:
	Add new warning for renaming of function return objects

	* opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
	(Tree_Read): Use size of object instead of type'object_size, since the
	latter is incorrect for packed array types.
	(Tree_Write): Same fix

	* opt.ads: Add new warning for renaming of function return objects
	(Generating_Code): New boolean variable used to indicate that the
	frontend as finished its work and has called the backend to process
	the tree and generate the object file.
	(GCC_Version): Is now private
	(Static_Dispatch_Tables): New constant declaration.
	(Overflow_Checks_Unsuppressed): New flag.
	(Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
	(List_Closure): New flag for gnatbind (-R)
	Zero_Formatting: New flag for gnatbind (-Z)
	(Special_Exception_Package_Used): New flag.
	(Warn_On_Unrepped_Components): New flag.

	* sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
	unit is a compilation unit, rather than relying on its scope, so that
	Standard can be renamed.
	(Analyze_Object_Renaming): Add new warning for renaming of function
	return objects.
	Also reject attempt to rename function return object in Ada 83 mode.
	(Attribute_Renaming): In case of tagged types, add the body of the
	generated function to the freezing actions of the type.
	(Find_Type): A protected type is visible right after the reserved word
	"is" is encountered in its type declaration. Set the entity and type
	rather than emitting an error message.
	(New_Scope): Properly propagate Discard_Names to inner scopes
	(Check_Nested_Access): New procedure.
	(Has_Nested_Access, Set_Has_Nested_Access): New procedures.
	(Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.

	* sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
	Add new warning for renaming of function return objects
	(Check_References): Suppress warnings for objects whose type or
	base type has Warnings suppressed.
	(Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
	(Set_Warning_Switch): Include new -gnatwc in -gnatwa

2007-06-06  Vincent Celier  <celier@adacore.com>
	    Emmanuel Briot  <briot@adacore.com>
	    Olivier Hainque  <hainque@adacore.com>

	* g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
	absolute value of Header.Block_Size when displaying the freed physical
	memory in traces.
	(Allocate): Compute Storage_Address using Integer_Address, not
	Storage_Offset, because the range of Storage_Offset may not be large
	enough.
	(Configure): New parameter Low_Level_Traces
	(Allocate, Deallocation, Free_Physically): Added low-level traces
	(Configure): new parameter Errors_To_Stdout.
	(Output_File): new subprogram
	(Deallocate, Dereference): Send error messages to the proper stream
	(Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
	documented. Previous code would send it to the current output file
	defined in GNAT.IO, which might not be stdout
	(Is_Valid): Adjust comment to mention that a positive reply means that
	Header_Of may be used to retrieve the allocation header associated with
	the subprogram Storage address argument. Return False early if this
	address argument is misaligned.

2007-06-06  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
	switch -P
	(ASIS_Main): New global variable
	(Get_Closure): New procedure
	(GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
	check, metric or pretty. Call Get_Closure in this case.
	(Check_Files): For GNAT LIST, check all sources of all projects when
	All_Projects is True.
	(GNATCmd): Accept -U for GNAT LIST

2007-06-06  Vincent Celier  <celier@adacore.com>

	* gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
	has been specified
	Correct error message when invocation of the linker fails
	Add explicit size clause for the C imported variables
	Object_List_File_Supported and Using_GNU_Linker to emphasize that
	we expect char size.
	Read target parameters earlier, since this is needed to set
	Target_VM properly. Also do not use -static/shared-libgcc for non GCC
	targets.

2007-06-06  Vincent Celier  <celier@adacore.com>

	* gnatls.adb:
	Add 3 spaces before the default project directory when displaying
	the project search path.
	Add new command line switch '-l' to display license information.

2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>

	* gmem.c: Add support for timestamps on memory operations.

	* memtrack.adb, gnatmem.adb: Add support for timestamps on memory
	operations (not used currently, just foundation for future
	enhancements). Add possibility to perform full dump of gmem.out file.
	(Print_Back_Traces): Declare accesses to root arrays constants since
	they aren't modified.
	(Print_Back_Traces): allocate root arrays on the heap rather than stack.

2007-06-06  Vincent Celier  <celier@adacore.com>

	* gnatsym.adb: Update Copyright notice
	(Parse_Cmd_Line): Accept new switch -D
	(Gnatsym): In Direct policy (switch -D) copy reference file to symbol
	 file.

	* prj.ads (Policy): New policy Direct
	(Yes_No_Unknown): New enumeration type
	(Project_Data): New component Libgnarl_Needed

	* prj-nmsc.adb (Check_For_Source): When recording a source file make
	use the untouched pathname casing.
	(Get_Directories): Ensure that the Display_Exec_Directory is using the
	proper casing on non case-sensitive platforms like Windows.
	(Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
	on all platforms, as it is not possible to know which one is allowed
	before processing the project files.
	(Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
	specified when symbol policy is Direct. Check that when there is a
	symbol file defined (either by default or with attribute
	Library_Symbol_File) it is not the same as the reference symbol file.
	(Check_Stand_Alone_Library): Recognize new symbol policy Direct.
	(Look_For_Sources): Allow Locally_Removed_Files to be declare in non
	extending projects.
	(Record_Ada_Source): Record a source that has been locally removed in an
	imported project.

	* symbols.ads (Policy): New policy Direct

	* symbols-vms.adb (Initialize): Take new policy Direct in case
	statement

2007-06-06  Vincent Celier  <celier@adacore.com>

	* g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
	Correct obvious bug (return Dir; instead of return Directory;).
	(Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last

2007-06-06  Thomas Quinot  <quinot@adacore.com>

	* g-pehage.adb (Produce): Open output files in Binary mode, so that
	they have UNIX line endings (LF only) even on Windows, and thus pass
	all GNAT style checks.

2007-06-06  Emmanuel Briot  <briot@adacore.com>

	* g-regpat.adb (Quote): Fix improper quoting of '.'

2007-06-06  Thomas Quinot  <quinot@adacore.com>

	* g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
	default, set False on a per-runtime basis.
	(Need_Netdb_Buffer): New constant.

	* g-socket.ads, g-socket.adb: Import new package
	GNAT.Sockets.Thin.Task_Safe_NetDB.
	(Raise_Host_Error): Use Host_Error_Message from platform-specific thin
	binding to obtain proper message.
	(Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
	Replace various occurrences of Arry (Arry'First)'Address with the
	equivalent Arry'Address (GNAT always follows implementation advice from
	13.3(14)).
	(Get_Host_By_Address, Get_Host_By_Name,
	Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
	instead, rely on platform-specific task safe netdb operations provided
	by g-socthi.

	* g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
	parameter Process_Blocking_IO.
	(Host_Error_Messages): Add stub body.
	(GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
	(Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
	Safe_Getservbyport): Move functions into new child package
	Task_Safe_NetDB.
	(Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
	Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
	(In_Addr): Add alignment clause.

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* g-trasym.ads, g-traceb.ads: Update list of supported targets
	Add note about symbolic traceback

2007-06-06  Pascal Obry  <obry@adacore.com>

	* hostparm.ads (Normalized_CWD): Use the host directory separator
	instead of the hardcoded forward slash which is not the proper
	character on Windows for example.
	(Java_VM): Removed.

2007-06-06  Vincent Celier  <celier@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* a-clrefi.adb, a-clrefi.ads: New files

	* impunit.adb: Add s-os_lib in the list of user visible units.
	(Non_Imp_File_Names_95): Add a-clrefi to this list
	Remove obsolete run-time entries.
	(Non_Imp_File_Names_05): Add Ada 2005 entries for:
	 "a-exetim" -- Ada.Execution_Time
	 "a-extiti" -- Ada.Execution_Time.Timers

	* mlib-prj.ads, mlib-prj.adb
	(Build_Library): Use untouched object dir and library dir. At the
	same time makes sure that the checks are done using the canonical
	form. Removes hard-coded directory separator and use the proper host
	one instead.
	(Process_Project): Do not look in object directory to check if libgnarl
	is needed for a library, if there is no object directory.
	(Build_Library): Scan the ALI files to decide if libgnarl is needed for
	linking.
	(Build_Library): When invoking gnatbind, use a response file if the
	total size of the arguments is too large.

	* Makefile.rtl: (g-sttsne): New object file.
	Add entry for a-clrefi, s-utf_32, System.Exceptions

	* Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
	(GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
	(GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
	Change g-string to s-string, g-os_lib to s-os_lib
	Change all g-utf_32 references to s-utf_32

2007-06-06  Tristan Gingold  <gingold@adacore.com>
	    Olivier Hainque  <hainque@adacore.com>

	* init.c: Do not adjust IP of an imported VMS exception of ia64.
	LIB$STOP is called to raise an exception and the IP of the exception
	is the instruction right after the call.
	(__gnat_adjust_context_for_raise, AIX): Implement.
	(__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
	 adjust_context_for_raise before Raise_From_Signal_Hanler.
	(__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
	siginfo is passed to the handler, necessary to let the zcx propagation
	engine unwind past it.

2007-06-06  Olivier Hainque  <hainque@adacore.com>

	* initialize.c (__gnat_initialize for vxworks):  Update documentation
	on the ZCX support, using different sets of crtstuff objects than with
	GCC 3.4.

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
	spec from body
	(Layout_Type): Fix recomputation of size from alignment.

2007-06-06  Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* sem_ch12.adb (Analyze_Associations): Diagnose use of an others
	association in an instance.
	(Copy_Generic_Node): If the node is a string literal, no need to copy
	its descendants.
	(Is_Generic_Formal): For a formal subprogram, the declaration is the
	grandparent of the entity.
	(Analyze_Formal_Interface_Type): Transform into a full type declaration,
	to simplify handling of formal interfaces that derive from other formal
	interfaces.
	(Instantiate_Subprogram_Body): The defining unit name of the body of
	the instance should be a defining identifier.
	(Install_Formal_Packages): make global to the package, for use in
	instantiations of child units.
	(Analyze_Package_Instantiation): Do not attempt to set information on an
	enclosing master of an entry when expansion is disabled.
	(Instantiate_Type): If the actual is a tagged synchronized type and the
	generic ancestor is an interface, create a generic actual for the
	corresponding record.
	(Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
	declaration, to ensure that the interface list is processed correctly.
	(Inline_Instance_Body): If enclosing scope is an instance body, remove
	its entities from visibiility as well.
	(Pre_Analyze_Actuals): if the actual is an allocator with  constraints
	given with a named association, analyze the expression only, not the
	discriminant association itself.
	(Reset_Entity): If the analysis of a selected component is transformed
	into an expanded name in the prefix of a call with parameters, do not
	transform the original node into an expanded name, to prevent visibility
	errors in the case of nested generics.
	(Check_Private_View): For an array type, check whether the index types
	may need exchanging.

2007-06-06  Arnaud Charlet  <charlet@adacore.com>
	    Vincent Celier  <celier@adacore.com>

	* lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
	since both are separated.
	Add support for imported CIL packages.
	Add further special handling of "value_type" for CIL.
	Add special handling of pragma Import for CIL.

	* make.ads, make.adb: When switch -eS is used, direct all outputs to
	standard output instead of standard error, except errors.
	(Absolute_Path): Use untouched casing for the parent directory.
	(Add_Library_Search_Dir): Use the untouched directory name.
	(Add_Source_Search_Dir): Idem.
	(Change_To_Object_Directory): Update output to use proper casing.
	(Create_Binder_Mapping_File): Use the untouched filename to set
	ALI_Name.
	(Gnatmake): Use untouched library and executable directory names.
	(Insert_Project_Sources): Use untouched filename for spec and body.
	(Is_In_Object_Directory): Use untouched object directory.
	(Mark_Directory): Idem.
	(Collect_Arguments_And_Compile): Ensure that Full_Source_File always
	contains the non-canonical filename in all cases.
	(Change_To_Object_Directory): In verbose mode, display the name of the
	object directory we're changing to.
	(Compile_Sources): Make sure, when a project file is used, to compile
	the body of the unit, when there is one, even when only the spec is
	recorded in an ALI file.
	(Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
	spec to the body.
	(Report_Compilation_Failed): New procedure
	(Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
	procedures moved from the spec to the body.
	(Extract_Failure): Removed, not used
	Replace explicit raises of exception Bind_Failed and Link_Failed with
	calls to Make_Failed with the proper message.
	Replace explicit raises of exception Compilation_Failed with calls to
	procedure Report_Compilation_Failed.
	(Initialize): Create mapping files unconditionally when using project
	files.

	* sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
	Pragma_CIL_Constructor): New names.

	* targparm.ads, targparm.adb
	(Compiler_System_Version): Removed, no longer used.
	(Get_Target_Parameters): Relax checks on system.ads validity. Add
	handling of two new system flags: JVM and CLI.

2007-06-06  Jose Ruiz  <ruiz@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
	time, use the default s-interr body that provides interrupt support
	based on signals.
	(LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
	a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
	g-soccon.ads, and s-taprop.adb for the marte run time.
	(EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
	timers are supported on marte.
	(EH_MECHANISM for marte): Do not use ZCX.
	(THREADSLIB for marte): Use -lmarte.
	Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
	Add mlib-tgt-specific.o to gnatmake objects
	mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
	longer of MLib.Tgt.
	(LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
	6, either kernel or rtp, use a specialized version of s-osinte.ads.

2007-06-06  Pascal Obry  <obry@adacore.com>

	* mkdir.c (__gnat_mkdir): Add support for UTF-8.

2007-06-06  Vincent Celier  <celier@adacore.com>

	* mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
	separator, use instead the proper host directory separator.
	(Copy_ALI_Files): Make sure that an already existing ALI file in the
	ALI copy dir is writable, before doing the copy.

	* mlib-utl.ads, mlib-utl.adb:
	(Gcc): If length of command line is too long, put the list of object
	files in a response file, if this is supported by the platform.
	(Ar): If invocation of the archive builder is allowed to be done in
	chunks and building it in one shot would go above an OS dependent
	limit on the number of characters on the command line, build the archive
	in chunks.

2007-06-06  Vincent Celier  <celier@adacore.com>

	* osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
	of specified object file is not equal to base name of source.

2007-06-06  Javier Miranda  <miranda@adacore.com>
	    Hristian Kirtchev  <kirtchev@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
	the full type declaration.
	(Analyze_Component_Declaration): Add local variable E to capture the
	initialization expression of the declaration. Replace the occurences of
	Expression (N) with E.
	(OK_For_Limited_Init_In_05): Allow initialization of class-wide
	limited interface object with a function call.
	(Array_Type_Declaration): If the declaration lacks subtype marks for
	indices, create a simple index list to prevent cascaded errors.
	(Is_Null_Extension): Ignore internal components created for secondary
	tags when checking whether a record extension is a null extension.
	(Check_Abstract_Interfaces): Add missing support for interface subtypes
	and generic formals.
	(Derived_Type_Declaration): Add missing support for interface subtypes
	and generic formals.
	(Analyze_Object_Declaration): If an initialization expression is
	present, traverse its subtree and mark all allocators as static
	coextensions.
	(Add_Interface_Tag_Component): When looking for components that may be
	secondary tags, ignore pragmas that can appear within a record
	declaration.
	(Check_Abstract_Overriding): an inherited function that dispatches on
	result does not need to be overriden if the controlling type is a null
	extension.
	(Mentions_T): Handle properly a 'class attribute in an anonymous access
	component declaration, when the prefix is an expanded name.
	(Inherit_Component): If the derivation is for a private extension,
	inherited components remain visible and their ekind should not be set
	to Void.
	(Find_Type_Of_Object): In the case of an access definition, always set
	Is_Local_Anonymous_Access. We were previously not marking the anonymous
	access type of a return object as a local anonymous type.
	(Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
	range with character literal bounds.
	(Constrain_Array): Initialize the Packed_Array_Type field to Empty.
	(Access_Subprogram_Declaration): Indicate that the type declaration
	depends on an incomplete type only if the incomplete type is declared
	in an open scope.
	(Analyze_Subtype_Declaration): Handle properly subtypes of
	synchronized types that are tagged, and that may appear as generic
	actuals.
	(Access_Subprogram_Declaration): An anonymous access to subprogram can
	appear as an access discriminant in a private type declaration.
	(Add_Interface_Tag_Components): Complete decoration of the component
	containing the tag of a secondary dispatch table and the component
	containing the offset to the base of the object (this latter component
	is only generated when the parent type has discriminants --as documented
	in this routine).
	(Inherit_Components): Use the new decoration of the tag components to
	improve the condition that avoids inheriting the components associated
	with secondary tags of the parent.
	(Build_Discriminanted_Subtype): Indicate to the backend that the
	size of record types associated with dispatch tables is known at
	compile time.
	(Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
	(Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
	to include task, protected, and synchronized interfaces as limited
	interfaces.
	(Process_Discriminants): Remove the setting of
	Is_Local_Anonymous_Access on the type of (anonymous) access
	discriminants of nonlimited types.
	(Analyze_Interface_Type_Declaration): Complete the decoration of the
	class-wide entity it is is already present. This situation occurs if
	the limited-view has been previously built.
	(Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
	field.
	(Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
	Related_Interface.

2007-06-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
	of the type that specify the position of interface tags when the type
	inherits discriminated array components from the parent type.
	If a component is initialized with a box, check for the presence of a
	default expression in its declaration before using its default
	initialization procedure.
	(Resolve_Record_Aggregate): If a component is box-initialized, and the
	component type has a discriminants, create a partial aggregate for it
	by copying the discriminants of the component subtype.
	Reject attempt to initialize a discriminant with a box.
	(Array_Aggr_Subtype): Indicate to the backend that the size of arrays
	associated with dispatch tables is known at compile time.
	(Get_Value): If an association in a record aggregate has a box
	association, and the corresponding record component has a default
	expression, always copy the default expression, even when the
	association has a single choice, in order to create a proper
	association for the expanded aggregate.

2007-06-06  Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* par-ch12.adb (P_Generic_Associations): The source position of an
	Others association is that of the others keyword, not that of the token
	that follows the box.
	(P_Formal_Type_Definition): Handle formal access types that carry a
	not null indicator.

	* par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
	multiple identifier are present, save Scan_State before scanning the
	colon, to ensure that separate trees are constructed for each
	declaration.
	(P_Identifier_Declarations): For object declaration, set new flag
	Has_Init_Expression if initialization expression present.
	(P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
	Improve NOT NULL error messages

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* par-ch4.adb: (P_Name): Recover from literal used as name

2007-06-06  Vincent Celier  <celier@adacore.com>

	* prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
	defaulted to False.
	In the "not" case, recursive call with Complemented set to True.
	Do not allow "or" or "and" operators when Complemented is True.

2007-06-06  Vincent Celier  <celier@adacore.com>

	* prj.adb (Project_Empty): Gives default value for new component
	Libgnarl_Needed

	* prj-attr.ads: Minor reformatting

	* prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
	directory using the untouched casing.
	(For_All_Source_Dirs): Idem.

	* prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
	directories specified with switches -aP.
	(Add_Search_Project_Directory): New procedure
	(Initialize_Project_Path): Put the directories in table
	Search_Directories in the project search path.
	(Initialize_Project_Path): For VMS, transform into canonical form the
	project path.

2007-06-06  Arnaud Charlet  <charlet@adacore.com>

	* restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
	true if configurable run-time or No_Run_Time is set.
	(Set_Restriction): Avoid setting restriction No_Elaboration_Code when
	processing an unit which is not the one being compiled.

2007-06-06  Arnaud Charlet  <charlet@adacore.com>

	* s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
	Replace UC by Ada.UC

	* s-bitops.adb: Get rid of System.Pure_Exceptions.
	Replace UC by Ada.UC

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* scng.adb: (Check_End_Of_Line): Deal with very long lines

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
	Remove no longer used nodes.

2007-06-06  Javier Miranda  <miranda@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
	on obsolescent withed unit in case of limited-withed units.
	(Analyze_Compilation_Unit): Add guard to code that removed an
	instantiation from visibility, to prevent compiler aborts when
	instantiation is abandoned early on.
	(Install_Limited_Withed_Unit): Recognize a limited-with clause on the
	current unit being analyzed, and Distinguish local incomplete types
	from limited views of types declared elsewhere.
	(Build_Limited_Views.Decorate_Tagged_Type): Add documentation
	to state that the class-wide entity is shared by the limited-view
	and the full-view.
	(Analyze_With_Clause): Improve placement of flag for case of
	unimplemented unit.
	(Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
	manner similar to GNAT.Current_Exception. This is a violation of
	restriction (No_Exception_Propagation), and also inhibits the
	optimization of local raise to goto.
	(Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
	and if so set Most_Recent_Exception_Used flag in Opt, and also check
	for violation of restriction No_Exception_Propagation.

2007-06-06  Javier Miranda  <miranda@adacore.com>
	    Hristian Kirtchev  <kirtchev@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
	use of entity Exception_Occurrence if it is not available in the
	target run-time.

	* sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
	concurrent types are declared within an Ada 2005 generic, build their
	corresponding record types since they are needed for overriding-related
	semantic checks.
	(Analyze_Protected_Type): Rearrange and simplify code for testing that a
	protected type does not implement a task interface or a nonlimited
	interface.
	(Analyze_Task_Type): Rearrange and simplify code for testing that a task
	type does not implement a protected interface or a nonlimited interface.
	(Single_Task_Declaration, Single_Protected_Declaration): use original
	entity for variable declaration, to ensure that debugging information
	is correcty generated.
	(Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
	routines if the expander is not active.
	(Analyze_Task_Body): Mark all handlers to stop optimization of local
	raise, since special things happen for task exception handlers.

	* sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
	concurrent types declared within a generic.
	(Check_Dispatching_Operation): Do not emit warning about late interface
	operations in the context of an instance.
	(Check_Dispatching_Call): Remove restriction against calling a
	dispatching operation with a limited controlling result.
	(Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
	Register_Interface_DT_Entry by calls to Register_Primitive.
	(Check_Dispatching_Formals): Handle properly a function with a
	controlling access result.

2007-06-06  Robert Dewar  <dewar@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
	Check for restriction No_Implementation_Attributes if in Ada 95 mode.
	(Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
	(Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
	message when using a VM, since this attribute is not supported.
	(Analyze_Record_Representation_Clause): Give unrepped component warnings

	* usage.adb: Add new warning for renaming of function return objects
	Indicate that -gnatwp and -gnatwP concern front-end inlining
	Add line for -gnatyg
	Add usage information for -gnatw.c/C

2007-06-06  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb
	(Find_Var): Do not consider function call in test for infinite loop
	warning if warnings set off for function entity.
	(One_Bound): Do not create a temporary for a loop bound if it is a
	character literal.
	(Analyze_Assignment): Traverse the right hand side of an assignment and
	mark all allocators as static coextensions.
	(Analyze_Assignment): Exempt assignments involving a dispatching call
	to a function with a controlling access result from the check requiring
	the target to be class-wide.

2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
	chain of coextensions when an allocator serves as the root of such a
	chain.
	(Propagate_Coextensions): Remove the test for the root being an
	allocator.
	(Resolve_Allocator): Add condition to ensure that all future decoration
	occurs on an allocator node. Add processing and cleanup for static
	coextensions.
	(Valid_Conversion): If the operand type is the limited view of a
	class-wide type, use the non-limited view is available to determine
	legality of operation.
	(Ambiguous_Character): move to spec, for use elsewhere.
	(Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
	(Resolve_Range): Diagnose properly an ambiguous range whose bounds are
	character literals.
	(Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
	Do_Division_Check flag explicitly.
	(Resolve_Actuals): If the actual is of a synchronized type, and the
	formal is of the corresponding record type, this is a call to a
	primitive operation of the type, that is declared outside of the type;
	the actual must be unchecked-converted to the type of the actual
	(Resolve_Call): Kill all current values for any subprogram call if
	flag Suppress_Value_Tracking_On_Call is set.
	(Resolve_Type_Conversion): Generate error message the the operand
	or target of interface conversions come from a limited view.
	(Check_Infinite_Recursion): Ignore generated calls
	(Check_Allocator_Discrim_Accessibility): New procedure for checking
	that an expression that constrains an access discriminant in an
	allocator does not denote an object with a deeper level than the
	allocator's access type.
	(Resolve_Allocator): In the case of an allocator initialized by an
	aggregate of a discriminated type, check that associations for any
	access discriminants satisfy accessibility requirements by calling
	Check_Allocator_Discrim_Accessibility.
	(Resolve_Equality_Op): Handle comparisons of anonymous access to
	subprogram types in the same fashion as other anonymous access types.
	(Resolve_Concatenation_Arg): Remove initial character '\' in an error
	message that is not a continuation message.
	(Resolve_Type_Conversion): Add missing support for conversion to
	interface type.
	(Resolve_Actuals): Introduce a transient scope around the call if an
	actual is a call to a function returning a limited type, because the
	resulting value must be finalized after the call.
	(Resolve_Actuals): If the call was given in prefix notations, check
	whether an implicit 'Access reference or implicit dereference must be
	added to make the actual conform to the controlling formal.

2007-06-06  Robert Dewar  <dewar@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
	(Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
	overriding of an inherited private subprogram now there is no need to
	inherit its dispatching slot and reduce the size of the dispatch table.
	Set_All_DT_Position now ensures that the same slot is now assigned to
	both entities. This is required to statically build the dispatch table.
	(Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
	of calling Set_All_DT_Position to re-evaluate the position of the
	entries in the dispatch table. Such reevaluation is not desired if
	the tagged type is already frozen.

2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
	reference acts as an lvalue when the attribute name modifies the prefix
	(Is_Coextension_Root): New routine.
	(Mark_Static_Coextensions): New routine.
	(Type_Access_Level): Revise code for checking the level of the
	anonymous access type of a return object.
	(Safe_To_Capture_Value): Not safe to capture if Address_Taken
	(Matches_Prefixed_View_Profile): Remove the no longer necessary
	retrieval of the corresponding controlling record type.
	(Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
	concurrent types declared within a generic as well as class wide types.
	Emit a mode incompatibility error whenever a protected entry or routine
	override an interface routine whose first parameter is not of mode
	"out", "in out" or access to variable.
	(Overrides_Synchronized_Primitive): Rename to
	Find_Overridden_Synchronized_Primitive.
	(Collect_Interface_Components): New subprogram that collects all the
	components of a tagged record containing tags of secondary dispatch
	tables.
	(Add_Global_Declaration): New procedure
	(Abstract_Interface_List): Handle properly the case of a subtype of a
	private extension.
	(Type_Access_Level): In the case of a type whose parent scope is a
	return statement, call Type_Access_Level recursively on the enclosing
	function's result type to determine the level of the return object's
	type.
	(Build_Elaboration_Entity): Build name of elaboration entity from the
	scope chain of the entity, rather than the unit name of the file name.
	(Check_Nested_Access): New procedure.
	(Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
	(Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
	(Get_Renamed_Entity): Utility routine for performing common operation
	of chasing the Renamed_Entity field of an entity.

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
	elaboration model
	(Check_A_Call): Add check for entry call which was causing blowup

2007-06-06  Olivier Hainque  <hainque@adacore.com>

	* raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
	special code on ia64-vms to handle major incompatibilities between the
	GCC unwinding ABI and the VMS Condition Handling Facility, both calling
	this routine with a very different set of arguments and expectations on
	the return value.

2007-06-06  Thomas Quinot  <quinot@adacore.com>

	* socket.c (__gnat_close_signalling_fd): New function.
	(__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
	__gnat_safe_getservbyname, __gnat_safe_getservbyport):
	New supporting functions for task safe Netdb operations.

2007-06-06  Thomas Quinot  <quinot@adacore.com>
	    Olivier Hainque  <hainque@adacore.com>

	* a-except-2005.ads, a-except-2005.adb
	(Raise_From_Controlled_Operation): New procedure in
	(private part of) Ada.Exceptions (standard runtime version). Used to
	provide informational exception message when Program_Error is raised as
	a result of an Adjust or Finalize operation propagating an exception.
	(Rmsg_28): Fix description for E.4(18) check.
	(Raise_Current_Excep): Call Debug_Raise_Exception just before
	propagation starts, to let debuggers know about the event in a reliable
	fashion.
	Take the address of E and dereference to make sure it is homed on stack
	and prevent the stores from being deleted, necessary for proper
	debugger behavior on "break exception" hits.
	(Local_Raise): Moved to System.Exceptions

	* s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
	exception message from the current occurrence and raise Program_Error
	has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.

2007-06-06  Jose Ruiz  <ruiz@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* s-taprob.adb (Unlock): Change the ceiling priority of the underlying
	lock, if needed.

	* s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
	priority associated to a lock.

	* s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
	assertion to take into account case of no abort restriction.
	(Initialize_Protection_Entries): Add initialization for the field
	New_Ceiling associated to the protected object.
	(Unlock_Entries): Change the ceiling priority of the underlying lock, if
	needed.

	* s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
	since this function needs to be set consistently with Update_Exception.

	* s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
	since this function needs to be set consistently with Update_Exception.

	* s-taskin.ads: Update comments on
	Interrupt_Server_Blocked_On_Event_Flag.
	(Unbind_Handler): Fix handling of server_task wakeup
	(Server_Task): Set self's state so that Unbind_Handler can take
	appropriate actions.
	(Common_ATCB): Now use a constant from System.Parameters to determine
	the max size of the Task_Image field.

	* s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
	Initialize_Analyzer function.
	([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
	take into account case of no abort restriction.
	([Vulnerable_]Complete_Master): Modify assertion.

	* s-tataat.adb (Finalize): Use the nestable versions of
	Defer/Undefer_Abort.

	* s-tpobop.adb (Protected_Entry_Call): Relax assertion.

	* s-tpobop.ads: Update comments.

	* s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
	of locking the object manually, to avoid inconsistencies between
	Lock/Unlock_Entry assertions.

	* s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
	terminating
	application and System.Parameters.No_Abort is True.
	Update comments on Interrupt_Server_Blocked_On_Event_Flag.
	(Unbind_Handler): Fix handling of server_task wakeup
	(Server_Task): Set self's state so that Unbind_Handler can take
	appropriate actions.

2007-06-06  Thomas Quinot  <quinot@adacore.com>

	* s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
	declarations instead of an explicit null body, for conciseness.

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
	illegal aggregate and the type is still Any_Composite.
	(Subtypes_Statically_Match): Fix problem of empty discriminant list

2007-06-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
	to prevent subsequent expansion.

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* sinput-l.ads, sinput-l.adb: implement a new pragma No_Body

2007-06-06  Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
	exceptions.
	(Write_Itype): Handle case of string literal subtype, which
	comes up in this context.
	(Update_Itype): when debugging expanded code, update sloc of itypes
	associated with defining_identifiers and ranges, for gdb use.
	(Sprint_Node_Actual): Add static keyword to object or exception
	declaration output if Is_Statically_Allocated is True.
	(Sprint_End_Label): Set entity of end marker for a subprogram, package,
	or task body, so that the tree carries the proper Sloc information for
	debugging use.
	(Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes

2007-06-06  Arnaud Charlet  <charlet@adacore.com>

	* s-secsta.adb (Chunk): Ensure this object has a static size known at
	compile time, to avoid dynamic memory allocation
	(Elaboration code): Only use dynamic memory allocation when needed.

2007-06-06  Quentin Ochem  <ochem@adacore.com>

	* s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
	"Overflow_Guard".
	(Stack_Analyzer): Added field "Overflow_Guard"
	(Task_Result): Added field "Overflow_Guard".
	(Index_Str): New constant.
	(Task_Name_Str): New constant.
	(Actual_Size_Str): New constant.
	(Pattern_Array_Element_Size): New constant.
	(Get_Usage_Range): New subprogram.
	(Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
	Now align the output.
	Added comments.
	(Initialize): Added value for Overflow_Guard.
	(Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
	Update the value of the overflow guard according to the actual
	beginning of the pattern array.
	(Initialize_Analyzer): Added parameter Overflow_Guard.
	Take this parameter into accound when computing the max size.
	(Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
	(Report_Result): Removed extra useless procedure.
	Updated call to Output_Result.
	Moved full computation of the Task_Result here.

2007-06-06  Thomas Quinot  <quinot@adacore.com>

	* g-soccon-darwin.ads, gen-soccon.c: Add new constant
	Thread_Blocking_IO, always True by default, set False on a per-runtime
	basis.
	Add Windows-specific constants
	Add new constant Need_Netdb_Buffer.
	Add new macros to indicate whether getXXXbyYYY is thread safe and, if
	not, whether to use getXXXbyYYY_r.

	* gsocket.h: Add new constant Need_Netdb_Buffer.
	Add new macros to indicate whether getXXXbyYYY is thread safe and, if
	not, whether to use getXXXbyYYY_r.

2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	* s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
	than their first call.
	Add type Dummy_Communication_Block used in the generation of the pre-
	defined dispatching primitive _disp_asynchronous_select.
	(Storage_Element): Put Pragma Universal_Aliasing on it.

2007-06-06  Vincent Celier  <celier@adacore.com>

	* a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
	function.

	* a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
	letter if it is not followed by a '/' or a '\'.
	(Windows): New Boolean function

	* a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
	Ada 2005.
	(Containing_Directory): On Windows, keep at least one '/' or '\' after a
	drive letter.
	(Containing_Directory): Raise Use_Error when the directory is a root
	directory.
	(Extension): When returning the result, use a conversion to Result_Type,
	not a qualification.

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
	(Set_Style_Check_Options): Recognize new -gnatyg style switch

	* switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
	Warn_On_Non_Local_Exception to False, to turn off warnings for
	No_Exception_Propagation in ZFP runtime.
	(Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
	back-ends.
	(Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks

2007-06-06  Vincent Celier  <celier@adacore.com>

	* switch-b.adb (Scan_Binder_Switches): Add processing for new
	switches -R and -Z

	* switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
	(Scan_Make_Switches): Recognize new switch -aP

2007-06-06  Matthew Gingell  <gingell@adacore.com>
	    Jose Ruiz  <ruiz@adacore.com>

	* s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
	VxWorks task descriptor in the Ada run time, call a C subprogram
	(__gnat_get_stack_info) that extracts the required information.

	* sysdep.c: Back out temporary lynxos workaround.
	(__gnat_get_stack_info): Add this procedure that passes to the Ada run
	time the stack information associated to the currently executing task.
	Only VxWorks systems require this function.

2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	* tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
	add the stack bias if the offset is computed from a frame address.
	(__gnat_backtrace): Adjust for above change.

2007-06-06  Thomas Quinot  <quinot@adacore.com>

	* types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
	PE_Non_Transportable_Actual.
	(By_Descriptor_Last): New constant.
	(By_Copy_Return): Likewise.

2007-06-06  Vincent Celier  <celier@adacore.com>

	* vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
	is.

	* vms_data.ads: Add entries for -gnatw.x and -gnatw.X
	/STYLE_CHECKS=GNAT: Change meaning to -gnatyg
	/GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
	Add missing comment for /OPTIMIZE=SPACE
	Add entry for OPTIMIZE=SPACE
	Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
	Add documentation for new qualifiers corresponding to -gnatw.c/.C

2007-06-06  Vincent Celier  <celier@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
	-gnatw.C)

	* gnat_ugn.texi: Fix ordering of -g switch for gnatmake
	Document gnatbind switch -a
	(case Constructions): Document that variables declarations are allowed
	for previously declared variables.
	Fix external lib project example
	-gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
	Indicate that "#if not X or Y then" is not allowed in input files to
	gnatprep.
	Document gnatw.x and gnatw.X warning flags
	Mention -Winline switch to activate warnings when back-end inlining is
	ineffective.
	Add gnatcheck rule descriptions
	Describe how to use the GNAT driver to call a tool on a closure.
	Describe how to run project-wide checks or metrics.
	Document gnatbind's -R option
	Updated to account for Ada 2005 support

	* gnat_rm.texi (Case Construction): Allow variable declarations for
	previously declared variables.
	(Representation Clauses and Pragmas): Lift restriction on alignment
	clauses for record types.
	(Ada.Characters.*): Fix typo in reference to A.3.3(27).
	Document No_Exception_Propagation restriction
	Document No_Body pragma
	Updated to account for Ada 2005 support; corrected some typos
	(Implementation Defined Pragmas): Document pragma Universal_Aliasing.

	* gnat-style.texi: Make it clear that we never use mode IN for
	procedures or functions

	* ug_words: Add entries for -gnatw.x and -gnatw.X
	Add entries for -gnatw.c/.C

2007-06-06  Pascal Obry  <obry@adacore.com>
	    Vincent Celier  <celier@adacore.com>

	* makegpr.adb (Add_Archive_Path): Use untouched object and library
	dirs and library name.
	(Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
	comments.
	(Build_Library): Idem.
	(Compile_Individual_Sources): Idem.
	(Compile_Link_With_Gnatmake): Idem.
	(Compile_Sources): Idem.
	(Get_Imported_Directories): Idem.
	(Link_Executables): Idem. Same change for the executable dir.
	(Check_Compilation_Needed): C_Source_Path new variable containing
	the canonical form of Source_Path to check against the source names
	in the dependency file.
	(Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
	verbose mode, display the name of the object directory we're changing
	to.
	(Saved_Switches): New name of table X_Switches
	(Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
	(Usage): New line for switch -aP
	(Get_Imported_Directories.Add): Make sure that Add_Arg is True before
	testing if a directory should be added to the search path.

2007-06-06  Javier Miranda  <miranda@adacore.com>

	* a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
	a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
	declaration after freezing point of all its associated tagged types;
	otherwise such types are frozen too early.

2007-06-06  Robert Dewar  <dewar@adacore.com>

	* a-reatim.adb: Documentation addition

	* g-cgideb.adb: Minor code reorganization

	* tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
	mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
	s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.

	* debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
	function.  Change name New_Scope to Push_Scope
	(Get_Debug_Flag_K): Remove unused obsolete function.

	* exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
	Push_Scope.

	* makeusg.adb: Update Copyright notice
	Add line for switch -aP

	* makeusg.adb: Fix wording of some usage messages

	* s-assert.adb (Raise_Assert_Failure): Add call to
	Debug_Raise_Assert_Failure.

	* s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
	(2, Standard'Alignment) for compatibility with AAMP (where alignment
	is restricted to 1).

	* s-wchjis.adb: Remove use of System.Pure_Exceptions

	* tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
	node location to No_Location when we're not debugging the expanded
	code.

2007-05-22  Alexandre Oliva  <aoliva@redhat.com>

	* misc.c (enumerate_modes): Consider log2_b to always be one.

2007-05-14  Rafael Ávila de Espíndola  <espindola@google.com>

	* misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.

2007-05-02  Pascal Obry  <obry@adacore.com>

	* gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
	to use Stream_IO.File_Type. This is needed to make use of the UTF-8
	encoding support of Stream_IO.
	(Write_Unit): Idem.

	* adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
	filename and corresponding encoding to match the OS requirement.
	(__gnat_file_exists): Do not call __gnat_stat() on Windows as this
	routine will fail on specific devices like CON: AUX: ...

	PR ada/29856: Add missing braces

2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR ada/31660
	* ada-tree.h (lang_tree_node): Fix typo in chain_next.

2007-04-21  Jan Hubicka  <jh@suse.cz>

	* misc.c (gnat_expand_body): Don't call target for destructors,
	avoid redundant check on syntax errors.

2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* ada-tree.h (lang_tree_node): Use GENERIC_NEXT
	instead of checking GIMPLE_STMT_P in chain_next.

2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>

	PR ada/31576
	* system-linux-alpha.ads: Disable constant condition warning for the
	Default_Bit_Order variable.
	* system-linux-s390.ads: Likewise.
	* system-linux-s390x.ads: Likewise.
	* system-linux-sparc.ads: Likewise.

2007-04-06  Javier Miranda  <miranda@adacore.com>
	    Matt Heaney  <heaney@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
	a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
	a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
	a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
	a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
	a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
	a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
	a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
	a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
	a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
	a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
	a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
	a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
	a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
	a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
	a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
	a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
	i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
	unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
	a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
	a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
	a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
	expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
	s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
	s-taprop-tru64.adb, s-taprop-irix.adb,
	s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
	s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
	s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
	s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
	s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
	a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
	a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
	g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
	s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
	s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
	s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
	s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
	s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
	s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
	a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
	a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
	a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
	a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
	a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
	a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
	access types.
	Update documentation.
	Minor rewording.

2007-04-06  Robert Dewar  <dewar@adacore.com>

	* system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
	system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
	system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
	system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
	system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
	system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
	system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
	system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
	system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
	system-hpux-ia64.ads, targparm.adb,
	targparm.ads (Functions_Return_By_DSP_On_Target): Removed

	* system.ads: Move Functions_Return_By_DSP to obsolete section,
	kept for bootstrap purposes only.

2007-04-06  Arnaud Charlet  <charlet@adacore.com>

	* s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
	s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
	s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
	(PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.

2007-04-06  Robert Dewar  <dewar@adacore.com>

	* a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
	(Local_Raise): New dummy procedure called when a raise is converted
	to a local goto. Used for debugger to detect that the exception
	is raised.

	* debug.adb: Document new d.g flag (expand local raise statements to
	gotos even if pragma Restriction (No_Exception_Propagation) is not set)

	* exp_sel.adb: Use Make_Implicit_Exception_Handler

	* exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
	suppress warnings for unused handlers.
	(Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
	warnings for raise statements not handled locally.
	(Get_RT_Exception_Entity): New function
	(Get_Local_Call_Entity): New function
	(Find_Local_Handler): New function
	(Warn_If_No_Propagation): New procedure
	(Expand_At_End_Handler): Call Make_Implicit_Handler
	(Expand_Exception_Handlers): Major additions to deal with local handlers
	(Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
	Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
	for local raise

	* exp_ch11.ads (Get_RT_Exception_Entity): New function
	(Get_Local_Call_Entity): New function

	* gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
	of restrictions that the binder will never suggest adding.

	* par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
	to No_Elist.

	* restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
	be with'ed in the presence of pragma Restriction
	(No_Exception_Propagation).

	* sem.adb (Analyze): Add entries for N_Push and N_Pop nodes

	* sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
	parameter, then the handler is not a suitable target for a local raise,
	and this is a violation of restriction No_Exception_Propagation.
	(Analyze_Handled_Statements): Analyze choice parameters in exception
	handlers before analyzing statement sequence (needed for proper
	detection of local raise statements).
	(Analyze_Raise_Statement): Reraise statement is a violation of the
	No_Exception_Propagation restriction.

	* s-rident.ads: Add new restriction No_Exception_Propagation

	* tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
	function, like Make_Exception_Handler but sets Local_Raise_Statements
	to No_List.
	(Add_Unique_Serial_Number): Deal with case where this is called during
	processing of configuration pragmas.

2007-04-06  Thomas Quinot  <quinot@adacore.com>
	    Pat Rogers  <rogers@adacore.com>
	    Pascal Obry  <obry@adacore.com>

	* g-stsifd-sockets.adb: New file.

	* g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
	g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
	g-socthi-vms.adb: Move signalling
	fd management to a nested package, so that they can conveniently be
	moved to a subunit that is shared across Windows, VMS, and VxWorks
	(Ada implementation) or completed with imported bodies from socket.c
	(UNIX case).
	(Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
	subprograms.
	(Check_Selector): Use Read_Signalling_Fd to read and discard data from
	the signalling file descriptor.
	(Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
	signalling file descriptor.
	(Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
	instead of creating a pair of sockets for signalling here.

	* g-socthi.adb: Ditto.
	Set the runtime process to ignore SIGPIPEs on platforms that support
	neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.

	* g-socthi-mingw.adb: Ditto.
	(WS_Version): Use Windows 2.2.
	Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.

	* g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
	Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.

	* Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
	added GNAT byte swapping facility
	Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.

	* g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.

	* socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
	New subprograms.
	(__gnat_create_signalling_fds): New subprogram.
	Set the runtime process to ignore SIGPIPEs on platforms that support
	neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.

2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
	    Vincent Celier  <celier@adacore.com>

	* a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
	New version of Ada.Calendar which supports the new upper bound of Ada
	time (2399-12-31 86_399.999999999).
	The following modifications have been made to the package:
	 - New representation of time as count of nanoseconds since the start of
	   Ada time (1901-1-1 0.0).
	 - Target independent Split and Time_Of routines which service both
	   Ada 95 and Ada 2005 code.
	 - Target independent interface to the Ada 2005 children of Calendar.
	 - Integrated leap seconds into Ada 95 and Ada 2005 mode.
	 - Handling of non-leap centenial years.
	 - Updated clock function.
	 - Updated arithmetic and comparison operators.

	* a-caldel.adb (To_Duration): Add call to target independent routine in
	Ada.Calendar to handle the conversion of time to duration.

	* sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
	(UTC Offset).
	If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
	set off to 0.
	(__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
	targets do not have a natural time zone, GMT is used as a default.
	(__gnat_get_task_options): New.

	* a-direct.adb (Modification_Time): Add with and use clauses for
	Ada.Calendar and Ada.
	Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
	since it is no longer needed.
	(Duration_To_Time): Removed.
	(OS_Time_To_Long_Integer): Removed.
	(Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
	Formatting Time_Of routines which automatically handle time zones,
	buffer periods and leap seconds.

	* a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
	target independent routines in Ada.Calendar.

	* a-calfor.ads, a-calfor.adb:
	Code cleanup and addition of validity checks in various routines.
	(Day_Of_Week, Split, Time_Of): Add call to target independent routine in
	Ada.Calendar.

	* a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
	independent routine in Ada.Calendar.

2007-04-06  Olivier Hainque  <hainque@adacore.com>

	* adaint.c:
	(convert_addresses): Adjust prototype and dummy definition to expect an
	 extra file_name argument.

	* gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
	filling the now expected file_name argument with the appropriate
	argv[0] expansion.
	(__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
	(tracebk): Array of void * instead of char *, corresponding to what
	 convert_addresses expects.
	(exename): New static global, to hold the executable file name to be
	used in all convert_addresses invocations.
	(gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
	change.
	(__gnat_gmem_a2l_initialize): Resolve exename.
	(__gnat_convert_addresses): Use exename as the convert_addresses
	file_name argument.

	* g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
	"convert_addresses", now expecting a filename argument. Import the
	necessary entities to compute the filename to use and pass it to
	convert_addresses.

2007-04-06  Matt Gingell  <gingell@adacore.com>

	* system-aix.ads: Back out previous change.
	(Functions_Return_By_DSP): Removed

2007-04-06  Pascal Obry  <obry@adacore.com>

	* s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
	or the monotonic used by Ada.Real_Time) to compute the sleep duration
	on Windows.

2007-04-06  Jose Ruiz  <ruiz@adacore.com>

	* s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
	function. Its value changes in different VxWorks versions, and it is
	now handled by the function __gnat_get_task_options.

	* s-taprop-vxworks.adb (Create_Task): Call the function
	__gnat_get_task_options to get the required options for creating a task.

2007-04-06  Pascal Obry  <obry@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

	* adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
	dealing with filename.
	(__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
	filename from a standard string to a wide-string depending on the
	encoding value.
	(__gnat_freopen): Idem.
	(__gnat_current_time): New function (wrapper for time(3) standard C
	function).

	* g-os_lib.ads (Current_Time): New function. Returns the current
	system time as an OS_Time value.

	* s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
	(Monotonic_Clock): Same.

2007-04-06  Quentin Ochem  <ochem@adacore.com>

	* ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
	not on a natural.
	(Scan_ALI): Cancel the xref line if there has been a reading ALI error.

2007-04-06  Jose Ruiz  <ruiz@adacore.com>

	* a-retide.adb: Add elaboration code to ensure that the tasking run
	time is initialized when using delay operations even when no task is
	created.

2007-04-06  Javier Miranda  <miranda@adacore.com>

	* a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
	component Num_Prim_Ops.
	(Set_Num_Prim_Ops): Removed.
	Remove all the assertions because all the routines of this
	package are inline always.
	(Get_Offset_Index): Add support to primary dispatch tables.
	Move the documentation about the dispatch table to a-tags.ads
	(Set_External_Tag): Removed
	(Inherit_TSD): Removed.
	(Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
	moved to a-tags.ads
	(Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
	Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
	of the TSD field "Table" because this field has been renamed to
	"Ifaces_Table".
	(Inherit_CPP_DT): Removed.
	(K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
	Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
	declarations have been moved to a-tags.ads
	(Check_Size): Removed.
	(Expanded_Name): Updated to get access to the new field of TSD
	containing the address of the expanded name.
	(Get_Access_Level/Set_Access_Level): Removed.
	(Get_Predefined_Prim_Op_Address): Removed.
	(Set_Predefined_Prim_Op_Address): Removed.
	(Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
	(Get_Remotely_Callable/Set_Remotely_Callable): Removed.
	(Set_Expanded_Name): Removed.
	(Inherit_DT): Removed.
	(Inherit_CPP_DT): Removed.
	(Set_RC_Offset): Removed.
	(Set_TSD): Removed.
	(Base_Address): New function that displaces "this" to point to the base
	of the object (that is, to point to the primary tag of the object).

2007-04-06  Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
	anonymous access component, do not create a master_id if type already
	has one, as may happen if the type is a subcomponent of a packed array
	type.
	(Build_Init_Procedure, Component_Needs_Simple_Initialization,
	Initialize_Tag): Remove code associated with the old CPP pragmas.
	CPP_Virtual and CPP_Vtable are no longer supported.
	(Build_Offset_To_Top_Internal): Add support for concurrent record types
	(Build_Offset_To_Top_Functions): Add support for concurrent record types
	(Freeze_Record_Type): Remove call to
	Init_Predefined_Interface_Primitives.
	(Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
	code required to initialize the tags of the secondary dispatch tables.
	This leaves the algoritm more clear.
	(Init_Secondary_Tags): Add support for concurrent record types
	(Make_Predefined_Primitive_Specs): Code cleanup.
	(Predefined_Primitive_Bodies): Code cleanup.
	(Build_Master_Renaming): New local subprogram.
	(Expand_N_Full_Type_Declaration): Build the master_id associated with
	anonymous access to task type components.
	(Expand_N_Subtype_Indication): The bounds of a range constraint in a
	subtype indication are resolved during analysis, and must not be done
	here.
	(Stream_Operation_OK): Check Restriction_Active before RTE_Available.

2007-04-06  Geert Bosch  <bosch@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>
	    Bob Duff  <duff@adacore.com>

	* exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
	for conversion of a Float_Type'Truncation to integer.

	* exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
	check if a node is an attribute that can be handled directly by the
	back end.
	(Expand_N_Attribute_Reference): Suppress expansion of floating-point
	attributes that can be handled directly by the back end.
	(Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
	use new predicate Is_Access_Protected_Subprogram_Type.
	(Expand_N_Attribute_Reference, case 'Write): The reference is legal for
	and Unchecked_Union if it is generated as part of the default  Output
	procedure for a type with default discriminants.
	(Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
	if we are compiling under restriction No_Dispatching_Calls.
	(Constrained): Use Underlying_Type, in case the type is private without
	discriminants, but the full type has discriminants.
	(Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
	call to Build_Get_Access_Level.
	(Expand_N_Attribute_Reference): The use of 'Address with class-wide
	interface objects requires a call to the run-time subprogram that
	returns the base address of the object.
	(Valid_Conversion): Improve error message on illegal attempt to store
	an anonymous access to subprogram value into a record component.

	* sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
	null".
	(Simplify_Type_Conversion): New procedure that performs simplification
	of Int_Type (Float_Type'Truncation (X)).
	(Resolve_Type_Conversion): Call above procedure after resolving operand
	and before performing checks. This replaces the existing ineffective
	code in Exp_Ch4.
	(Set_String_Literal_Subtype): When creating the internal static lower
	bound subtype for a string literal, use a newly created copy of the
	subtree representing the lower bound.
	(Resolve_Call): Exclude build-in-place function calls from transient
	scope treatment. Update comments to describe this exception.
	(Resolve_Equality_Op): In case of dispatching call check violation of
	restriction No_Dispatching_Calls.
	(Resolve_Call): If the call returns an array, the context imposes the
	component type of the array, and the function has one non-defaulted
	parameter, rewrite the call as the indexing of a call with a single
	parameter, to handle an Ada 2005 syntactic ambiguity for calls written
	in prefix form.
	(Resolve_Actuals): If an actual is an allocator for an access parameter,
	the master of the created object is the innermost enclosing statement.
	(Remove_Conversions): For a binary operator, check if type of second
	formal is numeric, to check if an abstract interpretation is present
	in the case of exponentiation as well.

2007-04-06  Ed Schonberg  <schonberg@adacore.com>
	    Bob Duff  <duff@adacore.com>

	* atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
	copying a parameter list in a call, set properly the First_Named_Formal
	and Next_Named_Formal fields in the new list and in the enclosing call.
	(Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
	names, to ease typing in the debugger. Improve comments.
	(Watch_Node): New variable, intended to be set in the debugger.
	(New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
	called when the watched node is created.
	(New_Node_Debugging_Output): Combined version of local procedures
	New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
	with a parameter so that conditional breakpoints like "if Node = 12345"
	work.
	(New_Node, New_Entity): Call the global New_Node_Debugging_Output.
	Add Elist1 function

2007-04-06  Thomas Quinot  <quinot@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* checks.ads, checks.adb (Selected_Range_Checks): No range check is
	required for a conversion between two access-to-unconstrained-array
	types.
	(Expr_Known_Valid): Validity checks do not apply to discriminants, but
	to discriminant constraints on discriminant objects. This rule must
	apply as well to discriminants of protected types in private components.
	(Null_Exclusion_Static_Checks): If No_Initialization is set on an
	object of a null-excluding access type then don't require the
	the object declaration to have an expression and don't emit a
	run-time check.

2007-04-06  Arnaud Charlet  <charlet@adacore.com>
	    Eric Botcazou  <botcazou@adacore.com>

	* gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
	and made constant.

	* comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
	Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
	carry any.

	* fe.h (Compiler_Abort): Add third parameter.

	* misc.c (internal_error_function): Build third argument from current
	input location and pass it to Compiler_Abort.

2007-04-06  Gary Dismukes  <dismukes@adacore.com>

	* cstand.adb (Create_Standard): When the target's storage unit size is
	greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
	Standard_String.

2007-04-06  Nicolas Roche  <roche@adacore.com>

	* cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
	absolute path can have the following form: device:/a/b. In this case
	'/' should be inserted between the path and the filename.

2007-04-06  Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <botcazou@adacore.com>

	* decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
	VAR_DECL to a CONST_DECL we make for a public constant when we know the
	corresponding definition has created the so made visible variable.
	Handle anonymous access to protected subprogram.
	(gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
	object with an address clause volatile.  Re-enable original fix.
	<E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
	too.
	(gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
	associated with either the Equivalent or Root type, instead of the
	naked type node.
	(gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
	subtree for every field of a global record type.
	(gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
	discriminants, invoke again variable_size on its newly computed sizes.

2007-04-06  Robert Dewar  <dewar@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Bob Duff  <duff@adacore.com>

	* einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
	(Next_Component_Or_Discriminant): New function and procedure
	(First_Index, First_Literal, Master_Id,
	Set_First_Index, Set_First_Literal, Set_Master_Id):
	Add missing Ekind assertions.
	(Is_Access_Protected_Subprogram_Type): New predicate.
	(Has_RACW): New entity flag, set on package entities to indicate that
	the package contains the declaration of a remote accecss-to-classwide
	type.
	(E_Return_Statement): This node type has the Finalization_Chain_Entity
	attribute, in case the result type has controlled parts.
	(Requires_Overriding): Add this new flag, because "requires
	overriding" is subtly different from "is abstract" (see AI-228).
	(Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
	Is_Abstract_Type. Make sure these are called only when appropriate.
	(Has_Pragma_Unreferenced_Objects): New flag

	* exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
	class-wide, the tag of the right-hand side must be an exact match, not
	an ancestor of that of the object on left-hand side.
	(Move_Activation_Chain): New procedure to create the call to
	System.Tasking.Stages.Move_Activation_Chain.
	(Expand_N_Extended_Return_Statement): Generate code to call
	System.Finalization_Implementation.Move_Final_List at the end of a
	return statement if the function's result type has controlled parts.
	Move asserts to Build_In_Place_Formal.
	(Move_Final_List): New function to create the call statement.
	(Expand_N_Assignment_Statement): In case of assignment to a class-wide
	tagged type, replace generation of call to the run-time subprogram
	CW_Membership by call to Build_CW_Membership.
	(Expand_N_Return_Statement): Replace generation of call to the run-time
	subprogram Get_Access_Level by call to Build_Get_Access_Level.
	(Expand_N_Simple_Function_Return): Replace generation of call to the
	run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.

	* exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
	Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
	access to protected operations.
	(Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
	master and chain actual parameters to a build-in-place function call
	involving tasks.
	(BIP_Formal_Suffix): Add new enumeration literals to complete the case
	statement.
	(Make_Build_In_Place_Call_In_Allocator,
	Make_Build_In_Place_Call_In_Anonymous_Context,
	Make_Build_In_Place_Call_In_Assignment,
	Make_Build_In_Place_Call_In_Object_Declaration): Call
	Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
	(Expand_Inlined_Call): If the subprogram is a null procedure, or a
	stubbed procedure with a null body, replace the call with a null
	statement without using the full inlining machinery, for efficiency
	and to avoid invalid values in source file table entries.

	* exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
	renamings of calls to build-in-place functions.

	* rtsfind.adb (RTE_Record_Component_Available): New subprogram that
	provides the functionality of RTE_Available to record components.
	(RTU_Entity): The function Entity has been renamed to RTU_Entity
	to avoid undesired overloading.
	(Entity): New subprogram that returns the entity for the referened
	unit. If this unit has not been loaded, it returns Empty.
	(RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
	Remove no longer used entities.
	(RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
	(RE_Type_Specific_Data): New entity.
	(RE_Move_Any_Value): New entity.
	(RE_TA_A, RE_Get_Any_Type): New entities.
	(RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
	 RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
	 RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
	(Entity): New subprogram that returns the entity for the referened
	unit. If this unit has not been loaded, it returns Empty.
	(RTE): Addition of a new formal that extends the search to the scopes
	of the record types found in the chain of the package.

	* sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
	"abstract subprograms must be visible" message, whether or not the type
	is an interface; that is, remove the special case for interface types.
	(Analyze_Function_Return): Remove error message "return of task objects
	is not yet implemented" because this is now implemented.
	(Create_Extra_Formals): Add the extra master and activation chain
	formals in case the result type has tasks.
	Remove error message "return of limited controlled objects is not yet
	implemented".
	(Create_Extra_Formals): Add the extra caller's finalization list formal
	in case the result type has controlled parts.
	(Process_Formals): In case of access formal types there is no need
	to continue with the analysis of the formals if we already notified
	errors.
	(Check_Overriding_Indicator): Add code to check overriding of predefined
	operators.
	(Create_Extra_Formals): Prevent creation of useless Extra_Constrained
	flags for formals that do not require them,.
	(Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
	hidden entity is use visible or directly visible.
	(Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
	Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
	Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
	New_Overloaded_Entity): Split Is_Abstract flag into
	Is_Abstract_Subprogram and Is_Abstract_Type.

	* s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
	a return statement's finalization list to the caller's list, used for
	build-in-place functions with result type with controlled parts.
	Remove no longer used entities.

	* s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
	longer needed, because the full type is now limited, and therefore a
	pass-by-reference type.
	(Foreign_Task_Level): New constant.

	* s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
	move tasks from the activation chain belonging to a return statement to
	the one passed in by the caller, and update the master to the one
	passed in by the caller.
	(Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
	of unactivated tasks, so we don't kill the ones that are being returned
	by a build-in-place function.
	(Create_Task): Ignore AI-280 for foreign threads.

2007-04-06  Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Bob Duff  <duff@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* errout.adb (Unwind_Internal_Type): Use predicate
	Is_Access__Protected_Subprogram_Type.

	* freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
	(Freeze_Entity, packed array case): Do not override explicitly set
	alignment and size clauses.
	(Freeze_Entity):  An entity declared in an outer scope can be frozen if
	the enclosing subprogram is a child unit body that acts as a spec.
	(Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
	(Freeze_Record_Type): New Ada 2005 processing for reverse bit order
	Remove all code for DSP option

	* layout.adb (Layout_Record_Type): Use First/
	Next_Component_Or_Discriminant
	(Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
	to handle properly the anonymous access case.

	* sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
	for all access attributes, because overload resolution should work the
	same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
	causes the error message for the ambiguous "X'Access = Y'Access" and
	"X'Unrestricted_Access = Y'Access" and so forth to match.
	(Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
	now that anonymous access to protected operations have their own kind.
	(Resolve_Attribute): In case of dispatching call check the violation of
	restriction No_Dispatching_Calls.
	(Check_Array_Type): Check new -gnatyA array index style option

	* sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
	attempt to derive from a synchronized tagged type.
	(Analyze_Type_Declaration): If there is a incomplete tagged view of the
	type, inherit the class-wide type already created, because it may
	already have been used in a self-referential anonymous access component.
	(Mentions_T): Recognize self-referential anonymous access components
	that use (a subtype of) the class-wide type of the enclosing type.
	(Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
	Derived_Type for Prev formal on call to
	Check_Anonymous_Access_Components rather than Empty.
	(Make_Incomplete_Type_Declaration): Add test for case where the type has
	a record extension in deciding whether to create a class-wide type,
	rather than just checking Tagged_Present.
	(Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
	to stand-alone object declarations as well as component declarations.
	(Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
	prevent accidental overwriting when enclosing package appears in
	a limited_with_clause.
	(Array_Type_Declaration): If the component type is an anonymous access,
	the associated_node for the itype is the type declaration itself.
	(Add_Interface_Tag_Components): Modified to support concurrent
	types with abstract interfaces.
	(Check_Abstract_Interfaces): New subprogram that verifies the ARM
	rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
	(Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
	to complete the decoration of synchronized interface types. Add also
	a call to Check_Abstract_Interfaces to verify the ARM rules.
	(Derive_Interface_Subprograms): Modified to support concurrent types
	with abstract interfaces.
	(Analyze_Subtype_Indication): Resolve the range with the given subtype
	mark, rather than delaying the full resolution depending on context.
	(Analyze_Component_Declaration,Analyze_Interface_Declaration,
	Analyze_Object_Declaration,Analyze_Subtype_Declaration,
	Array_Type_Declaration,Build_Derived_Record_Type,
	Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
	Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
	Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
	Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
	called only when appropriate.
	(Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
	to private type.
	(Analyze_Subtype_Declaration): For an access subtype declaration, create
	an itype reference for the anonymous designated subtype, to prevent
	scope anonmalies in gigi.
	(Build_Itype_Reference): New utility, to simplify construction of such
	references.

2007-04-06  Vincent Celier  <celier@adacore.com>

	* errutil.adb (Initialize): Initialize warnings table, if all warnings
	are suppressed, supply an initial dummy entry covering all possible
	source locations.

	* make.adb (Scan_Make_Arg): Reject options that should start with "--"
	and start with only one, such as "-RTS=none".
	(Collect_Arguments): Do not check for sources outside of projects.
	Do not collect arguments if project is externally built.
	(Compile_Sources): Do nothing, not even check if the source is up to
	date, if its project is externally built.
	(Compile): When compiling a predefined source, add -gnatpg
	as the second switch, after -c.
	(Compile_Sources): Allow compilation of Annex J renames without -a
	(Is_In_Object_Directory): Check if the ALI file is in the object
	even if there is no project extension.
	(Create_Binder_Mapping_File): Only put a unit in the mapping file for
	gnatbind if the ALI file effectively exists.
	(Initialize): Add the directory where gnatmake is invoked in front of
	the path if it is invoked from a bin directory, even without directory
	information, so that the correct GNAT tools will be used when spawned
	without directory information.

	* makeusg.adb: Change switch -S to -eS
	Add lines for new switches -we, -wn and -ws
	Add line for new switch -p

	* prj-proc.adb (Process): Set Success to False when Warning_Mode is
	Treat_As_Error and there are warnings.

	* switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
	-gnatww Change gnatmake switch -S to -eS
	(Scan_Make_Switches): Code reorganisation. Process separately multi
	character switches and single character switches.
	(Scan_Make_Switches): New Boolean out parameter Success. Set Success to
	False when switch is not recognized by gnatmake.
	(Scan_Make_Switches): Set Setup_Projects True when -p or
	--create-missing-dirs is specified.

	* fname.adb (Is_Predefined_File_Name): Return True for annex J
	renamings Calendar, Machine_Code, Unchecked_Conversion and
	Unchecked_Deallocation only when Renamings_Included is True.

	* par.adb: Allow library units Calendar, Machine_Code,
	Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
	when -gnatg is not specified.
	(P_Interface_Type_Definition): Remove the formal Is_Synchronized because
	there is no need to generate always a record_definition_node in case
	of synchronized interface types.
	(SIS_Entry_Active): Initialize global variable to False
	(P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
	indicate cases where AI-447 says "not null" is legal.

	* makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function

	* makegpr.adb (Check_Compilation_Needed): Take into account dependency
	files with with several lines starting with the object fileb name.
	(Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
	is specified.
	(Initialize): Add the directory where gprmake is invoked in front of the
	path, if it is invoked from a bin directory or with directory
	information, so that the correct GNAT tools will be used when invoked
	directly.
	(Check_Compilation_Needed): Process correctly backslashes on Windows.

	* vms_data.ads: Update switches/qualifiers

2007-04-06  Ed Schonberg  <schonberg@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

	* exp_aggr.adb:
	If the array component is a discriminated record, the array aggregate
	is non-static even if the component is given by an aggregate with
	static components.
	(Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
	(Convert_Aggr_In_Allocator): If the allocator is for an access
	discriminant and the type is controlled. do not place on a finalization
	list at this point. The proper list will be determined from the
	enclosing object.
	(Build_Record_Aggr_Code): If aggregate has box-initialized components,
	initialize record controller if needed, before the components, to ensure
	that they are properly finalized.
	(Build_Record_Aggr_Code): For the case of an array component that has a
	corresponding array aggregate in the record aggregate, perform sliding
	if required.

2007-04-06  Javier Miranda  <miranda@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
	run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.

	* exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
	accessibility on class-wide allocators if the allocator occurs at the
	same scope level as the allocator's type. The check is guaranteed to
	succeed in that case, even when the expression originates from a
	parameter of the containing subprogram.
	(Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
	under No_Dispatching_Calls restriction. During the semantic analysis
	we already notified such violation.
	(Tagged_Membership): Constant folding. There is no need to check
	the tag at run-time if the type of the right operand is non
	class-wide abstract.
	Replace call to Is_Ancestor by call to Is_Parent
	to support concurrent types with interface types.
	(Expand_N_Allocator): Add an assertion associated with the generation
	of the master_id.
	(Expand_N_Slice): Do not enable range check to nodes associated
	with the frontend expansion of the dispatch table.
	(Is_Local_Access_Discriminant): Subsidiary function to
	Expand_N_Allocator.
	(Tagged_Membership): Replace generation of call to the run-time
	subprogram CW_Membership by call to Build_CW_Membership.
	(Expand_Allocator_Expression): Replace generation of call to the
	run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.

	* exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
	initialize most the TSD components by means of an aggregate.
	Modify the declaration of the object containing the TSD
	because we now expand code that has a higher level of abstraction.
	The TSD has a discriminant containing the Inheritance Depth Level,
	value that is used in the membership test but also to fix the size
	of the table of ancestors.
	(Expand_Interface_Conversion): Insert function body at the closest place
	to the conversion expression, to prevent access-before-elaboration
	errors in the backend.
	Code improved to reduce the size of the dispatch table if
	compiling under restriction No_Dispatching_Calls plus code cleanup.
	Code reorganization plus removal of calls to Set_Num_Prim_Ops
	(Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
	(Expand_Dispatching_Call): Minor code reorganization plus addition of
	code to return immediately if compiling under No_Dispatching_Calls
	restriction.
	(Set_All_DT_Position): Remove code associated with the old CPP pragmas.
	CPP_Virtual and CPP_Vtable are no longer supported.
	(Expand_Interface_Conversion): Add missing support for interface type
	derivations.
	(Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
	Is_Parent to support concurrent types with interfaces.
	(Init_Predefined_Interface_Primitives): Removed.
	(Make_Secondary_DT): Modified to support concurrent record types.
	(Set_All_DT_Position): Modified to support concurrent record types.
	(Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
	with Get_External_Tag, Inherit_TSD, Set_External_Tag.
	(Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
	with CW_Membership.
	(Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
	with Get_Access_Level, Get_Predefined_Prim_Op_Address,
	Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
	Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
	Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
	(Expand_Dispatching_Call): Replace generation of call to the run-time
	subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
	calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
	Address.
	(Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
	the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
	Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
	Build_Set_Prim_Op_Address.
	(Get_Remotely_Callable): Subprogram removed.
	(Init_Predefined_Interface_Primitives): Replace generation of call to
	the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
	Prims.

	* sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
	First (Parameter_Associations ()) with the call to First_Actual that
	returns an actual parameter expression for both named and positional
	associations.

	* sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
	check violation of restriction No_Dispatching_Calls.
	(Check_Controlling_Type): A formal of a tagged incomplete type is a
	controlling argument.

	* exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
	First/Next_Component_Or_Discriminant
	(Insert_Actions): Add entries for new N_Push and N_Pop nodes
	(Find_Implemented_Interface): Removed. All the calls to this subprogram
	specify Any_Limited_Interface, and this functionality is already
	provided by the function Has_Abstract_Interfaces.
	(Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
	support concurrent types implementing interfaces.
	(Find_Implemented_Interface): Removed. All the calls to this subprogram
	specify kind Any_Limited_Interface, and this functionality is already
	provided by the function Has_Abstract_Interfaces.
	(Remove_Side_Effects): replace Controlled_Type by
	CW_Or_Controlled_Type whenever the issue is related to
	using or not the secondary stack.

	* par-ch12.adb (P_Formal_Type_Definition): Update calls to
	P_Interface_Type_Definition to fulfill the new interface (the formal
	Is_Synchronized is no longer required).

	* Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
	Update dependencies.

	* exp_atag.ads, exp_atag.adb: New file

2007-04-06  Ed Schonberg  <schonberg@adacore.com>
	    Bob Duff  <duff@adacore.com>
	    Cyrille Comar  <comar@adacore.com>

	* exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
	anonymous, use finalization list of enclosing dynamic scope.
	(Expand_N_Package_Declaration): For a library package declaration
	without a corresponding body, generate RACW subprogram bodies in the
	spec (just as we do for the task activation call).
	(Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
	Is_Abstract_Type. Make sure these are called only when appropriate.
	Remove all code for DSP option
	(CW_Or_Controlled_Type): new subprogram.

2007-04-06  Eric Botcazou  <botcazou@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
	parameter. If it is set to true, return a result capped according to
	the global upper bound for the index of an entry family.
	(Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
	(Build_Find_Body_Index): Adjust for above change.
	(Entry_Index_Expression): Likewise.
	(Is_Potentially_Large_Family): New function extracted from...
	(Collect_Entry_Families): ...here. Call it to detect whether the family
	is potentially large.
	(Build_Entry_Count_Expression): If the family is potentially large, call
	Family_Size with 'Cap' set to true.
	(Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
	a protected version of an operation declared in the private part of
	a protected object, because they may be invoked through a callback.
	(Set_Privals): If the type of a private component is an anonymous access
	type, do not create a new itype for each protected body.
	If the body of a protected operation creates
	controlled types (including allocators for class-widetypes), the
	body of the corresponding protected subprogram must include a
	finalization list.
	(Build_Activation_Chain_Entity): Build the chain entity for extended
	return statements.
	(Type_Conformant_Parameters): Use common predicate Conforming_Types
	to determine whether operation overrides an inherited primitive.
	(Build_Wrapper_Spec): Add code to examine the parents while looking
	for a possible overriding candidate.
	(Build_Simple_Entry_Call): Set No_Initialization on the object used to
	hold an actual parameter value since its initialization is separated
	from the the declaration. Prevents errors on null-excluding access
	formals.

2007-04-06  Thomas Quinot  <quinot@adacore.com>
	    Pablo Oliveira  <oliveira@adacore.com>

	* exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
	Do an Unchecked_Conversion to handle the passage from the Underlying
	Type to the Base Type when calling Build_To_Any_Call and
	Build_From_Any_Call.
	(Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
	E_Constant, depending upon Variable formal.
	(GARLIC_Support.Build_Subprogram_Receiving_Stubs,
	PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
	parameter that requires an extra constrained parameter, declare
	temporary for actual as a variable, not a constant.
	(Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
	the unit being compiled is the one that contains the stub type.
	Change primitive operation name for the RACW associated with a RAS
	from Call to _Call so it cannot clash with any legal identifier.
	(PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
	Is_RAS.
	(Append_RACW_Bodies): New subprogram.
	(Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
	Add_Receiving_Stubs_To_Declarations functions.
	When expanding a package body, this list correspond to the
	statements in the HSS at the end of the pacakge.
	When expanding a package spec, this list correspond to the
	spec declarations.
	(Add_Receiving_Stubs_To_Declarations): Append the function
	registering the receiving stubs at the end of the 'Stmts' list.
	(RCI_Package_Locator): Pass the new Version generic formal when
	instantiating a RCI_Locator package.
	(Build_From_Any_Function): To compute the High bound for an
	unconstrained array actual, we add the Low bound with the length.
	Thus we must convert the low bound and the length to an appropriate
	type before doing the sum.
	(Build_Subprogram_Receiving_Stubs, PolyORB):
	 * Retrieve the extra formals parameters at the
	   end of the parameter stream.
	 * Use Move_Any_Value to write back out parameters
	   after executing the request as it is more efficient
	   than Copy_Any_Value.
	 * Build the any containing Extra Formals with the
	   appropriate typecode.
	(PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
	empty Component_List.
	(Build_Actual_Object_Declaration): New subprogram. Build and insert into
	the tree the declaration for an object that serves as actual parameter
	in server-side stubs.
	(GARLIC_Support.Build_Subprogram_Receiving_Stubs,
	PolyORB_Support.Build_Subprogram_Receiving_Stubs):
	Use Build_Actual_Object_Declaration to prepare the actuals.
	(Add_Parameter_To_NVList): Set the parameter mode to In for
	Extra Constrained Parameters.
	(Build_General_Calling_Stubs): Set the parameter type to boolean for
	Extra Constrained parameters.
	(Build_To_Any_Function, Build_From_Any_Function,
	Built_TypeCode_Function): When Typ is implicit, call the correct
	function with the first not implicit parent type.
	(TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
	(FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
	typecode from the Etype. Therefore we retrieve the correct typecode
	with a call to Get_Any_Type.
	(Copy_Specification): Do controlling formal type substitution based on
	Is_Controlling_Formal flag, instead of caller-provided object type.
	(Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
	a RACW primitive operation, we might get a subprogram declaration for an
	ancestor of the RACW designated type (not for the designated type
	itself), in the case where this operation is inherited. In this case we
	have no easy means of determining the original tagged type for which
	the primitive was declared, so instead we now rely on
	Copy_Specification to use the Is_Controlling_Formal flag to determine
	which formals require type substitution.

2007-04-06  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
	GNAT.Current_Exception are not allowed if pragma Restrictions
	(No_Exception_Propagation) is set and in any case make the associated
	handler unsuitable as a target for a local raise statement.
	(Expand_Dispatching_Constructor_Call): Replace generation of call to the
	run-time subprogram CW_Membership by call to Build_CW_Membership.
	(Expand_Dispatching_Constructor_Call): If the dispatching tag is given
	by a function call, a temporary must be created before expanding the
	Constructor_Call itself, to prevent out-of-order elaboration in the
	back-end when stack checking is enabled..

2007-04-06  Ed Schonberg  <schonberg@adacore.com>

	* exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
	result are the bounds of the left operand, not the right.

2007-04-06  Ed Schonberg  <schonberg@adacore.com>

	* exp_strm.adb
	(Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
	 discriminant defaults.
	(Build_Record_Or_Elementary_Output_Procedure): Ditto.
	(Make_Component_List_Attributes): Ditto.

2007-04-06  Ed Schonberg  <schonberg@adacore.com>
	    Bob Duff  <duff@adacore.com>

	* sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
	an association with a box as providing a value even though the
	initialization procedure for the type is not available.
	(Resolve_Record_Aggregate): Check that a choice of an association with a
	box corresponds to a component of the type.
	(Resolve_Record_Aggregate): Split Is_Abstract flag into
	Is_Abstract_Subprogram and Is_Abstract_Type.

	* exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
	assert.

	* inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
	Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
	called only when appropriate.

2007-04-06  Olivier Hainque  <hainque@adacore.com>

	* g-alleve.ads (Low Level Vector type definitions): Map each to the
	associated vector view instead of all to the unsigned char view.

	* g-altcon.adb (Generic_Conversions): New internal generic package,
	offering facilities for all the Vector/View conversion routines
	implemented by this unit.
	(To_View/To_Vector - all versions): Reimplemented in a systematic
	manner, using the internal Generic_Conversions facilities.

2007-04-06  Pascal Obry  <obry@adacore.com>

	* g-arrspl.adb (Free) [Element_Access]: New routine to free the source
	string.
	(Create): Free the source string before storing the new one.

2007-04-06  Vincent Celier  <celier@adacore.com>

	* g-debpoo.adb (Validity): New package with a complete new
	implementation of subprograms Is_Valid and Set_Valid.
	(Is_Valid): Move to local package Validity
	(Set_Valid): Move to local package Validity

2007-04-06  Arnaud Charlet  <charlet@adacore.com>
	    Pablo Oliveira  <oliveira@adacore.com>

	* g-expect.adb (Get_Command_Output): When expanding the output buffer
	we must ensure that there is enough place for the new data we are going
	to copy in.

2007-04-06  Thomas Quinot  <quinot@adacore.com>

	* g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
	computation.

2007-04-06  Jose Ruiz  <ruiz@adacore.com>
	    Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb (B_Start): Add prefix of binder generated file.
	(Stack_String): Add this String that contains the name of the Stack
	package in the project file.
	(Packages_To_Check_By_Stack): Add this list that contains the packages
	to be checked by gnatstack, which are the naming and the stack packages.
	(Check_Files): If no .ci files were specified for gnatstack we add all
	the .ci files belonging to the projects, including binder generated
	files.
	(Non_VMS_Usage): Document that gnatstack accept project file switches.
	(GNATCmd): Update the B_Start variable if we are in a VMS environment.
	Add gnatstack to the list of commands that use project file related
	switches, and get the single attribute Switches from the stack package
	in a project file when calling gnatstack. Parse the -U flag for
	processing files belonging to all projects in the project tree.
	Remove all processing for command Setup

	* prj-attr.adb: Add new package Stack with single attribute Switches

	* vms_conv.ads (Command_Type): Add command Stack.
	Move to body declarations that are only used in the body: types Item_Id,
	Translation_Type, Item_Ptr, Item and its subtypes.

	* vms_conv.adb: (Initialize): Add data for new command Stack.
	Add declarations moved from the spec: types Item_Id, Translation_Type,
	Item_Ptr, Item and its subtypes.
	(Cargs_Buffer): New table
	(Cargs): New Boolean global variable
	(Process_Buffer): New procedure to create arguments
	(Place): Put character in table Buffer or Cargs_Buffer depending on the
	 value of Cargs.
	(Process_Argument): Set Cargs when processing qualifiers for GNAT
	COMPILE
	(VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
	empty, for table Cargs_Buffer.
	(Initialize): Remove component Setup in Command_List

2007-04-06  Vincent Celier  <celier@adacore.com>

	* gprep.adb (Process_Files.Process_One_File): Use full file name when
	issuing pragma Source_Reference.

2007-04-06  Emmanuel Briot  <briot@adacore.com>

	* g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
	[[:xdigit:]] character class.
	Also raise an exception when an invalid character class is used.

2007-04-06  Pascal Obry  <obry@adacore.com>

	* i-cstrea.ads: (fopen): Add encoding parameter.
	(freopen): Idem.
	Change reference from a-sysdep.c to sysdep.c in comment.
	Update copyright notice.
	This set of patch add support for the encoding form parameter.

	* mingw32.h (S2WSU): New macro to convert from a string to a
	wide-string using the UTF-8 encoding. The S2WS macro supports now only
	standard 8bits encoding.
	(WS2SU): As above but converting from wide-sring to string.
	This is needed as it is necessary to have access to both versions in the
	runtime for the form parameter encoding support.
	This set of patch add support for the encoding form parameter.
	(S2WS): Improve implementation to handle cases where the filename is not
	UTF-8 encoded. In this case we default to using the current code page
	for the conversion.

	* s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
	type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
	the constants defined in adaint.h.
	(fopen): Add encoding parameter.
	(freopen): Idem.

	* s-ficobl.ads (AFCB): Add Encoding field to record the filename
	encoding. This is needed for the Reset routine (freopen low level-call).

	* s-fileio.adb (Open): Decode encoding form parameter and set the
	corresponding encoding value into AFCB structure.
	(Reset): Pass the encoding value to freopen.
	(Close): Move the call to Lock_Task to the beginning of the procedure.

2007-04-06  Geert Bosch  <bosch@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* i-fortra.ads: Add Double_Complex type.

	* impunit.adb: (Is_Known_Unit): New function
	Add Gnat.Byte_Swapping
	Add GNAT.SHA1
	Add new Ada 2005 units
	Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
	Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
	Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
	Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays

	* impunit.ads (Is_Known_Unit): New function

	* a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
	a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
	a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
	g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
	s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
	s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
	New files.

	* Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio

	* a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.

2007-04-06  Eric Botcazou  <botcazou@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
	__gnat_adjust_context_for_raise.
	(__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
	implementation of floating point operations as native x86 targets.
	So the FPU should be initialized in the same way using finit. Fix
	floating point operations accuracy issues.
	(__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
	member in struct sigaction, so as to avoid warning for incompatible
	pointer types.

2007-04-06 Serguei Rybin  <rybin@adacore.com>

	* lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
	switches from previously loaded tree

2007-04-06  Thomas Quinot  <quinot@adacore.com>

	* lib-writ.adb (Write_With_Lines): Factor duplicated code between the
	cases where a given dependency has a body or not.
	(Write_With_File_Names): New subprogram, common code for the two cases
	above.

2007-04-06  Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* lib-xref.ads, lib-xref.adb:
	Modify the loop that collects type references, to include interface
	types that the type implements. List each of these interfaces when
	building the entry for the type.
	(Generate_Definition): Initialize component Def and Typ of new entry
	in table Xrefs, to avoid to have these components unitialized.
	(Output_References): Split Is_Abstract flag into
	Is_Abstract_Subprogram and Is_Abstract_Type.
	(Generate_Reference): Add barrier to do not generate the warning
	associated with Ada 2005 entities with entities generated by the
	expander.

2007-04-06  Robert Dewar  <dewar@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>
	    Vincent Celier  <celier@adacore.com>

	* gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
	Update 'Exception Handling Control' chapter which was outdated.
	Minor fix to documentation of -gnatwq
	Remove section "Adapting the Run Time to a New C++ Compiler" because
	it is now obsolete.
	Add passage on need of -nostart-files in some non-ada-main cases.
	Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
	Update documentation about Interfacing with C++
	Add documentation for new gnatmake switch -p
	Add missing protocol part in URLs.
	Document -gnatyA
	Document pragma Compile_Time_Error
	Add documentation for Object_Size indicating that stand alone
	objects can have a larger size in some cases.
	Add node for GNAT.Byte_Swapping, GNAT.SHA1
	Update reference to the Ravenscar profile.
	Document pragma Unreferenced_Objects

	* gnat-style.texi: Fix typo

2007-04-06  Vincent Celier  <celier@adacore.com>

	* mlib.adb (Building_Library): Only output "building a library..." in
	verbose mode

	* mlib-prj.adb (Build_Library): Only output lists of object and ALI
	files in verbose mode.

	* mlib-utl.adb (Ar): Only output the first object files when not in
	verbose mode.
	(Gcc): Do not display all the object files if not in verbose mode, only
	the first one.

2007-04-06  Robert Dewar  <dewar@adacore.com>

	* namet.ads, namet.adb (wn): Improve this debugging routine. Calling
	it no longer destroys the contents of Name_Buffer or Name_Len and
	non-standard and invalid names are handled better.
	(Get_Decoded_Name_String): Improve performance by using
	Name_Has_No_Encodings flag in the name table.
	(Is_Valid_Name): New function to determine whether a Name_Id is valid.
	Used for debugging printouts.

2007-04-06  Robert Dewar  <dewar@adacore.com>
	    Javier Miranda  <miranda@adacore.com>
	    Bob Duff  <duff@adacore.com>

	* par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
	(P_Interface_Type_Definition): Remove the formal Is_Synchronized because
	there is no need to generate always a record_definition_node in case
	of synchronized interface types.
	(P_Type_Declaration): Update calls to P_Interface_Type_Definition.
	(P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
	illegal in Ada 95, in cases where it is legal. Change the warnings to
	errors in other cases. Don't give the error unless the "not null"
	parses properly. Correct the source position at which the error occurs.
	(P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
	P_Null_Exclusion, to suppress "not null" warnings.
	(P_Identifier_Declarations): Code cleanup. Removed unrequired label and
	associated goto statements.

	* par-endh.adb (Pop_End_Context): Allow more flexibility in placement
	of END RECORD

	* scans.ads (Type_Token_Location): New flag

	* par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
	(P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
	P_Null_Exclusion, to suppress "not null" warnings.

2007-04-06  Robert Dewar  <dewar@adacore.com>
	    Javier Miranda  <miranda@adacore.com>
	    Bob Duff  <duff@adacore.com>
	    Vincent Celier  <celier@adacore.com>

	* par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
	(Extensions_Allowed): No longer sets Ada_Version
	Entry for pragma Unreferenced_Objects

	* sem_prag.adb (Analyze_Pragma, case Priority): Force with of
	system.tasking if pragma priority used in a procedure
	(Analyze_Pragma, case Warning): Handle dot warning switches
	(Process_Compile_Time_Warning_Or_Error): New procedure
	(Analyze_Pragma): Add processing for Compile_Time_Error
	Add support for extra arguments External_Name and Link_Name.
	Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
	(Process_Import_Or_Interface): Add support for the use of pragma Import
	with tagged types.
	(Extensions_Allowed): No longer affects Ada_Version
	(Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
	Is_Abstract_Type. Make sure these are called only when appropriate.
	Add processing for pragma Unreferenced_Objects

	* snames.h, snames.ads, snames.adb: Add entry for pragma
	Compile_Time_Error
	Add new standard name Minimum_Binder_Options for new gprmake
	Add new standard names for gprmake: Archive_Suffix,
	Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
	Library_Support, Library_Version_Options,
	Shared_Library_Minimum_Options,
	Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
	Change Name_Call to Name_uCall so that it cannot clash with a legal
	subprogram name.
	Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
	Append C_Plus_Plus to convention identifiers as synonym for CPP
	Add new standard names Stack and Builder_Switches
	Add new standard names: Compiler_Minimum_Options, Global_Config_File,
	Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
	Run_Path_Option, Toolchain_Version.
	Entry for pragma Unreferenced_Objects

	* switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
	switches, without repetition of "eD". Make sure that last character of
	-gnatep= switch is not taken as -gnat switch character.
	Complete rewrite of circuit for handling saving compilation options
	Occasioned by need to support dot switchs for -gnatw, but cleans up
	things in general.
	-gnatX does not affect Ada_Version
	Include -gnatyA in -gnatg style switches

	* sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
	warnings on return objects.
	(Warn_On_Useless_Assignment): Exclude warnings on return objects
	(Set_Dot_Warning_Switch): New procedure
	(Check_References): Add missing case of test for
	Has_Pragma_Unreferenced_Objects
	(Output_Unreferenced_Messages): Implement effect of new pragma
	Unreferenced_Objects, remove special casing of limited controlled
	variables.

2007-04-06  Vincent Celier  <celier@adacore.com>

	* prj-ext.adb (Initialize_Project_Path): New procedure that initialize
	the default project path, initially done during elaboration of the
	package.
	If the prefix returned by Sdefault is null, get the prefix from a call
	to Executable_Prefix_Path.
	(Project_Path): Call Initialize_Project_Path if Current_Project_Path is
	null.

	* prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
	canonical directory name to open the directory from which files are
	retrieved.
	(Record_Other_Sources): Idem.
	(Locate_Directory): Add the possibility to create automatically missing
	directories when Setup_Projects is True.
	Call Locate_Directory so that the directory will be created when
	Setup_Projects is True, for object dir, library dir, library ALI dir,
	library source copy dir and exec dir.

	* prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
	versions of GNAT.

2007-04-06  Robert Dewar  <dewar@adacore.com>

	* sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
	Use First/Next_Component_Or_Discriminant
	(Analyze_Record_Representation_Clause):
	Use First/Next_Component_Or_Discriminant
	(Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
	(Analyze_Attribute_Definition_Clause, case Value_Size): Reject
	definition if type is unconstrained.
	(Adjust_Record_For_Reverse_Bit_Order): New procedure
	(Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
	Is_Abstract_Subprogram and Is_Abstract_Type.
	(Adjust_Record_For_Reverse_Bit_Order): New procedure

	* repinfo.adb (List_Record_Info): Use First/
	Next_Component_Or_Discriminant.

	* style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
	New procedure.

	* stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
	Include -gnatyA in default switches

	* opt.ads: (Warn_On_Non_Local_Exception): New flag
	(Warn_On_Reverse_Bit_Order): New flag
	(Extensions_Allowed): Update the documentation.
	(Warn_On_Questionable_Missing_Parens): Now on by default

	* usage.adb: Add documentation of -gnatw.x/X switches
	Document new -gnatyA style switch
	-gnatq warnings are on by default

2007-04-06  Ed Falis  <falis@adacore.com>

	* s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
	full word is no longer compared twice.

2007-04-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Install_Limited_Context_Clauses.
	Expand_Limited_With_Clause): Use a new copy of selector name in the
	call to Make_With_Clause. This fixes the tree structure for ASIS
	purposes. Nothing is changed in the compiler behaviour.
	(Process_Body_Clauses): Handle properly use clauses whose prefix is
	a package renaming.
	(Install_Limited_With_Clauses): Do not install non-limited view when it
	is still incomplete.

2007-04-06  Ed Schonberg  <schonberg@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
	when capturing size information, instead of base type, which for a
	formal array type will be the unconstrained type.
	(Analyze_Formal_Object_Declaration): Add check for illegal default
	expressions for a formal in object of a limited type.
	(Instantiate_Object): Ditto.
	(Check_Formal_Package_Instance): Skip entities that are formal objects,
	because they were defaulted in the formal package and no check applies
	to them.
	(Check_Formal_Package_Instance): Extend conformance check to other
	discrete types beyond Integer.
	(Process_Default): Copy directly the unmatched formal. A generic copy
	has already been performed in Analyze_Formal_Package.
	(Analyze_Associations): If a formal subprogram has no match, check for
	partial parametrization before looking for a default, to prevent
	spurious errors.
	(Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
	not set the instantiation environment before analyzing the actuals.
	Fixes regression on 8515-003 with implementation of AI-133.
	Set_Instance_Env checks whether the generic unit is a predefined
	unit, in which case the instance must be analyzed with the latest Ada
	mode. This setting must take place after analysis of the actuals,
	because the actuals must be analyzed and frozen in the Ada mode extant
	outside of the current instantiation.
	(Save_Env, Restore_Env): Preserve and restore the configuration
	parameters so that predefined units can be compiled in the proper Ada
	mode.
	(Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
	Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
	and Is_Abstract_Type.
	(Analyze_Formal_Package): For better error recovery, Add exception
	handler to catch Instantion_Error, which can be raised in
	Analyze_Associations

2007-04-06  Ed Schonberg  <schonberg@adacore.com>
	    Bob Duff  <duff@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
	prefix type is a discriminated subtype of the type of the formal.
	(Analyze_Allocator): Collect all coextensions regardless of the context.
	Whether they can be allocated statically is determined in exp_ch4.
	(Analyze_Selected_Component): If the prefix is a limited view and the
	non-limited view is available, use the non-limited one.
	(Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
	therefore illegal), suggest a qualified expression rather than a type
	conversion, because a type conversion would be illegal in this context.
	(Anayze_Allocator): Trace recursively all nested allocators so that all
	coextensions are on the corresponding list for the root. Do no mark
	coextensions if the root allocator is within a declaration for a stack-
	allocated object, because the access discriminants will be allocated on
	the stack as well.
	(Analyze_Call): Remove restriction on calls to limited functions for the
	cases of generic actuals for formal objects, defaults for formal objects
	and defaults for record components.
	(Analyze_Allocator): Before analysis, chain coextensions on the proper
	element list. Their expansion is delayed until the enclosing allocator
	is processed and its finalization list constructed.
	(Try_Primitive_Operation): If the prefix is a concurrent type, looks
	for an operation with the given name among the primitive operations of
	the corresponding record type.
	(Analyze_Selected_Component): If the prefix is a task type that
	implements an interface, and there is no entry with the given name,
	check whether there is another primitive operation (e.g. a function)
	with that name.
	(Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
	properly the indexing of a function call written in prefix form, where
	the function returns an array type, and all parameters of the function
	except the first have defaults.
	(Analyze_Equality_Op): If this is a call to an implicit inequality, keep
	the original operands, rather than relocating them, for efficiency and
	to work properly when an operand is overloaded.
	(Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
	Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
	(Analyze_Selected_Component): If the prefix is a private extension, only
	scan the visible components, not those of the full view.
	(Try_Primitive_Operation): If the operation is a procedure, collect all
	possible interpretations, as for a function, because in the presence of
	classwide parameters several primitive operations of the type can match
	the given arguments.

2007-04-06  Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
	tag-indeterminate call to an abstract function, when the left-hand side
	is not classwide.
	(Analyze_Loop_Statement): Improve detection of infinite loops

2007-04-06  Ed Schonberg  <schonberg@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

	* sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
	out of Analyze_Package_Declaration, because processing must be applied
	to package bodies as well, for deferred constants completed by pragmas.
	(Analyze_Package_Declaration): When the package declaration being
	analyzed does not require an explicit body, call Check_Completion.
	(May_Need_Implicit_Body): An implicit body is required when a package
	spec contains the declaration of a remote access-to-classwide type.
	(Analyze_Package_Body): If the package contains RACWs, append the
	pending subprogram bodies generated by exp_dist at the end of the body.
	(New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
	Is_Abstract_Subprogram and Is_Abstract_Type.
	(Preserve_Full_Attributes): The full entity list is not an attribute
	that must be preserved from full to partial view.

	* sem_dist.adb (Add_RAS_Dereference_TSS):
	Change primitive name to _Call so it cannot clash with any legal
	identifier, and be special-cased in Check_Completion.
	Mark the full view of the designated type for the RACW associated with
	a RAS as Comes_From_Source to get proper view switching when installing
	private declarations.
	Provite a placeholder nested package body along with the nested spec
	to have a place for Append_RACW_Bodies to generate the calling stubs
	and stream attributes.

2007-04-06  Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* sem_ch8.adb (Has_Components): If the argument is an incomplete type
	that is a limited view, check the non-limited view if available.
	(Undefined): Refine error message for missing with of Text_IO
	(Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
	to distinguish real missing with cases.
	Fix format of all missing with messages
	(Analyze_Subprogram_Renaming): Emit proper error message on illegal
	renaming as body when renamed entity is abstract.

2007-04-06  Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
	predicate recursive, to handle complex expressions on literals whose
	spurious ambiguity comes from the abstract interpretation of some
	subexpression.
	(Interface_Present_In_Ancestor): Add support to concurrent record
	types.
	(Add_One_Interp,Disambiguate): Split Is_Abstract flag into
	Is_Abstract_Subprogram and Is_Abstract_Type.

2007-04-06  Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
	dereference of a local object R created as a reference to another
	object O, use the access level of O.
	(Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
	rather than local Same_Formal_Type, to check whether protected operation
	overrides an inherited one.
	(Same_Formal_Type): New predicate, used when matching signatures of
	overriding synchronized operations, to handle the case when a formal
	has a type that is a generic actual.
	(Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
	predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
	(Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
	syntactic ambiguities involving indexing of function calls that return
	arrays.
	(Abstract_Interface_List): New subprogram that returns the list of
	abstract interfaces associated with a concurrent type or a
	concurrent record type.
	(Interface_Present_In_Parent): New subprogram used to check if a
	given type or some of its parents implement a given interface.
	(Collect_Abstract_Interfaces): Add support for concurrent types
	with interface types.
	(Has_Abstract_Interfaces): Add support for concurrent types with
	interface types.
	(Is_Parent): New subprogram that determines whether E1 is a parent
	of E2. For a concurrent type its parent is the first element of its
	list of interface types; for other types this function provides the
	same result than Is_Ancestor.
	(Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
	(Collect_Synchronized_Interfaces): Removed because the subprogram
	Collect_Abstract_Interfaces provides this functionality.
	(Collect_Abstract_Interfaces): Minor update to give support to
	concurrent types and thus avoid undesired code duplication.
	(Get_Subprogram_Entity): Handle entry calls.
	(May_Be_Lvalue): Include actuals that appear as in-out parameters in
	entry calls.
	(Enter_Name): Do not give -gnatwh hiding warning for record component
	entities, they never result in hiding.

2007-04-06  Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
	to chain nested components that are allocators for access discriminants
	of the enclosing object.
	Add N_Push and N_Pop nodes
	New field Exception_Label added
	(Local_Raise_Statements): New field in N_Exception_Handler_Node
	(Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
	(Is_Coextension): New flag for allocators, to mark allocators that
	correspond to access discriminants of dynamically allocated objects.
	(N_Block_Statement): Document the fact that the corresponding entity
	can be an E_Return_Statement.
	(Is_Coextension): New flag for allocators.
	Remove all code for DSP option

	* sprint.ads, sprint.adb: Display basic information for class_wide
	subtypes. Add handling of N_Push and N_Pop nodes

2007-04-06  Arnaud Charlet  <charlet@adacore.com>

	* s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
	before propagating exception.

2007-04-06  Olivier Hainque  <hainque@adacore.com>

	* tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
	an address always within the call instruction from a return address.

2007-04-06  Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <botcazou@adacore.com>

	* trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
	expression with a COMPOUND_EXPR including the call instead of emitting
	the call directly here.
	(gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
	high bound is constant and the slice is empty.  Tidy.
	(tree_transform, case N_Op_Not): Handle properly the case where the
	operation applies to a private type whose full view is a modular type.
	(Case_Statement_To_gnu): If an alternative is an E_Constant with an
	Address_Clause, use the associated Expression as the GNAT tree
	representing the choice value to ensure the corresponding GCC tree is
	of the proper kind.
	(maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
	instead of just the operands, as the base GCC stabilize_reference does.
	<CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
	requested; otherwise fail.
	(addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.

2007-04-06  Thomas Quinot  <quinot@adacore.com>

	* uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
	implementation of UI_Div.
	(UI_Div): Reimplement as a call to UI_Div_Rem.
	(UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
	remainder, avoiding the cost of a multiplication and a subtraction.
	(UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
	provides both quotient and remainder in a single computation.
	(UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
	functions for uint.
	(UI_Modular_Inverse): Add a note that the behaviour of this subprogram
	is undefined if the given n is not inversible.

2007-04-06  Olivier Hainque  <hainque@adacore.com>

	* utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
	BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
	opcodes.

2007-04-06  Eric Botcazou  <botcazou@adacore.com>
	    Olivier Hainque  <hainque@adacore.com>

	* utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
	when updating the contents of the old pointer to an unconstrained array.
	(end_subprog_body): Set error_gnat_node to Empty.
	(write_record_type_debug_info): Do not be unduly sparing with our bytes.
	(unchecked_convert): For subtype to base type conversions, require that
	the source be a subtype if it is an integer type.
	(builtin_decls): New global, vector of available builtin functions.
	(gnat_pushdecl): Add global builtin function declaration nodes to the
	builtin_decls list.
	(gnat_install_builtins): Adjust comments.
	(builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
	calling gnat_pushdecl, so that it knows when it handed a builtin
	function declaration node.
	(builtin_decl_for): Search the builtin_decls list.

2007-04-06  Eric Botcazou  <botcazou@adacore.com>

	* s-stchop-vxworks.adb:
	(Stack_Check): Raise Storage_Error if the argument has wrapped around.

2007-04-06  Robert Dewar  <dewar@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* a-diroro.ads: Inserted the pragma Unimplemented_Unit

	* bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
	of files
	Add mention of -Sev (set initialize_scalars option from environment
	variable at run time) in gnatbind usage message.

	* elists.ads, elists.adb: (Append_Unique_Elmt): New procedure

	* fname-uf.ads: Minor comment fix

	* osint.ads: Change pragma Elaborate to Elaborate_All

	* par-load.adb: Add documentation.

	* sem_cat.ads, sem_cat.adb: Minor code reorganization

	* s-parint.ads (RCI_Locator) : Add 'Version' generic formal

	* s-secsta.ads: Extra comments

	* s-soflin.ads: Minor comment fixes

	* s-stratt.ads (Block_Stream_Ops_OK): Removed.

	* s-wchcon.ads: Minor comment addition

	* treepr.adb: Minor change in message
	(Print_Name,Print_Node): Make these debug printouts more robust: print
	"no such..." instead of crashing on bad input.

2007-03-30  Rafael Ávila de Espíndola  <espindola@google.com>

	* trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
	instead of gnat_signed_or_unsigned_type.
	* utils.c (gnat_signed_or_unsigned_type): Remove.
	* misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
	* gigi.h (gnat_signed_or_unsigned_type): Remove

2007-03-09  Roger Sayle  <roger@eyesopen.com>

	* cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
	fold with the result of buildN.
	* decl.c (gnat_to_gnu_entity): Likewise.
	* trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
	* utils.c (finish_record_type, merge_sizes, max_size, convert):
	Likewise.
	* utils2.c (gnat_truthvalue_conversion, compare_arrays,
	nonbinary_modular_operation, build_binary_op, build_unary_op,
	build_cond_expr): Likewise.

	* utils.c (convert): Use fold_build1 when casting values to void.
	* utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
	fold_convert instead of convert when appropriate.

2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>

	* Make-lang.in: Add install-pdf target as copied from
	automake v1.10 rules.

2007-02-28  Andreas Schwab  <schwab@suse.de>

	* Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
	$(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
	(doc/gnat-style.info): Likewise.

2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>

	* gnat-style.texi: Standardize title page.
	* gnat_rm.texi: Likewise.
	* gnat_ugn.texi: Likewise.

2007-02-25  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (annotate_value): Adjust for refactoring of tree_map
	hierarchy.

2007-02-24  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (annotate_value): Adjust for refactoring of tree_map
	hierarchy.

2007-02-21  Ed Schonberg  <schonberg@adacore.com>

	PR ada/18819
	* sem_ch3.adb (Create_Constrained_Components): for a subtype of an
	untagged derived type, add hidden components to keep discriminant
	layout consistent, when a given discriminant of the derived type
	constraints several discriminants of the parent type.

2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* trans.c (call_to_gnu):  Use build_call_list instead of build3 to
	build the call expression.
	(gnat_stabilize_reference_1): Handle tcc_vl_exp.
	* utils.c (max_size) <tcc_exceptional>: Delete.
	<tcc_vl_exp>: New case.
	<tcc_expression>: Delete CALL_EXPR subcase.
	(build_global_cdtor): Use build_call_nary instead of build3.
	* utils2.c (build_call_1_expr): Likewise.
	(build_call_2_expr): Likewise.
	(build_call_0_expr): Likewise.
	(build_call_alloc_dealloc): Likewise.

2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>

	* raise-gcc.c (get_region_description_for, get_call_site_action_for,
	get_action_description_for): Replace _Unwind_Word with _uleb128_t
	and _Unwind_SWord with _sleb128_t.

2007-02-06  Paolo Bonzini  <bonzini@gnu.org>

	* Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
	* decl.c: Include gt-ada-decl.h.
	(annotate_value_cache): New.
	(annotate_value): Use it instead of TREE_COMPLEXITY.

2007-02-03  Kazu Hirata  <kazu@codesourcery.com>

	* misc.c, utils2.c: Fix comment typos.

2007-01-24  Roger Sayle  <roger@eyesopen.com>

	* decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
	TREE_CONSTANT_OVERFLOW.
	(allocatable_size_p, annotate_value): Likewise.
	* trans.c (gnat_to_gnu): Likewise.
	* utils.c (unchecked_convert): Likewise.
	* utils2.c (build_simple_component_ref): Likewise.

2007-01-23  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/30541
	* Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
	(gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
	(gnatboot3): Likewise.
	(GNATBIND): Do not define.
	* Makefile.in (GNATBIND): Do not define.

2007-01-08  Richard Guenther  <rguenther@suse.de>

	* cuintp.c (build_cst_from_int): Use built_int_cst_type.
	* trans.c (gnat_to_gnu): Likewise.



Copyright (C) 2007 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
