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_Declaratio