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

	* s-linux-sparc.ads: New file.
	* gcc-interface/Makefile.in (SPARC/Linux): Use it.

2009-12-04  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (add_decl_expr): At toplevel, mark the
	TYPE_ADA_SIZE field of records and unions.

	* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Length>: Set the
	source location of the node onto the comparison expression if it
	is not cached.

2009-12-03  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_util.adb (Make_CW_Equivalent_Type): Set the
	Is_Class_Wide_Equivalent_Type flag here in lieu of...
	(Make_Subtype_From_Expr): ...here.
	* exp_ch3.adb (Expand_Freeze_Record_Type): Do not set
	Has_Controlled_Component on class-wide equivalent types.
	* freeze.adb (Freeze_Record_Type): Likewise.
	* sem_ch3.adb (Record_Type_Definition): Likewise.

2009-12-01  Pascal Obry  <obry@adacore.com>

	* s-osprim-mingw.adb (Get_Base_Time): Make sure that the base time is
	taken at a clock tick boundary.

2009-12-01  Thomas Quinot  <quinot@adacore.com>

	* g-sechas.ads (GNAT.Secure_Hashes.H."=" on Context): Make abstract.

2009-12-01  Matthew Gingell  <gingell@adacore.com>

	* adadecode.c: Allow compilation when building the run time in the gnat
	runtime.
	(__gnat_decode): Strip the .nnnn suffix from names of nested functions.

	* gcc-interface/Makefile.in: Ada adadecode to LIBGNAT_SRCS and
	LIBGNAT_OBJS.

2009-12-01  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb (Check_Files): Quote the path names as they may include
	spaces.

2009-12-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): If the defining identifier
	has already been declared, it may have been rewritten as a renaming
	declaration.

2009-12-01  Ed Schonberg  <schonberg@adacore.com>

	* einfo.ads: Clarify use of Is_Private_Primitive.
	* sem_ch6.adb (Analyze_Subprogram_Declaration): An operation is a
	private primitive operation only if it is declared in the scope of the
	private controlling type.
	* exp_ch9.adb (Build_Wrapper_Spec): Build wrappers for private
	protected operations as well.

2009-12-01  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Disable front-end
	optimizations in CodePeer mode, to keep the tree as close to the source
	code as possible, and also to avoid inconsistencies between trees when
	using different optimization switches.

2009-12-01  Thomas Quinot  <quinot@adacore.com>

	* scos.ads: Updated specification of source coverage obligation
	information.

2009-12-01  Thomas Quinot  <quinot@adacore.com>

	* g-sercom.ads, g-sercom-mingw.adb, g-sercom-linux.adb,
	a-ststio.adb, s-commun.adb, s-commun.ads, g-socket.adb,
	g-socket.ads (System.Communications.Last_Index): For the case where no
	element has been transferred and Item'First =
	Stream_Element_Offset'First, raise CONSTRAINT_ERROR.

2009-12-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Install_Siblings): A private with_clause on some child
	unit U in an ancestor of the current unit must be ignored if the
	current unit has a regular with_clause on U.

2009-11-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* s-oscons-tmplt.c [__mips && __sgi]: Only define _XOPEN5, IOV_MAX
	if _XOPEN_IOV_MAX is defined.

2009-11-30  Vasiliy Fofanov  <fofanov@adacore.com>

	* vms_data.ads: Add new VMS qualifiers,
	REVERSE_BIT_ORDER/NOREVERSE_BIT_ORDER, to support warnings on bit order
	effects.

2009-11-30  Thomas Quinot  <quinot@adacore.com>

	* exp_ch9.adb, exp_ch9.ads, sem_util.ads: Minor reformatting.

2009-11-30  Gary Dismukes  <dismukes@adacore.com>

	* sem_prag.adb: Fix spelling error.

2009-11-30  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch9.ads (Build_Private_Protected_Declaration): For a protected
	operation that is only declared in a protected body, create a
	corresponding subprogram declaration.
	* exp_ch9.adb (Expand_N_Protected_Body): Create protected body of
	operation in all cases, including for an operation that is only
	declared in the body.
	* sem_ch6.adb: Call Build_Private_Protected_Declaration
	* exp_ch6.adb (Expand_N_Subprogram_Declaration): For an operation
	declared in a protected body, create the declaration for the
	corresponding protected version of the operation.

2009-11-30  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Disable specific expansions
	for Restrictions pragmas, to avoid tree inconsistencies between
	compilations with different pragmas.

2009-11-30  Jerome Lambourg  <lambourg@adacore.com>

	* sem_prag.adb (Check_Duplicated_Export_Name): Allow entities exported
	to CIL to have duplicated export name.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* a-tiinio.adb: Remove extraneous pragma Warnings (Off).

2009-11-30  Thomas Quinot  <quinot@adacore.com>

	* par_sco.adb: Minor reformatting

2009-11-30  Ed Falis  <falis@adacore.com>

	* s-vxwext.ad[s,b], system-vxworks-ppc.ads, s-stchop-vxworks.adb:
	Comment update.

2009-11-30  Ed Schonberg  <schonberg@adacore.com>

	* par_sco.adb (Traverse_Handled_Statement_Sequence): Do not emit SCO's
	for null statements that do not come from source.
	* sinfo.ads: Clarify documentation of Comes_From_Source

2009-11-30  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Add_Source): Use Display_Name for both projects when
	displaying the paths in error message.

2009-11-30  Emmanuel Briot  <briot@adacore.com>

	* adaint.h, adaint.c (file_attributes): force the use of unsigned char.
 	On some platforms, "char" is signed, on others unsigned, so we
 	explicitly specify the one we expect

2009-11-30  Matthew Heaney  <heaney@adacore.com>

	* a-coinve.adb (Insert): Move exception handler closer to point where
	exception can occur.
	Minor reformatting & comment additions.

2009-11-30  Arnaud Charlet  <charlet@adacore.com>

	* freeze.adb (Freeze_Entity): Disable warning on 'Foreign caller must
	pass bounds' for VM targets, not relevant.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* sem_util.adb (Wrong_Type): Diagnose additional case of modular
	missing parens.
	* a-tiinio.adb, a-wtinio.adb, a-ztinio.adb: Minor reformatting

	* exp_util.adb (Kill_Dead_Code): Suppress warning for some additional
	cases.

	* sem_warn.adb (Set_Warning_Flag): Clean up gnatwA list and ensure
	completeness.
	(Set_Dot_Warning_Flag): Ditto for -gnatw.e
	(Set_Dot_Warning_Flag): Implement -gnbatw.v/w.V
	* usage.adb: Add lines for -gnatw.v/w.V

2009-11-30  Emmanuel Briot  <briot@adacore.com>

	* make.adb (Check_Standard_Library): use Full_Source_Name instead of
	direct call to Find_File. The former provides caching of the results, so
	might be more efficient
	(Start_Compile_If_Necessary): Add comment on possible optimization,
	not done for now.

2009-11-30  Thomas Quinot  <quinot@adacore.com>

	* g-sechas.adb: Minor reformatting

2009-11-30  Matthew Heaney  <heaney@adacore.com>

	* a-crbtgo.adb (Delete_Fixup): Add comments explaining why predicates
	were removed.
	* a-cdlili.adb (Vet): Remove always-true predicates.

2009-11-30  Thomas Quinot  <quinot@adacore.com>

	* s-sechas.adb, s-sechas.ads, s-shshco.adb, s-shshco.ads, s-shsh64.adb,
	s-shsh64.ads, s-sehamd.adb, s-sehamd.ads, s-shsh32.adb, s-shsh32.ads,
	s-sehash.adb, s-sehash.ads, g-sechas.adb, g-sechas.ads, g-shshco.adb,
	g-shshco.ads, g-md5.ads, g-sha256.ads, g-shsh64.adb, g-shsh64.ads,
	g-sehamd.adb, g-sehamd.ads, g-sha512.ads, g-sha1.ads, Makefile.rtl,
	g-sha224.ads, g-shsh32.adb, g-shsh32.ads, g-sha384.ads, g-sehash.adb,
	g-sehash.ads: Rename System.Secure_Hashes to GNAT.Secure_Hashes.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* osint.ads: Minor comment update.

2009-11-30  Thomas Quinot  <quinot@adacore.com>

	* s-sechas.adb: Fix swapping error in previous checkin.
	* g-md5.ads, g-sha256.ads, g-sha512.ads, g-sha1.ads, g-sha224.ads,
	g-sha384.ads: Add missing documentation.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* g-sha256.ads, s-sehamd.ads, s-sehamd.adb, g-sha512.ads, g-sha224.ads,
	g-sha384.ads: Minor reformatting

2009-11-30  Emmanuel Briot  <briot@adacore.com>

	* adaint.h (file_attributes): Reduce size of the structure, so that it
	is less costly to store in records.
	* makeutl.adb:
	(Check_Source_Info_In_ALI): use Full_Source_Name instead of a direct
	call to Find_File, since the former provides caching when appropriate,
	which limits the number of system calls in some cases.
	* osint.ads, prj.ads (Source_Data): do not store directly the timestamp,
	but the file attributes since we also need access to the size of the
	ALI file to parse it. This gives an opportunity for saving system calls
	on Unix systems.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb, s-sechas.ads, s-sechas.adb: Minor reformatting.

2009-11-30  Gary Dismukes  <dismukes@adacore.com>

	* sem_prag.adb (Process_Convention): Change formal E to Ent. In the
	case where the pragma's entity argument is a renaming, return the
	entity denoted by the renaming rather than the renamed entity. Loop
	through the homonyms of the original argument entity, rather than the
	homonyms of any renamed entity. Correct call to Generate_Entity to
	pass the homonym.

2009-11-30  Vincent Celier  <celier@adacore.com>

	* impunit.adb: Add packages that were added to the GNAT library:
	GNAT.SHA224, GNAT.SHA256, GNAT.SHA384 and GNAT.SHA512.
	* s-sechas.adb (Fill_Buffer_Copy): Fixes incorrect slice index

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* exp_ch3.adb: Minor reformatting
	* g-md5.ads, g-sha1.ads: Add comment.

2009-11-30  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Makefile.in: Remove handling of libgccprefix, no longer
	needed.

2009-11-30  Pascal Obry  <obry@adacore.com>

	* expect.c: Fix cast to avoid warnings in x86-64 Windows.

2009-11-30  Thomas Quinot  <quinot@adacore.com>

	* gnat_rm.texi, s-sechas.adb, s-sechas.ads, s-shshco.adb,
	s-shshco.ads, g-md5.adb, g-md5.ads, g-sha256.ads, s-shsh64.adb,
	s-shsh64.ads, s-sehamd.adb, s-sehamd.ads, g-sha512.ads, g-sha1.adb,
	g-sha1.ads, Makefile.rtl, g-sha224.ads, g-sha384.ads, s-shsh32.adb,
	s-shsh32.ads, s-sehash.adb, s-sehash.ads: Reimplementation of GNAT.MD5
	and GNAT.SHA1 to factor shared code and avoid unnecessary stack copies.
	Also introduce new functions SHA-{224,256,384,512}

2009-11-30  Jerome Lambourg  <lambourg@adacore.com>

	* exp_ch3.adb (Make_Predefined_Primitive_Specs): Improve comment for
	the Value_Type case.

2009-11-30  Thomas Quinot  <quinot@adacore.com>

	* a-textio.adb: Minor reformatting

2009-11-30  Pascal Obry  <obry@adacore.com>

	* adaint.c: Fix bug in passing parameter.
	* expect.c: Include io.h to get definition of _open_osfhandle

2009-11-30  Javier Miranda  <miranda@adacore.com>

	* exp_ch6.adb, sem_scil.adb (Adjust_SCIL_Node): Add missing management
	of N_Unchecked_Type_Conversion nodes when searching for SCIL nodes.
	(Expand_Call): Adjust decoration of SCIL node associated with relocated
	function call.

2009-11-30  Emmanuel Briot  <briot@adacore.com>

	* prj-env.adb (Add_To_Source_Path): Preserve casing of directories

2009-11-30  Vincent Celier  <celier@adacore.com>

	* opt.ads (No_Split_Units): New flag initialized to False

2009-11-30  Jerome Lambourg  <lambourg@adacore.com>

	* exp_ch7.adb (Needs_Finalization): Add comments.
	* exp_ch3.adb (Make_Predefined_Primitive_Specs): Improve handling of
	CIL Value types.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* osint.adb, a-rttiev.adb: Minor reformatting.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Remove list of warning letters, and refer instead to
	using gnatmake to get a brief list.

	* debug.adb: Document -gnatd.i to disable pragma Warnings
	* par-prag.adb, sem_prag.adb: Recognize -gnatd.i to disable Warnings
	pragma.
	* vms_data.ads: Add /NOWARNINGS_PRAGMS for -gnatd.i
	
2009-11-30  Geert Bosch  <bosch@adacore.com>

	* a-ngelfu.adb (Sin): Correct spelling of sine in comment.

2009-11-30  Vincent Celier  <celier@adacore.com>

	* gnatls.adb: Do not call Get_Target_Parameters in Verbose_Mode, as it
	is not needed and gnatls fails when called with -v -nostdinc.

2009-11-30  Emmanuel Briot  <briot@adacore.com>

	* osint.adb, osint.ads (File_Time_Stamp): new subprogram.

2009-11-30  Ed Schonberg  <schonberg@adacore.com>

	* gnat_rm.texi, gnat_ugn.texi: Document new syntax for pragma Annotate

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* scans.ads (Wide_Wide_Character_Found): New flag
	* scn.adb (Post_Scan): Set new flag Has_Wide_Wide_Character
	* scng.adb (Set_String): Set new flag Wide_Wide_Character_Found
	(Set_String): Fix failure to reset Wide_Character_Found
	* sinfo.adb (Has_Wide_Wide_Character): New flag in N_String_Literal
	* sinfo.ads (Has_Wide_Wide_Character): New flag in N_String_Literal
	* a-ngelfu.adb: Minor reformatting & code reorganization.
	* usage.adb: Fix typo in -gnatw.W line

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* osint.adb, prj-nmsc.adb, sem_prag.adb, sem_util.adb: Minor
	reformatting.
	* csinfo.adb: Terminate run if improper use of reserved flag
	* sinfo.ads, sinfo.adb (Is_Accessibility_Actual): Don't use reserved
	Flag12, used Flag13 instead.
	
2009-11-30  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb (Check_Files): Recognize documented switches that have a
	separate parameter.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* sem_util.ads: Minor reformatting
	* errout.adb: Minor reformatting
	Minor code reorganization (use N_Subprogram_Specification to simplify)
	* exp_ch7.adb: Add comment.

2009-11-30  Thomas Quinot  <quinot@adacore.com>

	* put_scos.adb (Put_SCOs): Do not generate a SCO unit header for a unit
	that has no SCOs.
	* scos.ads: Minor reformatting

2009-11-30  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb: Second unanalyzed parameter of Annotate is optional.

2009-11-30  Eric Botcazou  <ebotcazou@adacore.com>

	* init.c (__gnat_adjust_context_for_raise, Linux version): Add guard
	for null PC saved in the context.

2009-11-30  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-calend.adb (Day_Of_Week): Rewritten. The routine determines the
	number of days from the Ada Epoch to the input date while ensuring that
	both dates are in the same time zone.

2009-11-30  Emmanuel Briot  <briot@adacore.com>

	* clean.adb ("-eL"): Also set Follow_Links_For_Dirs, to match what is
	done in other project-aware tools like gnatmake and gprbuild.

2009-11-30  Jerome Lambourg  <lambourg@adacore.com>

	* exp_ch3.adb (Make_Predefined_Primitive_Specs): Take care of CIL
	ValueTypes.
	* exp_ch7.adb (Needs_Finalization): Do not finalize CIL valuetypes.
	* sem_util.adb (Is_Value_Type): Protect against invalid calls to Chars
	(Is_Delegate): New method used for CIL.
	* sem_util.ads (Is_Delegate): New method for CIL handling.
	(Is_Value_Type): Improve documentation.

2009-11-30  Ed Schonberg  <schonberg@adacore.com>

	* errout.adb (Unwind_Internal_Type): Improve error reporting if the
	type is an anonymous access to subprogram that is the type of a formal
	in a subprogram spec.

2009-11-30  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Check_Interfaces): In a Stand-Alone Library project, if
	attribute Interfaces is not declared, then Library_Interface should
	define the interfaces.

2009-11-30  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb: New semantics for Annotate.

2009-11-30  Tristan Gingold  <gingold@adacore.com>

        * gcc-interface/Makefile.in: Do not link with -static-libgcc on Darwin.

2009-11-30  Emmanuel Briot  <briot@adacore.com>

	* gnat_ugn.texi: Extend doc for -eL

2009-11-30  Vincent Celier  <celier@adacore.com>

	* osint.adb (Executable_Name (File_Name_Type)): Put the Name in the
	Name_Buffer before testing for a dot in the Name.

2009-11-30  Vincent Celier  <celier@adacore.com>

	* prj-part.adb (Project_Path_Name_Of): Resolve links for final result
	if -eL has been specified.

2009-11-30  Vincent Celier  <celier@adacore.com>

	* osint.adb (Executable_Name): Test the name instead of the name buffer
	to check if there is a dot in the given name.

2009-11-30  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi: Update gnatcheck doc.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sem_disp.adb, usage.adb: Minor reformatting

2009-11-30  Vasiliy Fofanov  <fofanov@adacore.com>

	* gnat_ugn.texi: Minor editing.

2009-11-30  Emmanuel Briot  <briot@adacore.com>

	* prj-nmsc.adb (Search_Directories): when -eL was not specified, assume
	that no directory matches the naming scheme for sources.

2009-11-30  Emmanuel Briot  <briot@adacore.com>

	* prj.adb, prj.ads, prj-nmsc.adb (Has_Multi_Unit_Sources): New field in
	project_data.

2009-11-30  Vincent Celier  <celier@adacore.com>

	* osint.adb (Executable_Name): Correctly decide if the executable
	suffix should be added when Only_If_No_Suffix is True.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* frontend.adb, gnatlink.adb, prj-conf.adb, prj-tree.adb,
	prj-tree.ads: Minor reformatting

2009-11-30  Vincent Celier  <celier@adacore.com>

	* gnatlink.adb (Process_Args): Call Executable_Name on argument of -o
	with Only_If_No_Suffix set to True.
	* osint.adb (Executable_Name): Do not add executable suffix if there is
	already a suffix and Only_If_No_Suffix is True.
	* osint.ads (Executable_Name): New Boolean parameter Only_If_No_Suffix,
	defaulted to False.

2009-11-30  Javier Miranda  <miranda@adacore.com>

	* exp_atag.adb (Build_TSD): Change argument name because the actual is
	now the address of a tag (instead of the tag). Update implementation
	accordingly.
	(Build_CW_Membership): New implementation. Converted into a procedure
	because it has an additional out mode parameter. Its implementation has
	been rewritten to improve the generated code but also to facilitate
	referencing the relocated object node in the caller.
	* exp_atag.ads (Build_CW_Membership): Update profile and documentation.
	* sinfo.ads (N_SCIL_Membership_Test) New_Node.
	(SCIL_Tag_Value): New field of N_SCIL_Membership_Test nodes.
	(Is_Syntactic_Field): Add entry of new node.
	(SCIL_Tag_Value/Set_SCIL_Tag_Value): New subprograms.
	* sinfo.adb (SCIL_Related_Node, SCIL_Entity): Update assertions to
	handle N_SCIL_Membership_Test nodes.
	(SCIL_Tag_Value/Set_SCIL_Tag_Value): New subprograms.
	* sem.adb (Analyze): Add null management for new node.
	* sem_scil.adb (Find_SCIL_Node): Add null management for new node.
	(Check_SCIL_Node): Add checks of N_SCIL_Membership_Test nodes.
	* exp_ch4.adb (Tagged_Membership): Change profile from function to
	procedure. Add generation of SCIL node associated with class-wide
	membership test.
	(Expand_N_In): Complete decoration of SCIL nodes.
	* exp_intr.adb (Expand_Dispatching_Constructor_Call): Tune call to
	Build_CW_Membership because its profile has been changed.
	* exp_util.adb (Insert_Actions): Add null management for new node.
	* sprint.adb (Sprint_Node_Actual): Handle new node.
	* gcc-interface/trans.c Add no processing for N_SCIL_Membership_Test
	nodes.
	* gcc-interface/Make-lang.in: Update dependencies.

2009-11-30  Ed Schonberg  <schonberg@adacore.com>

	* opt.ads: New flags Init_Or_Norm_Scalars_Config,
	Initialize_Scalars_Config, to capture the presence of the corresponding
	pragmas in a configuration file.
	* opt.adb (Register_, Save_, Set_, Restore_Opt_Configuration_Switches):
	handle new flags so that they are restored for each compilation unit.
	* frontend.adb: At the end of compilation, scan the context of the main
	unit to recover occurrences of pragma Initialize_Scalars, to annotate
	the ALI file accordingly.

2009-11-30  Vincent Celier  <celier@adacore.com>

	* prj-tree.ads: Minor comment updates
	* prj-tree.adb: Minor reformatting

2009-11-30  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Derive_Subprogram): Indicate that an inherited
	predefined control operation is hidden if the parent type is not
	visibly controlled.
	* sem_ch6.adb (Check_Overriding_Indicator): Do not report error if
	overridden operation is not visible, as may be the case with predefined
	control operations.
	* sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on
	non-overriding control operation when type is not visibly controlled,
	if the subprogram has an explicit overriding indicator.
	* sem_util.ads, sem_util.adb (Is_Visibly_Controlled): Moved here from
	sem_disp.adb.

2009-11-30  Emmanuel Briot  <briot@adacore.com>

	* prj-tree.adb (Create_Attribute): Fix handling of VMS and Windows
	* prj-attr.ads: Minor comment updates

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Document pragma Short_Circuit

2009-11-30  Emmanuel Briot  <briot@adacore.com>

	* prj-conf.adb, prj-tree.adb, prj-tree.ads (Create_Attribute): Now set
	the index either on the attribute or on its value, depending on the
	kind of the attribute. Done to match recent changes in Prj.PP that were
	not synchronized with this function.

2009-11-30  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in: Fix typo.
	Update dependencies.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Add documentation for attribute Result.

2009-11-30  Arnaud Charlet  <charlet@adacore.com>

	* s-osinte-hpux.ads, s-osinte-aix.ads, s-osinte-solaris-posix.ads,
	s-osinte-tru64.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads
	(Get_Page_Size): Update comment since Get_Page_Size is now required.

2009-11-30  Jerome Lambourg  <lambourg@adacore.com>

	* freeze.adb: Disable Warning on VM targets concerning C Imports, not
	relevant.

2009-11-30  Bob Duff  <duff@adacore.com>

	* sprint.adb (Source_Dump): Minor comment fix.
	(Write_Itype): When writing a string literal subtype, use Expr_Value
	instead of Intval to get the low bound.

2009-11-30  Vincent Celier  <celier@adacore.com>

	* gnatlink.adb (Process_Args): Do not call Executable_Name on arguments
	of switch -o.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Expand_N_Op_And): Implement pragma Short_Circuit_And_Or
	(Expand_N_Op_Or): Implement pragma Short_Circuit_And_Or
	* opt.ads (Short_Circuit_And_Or): New flag
	* par-prag.adb: Add dummy entry for pragma Short_Circuit_And_Or
	* sem_prag.adb: Implement pragma Short_Circuit_And_Or
	* snames.ads-tmpl: Add entries for pragma Short_Circuit_And_Or

2009-11-30  Arnaud Charlet  <charlet@adacore.com>

	* s-taprop-posix.adb: Fix casing.
	* s-osinte-tru64.adb: Complete previous check-in.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Document pragma Compiler_Unit
	* s-bitops.adb, s-restri.adb, g-htable.adb, s-restri.ads,
	a-comlin.ads, a-strhas.ads, s-strhas.adb, s-parame.adb,
	s-parame.ads, a-clrefi.adb, a-clrefi.ads, a-ioexce.ads: Supply missing
	Compiler_Unit pragmas.
	* freeze.adb (Freeze_Entity): Improve message for 8-bit boolean passed
	to C.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* makeutl.adb, makeutl.ads, prj-proc.adb, prj.adb, prj.ads: Minor
	reformatting.

2009-11-30  Thomas Quinot  <quinot@adacore.com>

	* osint.adb: Minor reformatting

2009-11-30  Vincent Celier  <celier@adacore.com>

	* makeutl.ads, makeutl.adb (Base_Name_Index_For): New function to get
	the base name of a main without the extension, with an eventual source
	index.
	(Mains.Get_Index): New procedure to set the source index of a main
	(Mains.Get_Index): New function to get the source index of a main
	* prj-attr.adb: New attributes Config_Body_File_Name_Index,
	Config_Spec_File_Name_Index, Multi_Unit_Object_Separator and
	Multi_Unit_Switches.
	* prj-nmsc.adb (Process_Compiler): Takle into account new attributes
	Config_Body_File_Name_Index, Config_Spec_File_Name_Index,
	Multi_Unit_Object_Separator and Multi_Unit_Switches.
	Allow only one character for Multi_Unit_Object_Separator.
	* prj-proc.adb (Process_Declarative_Items): Take into account the
	source indexes in indexes of associative array attribute declarations.
	* prj.adb (Object_Name): New function to get the object file name for
	units in multi-unit sources.
	* prj.ads (Language_Config): New components Multi_Unit_Switches,
	Multi_Unit_Object_Separator Config_Body_Index and Config_Spec_Index.
	(Object_Name): New function to get the object file name for units in
	multi-unit sources.
	* snames.ads-tmpl: New standard names Config_Body_File_Name_Index,
	Config_Spec_File_Name_Index, Multi_Unit_Object_Separator and
	Multi_Unit_Switches.

2009-11-30  Arnaud Charlet  <charlet@adacore.com>

	* s-tassta.adb: Update comment.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* a-ngelfu.adb: Minor code reorganization.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* osint.ads, prj.adb, prj.ads: Minor reformatting
	* s-stchop.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
	s-taprop-vms.adb, s-taprop-linux.adb, s-taprop-solaris.adb,
	s-strxdr.adb, s-taprop-irix.adb, s-osinte-hpux-dce.adb,
	s-osinte-tru64.adb, s-taenca.adb, s-taprop-hpux-dce.adb, s-stausa.adb,
	s-taprop-posix.adb: Minor code reorganization (use conditional
	expressions).

2009-11-30  Bob Duff  <duff@adacore.com>

	* g-sttsne-locking.adb (Copy_Service_Entry): Complete previous change.

2009-11-30  Bob Duff  <duff@adacore.com>

	* socket.c: Add more accessor functions for struct servent (need
	setters as well as getters).
	* g-sothco.ads (Servent): Declare interfaces to C setter functions for
	struct servent.
	* g-sttsne-locking.adb (Copy_Service_Entry): Use setter functions for
	struct servent.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* s-stchop-vxworks.adb: Add comment.

2009-11-30  Emmanuel Briot  <briot@adacore.com>

	* make.adb, prj.adb, prj.ads (Compute_All_Imported_Projects): Now acts
	on the whole tree, to better share code with gprbuild.
	(Length): New subprogram, to share code in gprbuild.
	(Project_Data): Remove fields that are only needed when compiling a
 	project in gprbuild (where we use local variables instead)
	* osint.adb, osint.ads: Added minor comment on memory management

2009-11-30  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi: Update gnatcheck doc.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	make.adb, prj-makr.adb, g-sothco.ads: Minor reformattting
	* s-taprop-dummy.adb: Minor code reorganization (raise with msgs start
	with lower case).
	* i-vxwoio.adb, g-dirope.adb, g-sercom-linux.adb,
	g-enblsp-vms-alpha.adb, g-regist.adb, s-imgcha.adb, s-tarest.adb,
	s-taprop-mingw.adb, g-exctra.adb, g-expect.adb, g-comlin.adb,
	g-debpoo.adb, g-expect-vms.adb, g-pehage.adb, g-trasym-vms-alpha.adb,
	g-enblsp-vms-ia64.adb, s-fatgen.adb, s-fileio.adb: Minor code
	reorganization (use conditional expressions).

2009-11-30  Vincent Celier  <celier@adacore.com>

	* prj-makr.adb (Source_Files): New hash table to keep track of source
	file names.
	(Finalize): Avoid putting several times the same source file name
	in the source list file.
	* prj-pp.adb (Print): Fix a bug in the placement of "at nn" for
	associative array indexes.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* g-dyntab.ads: Add missing pragma Compiler_Unit

2009-11-30  Thomas Quinot  <quinot@adacore.com>

	* s-crtrun.ads, s-crtl.ads, g-stseme.adb, Makefile.rtl, s-fileio.adb
	(System.CRTL.Runtime): New unit, to contain parts of s-crtl that are
	used in the Ada runtime but can't be used in the compiler because of
	bootstrap issues.
	* socket.c, s-oscons-tmplt.c, g-sothco.ads
	(System.OS_Constants.SIZEOF_struct_servent): New constant.
	Use s-oscons constant instead of external variable to get size of
	struct hostent.

2009-11-30  Thomas Quinot  <quinot@adacore.com>

	* s-crtl.ads, g-stseme.adb, s-fileio.adb (System.CRTL.strerror): Change
	return type to Interfaces.C.Strings.chars_ptr to eliminate need for
	dubious unchecked conversion at call sites.
	* s-errrep.adb, s-errrep.ads, Makefile.rtl (System.Error_Reporting):
	Remove obsolete, unused runtime unit.
	* gcc-interface/Make-lang.in: Update dependencies.
	* gcc-interface/Makefile.in: Remove VMS specialization of s-crtl, not
	required anymore.

2009-11-30  Vincent Celier  <celier@adacore.com>

	* gnatlink.adb: Delete an eventual existing executable file, in case it
	is a symbolic link, to avoid modifying the target of the symbolic link.

2009-11-30  Bob Duff  <duff@adacore.com>

	* socket.c: Add accessor functions for struct servent.
	* g-sothco.ads (Servent): Declare interfaces to C accessor functions
	for struct servent.
	* g-socket.adb (To_Service_Entry): Use accessor functions for struct
	servent.

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* g-arrspl.adb: Minor reformatting
	* g-dyntab.adb: Add missing pragma Compiler_Unit

2009-11-30  Thomas Quinot  <quinot@adacore.com>

	* s-crtl.ads, s-oscons-tmplt.c: Fix support for VMS
	* make.adb, g-comlin.ads, exp_ch6.adb: Minor reformatting

2009-11-30  Robert Dewar  <dewar@adacore.com>

	* bcheck.adb, gnatlink.adb, make.adb, makeutl.adb, osint.adb,
	osint.ads, prj-ext.adb, sem_case.adb: Minor reformatting
	* g-alleve.adb: Minor code reorganization (use conditional expressions)

2009-11-30  Matthew Heaney  <heaney@adacore.com>

	* a-crbtgo.adb (Delete_Fixup): Changed always-true predicates to
	assertions.

2009-11-30  Thomas Quinot  <quinot@adacore.com>

	* a-tasatt.adb, s-crtl.ads, s-taprop-dummy.adb (System.CRTL.malloc32,
	System.CRTL.realloc32): Remove VMS-specific routines.
	(Ada.Task_Attributes.Reference): Remove unreachable code.
	(System.Task_Primitives.Operations.Initialize, dummy version):
	Use plain Program_Error rather than call to
	System.Error_Reporting.Shutdown.

2009-11-30  Thomas Quinot  <quinot@adacore.com>

	* s-oscons-tmplt.c, xoscons.adb: Add new constants in preparation for
	sharing s-crtl across all platforms.

2009-11-30  Thomas Quinot  <quinot@adacore.com>

	* s-commun.adb, s-commun.ads: New internal support unit,
	allowing code sharing between GNAT.Sockets and
	GNAT.Serial_Communication.
	* g-sercom.ads, g-sercom-mingw.adb, g-sercom-linux.adb,
	g-socket.adb (GNAT.Sockets.Last_Index): Move to System.Communication.
	(GNAT.Serial_Communication.Read): Handle correctly the case where no
	data was read, and Buffer'First = Stream_Element_Offset'First.
	* Makefile.rtl: Add entry for s-commun
	* g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
	g-socthi-vxworks.ads, g-stseme.adb, g-socthi-mingw.ads,
	g-socthi.adb, g-socthi.ads (GNAT.Sockets.Thin.Socket_Error_Message):
	Reimplement in terms of System.CRTL.strerror.

2009-11-26  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (copy_type): Unshare the language-specific data
	and the contents of the language-specific slot if needed.

2009-11-26  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gnat_to_gnu) <N_In>: Set the source location
	of the operator on both branches of the test in the generic case.

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

	* gcc-interface/trans.c (unchecked_conversion_lhs_nop): Rename into...
	(unchecked_conversion_nop): ...this.  Handle actual parameters.
	(gnat_to_gnu): Adjust for above renaming.

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

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Type>:
	Translate regular boolean types into BOOLEAN_TYPEs.

2009-11-24  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_util.adb (Set_Debug_Info_Needed): For an E_Class_Wide_Subtype,
	also set the flag on the Equivalent_Type.
	* gcc-interface/utils.c (finish_record_type): Replace DO_NOT_FINALIZE
	parameter with DEBUG_INFO_P.  Rename FIELDLIST into FIELD_LIST.
	(rest_of_record_type_compilation): Rename FIELDLIST into FIELD_LIST.
	(build_vms_descriptor32): Adjust call to finish_record_type.
	(build_vms_descriptor): Likewise.
	(build_unc_object_type): Likewise.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust calls to
	finish_record_type and components_to_record.
	(make_packable_type): Adjust call to finish_record_type.
	(maybe_pad_type): Likewise.  Tweak condition.
	(components_to_record): Likewise.  Replace DO_NOT_FINALIZE parameter
	with MAYBE_UNUSED.  Adjust recursive call.
	(create_variant_part_from): Adjust call to finish_record_type.  Do not
	call rest_of_record_type_compilation on the new record types.
	* gcc-interface/trans.c (gigi): Adjust call to finish_record_type.
	* gcc-interface/gigi.h (finish_record_type): Adjust prototype and
	comment.
	(rest_of_record_type_compilation): Adjust comment.

2009-11-24  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_util.adb (Make_CW_Equivalent_Type): Do not mark the type as
	frozen for targets that do not require front-end layout.
	(New_Class_Wide_Subtype): Always reset the freezing status to False.
	* exp_ch8.adb: Do not 'with' Targparm.
	(Expand_N_Object_Renaming_Declaration): Always freeze a class-wide
	subtype that has been built from the expression.
	* exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
	class wide, freeze the implicit type that has been built from the
	expression at the dereference point.
	* freeze.adb (Freeze_Entity): Adjust comment.
	* gcc-interface/decl.c (Gigi_Equivalent_Type) <E_Class_Wide_Type>:
	Remove useless test.
	* gcc-interface/trans.c (process_freeze_entity): Do not special-case
	class-wide subtypes.

	* s-osinte-aix.adb (clock_gettime): Fix comment.
	* s-osinte-darwin.adb (clock_gettime): Likewise.

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

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Pass the list
	of attributes when building the corresponding variable of a constant.
	* gcc-interface/utils.c (create_var_decl_1): Do not process attributes
	for constants.

2009-11-23  Laurent GUERBY  <laurent@guerby.net>
            Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/42153
	* s-osinte-linux.ads (struct_timeval): Delete.
	* s-osinte-hpux.ads (struct_timeval, To_Duration, To_Timeval): Delete.
	* s-osinte-kfreebsd-gnu.ads: Likewise.
	* s-osinte-rtems.ads: Likewise.
	* s-osinte-aix.ads: Likewise.
	* s-osinte-hpux-dce.ads: Likewise.
	* s-osinte-darwin.ads: Likewise.
	* s-osinte-solaris-posix.ads: Likewise.
	* s-osinte-irix.ads: Likewise.
	* s-osinte-solaris.ads: Likewise.
	* s-osinte-hpux-dce.adb (To_Duration, To_Timeval): Delete.
	* s-osinte-irix.adb: Likewise.
	* s-osinte-solaris.adb: Likewise.
	* s-osinte-rtems.adb: Likewise.  Minor reformatting.
	* s-osinte-aix.adb (To_Duration, To_Timeval): Delete.
	(clock_gettime): Use cal.c's timeval_to_duration.
	* s-osinte-darwin.adb: Likewise.

2009-11-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* adaint.h: Assume large file support on IRIX only if _LFAPI.

2009-11-21  Laurent GUERBY  <laurent@guerby.net>
            Eric Botcazou  <ebotcazou@adacore.com>

	* s-osinte-linux.ads (struct_timeval, To_Duration, To_Timeval,
	gettimeofday): Delete.
	* s-osinte-posix.adb (To_Duration, To_Timeval): Delete.
	* s-osprim-posix.adb (struct_timezone, struct_timeval, gettimeofday):
	Delete.
	(Clock): Use cal.c's timeval_to_duration.
	* s-taprop-linux.adb (Monotonic_Clock): Likewise.

2009-11-12  Eric Botcazou  <ebotcazou@adacore.com>
            Laurent GUERBY  <laurent@guerby.net>

	* init.c (GNU/Linux Section): Enable for all architectures.

2009-11-10  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/20548
	* system-linux-alpha.ads (Stack_Check_Probes): Set to true.
	* system-linux-hppa.ads (Stack_Check_Probes): Likewise.
	* system-linux-sparc.ads (Stack_Check_Probes): Likewise.
	* system-linux-sparcv9.ads (Stack_Check_Probes): Likewise.

2009-11-10  Eric Botcazou  <ebotcazou@adacore.com>

	* system-linux-alpha.ads (AAMP, Compiler_System_Version, OpenVMS,
	Front_End_ZCX_Support, High_Integrity_Mode, Long_Shifts_Inlined):
	Delete.
	(Stack_Check_Limits, Always_Compatible_Rep): New.
	* system-linux-mips.ads (AAMP, Compiler_System_Version, OpenVMS,
	Front_End_ZCX_Support, High_Integrity_Mode, Long_Shifts_Inlined):
	Delete.
	(Stack_Check_Limits, Always_Compatible_Rep): New.
	* system-linux-mips64el.ads (AAMP, Compiler_System_Version, OpenVMS,
	Functions_Return_By_DSP, Front_End_ZCX_Support, High_Integrity_Mode,
	Long_Shifts_Inlined): Delete.
	(Stack_Check_Limits, Always_Compatible_Rep): New.
	* system-linux-mipsel.ads (AAMP, Compiler_System_Version, OpenVMS,
	Front_End_ZCX_Support, High_Integrity_Mode, Long_Shifts_Inlined):
	Delete.
	(Stack_Check_Limits, Always_Compatible_Rep): New.
	* system-linux-s390.ads (AAMP, Compiler_System_Version, OpenVMS,
	Front_End_ZCX_Support, High_Integrity_Mode, Long_Shifts_Inlined):
	Delete.
	(Stack_Check_Limits, Always_Compatible_Rep): New.
	* system-linux-s390x.ads (AAMP, Compiler_System_Version, OpenVMS,
	Front_End_ZCX_Support, High_Integrity_Mode, Long_Shifts_Inlined):
	Delete.
	(Stack_Check_Limits, Always_Compatible_Rep): New.
	* system-linux-sh4.ads (Stack_Check_Limits, Always_Compatible_Rep):
	New.
	* system-linux-sparc.ads (AAMP, Compiler_System_Version, OpenVMS,
	Front_End_ZCX_Support): Delete.
	(Stack_Check_Limits, Always_Compatible_Rep): New.
	* system-linux-sparcv9.ads (AAMP, Compiler_System_Version, OpenVMS,
	Front_End_ZCX_Support, High_Integrity_Mode, Long_Shifts_Inlined):
	Delete.
	(Stack_Check_Limits, Always_Compatible_Rep): New.
	* system-rtems.ads (OpenVMS): Delete.
	(Stack_Check_Limits, Always_Compatible_Rep): New.

2009-11-08  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (make_packable_type): Fix oversight.
	(gnat_to_gnu_field): Do not attempt to change the form of the type
	if the field requires strict alignment.  Always change the form of
	the type if the specified size is smaller than its size.

2009-11-05  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (gnat_type_for_mode): Handle vector modes.

2009-11-05  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (lvalue_required_p) <N_Unchecked_Conversion>:
	New case.

2009-10-30  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (MAX_FIXED_MODE_SIZE): Delete.
	(create_field_decl): Update description.  In a packed record, round
	the size up to a byte boundary only if the field's type has BLKmode.
	* gcc-interface/gigi.h (create_field_decl): Update description.

2009-10-30  Emmanuel Briot  <briot@adacore.com>

	* make.adb (Start_Compile_If_Possible): Compute location of resulting
	ALI file in this procedure instead of after the compilation itself,
	since the current directory might have changed in between when using
	-j<n>.

	* osint.ads: Addded missing alignment clause.

	* adaint.c, adaint.h, osint.adb (__gnat_reset_attributes,
	__gnat_size_of_file_attributes): Rename reset_attributes and
	size_of_file_attributes.

2009-10-30  Javier Miranda  <miranda@adacore.com>

	* sem_scil.adb (Adjust_SCIL_Node): Add missing management of sequences
	of statements when searching for SCIL nodes.

2009-10-30  Tristan Gingold  <gingold@adacore.com>

	* gnatlink.adb, link.c: By default use shared libgcc on darwin.

2009-10-30  Emmanuel Briot  <briot@adacore.com>

	* make.adb, osint.adb (Add_Lib_Search_Dir): Do not add if dir is
	already in the list.
	This saves system calls when looking for ALI files
	(Scan_Make_Args): The parameter to gnatmake's -D is now converted to an
	absolute PATH (so that the above improvement properly occurs if both
	-D<dir> and -aO<dir> are specified).

2009-10-30  Thomas Quinot  <quinot@adacore.com>

	* a-direct.adb: Minor reformatting

2009-10-30  Emmanuel Briot  <briot@adacore.com>

	* make.adb, adaint.c, adaint.h, osint.adb, osint.ads, bcheck.adb
	(*_attr): new subprograms.
	(File_Length, File_Time_Stamp, Is_Writable_File): new subprograms
	(Read_Library_Info_From_Full, Full_Library_Info_Name,
	Full_Source_Name): Now benefit from a previous cache of the file
	attributes, to further save on system calls.
	(Smart_Find_File): now also cache the file attributes. This makes the
	package File_Stamp_Hash_Table useless, and it was removed.
	(Compile_Sources): create subprograms for the various steps of the main
	loop, for readibility and to avoid sharing variables between the
	various steps.

2009-10-30  Emmanuel Briot  <briot@adacore.com>

	* make.adb, osint.adb, osint.ads (Library_File_Stamp): Removed, since
	unused.
	(Read_Library_Info_From_Full): New subprogram.

2009-10-30  Robert Dewar  <dewar@adacore.com>

	* a-tideio.adb: Minor reformatting
	* a-wtdeio.adb, a-ztdeio.adb: Update comments, code clean up.

	* a-reatim.adb, a-tideau.adb, a-ngelfu.adb, a-ztdeau.adb, a-ngrear.adb,
	a-wtedit.adb, a-ststio.adb, a-ztedit.adb: Minor code reorganization
	(use conditional expressions).

2009-10-30  Ed Schonberg  <schonberg@adacore.com>

	* gnat_ugn.texi: Additional info on gnatw.i and gnatw.I

	* sem_case.adb: Improved error message.

2009-10-30  Emmanuel Briot  <briot@adacore.com>

	* a-direct.adb, gnatcmd.adb, gnatname.adb, makeutl.adb, opt.ads,
	osint.adb, prj-ext.adb, switch-m.adb (Follow_Links_For_Dirs): Now
	defaults to False, and controlled by -eL.
	* a-direct.adb: Add comments.
	* osint.adb (File_Stamp): Avoid unneeded duplicate system call

2009-10-30  Robert Dewar  <dewar@adacore.com>

	* sem_res.adb (Resolve_Type_Conversion): Avoid false positive when
	converting non-static subtype to "identical" static subtype.

2009-10-30  Ed Schonberg  <schonberg@adacore.com>

	* usage.adb: Add -gnatw.i switch.

2009-10-30  Vincent Celier  <celier@adacore.com>

	* xsnamest.adb: Update comments with regards to the template files
	snames.*.tmpl

2009-10-30  Bob Duff  <duff@adacore.com>

	* s-fileio.adb (Errno_Message): Suppress VMS-specific warning.

2009-10-30  Ed Schonberg  <schonberg@adacore.com>

	* sem_case.adb (Check_Choices): Add explanatory message when there are
	missing alternatives when the required range of alternatives is given
	by the base type of the case expression or discriminant in a variant
	part.

	* opt.ads: New flag Warn_On_Overlap, to enable warnings on potentially
	dangerous overlap between actuals in a call, activated by -gnatw.i
	* sem_warn.adb (Set_Dot_Warning_Switch): set flag.
	(Warn_On_Overlapping_Actuals): use new flag.

	* gnat_ugn.texi: Document -gnatw.i, warning on overlapping actuals

2009-10-30  Robert Dewar  <dewar@adacore.com>

	* exp_aggr.adb, exp_ch9.adb: Minor reformatting

2009-10-29  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Do not
	create integer types with precision 0.

2009-10-29  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/41870
	* gcc-interface/decl.c (array_type_has_nonaliased_component): Swap
	parameters and rewrite comments.  For a derived type, return the
	setting of its parent type.
	(gnat_to_gnu_entity): Do an alias set copy for derived types if they
	are composite.  Adjust calls to above function.

2009-10-29  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Object_Size>: Do not
	return the RM size for padded types.

2009-10-28  Robert Dewar  <dewar@adacore.com>

	* sem_type.adb: Minor reformatting

2009-10-28  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch9.adb (Build_Task_Proc_Specification): Generate a different
	suffix for task type bodies.

2009-10-28  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb (Convert_Aggr_In_Allocator): Do not look for a
	finalization list if the designated type requires no control actions,
	to prevent a useless semantic dependence on ada.tags.

2009-10-28  Bob Duff  <duff@adacore.com>

	* s-fileio.adb: Give more information in exception messages.

2009-10-28  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Document new -gnatyt requirement for space after right
	paren if next token starts with digit or letter.
	* styleg.adb (Check_Right_Paren): New rule for space after if next
	character is a letter or digit.

2009-10-28  Thomas Quinot  <quinot@adacore.com>

	* s-crtl.ads (System.CRTL.strerror): New function.

2009-10-28  Ed Schonberg  <schonberg@adacore.com>

	* sem_type.adb: Add guard to recover some type errors.

2009-10-28  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Add_To_Or_Remove_From_List): New name of procedure
	Add_If_Not_In_List to account to the fact that a directory may be
	removed from the list. Only remove directory if Removed is True.

2009-10-28  Gary Dismukes  <dismukes@adacore.com>

	* a-textio.ads, a-textio.ads: Put back function EOF_Char in private
	part. Put back body of function EOF_Char.
	* a-tienau.adb: Remove with of Interfaces.C_Streams and change EOF back
	to EOF_Char.

2009-10-28  Emmanuel Briot  <briot@adacore.com>

	* prj-tree.adb (Free): Fix memory leak.

2009-10-28  Thomas Quinot  <quinot@adacore.com>

	* s-fileio.adb: Minor reformatting

2009-10-28  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in: Update dependencies.

2009-10-28  Robert Dewar  <dewar@adacore.com>

	* exp_attr.adb, exp_ch9.adb, prj-nmsc.adb, tbuild.adb, ali.adb,
	types.ads: Minor reformatting

2009-10-28  Tristan Gingold  <gingold@adacore.com>

	* init.c: Fix __gnat_error_handler for Darwin10 (Snow Leopard)

2009-10-28  Thomas Quinot  <quinot@adacore.com>

	* exp_ch4.adb (Expand_N_Type_Conversion): Perform Integer promotion for
	the operand of the unary minus and ABS operators.

	* sem_type.adb (Covers): A concurrent type and its corresponding record
	type are compatible.
	* exp_attr.adb (Expand_N_Attribute_Reference): Do not rewrite a 'Access
	attribute reference for the current instance of a protected type while
	analyzing an access discriminant constraint in a component definition.
	Such a reference is handled in the corresponding record's init proc,
	while initializing the constrained component.
	* exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
	corresponding record type, propagate components'
	Has_Per_Object_Constraint flag.
	* exp_ch3.adb (Build_Init_Procedure.Build_Init_Statements):
	For a concurrent type, set up concurrent aspects before initializing
	components with a per object constrain, because they may be controlled,
	and their initialization may call entries or protected subprograms of
	the enclosing concurrent object.

2009-10-28  Emmanuel Briot  <briot@adacore.com>

	* prj-nmsc.adb (Add_If_Not_In_List): New subprogram, for better sharing
	of code.
	(Find_Source_Dirs): resolve links if Opt.Follow_Links_For_Dirs when
	processing the directories specified explicitly in the project file.

2009-10-28  Robert Dewar  <dewar@adacore.com>

	* a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb,
	a-textio.ads, a-textio.adb: Reorganize (moving specs from private part
	to body).
	(Initialize_Standard_Files): New procedure.
	* a-tienau.adb: Minor change to make EOF directly visible
	* a-tirsfi.ads, a-wrstfi.adb, a-wrstfi.ads, a-zrstfi.adb,
	a-zrstfi.ads, a-tirsfi.adb: New unit, initial version.
	* gnat_rm.texi: Add documentation for
	Ada.[Wide_[Wide_]]Text_IO.Reset_Standard_Files.
	* Makefile.rtl: Add entries for
	Ada.[Wide_[Wide_]]Text_IO.Reset_Standard_Files

2009-10-28  Thomas Quinot  <quinot@adacore.com>

	* exp_ch9.ads: Minor reformatting
	* sem_ch3.adb: Minor reformatting
	* sem_aggr.adb: Minor reformatting.
	* sem_attr.adb: Minor reformatting
	* tbuild.adb, tbuild.ads, par-ch4.adb, exp_ch4.adb (Tbuild.New_Op_Node):
	New subprogram.
	Minor code reorganization/factoring.

2009-10-27  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (purpose_member_field): New static function.
	(annotate_rep): Use it instead of purpose_member.

2009-10-27  Eric Botcazou  <ebotcazou@adacore.com>

	* raise-gcc (db_region_for): Use _Unwind_GetIPInfo instead of
	_Unwind_GetIP if HAVE_GETIPINFO is defined.
	(db_action_for): Likewise.

2009-10-27  Robert Dewar  <dewar@adacore.com>

	* s-fileio.adb, s-fileio.ads, sem_util.adb, sem_warn.adb,
	sem_warn.ads: Minor reformatting

2009-10-27  Robert Dewar  <dewar@adacore.com>

	* sem_warn.adb, sem_util.adb, sem_util.ads: Minor reformatting. Add
	comments.

2009-10-27  Robert Dewar  <dewar@adacore.com>

	* s-os_lib.ads, s-os_lib.adb, prj-err.adb, makeutl.adb: Minor
	reformatting.

2009-10-27  Ed Schonberg  <schonberg@adacore.com>

	* sem.util.ads, sem_util.adb (Denotes_Same_Object,
	Denotes_Same_Prefix): New functions to detect overlap between actuals
	that are not by-copy in a call, when one of them is in-out.
	* sem_warn.ads, sem_warn.adb (Warn_On_Overlapping_Actuals): New
	procedure,  called on a subprogram call to warn when an in-out actual
	that is not by-copy overlaps with another actual, thus leadind to
	potentially dangerous aliasing in the body of the called subprogram.
	Currently the warning is under control of the -gnatX switch.
	* sem_res.adb (resolve_call): call Warn_On_Overlapping_Actuals.

2009-10-27  Thomas Quinot  <quinot@adacore.com>

	* sem_ch12.adb (Install_Formal_Packages): Do not omit installation of
	visible entities when the formal package doesn't have a box.

	* checks.adb: Minor reformatting.

2009-10-27  Vincent Celier  <celier@adacore.com>

	* prj-part.adb (Parse): Catch exception Types.Unrecoverable_Error and
	set Project to Empty_Node.

2009-10-27  Robert Dewar  <dewar@adacore.com>

	* gnatbind.adb: Minor reformatting

2009-10-27  Arnaud Charlet  <charlet@adacore.com>

	* exp_aggr.adb: Fix comment.

2009-10-27  Emmanuel Briot  <briot@adacore.com>

	* prj-err.adb (Error_Msg): take into account continuation lines when
	computing whether we have a warning.

2009-10-27  Vasiliy Fofanov  <fofanov@adacore.com>

	* make.adb, s-os_lib.adb, s-os_lib.ads (Create_Temp_Output_File): New
	routine that is designed to create temp file descriptor specifically
	for redirecting an output stream.

2009-10-24  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: When
	processing the parent type, build the COMPONENT_REF for a discriminant
	with the proper type.

2009-10-24  Eric Botcazou  <ebotcazou@adacore.com>

	* init.c (__gnat_adjust_context_for_raise): Mention _Unwind_GetIPInfo.
	* gcc-interface/Makefile.in (GNATLIBCFLAGS_FOR_C): Add HAVE_GETIPINFO.
	Pass GNATLIBCFLAGS_FOR_C to recursive invocations.

2009-10-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interfaces/decl.c (build_subst_list): Convert the expression of
	the constraint to the type of the discriminant.

2009-10-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interfaces/decl.c (gnat_to_gnu_entity): Do not create a new
	TYPE_DECL when a type is padded if there is already one and reset
	TYPE_STUB_DECL in this case.

2009-10-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interfaces/utils.c (create_subprog_decl): Do not redefine
	main_identifier_node.

2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (convert): When converting to a padded type
	with an inner type of self-referential size, pad the expression before
	doing the unchecked conversion.

2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Make
	sure the element type is consistent.

2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (addressable_p): Handle bitwise operations.

2009-10-16  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/ada-tree.h (TYPE_FAT_POINTER_P): Swap with...
	(TYPE_IS_FAT_POINTER_P): ...this.
	(TYPE_THIN_POINTER_P): Rename into...
	(TYPE_IS_THIN_POINTER_P): ...this.
	(TYPE_FAT_OR_THIN_POINTER_P): Rename into...
	(TYPE_IS_FAT_OR_THIN_POINTER_P): ...this.
	(TYPE_IS_PADDING_P): Change definition, move old one to...
	(TYPE_PADDING_P): ...this.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust for above changes.
	(get_unpadded_type): Likewise.
	(gnat_to_gnu_component_type): Likewise.
	(gnat_to_gnu_param): Likewise.
	(relate_alias_sets): Likewise.
	(make_packable_type): Likewise.
	(maybe_pad_type): Likewise.
	(gnat_to_gnu_field): Likewise.
	(is_variable_size): Likewise.
	(annotate_object): Likewise.
	(validate_size): Likewise.
	(set_rm_size): Likewise.
	(make_type_from_size): Likewise.
	(rm_size): Likewise.
	* gcc-interface/misc.c (gnat_print_type): Likewise.
	(gnat_get_alias_set): Likewise.
	* gcc-interface/trans.c (Identifier_to_gnu): Likewise.
	(Attribute_to_gnu): Likewise.
	(call_to_gnu): Likewise.
	(gnat_to_gnu): Likewise.
	(add_decl_expr): Likewise.
	(convert_with_check): Likewise.
	(addressable_p): Likewise.
	(maybe_implicit_deref): Likewise.
	(protect_multiple_eval): Likewise.
	(gnat_stabilize_reference_1): Likewise.
	* gcc-interface/utils.c (gnat_pushdecl): Likewise.
	(finish_record_type): Likewise.
	(rest_of_record_type_compilation): Likewise.
	(create_type_decl): Likewise.
	(gnat_types_compatible_p): Likewise.
	(build_template): Likewise.
	(convert_vms_descriptor64): Likewise.
	(convert_vms_descriptor32): Likewise.
	(build_unc_object_type_from_ptr): Likewise.
	(update_pointer_to): Likewise.
	(convert_to_fat_pointer): Likewise.
	(convert_to_fat_pointer): Likewise.
	(convert): Likewise.
	(remove_conversions): Likewise.
	(maybe_unconstrained_array): Likewise.
	(unchecked_convert): Likewise.
	(handle_vector_type_attribute): Likewise.
	* gcc-interface/utils2.c (build_binary_op): Likewise.
	(build_unary_op): Likewise.
	(build_allocator): Likewise.

2009-10-16  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_dbug.ads: Adjust type names in comments.
	* gcc-interface/decl.c (maybe_pad_type): Remove NAME_TRAILER parameter,
	add new IS_COMPONENT_TYPE parameter.  Adjust.  Remove dead code.
	(gnat_to_gnu_entity): Adjust for above change.
	(gnat_to_gnu_component_type): Likewise.
	(gnat_to_gnu_field): Likewise.
	* gcc-interface/trans.c (call_to_gnu): Likewise.  Do not unnecessarily
	call max_size.
	* gcc-interface/utils.c (finish_record_type): Remove obsolete code.
	* gcc-interface/gigi.h (maybe_pad_type): Adjust prototype.

2009-10-16  Joel Sherrill <joel.sherrill@oarcorp.com>

	* s-osinte-rtems.ads: Add mutex type to pthread_mutexattr_t
	* s-stchop-rtems.adb: Correct binding to rtems_stack_checker_is_blown.

2009-10-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* env.c [__alpha__ && __osf__] (AES_SOURCE): Define.

2009-10-10  Samuel Tardieu  <sam@rfc1149.net>

	* sem_eval.adb: Give a more precise error message.

2009-10-06  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/41383
	* a-rttiev.adb (Time_Of_Event): Return Time_First for unset event.

2009-10-06  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/38333
	* sem_prag.adb (Process_Import_Or_Interface): Forbid an abstract
	subprogram to be completed with a "pragma Import".

2009-10-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>:
	Generate an XVZ variable alongside the XVS type if the size is
	not constant.
	(maybe_pad_type): Minor tweak.

2009-10-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (check_ok_for_atomic): Do nothing if the type
	doesn't come from source.

2009-10-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_component_type): Force at least
	unit size for the component size of an array with aliased components.
	(maybe_pad_type): Do not warn for MAX_EXPR.

2009-09-29  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Factor out
	common code processing the component type into...
	<E_Array_Subtype>: Likewise.
	(gnat_to_gnu_component_type): ...this new static function.
	(maybe_pad_type): Minor cleanup.

2009-09-29  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Rewrite
	the handling of constrained discriminated record subtypes.
	(components_to_record): Declare the type of the variants and of the
	qualified union.
	(build_subst_list): Move around.
	(compute_field_positions): Rename into...
	(build_position_list): ...this.  Return a TREE_VEC.
	(annotate_rep): Adjust for above renaming.
	(build_variant_list): New static function.
	(create_field_decl_from): Likewise.
	(get_rep_part): Likewise.
	(get_variant_part): Likewise.
	(create_variant_part_from): Likewise.
	(copy_and_substitute_in_size): Likewise.

2009-09-28  Olivier Hainque  <hainque@adacore.com>

	PR ada/41100
	* gcc-interface/targtyps.c (get_target_default_allocator_alignment):
	Account for observable alignments out of default allocators.

2009-09-28  Richard Henderson  <rth@redhat.com>

	* gcc-interface/utils.c (gnat_install_builtins): Update call to
	build_common_builtin_nodes.

2009-09-26  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Filter out
	negative size for the array dimensions like in the constrained case.
	<E_Array_Subtype>: Do not create an artificially non-constant high
	bound if the low bound is non-constant.  Minor tweaks.

	* gcc-interface/trans.c (lvalue_required_p): Add CONSTANT parameter
	and turn ALIASED into a boolean parameter.  Adjust calls to self.
	<N_Attribute_Reference>: Return 1 for more attributes.
	<N_Object_Renaming_Declaration>: Return 1 for non-constant objects.
	<N_Assignment_Statement>: Return 1 for the LHS.
	(Identifier_to_gnu): Adjust calls to lvalue_required_p.
	(call_to_gnu): Be prepared for wrapped boolean rvalues.

2009-09-25  Olivier Hainquqe  <hainque@adacore.com>
            Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/ada-tree.h (TYPE_REPRESENTATIVE_ARRAY): New language
	specific node.	Representative array type for VECTOR_TYPE entities.
	* gcc-interface/utils.c (handle_vector_type_attribute): New handler.
	Turn an ARRAY_TYPE entity into a VECTOR_TYPE.	
	(gnat_types_compatible_p): Handle VECTOR_TYPEs.
	(convert): Likewise.  Arrange to produce VECTOR_CST out of constant
	array aggregates for VECTOR_TYPE entities.
	(unchecked_convert): Likewise.
	(maybe_vector_array): New function. If EXP has VECTOR_TYPE, return EXP
	converted to the associated TYPE_REPRESENTATIVE_ARRAY.
	(handle_pure_attribute, handle_sentinel_attribute,
	handle_noreturn_attribute, handle_malloc_attribute,
	handle_vector_size_attribute): Replace uses of qE format by qs.
	Remove GCC_DIAG_STYLE definition.
	* gcc-interface/trans.c (gnat_to_gnu) <N_Indexed_Component>: Convert
	vector input to representative array type on entry.
	<N_Op_Eq, etc>: Likewise.
	* gcc-interface/gigi.h (maybe_vector_array): Declare.
	(VECTOR_TYPE_P): New predicate.
	* gcc-interface/misc.c (gnat_print_type): Handle VECTOR_TYPE.

2009-09-24  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/ada.h: Fix outdated comment.
	* gcc-interface/ada-tree.h (SET_TYPE_RM_VALUE): Use MARK_VISITED in
	lieu of mark_visited.
	* gcc-interface/gigi.h (mark_visited): Change type of parameter.
	(MARK_VISITED): New macro.
	(gnat_truthvalue_conversion): Delete.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Use MARK_VISITED in lieu
	of mark_visited.
	(annotate_rep): Fix formatting and tidy.
	(compute_field_positions): Get rid of useless variable.
	* gcc-interface/trans.c (gnat_to_gnu): Retrieve the Nkind of the GNAT
	node only once.  Use IN operator for the Nkind in more cases.
	Remove calls to gnat_truthvalue_conversion.
	(mark_visited): Change type of parameter and adjust.
	(mark_visited_r): Dereference TP only once.
	(add_decl_expr): Use MARK_VISITED in lieu of mark_visited.
	* gcc-interface/utils2.c (gnat_truthvalue_conversion): Delete.
	(build_binary_op): Remove calls to gnat_truthvalue_conversion.
	(build_unary_op): Likewise.

2009-09-24  Dave Korn  <dave.korn.cygwin@gmail.com>

	* gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS): Simplify test for
	a-except% in target pairs list; don't (implicitly) compare whitespace.

2009-09-24  Jakub Jelinek  <jakub@redhat.com>

	* gcc-interface/utils.c (gnat_pushdecl): Don't set
	DECL_NO_STATIC_CHAIN, set DECL_STATIC_CHAIN for
	nested functions.

2009-09-21  Joel Sherrill  <joel.sherrill@oarcorp.com>

	* s-osinte-rtems.ad[bs]: Get_Page_Size cannot return 0.
	Bind to getpagesize() in RTEMS 4.10 and newer.

2009-09-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* env.c [__alpha__ && __osf__] (_BSD): Define.
	* init.c [__alpha__ && __osf__] (__gnat_error_handler): Cast msg
	to const char *.

2009-09-18  Pascal Obry  <obry@adacore.com>

	* mingw32.h: Activate Unicode support for x86-64 Windows platform.

2009-09-18  Vadim Godunko  <godunko@adacore.com>

	* s-oscons-tmplt.c: Add circuit for handling IOV_MAX macro on IRIX.

2009-09-18  Javier Miranda  <miranda@adacore.com>

	* exp_aggr.adb (Backend_Processing_Possible): Disable backend
	processing for array aggregates in the VM backend if the array has
	aliased components.

2009-09-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Indexed_Component): Emit error if the type of
	the prefix indicates a previous semantic error, and this is the first
	error in the program.

2009-09-18  Bob Duff  <duff@adacore.com>

	* gnat_ugn.texi: Minor editing.

2009-09-18  Vincent Celier  <celier@adacore.com>

	* prj.ads, prj.adb (Project_Data): New component
	Imported_Directories_Switches.

2009-09-18  Pascal Obry  <obry@adacore.com>

	* mingw32.h: Include standard _mingw.h file.
	Define _WIN32_WINNT only if not already defined.

2009-09-18  Thomas Quinot  <quinot@adacore.com>

	* g-socket.adb (Is_Open): New function indicating whether a
	Selector_Type object is open.

2009-09-18  Vincent Celier  <celier@adacore.com>

	* osint-c.adb (Create_Output_Library_Info): Make sure that the ALI file
	is deleted before creating it.

2009-09-18  Robert Dewar  <dewar@adacore.com>

	* bindgen.adb: Minor reformatting

2009-09-18  Arnaud Charlet  <charlet@adacore.com>

	* s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-solaris.adb,
	s-taprop-irix.adb, s-taprop-posix.adb (Abort_Task): Do nothing if no
	signal handler is installed.
	* s-tassta.adb (Finalize_Global_Tasks): Do not wait for independent
	tasks if Abort_Task_Interrupt cannot be used.

2009-09-18  Vincent Celier  <celier@adacore.com>

	* prj-tree.ads: Minor comment update

2009-09-17  Bob Duff  <duff@adacore.com>

	* g-socket.ads: Document the fact that Close_Selector has no effect on
	a closed selector.
	* g-socket.adb: Raise an exception when a Selector that should be open
	is closed.
	(Check_Selector): Declare RSig as a constant rather than a renames,
	less confusing.

2009-09-17  Robert Dewar  <dewar@adacore.com>

	* exp_ch9.adb, exp_ch5.adb, exp_ch4.adb, prj-conf.adb, prj-env.ads,
	prj-ext.adb, prj-ext.ads, prj-pars.adb, prj-part.adb, prj-proc.adb,
	prj-tree.ads: Minor reformatting

2009-09-17  Emmanuel Briot  <briot@adacore.com>

	* prj-conf.adb, prj-env.adb, prj-env.ads (Create_Temp_File): Moved to
	spec.
	(Do_Autoconf): If the object directory does not exists, create auto.cgpr
	in a temporary directory instead

2009-09-17  Bob Duff  <duff@adacore.com>

	* a-dynpri.adb (Set_Priority): Don't do anything if the task is already
	terminated.
	(Get_Priority): Correct message for "terminated" case -- it said "null".

2009-09-17  Robert Dewar  <dewar@adacore.com>

	* exp_ch6.adb: Minor reformatting

2009-09-17  Emmanuel Briot  <briot@adacore.com>

	* gnatcmd.adb, make.adb, prj-part.adb, prj-ext.adb, prj-ext.ads,
	switch-m.adb, switch-m.ads, clean.adb, prj-tree.ads
	(Project_Node_Tree_Data.Project_Path): New field.

	* prj-conf.adb (Do_Autoconf): Remove "creating auto.cgpr" message

2009-09-17  Emmanuel Briot  <briot@adacore.com>

	* prj-ext.adb, prj-ext.ads, makeutl.adb (Is_External_Assignment):
	Remove duplicate code.
	(Prj.Ext): Fix memory leak
	(Check): Now allow the syntax "-Xfoo=" to set an empty value to the
	variable. This was previously allowed in the code in
	Is_External_Assignment, and some tests rely on it

2009-09-17  Bob Duff  <duff@adacore.com>

	* gnat_rm.texi, s-oscons-tmplt.c: Minor typo

2009-09-17  Emmanuel Briot  <briot@adacore.com>

	* gnatcmd.adb, prj-proc.adb, make.adb, prj-ext.adb, prj-ext.ads,
	makeutl.adb, makeutl.ads, clean.adb, prj-pars.adb, prj-pars.ads,
	prj-conf.adb, prj-conf.ads, prj-tree.adb, prj-tree.ads, prj-proc.ads,
	prj-nmsc.ads (Add, Value_Of, Reset): new parameter Tree.
	Scenario variables are now specific to each project tree loaded in
	memory.
	Code clean ups.

2009-09-17  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Make_DT): Remove wrong line of code that was
	undocumented and probably added by mistake.

2009-09-16  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Size>: Strip
	conversions between original and packable version of types from
	the expression.

2009-09-16  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_field): Add DEBUG_INFO_P parameter.
	If a padding type was made for the field, declare it.
	(components_to_record): Add DEBUG_INFO_P parameter.  Adjust call
	to gnat_to_gnu_field and call to self.
	(gnat_to_gnu_entity) <E_Array_Type>: Do not redeclare padding types.
	<E_Array_Subtype>: Likewise.
	Adjust calls to gnat_to_gnu_field and components_to_record.

2009-09-16  Robert Dewar  <dewar@adacore.com>

	* prj-nmsc.adb: Minor reformatting

2009-09-16  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.adb (Expand_N_Conditional_Expression): If the type of the
	expression is a by-reference type (tagged or inherently limited)
	introduce an access type to capture references to the values of each
	branch of the conditional.

2009-09-16  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, prj-part.adb, prj-tree.adb, prj-tree.ads
	(Project_Name_And_Node.Display_Name): new field
	The display name of a project (as written in the .gpr file) is now
	computed when the project file itself is parsed, not when it is
	processed.

2009-09-16  Thomas Quinot  <quinot@adacore.com>

	* freeze.adb, exp_intr.adb (Expand_Intrinsic_Call): Leave calls to
	intrinsics untouched (to be expanded later on by gigi) if an external
	name has been specified.
	(Freeze_Entity): Do not generate a default external name for
	imported subprograms with convention Intrinsic (so that the above code
	can identify the case where an external name has been explicitly
	provided).

	* s-oscons-tmplt.c: Quote TARGET_OS early so that it is not erroneously
	replaced by something else due to an existing #define clause.

2009-09-16  Ed Schonberg  <schonberg@adacore.com>

	* sinfo.ads, sinfo.adb (Is_Accessibility_Actual): New flag on
	Parameter_Association node, created for the extra actual generated for
	an access parameter of a function that dispatches on result, to prevent
	double generation of such actuals when the call is rewritten is a
	dispatching call.
	* exp_ch6.adb (Expand_Call): Set Is_Accessibility_Actual when needed.
	* exp_disp.adb (Expand_Dispatching_Call): Do not transfer extra actuals
	that carry this flag when rewriting the original call as a dispatching
	call, after propagating the controlling tag.

2009-09-16  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Add_Source): New parameter Source_Dir_Rank to be put
	in the source data.
	(Check_File): New parameter Source_Dir_Rank, to check if a duplicate
	source is allowed.
	(Find_Source_Dirs): New parameter Rank to be recorded with the source
	directories.
	(Search_Directories): Call Check_File with the rank of the directory
	* prj.adb (Project_Empty): Add new component Source_Dir_Ranks
	(Free): Free also Number_Lists
	(Reset): Init also Number_Lists
	* prj.ads (Number_List_Table): New dynamic table for lists of numbers
	(Source_Data): New component Source_Dir_Rank. Remove component
	Known_Order_Of_Source_Dirs, no longer needed.
	(Project_Data): New component Source_Dir_Ranks
	(Project_Tree_Data): New components Number_Lists

2009-09-16  Vincent Celier  <celier@adacore.com>

	* gprep.adb (Yes_No): New global constant
	Unix_Line_Terminators: New global Boolean variable
	(Process_One_File): Create the out file with a "Text_Translation=" form
	that depends on the use of option -T.
	(Scan_Command_Line): Add option -T
	(Usage): Add line for option -T

2009-09-16  Ed Schonberg  <schonberg@adacore.com>

	* exp_disp.ads, exp_disp.adb (Is_Predefined_Internal_Operation): New
	predicate that describes a proper subset of
	Is_Predefined_Dispatching_Operation and excludes stream operations,
	which can be overridden by the user.
	* sem_ch6.adb (Create_Extra_Formals): use
	Is_Predefined_Internal_Operation, so that stream operations get extra
	formals.
	* exp_ch6.adb (Prevent double generation of extra actuals in calls to
	'Input, which may be expanded twice, first as a function call and then
	as a dispatching call.

2009-09-16  Thomas Quinot  <quinot@adacore.com>

	* s-oscons-tmplt.c (Target_OS, Target_Name): New constants.
	* g-expect.adb (Set_Up_Child_Communications): Use
	System.OS_Constants.Target_OS to determine whether running on Windows.

2009-09-14  Richard Henderson  <rth@redhat.com>

	* gcc-interface/trans.c (Pragma_to_gnu): Use build5 for ASM_EXPR.

2009-09-14  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_dbug.ads (Packed Array Encoding): Document the new encoding for
	the unconstrained case.
	* gcc-interfaces/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Implement
	the encoding.  Do not give a name to the pointer type to the XUT type.
	* gcc-interfaces/utils.c (gnat_pushdecl): Propagate DECL_ORIGINAL_TYPE
	for fat pointer types, if any.  Make sure DECL_ARTIFICIAL is cleared
	on nodes with DECL_ORIGINAL_TYPE set.
	(update_pointer_to): Set DECL_ORIGINAL_TYPE to the original pointer
	for fat pointer types.  Make sure DECL_ARTIFICIAL is cleared.

2009-09-14  Richard Henderson  <rth@redhat.com>

	* gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
	default_init_unwind_resume_libfunc.
	* gcc-interface/trans.c (Exception_Handler_to_gnu_zcx): Use
	__builtin_eh_pointer.
	* gcc-interface/utils.c (gnat_install_builtins): Update call
	to build_common_builtin_nodes.

2009-09-13  Richard Guenther  <rguenther@suse.de>
	    Rafael Avila de Espindola  <espindola@google.com>

	* gcc-interface/misc.c (gnat_init_gcc_eh): Do not set variables
	eh_personality_libfunc and lang_eh_runtime_type.
	(LANG_HOOKS_EH_PERSONALITY): Define.
	(gnat_eh_personality_decl): New static variable.
	(gnat_eh_personality): New static function.
	Include gt-ada-misc.h.
	* gcc-interface/Make-lang.in (misc.o): Add gt-ada-misc.h dependency.
	* gcc-interface/config-lang.in (gtfiles): Add misc.c.

2009-09-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR ada/18302
	* gcc-interface/Make-lang.in (check-acats): Export rootme, EXPECT.

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

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Tidy
	flow of control.
	Avoid useless work when processing the Treat_As_Volatile flag.

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

	* gcc-interface/targtyps.c: Reorder include directives.

2009-09-07  Laurent GUERBY  <laurent@guerby.net>

	* gcc-interface/targtyps.c: Add missing include for tm_p.h.
	* gcc-interface/Make-lang.in: Update dependencies.

2009-09-07  Laurent GUERBY  <laurent@guerby.net>

        * make.adb: Add missing documentation for multilib handling.
	
2009-09-03  Diego Novillo  <dnovillo@google.com>

	* gcc-interface/misc.c (lang_hooks): Remove const qualifier.

2009-09-02  Richard Henderson  <rth@redhat.com>

	* tb-gcc.c (__gnat_backtrace): Mark all arguments unused.

2009-09-02  Olivier Hainque  <hainque@adacore.com>

	* init.c (__gnat_error_handler, AIX): Add ATTRIBUTE_UNUSED on si
	and uc arguments.
	
2009-09-02  Olivier Hainque  <hainque@adacore.com>

	* gcc-interface/decl.c (cannot_be_superflat_p): Handle
	Signed_Integer_Type_Definition Scalar_Ranges.

2009-09-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gnat_gimplify_expr) <ADDR_EXPR>: Gimplify the
	SAVE_EXPR built for misaligned arguments.  Remove redundant stuff.
	(addressable_p): Return true for more rvalues.

2009-09-01  Jakub Jelinek  <jakub@redhat.com>

	* gcc-interface/utils2.c (maybe_wrap_malloc, maybe_wrap_free): Cast
	POINTER_SIZE to HOST_WIDE_INT.

2009-09-01  Richard Guenther  <rguenther@suse.de>

	* gcc-interface/misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Remove.

2009-08-25  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (call_to_gnu): Tidy.
	(gnat_to_gnu) <N_Slice>: Set TYPE_ARRAY_MAX_SIZE if the slice has
	non-constant size but the array itself has constant size.
	* gcc-interface/utils.c (convert_vms_descriptor64): Fix type
	consistency error.
	(convert_vms_descriptor32): Likewise.

2009-08-22  Aurelien Jarno  <aurelien@aurel32.net>

	* gcc-interface/Makefile.in: Add Ada support for 
	GNU/kFreeBSD x86_64.
	* system-freebsd-x86_64.ads: New file based on 
	system-freebsd-x86.ads.

2009-08-20  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (convert): In the padded case, do the final
	conversion as an unchecked conversion if the underlying types are
	array types with variable size.

2009-08-20  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/ada-tree.h (SET_TYPE_RM_VALUE): Mark the expression
	as visited.
	* gcc-interface/misc.c (gnat_get_subrange_bounds): Always return the
	bounds.
	* gcc-interface/trans.c (add_decl_expr): Do not mark gigi-specific
	fields.
	(gnat_gimplify_expr) <DECL_EXPR>: New case.

2009-08-17  Aurelien Jarno  <aurelien@aurel32.net>

	* s-osinte-kfreebsd-gnu.ads (SA_ONSTACK): New constant.
	(stack_t): New record type.
	(sigaltstack): New imported function.
	(Alternate_Stack): New imported variable.
	(Alternate_Stack_Size): New constant.

2009-08-17  Vasiliy Fofanov  <fofanov@adacore.com>

	* a-calend-vms.adb: Fix typo.

2009-08-17  Tristan Gingold  <gingold@adacore.com>

	* s-taprop-posix.adb: Round up the stack size to avoid failure on
	Darwin.

2009-08-17  Gary Dismukes  <dismukes@adacore.com>

	* sem_cat.adb (Validate_Static_Object_Name): Update comment.

2009-08-17  Vincent Celier  <celier@adacore.com>

	* make.adb (Arguments_Collected): Unneeded, removed
	(Change_To_Object_Directory): Use Project directly. Add pragma Assert to
	ensure caller does not pass in No_Project.
	(Compile): Add new parameter Project. Let procedure
	Collect_Arguments_And_Compile provide the proper value.

	* switch-c.adb: Add documentation for -gnatea and -gnatez

2009-08-17  Ben Brosgol  <brosgol@adacore.com>

	* gnat_ugn.texi: Changed name of package in SAL example, to avoid
	clash with Ada 2005 reserved word (interface).

2009-08-17  Robert Dewar  <dewar@adacore.com>

	* a-crbtgk.adb, a-crdlli.adb, a-direct.adb, a-caldel-vms.adb,
	a-calend-vms.adb, a-calfor.adb, a-cdlili.adb, a-chahan.adb,
	a-cidlli.adb, a-coinve.adb, a-comlin.adb: Minor code reorganization
	(use conditional expressions).

2009-08-17  Robert Dewar  <dewar@adacore.com>

	* make.adb: Add ??? comment
	* tbuild.adb: Minor reformatting

2009-08-17  Thomas Quinot  <quinot@adacore.com>

	* exp_ch4.adb (Exp_Ch4.Expand_N_Slice.Make_Temporary): Rename to
	Make_Temporary_For_Slice to avoid confusion with Tbuild.Make_Temporary.
	Use Tbuild.Make_Temporary to create entity for the temporary.

2009-08-17  Arnaud Charlet  <charlet@adacore.com>

	* make.adb (Process_Multilib, Scan_Make_Arg): Refine previous change
	and ignore -mieee switch to avoid spawning an extra gcc in this case.

2009-08-17  Thomas Quinot  <quinot@adacore.com>

	* tbuild.adb: Minor reformatting

2009-08-17  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch3.adb (Build_Discriminant_Formals): If the discriminals already
	exist, as is the case for synchronized types, use the type of the
	discriminal in the parameter specification, to prevent a spurious
	subtype mismatch in gigi.

2009-08-17  Robert Dewar  <dewar@adacore.com>

	* prj-env.adb: Minor reformatting
	* make.adb: Minor reformatting
	Comment updates

2009-08-17  Javier Miranda  <miranda@adacore.com>

	* exp_ch7.adb (Wrap_Transient_Expression): Update comments.

2009-08-17  Emmanuel Briot  <briot@adacore.com>

	* prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-conf.adb
	(Processing_Flags.Require_Obj_Dirs): new field, which controls whether
	object directories must be present. In the case of gprclean at least,
	these are optional (if they do not exist there is nothing to clean)

2009-08-17  Robert Dewar  <dewar@adacore.com>

	* prj-env.adb: Minor reformatting
	* sem_ch3.adb: Minor reformatting

2009-08-17  Hristian Kirtchev  <kirtchev@adacore.com>

	* sysdep.c (__gnat_localtime_tzoff): VxWorks case - Flip the sign of
	the time zone since VxWorks chose positive values to represent west
	time zones and negative for east zones.

2009-08-17  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Access_Definition): Do not create an Itype reference for
	an anonymous access type whose designated type is generic.

2009-08-17  Arnaud Charlet  <charlet@adacore.com>

	* comperr.adb (Compiler_Abort): Do not generate a bug box when in
	codepeer mode, friendlier.

2009-08-10  Laurent GUERBY  <laurent@guerby.net>

        * make.adb: Handle multilib
	
2009-08-10  Vincent Celier  <celier@adacore.com>

	* prj-env.adb (Create_Config_Pragmas_File.Write_Temp_File): Do not use
	the temporary file name in the error message when the temporary file
	cannot be created.

2009-08-10  Yannick Moy  <moy@adacore.com>

	* gnat_ugn.texi: Fix typo

2009-08-10  Robert Dewar  <dewar@adacore.com>

	* exp_ch7.adb: Add ??? comment for last change

2009-08-10  Vincent Celier  <celier@adacore.com>

	* prj-env.adb (Add_To_Buffer): New procedure
	(Create_Config_Pragmas_File): Write to temporary file in one shot
	(Create_Mapping_File): Ditto
	(Set_Ada_Paths): Ditto

2009-08-10  Vincent Celier  <celier@adacore.com>

	PR ada/17566
	* xref_lib.adb (Print_Xref): Make sure that there is at least one space
	between a declaration name and its type.

2009-08-07  Javier Miranda  <miranda@adacore.com>

	* exp_ch7.adb (Wrap_Transient_Expression): Add missing adjustment of
	SCIL node.

2009-08-07  Robert Dewar  <dewar@adacore.com>

	* sem_warn.adb (Warn_On_Unreferenced_Entity): Fix obvious typo.

2009-08-07  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb (GNATCmd): If -U is not used, one and only one main is
	specified on the command line and there are switches in the Compiler
	package of the project file, use these compilation switches to invoke
	the tool.

2009-08-07  Ben Brosgol  <brosgol@adacore.com>

	* gnat_ugn.texi: Wordsmithing edits at beginning of gnatcheck chapter.

2009-08-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Analyze_Proper_Body): Indicate name of missing subunit
	even if not in main unit, to simplify debugging.

2009-08-07  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Makefile.in: Fix handling of GCC_FOR_TARGET.
	* gcc-interface/Make-lang.in: Update dependencies.

2009-08-07  Robert Dewar  <dewar@adacore.com>

	* types.ads: Minor reformatting
	* sem_ch12.ads (Check_Generic_Child_Unit): Add missing documentation.
	* frontend.adb, sem_warn.adb, sem_warn.ads: Fix spelling of
	Output_Non_Modified_In_Out_Warnings.
	* sem_ch13.adb: Remove ??? comment.

2009-08-07  Vincent Celier  <celier@adacore.com>

	* mlib-prj.adb (Build_Library): Include binder generate object file
	for SAL when library name is only one character.

2009-08-07  Thomas Quinot  <quinot@adacore.com>

	* targparm.adb: Minor reformatting
	* sem.adb: Minor reformatting
	* exp_ch4.adb (Expand_N_Conditional_Expression): Add comment.

2009-08-07  Emmanuel Briot  <briot@adacore.com>

	* prj-conf.adb: Remove duplicate directory separator in the output when
	an object directory does not exist.

2009-08-07  Robert Dewar  <dewar@adacore.com>

	* exp_util.adb: Minor reformatting

2009-08-07  Vincent Celier  <celier@adacore.com>

	* mlib-prj.adb (Build_Library): Fixed bug in name of ALI file (wrong
	length used).

2009-08-07  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch9.adb (Expand_N_Protected_Type_Declaration): In Ravenscar mode,
	detect non-static private components that will violate restriction
	No_Implicit_Heap_Allocation.

2009-08-07  Ben Brosgol  <brosgol@adacore.com>

	* gnat_ugn.texi: Edited Rule Exemption section of gnatcheck chapter.

2009-08-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (end_subprog_body): Tweak comment.
	* gcc-interface/utils.c (end_subprog_body): Likewise.
	* gcc-interface/trans.c (gigi): Likewise.
	(gnat_to_gnu): Likewise.

2009-07-30  Ben Brosgol  <brosgol@adacore.com>

	* gnat_ugn.texi: Correct minor texi glitch.

2009-07-30  Ed Schonberg  <schonberg@adacore.com>

	* exp_util.adb (Expand_Subtype_From_Expr): If the type of the
	expression has an underlying representation that is an unchecked union,
	there is no subtype to build.

2009-07-30  Robert Dewar  <dewar@adacore.com>

	* a-teioed.adb, exp_disp.adb, s-linux-hppa.ads, s-linux.ads,
	s-tasini.adb, sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch6.adb,
	sem_ch7.adb, adaint.c: Minor reformatting

2009-07-29  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.ads, sem_ch3.adb (Add_Internal_Interface_Entities): Routine
	moved from the expander to the semantic analyzer to allow the
	generation of these internal entities when compiling with no code
	generation. Required by ASIS.
	* sem.adb (Analyze): Add processing for N_Freeze_Entity nodes.
	* sem_ch13.ads, sem_ch13.adb (Analyze_Freeze_Entity): New subprogram.
	* exp_ch3.adb (Add_Internal_Interface_Entities): Moved to sem_ch3
	(Expand_Freeze_Record_Type): Remove call to
	Add_Internal_Interface_Entities because this routine is now called at
	early stage --when the freezing node is analyzed.

2009-07-29  Robert Dewar  <dewar@adacore.com>

	* exp_atag.ads, exp_atag.adb, s-tasini.adb, s-soflin.ads,
	exp_disp.adb, g-socket.adb: Minor reformatting

2009-07-29  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch7.adb (New_Private_Type): Create class-wide type after other
	attributes have been established, so that they are all inherited by the
	class-wide type.
	* sem_cat.adb (Validate_Remote_Access_Object_Type_Declaration): Handle
	properly named subtypes of class-wide types.

2009-07-29  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Check_Overriding_Indicator): Handle properly overriding
	indicators on user-defined operators.

2009-07-29  Vadim Godunko  <godunko@adacore.com>

	* g-socket.adb (Receive_Vector): Add comment.

2009-07-29  Javier Miranda  <miranda@adacore.com>

	* frontend.adb (Frontend): Code cleanup.
	* exp_atag.ads, exp_atag.adb (Build_Get_Predefined_Prim_Op_Address):
	Rewriten as a procedure because it a new out-mode parameters to
	keep up-to-date the controlling tag node in the caller.
	(Build_Get_Prim_Op_Address): Rewriten as a procedure because it has a
	new out-mode parameter to keep up-to-date the controlling tag node in
	the caller.
	* exp_ch7.adb, sem_ch5.adb, exp_util.adb, sem_util.adb, exp_ch4.adb,
	exp_ch6.adb, sem_ch4.adb, exp_ch3.adb: Add new dependency on new
	package Sem_SCIL.
	* sem_aux.ads, sem_aux.adb (First_Non_SCIL_Node): Removed. Routine
	available in new package Sem_SCIL.
	(Next_Non_SCIL_Node): Ditto.
	* exp_disp.adb (Adjust_SCIL_Node): Removed. Routine available in new
	package Sem_SCIL.
	(Expand_Dispatching_Call): Update call to modified Exp_Atags routines
	plus complete decoration of SCIL dispatching node.
	(Find_SCIL_Node): Removed. Routine available in new package Sem_SCIL.
	* exp_disp.ads (Adjust_SCIL_Node): Removed. Routine available in new
	package Sem_SCIL.
	(Find_SCIL_Node): Removed. Routine available in new package Sem_SCIL.
	* exp_ch3.adb (Build_Init_Procedure): Fix comment.
	* sem_scil.ads, sem_scil.adb: New files.
	* gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Addition of sem_scil.o.
	Update dependencies.

2009-07-28  Robert Dewar  <dewar@adacore.com>

	* adaint.h, einfo.ads, prj.adb, sem_util.adb, makeutl.ads,
	makeutl.adb: Minor reformatting & code reorganization
	* sem_ch3.adb: Minor reformatting.
	Fix spelling error (constraint for constrain) in error msg.

2009-07-28  Emmanuel Briot  <briot@adacore.com>

	* make.adb, makeutl.adb, makeutl.ads (Project_Tree): Duplicates the
	global variable that also exists in makeutl.ads, and that some routines
	in that package use already.
	(Check): Moved part of the code to makeutl.adb for better sharing with
	gprbuild.

2009-07-28  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in: Update dependencies.

2009-07-28  Emmanuel Briot  <briot@adacore.com>

	* prj.adb, prj.ads (Compute_All_Imported_Projects): Make sure the
	importing project does not end up in the list, in the case of extending
	projects.
	* make.adb, makeutl.adb, makeutl.ads (File_Not_A_Source_Of): Moved to
	makeutl.ads, for better sharing with gprbuild.

2009-07-28  Arnaud Charlet  <charlet@adacore.com>

	* gnat_ugn.texi: Fix typo.

2009-07-28  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Build_Derived_Concurrent_Type): Handle properly a
	derivation that renames some discriminants and constrain others.
	* exp_ch9.adb (Build_Protected_Subprogram_Call): If the type of the
	prefix is a derived untagged type, convert to the root type to conform
	to the signature of the protected operations.

2009-07-28  Robert Dewar  <dewar@adacore.com>

	* sinfo.ads: Update comments.
	* exp_attr.adb: Minor reformatting

2009-07-28  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Get_Value): A named association in a record aggregate
	should be treated as a modification of the named component, not as a
	reference.

2009-07-28  Quentin Ochem  <ochem@adacore.com>

	* prj-tree.ads, prj-tree.adb (Free): Minor editing.
	* prj.ads, prj.adb (Image): Ditto.

2009-07-28  Arnaud Charlet  <charlet@adacore.com>

	* frontend.adb: Minor reformatting.
	(Frontend): Only call Check_SCIL_Nodes if assertions are enabled,
	for efficiency.

2009-07-28  Bob Duff  <duff@adacore.com>

	* exp_attr.adb (Expand_Access_To_Protected_Op): Use 'Access instead of
	'Address to get a pointer to the protected body wrapper.

2009-07-28  Javier Miranda  <miranda@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Disable generation of SCIL
	nodes if we are not generating code.
	* frontend.adb (Check_SCIL_Node): New subprogram. Used to check
	attribute SCIL_Related_Node of SCIL dispatching nodes.
	(Check_SCIL_Nodes): New instantiation of Traverse_Proc.
	* sinfo.ads (Is_SCIL_Node,Set_Is_SCIL_Node): Removed
	(SCIL_Nkind,Set_SCIL_Nkind): Removed.
	(SCIL_Entity): Update documentation.
	(SCIL_Related_Node): Update documentation.
	(SCIL_Controlling_Tag): New attribute.
	(SCIL_Target_Prim): Update documentation.
	(N_Null_Statement): Remove attributes associated with SCIL nodes.
	(N_SCIL_Dispatch_Table_Object_Init): New node.
	(N_SCIL_Dispatch_Table_Tag_Init): New node.
	(N_SCIL_Dispatching_Call): New node.
	(N_SCIL_Tag_Init): New node.
	* sinfo.adb (Is_SCIL_Node,Set_Is_SCIL_Node): Removed
	(SCIL_Nkind,Set_SCIL_Nkind): Removed.
	(SCIL_Controlling_Tag/Set_SCIL_Controlling_Tag): New subprogram.
	(SCIL_Entity,Set_SCIL_Entity): Applicable only to SCIL nodes.
	(SCIL_Related_Node,Set_SCIL_Related_Node): Applicable only to SCIL nodes
	(SCIL_Target_Prim,Set_SCIL_Target_Prim): Applicable only to
	N_SCIL_Dispatching_Call nodes.
	* sem.adb (Analyze): No need to analyze SCIL nodes.
	* sem_aux.ads, sem_aux.adb (First_Non_SCIL_Node): New subprogram
	(Next_Non_SCIL_Node): New subprogram
	* sem_ch4.adb (Analyze_Type_Conversion): Adjust relocated SCIL
	dispatching nodes.
	* sem_ch5.adb (Analyze_Iteration_Scheme): Adjust relocated SCIL
	dispatching node.
	* sem_util.adb (Insert_Explicit_Dereference): Adjust relocated SCIL
	dispatching node.
	* exp_ch3.adb (Build_Array_Init_Proc): Skip SCIL nodes when processing
	null statement nodes.
	(Build_Init_Procedure): Generate new SCIL node.
	* exp_ch4.adb (Expand_N_And_Then): Adjust relocated SCIL dispatching
	node.
	* exp_ch6.adb (Is_Null_Procedure): Skip SCIL nodes. Required because
	they are currently implemented as special N_Null_Statement nodes.
	* exp_ch7.adb (Wrap_Transient_Statement): If the relocated node is a
	procedure call then check if some SCIL node references it and needs
	readjustment.
	* exp_disp.ads (SCIL_Node_Kind): Removed.
	(Adjust_SCIL_Node): New subprogram.
	(Find_SCIL_Node): New subprogram.
	(Get_SCIL_Node_Kind): Removed.
	(New_SCIL_Node): Removed.
	* exp_disp.adb (Adjust_SCIL_Node): New subprogram
	(Expand_Dispatching_Call): Generate new SCIL dispatching node including
	decoration of its new controlling_tag attribute.
	(Get_SCIL_Node_Kind): Removed.
	(Find_SCIL_Node): New subprogram.
	(Make_Secondary_DT): Generate new SCIL nodes.
	(Make_Tags): Generate new SCIL nodes.
	(New_SCIL_Node): Removed.
	* exp_util.adb (Insert_Actions): Handle SCIL nodes.
	(Remove_Side_Effects): Check if relocated nodes require readjustment
	of some SCIL dispatching node.
	* gcc-interface/trans.c (gnat_to_gnu): Do nothing with new SCIL nodes.

2009-07-28  Robert Dewar  <dewar@adacore.com>

	* prj-nmsc.adb, g-expect.adb, prj.ads: Minor reformatting

2009-07-28  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi: Add section about gnatcheck rule exemption.

2009-07-28  Vadim Godunko  <godunko@adacore.com>

	* s-oscons-tmplt.c: Define _XOPEN_SOURCE on Linux, otherwise IOV_MAX is
	not defined by limits.h.

	* g-socket.adb (Receive_Vector): Use minimum length from user's vector
	length and maximum supported length of data vector.

2009-07-28  Gary Dismukes  <dismukes@adacore.com>

	* usage.adb: Inhibit printing gcc-specific switches for AAMP target.
	* make.adb: Call Get_Target_Parameters before calling Usage so that
	VM_Target and AAMP_On_Target will be set.

2009-07-28  Olivier Hainque  <hainque@adacore.com>

	* g-ssinty.ads: Remove, pointless and just confusing at this stage.
	* gnat_rm.texi: Remove documentation.
	* g-sse.ads: Minor reorg along the way.
	* gcc-interface/Makefile.in: Remove processing for g-ssinty.
	* g-ssvety.ads: Minor comment updates.

2009-07-28  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi: gnatcheck 'Format of the Report File' section - update
	for the new format of the report file.

2009-07-28  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi: gnatcheck Deeply_Nested_Inlining rule: Update doc.

2009-07-28  Pascal Obry  <obry@adacore.com>

	* g-expect.adb: Record standard handles only on Windows.

2009-07-27  Emmanuel Briot  <briot@adacore.com>

	* prj.ads, prj-nmsc.adb (Override_Kind): add debug trace
	Add comments.

2009-07-27  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi: gnatcheck Unconstrained_Array_Returns rule: Add to the
	rule definition the paragraph that explains that generic functions and
	functions from generic packages are not checked.

2009-07-27  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch6.adb (New_Overloaded_Entity): Add test for an expanded null
	procedure when determining whether to set the Overridden_Operation
	field of a subprogram overriding an inherited subprogram.
	
2009-07-27  Robert Dewar  <dewar@adacore.com>

	* a-except.adb, a-except-2005.ads: Minor reformatting

2009-07-27  Robert Dewar  <dewar@adacore.com>

	* sem_util.adb, sem_util.ads (Kill_Current_Values): Reset Is_Known_Valid

2009-07-27  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Expand_Dispatching_Call): Reverse previous patch and
	add some documentation explaining why the SCIL nodes must be generated
	at that point.

2009-07-27  Olivier Hainque  <hainque@adacore.com>

	* a-except.adb: Bind to __builtin_longjmp directly.
	* a-except-2005.ads: Provide direct binding to __builtin_longjmp
	for sjlj variants.
	* a-exexpr.adb: Use it.
	* a-except-xi.adb: Likewise.
	* raise.c (_gnat_builtin_longjmp): Remove and update comments.
	* raise.h (_gnat_builtin_longjmp): Remove declaration.

2009-07-27  Ed Schonberg  <schonberg@adacore.com>

	* sem_eval.adb (Compile_Time_Compare): More precise handling of
	Known_Valid flag, to prevent spurious range deductions when scalar
	variables may be uninitialized. New predicate Is_Known_Valid_Operand.

2009-07-27  Robert Dewar  <dewar@adacore.com>

	* gnatfind.adb, osint.ads, sem.adb, xr_tabls.adb: Minor reformatting
	and code clean up.

2009-07-27  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch9.adb (Expand_N_Timed_Entry_Call): Do not attempt expansion in
	Ravenscar mode. Error has already been posted on specification.

	* sem.adb: Further code clean ups.

2009-07-27  Robert Dewar  <dewar@adacore.com>

	* g-sse.ads: Minor reformatting

2009-07-27  Arnaud Charlet  <charlet@adacore.com>

	* xref_lib.adb (Add_Xref_File_Internal, Find_ALI_Files): Add support for
	alternate ali extension.
	* xr_tabls.adb (ALI_File_Name, Get_File, Set_Unvisited): Take into
	account Osint.ALI_Suffix.
	* osint.ads (ALI_Suffix): Make visible.
	* gnatfind.adb (Gnatfind): Add support for --ext= switch.
	* gnat_ugn.texi: Document new gnatfind --ext= switch.

2009-07-27  Ed Schonberg  <schonberg@adacore.com>

	* sem.adb (Walk_Library_Items): If main unit is an instance body, do
	its spec first.

2009-07-27  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Expand_Dispatching_Call): Generate the SCIL node after
	the dispatching call has is expanded.

2009-07-27  Ed Schonberg  <schonberg@adacore.com>

	* exp_attr.adb (Expand_Attribute_Reference, case 'Valid): Reset the
	Is_Known_Valid flag on the temporary created for the value whose
	validity is being checked.

	* sem.adb (Do_Unit_And_Dependents): Further code reorganization to
	handle properly main units that are package specifications.

2009-07-27  Geert Bosch  <bosch@adacore.com>

	* einfo.ads (Checks_May_Be_Suppressed): Fix typo in comment
	* sem_aux.ads: Fix typo in comment
	* sem_util.ads (Is_LHS): Adjust comment to match body

2009-07-27  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi (gnatcheck Complex_Inlined_Subprograms rule): Update
	rule definition.

2009-07-27  Olivier Hainque  <hainque@adacore.com>

	* g-sse.ads, g-ssvety.ads: Update comments.

2009-07-27  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi: Update gnatcheck doc.

2009-07-27  Arnaud Charlet  <charlet@adacore.com>

	* lib-xref.ads: Allocate/document 'o' char for use by references to
	spark 'own' variables.

2009-07-27  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch6.adb (Analyze_Function_Return): Set Referenced on return
	objects, since these are implicitly referenced by the return statement.
	* sem_warn.adb (Warn_On_Unreferenced_Entity): No longer a need to test
	Is_Return_Object in this procedure, as return objects will never make
	it here since they're now marked as Referenced.

2009-07-27  Robert Dewar  <dewar@adacore.com>

	* exp_ch2.adb, sem_util.adb, sem_util.ads: Minor reformnatting

2009-07-27  Robert Dewar  <dewar@adacore.com>

	* exp_ch6.adb (Expand_Call): Reset Is_Known_Valid after call

	* sem_ch3.adb, sem_eval.adb, sem_aux.adb: Minor comment reformatting

2009-07-27  Geert Bosch  <bosch@adacore.com>

	* checks.adb (Find_Check): Minor streamlining of logic.
	* gnat1drv.adb(Gnat1drv): Put Check_Rep_Info in its alphabetical order.
	* debug.adb: Document -gnatdX debug flag
	* exp_ch2.adb(Expand_Entity_Reference): Implement new -gnatdX flag to
	list information about reads from scalar entities.
	Also slightly simplify condition for Expand_Current_Value.
	* sem_util.ads, sem_util.adb (Is_LHS, Is_Actual_Out_Parameter): New
	functions.

2009-07-26  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR bootstrap/40578
	* adaint.h (FOPEN, STAT, FSTAT, LSTAT, STRUCT_STAT): Rename from these
	(GNAT_FOPEN, GNAT_STAT, GNAT_FSTAT, GNAT_LSTAT, GNAT_STRUCT_STAT): ...
	to these.
	(__gnat_stat): Adjust reference to STAT in prototype.
	* adaint.c (__gnat_try_lock, __gnat_fopen, __gnat_file_length,
	__gnat_named_file_length, __gnat_file_time_name, __gnat_file_time_fd,
	__gnat_get_libraries_from_registry, __gnat_stat, __gnat_file_exists,
	__gnat_is_regular_file, __gnat_is_directory, __gnat_is_readable_file,
	__gnat_is_writable_file, __gnat_is_executable_file,
	__gnat_set_writable, __gnat_set_executable, __gnat_set_non_writable,
	__gnat_set_readable, __gnat_set_non_readable, __gnat_is_symbolic_link,
	__gnat_copy_attribs): Adjust all references to the above.
	* cstreams.c (__gnat_is_regular_file_fd): Likewise.

2009-07-23  Ed Schonberg  <schonberg@adacore.com>

	* sem.adb (Do_Unit_And_Dependents): Now that specs and bodies are not
	done at the same time, guard against listing a body more than once.

2009-07-23  Robert Dewar  <dewar@adacore.com>

	* exp_ch6.adb: Minor reformatting

2009-07-23  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): A scalar constant with a
	static expression is known valid.
	* sem_eval.adb (Compile_Time_Compare): Handle properly non-static
	operands of a subtype with a single value.

2009-07-23  Ed Schonberg  <schonberg@adacore.com>

	* sem.adb (Do_Units_And_Dependents): Process bodies only for units that
	are in the context of the main unit body.

2009-07-23  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi (Misnamed_Controlling_Parameters gnatcheck rule): Fix
	misprint in rule description.

2009-07-23  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Replace
	test that the object declaration is within an extended return statement
	with direct test of whether the declared object associated with the
	build-in-place call is a return object, since the enclosing function
	might not even be a build-in-place function.

2009-07-23  Robert Dewar  <dewar@adacore.com>

	* freeze.adb, prj-nmsc.adb, errout.adb: Minor reformatting
	Minor code reorganization

2009-07-23  Arnaud Charlet  <charlet@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Do not ignore pragma Pack on records
	for static analysis, only packed arrays are causing troubles.

2009-07-23  Gary Dismukes  <dismukes@adacore.com>

	* sem_aggr.adb (Resolve_Extension_Aggregate): Report an error when the
	ancestor part is a call to a limited function with an unconstrained
	result subtype unless the aggregate has a null extension type.
	* sem_ch3.adb (Is_Null_Extension): Use the base type when retrieving
	the parent type declaration to avoid blowups on subtype cases.

2009-07-23  Robert Dewar  <dewar@adacore.com>

	* par-ch4.adb (P_Aggregate_Or_Paren_Expr): Better message for missing
	comma.

	* sem_util.adb (Wrong_Type): Special message for cases like A and B = 0

	* s-regexp.adb: Minor reformatting
	* scos.ads: Minor reformatting.

2009-07-23  Arnaud Charlet  <charlet@adacore.com>

	* freeze.adb (Set_Small_Size): Remove extra space for consistency with
	other similar messages.
	* sem_prag.adb (Freeze_Record_Type, Freeze_Entity): Disable error
	messages/implicit packing in CodePeer mode.
	(Analyze_Pragma [case pragma Pack]): Ignore pragma in CodePeer mode.
	* errout.adb (Special_Msg_Delete): Suppress 'size too small' message in
	CodePeer mode.

2009-07-23  Pascal Obry  <obry@adacore.com>

	* prj-nmsc.adb: Fix spec/body naming extension on case insensitive
	systems.

2009-07-23  Robert Dewar  <dewar@adacore.com>

	* einfo.ads, g-ssvety.ads, s-regexp.adb, g-sse.ads: Update comment.
	Minor reformatting.

2009-07-23  Yannick Moy  <moy@adacore.com>

	* s-regexp.adb (Check_Well_Formed_Pattern): Called before compiling the
	pattern.
	(Raise_Exception_If_No_More_Chars): Remove extra blank in exception
	string.
	(Raise_Exception): Ditto.

2009-07-23  Olivier Hainque  <hainque@adacore.com>

	* g-sse.ads: Simplify comment.

2009-07-23  Olivier Hainque  <hainque@adacore.com>

	* g-ssinty.ads: New unit. GNAT.SSE.Internal_Types. Factorize
	low level internal type definitions for distinct higher level
	binding development activities (user type definitions and
	operations).
	* gnat_rm.texi: Document it.
	* g-ssvety.ads: Use it.
	* gcc-interface/Makefile.in: (x86 32/64 linux, cygwin32 sections): Add
	g-ssinty.o to EXTRA_GNATRTL_NONTASKING_OBJS.
	* gcc-interface/utils.c (gnat_internal_attribute_table): Add entry
	for the "may_alias" attribute.

2009-07-23  Thomas Quinot  <quinot@adacore.com>

	* scos.ads: Minor typo fix

	* gcc-interface/decl.c (validate_alignment): For the case of an
	implicit array base type, look for alignment clause on first subtype.

2009-07-23  Robert Dewar  <dewar@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_field): Don't check for overlap
	with tagged parent if tagged parent is fully repped.

2009-07-23  Ed Schonberg  <schonberg@adacore.com>

	* sem.adb (Walk_Library_Units): Handle properly the case where a unit
	in the context depends on the spec of the main unit, by delaying
	processing of the main unit body until all other units have been
	processed.

2009-07-23  Arnaud Charlet  <charlet@adacore.com>

	* a-convec.adb: Add comments about suspicious/subtle code.

2009-07-23  Ed Schonberg  <schonberg@adacore.com>

	* einfo.ads: Document use of Alias in private overriding

2009-07-23  Thomas Quinot  <quinot@adacore.com>

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): For the case of
	an array type, propagate alignment from first subtype to implicit base
	type so that other subtypes (such as the itypes for aggregates of the
	type) also receive the expected alignment.

	* g-comlin.ads: Minor documentation clarification/rewording. 
	* scos.ads: Minor comments update.
	* lib-writ.ads: Minor reformatting

2009-07-23  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): For an initialized object
	of a class-wide interface type that is a return object of a
	build-in-place function, bypass the interface-related expansions into
	renamings with displacement conversions, etc.
	* exp_ch5.adb (Expand_N_Extended_Return_Statement): Add an assertion
	for the case where a renaming occurs in a build-in-place context, to
	assert that the bypassing of the build-in-place treatment only occurs
	in the case of a renaming that is an expansion of a return expression
	that is itself a build-in-place function call.

2009-07-23  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Try_Primitive_Operation): A primitive operation is a
	valid candidate interpretation in a prefixed view if it is hidden, but
	overrides an inherited operation declared in the visible part.

2009-07-23  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Expand_N_Type_Conversion): Don't promote integer
	division operands to 64-bit at all in any circumstances.

2009-07-23  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Analyze_N_Op_Rem): Assume operands are valid when
	checking ranges for mod/rem to see if conditional jump will be
	generated.
	(Analyze_N_Op_Rem): Don't try to check actual lower bounds for
	generating special -1 test for rem, generate it whenever both
	operands can be negative (match circuit in Sem_Res).
	(Analyze_N_Op_Rem): Don't go to base type, no longer needed and
	destroys memory of positive range.
	* sem_res.adb (Resolve_Arithmetic_Op): Assume operands are valid when
	checking ranges for mod/rem to see if conditional jump will be generated

2009-07-23  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch3.adb (Build_Equivalent_Record_Aggregate): If the type of a
	scalar components has non-static bounds, the equivalent aggregate
	cannot be built, even if the expression is static, because range checks
	will be generated.

2009-07-23  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Expand_N_Type_Conversion): Don't promote integer
	division operands to 64-bit inside a conversion if 64-bit division not
	available.

2009-07-23  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi: Update doc on Misnamed_Identifiers rule.

2009-07-23  Javier Miranda  <miranda@adacore.com>

	* sinfo.ads, sinfo.adb (SCIL_Entity/Set_SCIL_Entity): new subprograms
	(Entity/Set_Entity): not available in N_Null_Statement nodes
	(Is_Scil_Node): renamed as Is_SCIL_Node
	(Scil_Nkind): renamed as SCIL_Nkind
	(Scil_Related_Node): renamed as SCIL_Related_Node
	(Scil_Target_Prim): renamed as SCIL_Target_Prim
	(Set_Is_Scil_Node): Renamed as Set_Is_SCIL_Node
	(Set_Scil_Related_Node): Renamed as Set_SCIL_Related_Node
	(Set_Scil_Target_Prim): Renamed as Set_SCIL_Target_Prim
	Update documentation
	* exp_disp.ads (Scil_Node_Kind): Renamed as SCIL_Node_Kind
	(Get_Scil_Node_Kind): Renamed as Get_SCIL_Node_Kind
	(New_Scil_Node): Renamed as New_SCIL_Node
	* exp_disp.adb Update all occurrences of New_Scil_Node to New_SCIL_Node.
	(Get_Scil_Node_Kind): Renamed as Get_SCIL_Node_Kind
	(New_Scil_Node): Renamed as New_SCIL_Node
	* exp_ch3.adb Update occurrence of New_Scil_Node to New_SCIL_Node.

2009-07-23  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb: No_Return is an Ada 2005 pragma, not a GNAT pragma
	* snames.ads-tmpl: No_Return is an Ada 2005 pragma, not a GNAT pragma
	* einfo.adb: Minor reformatting

2009-07-23  Robert Dewar  <dewar@adacore.com>

	* checks.adb (Apply_Arithmetic_Overflow_Check): Add comments
	cross-referencing the new related code in
	Exp_Ch4.Expand_N_Type_Conversion.
	* exp_ch4.adb (Expand_N_Type_Conversion): Avoid unnecessary overflows

	* exp_disp.adb, exp_disp.ads, sinfo.ads: Minor reformatting.
	Add comment.

2009-07-23  Javier Miranda  <miranda@adacore.com>

	* sinfo.ads (Is_Scil_Node, Scil_Nkind, Scil_Related_Node,
	Scil_Target_Prim, N_Has_Entity): Add missing documentation.
	* exp_disp.ads (Scil_Node_Kind): Ditto.
	* exp_disp.adb (Make_DT, Make_Tags): Ditto.
	* exp_ch3.adb (Build_Init_Procedure): Ditto.

2009-07-23  Javier Miranda  <miranda@adacore.com>

	* einfo.adb (Component_Type): Add missing assertion.
	* sem_res.adb (Resolve_Call): Ensure proper kind of entity before
	reading attribute Component_Size.
	* exp_ch4.adb (Is_Safe_In_Place_Array_Op): Ensure proper kind of entity
	before reading attributes Component_Size and Component_Type.
	* exp_ch3.adb (Build_Initialization_Call): Ensure proper kind of entity
	before reading attribute Component_Type.

2009-07-23  Olivier Hainque  <hainque@adacore.com>

	* gnat_rm.texi: Document the GNAT.SSE units.

2009-07-23  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Return_Type): Do not create itype reference for
	not null return if it appears on a subunit.

2009-07-23  Robert Dewar  <dewar@adacore.com>

	* exp_ch5.adb (Expand_N_Assignment_Statement): Do left-side validity
	check right away so it does not get skipped for early returns, e.g.
	array assignments.
	(Expand_N_Assignment_Statement): Don't propagate Is_Known_Valid to
	left-side unless we really know the value is valid.

	* errout.adb, exp_ch3.adb, exp_disp.ads, sinfo.ads, exp_disp.adb: Minor
	reformatting. Minor code reorganization. Add comments.

2009-07-23  Robert Dewar  <dewar@adacore.com>

	* get_scos.adb (Skip_EOL): Fix error of mishandling end of line after
	complex condition.

2009-07-23  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch6.adb (Check_Return_Subtype_Indication): Replace type equality
	with test of coverage, to allow specific type objects in extended
	returns of class-wide functions. Remove now-unnecessary special-case
	tests that allowed this in certain cases of expanded extended returns.

2009-07-23  Javier Miranda  <miranda@adacore.com>

	* sinfo.ads,sinfo.adb (Entity/Set_Entity): Attribute available in
	N_Null_Statements (for SCIL nodes).
	(Is_Scil_Node/Set_Is_Scil_Node): New attribute (for SCIL nodes).
	(Scil_Nkind/Set_Scil_Nkind): New attribute (for SCIL nodes).
	(Scil_Related_Node/Set_Scil_Related_Node): New attribute (for SCIL
	nodes).
	(Scil_Target_Prim/Set_Scil_Target_Prim): New attribute (for SCIL nodes).
	* exp_disp.adb (Expand_Dispatching_Call): Add generation of SCIL node
	associated with dispatching call.
	(Get_Scil_Node_Kind): New function that returns the kind of SCIL node.
	(Make_DT, Make_Tags): Add generation of SCIL nodes associated with
	initialization of dispatch tables and initialization of tags.
	(New_Scil_Node): New function that creates a new SCIL node.
	(Build_Init_Procedure): Add generation of SCIL node associated with the
	initialization of tags done in the IP subprogram.

2009-07-23  Ed Schonberg  <schonberg@adacore.com>

	* errout.adb (Error_Msg_NEL): If the entity in the initial message has
	Warnings_Off, do not emit continuation messages.

	* sem_ch10.adb: Set Is_Compilation_Unit on generated child subprogram
	spec.

2009-07-23  Emmanuel Briot  <briot@adacore.com>

	* ali.adb: Minor comment update

2009-07-23  Vasiliy Fofanov  <fofanov@adacore.com>

	* s-win32.ads (HANDLE): Define to be the same size as address type.
	Fix copyright.

2009-07-23  Olivier Hainque  <hainque@adacore.com>

	* g-sse.ads: New file. Root of the SSE facilities trees, with
	general description and common declarations.
	* g-ssvety.ads: New file. Expose user level SSE vector types.
	* impunit.adb (Non_Imp_File_Names_95): Register new units.
	* gcc-interface/Makefile.in (x86 32/64 linux, win32): Add
	EXTRA_GNATRTL_NONTASKING_OBJS entries for SSE units.

2009-07-23  Ben Brosgol  <brosgol@adacore.com>

	* gnat_ugn.texi: Wordsmithing.

2009-07-23  Arnaud Charlet  <charlet@adacore.com>

	* prj-conf.ads, prj-conf.adb: Switch to GPLv3.

2009-07-22  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_aggr.adb (Gen_Loop): Do not qualify the bounds of the range if
	they are already of the base type of the index.

2009-07-22  Brett Porter  <porter@adacore.com>

	* sysdep.c, init.c: Fix typo: _SPE_ should have been __SPE__.

2009-07-22  Robert Dewar  <dewar@adacore.com>

	* vms_data.ads: Add entry for SCO_OUTPUT (-gnateS)
	* gnat_ugn.texi: Add documentation for -gnateS switch
	* ug_words: Add entry for -gnateS /SCO_OUTPUT
	* gcc-interface/Make-lang.in: Update dependencies.

	* get_scos.adb, get_scos.ads, gnat1drv.adb, par_sco.adb,
	par_sco.ads, put_scos.adb, put_scos.ads, scos.adb, scos.ads: Initial
	complete information for SCO input/output.

2009-07-22  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi: Update doc for some gnatcheck rules.

2009-07-22  Robert Dewar  <dewar@adacore.com>

	* par_sco.adb, par_sco.ads (pscos): New debug routine to output
	contents of SCO tables.
	* put_scos.adb, put_scos.ads, get_scos.adb, get_scos.ads,
	scos.adb, scos.ads: New files.
	* gcc-interface/Make-lang.in: Update dependencies.

	* lib-util.ads, gnatbind.ads, ali.ads, binderr.ads: Minor comment
	fixes and reformatting.

2009-07-22  Robert Dewar  <dewar@adacore.com>

	* g-socket.ads: Minor reformatting

2009-07-22  Gary Dismukes  <dismukes@adacore.com>

	* sem_warn.adb (Warn_On_Unreferenced_Entity): Add warning messages that
	include the entity kind for following cases of unreferenced entities:
	E_Label, E_Discriminant, E_Package, E_Exception, and Formal_Object_Kind.

2009-07-22  Ed Falis  <falis@adacore.com>

	* s-vxwext-kernel.adb, s-vxwext-kernel.ads: Replace use of taskStop
	with taskSuspend.

2009-07-22  Arnaud Charlet  <charlet@adacore.com>

	* adadecode.c: Make this file compilable outside of GCC.

2009-07-22  Thomas Quinot  <quinot@adacore.com>

	* g-socket.adb, g-socket.ads (Check_Selector): Make sure that
	(partially) default-initialized socket sets are handled properly by
	clearing their Set component.

2009-07-22  Bob Duff  <duff@adacore.com>

	* gnat_ugn.texi: Clarify the -gnatVx (validity checking) switches.

2009-07-22  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Minor reformatting

2009-07-22  Ed Schonberg  <schonberg@adacore.com>

	* errout.adb (Error_Msg): A style message within an instantiation
	should not be labelled as an error.

2009-07-22  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_Entity): Do not generate extra formal for function
	in initialization expression if function does not have convention Ada.

2009-07-22  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi, vms_data.ads: Add qualifier for new gnatpp option
	'--separate-label' to control label layout.

2009-07-22  Robert Dewar  <dewar@adacore.com>

	* exp_tss.ads, sem_eval.adb: Minor reformatting

2009-07-22  Bob Duff  <duff@adacore.com>

	* exp_dist.adb, exp_dist.ads: Update comments.

2009-07-22  Brett Porter  <porter@adacore.com>

	* init.c (__gnat_init_float): For SPE, set bits in SPEFSCR instead of
	FPSCR.
	* sysdep.c (__gnat_get_task_options): Set task option enabling SPE.

2009-07-22  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch5.adb, sem_util.adb, sem_attr.adb, exp_dbug.ads, exp_ch2.adb,
	exp_tss.ads, exp_ch4.adb, sem_ch4.adb: Correct spelling error.
	Minor reformatting.
	* sem_res.adb (Resolve_Explicit_Dereference): Reword one comment that
	used poor terminology.

2009-07-22  Robert Dewar  <dewar@adacore.com>

	* freeze.adb, sem_ch3.adb, sem_prag.adb: Minor reformatting
	* sem_eval.adb, exp_tss.adb: Minor comment update.
	* stylesw.adb: Code clean up.

2009-07-22  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_Entity): If Implicit_Packing is enabled, and the
	component size is an exact number of bytes, an array type can have a
	size clause that forces packing even though the array type itself is
	not bit-packed.

2009-07-22  Thomas Quinot  <quinot@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): For a constant declaration,
	if there is a previous entity with the same name in the scope, ignore
	it if it is the renaming declaration for a generic package introduced
	in instances.

2009-07-22  Nicolas Roche  <roche@adacore.com>

	* seh_init.c: use RtlAddFunctionTable to register our SEH exception
	handler on x86_64 windows.

2009-07-22  Arnaud Charlet  <charlet@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Initialize/Normalize_Scalars create
	false positives in CodePeer, so ignore this pragma in this mode.

2009-07-22  Thomas Quinot  <quinot@adacore.com>

	* sem_util.adb, sem_ch10.adb: Minor reformatting

	* g-socket.adb (Receive_Socket, recvfrom(2) variant): Apply required
	special handling for the case of no data received and Item'First =
	Stream_Element_Offset'First.
	(Last_Index): New subprogram factoring the above special handling
	over the various locations where it is required.

2009-07-22  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb (Gnat1drv): Also disable division by zero and alignment
	checks in CodePeer_Mode.
	* gcc-interface/Make-lang.in: Update dependencies.

2009-07-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb: Improve error message.

	* sem_ch13.adb: If Ignore_Rep_Clauses is enabled, do a minimal analysis
	of an address representation clause.
	* freeze.adb (Freeze_Static_Object): An local imported object is legal
	if it has an address clause.

2009-07-22  Thomas Quinot  <quinot@adacore.com>

	* sem_elab.adb (Insert_Elab_Check): When relocating an overloaded
	expression to insert an elab check using a conditional expression, be
	sure to carry the original list of interpretations to the new location.

2009-07-22  Gary Dismukes  <dismukes@adacore.com>

	* gnat1drv.adb: Fix spelling error.

2009-07-22  Javier Miranda  <miranda@adacore.com>

	* sem_type.ads, sem_type.adb (In_Generic_Actual): Leave this subprogram
	at the library level and fix a hidden bug in its implementation: its
	functionality for renaming objects was broken because
	N_Object_Renaming_Declarations nodes are not a subclass of
	N_Declaration nodes (as documented in sinfo.ads).
	* sem_util.adb (Check_Dynamically_Tagged_Expression): Include in this
	check nodes that are actuals of generic instantiations.

2009-07-22  Ed Schonberg  <schonberg@adacore.com>

	* sinfo.ads, sinfo.adb (Pending_Context): New flag to indicate that the
	context of a compilation unit is being analyzed. Used to detect
	circularities created by with_clauses that are not detected by the
	loading machinery.
	* sem_ch10.adb (Analyze_Compilation_Unit): Set Pending_Context before
	analyzing the context of the current compilation unit, to detect
	possible circularities created by with_clauses.

2009-07-22  Thomas Quinot  <quinot@adacore.com>

	* sem_type.adb (Get_First_Interp): Fix wrong loop exit condition.

2009-07-22  Robert Dewar  <dewar@adacore.com>

	* sem_res.adb (Check_No_Direct_Boolean_Operators): Add check for -gnatyB
	* style.ads, styleg.adb, styleg.ads (Check_Boolean_Operator): New
	procedure.
	* usage.adb, stylesw.ads, stylesw.adb: Add handling of -gnatyB switch
	* gnat_ugn.texi: Add documentation of -gnatyB
	* vms_data.ads: Add entry for -gnatyB (STYLE=BOOLEAN_OPERATORS)

2009-07-22  Robert Dewar  <dewar@adacore.com>

	* s-stchop.adb, a-direct.adb, a-ztexio.adb, gnatchop.adb, prj-proc.adb,
	make.adb, s-regpat.adb, ali-util.adb, a-ngcefu.adb, prep.adb,
	s-tassta.adb, a-tifiio.adb, a-textio.adb, prj.adb, uintp.adb,
	s-valrea.adb, a-ngelfu.adb, prepcomp.adb, sinput-l.adb, vms_conv.adb,
	errout.adb, g-alleve.adb, repinfo.adb, a-wtedit.adb, ali.adb,
	a-witeio.adb, prj-dect.adb, prj-nmsc.adb, sinput-c.adb, binde.adb,
	s-regexp.adb, s-imgrea.adb, a-teioed.adb, errutil.adb, prj-util.adb,
	a-ztedit.adb, gnatls.adb, prj-conf.adb, bcheck.adb, s-scaval.adb,
	erroutc.adb, osint.adb, a-strfix.adb, s-fileio.adb: Make sure sources
	obey short-circuit style rule.

2009-07-20  Bob Duff  <duff@adacore.com>

	* sem_ch13.adb (Analyze_Record_Representation_Clause): Use "and then"
	instead of "and", because otherwise Parent_Last_Bit is read
	uninitialized in the case where it's not a tagged type, or the tagged
	parent does not have a complete rep clause.

2009-07-20  Robert Dewar  <dewar@adacore.com>

	* stylesw.ads: Minor documentation change.

	* types.ads: Minor reformatting

2009-07-20  Javier Miranda  <miranda@adacore.com>

	* exp_disp.ads (Apply_Access_Checks): New subprogram that takes care of
	generating the tag checks associated with dispatching calls.
	* exp_disp.adb (Apply_Access_Checks): New subprogram.
	(New_Value): This routine was previously local to expand dispatching
	calls but it is now used also by Apply_Access_Checks.
	(Expand_Dispatching_Calls): Cleanup code because the functionality of
	tag checks is now provided by Apply_Access_Checks. 
	* exp_ch6.adb (Expand_Call): Incorporate generation of tag checks in
	case of dispatching calls.

2009-07-20  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb (Gnat1drv): Also disable Elaboration_Check in
	CodePeer_Mode.

2009-07-20  Gary Dismukes  <dismukes@adacore.com>

	* exp_prag.adb (Expand_Pragma_Import_Export_Exception): When compiling
	for VMS, only rewrite the first component of the associated exception's
	aggregate init (as 'V'), and eliminate the bogus rewrites of the second
	and third components  that were being replaced with 'M' and 'S'.

2009-07-20  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb (Gnat1drv): Suppress access checks in CodePeer mode.
	Also do not generate error when parsing a spec in CodePeer mode.

2009-07-20  Javier Miranda  <miranda@adacore.com>

	* checks.adb (Apply_Access_Check): Avoid checks on availability of
	runtime function Offset_To_Top_Ptr when compiling with no tagged
	types expansion.
	* exp_ch3.adb (Build_Init_Procedure): Leave open the possibility of
	adding code to the init proc when compiling for VM backends.

2009-07-20  Vincent Celier  <celier@adacore.com>

	* switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Take into
	account switches -gnatw.?

2009-07-20  Thomas Quinot  <quinot@adacore.com>

	* sem_dist.adb, exp_dist.adb: Minor reformatting

	* Make-generated.in: New file.

	* gcc-interface/Make-lang.in: Use Make-generated.in fragment.

2009-07-20  Javier Miranda  <miranda@adacore.com>

	* sem_util.ads, sem_util.adb (Check_Dynamically_Tagged_Expression): New
	subprogram.
	* sem_aggr.adb (Resolve_Array_Aggregate): Check incorrect use of
	dynamically tagged expression.
	* sem_ch3.adb (Analyze_Object_Declaration): Call new routine that
	factorizes code.
	* sem_ch6.adb (Analyze_Function_Return, Process_Formals): Ditto.
	* sem_ch8.adb (Analyze_Object_Renaming): Ditto.

2009-07-20  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb (Gnat1drv): Set operating mode to Generate_Code when
	CodePeer_Mode is set, to benefit from full front-end expansion
	(e.g. generics).

2009-07-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb: Add guard.

	* exp_disp.adb, sem_disp.adb (Make_DT): Check underlying view of type
	for possible attribute definition of External_Tag, in case clause
	appears in the private part of a package.

2009-07-20  Jerome Guitton  <guitton@adacore.com>

	* gcc-interface/Makefile.in: cleanup powerpc linux target pairs.

2009-07-20  Vadim Godunko  <godunko@adacore.com>

	* a-coorma.adb: Minor reformatting.

2009-07-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3 (Build_Itype_Reference): Make public, for use on non-null
	access return types.
	* sem_ch6.adb (Analyze_Return_Type): If return is a not null subtype,
	provide an itype reference to gigi to force elaboration of the subtype
	at the proper point.

2009-07-20  Tristan Gingold  <gingold@adacore.com>

	* g-expect.adb: Avoid closeing already closed handle.

2009-07-20  Robert Dewar  <dewar@adacore.com>

	* sprint.adb (Write_Subprogram_Name): New procedure to output
	subprogram name with possible preceding $ (replaces
	Note_Implicit_Run_Time_Call).

2009-07-20  Robert Dewar  <dewar@adacore.com>

	* vms_data.ads: Minor reformatting

	* einfo.ads, einfo.adb (Parent_Subtype): Now allowed on record subtype,
	applies to base type.
	(Parent_Subtype): Now allowed on record subtype, applies to base type
	* exp_ch5.adb (Expand_Assign_Record): Handle Componentwise_Assignment
	for case of fully repped tagged type.
	(Make_Tag_Ctrl_Assignment): Set Componentwise_Assignment and avoid
	tag save/restore for fully repped tagged type case.
	* exp_util.ads, exp_util.adb (Is_Fully_Repped_Tagged_Type): New function
	* fe.h (Is_Fully_Repped_Tagged_Type): New function
	* sem_ch13.adb (Analyze_Recorrd_Representation_Clause): Check for
	overlap of tagged type components with parent type if parent type is
	fully repped.
	* sinfo.ads, sinfo.adb (Componentwise_Assignment): New flag

	* sem_res.adb (Check_No_Direct_Boolean_Operators): Remove handling of
	comparisons.
	(Resolve_Comparison_Operators): Remove No_Direct_Boolean_Operators check
	(Resolve_Equality_Op): Remove No_Direct_Boolean_Operators check

	* gnat_rm.texi: Restriction No_Direct_Boolean_Operators includes only
	logical operators (AND/OR/XOR), not comparison operators.

	* sprint.ads: Minor reformatting

2009-07-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_intr.adb (Check_Intrinsic_Call): For Import_Value and related
	intrinsics, check that argument is a string literal, rather than
	checking for staticness.

2009-07-20  Robert Dewar  <dewar@adacore.com>

	* sem_ch13.adb: Minor reformatting

	* einfo.ads: Minor reformatting
	Component_Bit_Offset is no longer considered obsolescent

2009-07-20  Nicolas Roche  <roche@adacore.com>

	* a-calend.adb: Redefine time_t as signed integer with same size as
	Address type.
	* s-os_lib.ads: Redefine OS_Time as signed integer with same size as
	Address type
	* adaint.h: On Windows 64bits declare OS_Time as long long instead of
	long

2009-07-20  Javier Miranda  <miranda@adacore.com>

	* exp_tss.adb (Init_Proc): Add missing support for non-default C++
	constructors that have anonymous access type formals.

	* sem_res.adb (Resolve_Actuals): Disable checks associated with Ada
	class-wide arguments in case of imported C++ subprograms.

	* exp_ch3.adb (Build_Initialization_Call): Add assertion.

2009-07-20  Sergey Rybin  <rybin@adacore.com>

	* vms_data.ads: Update qualifiers.

2009-07-20  Robert Dewar  <dewar@adacore.com>

	* einfo.ads, switch.adb, gnatls.adb, inline.adb, sem_ch13.adb: Minor
	reformatting

2009-07-17  Richard Guenther  <rguenther@suse.de>

	PR c/40401
	* gcc-interface/utils.c (end_subprog_body): Revert to pre-tuples
	state.  Remove unused parameter.
	(gnat_gimplify_function): Do not gimplify here.
	Fold into its only caller and remove.
	(gnat_builtin_function): Adjust for end_subprog_body signature change.
	(gnat_write_global_declarations): Also finalize the CU.
	* gcc-interface/misc.c (gnat_parse_file): Do not finalize the CU here.
	* gcc-interface/trans.c (gigi): Revert to pre-tuples state.
	(Subprogram_Body_to_gnu): Adjust for end_subprog_body signature
	change.
	* gcc-interface/gigi.h (end_subprog_body): Remove unused parameter.

2009-07-15  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in: Update dependencies

	* gcc-interface/Makefile.in: Add target pairs for PPC/Xenomai

2009-07-15  Robert Dewar  <dewar@adacore.com>

	* par_sco.adb (Traverse_Declarations_Or_Statements): Add processing for
	N_Label. Remove SCO table entry for entry point (not used).

	* par_sco.ads: Remove SCO entry point type (not used)

	* switch.adb: Minor code clean up.

2009-07-15  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_dbug.ads (Base Record Types): Document enhanced encoding.

2009-07-15  Thomas Quinot  <quinot@adacore.com>

	* gnatls.adb: Minor reformatting

	* gnatcmd.adb: Minor code reorganization

2009-07-15  Ed Schonberg  <schonberg@adacore.com>

	* exp_util.adb (Component_May_Be_Bit_Aligned): Use underlying type to
	determine whether a component of a private type has a composite type.

2009-07-15  Robert Dewar  <dewar@adacore.com>

	* sem_ch10.adb: Minor reformatting throughout
	Minor code reorganization (put nested subprograms in alpha order)

2009-07-15  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb (Expand_Call): Prevent double attachment of the result
	when compiling a call to a protected function that returns a controlled
	object.

2009-07-15  Hristian Kirtchev  <kirtchev@adacore.com>

	* sysdep.c (__gnat_localtime_tzoff): Consolidate the Lynx cases into
	one. Add task locking and unlocking around the critical region which
	mentions localtime_r and global variable timezone for various targets.
	Comment reformatting.

2009-07-15  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Document s-ststop.ads

	* impunit.ad: (Map_Array): New table of alternative names
	(Get_Kind_Of_Unit): Return possible suggested alternative name

	* impunit.ads (Get_Kind_Of_Unit): Return possible suggested
	alternative name.

	* sem_ch10.adb (Analalyze_With_Clause): Add name of possible
	alternative unit if an implementation unit is with'ed.

2009-07-15  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Minor updates.

	* snames.ads-tmpl: Minor comment updates for Ada 2005 fully implemented

2009-07-15  Ed Schonberg  <schonberg@adacore.com>

	* sem_warn.adb (Warn_On_Constant_Condition): Handle properly constant
	conditions of a derived boolean type.
	Minor reformatting

2009-07-15  Robert Dewar  <dewar@adacore.com>

	* gnat1drv.adb: Initialize SCO tables

	* par-load.adb: Call SCO_Record for main unit spec

	* par.adb: Make call to SCO_Record for main unit

	* par_sco.adb (Unit_Table): Change format to facilitate sort
	(Process_Decisions): New procedure with list argument
	(Traverse_Generic_Package_Declaration): New procedure
	(Initialize): New procedure, replaces Init
	(SCO_Output): Sort unit table before output
	(SCO_Record): Avoid duplications
	(SCO_Record): Handle remaining cases of units
	(Traverse_Declarations_Or_Statements): Handle generics

	* par_sco.ads (Initialize): New peocedure (replaces Init)

	* sem_ch10.adb (Analyze_Proper_Body): Make call to SCO_Record for
	subunit.

2009-07-15  Arnaud Charlet  <charlet@adacore.com>

	* debug.adb: Add -gnatd.J switch for now to support scil generation in
	parallel. Add missing doc for -gnatd.I and -gnatd.O

2009-07-15  Robert Dewar  <dewar@adacore.com>

	* lib-load.adb: Minor reformatting

	* lib-writ.adb (Write_ALI): Fix handling of SCO_Output wrt Generate_SCO.

2009-07-15  Robert Dewar  <dewar@adacore.com>

	* par.adb: Minor reformatting
	Add ??? comment for possible bad comment

	* par-ch10.adb: Minor reformatting

2009-07-15  Ed Schonberg  <schonberg@adacore.com>

	* sem_warn.adb (Warn_On_Constant_Condition): if the constant condition
	is a literal of a derived boolean type, it appears as an unchecked
	conversion. Retrieve actual value from expression of conversion.

2009-07-15  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb: Minor reformatting

	* lib-xref.ads, lib-xref.adb, lib.ads, par_sco.ads, par_sco.adb,
	lib-writ.ads, lib-writ.adb: Minor reformatting.
	Fix problem with SCO format in ALI files

2009-07-15  Robert Dewar  <dewar@adacore.com>

	* exp_ch7.adb, exp_util.adb, tbuild.adb, tbuild.ads, exp_ch4.adb,
	exp_aggr.adb: Minor code reorganization (better calling sequence for
	Make_Temporary).

2009-07-15  Thomas Quinot  <quinot@adacore.com>

	* opt.ads: Minor comment edits

2009-07-15  Tristan Gingold  <gingold@adacore.com>

	* gcc-interface/Makefile.in: Special rule for seh_init.o no longer
	needed.

2009-07-15  Robert Dewar  <dewar@adacore.com>

	* lib-writ.adb (Write_Unit_Information): Use SCO_Output to output SCO
	information.

	* lib-writ.ads: Document addition of SCO lines to ALI file

	* par_sco.ads, par_sco.adb: New files.

	* opt.ads (Generate_SCO): New switch

	* par.adb (Par): Call SCO_Record to record SCO information

	* sem_warn.adb (Warn_On_Constant_Condition): Adjust SCO condition

	* switch-c.adb: Recognize -gnateS to generate SCO information

	* usage.adb: Add line for -gnateS

	* gcc-interface/Make-lang.in: Add dependency on par_sco.o for gnat1

2009-07-15  Robert Dewar  <dewar@adacore.com>

	* sinfo.ads, make.adb, par.ads, par.adb, sem_warn.adb: Minor
	reformatting.

2009-07-15  Thomas Quinot  <quinot@adacore.com>

	* g-socthi-mingw.adb: Minor comment addition

	* g-socthi-mingw.ads (WSAStartup): First argument is a WORD not an int.

2009-07-15  Robert Dewar  <dewar@adacore.com>

	* g-htable.ads, s-htable.ads: Minor reformatting

2009-07-15  Robert Dewar  <dewar@adacore.com>

	* switch-c.adb, sem_ch10.adb, sem_warn.adb, sem_warn.ads: Implement
	new switch -gnatw.g.
	(Set_GNAT_Mode_Warnings): New procedure.

	* lib-xref.adb: Minor reformatting

2009-07-15  Robert Dewar  <dewar@adacore.com>

	* exp_aggr.adb, tbuild.ads, tbuild.adb: Minor reformatting
	Minor code reorganization

2009-07-14  Taras Glek  <tglek@mozilla.com>
	    Rafael Espindola  <espindola@google.com>

	* gcc-interface/Make-lang.in (ada.install-plugin): New target for
	installing plugin headers.

2009-07-13  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch7.adb, exp_util.adb, tbuild.adb, tbuild.ads, exp_ch4.adb,
	exp_aggr.adb (Make_Temporary): Utility to create a defining identifier
	and link it to the expression whose value it captures.

2009-07-13  Robert Dewar  <dewar@adacore.com>

	* output.adb: Minor comment addition for last change

	* sinfo.ads: Minor reformatting

2009-07-13  Vasiliy Fofanov  <fofanov@adacore.com>

	* adaint.c (__gnat_portable_no_block_spawn): on Windows, return -1 when
	spawn failed like on all other targets.

2009-07-13  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch7.adb: Indicate origin of temporary for transient expression.

2009-07-13  Thomas Quinot  <quinot@adacore.com>

	* s-oscons-tmplt.c: Add comment.

2009-07-13  Robert Dewar  <dewar@adacore.com>

	* sinfo.adb, sinfo.ads, sem_util.adb, atree.adb, atree.ads: Minor
	reformatting. Minor code reorganization (add 9 argument version of
	Nkind_In).

	* impunit.adb: Remove s-os_lib from list of system extensions.

	* sem_util.ads: Minor reformatting

	* output.adb: Add warnings off/on around System.OS_Lib.

2009-07-13  Bob Duff  <duff@adacore.com>

	* exp_dist.adb: Minor comment updates.

2009-07-13  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch10.adb, sem_ch12.adb, gnat1drv.adb, exp_ch4.adb: Fix casing of
	several references to CodePeer.

2009-07-13  Bob Duff  <duff@adacore.com>

	* exp_dist.adb (Build_From_Any_Function,Build_To_Any_Function,
	Build_TypeCode_Function_All): Do not recurse if the type is the base
	type.

2009-07-13  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb: Minor comment change

2009-07-13  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Iteration_Scheme): Generate dummy reference for
	type of iteration, to prevent spurious warnings.

2009-07-13  Nicolas Roche  <roche@adacore.com>

	* s-oscons-tmplt.c: On VxWorks target ensure that vxWorks.h is always
	included.

2009-07-13  Arnaud Charlet  <charlet@adacore.com>

	* switch-c.adb, usage.adb, sem_ch9.adb, gnat_ugn.texi, rtsfind.adb,
	gnat1drv.adb, opt.ads, sem_ch13.adb (Inspector_Mode): Renamed to
	Generate_SCIL.
	(CodePeer_Mode): New -gnatC switch.
	(Adjust_Global_Switches): Adjust settings for Generate_SCIL and
	CodePeer_Mode.

2009-07-13  Eric Botcazou  <ebotcazou@adacore.com>

	* checks.adb (Selected_Range_Checks): Do not consider that a non-static
	integer bound forces the check if it is compared to its subtype range.

2009-07-13  Robert Dewar  <dewar@adacore.com>

	* prj.ads, prj-dect.adb, prj-err.ads, prj-err.adb, prj-nmsc.adb,
	prj-strt.ads: Minor reformatting

2009-07-13  Thomas Quinot  <quinot@adacore.com>

	* exp_dist.adb (Build_From_Any_Call): For the case of a generic type,
	set the type of the From_Any call to the base type.

2009-07-13  Doug Rupp  <rupp@adacore.com>

	* symbols-processing-vms-ia64.adb (Process): Add variables and
	constants to retrieve and check for symbol visibility.

2009-07-13  Javier Miranda  <miranda@adacore.com>

	* exp_ch4.adb (Expand_N_Unchecked_Type_Conversion): If conversion is to
	the identical type we remove the conversion completely because
	it is useless.

2009-07-13  Emmanuel Briot  <briot@adacore.com>

	* prj-err.adb (Error_Msg): One more case where a message should be
	considered as a warning.

	* gnatcmd.adb (GNATCmd): Fix previous change, which negated a test.

2009-07-13  Thomas Quinot  <quinot@adacore.com>

	* exp_dist.adb (Expand_All_Calls_Remote_Subprogram_Call): Analyze
	calling stubs in the (library level) scope of the RCI locator, where it
	is attached, not in the caller's scope.

2009-07-13  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): In case of class-wide
	interface object declarations we delay the generation of the equivalent
	record type declarations until its expansion because there are cases in
	which they are not required.            

	* sem_util.adb (Implements_Interface): Add missing support for subtypes.

	* sem_disp.adb (Check_Controlling_Formals): Minor code cleanup plus
	addition of assertion.

	* exp_util.adb (Expand_Subtype_From_Expr): Renamings of class-wide
	interface types require no equivalent constrained type declarations
	because the expanded code only references the tag component associated
	with the interface.
	(Find_Interface_Tag): Improve management of interfaces that are
	ancestors of tagged types.

	* exp_ch3.adb (Expand_N_Object_Declaration): Improve the expansion of
	class-wide object declarations to add missing support to statically
	displace the pointer to the object to reference the tag component
	associated with the interface.

	* exp_disp.adb (Make_Tags) Avoid generation of internally generated
	auxiliary types associated with user-defined dispatching calls if the
	type has no user-defined primitives.

2009-07-13  Vasiliy Fofanov  <fofanov@adacore.com>

	* mingw32.h: Make it explicit that we need XP or later.

	* initialize.c: Remove useless extern symbol declaration.

	* adaint.h: Ditto, also expose __gnat_win32_remove_handle to allow
	code reuse in expect.c.

	* adaint.c: Changes throughout the Windows section to redesign storage
	of the child process list and the process identification.

	* expect.c (__gnat_kill, __gnat_waitpid): Simplify, cleanup, use pids
	for interfacing, fix errors.
	(__gnat_expect_portable_execvp): use function in adaint.c

2009-07-13  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, prj-part.adb, prj-part.ads, prj-strt.adb,
	prj-strt.ads, prj.adb, prj.ads, prj-makr.adb, prj-makr.ads,
	prj-dect.adb, prj-dect.ads, prj-nmsc.adb, prj-pars.adb, errutil.adb,
	errutil.ads, prj-conf.adb, gnatname.adb, prj-err.adb, prj-err.ads
	(Prj.Nmsc.Report_Error): Removed, no longer needed.
	Always use Prj.Err.Report_Message.

2009-07-13  Robert Dewar  <dewar@adacore.com>

	* prj.adb, sem_ch4.adb, sem_res.adb, prj-nmsc.adb: Minor reformatting
	& comment edits.

2009-07-13  Robert Dewar  <dewar@adacore.com>

	* opt.ads, prj-conf.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
	prj-proc.adb, prj-tree.adb, prj-tree.ads: Minor reformatting

2009-07-13  Emmanuel Briot  <briot@adacore.com>

	* prj.adb, prj.ads, prj-env.adb, prj-conf.adb, prj-tree.adb,
	mlib-prj.adb (Private_Part.Ada_Prj_Objects_File_Set,
	Ada_Prj_Include_File_Set): Removed, since not needed
	Code clean up.

2009-07-13  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Set_Membership): New procedure, subsidiary of
	Analyze_Membership_Op.

	* sem_res.adb (Resolve_Set_Membership): New procedure, subsidiary of
	Resolve_Membership_Op.

	* exp_ch4.adb (Expand_Set_Membership): New procedure, subsidiary of
	Expand_N_In.

2009-07-13  Robert Dewar  <dewar@adacore.com>

	* clean.adb: Minor reformattting

2009-07-13  Emmanuel Briot  <briot@adacore.com>

	* gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj-ext.adb,
	gnat_ugn.texi, prj.adb, prj.ads, clean.adb, prj-nmsc.adb, prj-util.adb,
	prj-conf.adb, gnatname.adb, prj-env.adb, prj-env.ads, prj-tree.adb,
	prj-tree.ads (Prj.Tree.Create*): New subprograms to create new packages
	and attributes in a project tree.
	(Add_Default_GNAT_Naming_Scheme): Provide real implementation.
	Remove last remaining mode-specific code (ada_only or
	multi_language). This was duplicating code
	(Get_Mode, Set_Mode): removed, no longer used.
	(Initialize_Project_Path): all tools will now take into account both
	GPR_PROJECT_PATH and ADA_PROJECT_PATH (in that order).
	Remove some global variables and subprograms no longer used
	Make temporary files tree-specific, to avoid interferences between
	trees loaded in memory at the same time.
	(Prj.Delete_Temporary_File): new subprogram
	(Object_Paths, Source_Paths): fields no longer stored in the project
	tree, since they are only needed locally in Set_Ada_Paths.
	(Set_Mapping_File_Initial_State_To_Empty): removed, since had no
	effect in practice.
	(Project_Tree_Data.Ada_Path_Buffer): removed, since it can be replaced
	by local variables in the appropriate subprograms
	(Has_Foreign_Sources): removed.

        * gcc-interface/Makefile.in: prj-pp.o is now needed to build gnatmake

2009-07-13  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): No longer set
	Back_Annotate_Rep_Info in inspector mode.
	(Gnat1Drv): Need to call the back-end in inspector mode to generate SCIL

	* opt.ads: Update comment.

2009-07-13  Robert Dewar  <dewar@adacore.com>

	* lib.adb, prj-nmsc.adb, prj-proc.adb, prj-proc.ads, prj.adb,
	prj.ads: Minor reformatting and code reorganization.

	* par-ch3.adb (Check_Restricted_Expression): New procedure

2009-07-13  Ed Schonberg  <schonberg@adacore.com>

	* exp_attr.adb (Rewrite_Stream_Proc_Call): When rewriting a stream
	attribute into a call of the corresponding suprogram, create extra
	formals for the subprogram, because it may be a renaming whose
	analysis does not create extra formals.

2009-07-13  Emmanuel Briot  <briot@adacore.com>

	* gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, prj-part.adb,
	prj.adb, prj.ads, clean.adb, prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb,
	prj-pars.ads, prj-conf.adb, prj-conf.ads, prj-env.adb, prj-tree.adb,
	prj-tree.ads: Minor reformatting.
	(Processing_Flags): new record to encapsulate the set of common
	parameters to several subprograms in the project manager.
	(Prj.Nmsc.Process_Naming_Scheme): renames Check, and moved to body
	Remove the need for the Current_Dir parameter in subprograms.
	(Look_For_Sources): minor refactoring, now that we no longer need to
	share subprograms between the two Ada_Only and Multi_Language modes
	(Processing_Flags): New field Error_On_Unknown_Language.
	Merge tests for library project between gnatmake and gprbuild.

2009-07-13  Arnaud Charlet  <charlet@adacore.com>

	* lib.adb, make.adb, mlib.adb, exp_dist.adb: Update comments.
	Minor reformatting.

2009-07-13  Emmanuel Briot  <briot@adacore.com>

	* prj-env.adb (Create_Config_Pragmas_File): Iterate on sources rather
	than units.

2009-07-13  Thomas Quinot  <quinot@adacore.com>

	* sem_ch3.adb (Process_Full_View): Propagate Has_Specified_Stream_{Read,
	Write,Input,Output} from private view to full view.

	* sem_type.adb, sem_type.ads: Minor reformatting

2009-07-13  Nicolas Setton  <setton@adacore.com>

	* exp_dbug.ads: Add documentation note on the utility of
	DW_AT_GNAT_encoding for IDEs.

2009-07-13  Robert Dewar  <dewar@adacore.com>

	* g-socthi-vxworks.adb: Minor reformatting

	* gnatcmd.adb: Minor reformatting

2009-07-13  Thomas Quinot  <quinot@adacore.com>

	* rtsfind.ads, exp_dist.adb (RE_Allocate_Buffer): Runtime entry
	removed, not used anymore.
	(Exp_Dist.PolyORB_Support.Helpers.Assign_Opaque_From_Any):
	New subprogram, implements copy of an Any value into a limited object.
	(Exp_Dist.PolyORB_Support.Build_General_Calling_Stubs,
	Exp_Dist.PolyORB_Support.Build_Subprogram_Receiving_Stubs,
	Exp_Dist.PolyORB_Support.Helpers.Build_From_Any_Function): For the case
	of parameters of a limited type, use the above new subprogram.

2009-07-13  Emmanuel Briot  <briot@adacore.com>

	* prj-nmsc.adb, prj-proc.adb, mlib.adb (Add_Source): new parameter
	Location.
	(Copy_ALI_Files): Avoid calls to read when pointing outside of the
 	allocated space.
	(Error_Report): Remove global variable, replaced by parameters.

2009-07-13  Thomas Quinot  <quinot@adacore.com>

	* g-socthi-vxworks.adb (C_Sendto): VxWorks does not support the
	standard sendto(2) interface for connected sockets (passing a null
	destination address). Use send(2) instead for that case.

2009-07-13  Pascal Obry  <obry@adacore.com>

	* adaint.c: Fix __gnat_stat() with Win32 UNC paths.

2009-07-13  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, prj-proc.ads, prj.ads, prj-nmsc.adb, prj-nmsc.ads,
	prj-pars.adb, prj-conf.adb, prj-conf.ads: Remove all remaining global
	variables and tables in prj-nmsc.adb.
	(Tree_Processing_Data): Renames Processing_Data, some new fields added
	(Project_Processing_Data): New record
	Simplify/unify check for missing sources.

2009-07-13  Emmanuel Briot  <briot@adacore.com>

	* gnatcmd.adb, make.adb, mlib-prj.adb, prj-part.adb, mlib.adb,
	prj.adb, prj.ads, clean.adb, prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb,
	prj-pars.ads, prj-conf.adb, prj-conf.ads, prj-tree.adb,
	prj-tree.ads (Immediate_Directory_Of): Removed.
	(Prj.Pars): Now parse the project simulating a default config file.
	(Add_Default_GNAT_Naming_Scheme): New subprogram
	(Check_Naming_Multi_Lang): Fix default value for Dot_Replacement.
	Remove gnatmake-specific parsing of source files.
	(Check_Illegal_Suffix): Renames Is_Illegal_Suffix, since it now raises
	the error itself to provide more precise diagnostics.
	(Process_Exceptions_Unit_Based): Avoid duplicate error message when
	a unit belongs to several projects.
	(Copy_Interface_Sources): Search the full path of files to copy in the
	list of sources of the application rather than in the list of units.
	(Parse_Project_And_Apply_Config): Do not reset the name of the main
 	project file.
	(Check_File): Use htables to find out whether a source is duplicated.
	(Add_Source): check whether the source or unit were already seen earlier

	* gcc-interface/Makefile.in: Update gnatmake dependencies.

2009-07-13  Robert Dewar  <dewar@adacore.com>

	* par-ch3.adb (P_Discrete_Choice_List): Choice can only be simple
	expression if extensions permitted.

	* par-ch4.adb (P_Membership_Test): New procedure (implement membership
	set tests).
	(P_Relation): Use P_Membership_Test

	* par.adb (P_Membership_Test): New procedure (implement membership set
	tests).

	* sinfo.ads, sinfo.adb (N_In, N_Not_In) Add Alternatives field for sets.

	* sprint.adb (Sprint_Node): Handle set form for membership tests.

2009-07-13  Thomas Quinot  <quinot@adacore.com>

	* exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies):
	Do not attempt to generate stubs for predefined primitives of
	synchronized interfaces.
	(Add_Stub_Type): Factor some code from the PCS-specific variants of
	Build_Stub_Type.

2009-07-13  Ed Schonberg  <schonberg@adacore.com>

	* sem_disp.adb (Override_Dispatching_Operation): Functions inherit the
	Controlling_Result flag from the operation they override.

2009-07-13  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in: Update dependencies

2009-07-13  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: The gnatf switch no longer is needed to get full
	details on unsupported constructs.

	* rtsfind.adb: Remove references to All_Errors_Mode, give errors
	unconditionally.

	* s-trafor-default.adb: Correct some warnings

	* s-valwch.adb, a-calend.adb, freeze.adb, prj.ads, s-vmexta.adb,
	sem.adb, sem_ch10.adb, sem_ch6.adb, sem_disp.adb, vxaddr2line.adb:
	Minor reformatting.

	* par-ch4.adb (Conditional_Expression): Capture proper location for
	conditional expression, should point to IF.

	* s-tassta.adb, a-wtdeau.adb, s-tasren.adb, s-arit64.adb, s-imgdec.adb,
	s-direio.adb, s-tpobop.adb, g-socket.adb, s-tposen.adb, s-taskin.adb,
	g-calend.adb, s-regpat.adb, s-scaval.adb, g-catiio.adb: Minor code
	reorganization (use conditional expressions).

2009-07-13  Ed Schonberg  <schonberg@adacore.com>

	* exp_util.adb (Remove_Side_Effects): If the expression is a call to a
	build-in-place function that returns an inherently limited type (not
	just a task type) create proper object declaration so that extra
	build-in-place actuals are properly added to the call.

2009-07-13  Robert Dewar  <dewar@adacore.com>

	* freeze.adb (Freeze_Entity): Implement Warn_On_Suspicious_Modulus_Value

	* gnat_ugn.texi: Add documentation for -gnatw.m/.M

	* opt.ads (Warn_On_Suspicious_Modulus_Value): New flag

	* sem_warn.adb (Set_Dot_Warning_Flag): Set/reset
	Warn_On_Suspicious_Modulus_Value.

	* ug_words: Add entries for -gnatw.m/-gnatw.M.

	* usage.adb: Add lines for -gnatw.m/.M switches.

	* vms_data.ads: Add [NO]SUSPICIOUS_MODULUS for -gnatw.m/w.M

2009-07-13  Javier Miranda  <miranda@adacore.com>

	* sem_ch6.adb (Check_Synchronized_Overriding): Add missing check before
	reading the Is_Interface attribute of the dispatching type.

2009-07-13  Robert Dewar  <dewar@adacore.com>

	* a-convec.adb: Minor code reorganization (use conditional expressions)

2009-07-13  Robert Dewar  <dewar@adacore.com>

	* freeze.adb (Check_Suspicious_Modulus): New procedure.

2009-07-13  Robert Dewar  <dewar@adacore.com>

	* i-cobol.ads: Minor code fix (2**4 instead of 16 as modulus to avoid
	warning).

	* par-ch4.adb: Minor reformatting

2009-07-13  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb, freeze.ads, exp_aggr.adb: Rename Expand_Atomic_Aggregate
	=> Is_Atomic_Aggregate

2009-07-13  Emmanuel Briot  <briot@adacore.com>

	* prj-nmsc.adb: Avoid traversing the list of source files if
	we have already processed all locally removed files.

2009-07-13  Jose Ruiz  <ruiz@adacore.com>

	* gnat_ugn.texi: Fix typo.

2009-07-13  Robert Dewar  <dewar@adacore.com>

	* freeze.adb: Minor reformatting
	Minor code reorganization (use Nkind_In)

	* exp_ch6.adb, prj.adb, sem_res.adb: Minor reformatting

2009-07-11  Eric Botcazou  <ebotcazou@adacore.com>

	* checks.adb (Apply_Address_Clause_Check): Remove Size_Warning_Output
	local variable and do not test it in Compile_Time_Bad_Alignment.
	Do not issue size or alignment warnings for the X'Address form.
	* sem_util.ads (Find_Overlaid_Object): Delete.
	(Find_Overlaid_Entity): New procedure.
	* sem_util.adb (Find_Overlaid_Object): Rename to...
	(Find_Overlaid_Entity): ...this and turn into a procedure.  Report
	whether the address is offseted within the overlaid entity.
	(Has_Compatible_Alignment): Track the offset globally instead of
	passing it to Check_Offset.  For an indexed component, compute the
	full offset when possible.  If the resulting offset is zero, only
	check the prefix.
	(Check_Offset): Delete.
	* sem_ch13.adb (Address_Clause_Check_Record): Add Off field.
	(Address_Aliased_Entity): Delete.
	(Analyze_Attribute_Definition_Clause) <Attribute_Address>: Call
	Find_Overlaid_Entity to find the overlaid entity and the offset.
	Adjust throughout for above change.
	(Validate_Address_Clauses): Always use attributes of entities, not of
	their type.  Tweak message for warning.  Call Has_Compatible_Alignment
	if the address is offseted to warn about incompatible alignments.
	* gcc-interface/gigi.h (annotate_object): Declare.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Annotate renaming
	entity.  Call annotate_object instead of annotating manually objects.
	(annotate_object): New function.
	* gcc-interface/trans.c (Subprogram_Body_to_gnu): Annotate parameters
	at the end.

2009-07-11  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/ada-tree.h: Minor reorganization.
	* gcc-interface/misc.c (gnat_print_decl): Minor tweaks.
	(gnat_print_type): Likewise.

2009-07-11  Thomas Quinot  <quinot@adacore.com>

	* sem_util.adb, sem_res.adb, sem_warn.adb: Minor comment editing:
	Lvalue -> lvalue

	* exp_ch6.adb: Minor reformatting

2009-07-11  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Expand_Atomic_Aggregate): Clean up code, take into
	account possible type qualification to determine whether aggregate
	needs a target temporary to respect atomic type or object.

	* exp_aggr.adb (Expand_Record_Aggregate): Use new version of
	Expand_Atomic_Aggregate.

2009-07-11  Emmanuel Briot  <briot@adacore.com>

	* prj.adb, prj.ads, prj-nmsc.adb (Mark_Excluded_Sources): Speed up
	algorithm.
	(Excluded_Sources_Htable): No longer a global table.
	Change error message to indicate which files are illegal in the list
	of excluded files, as opposed to only the location in the project
	file.
	(Find_Source): New subprogram.

2009-07-10  Thomas Quinot  <quinot@adacore.com>

	* exp_ch7.adb: Update comments.

2009-07-10  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch13.adb (Expand_N_Record_Representation_Clause): Ignore mod
	clause if -gnatI is set instead of crashing.

2009-07-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch11.adb (Same_Expression): Null is always equal to itself.
	Additional work to remove redundant successive raise statements, in
	this case access checks.

2009-07-10  Vincent Celier  <celier@adacore.com>

	* make.adb (Compile): Always create a deep copy of the mapping file
	argument (-gnatem=...) as it may be deallocate/reallocate by
	Normalize_Arguments.

2009-07-10  Javier Miranda  <miranda@adacore.com>

	* einfo.adb (Directly_Designated_Type): Add assertion.
	
	* sem_res.adb (Check_Fully_Declared_Prefix): Add missing check on
	access types before using attribute Directly_Designated_Type.

2009-07-10  Emmanuel Briot  <briot@adacore.com>

	* prj.ads: Minor typo fix

2009-07-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Add_Extra_Formal): Protected operations do no need
	special treatment.

	* exp_ch6.adb (Expand_Protected_Subprogram_Call): If rewritten
	subprogram is a function call, resolve properly, to ensure that extra
	actuals are added as needed.

2009-07-10  Thomas Quinot  <quinot@adacore.com>

	* sem_aggr.adb: Minor comments editing

	* exp_tss.adb, exp_ch3.adb: Minor reformatting

2009-07-10  Robert Dewar  <dewar@adacore.com>

	* exp_util.adb: Minor code reorganization (use N_Short_Circuit)

	* exp_ch4.adb: Add ??? comment for conditional expressions on limited
	types.

	* checks.adb (In_Declarative_Region_Of_Subprogram_Body): New procedure,
	replaces Safe_To_Capture_In_Parameter_Value, and properly handles the
	case of conditional expressions that may not be elaborated.

	* sem_util.adb (Safe_To_Capture_Value): Properly handle case of
	conditional expression where we may not execute then then or else
	branches.

2009-07-10  Arnaud Charlet  <charlet@adacore.com>

	* i-cexten.ads (bool): New type.

2009-07-10  Robert Dewar  <dewar@adacore.com>

	* sinfo.ads (N_Short_Circuit): New definition
	
	* sem_ch13.adb, sem_ch6.adb, sem_eval.adb, sem_res.adb,
	treepr.adb: Minor code reorganization (use N_Short_Circuit)

2009-07-10  Javier Miranda  <miranda@adacore.com>

	* exp_ch3.adb (Expand_Freeze_Record_Type): Handle constructors of
	non-tagged record types.

	* sem_prag.adb
	(Process_Import_Or_Interface): Allow the use of "pragma Import (CPP,..)"
	with non-tagged types. Required to import C++ classes that have no
	virtual primitives.
	(Analyze_Pragma): For pragma CPP_Constructor. Allow the use of functions
	returning non-tagged types. For backward compatibility, if the
	constructor returns a class wide type we internally change the
	returned type to the corresponding non class-wide type.

	* sem_aggr.adb
	(Valid_Ancestor_Type): CPP_Constructors code cleanup.
	(Resolve_Extension_Aggregate): CPP_Constructors code cleanup.
	(Resolve_Aggr_Expr): CPP_Constructors code cleanup.
	(Resolve_Record_Aggregate): CPP_Constructors code cleanup.

	* sem_ch3.adb
	(Analyze_Object_Declaration): CPP_Constructors code cleanup.

	* sem_ch5.adb (Analyze_Assignment): CPP_Constructors code cleanup.

	* sem_util.adb (Is_CPP_Constructor_Call): Code cleanup.

	* sem_res.adb (Resolve_Allocator): CPP_Constructors code cleanup.

	* exp_ch4.adb (Expand_Allocator_Expression): CPP_Constructors code
	cleanup.
	
	* exp_aggr.adb (Build_Record_Aggr_Code): CPP_Constructors code clean up.

	* gnat_rm.texi
	(pragma CPP_Class): Document that it can be used now with non-tagged
	record types.
	(pragma CPP_Constructor): Document that it can be used now with
	functions returning specific types. For backward compatibility
	we also support functions returning class-wide types.

	* gnat_ugn.texi
	(Interfacing with C++ constructors): Update the examples to incorporate
	the new syntax in which the functions used to import C++ constructors
	return specific types.
	(Interfacing with C++ at the Class Level): Update the examples to
	incorporate the new syntax in which the functions used to import
	C++ constructors return specific types.

2009-07-10  Thomas Quinot  <quinot@adacore.com>

	* exp_disp.adb (Make_Disp_Asynchronous_Select_Body,
	Make_Disp_Conditional_Select_Body,
	Make_Disp_Timed_Select_Body): For the case of a type that is neither an
	interface nor a concurrent type, the primitive body is empty. Generate
	a null statement so that it remains well formed.

2009-07-10  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb (Build_Record_Aggr_Code): If the type has discriminants,
	replace references to them in defaulted component expressions with
	references to the values of the discriminants of the target object.

2009-07-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Analyze pragma, case Task_Name): Analyze argument of
	pragma, to capture global references if the context is generic.

	* exp_ch2.adb (Expand_Discriminant): If a task type discriminant
	appears within the initialization procedure for the corresponding
	record, replace it with the proper discriminal.

2009-07-10  Vincent Celier  <celier@adacore.com>

	* make.adb: Do not include object directories or library ALI
	directories of library projects in the object path.

2009-07-10  Javier Miranda  <miranda@adacore.com>

	* exp_util.adb (Find_Interface_Tag): Reorder processing of incoming
	Typ argument to ensure proper management of access types.

2009-07-10  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch7.adb (Build_Final_List): If the list is being built for a
	Taft-Amendment type, place the finalization list in the package body,
	to ensure that the tree for the spec is identical whenever it is
	compiled.

2009-07-10  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Build_Derived_Record_Type): Use the full-view when
	inheriting attributes from a private Parent_Base.

2009-07-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch11.adb (analyze_raise_xxx_error): Remove consecutive raise
	statements with the same condition.

2009-07-10  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Raise_Accessibility_Error): New procedure

2009-07-09  Tom Tromey  <tromey@redhat.com>

	* raise-gcc.c: Include dwarf2h (unconditionally).

2009-07-09  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Install_Context): If the unit is a package body,
	install the private with_clauses of the corresponding package
	declaration.

2009-07-09  Robert Dewar  <dewar@adacore.com>

	* checks.adb: Minor reformatting

2009-07-09  Vasiliy Fofanov  <fofanov@adacore.com>

	* ug_words, gnat_ugn.texi: Move VMS equivalents of the last check in
	into ug_words.

2009-07-09  Thomas Quinot  <quinot@adacore.com>

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Address):
	Do not warn for a constant overlaying any constant object

2009-07-09  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Install_Context): If the unit is a package body,
	install the private with_clauses of the corresponding package
	declaration.

2009-07-09  Robert Dewar  <dewar@adacore.com>

	* checks.adb: Minor reformatting

2009-07-09  Vasiliy Fofanov  <fofanov@adacore.com>

	* ug_words, gnat_ugn.texi: Move VMS equivalents of the last check in
	into ug_words.

2009-07-09  Thomas Quinot  <quinot@adacore.com>

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Address):
	Do not warn for a constant overlaying any constant object

2009-07-09  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in: Update dependencies

2009-07-09  Thomas Quinot  <quinot@adacore.com>

	* g-socket.adb (Check_Selector): Do not create local copies of the
	socket sets on the stack.

2009-07-09  Vasiliy Fofanov  <fofanov@adacore.com>

	* gnat_ugn.texi: Add missing VMS translations.

2009-07-09  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case Precondition): Do not analyze the
	condition, to prevent generation of visible code during expansion,
	when Check is not enabled.

2009-07-09  Gary Dismukes  <dismukes@adacore.com>

	* checks.adb (Install_Static_Check): Call Possible_Local_Raise so that
	the check gets registered for any available local handler
	(Set_Local_Raise).

	* sem_util.adb: Add with and use of Exp_Ch11.
	(Apply_Compile_Time_Constraint_Error): Call Possible_Local_Raise so
	that the check gets registered for any available local handler.

	* exp_ch4.adb (Expand_N_Slice): Remove call to Enable_Range_Check
	on slice ranges.

2009-07-09  Steve Baird  <baird@adacore.com>

	* exp_ch11.adb (Force_Static_Allocation_Of_Referenced_Objects): New
	function.
	(Expand_N_Exception_Declaration): Fix handling of exceptions
	declared in a subprogram.

2009-07-09  Emmanuel Briot  <briot@adacore.com>

	* prj-nmsc.adb (Find_Sources): Avoid error messages from gprbuild from
	multi-unit files.

2009-07-09  Thomas Quinot  <quinot@adacore.com>

	* freeze.adb: Minor reformatting

	* exp_ch3.adb: Minor comment fix.

	* sinfo.ads: Minor comment fix

2009-07-09  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.adb (Expand_N_Conditional_Expression): Set Related_Expression.

2009-07-09  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_Expression): If the expression is the name of a
	function in a call, and the function has not been frozen yet, create
	extra formals for it to ensure that the proper actuals are created
	when expanding the call.

2009-07-09  Emmanuel Briot  <briot@adacore.com>

	* prj-pp.adb (Print): Fix handling of source index when set on a
	declaration node.

2009-07-09  Ed Schonberg  <schonberg@adacore.com>

	* einfo.ads, einfo.adb: New attribute Related_Expression, used to link
	a temporary to the source expression whose value it captures.

	* exp_util.adb (Remove_Side_Effects): Set Related_Expression as needed.

2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* gcc-interface/trans.c (gnat_gimplify_expr): Replace EXPR_LOCUS by
	EXPR_LOCATION.

2009-07-07  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch6.adb (Expand_Actuals): Call Add_Call_By_Copy_Code for in out
	parameters when the subtype of the actual is not known to be a subrange
	of the formal's subtype.
	(Expand_Call): Generate a range check only in the E_In_parameter case
	(in out parameter range checks are now handled in Expand_Actuals).

	* exp_ch4.adb (Expand_N_Slice): Restore code that calls
	Enable_Range_Check.

2009-07-07  Robert Dewar  <dewar@adacore.com>

	* a-stwise.adb, a-stzsea.adb, a-strsea.adb: Add comments

2009-07-07  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Expand_Interface_Conversion): Handle access type whose
	designated type comes from a limited views.

2009-07-07  Emmanuel Briot  <briot@adacore.com>

	* prj.ads, prj-nmsc.adb (Mark_Excluded_Sources): Fix handling of
	locally removed files that are later made visible again in an importing
	project.

2009-07-07  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Clarify documentation of Stream_Convert pragma

2009-07-07  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi: Add an example to the description of gnatcheck
	'Style_Checks' rule option.

2009-07-07  Tristan Gingold  <gingold@adacore.com>

	* seh_init.c: Fix inline assembly statement in seh_init.c

2009-07-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_warn.adb (Check_References): Do not emit warnings on formals of
	an entry body. Only the formals of the entry declaration are traced.

2009-07-07  Robert Dewar  <dewar@adacore.com>

	* s-osprim-mingw.adb: Minor code reorganization

2009-07-07  Robert Dewar  <dewar@adacore.com>

	* prj-nmsc.adb: Minor reformatting

2009-07-07  Pascal Obry  <obry@adacore.com>

	* a-stwise.adb, a-stzsea.adb, a-strsea.adb (Index): properly handle
	cases where Pattern is longer than Source.

2009-07-07  Pascal Obry  <obry@adacore.com>

	* s-osprim-mingw.adb (Get_Base_Time): Avoid infinite loop.

2009-07-07  Emmanuel Briot  <briot@adacore.com>

	* prj-nmsc.adb (Process_Naming): canonicalize file suffixes read in the
	project file.

2009-07-07  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch3.adb (Expand_Freeze_Record_Type): Add extra formals to
	primitive operations, in case one of them is called in the
	initialization procedure for the type.

2009-07-07  Robert Dewar  <dewar@adacore.com>

	* a-calend.adb: Minor code reorganization (use conditional expressions)

	* s-stusta.ads, s-interr-hwint.adb, g-expect-vms.adb, s-secsta.ads,
	prj-nmsc.adb, a-teioed.adb, output.ads, prj-attr.ads, a-textio.adb,
	s-taskin.ads, scans.ads, s-osinte-vms.adb, s-taprop-solaris.adb,
	s-tpopsp-posix-foreign.adb, s-trafor-default.adb, gnat1drv.adb,
	s-stchop-vxworks.adb, s-tpopsp-posix.adb, prj-env.adb, prj-env.ads,
	g-comlin.adb, exp_ch11.adb: Minor reformatting.

2009-07-07  Gary Dismukes  <dismukes@adacore.com>

	* checks.adb (Generate_Range_Check): Replace type conversions with
	unchecked conversions to support the case of performing range checks
	on Enum'Val (permits integer values to be converted to enumeration).

	* exp_attr.adb (Expand_N_Attribute_Reference, cases Attribute_Pred,
	Attribute_Succ): Set Do_Range_Check to False before calling
	Expand_Pred_Succ, to prevent gigi from generating any range checks.
	(Expand_N_Attribute_Reference, case Attribute_Val):
	Generate a range check when needed (and set Do_Range_Check to False).

	* exp_ch3.adb (Expand_N_Object_Declaration): Generate a range check on
	scalar object initialization if needed.

	* exp_ch4.adb (Expand_Allocator_Expression): Generate range checks
	when needed on scalar allocators.
	(Expand_N_Qualified_Expression): Generate range check when needed.
	(Expand_N_Slice): Remove call to Enable_Range_Check on slice ranges.
	Checks on slice ranges handled in Resolve_Slice.

	* exp_ch5.adb (Expand_N_Assignment_Statement): Generate a range check,
	when needed, for all scalar assignments, not just discrete.
	(Expand_Simple_Function_Return): Resolve the conversion created for a
	scalar function return so that the conversion will get expanded to
	generate a possible constraint check.

	* exp_ch6.adb (Expand_Actuals): Call Add_Call_By_Copy_Code for out and
	in out scalar actuals when subtypes don't match, to ensure generation
	of return checks (and set Do_Range_Check to False).
	(Expand_Call): Uncomment code to perform range checks, but make it apply
	only to in and in out parameters (checks on parameter returns are
	handled in Expand_Actuals). If a scalar actual for a call to a derived
	subprogram is marked as needing a range check, peform it here (and set
	Do_Range_Check to False).

	* sem_aggr.adb (Resolve_*_Aggregate.Resolve_Aggr_Expr): Generate a
	range check on scalar component associations when needed.

	* sem_eval.adb (In_Subrange_Of): Return False when the first type has
	infinities but the second type does not, as these aren't compatible
	floating-point types.

	* sem_res.adb (Resolve_Slice): In the case where the prefix of the
	slice is itself a slice, pick up the Etype of the prefix. This handles
	the case where the prefix was an Image attribute expanded to a slice,
	and ensures that we get the subtype with the slice constraint rather
	than the unconstrained subbtype of the 'Image.

2009-07-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Conditional_Expression): handle properly
	overloaded expressions in a conditional expressions.

	* sem_res.adb (Resolve): Handle properly overloaded conditional
	expressions.

2009-07-07  Robert Dewar  <dewar@adacore.com>

	* scng.adb: Minor reformattting

	* par-ch2.adb (Scan_Pragma_Argument_Association): Pragma argument
	association allows conditional expression without parens.

	* par-ch4.adb (P_Name): Attribute arguments can be conditional
	expressions without enclosing parentheses, and also as parameters,
	indexing expressions etc.
	(P_Conditional_Expression): New procedure
	(P_Expression_If_OK): New procedure

	* par.adb (P_Conditional_Expression): New procedure
	(P_Expression_If_OK): New procedure

	* sem_ch4.adb (Analyze_Conditional_Expression): Allow for two argument
	form of conditional expression.

	* sem_res.adb (Resolve_Conditional_Expression): Deal with supplying
	missing True argument if ELSE argument missing.

	* sinfo.adb (Is_Elsif): New flag

	* sinfo.ads (N_Conditional_Expression): This node is now a syntactic
	part of the language, and the documentation is modified accordingly.
	(Is_Elsif): New flag

2009-07-06  Olivier Hainque  <hainque@adacore.com>

	* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu,
	setjmp_longjmp): Attach the exception propagation reraise fallback
	to the sequence	end label location when we have it.

2009-07-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR ada/40608
	* init.c (APPLE): Include <mach/mach_init.h>.
	(__gnat_error_handler, APPLE): Add ATTRIBUTE_UNUSED marker.

2009-07-04  Eric Botcazou  <ebotcazou@adacore.com>

	* ada-tree.h (SET_TYPE_LANG_SPECIFIC): Rewrite.
	(SET_DECL_LANG_SPECIFIC): Likewise.
	(TYPE_RM_VALUE): New macro.
	(SET_TYPE_RM_VALUE): Likewise.
	(TYPE_RM_SIZE): Rewrite in terms of TYPE_RM_VALUE.
	(TYPE_RM_MIN_VALUE): Likewise.
	(TYPE_RM_MAX_VALUE): Likewise.
	(SET_TYPE_RM_SIZE): Rewrite in terms of SET_TYPE_RM_VALUE.
	(SET_TYPE_RM_MIN_VALUE): Likewise.
	(SET_TYPE_RM_MAX_VALUE): Likewise.
	* decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Remove kludge.

2009-07-04  Laurent GUERBY  <laurent@guerby.net>

	PR ada/40631
	* tracebak.c (__gnat_backtrace): Fix old-style definition.

2009-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* tracebak.c [i386 && sun] (IS_BAD_PTR): Use -1UL in comparison.

2009-07-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR ada/40609
	* init.c (__gnat_error_handler, HP-UX): Add ATTRIBUTE_UNUSED marker to
	ucontext argument.

2009-07-01  Eric Botcazou  <ebotcazou@adacore.com>

	* init.c (__gnat_error_handler, Solaris): Add ATTRIBUTE_UNUSED marker.

2009-06-30  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Do not use
	the type of the left operand if it pads a self-referential type when
	the right operand is a constructor.

	* gcc-interface/lang-specs.h: Fix copyright date.

2009-06-30  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c: Include tree-inline.h.
	(annotate_value) <CALL_EXPR>: Try to inline the call in the expression.
	* gcc-interface/utils.c (max_size) <CALL_EXPR>: Likewise.
	* gcc-interface/utils2.c: Include tree-inline.
	(known_alignment) <CALL_EXPR>: Likewise.

2009-06-30  Eric Botcazou  <ebotcazou@adacore.com>

	* raise-gcc.c: Include dwarf2.h conditionally.
	
2009-06-29  Tom Tromey  <tromey@redhat.com>

	* raise-gcc.c: Include elf/dwarf2.h.

2009-06-27  Laurent GUERBY  <laurent@guerby.net>

	* tb-gcc.c (trace_callback): Add casts to silence warning.

2009-06-27  Eric Botcazou  <ebotcazou@adacore.com>

	* tb-gcc.c: Fix copyright notice.

2009-06-27  Eric Botcazou  <ebotcazou@adacore.com>

	* init.c (__gnat_set_globals): Add prototype.
	* adaint.c (__gnat_binder_supports_auto_init): Likewise.
	(__gnat_sals_init_using_constructors): Likewise.
	* gcc-interface/utils.c (gnat_pushlevel): Likewise.
	(get_block_jmpbuf_decl): Likewise.
	(gnat_poplevel): Likewise.
	(merge_sizes): Rename local variable.
	(copy_type): Likewise.
	(build_vms_descriptor32): Likewise.
	(build_vms_descriptor): Likewise.
	(convert_vms_descriptor64): Likewise.
	(convert_vms_descriptor32): Likewise.
	(convert_to_fat_pointer): Likewise.
	(maybe_unconstrained_array): Likewise.
	(def_fn_type): Use promoted type with va_arg.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Add declaration.
	(substitute_in_type): Rename local variable.
	* gcc-interface/Make-lang.in (ada-warn): Use STRICT_WARN.

2009-06-26  Laurent GUERBY  <laurent@guerby.net>

	* tb-gcc.c (trace_callback): Use char* instead of void*.
	* gcc-interface/misc.c (enumerate_modes): Make loop C++ compatible.
	* gcc-interface/trans.c (parm_attr): Rename to parm_attr_d.
	(Attribute_to_gnu): Adjust for above change.
	(Subprogram_Body_to_gnu): Likewise.
	* gcc-interface/utils.c (merge_sizes): Rename local variable.
	(copy_type): Likewise.
	(build_vms_descriptor32): Likewise.
	(build_vms_descriptor): Likewise.
	(convert_vms_descriptor64): Likewise.
	(convert_vms_descriptor32): Likewise.
	(convert_to_fat_pointer): Likewise.
	(maybe_unconstrained_array): Likewise.
	* gcc-interface/decl.c (substitute_in_type): Likewise.

2009-06-26  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (cannot_be_superflat_p): New predicate.
	(gnat_to_gnu_entity) <E_Array_Subtype>: Use it to build the expression
	of the upper bound of the index types.

2009-06-26  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Factor
	out common predicate.  Use the maximum to compute the upper bound of
	the index type only when it is not wider than sizetype.  Perform the
	comparison in the index type for the generic expression.  Use real
	precision to decide whether to generate special types for debugging
	information.

2009-06-26  Matthew Gingell  <gingell@adacore.com>

	* adaint.c: Do not use the dummy version of convert_addresses on LynxOS

2009-06-26  Vincent Celier  <celier@adacore.com>

	* prj.ads (No_Language_Config): Value of Dependency_Kind is None by
	default.

2009-06-26  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb, gnatcmd.adb, make.adb: Minor reformatting

2009-06-26  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Pass
	correct arguments to create_field_decl.  Remove redundant iteration.
	Rewrite computation of the maximum size.
	<E_Array_Subtype>: Reorder and simplify handling of special cases.
	Rewrite computation of the maximum size.  Use consistent naming.
	* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Length>: Swap
	comparison order for consistency.  Use generic integer node to
	build the operator and fold the result.

2009-06-25  Vincent Celier  <celier@adacore.com>

	* vms_data.ads: Minor comment change

2009-06-25  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch5.adb (Expand_N_Extended_Return_Statement): Don't build an
	assignment statement to targeting a caller-provided object when the
	result type is an interface type.

	* exp_ch6.adb (Expand_Call): Remove redundant test of
	Is_Limited_Interface (Is_Inherently_Limited is sufficient).
	(Is_Build_In_Place_Function): Remove test for Is_Limited_Interface.

	* sem_aggr.adb (Check_Expr_OK_In_Limited_Aggregate): Add type in call
	to OK_For_Limited_Init.

	* sem_aux.adb (Is_Inherently_Limited_Type): Revise limited type
	condition so that True is returned for all limited interfaces, not
	just synchronized ones. Ignore components of an interface type when
	checking for limited components (such a component can be a parent
	component).

	* sem_ch3.ads (OK_For_Limited_Init_In_05): Add type parameter.
	(OK_For_Limited_Init): Add type parameter.

	* sem_ch3.adb (Check_Initialization): Add type in call to
	OK_For_Limited_Init.
	(OK_For_Limited_Init): Add new type param in call to
	OK_For_Limited_Init_In_05.
	(OK_For_Limited_Init_In_05): Permit arbitrary expressions of a
	nonlimited type when the context type is a limited interface. Add type
	on recursive calls.

	* sem_ch4.adb (Analyze_Allocator): Add type in call to
	OK_For_Limited_Init.

	* sem_ch6.adb (Check_Limited_Return): Add type in call to
	OK_For_Limited_Init.

	* sem_ch12.adb (Analyze_Formal_Object_Declaration): Add type in call to
	OK_For_Limited_Init.
	(Instantiate_Object): Add type in call to OK_For_Limited_Init.

	* sem_type.adb (Interface_Present_In_Ancestor): In the case of a
	class-wide interface, get the base type before applying Etype, in order
	to account for class-wide subtypes.

2009-06-25  Emmanuel Briot  <briot@adacore.com>

	* gnatcmd.adb, prj-proc.adb, make.adb, prj.adb, prj.ads, prj-nmsc.adb,
	prj-util.adb, prj-env.adb, prj-env.ads: Merge handling of naming_data
	between gnatmake and gprbuild.
	(Naming_Data): Removed, no longer used
	(Naming_Table, Project_Tree_Ref.Namings): Removed, since this is only
	needed locally in one subprogram, no need to store forever in the
	structure.
	(Check_Naming_Scheme, Check_Package_Naming): Merged, since they play
	a similar role.
	(Body_Suffix_Of, Body_Suffix_Id_Of, Register_Default_Naming_Scheme,
	Same_Naming_Scheme, Set_Body_Suffix, Set_Spec_Suffix, Spec_Suffix_Of,
	Spec_Suffix_Id_Of): removed, no longer used.

2009-06-25  Javier Miranda  <miranda@adacore.com>

	* sem_res.adb (Resolve_Allocator): Skip test requiring exact match of
	types on qualified expression in calls to imported C++ constructors.

	* exp_ch4.adb (Expand_Allocator_Expression): Add missing support for
	imported C++ constructors.

2009-06-25  Sergey Rybin  <rybin@adacore.com>

	* vms_data.ads: Add qualifier for new gnatcheck '-t' option.

2009-06-25  Vincent Celier  <celier@adacore.com>

	* s-os_lib.adb (Normalize_Pathname.Get_Directory): If directory
	provided, on Windows change all '/' to '\'.

	* fmap.ads, fmap.adb (Remove_Forbidden_File_Name): Remove, no longer
	used. Minor comment changes

	* prj-nmsc.adb: Do not call Fmap.Add_Forbidden_File_Name or
	Remove_Forbidden_File_Name.

2009-06-25  Quentin Ochem  <ochem@adacore.com>

	* prj.ads (Unit_Index): Now general access type.

2009-06-25  Pascal Obry  <obry@adacore.com>

	* a-stwise.adb, a-stzsea.adb: Fix confusion between 'Length and 'Last.

2009-06-25  Emmanuel Briot  <briot@adacore.com>

	* fmap.ads, make.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb,
	prj-env.ads (Source_Data.Get_Object): Field removed, since it can be
	computed efficiently from the other fields.
	(Object_To_Global_Archive): New subprogram
	(Create_Mapping): Remove unneeded call to Remove_Forbidden_File_Name.
	(Override_Kind): Fix handling of separates in Ada.
	(Create_Mapping_File): Remove duplicate code
	(Naming_Data.Implementation_Exception, Specification_Exception):
	field removed, since never used.
	(Naming_Data.Specs, .Bodies): field removed, since this is only
	used while processing the project and is not needed once the tree
	is in memory. This brings Naming_Data and Lang_Naming_Data
	closer (same content now, but different use still).

2009-06-25  Pascal Obry  <obry@adacore.com>

	* sem_ch4.adb: Minor reformatting.

	* a-strsea.adb: Fix confusion between 'Length and 'Last.

2009-06-25  Ed Schonberg  <schonberg@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference, case 'Access and
	Unchecked_Access): If the context is an interface type, and the prefix
	is of the corresponding class-wide type, do not insert a conversion
	because the pointer displacement has already taken place, and we must
	retain the class-wide type in a dispatching context.

2009-06-25  Emmanuel Briot  <briot@adacore.com>

	* prj-nmsc.adb, prj-env.adb (Override_Kind): Unset the unit field of
	the previous source file.
	(Create_Mapping): Iterate on sources rather than on units.

2009-06-25  Emmanuel Briot  <briot@adacore.com>

	* gnatcmd.adb, make.adb, mlib-prj.adb, prj.adb, prj.ads, prj-nmsc.adb,
	prj-env.adb, prj-env.ads (Slash): removed, no longer used
	(Source_Data): no longer use Path.Name to point to a locally removed
	file. Instead we use the field Locally_Removed which is clearer

2009-06-25  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in: Remove references to sem_maps.o

	* sem_maps.adb, sem_maps.ads: Removed, not used.

2009-06-25  Ed Falis  <falis@adacore.com>

	* s-vxwext-rtp.ads: Add missing declaration

2009-06-25  Matthew Gingell  <gingell@adacore.com>

	* a-stwise.adb, a-stzsea.adb (Count, Index): Avoid local copy on stack,
	speed up unmapped case.

2009-06-25  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Check): Change error message for illegal abstract
	projects.

2009-06-25  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Add note on use of -gnatct for ASIS

2009-06-25  Emmanuel Briot  <briot@adacore.com>

	* fmap.ads: Add documentation on mapping files

2009-06-25  Robert Dewar  <dewar@adacore.com>

	* exp_ch6.adb, g-socket.ads, g-socket.adb, sem_ch3.adb: Minor
	reformatting

2009-06-24  Robert Dewar  <dewar@adacore.com>

	* prj-nmsc.adb, prj-nmsc.ads, prj-proc.adb, prj.adb: Minor reformatting

	* a-strsea.adb (Count): Avoid local copy on stack, speed up unmapped
	case.
	(Index): Ditto.

2009-06-24  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_One_Call): Check that at least one actual is
	present when checking whether a call may be interpreted as an indexing
	of the result of a call.

	* exp_ch9.adb (Expand_N_Subprogram_Declaration): Place the generated
	body for a null procedure on the freeze actions for the procedure, so
	that it will be analyzed at the proper place without premature freezing
	of actuals.

	* sem_ch3.adb (Check_Completion): Code cleanup. 
	Do not diagnose a null procedure without a body, if previous errors
	have disabled expansion.

2009-06-24  Doug Rupp  <rupp@adacore.com>

	* init.c [VMS] Resignal C$_SIGKILL

2009-06-24  Ed Falis  <falis@adacore.com>

	* s-vxwext.adb, s-vxwext-kernel.adb: Add s-vxwext body for VxWorks 5
	Define ERROR in body for VxWorks 6 kernel

2009-06-24  Pascal Obry  <obry@adacore.com>

	* g-socket.adb, g-socket.ads: Fix possible unexpected constraint error
	in [Send/Receive]_Socket.

2009-06-24  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, prj-proc.ads, prj.ads, prj-nmsc.adb, prj-nmsc.ads,
	prj-conf.adb, prj-conf.ads (Allow_Duplicate_Basenames): New parameter
	to several subprograms.
	(Source_Data.Other_Part): Removed, since can be computed from the
	language.
	(Other_Part): New subprogram.

2009-06-24  Emmanuel Briot  <briot@adacore.com>

	* gnat_ugn.texi, prj-nmsc.adb (Suffix_Matches): A suffix can also match
	the full base name of the file when the suffix doesn't start with a '.'.

2009-06-24  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Check): A project declared abstract is legal if no
	attribute Source_Dirs, Source_Files, Source_List_File or Languages is
	declared.

2009-06-24  Robert Dewar  <dewar@adacore.com>

	* clean.adb, gnatcmd.adb, make.adb, mlib-prj.adb,
	prj-env.adb: Minor reformatting

2009-06-24  Ed Falis  <falis@adacore.com>

	* s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-vxwext.ads,
	s-vxwext-kernel.adb, s-vxwext-kernel.ads, s-vxwext-rtp.adb,
	s-tasinf-vxworks.ads, gcc-interface/Makefile.in: Add processor affinity
	support for VxWorks SMP.

	* gcc-interface/Make-lang.in: Update dependencies

2009-06-24  Emmanuel Briot  <briot@adacore.com>

	* gnatcmd.adb, make.adb, mlib-prj.adb, prj.adb, prj.ads, clean.adb,
	prj-nmsc.adb, prj-env.adb, prj-proc.adb (Units_Table): Removed, since
	no longer useful.
	(Source_Data.Lang_Kind): Removed, since it duplicates information
	already available through Language.Config.
	(Source_Data.Compile): Removed, since information is already available
	through the language.
	(Is_Compilable): New subprogram.
	(Source_Data.Dependency): Removed, since already available through
	the language.
	(Source_Data.Object_Exist, Object_Linked): Removed since available
	through the language already.
	(Unit_Data.File_Names): Is now also set in multi_language mode, to
	bring the two modes closer in the resulting data structures.
	(Source_Data.Unit): Now a direct pointer to the unit data, rather than
	just the name that would point into a hash table.
	(Get_Language_From_Name): New subprogram.

2009-06-24  Javier Miranda  <miranda@adacore.com>

	* exp_ch4.adb (Expand_N_Type_Conversion): Handle entities that are
	visible through limited-with context clauses. In addition, avoid an
	extra tag check that is not required when the class-wide
	designated types of the operand and target types are
	the same entity.
	(Tagged_Membership): Handle entities from the limited view.

2009-06-24  Emmanuel Briot  <briot@adacore.com>

	* gnatcmd.adb, make.adb, mlib-prj.adb, prj.ads, clean.adb,
	prj-nmsc.adb, prj-env.adb (File_Name_Data): removed
	(Spec_Or_Body): now a subtype of Source_Kind, to avoid using two
	different vocabularies for similar concepts (Impl/Body_Part and
	Spec/Specification).
	(Unit_Data): now points directly to a Source_Id, rather than duplicating
	some of the information in File_Name_Data. This also saves a bit of
	memory. However, since we are now using a pointer we need to test
	for null explicitly in several places of the code

2009-06-24  Javier Miranda  <miranda@adacore.com>

	* exp_ch4.adb (Expand_N_Type_Conversion): return immediately
	from processing the type conversion when the node is
	replaced by an N_Raise_Program_Error node.

2009-06-24  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch6.adb (Designates_From_With_Type): New routine.
	(Process_Formals): Since anonymous access types are no longer flagged
	as from with types, traverse the designated type to determine whether
	it is coming from a limited view.

	* sem_res.adb: Remove with and use clauses for Sem_Ch10.
	(Full_Designated_Type): Use Available_View to extract the non-limited /
	full view of a type.

2009-06-24  Robert Dewar  <dewar@adacore.com>

	* exp_ch6.adb: Minor reformatting

	* layout.adb: Minor reformatting

	* make.adb: Minor reformatting

2009-06-24  Thomas Quinot  <quinot@adacore.com>

	* sem_ch10.adb: Minor code reorganization.

2009-06-24  Eric Botcazou  <ebotcazou@adacore.com>

	* ttypes.ads: Minor editing.
	
2009-06-24  Robert Dewar  <dewar@adacore.com>

	* exp_ch6.adb (Expand_Actuals): Use Is_Volatile, not Treat_As_Volatile
	in deciding to do call-by-copy code.

2009-06-24  Vincent Celier  <celier@adacore.com>

	* make.adb (Gnatmake): To decide if an executable should be rebuilt,
	check if an externally built library file is more current than the
	executable.

2009-06-23  Olivier Hainque  <hainque@adacore.com>

	* gcc-interface/utils.c (handle_vector_size_attribute): Import from
	c-common.c and populate in gnat_internal_attribute_table.
	
2009-06-23  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Valid_Conversion, Full_Designated_Type): Use
	Available_View only when designated type of an anonymous access type
	is  limited view.

2009-06-23  Robert Dewar  <dewar@adacore.com>

	* sem_ch10.adb: Minor reformatting

	* ali.ads: Mino reformatting.

	* gnat1drv.adb (Adjust_Global_Switches): New procedure (take care of
	turning off inlining if ASIS mode active).
	
	* switch-c.adb: Remove fiddling with Inspector_Mode and ASIS_Mode
	This belongs in gnat1drv.adb after switches are scanned.

2009-06-23  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_attr.adb: Add with and use clauses for Sem_Ch10.
	(Check_Not_Incomplete_Type): Minor reformatting. Retrieve the root type
	when dealing with class-wide types. Detect a legal shadow entity and
	retrieve its non-limited view.

	* sem_ch10.adb (Has_With_Clause): Move the spec and body of the
	subprogram to top package level from Intall_Limited_Withed_Unit.
	(Install_Limited_Withed_Unit): Remove spec and body of Has_With_Clause.
	Add check which prevents the installation of a limited view if the
	non-limited view is already visible through a with clause.
	(Is_Legal_Shadow_Entity_In_Body): New routine. Detect a residual, but
	legal shadow entity which may occur in subprogram formals of anonymous
	access type.

	* sem_ch10.ads (Is_Legal_Shadow_Entity_In_Body): New routine.

	* sem_ch3.adb (Access_Definition): Remove the propagation of flag
	From_With_Type from the designated type to the generated anonymous
	access type. Remove associated comment.

	* sem_res.adb Add with and use clauses for Sem_Ch10.
	(Full_Designated_Type): Detect a legal shadow entity and retrieve its
	non-limited view. Since the shadow entity may replace a regular
	incomplete type, return the available full view.

2009-06-23  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Remove_Limited_With_Clause): Clean up code that handles
	incomplete type declarations. Previous code was potentially quadratic
	in the number of visible declarations in any package appearing in a
	limited_with_clause.

2009-06-23  Robert Dewar  <dewar@adacore.com>

	* prj-conf.ads, prj-part.adb, prj-proc.adb, prj-proc.ads, sem_ch8.adb,
	xref_lib.adb: Minor reformatting

2009-06-23  Robert Dewar  <dewar@adacore.com>

	* a-stzhas.adb: Provide dummy body to avoid build problems with old
	versions which did have a body for this unit.

2009-06-23  Vincent Celier  <celier@adacore.com>

	* prj-attr.adb: Attribute names Initial_Required_Switches and
	Final_Required_Switches changed to Leading_Required_Switches and
	Trailing_Required_Switches.

	* prj-nmsc.adb (Process_Compiler): Attribute names
	Initial_Required_Switches and Final_Required_Switches changed to
	Leading_Required_Switches and Trailing_Required_Switches.

	* prj.ads (Language_Config): Component Initial_Required_Switches and
	Final_Required_Switches changed to Leading_Required_Switches and
	Trailing_Required_Switches.

	* snames.ads-tmpl: Remove standard names Initial_Required_Switches and
	Final_Required_Switches; add standard names Leading_Required_Switches
	and Trailing_Required_Switches.

2009-06-23  Thomas Quinot  <quinot@adacore.com>

	* prj-conf.adb: Minor reformatting

	* xref_lib.adb: Minor cleanup

2009-06-23  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, prj-proc.ads, prj-nmsc.adb, prj-nmsc.ads, prj-conf.adb,
	prj-conf.ads (Check_Configuration): New parameter
	Compiler_Driver_Mandatory.

2009-06-23  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Analyze_With_Clause): If a subprogram instance in the
	context of the current unit has an inline pragma, the instance is not
	rewritten as the declaration of the package wrapper. Handle both
	possibilities when retrieving the visible subprogram that renames the
	instantiation itself.

2009-06-23  Javier Miranda  <miranda@adacore.com>

	* exp_ch4.adb (Displace_Allocator_Pointer, Expand_N_Allocator): Handle
	designated types referencing entities from the limited view.

2009-06-23  Robert Dewar  <dewar@adacore.com>

	* s-strhas.adb, s-strhas.ads: Restrict to 32-bit modular types

	* s-imgdec.adb (Set_Decimal_Digits): Fix error of too many digits for
	small values

	* prj-conf.ads: Minor reformatting

	* prj-conf.adb: Minor reformatting

2009-06-23  Vasiliy Fofanov  <fofanov@adacore.com>

	* g-debpoo.adb (Dump_Gnatmem): Output dummy timestamps for allocations
	to correspond to the log format that gnatmem now expects.

2009-06-23  Vincent Celier  <celier@adacore.com>

	* prj-attr.adb: New attributes Initial_Required_Switches,
	Final_Required_Switches and Object_File_Switches
	
	* prj-nmsc.adb (Process_Compiler): Process new attributes
	Name_Final_Required_Switches, Name_Initial_Required_Switches and
	Name_Object_File_Switches.

	* prj.ads (Language_Config): New component
	Compiler_Initial_Required_Switches (replace Compiler_Required_Switches),
	Compiler_Final_Required_Switches and Object_File_Switches.

	* snames.ads-tmpl: New standard names Initial_Required_Switches,
	Final_Required_Switches and Object_File_Switches

2009-06-23  Pascal Obry  <obry@adacore.com>

	* s-strhas.adb, s-strhas.ads: Minor reformatting.

2009-06-23  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Install_Limited_Withed_Unit): a null procedure does
	not indicate that the enclosing unit needs a body.

2009-06-23  Emmanuel Briot  <briot@adacore.com>

	* prj-conf.ads, prj-conf.adb: New files part of the project manager.

2009-06-23  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Derive_Subprogram): If the inherited subprogram is a
	primitive equality include it with its source name even if the
	operation is currently invisible, to make sure that the corresponding
	slot in the dispatch table is reserved for the internal equality
	subsequently generated during expansion.

2009-06-23  Matthew Gingell  <gingell@adacore.com>

	* Makefile.rtl, a-stwiha.adb: Add a-stwiha.adb back.

2009-06-22  Jose Ruiz  <ruiz@adacore.com>

	* sysdep.c (__gnat_localtime_tzoff for RTX):
	SystemTimeToTzSpecificLocalTime is not supported by RTX. Use
	GetTimeZoneInformation instead.

2009-06-22  Robert Dewar  <dewar@adacore.com>

	* sem_res.adb (Check_No_Direct_Boolean_Operators): New procedure

2009-06-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Collect_Previous_Instances): Do not collect
	instantiations declared in a previous generic package body.

2009-06-22  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Add doc that X=True and X=False is allowed for the
	restriction No_Direct_Boolean_Operators.

2009-06-22  Thomas Quinot  <quinot@adacore.com>

	* bindusg.adb: Minor fixes to gnatbind usage message

	* sem_eval.adb: Minor reformatting

2009-06-22  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration, Freeze_Entity): Move to the
	freezing point the check on the use of abstract types in object
	declarations. Done to allow the declaration of C++ imported variables
	or constants whose type corresponds with an imported C++ classes for
	which the constructor is not imported.

2009-06-22  Thomas Quinot  <quinot@adacore.com>

	* sem_ch6.adb: Minor reformatting

2009-06-22  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch3.adb (Build_Initialization_Call): If a discriminated record
	component is constrained with an expression rather than with a
	discriminant of the enclosing type, use that expression when building
	the call to default-initialize the component, when the call is part of
	an aggregate with box initialization.

2009-06-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Check_Overriding_Indicator): Clean up code, make warning
	unconditional rather than a style check, because a formal name out of
	order is suspicious.

2009-06-22  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Locate_Directory): Indicate the project name when
	creating a directory automatically.

2009-06-22  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch3.adb (Create_Constrained_Components): For a subtype of an
	untagged derived type, add a hidden component for every constrained
	discriminant of the parent type to keep record layout consistent.

2009-06-22  Thomas Quinot  <quinot@adacore.com>

	* exp_ch3.adb: Minor code reorganization (avoid an unnecessary tree
	copy).

2009-06-22  Matthew Gingell  <gingell@adacore.com>

	* a-stzhas.adb, a-stwiha.adb, impunit.adb, a-swbwha.adb, a-shcain.adb,
	s-htable.adb, a-szuzha.adb, a-stunha.adb, a-stboha.adb, a-strhas.adb,
	g-spitbo.adb, s-strhas.adb, a-szbzha.adb, s-strhas.ads, Makefile.rtl,
	a-swuwha.adb: New unit System.String_Hash.  
	Refactor redundant cut and pasted hash functions with instances of a
	new generic hash function.
	Implement a new string hashing algorithm which appears in testing to
	be move effective than to previous approach.

2009-06-22  Ed Falis  <falis@adacore.com>

	* sysdep.c: remove include for nfsLib.h and an NFS specific error
	message for VxWorks 653 vThreads: not supported by the OS.

	* gsocket.h: disable sockets for VxWorks 653 vThreads.

2009-06-22  Robert Dewar  <dewar@adacore.com>

	* sem_ch6.adb: Add ??? comment for bad use of Style_Check

2009-06-22  Robert Dewar  <dewar@adacore.com>

	* sinput.adb, sinput.ads (Expr_First_Char, Expr_Last_Char): Replaced
	by Sloc_Range.

	* freeze.adb: Minor comment updates

	* s-valrea.adb (Bad_Based_Value): New procedure
	(Scan_Real): Raise exceptions with messages

2009-06-22  Matthew Gingell  <gingell@adacore.com>

	* adaint.h: Complete previous change.

2009-06-22  Thomas Quinot  <quinot@adacore.com>

	* exp_ch7.ads, exp_ch3.adb: Minor reformatting

2009-06-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Check_Overriding_Indicator): When style checks are
	enabled, emit warning when a non-controlling argument of the overriding
	operation appears out of place vis-a-vis of the formal of the
	overridden operation.

2009-06-22  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb (Check_Files): Close temporary files after all file names
	have been written into it.

2009-06-22  Matthew Gingell  <gingell@adacore.com>

	* adaint.c, adaint.h, cstreams.c: Call stat64 on platforms where it is
	available.

2009-06-22  Thomas Quinot  <quinot@adacore.com>

	* sem_disp.adb (Check_Direct_Call): Handle the case where the full
	view of the root type is visible at the point of the call.

2009-06-22  Pat Rogers  <rogers@adacore.com>

	* gnat_ugn.texi: Revised a sentence to correct a minor grammar error.

2009-06-22  Jerome Lambourg  <lambourg@adacore.com>

	* freeze.adb: Add comments.

2009-06-21  Thomas Quinot  <quinot@adacore.com>

	* exp_ch3.adb, exp_prag.adb, exp_util.adb, exp_util.ads, freeze.adb,
	sem_ch13.adb, sem_elab.adb (Exp_Prag.Expand_Pragma_Import_Or_Interface):
	Factor out code to new subprogram...
	(Exp_Util.Find_Init_Call): New shared routine to find the init proc call
	for a default initialized variable.
	(Freeze.Check_Address_Clause): Do not reset Has_Delayed_Freeze on an
	entity that has an associated freeze node.
	(Sem_Ch13.Analyze_Attribute_Definition_Clause, case Address):
	If there is an init call for the object, defer it to the object freeze
	point.
	(Check_Elab_Call.Find_Init_Call): Rename to Check_Init_Call, to avoid
	name clash with new subprogram introduced in Exp_Util.

2009-06-21  Robert Dewar  <dewar@adacore.com>

	* einfo.ads: Minor reformatting

2009-06-21  Ed Falis  <falis@adacore.com>

	* env.c (__gnat_environ): return NULL for vThreads - unimplemented

2009-06-21  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads: Update comments.

2009-06-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_disp.adb (Check_Direct_Call): New routine. Dispatching calls
	where the controlling formal is of private class-wide type whose
	completion is a synchronized type can be converted into direct calls.

2009-06-21  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb (Check_Files): When all sources of the project are to be
	indicated to gnatcheck, gnatpp or gnatmetric, always specify the list
	of sources using -files=, so that the distinction can be made by the
	tool of a call with no source (to display the usage) from a call with
	a project file that contains no source.

2009-06-21  Jerome Lambourg  <lambourg@adacore.com>

	* exp_ch3.adb (Build_Array_Init_Proc): Do not build the init proc in
	case of VM convention arrays.

2009-06-20  Robert Dewar  <dewar@adacore.com>

	* a-nudira.adb: Minor reformatting

2009-06-20  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch3.adb (Build_Record_Init_Proc): When copying initial
	expressions (possibly from a parent type) indicate that the scope of
	the new itypes is the initialization procedure being built.

2009-06-20  Robert Dewar  <dewar@adacore.com>

	* a-nudira.adb (Fits_In_32_Bits): New name (inverted sense) for
	Needs_64, and now computed without anomolies for some dynamic types.

2009-06-20  Thomas Quinot  <quinot@adacore.com>

	* sem_prag.adb: Minor reformatting

	* exp_disp.ads: Minor reformatting

2009-06-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Is_OK_For_Limited_Init): An unchecked conversion of a
	function call is a legal expression to initialize a limited object.

	* exp_ch3.adb: Rename various freeze operations that perform expansion
	actions, to prevent confusion with subprograms in the freeze package.

2009-06-20  Ed Schonberg  <schonberg@adacore.com>

	* sem.adb (Walk_Library_Units): Check instantiations first.

	* sem_ch6.adb (Analyze_Subprogram_Declaration): Mark a subprogram as a
	private primitive if it is a function with a controlling result that is
	a type extension with progenitors.

	* exp_ch9.adb (Build_Wrapper_Spec, Build_Wrapper_Body): Handle properly
	a primitive operation of a synchronized tagged type that has a
	controlling result.

2009-06-20  Thomas Quinot  <quinot@adacore.com>

	* einfo.ads: Fix typo.

2009-06-20  Ed Falis  <falis@adacore.com>

	* s-vxwext.ads, s-vxwext-kernel.adb: Complete previous change.

2009-06-19  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (emit_check): Do not wrap up the result
	in a SAVE_EXPR.
	(protect_multiple_eval): Always protect complex expressions.

2009-06-19  Emmanuel Briot  <briot@adacore.com>

	* prj-ext.adb, makeutl.adb, makeutl.ads (Executable_Prefix_Path): Now
	make sure we always return a name ending with a path separator.

2009-06-19  Javier Miranda  <miranda@adacore.com>

	* sem_ch12.adb (Instantiate_Package_Body, Instantiate_Subprogram_Body):
	Save and restore the visibility of the parent when installed.

2009-06-19  Jose Ruiz  <ruiz@adacore.com>

	* s-tposen.ads (Protection_Entry): Replace fields L, Ceiling, and Owner
	by Common which contains all these fields.

	* s-tposen.adb (Initialize_Protection_Entry, Lock_Entry,
	Lock_Read_Only_Entry, Timed_Protected_Single_Entry_Call, Unlock_Entry):
	Remove code duplication in this package by means of calling the
	equivalent code in s-taprob.

2009-06-19  Robert Dewar  <dewar@adacore.com>

	* a-einuoc.ads: Minor reformatting

2009-06-19  Ed Falis  <falis@adacore.com>

	* a-einuoc.ads, s-osinte-vxworks.ads, s-vxwext.ads, s-vxwext-kernel.adb,
	s-vxwext-kernel.ads, s-vxwext-rtp.ads: Code clean up.

2009-06-19  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Handling of Type'Size Values): Fix Object_Size values.

2009-06-19  Robert Dewar  <dewar@adacore.com>

	* a-nudira.adb (Need_64): Handle negative ranges and also dynamic
	ranges

	* checks.adb (Determine_Range): Move the test for generic types later.

	* sem_eval.adb (Compile_Time_Compare): Improve circuitry to catch more
	cases.
	(Eval_Relational_Op): Fold more cases including string compares

	* sem_util.ads, sem_util.adb (References_Generic_Formal_Type): New
	function.

2009-06-19  Robert Dewar  <dewar@adacore.com>

	* sem_type.ads, sem_ch12.adb: Minor reformatting

	* s-wchcnv.adb (UTF_32_To_Char_Sequence): Handle invalid data properly

2009-06-19  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch9.adb (Build_Wrapper_Spec): Handle properly an overridden
	primitive operation of a rivate extension whose controlling argument
	is an out parameter.

	* sem.adb (Walk_Library_Units): exclude generic package declarations
	from check.

2009-06-19  Thomas Quinot  <quinot@adacore.com>

	* i-vxwoio.ads: Add comments

2009-06-19  Thomas Quinot  <quinot@adacore.com>

	* socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
	g-socthi-vxworks.ads, g-socthi-mingw.adb, g-socthi-mingw.ads,
	g-socthi.adb, g-socthi.ads, g-socket.adb, g-sothco.ads
	(GNAT.Sockets.Thin.C_Ioctl): Rename to Socket_Ioctl.
	(GNAT.Sockets.Thin.Socket_Ioctl): Use new function
	Thin_Common.Socket_Ioctl.
	(GNAT.Sockets.Thin_Common.Socket_Ioctl): Binding to new C wrapper
	__gnat_socket_ioctl.
	(__gnat_socket_ioctl): Wrapper for ioctl(2) called with a single int*
	argument after the file descriptor and request code.

2009-06-19  Robert Dewar  <dewar@adacore.com>

	* checks.adb: Minor reformatting

2009-06-19  Jose Ruiz  <ruiz@adacore.com>

	* env.c (__gnat_environ): RTX does not support this functionality.

2009-06-19  Ed Schonberg  <schonberg@adacore.com>

	* sem.adb (Walk_Library_Items): Include bodies in the list of units to
	traverse, to account for front-end inlining and instantiations in a
	spec or in the main unit.

2009-06-19  Robert Dewar  <dewar@adacore.com>

	* checks.adb (Determine_Range): Do not attempt to get range of generic
	type.

2009-06-19  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi, vms_data.ads: Add the documentation for the new
	gnatmetric option for generating the schema file for gnatmetric XML
	output. Add corresponding VMS qualifier.

2009-06-19  Robert Dewar  <dewar@adacore.com>

	* g-cgi.adb: Minor reformatting

2009-06-19  Eric Botcazou  <ebotcazou@adacore.com>

	* s-intman-solaris.adb (Notify_Exception): Do not discriminate on the
	signal code for SIGFPE and raise Program_Error for SIGILL.

	* s-osinte-solaris.ads: Remove signal code constants for SIGFPE.

2009-06-19  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Nvis_Messages): Do not list an entity declared in a
	generic package if there is a visibility candidate that is declared in
	a regular package.

2009-06-18  Olivier Hainque  <hainque@adacore.com>

	* system-aix64.ads: New file.
	* gcc-interface/Makefile.in (aix LIBGNAT_TARGET_PAIRS): Use the
	64bit system.ads for ppc64 multilib variants.

2009-06-16  Robert Dewar  <dewar@adacore.com>
            Olivier Hainque  <hainque@adacore.com>

	Relax constraints on Machine_Attribute argument types:
	* sem_prag.adb (Check_Arg_Is_Static_Expression): Allow for
	missing type.
	(Analyze_Attribute, case Machine_Attribute): Allow any type for arg 3.
	* gcc-interface/decl.c (prepend_attributes): Accept static
	expressions of any type as attribute arguments, not only string
	literals.
	* gnat_rm.texi (pragma Machine_Attribute section): Adjust to reflect
	the relaxation of the restriction on the Info argument type.
	
2009-06-13  Aldy Hernandez  <aldyh@redhat.com>

	* gcc-interface/utils.c (record_builtin_type): Pass location
	argument to build_decl.
	(create_type_stub_decl): Same.
	(create_type_decl): Same.
	(create_var_decl_1): Same.
	(create_field_decl): Same.
	(create_param_decl): Same.
	(create_label_decl): Same.
	(create_subprog_decl): Same.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Same.
	* gcc-interface/trans.c (Case_Statement_to_gnu): Pass location
	argument to create_artificial_label.
	(Loop_Statement_to_gnu): Same.
	(Subprogram_Body_to_gnu): Same.
	(gnat_gimplify_stmt): Same.

2009-06-11  Richard Henderson  <rth@redhat.com>

	* gcc-interface/misc.c (gnat_handle_option): Rename OPT_gdwarf_ to
	OPT_gdwarfplus.

2009-06-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Resolve_Attribute, case 'access): Add missing
	accessibiliy check on access_to_subprogram in the context of an
	anonymous access that is not an access parameter.

2009-06-11  Eric Botcazou  <ebotcazou@adacore.com>

	* tracebak.c (i386 section): Define IS_BAD_PTR on Solaris.
	
2009-06-11  Quentin Ochem  <ochem@adacore.com>

	* sem_warn.adb, scng.adb, sfn_scan.adb, freeze.adb: Add CODEFIX
	comments for message handled by GPS.

2009-06-11  Matthew Gingell  <gingell@adacore.com>

	* adaint.c: Use fopen64 instead of fopen on platforms where we know
	it's supported.

2009-06-11  Pascal Obry  <obry@adacore.com>

	* g-cgi.ads: Fix comment typo.

	* g-cgi.adb: Properly decode "+" in CGI parameters as spaces.

2009-06-10  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Use
	a reference to the original type for the type of the field of the
	XVS type.
	(maybe_pad_type): Likewise.

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Factor
	common predicate and remove redundant setting of TYPE_BY_REFERENCE_P.
	Pass correctly typed arguments to create_field_decl.
	<E_Record_Subtype>: Set BLKmode for tagged and limited types in the
	case of contrained discriminants as well.  Use the padded base type
	in the other case as well.  Rename temporary variable.  Tweak test.
	Factor common access pattern.  Set GNU_SIZE only once.

2009-06-09  Olivier Hainque  <hainque@adacore.com>

	* gcc-interface/utils2.c (build_call_alloc_dealloc_proc): New
	helper for build_call_alloc_dealloc with arguments to be interpreted
	identically.  Process the case where a GNAT_PROC to call is provided.
	(maybe_wrap_malloc): New helper for build_call_alloc_dealloc, to build
	and return an allocator for DATA_SIZE bytes aimed at containing a
	DATA_TYPE object, using the default __gnat_malloc allocator.  Honor
	DATA_TYPE alignments greater than what the latter offers.
	(maybe_wrap_free): New helper for build_call_alloc_dealloc, to
	release a DATA_TYPE object designated by DATA_PTR using	the
	__gnat_free entry point.
	(build_call_alloc_dealloc): Expect object data type instead of naked
	alignment constraint. Use the new helpers.
	(build_allocator): Remove special processing for the super-aligned
	case, now handled by build_call_alloc_dealloc.  Pass data
	type instead of the former alignment argument, as expected by the new
	interface.
	* gcc-interface/gigi.h (build_call_alloc_dealloc): Adjust prototype
	and comment.
	* gcc-interface/trans.c (gnat_to_gnu) <case N_Free_Statement>:
	Remove special processing for the super-aligned case, now handled
	by build_call_alloc_dealloc.  Pass data type instead of	the former
	alignment argument, as expected by the new interface.
	
2009-06-08  Alexandre Oliva  <aoliva@redhat.com>

	* lib-writ.adb (flag_compare_debug): Import.
	(Write_ALI): Skip during -fcompare-debug-second.

2009-06-03  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: When
	adjusting the discriminant nodes in an extension, use the full view
	of the parent subtype if it is of a private kind.

2009-06-03  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Add the
	_Parent field, if any, to the record before adding the other fields.
	<E_Record_Subtype>: Put the _Controller field before the other fields
	except for the _Tag or _Parent fields.
	(components_to_record): Likewise.  Retrieve the _Parent field from the
	record type.

2009-06-03  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (substitution_list): Rename to build_subst_list,
	remove unused parameter and simplify.
	(gnat_to_gnu_entity) <E_Record_Type>: Do not set TYPE_FIELDS.  Factor
	common predicate.  Rewrite loop for clarity.  Use GNU_TYPE directly
	as context for all discriminants.  Fix formatting nits.
	<E_Record_Subtype>: Add cosmetic 'break'.  Test Has_Discriminants
	before Discriminant_Constraint.  Adjust for above renaming.  Do not
	set GNU_TYPE more than once.
	(elaborate_entity): Test Has_Discriminants on the entity and use
	Implementation_Base_Type.
	(components_to_record): Rename component_list to gnat_component_list.
	Retrieve the _Parent field from the list.  Fix nits in comments.
	Clarify logic in loop.  Pass correct arguments to create_field_decl.

2009-06-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/Make-lang.in: Fix formatting.

2009-06-01  Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>
	
	* gcc-interface/utils.c (convert) <CONSTRUCTOR case>: When converting
	to the packable version of the type, clear TREE_STATIC/TREE_CONSTANT
	on the result if at least one of the input fields couldn't be output
	as a static constant any more.

2009-06-01  Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>
	
	* gcc-interface/utils2.c (gnat_build_constructor): Factor
	out code.  Use initializer_constant_valid_for_bitfield_p and
	CONSTRUCTOR_BITFIELD_P for bit-fields.

2009-05-26  Ian Lance Taylor  <iant@google.com>

	* gcc-interface/Makefile.in (COMPILER): Define.
	(COMPILER_FLAGS, ALL_COMPILERFLAGS): Define.
	(.c.o, cio.o, init.o, initialize.o, targext.o): Use $(COMPILER).
	(seh_init.o, tracebak.o): Likewise.
	* gcc-interface/Make-lang.in (ada/targext.o): Likewise.
	(ada/cio.o, ada/init.o, ada/initialize.o, ada/raise.o): Likewise.
	(ada/tracebak.o, ada/cuintp.o, ada/decl.o, ada/misc.o): Likewise.
	(ada/targtyps.o, ada/trans.o, ada/utils.o): Likewise.
	(ada/utils2.o): Likewise.

2009-05-24  Olivier Hainque  <hainque@adacore.com>

	* switch.adb (Is_Internal_GCC_Switch, Switch_Last): Bodies of ...
	* switch.ads (Is_Internal_GCC_Switch, Switch_Last): New functions.
	Add -auxbase variants to the list of recognized internal switches.
	* back_end.adb (Scan_Back_End_Switches): Use the new functions and
	adjust comments.
	* lib.ads: Make comment on internal GCC switches more general.
	* gcc-interface/lang-specs.h (specs for Ada): Pass -auxbase variants
	as for C.	
	
2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/misc.c (gnat_get_subrange_bounds): Fix thinko.

2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (set_rm_size): Bypass the check for packed array
	types.

2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not modify the
	original type because of the alignment when there is an address clause.

2009-05-20  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: When
	discriminants affect the shape of the subtype, retrieve the GCC type
	directly from the original field if the GNAT types for the field and
	the original field are the same.

2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/ada-tree.h (TYPE_GCC_MIN_VALUE, TYPE_GCC_MAX_VALUE):
	New macros.
	(TYPE_RM_VALUES): Likewise.
	(TYPE_RM_SIZE): Rewrite in terms of TYPE_RM_VALUES.
	(SET_TYPE_RM_SIZE): New macro.
	(TYPE_RM_MIN_VALUE, TYPE_RM_MAX_VALUE): Likewise.
	(SET_TYPE_RM_SIZE, SET_TYPE_RM_MAX_VALUE): Likewise.
	(TYPE_MIN_VALUE, TYPE_MAX_VALUE): Redefine.
	* gcc-interface/gigi.h (create_range_type): Declare.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Type>
	Use SET_TYPE_RM_MAX_VALUE to set the upper bound on the UMT type.
	<E_Signed_Integer_Subtype>: Build a regular integer type first and
	then set the RM bounds.  Use SET_TYPE_RM_SIZE to set the RM size.
	<E_Floating_Point_Subtype>: Build a regular floating-point type first
	and then set the RM bounds.
	<E_Array_Type>: Use create_range_type instead of build_range_type.
	<E_Array_Subtype>: Build a regular integer type first and then set
	the RM bounds for the extra subtype.
	<E_String_Literal_Subtype>: Use create_range_type instead of
	build_range_type.
	<all>: Set the RM bounds for enumeration types and the GCC bounds for
	floating-point types.
	(set_rm_size): Use SET_TYPE_RM_SIZE to set the RM size.
	(make_type_from_size) <INTEGER_TYPE>: Use SET_TYPE_RM_{MIN,MAX}_VALUE
	to set the bounds.  Use SET_TYPE_RM_SIZE to set the RM size.
	(substitute_in_type) <INTEGER_TYPE>: Deal with GCC bounds for domain
	types and with RM bounds for subtypes.
	* gcc-interface/misc.c (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
	(gnat_print_type) <REAL_TYPE>: New case.
	<ENUMERAL_TYPE>: Fall through to above case.
	(gnat_get_subrange_bounds): New function.
	* gcc-interface/trans.c (add_decl_expr): Mark the trees rooted as
	TYPE_RM_MIN_VALUE and TYPE_RM_MAX_VALUE, if any.
	* gcc-interface/utils.c (gnat_init_decl_processing): Use precision 8
	for booleans.  Adjust and use SET_TYPE_RM_SIZE to set the RM size.
	(create_range_type): New function.
	(create_param_decl): Build a regular integer type first and then set
	the RM bounds for the extra subtype.
	(unchecked_convert): Remove kludge for 'Valid.
	* gcc-interface/utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Convert
	the index to sizetype instead of TYPE_DOMAIN.

2009-05-14  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (elaborate_expression_1): Remove GNAT_EXPR
	parameter and move check for static expression to...
	(elaborate_expression): ...here.  Adjust call to above function.
	(gnat_to_gnu_entity): Likewise for all calls.  Use correct arguments
	in calls to elaborate_expression.
	(elaborate_entity): Likewise.
	(substitution_list): Likewise.
	(maybe_variable): Fix formatting.
	(substitute_in_type) <REAL_TYPE>: Merge with INTEGER_TYPE case and add
	missing guard.
	* gcc-interface/trans.c (protect_multiple_eval): Minor cleanup.

2009-05-07  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in: Update dependencies.

2009-05-06  Laurent GUERBY  <laurent@guerby.net>

	* s-linux.ads, s-linux-alpha.ads, s-linux-hppa.ads, osinte-linux.ads:
	Define sa_handler_pos.
	* s-osinte-linux.ads: Use it.
	* s-linux-mipsel.ads: New.
	* system-linux-mips64el.ads: New.
	* gcc-interface/Makefile.in: Multilib handling for mipsel-linux and
	mips64el-linux.

2009-05-06  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch5.adb, exp_util.adb, exp_attr.adb, sem_util.adb, sem_res.adb,
	targparm.adb, targparm.ads, exp_ch4.adb, exp_ch6.adb, exp_disp.adb,
	opt.ads, exp_aggr.adb, exp_intr.adb, sem_disp.adb, exp_ch3.adb
	(Tagged_Type_Expansion): New flag.
	Replace use of VM_Target related to tagged types expansion by
	Tagged_Type_Expansion, since tagged type expansion is not necessarily
	linked to VM targets.

2009-05-06  Robert Dewar  <dewar@adacore.com>

	* sem_attr.adb: Add processing for Standard'Compiler_Version

	* sinput.adb (Expr_Last_Char): Fix some copy-paste errors for paren
	skipping.
	(Expr_First_Char): Add ??? comment that paren skipping needs work
	(Expr_Last_Char): Add ??? comment that paren skipping needs work

	* exp_attr.adb: Add processing for Compiler_Version

	* sem_attr.adb: New attribute Compiler_Version

	* snames.ads-tmpl: Add entries for Compiler_Version attribute

	* gnat_rm.texi: Document Compiler_Version attribute

2009-05-06  Robert Dewar  <dewar@adacore.com>

	* errout.adb: Minor reformatting

	* scng.adb, sem_prag.adb, par-ch4.adb, sem_res.adb, par-ch6.adb,
	sem_ch6.adb, par-prag.adb, sem_ch8.adb, sem_warn.adb, par-util.adb,
	styleg.adb: Add stylized comments to error messages that are included
	in the codefix circuitry of IDE's such as GPS.

2009-05-06  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi: For Misnamed_Identifiers rule all description of the
	new form of the rule parameter that allows to specify the suffix for
	access-to-access type names.

2009-05-06  Robert Dewar  <dewar@adacore.com>

	* sem_warn.adb (Warn_On_Useless_Assignment): Avoid false negative for
	out parameter assigned when exception handlers are present.

	* sem_ch5.adb (Analyze_Exit_Statement): Kill current value last
	assignments on exit.

	* par-ch9.adb, sem_aggr.adb, par-endh.adb, sem_res.adb, par-ch6.adb,
	sinput-l.adb, par-load.adb, errout.ads, sem_ch4.adb, lib-load.adb,
	prj-dect.adb, par-ch12.adb, sem_ch8.adb, par-util.adb, par-ch3.adb,
	par-tchk.adb, par-ch5.adb: This patch adds stylized comments to error
	messages that are included in the codefix circuitry of IDE's such as
	GPS.

	* sinput.ads, sinput.adb (Expr_First_Char): New function
	(Expr_Last_Char): New function

2009-05-06  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi: Add subsection for Exits_From_Conditional_Loops rule
	Add formal definition for extra exit point metric

2009-05-06  Pascal Obry  <obry@adacore.com>

	* adaint.c: Support for setting attributes on unicode filename on
	Windows.

2009-05-06  Robert Dewar  <dewar@adacore.com>

	* sem_warn.adb: Minor reformatting

2009-05-06  Javier Miranda  <miranda@adacore.com>

	* sem_prag.adb (Process_Import_Or_Interface): Imported CPP types must
	not have discriminants or components with default expressions.
	(Analyze_Pragma): For pragma CPP_Class check that imported types
	have no discriminants and components have no default expression.

	* sem_aggr.adb (Resolve_Aggr_Expr): Add missing check on wrong use of
	class-wide types in the expression of a record component association.

2009-05-06  Sergey Rybin  <rybin@adacore.com>

	* vms_data.ads: Add qualifier for gnatmetric extra exit points metric

	* gnat_ugn.texi: Add description for the new extra exit points metric
	(gnatmetric section).

2009-05-06  Robert Dewar  <dewar@adacore.com>

	* s-fileio.adb: Minor comment update

	* sem_ch8.adb: Minor reformatting

	* exp_ch3.adb: Update comments.

2009-05-06  Tristan Gingold  <gingold@adacore.com>

	* init.c, s-osinte-darwin.ads: Reduce alternate stack size

2009-05-06  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Makefile.in: Update LIBGNAT_TARGET_PAIRS for Xenomai.
	Fix missing unit for rtp-smp runtime on both ppc and x86 vxworks

	* gcc-interface/Make-lang.in: Update dependencies

2009-05-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Build_Instance_Compilation_Unit_Nodes): Revert previous
	change. The context clause of a generic instance declaration must be
	preserved until the end of the compilation, because it may have to be
	installed/removed repeatedly.
	The latest change to sem.adb ensures that the context of both spec and
	body of an instance is traversed before the instance itself, making
	this patch redundant.

2009-05-06  Gary Dismukes  <dismukes@adacore.com>

	* sem_aggr.adb: Fix typo.

2009-05-06  Thomas Quinot  <quinot@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): For a controlled object
	declaration, do not adjust if the declaration is to be rewritten into
	a renaming.

2009-05-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Find_Type): Reject the use of a task type in its own
	discriminant part.

2009-05-06  Bob Duff  <duff@adacore.com>

	* s-fileio.adb (File_IO_Clean_Up_Type): Make this type limited, since
	otherwise the compiler would be allowed to optimize away the cleanup
	code.

2009-05-06  Gary Dismukes  <dismukes@adacore.com>

	* gnat_ugn.texi: Fix typo.

2009-05-06  Thomas Quinot  <quinot@adacore.com>

	* g-debuti.adb: Minor reformatting

	* exp_attr.adb: Minor reformatting

2009-05-06  Robert Dewar  <dewar@adacore.com>

	* sem_aggr.adb: Minor reformatting.

	* g-socthi-vms.adb: Minor reformatting

2009-05-06  Bob Duff  <duff@adacore.com>

	* g-table.ads, g-table.adb, g-dyntab.ads, g-dyntab.adb:
	(Append_All): Add Append_All to g-table and g-dyntab, similar to table.

2009-05-06  Bob Duff  <duff@adacore.com>

	* gnat_ugn.texi, gnat_rm.texi: Add missing documentation for warnings
	flags.

2009-05-06  Javier Miranda  <miranda@adacore.com>

	* sem_aggr.adb (Valid_Ancestor_Type): Add support for C++ constructors.
	(Resolve_Extension_Aggregate): Do not reject C++ constructors in
	extension aggregates.
	(Resolve_Record_Aggregate): Add support for C++ constructors in
	extension aggregates.

	* exp_aggr.adb (Build_Record_Aggr_Code): Add support for C++
	constructors in extension aggregates.

2009-05-06  Robert Dewar  <dewar@adacore.com>

	* freeze.adb (Freeze_Record_Type): Improve error msg for bad size
	clause.

2009-05-06  Thomas Quinot  <quinot@adacore.com>

	* g-socthi-vms.adb (C_Recvmsg, C_Sendmsg): Convert Msg to appropriate
	packed type, since on OpenVMS, struct msghdr is packed.

2009-05-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Analyze_Object_Renaming): If the object is a function
	call returning an unconstrained composite value, create the proper
	subtype for it, as is done for object dclarations with unconstrained
	nominal subtypes. Perform this transformation regarless of whether
	call comes from source.

2009-05-06  Robert Dewar  <dewar@adacore.com>

	* freeze.adb (Freeze_Record_Type): Implement Implicit_Packing for
	records

	* gnat_rm.texi:
	Add documentation for pragma Implicit_Packing applied to record
	types.

2009-05-06  Ed Schonberg  <schonberg@adacore.com>

	* sem.adb (Walk_Library_Items): Place all with_clauses of an
	instantiation on the spec, because late instance bodies may generate
	with_clauses for the instance body but are inserted in the instance
	spec.

2009-05-06  Emmanuel Briot  <briot@adacore.com>

	* prj-nmsc.adb (Locate_Directory): Remove unused parameters, and add
	support for returning the directory even if it doesn't exist. This is
	used for the object directory, since we are always setting it to a
	non-null value, and we should set it to an absolute name rather than a
	relative name for the sake of external tools that might depend on it.
	(Check_Library_Attributes): When Project.Library_Dir is known, check
	that the directory exists.

2009-05-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Check_Dereference): If the prefix of an attribute
	reference is an implicit dereference, do not freeze the designated type
	if within a default expression or when preanalyzing a pre/postcondtion.

2009-05-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Analyze_Object_Renaming): If the object is a function
	call returning an unconstrained composite value, create the proper
	subtype for it, as is done for object dclarations with unconstrained
	nominal subtypes

2009-05-06  Robert Dewar  <dewar@adacore.com>

	* sem_ch13.adb (Check_Constant_Address_Clause): Minor error message
	improvements

	* freeze.adb: Minor reformatting

2009-05-06  Thomas Quinot  <quinot@adacore.com>

	* sem_ch3.adb (Access_Type_Declaration): An access type whose
	designated type is a limited view from a limited with clause (flagged
	From_With_Type) is not itself such a limited view.

2009-05-06  Emmanuel Briot  <briot@adacore.com>

	* prj-nmsc.adb: Remove unused variable.

	* clean.adb, gnatcmd.adb, makeutl.ads, prj-pars.adb, prj-pars.ads,
	prj-proc.ads, prj.ads, switch-m.adb (Subdirs_Option): Moved to
	makeutl.ads, since not all users of prj.ads need this.

2009-05-06  Javier Miranda  <miranda@adacore.com>

	* exp_aggr.adb (Build_Record_Aggr_Code): Add implicit call to the C++
	constructor in case of aggregates whose type is a CPP_Class type.

2009-05-06  Robert Dewar  <dewar@adacore.com>

	* sem_ch13.adb: Minor comment additions

	* osint.adb: Minor reformatting

2009-05-06  Pascal Obry  <obry@adacore.com>

	* initialize.c: On Windows, keep full pathname to expanded command
	line patterns.

2009-05-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Record_Aggregate): If a defaulted component of
	an aggregate with box default is of a discriminated private type, do
	not build a subaggregate for it.
	A proper call to the initialization procedure is generated for it.

2009-05-06  Thomas Quinot  <quinot@adacore.com>

	* rtsfind.adb, rtsfind.ads, exp_dist.adb, exp_dist.ads
	(Exp_Dist.Build_TC_Call, Build_From_Any_Call, Build_To_Any_Call):
	Use PolyORB strings to represent Ada.Strings.Unbounded_String value;
	use standard array code for Standard.String.
	(Exp_Dist): Bump PolyORB s-parint API version to 3.
	(Rtsfind): New entities TA_Std_String, Unbounded_String.

2009-05-06  Robert Dewar  <dewar@adacore.com>

	* g-comlin.ads: Minor reformatting

	* xoscons.adb: Minor reformatting

2009-05-06  Gary Dismukes  <dismukes@adacore.com>

	* sem_aggr.adb (Resolve_Record_Aggregate): In step 5, get the
	Underlying_Type before retrieving the type definition for gathering
	components, to account for the case where the type is private.

2009-05-06  Tristan Gingold  <gingold@adacore.com>

	* g-comlin.ads: Fix minor typos (Getopt instead of Get_Opt).

2009-05-06  Thomas Quinot  <quinot@adacore.com>

	* g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
	g-socthi-vxworks.ads, g-socthi-mingw.adb g-socthi-mingw.ads,
	g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads, g-socket.adb
	(GNAT.Sockets.Thin.C_Sendmsg, GNAT.Sockets.Thin.C_Recvmsg,
	Windows versions): Fix incorrect base
	address of Iovec (it's Msg_Iov, not Msg_Iov'Address).
	(GNAT.Sockets.Thin.C_Sendto, GNAT.Sockets.Thin.C_Recvfrom): Use a
	System.Address for the To parameter instead of a Sockaddr_In_Access, to
	achieve independance from AF_INET family, and also to allow this
	parameter to be retrieved from a Msghdr for the Windows case where
	these routines are used to implement C_Sendmsg and C_Recvmsg.

2009-05-06  Bob Duff  <duff@adacore.com>

	* g-expect.adb, g-expect.ads: Minor reformatting

	* sdefault.ads: Minor comment fix

	* g-expect-vms.adb: Minor reformatting

	* table.ads, table.adb (Append_All): New convenience procedure for
	appending a whole array.

	* comperr.adb (Compiler_Abort): Mention the -gnatd.n switch in the bug
	box message. Call Osint.Dump_Source_File_Names to print out the file
	list, instead of rummaging around in various data structures.

	* debug.adb: New switch -gnatd.n, to print source file names as they
	are read.

	* alloc.ads: Add parameters for Osint.File_Name_Chars.

	* osint.ads, osint.adb (Dump_Source_File_Names): New procedure to print
	out source file names during a "bug box".
	(Include_Dir_Default_Prefix): Use memo-izing to avoid repeated new/free.
	(Read_Source_File): Print out the file name, if requested via -gnatd.n.
	If it's not part of the runtimes, store it for later printing by
	Dump_Source_File_Names.

2009-05-06  Javier Miranda  <miranda@adacore.com>

	* gnat_rm.texi (CPP_Constructor): Avoid duplication of the
	documentation and add reference to the GNAT user guide for further
	details.

2009-05-06  Javier Miranda  <miranda@adacore.com>

	* gnat_ugn.texi: Complete documentation for CPP_Constructor and remove
	also wrong examples that use extension aggregates.

2009-05-06  Albert Lee  <lee@adacore.com>

	* s-oscons-tmplt.c (System.OS_Constants): Do not use special definition
	of Msg_Iovlen_T for VMS.

2009-05-04  Laurent GUERBY  <laurent@guerby.net>

	PR ada/38874
	* make.adb (Scan_Make_Arg): Pass --param= to compiler and linker.
	
2009-04-29  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Analyze_Subprogram_Renaming): Improve error message on
	box-defaulted operator in an instantiation, when the type of the
	operands is not directly visible.

2009-04-29  Gary Dismukes  <dismukes@adacore.com>

	* sem_aggr.adb (Valid_Limited_Ancestor): Undo previous change.
	(Resolve_Extension_Aggregate): Call Check_Parameterless_Call after the
	analysis of the ancestor part. Remove prohibition against limited
	interpretations of the ancestor expression in the case of Ada 2005.
	Revise error message in overloaded case, adding a message to cover
	the Ada 2005 case.

2009-04-29  Thomas Quinot  <quinot@adacore.com>

	* xoscons.adb: Minor reformatting

2009-04-29  Bob Duff  <duff@adacore.com>

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not ignore
	attribute_definition_clauses for the following attributes when the
	-gnatI switch is used: External_Tag, Input, Output, Read, Storage_Pool,
	Storage_Size, Write. Otherwise, we get spurious errors (for example,
	missing Read attribute on remote types).

	* gnat_ugn.texi: Document the change, and add a stern warning.

2009-04-29  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Check_Local_Access): Indicate that value tracing is
	disabled not just for the current scope, but for the innermost dynamic
	scope as well.

2009-04-29  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in: Update dependencies

2009-04-29  Vincent Celier  <celier@adacore.com>

	* prj-part.adb: Minor comment update

2009-04-29  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Record_Aggregate): handle properly
	box-initialized records with discriminated subcomponents that are
	constrained by discriminants of enclosing components. New subsidiary
	procedures Add_Discriminant_Values, Propagate_Discriminants.

2009-04-29  Arnaud Charlet  <charlet@adacore.com>

	* g-socket.adb: Code clean up.

2009-04-29  Gary Dismukes  <dismukes@adacore.com>

	* sem_aggr.adb (Valid_Limited_Ancestor): Add test for the name of a
	function entity, to cover the case of a parameterless function call
	that has not been resolved.

2009-04-29  Robert Dewar  <dewar@adacore.com>

	* err_vars.ads, prj-part.adb, scans.ads, exp_tss.adb: Minor
	reformatting and comment updates.

2009-04-29  Arnaud Charlet  <charlet@adacore.com>

	* gnat_ugn.texi: Update some documentation about interfacing with C++
	Mention -fkeep-inline-functions.

	* gnat_ugn.texi: Minor edits

2009-04-29  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Record_Aggregate): When building an aggregate
	for a defaulted component of an enclosing aggregate, inherit the type
	from the component declaration of the enclosing type. 

2009-04-29  Albert Lee  <lee@adacore.com>

	* g-socthi-vms.ads, g-socthi-vxworks.ads, s-oscons-tmplt.c,
	g-socthi-mingw.ads, g-socthi.ads, g-socket.adb, g-sothco.ads
	(System.OS_Constants): New type Msg_Iovlen_T which follows whether the
	msg_iovlen field in struct msghdr is 32 or 64 bits wide.
	Relocate the Msghdr record type from GNAT.Sockets.Thin to
	GNAT.Sockets.Common, and use System.OS_Constants.Msg_Iovlen_T as the
	type for the Msg_Iovlen field.

2009-04-29  Vincent Celier  <celier@adacore.com>

	* sinput-l.adb (Load_File): When preprocessing, set temporarily the
	Source_File_Index_Table entries for the source, to avoid crash when
	reporting an error.

	* gnatcmd.adb (Test_If_Relative_Path): Use
	Makeutl.Test_If_Relative_Path.
	
	* makeutl.adb:(Test_If_Relative_Path): Process switches --RTS= only if
	Including_RTS is True.

	* makeutl.ads (Test_If_Relative_Path): New Boolean parameter
	Including_RTS defaulted to False.

	* sinput.ads, scans.ads, err_vars.ads: Initialize some variables with
	a default value.

2009-04-29  Javier Miranda  <miranda@adacore.com>

	* gnat_ugn.texi: Adding documentation for non-default C++ constructors.

2009-04-29  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): Disable error message
	associated with dyamically tagged expressions if the expression
	initializing a tagged type corresponds with a non default CPP
	constructor.
	(OK_For_Limited_Init): CPP constructor calls are OK for initialization
	of limited type objects.

	* sem_ch5.adb (Analyze_Assignment): Improve the error message reported
	when a CPP constructor is called in an assignment. Disable also the
	error message associated with dyamically tagged expressions if the
	exporession initializing a tagged type corresponds with a non default
	CPP constructor.

	* sem_prag.adb (Analyze_Pragma): Remove code disabling the use of
	non-default C++ constructors.

	* sem_util.ads, sem_util.adb (Is_CPP_Constructor_Call): New subprogram.

	* exp_tss.ads, exp_tss.adb (Base_Init_Proc): Add support for
	non-default constructors.
	(Init_Proc): Add support for non-default constructors.

	* exp_disp.adb (Set_Default_Constructor): Removed.
	(Set_CPP_Constructors): Code based in removed Set_Default_Constructor
	but extending its functionality to handle non-default constructors.

	* exp_aggr.adb (Build_Record_Aggr_Code): Add support for non-default
	constructors. Minor code cleanup removing unrequired label and goto
	statement.

	* exp_ch3.adb (Build_Initialization_Call): Add support for non-default
	constructors.
	(Build_Init_Statements): Add support for non-default constructors.
	(Expand_N_Object_Declaration): Add support for non-default constructors.
	(Freeze_Record_Type): Replace call to Set_Default_Constructor by call
	to Set_CPP_Constructors.

	* exp_ch5.adb (Expand_N_Assignment_Statement): Add support for
	non-default constructors.
	Required to handle its use in build-in-place statements.

	* gnat_rm.texi (CPP_Constructor): Document new extended use of this
	pragma for non-default C++ constructors and the new compiler support
	that allows the use of these constructors in record components, limited
	aggregates, and extended return statements.

2009-04-29  Vincent Celier  <celier@adacore.com>

	* prj-part.adb (Parse_Single_Project): Do not attempt to find a
	project extending an abstract project.

2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>

	* targparm.ads: Fix oversight.

2009-04-29  Ed Schonberg  <schonberg@adacore.com>

	* lib-xref.adb (Output_Overridden_Op): Follow several levels of
	derivation when necessary, to find the user-subprogram that is actally
	being overridden.

2009-04-29  Robert Dewar  <dewar@adacore.com>

	* sem_util.adb (May_Be_Lvalue): Fix cases involving indexed/selected
	components

2009-04-29  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch9.ads, exp_ch9.adb (Build_Wrapper_Spec): Use source line of
	primitive operation, rather than source line of synchronized type, when
	building the wrapper for a primitive operation that overrides an
	operation inherited from a progenitor, to improve the error message on
	duplicate declarations.

	* sem_ch3.adb (Process_Full_View): Use new signature of
	Build_Wrapper_Spec.

2009-04-29  Robert Dewar  <dewar@adacore.com>

	* prj-nmsc.ads: Minor reformatting

2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch4.adb (Expand_N_Conditional_Expression): Set the SLOC of the
	expression on the existing parent If statement.

2009-04-29  Robert Dewar  <dewar@adacore.com>

	* prj-proc.adb, prj.ads: Minor reformatting

2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch4.adb (Expand_N_Conditional_Expression): Set the SLOC of an
	existing parent If statement on the newly created one.

2009-04-29  Emmanuel Briot  <briot@adacore.com>

	* gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, prj-part.adb,
	prj-part.ads, prj.adb, prj.ads, clean.adb, prj-dect.adb, prj-dect.ads,
	prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads, prj-makr.adb
	(Set_In_Configuration, In_Configuration): Removed.
	Replaced by an extra parameter Is_Config_File in several parameter to
	avoid global variables to store the state of the parser.

2009-04-29  Ed Schonberg  <schonberg@adacore.com>

	* sinfo.ads, sinfo.adb: New attribute Next_Implicit_With, to chain
	with_clauses generated for the same unit through rtsfind, and that
	appear in the context of different units.

	* rtsfind.adb: New attribute First_Implicit_With, component of the
	Unit_Record that stores information about a unit loaded through rtsfind.

2009-04-29  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch3.adb (Stream_Operation_OK): Return True for limited interfaces
	(other conditions permitting), so that abstract stream subprograms will
	be declared for them.

2009-04-29  Bob Duff  <duff@adacore.com>

	* g-expect.adb (Expect_Internal): Fix check for overfull buffer.

	* g-expect.ads: Minor comment fixes.

2009-04-29  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb, lib-xref.adb (Check_Dispatching_Operation): if the
	dispatching operation is a body without previous spec, update the list
	of primitive operations to ensure that cross-reference information is
	up-to-date.

2009-04-29  Albert Lee  <lee@adacore.com>

	* g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
	g-socthi-vxworks.ads, g-socthi-mingw.adb, g-socthi-mingw.ads,
	g-socthi.adb, g-socthi.ads, g-socket.adb, g-socket.ads
	(GNAT.Sockets.Thin.C_Readv,
	GNAT.Sockets.Thin.C_Writev): Remove unused subprograms.
	(GNAT.Sockets.Thin.C_Recvmsg,
	GNAT.Sockets.Thin.C_Sendmsg): New bindings to call recvmsg(2) and
	sendmsg(2).  
	(GNAT.Sockets.Receive_Vector, GNAT.Sockets.Send_Vector): Use
	C_Recvmsg/C_Sendmsg rather than Readv/C_Writev.

2009-04-29  Ed Schonberg  <schonberg@adacore.com>

	* sem_disp.adb (Check_Dispatching_Operation): if the dispatching
	operation is a body without previous spec, update the list of
	primitive operations to ensure that cross-reference information is
	up-to-date.

	* sem_ch12.adb (Build_Instance_Compilation_Unit_Nodes): When creating a
	new compilation unit node for the instance declaration, keep the
	context items of the original unit on it, so that the context of the
	instance body only holds the context inherited from the generic body.

2009-04-29  Bob Duff  <duff@adacore.com>

	* sem_res.adb: Minor comment fix.

2009-04-29  Thomas Quinot  <quinot@adacore.com>

	* sem_elim.adb: Minor reformatting

2009-04-29  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb (Convert_To_Positional): if the current unit is a
	predefined unit, allow arbitrary number of components in static
	aggregate, to ensure that the same level of constant folding applies
	for Ada 95 and Ada 05 versions of the file.

2009-04-29  Ed Schonberg  <schonberg@adacore.com>

	* sem_elim.adb (Check_Eliminated): Handle new improved eliminate
	information: no need for full scope check.
	(Eliminate_Error): Do not emit error in a generic context.

2009-04-29  Ed Falis  <falis@adacore.com>

	* adaint.c (__gnat_rmdir): return error code if VTHREADS is defined.
	VxWorks 653 POS does not support rmdir.

2009-04-29  Matteo Bordin  <bordin@adacore.com>

	* s-stausa.adb, s-stausa.ads: Get_Usage_Range: changing the way
	results are printed.

2009-04-29  Arnaud Charlet  <charlet@adacore.com>

	* s-taskin.adb (Initialize): Remove pragma Warnings Off and remove
	unused assignment.

2009-04-29  Thomas Quinot  <quinot@adacore.com>

	* make.adb: Minor reformatting.
	Minor code reorganization throughout.

2009-04-29  Matteo Bordin  <bordin@adacore.com>

	* s-stausa.ads: Changed visibility of type Task_Result: moved to
	public part to give application visibility over it.
	This is for future improvement and to build a public API on top of it.
	Changed record components name of type Task_Result to reflect the new
	way of reporting. 

	* s-stausa.adb: Actual_Size_Str changed to reflect the new way of
	reporting Stack usage.

	* gnat_ugn.texi: Update doc of stack usage report.

	* g-tastus.ads, s-stusta.ads, s-stusta.adb: New files.

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

2009-04-29  Pascal Obry  <obry@adacore.com>

	* initialize.c: Do not expand quoted arguments.

2009-04-29  Emmanuel Briot  <briot@adacore.com>

	* prj-ext.adb, prj.adb, prj.ads: Fix memory leaks.

	* clean.adb (Ultimate_Extension_Of): removed, since duplicate of
	 Prj.Ultimate_Extending_Project_Of

2009-04-29  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch7.adb (Build_Final_List): If the designated type is a Taft
	Amendment type, add the with_clause for Finalization.List_Controller
	only if the current context is a package body.

2009-04-29  Thomas Quinot  <quinot@adacore.com>

	* sem_ch12.adb: Minor reformatting

	* sem_aggr.adb: Minor reformatting

	* sem_ch6.adb, sem_cat.ads: Minor reformatting

	* sem_ch10.adb, gnat1drv.adb, prj-nmsc.adb: Minor reformatting

2009-04-29  Quentin Ochem  <ochem@adacore.com>

	* prj.ads (Source_Id): Now general pointer type.

2009-04-29  Thomas Quinot  <quinot@adacore.com>

	* exp_ch7.adb, rtsfind.adb: Minor reformatting

	* sem_res.adb: Minor reformatting

2009-04-29  Thomas Quinot  <quinot@adacore.com>

	* sem_res.adb (Static_Concatenation): An N_Op_Concat with static
	operands is static only if it is a predefined concatenation operator.

	* sem_util.adb: Minor reformatting

	* sem_ch12.adb (Save_References): When propagating semantic information
	from generic copy back to generic template, for the case of an
	identifier that has been rewritten to an explicit dereference whose
	prefix is either an object name or a parameterless funcion call
	denoting a global object or function, properly capture the denoted
	global entity: perform the corresponding rewriting in the template,
	and point the rewritten identifier to the correct global entity (not
	to the associated identifier in the generic copy).

2009-04-29  Robert Dewar  <dewar@adacore.com>

	* rtsfind.adb, prj-env.adb: Minor reformatting
	Minor code reorganization

2009-04-29  Emmanuel Briot  <briot@adacore.com>

	* make.adb: Fix comment

	* prj.adb (Ultimate_Extending_Project_Of): Fix handling when no project
	is given as argument, as might happen in gnatmake.

2009-04-29  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Check_Abstract_Overriding): Improve error message when
	an abstract operation of a progenitor is not properly overridden by an
	operation of a derived synchronized type.

2009-04-29  Robert Dewar  <dewar@adacore.com>

	* mlib-prj.adb, mlib-tgt.adb, mlib-tgt.ads, prj-nmsc.adb,
	prj-proc.adb: Minor reformatting
	Minor code reorganization

2009-04-29  Bob Duff  <duff@adacore.com>

	* exp_ch7.adb (Build_Final_List): For an access type that designates a
	Taft Amendment type, if the access type needs finalization, make sure
	the implicit with clause for List_Controller occurs on the package spec.

	* rtsfind.adb (Text_IO_Kludge): Fine tune the creation of implicit
	with's created for the pseudo-children of Text_IO and friends. In
	particular, avoid cycles, such as Ada.Wide_Text_IO.Integer_IO and
	Ada.Text_IO.Integer_IO both with-ing each other.

	* sem.adb (Walk_Library_Items): Suppress assertion failure in certain
	oddball cases when pragma Extend_System is used.

	* sem_ch12.adb (Get_Associated_Node): Prevent direct 'with' cycles in
	the case where a package spec instantiates a generic whose body with's
	this package, so Walk_Library_Items won't complain about cyclic with's.

2009-04-29  Emmanuel Briot  <briot@adacore.com>

	* gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb, prj.ads,
	prj-pp.adb, prj-pp.ads, makeutl.adb, clean.adb, prj-nmsc.adb,
	mlib-tgt.adb, mlib-tgt.ads, prj-util.adb, prj-env.adb, prj-env.ads
	(Project_Id): now a real pointer to Project_Data, instead of an index
	into the Projects_Table. This simplifies the API significantly, avoiding
	extra lookups in this table and the need to pass the Project_Tree_Ref
	parameter in several cases

2009-04-29  Nicolas Setton  <setton@adacore.com>

	* gcc-interface/Makefile.in: Produce .dSYM files for shared libs on
	darwin.

2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Put
	back kludge.

2009-04-24  Robert Dewar  <dewar@adacore.com>

	* mlib-prj.adb, prj-env.adb, prj-nmsc.adb, prj-proc.adb, make.adb,
	clean.adb: Minor reformatting.
	Minor code reorganization and message improvement.

2009-04-24  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-nmsc.ads
	(Alternate_Languages): now implemented as a malloc-ed list rather
	than through a table.

2009-04-24  Thomas Quinot  <quinot@adacore.com>

	* sem_res.adb (Static_Concatenation): Simplify predicate to make it
	accurately handle cases such as "lit" & "lit" and
	"lit" & static_string_constant

2009-04-24  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, make.adb, mlib-prj.adb, prj.adb, prj.ads, clean.adb,
	prj-nmsc.adb, prj-env.adb (Project_List_Table, Project_Element):
	removed. Lists of projects are now implemented via standard malloc
	rather than through the table.

2009-04-24  Thomas Quinot  <quinot@adacore.com>

	* sem_ch12.adb: Minor reformatting

	* g-trasym.adb: Minor reformatting

	* exp_ch6.adb: Minor reformatting

2009-04-24  Robert Dewar  <dewar@adacore.com>

	* layout.adb (Layout_Type): For packed array type, copy unset
	size/alignment fields from the referenced Packed_Array_Type.

2009-04-24  Bob Duff  <duff@adacore.com>

	* lib-load.adb (Make_Instance_Unit): Revert previous change, no
	longer needed after sem_ch12 changes.

	* sem.adb (Walk_Library_Items): Include with's in some debugging
	printouts.

2009-04-24  Emmanuel Briot  <briot@adacore.com>

	* prj.ads, prj-nmsc.adb (Unit_Project): removed, since in fact we were
	only ever using the Project field.

2009-04-24  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Build_Instance_Compilation_Unit_Nodes): Do not set
	Body_Required on the generated compilation node. The new node is linked
	to its body, but both share the same file, so we do not set this flag
	on the new unit so as not to create a spurious dependency on a
	non-existent body in the ali file for the instance.

2009-04-24  Robert Dewar  <dewar@adacore.com>

	* make.adb: Minor reformatting

2009-04-24  Emmanuel Briot  <briot@adacore.com>

	* prj.adb, prj.ads, prj-nmsc.adb (Check_File, Record_Ada_Source,
	Add_Source): merge some code between those. In particular change where
	file normalization is done to avoid a few extra calls to
	Canonicalize_File_Name. This also removes the need for passing
	Current_Dir in a number of subprograms.

2009-04-24  Bob Duff  <duff@adacore.com>

	* lib-load.adb (Make_Instance_Unit): In the case where In_Main is
	False, assign the correct unit to the Cunit field of the new table
	entry. We want the spec unit, not the body unit.

	* rtsfind.adb (Make_Unit_Name, Maybe_Add_With): Simplify calling
	interface for these.
	(Maybe_Add_With): Check whether we're trying to a with on the current
	unit, and avoid creating such directly self-referential with clauses.
	(Text_IO_Kludge): Add implicit with's for the generic pseudo-children of
	[[Wide_]Wide_]Text_IO. These are needed for Walk_Library_Items,
	and matches existing comments in the spec.

	* sem.adb (Walk_Library_Items): Add various special cases to make the
	assertions pass.

	* sem_ch12.adb (Build_Instance_Compilation_Unit_Nodes): Use Body_Cunit
	instead of Parent (N), for uniformity.

2009-04-24  Robert Dewar  <dewar@adacore.com>

	* errout.ads: Minor reformatting

2009-04-24  Emmanuel Briot  <briot@adacore.com>

	* gnat_ugn.texi (Library Projects): add documentation on gnatmake's
	behavior when the project includes sources from multiple languages

2009-04-24  Vincent Celier  <celier@adacore.com>

	* prj.adb (Has_Foreign_Sources): Returns True in Ada_Only mode if there
	is a language other than Ada declared.

	* makeutl.adb (Linker_Options_Switches): Call For_All_Projects with
	Imported_First set to True.

2009-04-24  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb: additional optimization to inhibit creation of
	redundant transient scopes.

2009-04-24  Bob Duff  <duff@adacore.com>

	* rtsfind.ads: Minor comment fix

2009-04-24  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, prj-nmsc.adb (Find_Ada_Sources,
	Get_Path_Name_And_Record_Ada_Sources): merged, since these were
	basically doing the same work (for explicit or implicit sources).
	(Find_Explicit_Sources): renamed to Find_Sources to better reflect its
	role. Rewritten to share some code (testing that all explicit sources
	have been found) between ada_only and multi_language modes.

2009-04-24  Jerome Lambourg  <lambourg@adacore.com>

	* sem_prag.adb (Check_Form_Of_Interface_Name): Allow space in Ext_Name
	for CLI imported types.
	(Analyze_Pragma): Allow CIL or Java imported functions returning
	access-to-subprogram types.

2009-04-24  Emmanuel Briot  <briot@adacore.com>

	* make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads:
	(Project_Data.Dir_Path): field removed, since it can be computed
	directly from .Directory, and is needed only once when processing the
	project is buildgpr.adb or make.adb

2009-04-24  Robert Dewar  <dewar@adacore.com>

	* prj-env.adb, prj-proc.adb, prj.adb, prj.ads,
	rtsfind.adb: Minor reformatting.
	Minor code reorganization

2009-04-24  Arnaud Charlet  <charlet@adacore.com>

	* mlib-prj.adb: Use friendlier english identifier.

	* gnatcmd.adb, make.adb: Use better english identifiers.

2009-04-24  Robert Dewar  <dewar@adacore.com>

	* clean.adb: Minor reformatting

2009-04-24  Robert Dewar  <dewar@adacore.com>

	* einfo.adb (OK_To_Rename): New flag

	* einfo.ads (OK_To_Rename): New flag

	* exp_ch3.adb (Expand_N_Object_Declaration): Rewrite as renames if
	OK_To_Rename set.

	* exp_ch4.adb (Expand_Concatenate): Mark temp variable OK_To_Rename

	* sem_ch7.adb (Uninstall_Declarations): Allow for renames from
	OK_To_Rename.

2009-04-24  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, make.adb, mlib-prj.adb, prj.adb, prj.ads, makeutl.adb,
	clean.adb, prj-nmsc.adb, prj-env.adb, prj-env.ads (Project_Data.Seen):
	field removed. This is not a property of the
	project, just a boolean used to traverse the project tree, and storing
	it in the structure prevents doing multiple traversal in parallel.
	(Project_Data.Checked): also removed, since it was playing the same role
	as Seen when we had two nested loops, and this is no longer necessary
	(For_All_Imported_Projects): removed, since in fact there was already
	the equivalent in For_Every_Project_Imported. The latter was rewritten
	to use a local hash table instead of Project_Data.Seen
	Various loops were rewritten to use For_Every_Project_Imported, thus
	removing the need for Project_Data.Seen. This avoids a lot of code
	duplication

2009-04-24  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Actuals): Do not create blocks around code
	statements, even though the actual of the call is a concatenation,
	because the argument is static, and we want to preserve warning
	messages  about sequences of code statements that are not marked
	volatile.

	* sem_warn.adb: remove obsolete comment about warning being obsolete

	* s-tasren.adb (Task_Do_Or_Queue): If a timed entry call is being
	requeued and the delay has expired while within the accept statement
	that executes the requeue, do not perform the requeue and indicate that
	the timed call has been aborted.

2009-04-24  Emmanuel Briot  <briot@adacore.com>

	* mlib-prj.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb
	(Has_Ada_Sources, Has_Foreign_Sources): new subprograms
	(Project_Data.Ada_Sources_Present, Foreign_Sources_Present): removed,
	since they can be computed from the above.

2009-04-24  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb: Call Prj.Env.Initialize with the Project_Tree

	* prj-env.adb: Move all global variables to the private part of the
	project tree data.
	Access these new components instead of the global variables no longer
	in existence.
	(Add_To_Path): New Project_Tree_Ref parameter, to access the new
	components that were previously global variables.

	* prj-env.ads (Initialize): New Project_Tree_Ref parameter
	(Set_Mapping_File_Initial_State_To_Empty): New Project_Tree_Ref
	parameter.

	* prj-nmsc.adb (Compute_Unit_Name): New Project_Tree_Ref parameter to
	be able to call Set_Mapping_File_Initial_State_To_Empty with it.

	* prj.adb (Initialize): Do not call Prj.Env.Initialize
	(Reset): Do not call Prj.Env.Initialize. Instead, initialize the new
	components in the private part of the project tree data.

	* prj.ads (Private_Project_Tree_Data): new components moved from
	Prj.Env: Current_Source_Path_File, Current_Object_Path_File,
	Ada_Path_Buffer, Ada_Path_Length, Ada_Prj_Include_File_Set,
	Ada_Prj_Objects_File_Set, Fill_Mapping_File.

2009-04-24  Vincent Celier  <celier@adacore.com>

	* opt.ads (Unchecked_Shared_Lib_Imports): New Boolean flag.

	* prj-nmsc.adb (Check_Library): No error for imports by shared library
	projects, when --unchecked-shared-lib-imports is used.

2009-04-24  Robert Dewar  <dewar@adacore.com>

	* sem_ch7.adb: Minor reformatting

2009-04-24  Tristan Gingold  <gingold@adacore.com>

	* s-osinte-darwin.adb, s-osinte-darwin.ads: lwp_self now returns the
	mach thread id.

2009-04-24  Emmanuel Briot  <briot@adacore.com>

	* prj-env.adb, prj-env.ads (Body_Path_Name_Of, Spec_Path_Name_Of,
	Path_Name_Of_Library_Unit_Body): rEmove unused subprograms.
	(For_All_Imported_Projects): new procedure
	(For_All_Source_Dirs, For_All_Object_Dirs): Rewritten based on the
	above rather than duplicating code.

2009-04-24  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb
	(Source_Id, Source_Data): use a real list to store sources rather than
	using an external table to store the elements. This makes code more
	efficient and more readable.

2009-04-24  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb
	(Source_Iterator): new type.
	This removes the need for having the sources on three different
	lists at the project tree, project and language level. They are now
	on a single list.

2009-04-24  Emmanuel Briot  <briot@adacore.com>

	* gnatcmd.adb, prj.adb, prj.ads: Remove unused entities

2009-04-24  Ed Schonberg  <schonberg@adacore.com>

	* sem_warn.adb: Add comment on obsolete warning

2009-04-24  Arnaud Charlet  <charlet@adacore.com>

	* s-tassta.adb (Create_Task): Fix violation of locking rule.

2009-04-24  Emmanuel Briot  <briot@adacore.com>

	* prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb (Language_Index): renamed
	to Language_Ptr to better reflect its new implementation.
	(Project_Data.First_Languages_Processing): renamed to Languages now
	that the field with that name is no longer used
	(Project_Data.Languages): removed, no longer used, and duplicates
	information already available through First_Language_Processing.
	(Prj.Language_Index): now an actual pointer, instead of an index into
	a table. This makes the list somewhat more obvious, but more importantly
	removes the need to pass a pointer to the project_tree_data in a few
	places, and makes accessing the attributes of a languages more
	efficient.

2009-04-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
	    Thomas Quinot  <quinot@adacore.com>

	* fe.h (Set_Identifier_Casing): Add const to second parameter.
	* gcc-interface/misc.c (internal_error_function): Make copy of return
	from pp_formatted_text before assigning BUFFER to it.
	(gnat_init): Likewise for main_input_filename and gnat_argv.
	(gnat_printable_name): Remove cast from call to Set_Identifier_Casing.

2009-04-24  Eric Botcazou  <ebotcazou@adacore.com>

	* ttypes.ads (Target_Double_Float_Alignment): New variable.
	(Target_Double_Scalar_Alignment): Likewise.
	* get_targ.ads (Get_Strict_Alignment): Adjust external name.
	(Get_Double_Float_Alignment): New imported function.
	(Get_Double_Scalar_Alignment): Likewise.
	* layout.adb (Set_Elem_Alignment): Take into account specific caps for
	the alignment of "double" floating-point types and "double" or larger
	scalar types, as parameterized by Target_Double_Float_Alignment and
	Target_Double_Scalar_Alignment respectively.
	* gcc-interface/gigi.h (double_float_alignment): Declare.
	(double_scalar_alignment): Likewise.
	(is_double_float_or_array): Likewise.
	(is_double_scalar_or_array): Likewise.
	(get_target_double_float_alignment): Likewise.
	(get_target_double_scalar_alignment): Likewise.
	* gcc-interface/targtyps.c (get_strict_alignment): Rename into...
	(get_target_strict_alignment): ...this.
	(get_target_double_float_alignment): New function.
	(get_target_double_scalar_alignment): Likewise.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>:
	Test the presence of an alignment clause for under-aligned integer
	types.  Take into account specific caps for the alignment of "double"
	floating-point types and "double" or larger scalar types, as
	parameterized by Target_Double_Float_Alignment and
	Target_Double_Scalar_Alignment respectively.
	(validate_alignment): Likewise.
	* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Alignment>: Likewise.
	(gigi): Initialize double_float_alignment and double_scalar_alignment.
	* gcc-interface/utils.c (double_float_alignment): New global variable.
	(double_scalar_alignment): Likewise.
	(is_double_float_or_array): New predicate.
	(is_double_scalar_or_array): Likewise.

2009-04-24  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.c (build_cond_expr): Move SAVE_EXPR ahead of
	the conditional expression only if it is common to both arms.

2009-04-24  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (build_call_alloc_dealloc): Update comment.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Pass correct
	arguments to build_allocator.
	* gcc-interface/utils2.c (build_call_alloc_dealloc): Update comment.
	Remove code handling special allocator and assert its uselessness.

2009-04-24  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If an
	alignment is specified, do not promote that of the component type
	beyond it.
	<E_Array_Subtype>: Likewise.

2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Is_True_Constant): Lift restriction on atomic objects.
	* sinfo.ads (Object Declaration): Likewise.
	(Assignment Statement): Likewise.
	* freeze.adb (Expand_Atomic_Aggregate): Remove useless test.
	Do not force Is_True_Constant to false on the temporary.
	(Freeze_Entity): Do not force Is_True_Constant to false on names on
	the RHS of object declarations.
	* gcc-interface/trans.c (lvalue_required_p) <N_Object_Declaration>:
	New case.  Return 1 if the object is atomic.
	<N_Assignment_Statement>: Likewise.

2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>
	For packed array types, make the original array type a parallel type
	for the modular type and its JM wrapper if the type is bit-packed.
	<E_Array_Subtype>: Likewise.  Do not generate the special XA parallel
	record type for packed array types.  Remove kludge.

2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (create_index_type): Adjust head comment.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>:
	Use front-end predicates to compute signedness and precision.
	<E_String_Literal_Subtype>: Fold range type.
	Make sure to set longest_float_type_node to a scalar type.
	(elaborate_entity): Use consistent Constraint_Error spelling.
	(substitute_in_type) <INTEGER_TYPE>: Always copy the type.
	* gcc-interface/misc.c (gnat_print_type) <INTEGER_TYPE>: Use brief
	output for the modulus, if any.
	<ENUMERAL_TYPE>: Likewise for the RM size.
	* gcc-interface/trans.c (gnat_to_gnu): Use consistent Constraint_Error
	spelling.
	* gcc-interface/utils.c (finish_record_type): Really test the alignment
	of BLKmode bit-fields to compute their addressability.
	(create_index_type): Adjust comments.
	(create_param_decl): Create the biased subtype manually.
	* gcc-interface/utils2.c (build_component_ref): Use consistent
	Constraint_Error spelling.

2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/cuintp.c: Clean up include directives.
	* gcc-interface/targtyps.c: Likewise.
	* gcc-interface/decl.c: Likewise.
	* gcc-interface/misc.c: Likewise.
	* gcc-interface/trans.c: Likewise.
	* gcc-interface/utils.c: Likewise.
	* gcc-interface/utils2.c: Likewise.
	* gcc-interface/Make-lang.in: Adjust dependencies accordingly.

2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/ada-tree.h (union lang_tree_node): Use standard idiom.
	(SET_TYPE_LANG_SPECIFIC): Likewise.  Fix formatting.
	(SET_DECL_LANG_SPECIFIC): Likewise.
	Reorder macros.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>:
	Update comment about use of build_range_type.
	<E_Array_Type, E_Array_Subtype>: Use consistent naming convention.
	<E_Array_Subtype>: Rework comments about TYPE_ACTUAL_BOUNDS and add
	check for other cases of overloading.
	* gcc-interface/trans.c (gigi): Use size_int in lieu of build_int_cst.
	* gcc-interface/utils2.c (build_call_raise): Fix off-by-one error.
	Use size_int in lieu of build_int_cst.
	(build_call_alloc_dealloc): Use build_index_2_type in lieu of
	build_range_type.

2009-04-22  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR>: If operation's
	type is an enumeral or a boolean type, change it to an integer type
	with the same mode and signedness.

2009-04-22  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (create_var_decl_1): Do not emit debug info
	for an external constant whose initializer is not absolute.

2009-04-22  Taras Glek  <tglek@mozilla.com>

	* gcc-interface/ada-tree.h: Update GTY annotations to new syntax.
	* gcc-interface/trans.c: Likewise.
	* gcc-interface/utils.c: Likewise.

2009-04-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb: Create block around procedure call when actual is a
	concatenation.

2009-04-22  Thomas Quinot  <quinot@adacore.com>

	* s-soflin.ads: Fix typos

2009-04-22  Vincent Celier  <celier@adacore.com>

	* prj-env.adb: Minor comment change

	* prj-nmsc.adb (Check_Common): Add guard to avoid calling
	Get_Name_String with No_File.

	* tempdir.adb (Create_Temp_File): Output diagnostic when temp file
	cannot be created even when not in verbose mode.

2009-04-22  Emmanuel Briot  <briot@adacore.com>

	* make.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj.adb,
	prj.ads (Create_Mapping_File): merge the two versions for Ada_Only and
	Multi_Language modes, to avoid code duplication.
	(Project_Data.Include_Language): Removed.

2009-04-22  Vincent Celier  <celier@adacore.com>

	* tempdir.adb (Create_Temp_File): Add a diagnostic in verbose mode when
	the temporary file cannot be created, indicating the directory when the
	creation was attempted.

2009-04-22  Emmanuel Briot  <briot@adacore.com>

	* prj-env.adb, prj-env.ads (Create_Mapping_File): we need to compare
	the language names, not their indices.

2009-04-22  Emmanuel Briot  <briot@adacore.com>

	* prj.ads, prj-nmsc.adb, prj-env.adb, prj-env.ads
	(Source_Data.Language_Name): Field removed.

2009-04-22  Emmanuel Briot  <briot@adacore.com>

	* prj.adb, prj.ads, prj-nmsc.adb (Project_Data.Unit_Based_Language_*):
	Two fields removed.

2009-04-22  Emmanuel Briot  <briot@adacore.com>

	* prj-nmsc.adb (Check_Naming_Ada_Only): Properly initialize the
	separate_suffix to the same value as the body_suffix.

2009-04-22  Robert Dewar  <dewar@adacore.com>

	* prj.adb: Minor code reorganization
	Code clean up.

	* prj-proc.adb: Minor code reorganization, clean up.

	* prj-nmsc.adb: Minor reformatting
	Minor code reorganization

	* gnat_ugn.texi: Add to doc on strict aliasing

2009-04-22  Pascal Obry  <obry@adacore.com>

	* s-osinte-mingw.ads: Rename Reserved field in CRITICAL_SECTION to
	SpinCount.

	* s-tasini.adb: Minor reformatting.

	* s-tassta.adb: Minor reformatting.

2009-04-22  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, prj-nmsc.adb (Check_Naming_Schemes): split into several
	smaller subprograms.
	Renamed to Check_File_Naming_Schemes to avoid confusion with the
	other Check_Naming_Schemes functions that plays a totally different
	role.
	(Check_Unit_Based_Lang, Check_File_Based_Lang): new subprograms,
	extracted from the above. These were partially rewritten to avoid
	unnecessary code and temporary variables.
	(Compute_Unit_Name): new subprogram, merge of Check_Unit_Based_Lang
	and Get_Unit (which for now still exist since they contain mode-specific
	code)

2009-04-22  Emmanuel Briot  <briot@adacore.com>

	* prj.ads, prj.adb, prj-nmsc.adb, prj-proc.adb (Recursive_Process):
	Remove duplicated code.
	(Canonical_Case_File_Name): new subprogram
	(Check_And_Normalize_Unit_Names): new subprogram
	(Write_Attr): new subprogram
	Better sharing of code
	(Check_Naming_Ada_Only, Check_Naming_Multi_Lang): new subprogram, to
	split Check_Naming and help find duplicated code
	(Check_Common): new subprogram, sharing code between ada_only and
	multi_language mode.
	(Naming_Data.Dot_Repl_Loc): field removed

2009-04-22  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, prj-nmsc.adb (Load_Naming_Exceptions): New subprogram.
	Minor refactoring to reduce the size of
	Process_Sources_In_Multi_Language_Mode.
	Avoid extra copied of Source_Data, which we found in the past could be
	quite slow.
	(Mark_Excluded_Sources): new subprogram.
	(Remove_Locally_Removed_Files_From_Units): merged into the above
 	Refactors Process_Sources_In_Multi_Language_Mode to reduce its size,
 	and allow better sharing of code between multi_lang and ada_only modes
	(Project_Extends): removed, since exact duplicate of Prj.Is_Extending

2009-04-22  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, prj.adb, prj.ads (Project_Data.First_Referred_By):
	Removed, since unused.

2009-04-22  Vincent Celier  <celier@adacore.com>

	* prj-attr.adb: New single project level attribute
	Separate_Run_Path_Options.

	* prj-nmsc.adb (Process_Project_Level_Simple_Attributes): Process
	attribute Seperate_Run_Path_Options.

	* prj.ads: (Project_Configuration): New Boolean component
	Separate_Run_Path_Options, defaulted to False.

	* snames.ads-tmpl: New standard name Seperate_Run_Path_Options

2009-04-22  Robert Dewar  <dewar@adacore.com>

	* sem_type.adb: Minor reformatting

	* mlib.adb: Minor reformatting

	* sem_aggr.adb: Minor reformatting. Defend against junk aggregate from
	syntax error.

2009-04-22  Nicolas Setton  <setton@adacore.com>

	* link.c: Add flag __gnat_separate_run_path_options.

	* mlib.adb (Separate_Run_Path_Options): New subprogram.

	* mlib.ads (Separate_Run_Path_Options): Declare.

	* gnatcmd.adb (Process_Link): Add support for emitting one "rpath"
	switch per directory, rather than one "rpath" switch listing all
	directories.

	* gnatlink.adb (Process_Binder_File): Likewise.

	* make.adb (Gnatmake): Likewise.

2009-04-22  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch6.adb (Make_Build_In_Place_Call_In_Assignment): Code cleanup.
	Add a call to Move_Final_List when the target of the assignment is a
	return object that needs finalization and the expression is a
	controlled build-in-place function.

2009-04-22  Vincent Celier  <celier@adacore.com>

	* make.adb (Gnatmake, Bind_Step): call Set_Ada_Paths with
	Including_Libraries set to True.

2009-04-22  Ed Schonberg  <schonberg@adacore.com>

	* lib-load.ads, lib-load.adb (Make_Child_Decl_Unit): New subprogram, to
	create a unit table entry for the subprogram declaration created for a
	child suprogram body that has no separate specification.

	* sem_ch10.adb (Analyze_Compilation_Unit): For a child unit that is a
	subprogram body, call Make_Child_Decl_Unit.

	* lib.adb (Get_Cunit_Unit_Number): Verify that an entry not yet in the
	table can only be the created specification of a child subprogram body
	that is the main unit, which has not been entered in the table yet.

	* errout.adb  (Output_Messages): Ignore created specification of a
	child subprogram body to prevent repeated listing of error messages.

	* gnat1drv.adb (gnat1drv): The generated specification for a child
	subprogram body does not generate code.

2009-04-22  Arnaud Charlet  <charlet@adacore.com>

	* s-bitops.adb, s-bitops.ads (Raise_Error): Do not use Ada 05 syntax,
	since this unit is now part of bootstrap units, so must use Ada 95
	syntax only.

2009-04-22  Thomas Quinot  <quinot@adacore.com>

	* a-tasatt.adb: Minor reformatting

2009-04-22  Bob Duff  <duff@adacore.com>

	* s-stalib.ads: Remove "with System;" since we're inside System, so
	it's unnecessary.

2009-04-22  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Add_Source): Always put the dependency file name in
	the source record, as there may be a dependency file even if no object
	file is created.

2009-04-22  Robert Dewar  <dewar@adacore.com>

	* lib-load.adb: Minor reformatting

	* lib-load.ads: Minor reformatting

	* sinfo.ads: Minor reformatting

2009-04-22  Bob Duff  <duff@adacore.com>

	* exp_pakd.adb: Minor comment fixes.

	* sinfo.ads, par-load.adb, sem_ch10.adb, lib-load.ads, lib-load.adb
	sem_ch12.adb: Change the meaning of the Library_Unit attribute to
	include units containing instantiations, as well as units that are
	generic instantiations.

	* sem.adb: Include dependents and corresponding specs/bodies in the
	unit walk.

	* gcc-interface/Make-lang.in:
	sem now depends on s-bitops, because of the packed array of Booleans.

2009-04-22  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/ada-tree.def: Fix formatting nits.
	(REGION_STMT): Delete.
	(HANDLER_STMT): Likewise.
	* gcc-interface/ada-tree.h: Fix formatting nits.
	(IS_STMT): Delete.
	(REGION_STMT_BODY): Likewise.
	(REGION_STMT_HANDLE): Likewise.
	(REGION_STMT_BLOCK): Likewise.
	(HANDLER_STMT_ARG): Likewise.
	(HANDLER_STMT_LIST): Likewise.
	(HANDLER_STMT_BLOCK): Likewise.
	* gcc-interface/gigi.h (fp_prec_to_size): Update comment.
	(fp_size_to_prec): Likewise.
	(largest_move_alignment): Delete.
	(gnat_compute_largest_alignment): Likewise.
	Fix minor nits.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>:
	Remove redundant code.
	<E_Array_Type>: Remove redundant assert.
	<E_Array_Subtype>: Exit early from index computation in pathological
	cases.
	Rewrite conditional assignment.
	(make_type_from_size): Likewise.
	* gcc-interface/misc.c (largest_move_alignment): Delete.
	(gnat_finish_incomplete_decl): Likewise.
	(LANG_HOOKS_FINISH_INCOMPLETE_DECL): Likewise.
	(asm_out_file): Likewise
	(gnat_print_type) <INTEGER_TYPE>: Fall through to ENUMERAL_TYPE case.
	(gnat_dwarf_name): Move around.
	* gcc-interface/trans.c (Attribute_to_gnu): Fix minor nits.
	(gigi): Remove call to gnat_compute_largest_alignment.
	* utils.c (create_field_decl): Rewrite conditional assignment.
	Fix minor nits.

2009-04-22  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity): Compute is_type predicate
	on entry.  Defer common processing for types.  Reorder and clean up.
	Compute the equivalent GNAT node and the default size for types only.
	<E_Modular_Integer_Type>: Directly use Esize for the type's precision.
	<E_Access_Type>: For an unconstrained designated type, do not pretend
	that a dummy type is always made.
	<all> Fix nits in comments.
	(validate_size): Fix formatting nits and comments.
	(set_rm_size): Likewise.
	* gcc-interface/utils.c (create_param_decl): Replace bogus argument
	passed to TARGET_PROMOTE_PROTOTYPES hook.

2009-04-22  Eric Botcazou  <ebotcazou@adacore.com>

	* fe.h (Get_External_Name): Declare.
	* gcc-interface/gigi.h (concat_id_with_name): Rename to...
	(concat_name): ...this.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Rename gnu_entity_id to
	gnu_entity_name and adjust for above renaming.
	<E_Access_Type>: Use create_concat_name to get the name of the various
	types associated with unconstrained array types.
	(make_aligning_type): Adjust for above renaming.
	(maybe_pad_type): Likewise.
	(components_to_record): Likewise.  Use get_identifier_with_length for
	the encoding of the variant.
	(get_entity_name): Use get_identifier_with_length.
	(create_concat_name): Likewise.  Use Get_External_Name if no suffix.
	Do not fiddle with Name_Buffer.
	(concat_id_with_name): Rename to...
	(concat_name): ...this.  Use get_identifier_with_length.  Do not fiddle
	with Name_Buffer.
	* gcc-interface/utils.c (rest_of_record_type_compilation): Adjust for
	above renaming.

2009-04-21  Joseph Myers  <joseph@codesourcery.com>

	* ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and
	license notices.

2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gnat_to_gnu): Do not overwrite location info.

2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/ada-tree.h (TYPE_RM_SIZE_NUM): Delete.
	(TYPE_RM_SIZE): Access TYPE_LANG_SLOT_1 directly for integral types.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Type>:
	Remove useless support code for packed array types and assert its
	uselessness.
	<E_Signed_Integer_Subtype>: Reuse entity identifier in more places and
	adjust for TYPE_RM_SIZE change.
	<all> Fix nits in comments.  Use Original_Array_Type accessor instead
	of Associated_Node_For_Itype accessor for packed array types.
	(make_packable_type): Likewise.
	(maybe_pad_type): Likewise.
	(set_rm_size): Likewise.  Rework conditional statement.  Adjust for
	TYPE_RM_SIZE change.
	(make_type_from_size): Adjust for TYPE_RM_SIZE change.
	(rm_size): Fix nits in comments.  Rework conditional statements.
	* gcc-interface/misc.c (gnat_print_type): Adjust for TYPE_RM_SIZE
	change.
	* gcc-interface/trans.c (Attribute_to_gnu): Fix nits in comments.
	* gcc-interface/utils.c (gnat_init_decl_processing): Use more
	appropriate function to initialize the size_type_node.  Adjust for
	TYPE_RM_SIZE change.

2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity): Do not set force_global
	for imported subprograms.

2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not make
	constant objects covered by 13.3(19) volatile.

2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (create_type_decl): Do not pass declarations
	of dummy fat pointer types to the debug back-end.

2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity): Rewrite Esize calculation.
	<E_Signed_Integer_Subtype>: Set the RM size on the integer type
	before wrapping it up in the record type.  Do not overwrite the
	Ada size of the record type with the Esize.

2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (unchecked_conversion_lhs_nop): New predicate.
	(gnat_to_gnu) <N_Unchecked_Type_Conversion>: Return the expression
	if the conversion is on the LHS of an assignment and a no-op.
	<all> Do not convert the result to the result type if the Parent
	node is such a conversion.

2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/ada-tree.h (DECL_HAS_REP_P): Delete.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Add support for extension
	of types with unknown discriminants.
	(substitute_in_type): Rewrite and restrict to formal substitutions.
	* gcc-interface/utils.c (create_field_decl): Do not set DECL_HAS_REP_P.
	(update_pointer_to): Update comment.

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Use_One_Package): In an instance, if two
	potentially_use_visible and non-overloadable homonyms are available
	from  the actuals of distinct formal packages, retain the current one,
	which was visible in the generic, to prevent spurious visibility
	errors.
	(End_Use_Package): Restore use_visibility when needed.

2009-04-20  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi, vms_data.ads: Update doc.

2009-04-20  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in: Update dependencies

	* gcc-interface/Makefile.in: Link run-time against winsock2 lib under
	Windows.

2009-04-20  Robert Dewar  <dewar@adacore.com>

	* checks.ads: Fix documentation of range check handling

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Use_One_Type): Use proper entity on warning message for
	a redundant use_type clause.

2009-04-20  Robert Dewar  <dewar@adacore.com>

	* sem_attr.adb (Eval_Attribute, case Length): Catch more cases where
	this attribute can be evaluated at compile time.
	(Eval_Attribute, case Range_Length): Same improvement

	* sem_eval.ads, sem_eval.adb (Compile_Time_Compare): New procedure

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analye_Subprogram_Declaration): Code reorganization,
	for better handling of null procedures.
	(Check_Overriding_Indicator): Do not emit a warning on a missing
	overriding indicator on an operator when the type of which the operator
	is a primitive is private.

2009-04-20  Bob Duff  <duff@adacore.com>

	* sem.adb, gnat1drv.adb, debug.adb: Use the -gnatd.W switch to control
	debugging output.

2009-04-20  Robert Dewar  <dewar@adacore.com>

	* sem_attr.adb: Minor reformatting

	* gnatcmd.adb: Minor reformatting

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_User_Defined_Binary_Op): If left operand is
	overloaded and one interpretation matches the context, label the
	operand with the type of first formal.

2009-04-20  Bob Duff  <duff@adacore.com>

	* debug.ads: Minor comment fix.

	* debug.adb: Minor comment fixes.

2009-04-20  Javier Miranda  <miranda@adacore.com>

	* rtsfind.ads (RE_Null_Id): New entity of package Ada.Exceptions

	* exp_ch6.adb (Expand_Inlined_Call): Undo previous patch.

	* exp_ch11.adb (Expand_N_Raise_Statement): When the raise stmt
	is expanded into a call to Raise_Exception, avoid passing the
	exception-name'identity in runtimes in which this argument
	is not used.

2009-04-20  Jerome Lambourg  <lambourg@adacore.com>

	* impunit.adb: Add i-cil and i-cilobj packages, now needed by the
	generated bindings for cil.

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Record_Aggregate): If the type has unknown
	discriminants, collect components from the Underlying_Record_View,
	which will be used in the expansion of the aggregate into assignments.

	* sem_ch3.adb: Do not label derived type with unknown discriminants as
	having a private declaration.

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* exp_util.adb (Expand_Subtype_From_Expr): use the
	underlying_record_view when available, to create the proper constrained
	subtype for an object of a derived type with unknown discriminants.

2009-04-20  Javier Miranda  <miranda@adacore.com>

	* exp_ch6.adb (Expand_Inlined_Call): Avoid generation of temporaries for
	formals that have pragma unreferenced.

2009-04-20  Pascal Obry  <obry@adacore.com>

	* a-direct.adb (To_Lower_If_Case_Insensitive): Removed.
	Remove all calls to To_Lower_If_Case_Insensitive to preserve
	the pathname original casing.

2009-04-20  Robert Dewar  <dewar@adacore.com>

	* g-trasym.adb: Minor reformatting

	* s-os_lib.adb: Minor reformatting

	* sem.adb: Minor reformatting
	Minor code reorganization

	* sem_ch3.adb: Minor reformatting

	* sem_ch4.adb: Minor reformatting

	* sem_ch8.adb: Minor reformatting

	* sem_type.adb: Minor reformatting

2009-04-20  Javier Miranda  <miranda@adacore.com>

	* sem_disp.adb (Find_Dispatching_Type): For subprograms internally
	generated by derivations of tagged types use the aliased subprogram a
	reference to locate their controlling type.

2009-04-20  Tristan Gingold  <gingold@adacore.com>

	* g-trasym.adb: Set size of result buffer before calling
	convert_address.

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Valid_Candidate): When checking whether a prefixed call
	to a function returning an array can be interpreted as a call with
	defaulted parameters whose result is indexed, take into account the
	types of all the indices of the array result type.

2009-04-20  Pascal Obry  <obry@adacore.com>

	* a-direct.adb, s-os_lib.adb: Minor reformatting.

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Analyze_Object_Renaming): Proper checks on incorrect
	null exclusion qualifiers for object renaming declarations.

2009-04-20  Nicolas Roche  <roche@adacore.com>

	* sysdep.c (__gnat_localtime_tzoff): on Windows, manipulated times are
	unsigned long long. So compare local_time and utc_time before computing
	the difference.

2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch3.adb (Build_Derived_Private_Type): Insert the declaration
	of the Underlying_Record_View before that of the derived type.

	* exp_ch3.adb (Expand_Record_Extension): Do not special-case types
	with unknown discriminants with regard to the parent subtype.

2009-04-20  Bob Duff  <duff@adacore.com>

	* sem.adb (Semantics, Walk_Library_Items): Include dependents of bodies
	that are not included. This is necessary if the main unit is a generic
	instantiation.

	* gnat1drv.adb (Gnat1drv): Comment out the call to Check_Library_Items,
	because it doesn't work if -gnatn is used.

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* rtsfind.adb (RTE, RTE_Record_Component): In
	Configurable_Run_Time_Mode, do not enable front-end inlining.

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* g-socthi-vms.adb: Remove now unnecessary WITH clause on
	System.Address_To_Access_Conversions.

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem.adb: Guard against ill-formed subunits.

2009-04-20  Bob Duff  <duff@adacore.com>

	* output.adb (Flush_Buffer): Do not indent blank lines.
	(Ignore_Output): New procedure for output suppression.

2009-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-calfor.adb (Image): Subtract 0.5 from the sub second component only
	when it is positive.  This avoids a potential constraint error raised
	by the conversion to Natural.

2009-04-20  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch5.adb (Expand_Assign_Array): For the case where the assignment
	involves a target that has a specified address, don't set Forward_OK
	and Backward_OK to False if the rhs is an aggregate, since overlap
	can't occur.

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Analyze_Object_Renaming): Reject ambiguous expressions
	in an object renaming declaration when the expected type is an
	anonymous access type.

	* sem_type.adb (Disambiguate): Use anonymousness to resolve a potential
	ambiguity when one interpretation is an anonymous access type and the
	other is a named access type, and the context itself is anonymous

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* einfo.ads: Minor comment rewording

	* sem_aggr.adb: Minor comment rewording

	* sem_ch3.adb, sem_ch6.adb: Minor reformatting

2009-04-20  Pascal Obry  <obry@adacore.com>

	* adaint.c (__gnat_is_readable_file): Check for file existence
	when not using ACL (always the case on remote drives).

2009-04-20  Robert Dewar  <dewar@adacore.com>

	* sinfo.ads: Minor comment fixes

	* exp_disp.adb: Minor reformatting

	* gnat1drv.adb: Minor reformatting

	* output.adb: Minor reformatting

	* s-vxwext-kernel.ads: Minor reformatting

	* sem.ads: Minor reformatting

	* sem.adb: Minor reformatting

	* sem_elim.adb: Minor reformatting

	* uname.ads: Minor reformatting

2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* init.c (__gnat_adjust_context_for_raise): On x86{-64}/Linux, add
	a small dope of 4 words to the adjustment to the stack pointer.

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* xoscons.adb: generate C header s-oscons.h in
	addition to s-oscons.ads.

	* socket.c: On VMS, use s-oscons.h.

	* sem_ch3.adb: Minor reformatting

	* exp_ch9.adb: Minor reformatting

2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (check_for_eliminated_entity): Remove.
	(Attribute_to_gnu): Do not call check_for_eliminated_entity.
	(call_to_gnu): Likewise.

2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gigi): Declare the name of the compilation
	unit as the first global name at the very beginning.

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.ads,
	s-oscons-tmplt.c, gsocket.h, g-socthi-mingw.ads, g-socthi.ads,
	g-sothco.ads (__gnat_inet_pton): Needs to be enabled for HP-UX as well,
	since HP-UX supports neither inet_aton nor inet_pton (altough the
	latter is part of the Single UNIX Specification!).
	So reorganize code, and share C implementation based on inet_addr(3)
	with VMS (instead of having a VMS specific Ada implementation in
	g-socthi-vms.adb).

2009-04-20  Gary Dismukes  <dismukes@adacore.com>

	* osint-c.ads, osint-c.adb (Get_Object_Output_File_Name): New function
	to return the object file name saved by Set_Object_Output_File_Name.

2009-04-20  Emmanuel Briot  <briot@adacore.com>

	* g-comlin.adb (Initialize_Option_Scan): Fix initialization of parsers
	for the standard command line, when argc has been modified since the
	start of the application.

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* socket.c (__gnat_inet_pton, Windows case): Adjust return value.
	WSAStringToAddress returns 0 for success and SOCKET_ERROR for failure.

2009-04-20  Bob Duff  <duff@adacore.com>

	* gnat1drv.adb (Gnat1drv): Put call to Check_Library_Items inside
	pragma Debug.

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch9.adb (Build_Protected_Sub_Specification): Mark generated
	subprogram as Eliminated when source operation is.
	(Expand_N_Protected_Type_Declaration): Generate protected and
	unprotected specs for the internal operations, even if the source
	operation is eliminated.

2009-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch3.adb (Make_Predefined_Primitive_Specs,
	Predefined_Primitive_Bodies): Do not create the declarations and bodies
	of the primitive subprograms associated with dispatching select
	statements when the runtime is in configurable mode.

2009-04-20  Ed Falis  <falis@adacore.com>

	* s-vxwext-kernel.ads (tickGet): Use tick64Get.

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* s-oscons-tmplt.c: Add support for generating a dummy version of
	s-oscons.ads providing all possible constants.

	* g-socthi-mingw.ads: Fix calling convention for __gnat_inet_pton.

	* socket.c (__gnat_inet_pton): On Windows make sure we always use the
	ANSI version (not the UNICODE version) of WSAStringToAddress.

2009-04-20  Pascal Obry  <obry@adacore.com>

	* adaint.c (__gnat_set_OWNER_ACL): properly free memory
	allocated for the security descriptor and make sure all
	handles are closed before leaving this procedure.

2009-04-20  Javier Miranda  <miranda@adacore.com>

	* einfo.ads, einfo.adb (Is_Underlying_Record_View): New subprogram
	(Set_Is_Underlying_Record_View): New subprogram

	* sem_aggr.adb (Discr_Present, Resolve_Record_Aggregate): In case of
	private types with unknown discriminants use the underlying record view
	if available.

	* sem_ch3.adb (Build_Derived_Private_Type): Enable construction of the
	underlying record view in the full view of private types whose parent
	has unknown discriminants.
	(Build_Derived_Record_Type): Avoid generating the class-wide entity
	associated with an underlying record view.
	(Derived_Type_Declaration): Avoid deriving parent primitives in
	underlying record views.

	* sem_ch6.adb (Check_Return_Subtype_Indication): Add support for
	records with unknown discriminants.

	* sem_type.adb (Covers): Handle underlying record views.
	(Is_Ancestor): Add support for underlying record views.

	* exp_attr.adb (Expand_Attribute): Expand attribute 'size into a
	dispatching call if the type of the target object is tagged and has
	unknown discriminants.

	* exp_aggr.adb (Resolve_Record_Aggregate): Add support for records with
	unknown discriminants.

	* exp_disp.adb (Build_Dispatch_Tables): Avoid generating dispatch
	tables for internally built underlying record views.

	* sprint.adb (sprint_node_actual): Improve output of aggregates with an
	empty list of component associations.

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* sem_ch10.adb: Minor reformatting

	* socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.ads,
	g-socthi-mingw.ads, g-socthi.ads, g-socket.adb
	(GNAT.Sockets.Inet_Addr): Do not use non-portable inet_aton, instead use
	standard inet_pton API (and emulate it on platforms that do not
	support it).
	(GNAT.Sockets.Thin.Inet_Pton, VMS case): Implement in terms of
	DECC$INET_ADDR, imported in Ada.
	(GNAT.Sockets.Thin.Inet_Pton, VxWorks and Windows cases): Use C
	implementation provided by GNAT runtime.
	(__gnat_inet_pton): C implementation of inet_pton(3) for VxWorks and
	Windows.

2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat_ugn.texi: Add documentation for -fno-ivopts.

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Analyze_Context): Do not analyze a unit in a
	with_clause if it is the main unit.

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* sem_type.adb, ali.adb, erroutc.adb: Minor code reorganization
	(no behaviour change): Use Append instead of Increment_Last followed
	by assignment.

2009-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch3.adb (Make_Predefined_Primitive_Specs): Do not generate the
	declarations of all primitives associated with dispatching asynchronous,
	conditional and timed selects when dispaching calls are forbidden and
	select statements are not allowed (such as in Ravenscar).
	(Predefined_Primitive_Bodies): Ditto for bodies.

	* exp_disp.ad (Make_DT): Do not create and populate the
	Select_Specific_Data of the dispatch table when dispatching calls are
	forbidden and select statements are not allowed (such as in Ravenscar).

2009-04-20  Robert Dewar  <dewar@adacore.com>

	* a-tifiio.adb: Minor reformatting

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* g-socthi-vms.adb, g-socket.adb, g-socket.ads: inet_aton(3), unlike
	other C library functions, report *failure* with a zero status, and
	success with a non-zero status.

2009-04-20  Bob Duff  <duff@adacore.com>

	* sem.ads, sem.adb (Walk_Library_Items): New generic procedure.
	(Semantics): After analyzing each unit, Append it to the
	Comp_Unit_List, if appropriate.

	* gnat1drv.adb (Check_Library_Items): New procedure for debugging
	purposes.
	(Gnat1drv): Correct comment regarding Back_End_Mode.

2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat_ugn.texi: Add documentation for -fno-inline-small-functions.

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
	output.adb, output.ads, s-taprop-hpux-dce.adb,
	s-taprop-linux.adb, s-taprop-solaris.adb, s-taprop-posix.adb: Minor
	reformatting.

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* g-socket.adb, g-socket.ads, g-socthi-mingw.ads, g-socthi-vms.adb,
	g-socthi-vms.ads, g-socthi-vxworks.ads, g-socthi.ads
	(GNAT.Sockets.Thin.C_Inet_Addr): Remove.
	(GNAT.Sockets.Thin.Inet_Aton): New function, imported from C library
	except for VMS where it is reimplemented in Ada using DECC$INET_ADDR.
	(GNAT.Sockets.Inet_Addr): Use inet_aton(3) instead of inet_addr(3).

	* debug.adb: Fix typo

	* gnat_rm.texi: Minor doc fix.

	* sem_ch7.adb, freeze.adb: Minor reformatting

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* g-socket.ads: Add new constants:
	  Loopback_Inet_Addr
	  Unspecified_Group_Inet_Addr
	  All_Hosts_Group_Inet_Addr
	  All_Routers_Group_Inet_Addr

	* s-oscons-tmplt.c, g-sttsne-vxworks.adb (System.OS_Constants): Add
	ERANGE (Result too large).
	(GNAT.Sockets.Thin.Task_Safe_NetDB, VxWorks version): Add missing
	propagation of errno to caller.

2009-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-calend.adb, a-calend-vms.adb: Increase the number of leap seconds
	to 24. Increment Leap_Seconds_Count and add an entry to aggregate
	Leap_Second_Times.

2009-04-20  Gary Dismukes  <dismukes@adacore.com>

	* sem_elim.ads (Check_For_Eliminated_Subprogram): New procedure for
	checking for references to eliminated subprograms that should be
	flagged.
	(Eliminate_Error_Message): Update comment to say "references" rather
	than "calls" (since attribute cases are handled here as well).

	* sem_elim.adb (Check_For_Eliminated_Subprogram): New procedure for
	checking for references to eliminated subprograms that should be
	flagged.  Add with and use of Sem and Sem_Util.

	* sem_res.adb (Resolve_Call): Reject calls to eliminated subprograms.
	Add with and use of Sem_Elim.

	* sem_attr.adb (Analyze_Access_Attribute): Reject access attributes
	applied to eliminated subprograms.
	(Analyze_Attribute): Reject 'Address and 'Code_Address applied to
	eliminated subprograms.
	Add with and use of Sem_Elim.

	* sem_disp.adb (Check_Dispatching_Call): Remove error check for calls
	to eliminated subprograms, now handled during Resolve_Call.
	Remove with and use of Sem_Elim.

	* exp_disp.adb (Make_DT): Get Ultimate_Alias of primitive before
	testing Is_Eliminated, for proper handling of primitive derived from
	eliminated subprograms.

2009-04-20  Vincent Celier  <celier@adacore.com>

	* mlib-prj.adb (Build_Library): Use the shared library linker, if one
	has been declared (Library_GCC or Linker'Driver), for the driver name.

	* prj-nmsc.adb (Process_Linker): If Library_GCC is not declared and
	Linker'Driver is, use Linker'Driver as the shared library linker.
	(Process_Project_Level_Simple_Attributes): Issue a warning if attribute
	Library_GCC is declared.
	(Check_Library_Attributes): Set up the shared linker driver: either
	Library_GCC or Linker'Driver. Issue a warning if Library_GCC is
	declared.

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* g-socket.ads (Send_Socket): Fix misleading comment.

2009-04-20  Arnaud Charlet  <charlet@adacore.com>

	* switch-c.adb (Scan_Front_End_Switches): Disable inspector mode in
	ASIS mode.

2009-04-20  Geert Bosch  <bosch@adacore.com>

	* a-tifiio.adb (Put): Avoid generating too many digits for certain
	fixed types with smalls that are neither integer or the reciprocal
	of an integer.

2009-04-20  Bob Duff  <duff@adacore.com>

	* uname.ads: Minor comment fix.

	* types.ads: Minor comment fix.

2009-04-20  Pascal Obry  <obry@adacore.com>

	* adaint.c (__gnat_get_libraries_from_registry): Fix code to
	avoid warning. At the same time fix a memory leak.

	* osint.adb (Get_Libraries_From_Registry): Properly free memory
	returned by the above routine.

2009-04-20  Robert Dewar  <dewar@adacore.com>

	* s-conca5.adb, s-conca5.ads, s-conca7.adb, s-conca7.ads, s-conca9.adb,
	s-conca9.ads, rtsfind.ads, s-conca2.adb, s-conca2.ads, s-conca4.adb,
	s-conca4.ads, s-conca6.adb, s-conca6.ads, s-conca8.adb, s-conca8.ads,
	s-conca3.adb, s-conca3.ads (Str_Concat_Bounds_x): New functions.

	* exp_ch4.adb (Expand_Concatenate): Minor code reorganization

2009-04-20  Pascal Obry  <obry@adacore.com>

	* initialize.c (__gnat_initialize): Add braces to kill warning.

	* adaint.c: Minor reformatting, remove trailing spaces.

2009-04-17  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in: Update dependencies.

2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* adaint.h (__gnat_lwp_self): Declare on Linux.

	* adaint.c (__gnat_os_filename): Add ATTRIBUTE_UNUSED on 'filename'.

2009-04-20  Robert Dewar  <dewar@adacore.com>

	* exp_ch5.adb, usage.adb, back_end.adb, opt.ads: Implement
	front-end part of -fpreserve-control-flow switch.

2009-04-20  Bob Duff  <duff@adacore.com>

	* rtsfind.adb: Minor comment fix

2009-04-20  Robert Dewar  <dewar@adacore.com>

	* exp_aggr.adb: Minor reformatting
	Minor code reorganization (use Nkind_In)

	* g-socket.adb: Minor reformatting

	* g-socket.ads: Minor comment fix

	* s-auxdec.ads: Minor comment and organization update.

	* s-auxdec-vms_64.ads: Minor comment and organization update.

	* sem_ch10.adb: Minor addition of ??? comment

	* sem_disp.adb: Minor reformatting

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* inline.adb (Add_Inlined_Subprogram): Do not place on the back-end
	list a caller of an inlined subprogram, if the caller itself is not
	called.

2009-04-20  Pascal Obry  <obry@adacore.com>

	* adaint.c: Disable use of ACL on network drives.

2009-04-20  Arnaud Charlet  <charlet@adacore.com>

	* gnat_ugn.texi: Add examples.

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* g-socket.ads (Abort_Selector): Clarify documentation.

2009-04-20  Arnaud Charlet  <charlet@adacore.com>

	* opt.ads (Inspector_Mode): Update documentation of this flag.

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* g-socket.ads: Minor reformatting

	* socket.c, gsocket.h (__gnat_get_h_errno, VxWorks case): No need to
	consider S_resolvLib error codes since we only use the hostLib wrappers.

2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch3.adb (Build_Derived_Private_Type): Insert the declaration
	of the Underlying_Record_View after that of the derived type.

2009-04-20  Arnaud Charlet  <charlet@adacore.com>

	* switch-c.adb (Scan_Front_End_Switches): Disable front-end inlining
	in inspector mode.

2009-04-20  Javier Miranda  <miranda@adacore.com>

	* sem_ch6.adb (New_Overloaded_Entity): Minor reformating.

	* sem_ch6.ads (Subtype_Conformant, Type_Conformant): Add missing
	documentation.

	* exp_aggr.adb (Build_Record_Aggr_Code): Code cleanup.

	* sem_disp.adb
	(Check_Dispatching_Operation): Set attribute Is_Dispatching_Operation
	in internally built overriding subprograms.

2009-04-20  Doug Rupp  <rupp@adacore.com>

	* s-auxdec-vms_64.ads (Integer_{8,16,32,64}_Array): New array types.

	* s-auxdec.ads: Likewise

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Find_Type_Name): Reject the completion of a private
	type by an interface.

	* exp_ch6.adb (Expand_Call): Inline To_Address unconditionally, to
	minimze difference in expanded tree when compiled as spec of the main
	unit, or as a spec in the context of another unit.

2009-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-calend.adb: Remove types char_Pointer, int, tm and tm_Pointer.
	(localtime_tzoff): This routine no longer accepts an actual of type
	tm_Pointer.
	(UTC_Time_Offset): Remove local variable Secs_TM.

	* sysdep.c (__gnat_localtime_tzoff): This routine no longer accepts an
	actual of type struct tm*. Add local variable of type struct tm for all
	targets that provide localtime_r and need to invoke it.

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* s-oscons-tmplt.c, g-socket.adb, g-socket.ads
	(GNAT.Sockets.Resolve_Error): Add case of EPIPE
	Add case of EAGAIN for platforms where it is not equal to EWOULDBLOCK

2009-04-20  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb: Minor reformatting

	* lib-load.adb: Minor reformatting

	* sem_ch4.adb: Minor reformatting

2009-04-20  Robert Dewar  <dewar@adacore.com>

	* namet-sp.ads, namet-sp.adb (Is_Bad_Spelling_Of): Implement new spec
	(equal values => False).

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb (Is_Null_Procedure): predicate is global, so that calls
	to null procedures can be inlined unconditionally.

2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (call_to_gnu): When creating the copy for a
	non-addressable parameter passed by reference, do not convert the
	actual if its type is already the nominal type, unless it is of
	self-referential size.

2009-04-20  Arnaud Charlet  <charlet@adacore.com>

	* gnat_ugn.texi: Fix typos.

2009-04-20  Robert Dewar  <dewar@adacore.com>

	* debug.adb, gnat1drv.adb, sem_ch13.adb: Add circuitry to
	Validate_Unchecked_Warnings to suppress warnings about size or
	alignment or extra bits if either type involved has pragma Warnings
	(Off) set for the type entity.

2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gigi): Make the special IA-64 descriptor type
	a builtin type and give it a name.

2009-04-17  Diego Novillo  <dnovillo@google.com>

	* gcc-interface/misc.c (gnat_expand_expr): Remove.
	(LANG_HOOKS_EXPAND_EXPR): Remove.

2009-04-17  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb: Minor reformatting

2009-04-17  Pascal Obry  <obry@adacore.com>

	* adaint.c: Add __gnat_use_acl global variable to control use of ACL.

2009-04-17  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Build_Derived_Enumeration_Type): Diagnose properly
	illegal constraints on type derived from formal discrete types.

2009-04-17  Thomas Quinot  <quinot@adacore.com>

	PR ada/35953

	* g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
	g-socthi-vxworks.ads, g-socthi-mingw.adb, g-socthi-mingw.ads,
	g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads, g-socket.adb,
	g-socket.ads (GNAT.Sockets.Thin.C_Send,
	GNAT.Sockets.Thin.Syscall_Send): Remove unused subprograms.
	Replace calls to send(2) with equivalent sendto(2) calls.
	(GNAT.Sockets.Send_Socket): Factor common code in inlined subprogram.
	(GNAT.Sockets.Write): Account for the case of hyper-empty arrays, do not
	report an error in that case. Factor code common to the two versions
	(datagram and stream) in common routine Stream_Write.

2009-04-17  Robert Dewar  <dewar@adacore.com>

	* exp_disp.adb: Minor reformatting
	Minor code reorganization (use Nkind_In)

	* prepcomp.adb: Minor reformatting

	* sem_ch3.adb: Minor reformatting

	* sem_res.adb: Minor comment addition

	* exp_ch5.adb (Expand_Assign_Array): Use Has_Address_Clause to test
	for address clause

	* lib-xref.adb (Generate_Reference): Exclude recursive calls from
	setting Is_Referenced

	* types.ads: Minor reformatting

2009-04-17  Arnaud Charlet  <charlet@adacore.com>

	* gnat_ugn.texi: Initial documentation on binding generator.

2009-04-17  Ed Schonberg  <schonberg@adacore.com>

	* einfo.ads, einfo.adb: New attribute Underlying_Record_View, to handle
	type extensions whose parent is a type with unknown discriminants.

	* exp_aggr.adb (Expand_Record_Aggregate): If the type of an extension
	aggregate has unknown discriminants, use the Underlying_Record_View to
	obtain the discriminants of the ancestor part.

	* exp_disp.adb (Build_Dispatch_Tables): Types that are
	Underlying_Record_Views share the dispatching information of the
	original record extension.

	* exp_ch3.adb (Expand_Record_Extension): If the type inherits unknown
	discriminants, propagate dispach table information to the
	Underlying_Record_View.

	* sem_ch3.adb (Build_Derived_Private_Type): If parent type has unknown
	discriminants and declaration is not a completion, generate
	Underlying_Record_View to provide proper discriminant information to
	the front-end and to gigi.

2009-04-17  Robert Dewar  <dewar@adacore.com>

	* s-conca5.adb, g-sercom.adb, s-conca5.ads, s-conca7.adb, exp_imgv.adb,
	s-conca7.ads, s-crc32.adb, s-crc32.ads, s-conca9.adb, s-conca9.ads,
	s-addope.adb, i-cstrin.ads, s-addope.ads, s-carun8.adb, s-carun8.ads,
	g-htable.ads, g-hesora.adb, g-hesora.ads, s-htable.adb, s-htable.ads,
	s-conca2.adb, s-conca2.ads, a-except.adb, s-conca4.adb, a-except.ads,
	s-conca4.ads, s-except.adb, s-except.ads, s-conca6.adb, s-conca6.ads,
	g-spchge.adb, g-spchge.ads, g-u3spch.adb, g-u3spch.ads, s-conca8.adb,
	s-conca8.ads, g-byorma.adb, g-byorma.ads, s-memory.adb, s-memory.ads,
	g-speche.adb, g-speche.ads, g-stsifd-sockets.adb, exp_dist.adb,
	s-imgenu.adb, s-imgenu.ads, s-mastop.adb, s-mastop.ads, s-exctab.adb,
	s-exctab.ads, s-imenne.adb, s-imenne.ads, s-casuti.adb, osint.adb,
	s-assert.adb, s-casuti.ads, s-assert.ads, s-os_lib.adb, s-conca3.adb,
	s-conca3.ads: Remove unneeded pragma Warnings

2009-04-17  Robert Dewar  <dewar@adacore.com>

	* g-moreex.adb: Add comments.

	* s-auxdec.ads: Add ??? comment for uncommented pragma Warnings (Off)

	* s-auxdec-vms_64.ads: Add ??? comment for uncommented pragma
	Warnings (Off)

	* prepcomp.adb: Add ??? comment

	* a-tasatt.adb: Minor reformatting

	* g-trasym-vms-alpha.adb: Add ??? comment

	* g-trasym-vms-ia64.adb: Add ??? comment

	* xoscons.adb: Minor reformatting

	* s-tassta.adb: Minor reformatting

	* s-scaval.adb: Add ??? comment

	* stand.ads: Minor code clean up (remove junk with of Namet)

	* s-strcom.adb, s-strcom.ads, s-string.adb, s-string.ads, s-sopco3.adb,
	s-sopco3.ads, s-strops.adb, s-strops.ads, s-sopco5.adb, s-sopco5.ads,
	s-wchcnv.adb, s-wchcnv.ads, s-ststop.adb, s-ststop.ads, s-soflin.adb,
	s-soflin.ads, s-traceb.adb, s-traceb.ads, s-traent.adb, s-traent.ads,
	s-secsta.adb, s-secsta.ads, s-utf_32.adb, s-utf_32.ads, s-wchcon.adb,
	s-wchjis.adb, s-wchcon.ads, s-wchjis.ads, s-sopco4.adb, s-sopco4.ads,
	s-stache.adb, s-stache.ads, s-stoele.adb, s-stoele.ads, s-stalib.adb,
	s-stalib.ads, s-os_lib.ads, s-purexc.ads: Remove no longer needed
	Warnings off pragmas.

2009-04-17  Pascal Obry  <obry@adacore.com>

	* initialize.c: Fix test for reallocating the arguments array.

2009-04-17  Geert Bosch  <bosch@adacore.com>

	* exp_fixd.adb (Expand_Convert_Float_To_Fixed): Have float to fixed
	conversion truncate only for decimal fixed point types.

2009-04-17  Jerome Lambourg  <lambourg@adacore.com>

	* g-comlin.adb (Initialize_Scan_Option): Make sure the sections are
	reinitialized.

2009-04-17  Robert Dewar  <dewar@adacore.com>

	* exp_ch5.adb (Expand_Assign_Array): Do not set Forwards_OK and
	Backwards_OK if either operand has an address clause.

2009-04-17  Pascal Obry  <obry@adacore.com>

	* initialize.c: Code clean up, use realloc.

2009-04-17  Pascal Obry  <obry@adacore.com>

	* initialize.c: Do not get Unicode command line if Unicode support not
	activated.
	Add support for wildcard expansion for Unicode parameters on Win32.

	* mingw32.h: Add missing macros when Unicode support not activated.

2009-04-17  Javier Miranda  <miranda@adacore.com>

	* sem_ch6.adb (Check_Anonymous_Return): Add missing checks to
	avoid generating code that references the Current_Master
	when compiling without tasks.

2009-04-17  Vincent Celier  <celier@adacore.com>

	* prj-attr.adb: New project level attribute Target
	
	* prj-nmsc.adb (Process_Project_Level_Simple_Attributes): Process
	attribute Target
	
	* prj.ads (Project_Configuration): New component Target

2009-04-17  Thomas Quinot  <quinot@adacore.com>

	* exp_ch7.adb (Expand_Ctrl_Function_Call): Remove incorrect special
	case for the case of an aggregate component, the attach call for the
	result is actually needed.

	* exp_aggr.adb (Backend_Processing_Possible): Backend processing for
	an array aggregate must be disabled if the component type requires
	controlled actions.

	* exp_ch3.adb: Minor reformatting

2009-04-17  Bob Duff  <duff@adacore.com>

	* output.ads (Indent,Outdent): New procedures for indenting the output.
	(Write_Char): Correct comment -- LF _is_ allowed.

	* output.adb (Indent,Outdent): New procedures for indenting the output.
	Keep track of the indentation level, and make sure it doesn't get too
	high.
	(Flush_Buffer): Insert spaces at the beginning of each line, if
	indentation level is nonzero.
	(Save_Output_Buffer,Restore_Output_Buffer): Save and restore the current
	indentation level.
	(Set_Standard_Error,Set_Standard_Output): Remove superfluous
	"Next_Col := 1;".  Flush_Buffer does that.

	* sem_ch6.adb, sem_ch7.adb (Debug_Flag_C): Reorganize the output
	controlled by the -gnatdc switch. It now occurs on entry/exit to the
	relevant analysis routines, and calls Indent/Outdent to make the
	indentation reflect the nesting level.  Add "helper" routines, since
	otherwise lots of "return;" statements would skip the debugging output.

2009-04-17  Arnaud Charlet  <charlet@adacore.com>

	* s-taprop-tru64.adb, s-taprop-vms.adb, s-taprop-linux.adb,
	s-taprop-solaris.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
	s-taprop-posix.adb (Suspend_Until_True): Protect against early wakeup.

2009-04-17  Thomas Quinot  <quinot@adacore.com>

	* exp_aggr.adb: Minor code reorganization, no behaviour change.

2009-04-17  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Use_One_Type): Handle properly a redundant use type
	clause in a unit that is a package body or a subunit, when the previous
	clause appears in a spec or a parent.

2009-04-17  Thomas Quinot  <quinot@adacore.com>

	* sinfo.ads, exp_aggr.adb, exp_aggr.ads: Minor reformatting

	* exp_ch7.adb: Minor reformatting

2009-04-17  Bob Duff  <duff@adacore.com>

	* exp_ch4.adb (Expand_Allocator_Expression): In an initialized
	allocator, check that the expression of the qualified expression obeys
	the constraints of the subtype of the qualified expression.

2009-04-17  Thomas Quinot  <quinot@adacore.com>

	* sprint.adb (Write_Itype): Add handling of enumeration subtypes.

2009-04-17  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.adb (Expand_Allocator_Expression): Apply constraint check to
	aggregate, using context imposed by subtype mark in allocator.

2009-04-17  Pascal Obry  <obry@adacore.com>

	* gnat_rm.texi: Document GNAT_CODE_PAGE environment variable

2009-04-17  Nicolas Roche  <roche@adacore.com>

	* initialize.c (__gnat_initialize): remove MAX_PATH limitation on each
	argument length.

2009-04-17  Gary Dismukes  <dismukes@adacore.com>

	* sem_elim.adb (Eliminate_Error_Msg): Minor change to error message to
	cover both calls and attribute references ("call" => "reference").

2009-04-17  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Analyze_Subtype_Declaration): A subtype of an access
	type for which Storage_Size is set to 0 is legal in a pure unit.

2009-04-17  Thomas Quinot  <quinot@adacore.com>

	* exp_ch7.adb: Minor reformatting

2009-04-17  Robert Dewar  <dewar@adacore.com>

	* restrict.adb (Check_Restriction_No_Dependence): Don't check
	restriction if outside main extended source unit.

	* sem_ch10.adb (Analyze_With_Clause): Check No_Dependence restriction
	for parents of child units as well as the child unit itself.

2009-04-17  Bob Duff  <duff@adacore.com>

	* checks.ads: Minor comment fix

	* exp_aggr.ads: Minor comment fix

2009-04-17  Nicolas Roche  <roche@adacore.com>

	* adaint.c: Improve cross compiler detection and handling.

2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch4.adb (Expand_Concatenation): Do not use calls at -Os.

2009-04-17  Pascal Obry  <obry@adacore.com>

	* mingw32.h: Add S2WSC and WS2SC macros to convert to/from
	CurrentCodePage.

	* adaint.h: Encoding_Unspecified is now defined. Corresponds to the
	value when no encoding form paramter is set on Text_IO services.

	* adaint.c: CurrentCodePage new variable on Windows.
	Use new macros S2WSC and WS2SC instead of the UTF-8 oriented
	ones.

	* mkdir.c: Use new macros S2WSC and WS2SC instead of the UTF-8 oriented
	ones.

	* initialize.c: Initialize CurrentCodePage depending on GNAT_CODE_PAGE
	environment variable value. Default is UTF-8.

	* s-crtl.ads: Filename_Encoding add Unspecified in the enumeration type.
	fopen and freopen encoding parameter is now set to Unspecified.
	The default value is in this case UTF-8 (as it was before) but
	use the new macros that convert to/from the code page set
	at runtime (CurrentCodePage).

	* s-fileio.adb: When no encoding specified use Unspecified value.

2009-04-17  Ed Schonberg  <schonberg@adacore.com>

	* atree.adb, atree.ads: Remove dead code.

2009-04-17  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in: Update dependencies.

2009-04-17  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Access_Subprogram_Definition): Additional checks on
	illegal uses of incomplete types in formal parts and return types.

	* sem_ch6.adb (Process_Formals): Taft-amendment types are legal in
	access to subprograms.

	* sem_ch7.adb (Uninstall_Declarations): diagnose attempts to use
	Taft-amendment types as the return type of an access_to_function type.

	* freeze.adb (Freeze_Entity): Remove tests on formals of an incomplete
	type for access_to_subprograms. The check is performed on package exit.

2009-04-17  Ed Schonberg  <schonberg@adacore.com>

	* atree.ads, atree.adb: Move New_Copy_Tree.to sem_util.

	* nlists.ads, nlists.adb: Move New_Copy_List to sem_util.
	
	* lib-load.adb: Use Copy_Separate_Tree rather than New_Copy_Tree

	* sem_util.ads, sem_util.adb: New_Copy_Tree and New_Copy_List belong in
	semantic units, because the handling of itypes in the copied tree
	requires semantic information that does not belong in atree.

2009-04-17  Robert Dewar  <dewar@adacore.com>

	* par-ch6.adb: Minor reformatting

	* prj.adb: Minor reformatting

2009-04-17  Gary Dismukes  <dismukes@adacore.com>

	* par-ch6.adb (P_Subprogram): Overriding indicators should be allowed
	on protected subprogram bodies, so exclude the case where Pf_Flags is
	Pf_Decl_Pbod from the error check.

	* par-ch9.adb (P_Protected_Operation_Items): Permit overriding
	indicators on subprograms in protected bodies, and proceed with parsing
	the subprogram.

	* sem_ch6.adb (Verify_Overriding_Indicator): Exclude protected
	subprograms from the check for primitiveness on subprograms with
	overriding indicators.
	(Check_Overriding_Indicator): Include protected subprograms in the
	style check for missing overriding indicators.

2009-04-17  Tristan Gingold  <gingold@adacore.com>

	* init.c: Fix stack checking for x86 Darwin.

2009-04-17  Vincent Celier  <celier@adacore.com>

	* prj-attr.adb: New project level attribute Object_File_Suffix
	(<language>).
	
	* prj-nmsc.adb (Add_Source): Use the object file suffix to get the
	object file name
	(Process_Compiler): Process attribute Object_File_Suffix

	* prj.adb (Object_Name): Use suffix Object_File_Suffix instead of
	platform suffix, when specified.

	* prj.ads (Language_Config): New component Object_File_Suffix,
	defaulted to No_Name.
	(Object_Name): New parameter Object_File_Suffix, defaulted to No_Name

	* snames.ads-tmpl: New standard name Object_File_Suffix

2009-04-17  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Add documentation about No_Streams restriction

	* sem_attr.adb (Check_Stream_Attribute): Exclude implicit stream
	attributes when checking No_Streams restriction.

2009-04-17  Thomas Quinot  <quinot@adacore.com>

	* rtsfind.ads (RE_Request_Destroy): New PolyORB s-parint entity.

	* exp_dist.adb (PolyORB_Support.Build_General_Calling_Stubs): Add
	missing calls to RE_Request_Destroy to deallocate request objects after
	use.

2009-04-17  Nicolas Setton  <setton@adacore.com>

	* link.c: Fix support for passing a response file under Darwin.

2009-04-17  Emmanuel Briot  <briot@adacore.com>

	* prj.adb (Free): new subprogram.

2009-04-17  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb: additional initialization on incomplete subtypes.
	
	* sem_ch6.adb (Process_Formals): if the subprogram is in the private
	part and one of the formals is an incomplete tagged type, attach to
	list of private dependends of the type for later validation.

	* sem_ch7.adb (Uninstall_Declarations): diagnose attempts to declare
	primitive operations of a Taft-amendmment type.

	* freeze.adb (Freeze_Entity): Remove tests on formals of an incomplete
	type. The check is performed on package exit, possibly after the
	subprogram is frozen.

2009-04-17  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Get_Directories): Get the object and exec directory
	before looking for source directories, but make sure that there are nil
	if they are not explicitely declared and there is explicitely no
	sources in the project.

2009-04-17  Pascal Obry  <obry@adacore.com>

	* initialize.c: Set gnat_argv with UTF-8 encoded strings on Windows.

	* init.c: Fix minor typo and style fix.

2009-04-17  Robert Dewar  <dewar@adacore.com>

	* a-except.adb, a-except-2005.adb: Add PE_Address_Of_Intrinsic

	* sem_attr.adb (Analyze_Attribute, case Address): Use
	PE_Address_Of_Intrinsic.

	* types.ads: Add PE_Address_Of_Intrinsic

	* types.h: Add PE_Address_Of_Intrinsic

2009-04-17  Nicolas Setton  <setton@adacore.com>

	* gcc-interface/Makefile.in: Under darwin, build shared libraries
	with install_name starting with "@rpath/".

2009-04-17  Nicolas Setton  <setton@adacore.com>

	* link.c: Add darwin section

2009-04-16  Robert Dewar  <dewar@adacore.com>

	* g-pehage.adb: Minor reformatting

	* sem_ch12.adb: Minor reformatting

	* exp_dist.adb: Minor reformatting

	* bindgen.adb: Minor style fixes.

2009-04-16  Ed Schonberg  <schonberg@adacore.com>

	* sem_eval.adb (Eval_Indexed_Component): Extend constant-folding of
	indexed components to the case where the prefix is a static string
	literal.

2009-04-16  Javier Miranda  <miranda@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): In case of build-in-place
	objects avoid any further expansion of the expression initializing the
	object.

2009-04-16  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Preanalyze_Actuals): If the instance is a child unit
	that hides an outer homograph, make that homograph invisible when
	analyzing the actuals, to to prevent illegal direct visibility on it.

2009-04-16  Eric Botcazou  <ebotcazou@adacore.com>

	* g-pehage.adb (Initialize): Fix off-by-one error.

2009-04-16  Tristan Gingold  <gingold@adacore.com>

	* init.c: Detect real stack overflow on Darwin.

	* system-darwin-x86.ads: Use stack probing on darwin x86.

2009-04-16  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Analyze_Attribute, case 'Address): It is illegal to
	take the address of an intrinsic subprogram.

2009-04-16  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Makefile.in: Change g-trasym to g-trasym-unimplemented
	for the targets where GNAT.Traceback.Symbolic is not supported.

2009-04-16  Vincent Celier  <celier@adacore.com>

	* g-trasym-unimplemented.ads, g-trasym-unimplemented.adb: New file.

	* g-trasym.ads: Update comments.

2009-04-16  Vasiliy Fofanov  <fofanov@adacore.com>

	* tracebak.c (STOP_FRAME): Verify validity of the current address
	before dereferencing.

2009-04-16  Ed Schonberg  <schonberg@adacore.com>

	* sprint.adb (Write_Itype): If the itype is an array subtype, preserve
	the original location of the index expressions and the index subtypes,
	to prevent spurious out-of-scope references in gigi.

2009-04-16  Tristan Gingold  <gingold@adacore.com>

	* init.c, s-osinte-darwin.ads, system-darwin-x86_64.ads:
	Add support for stack checking on darwin.

2009-04-16  Vincent Celier  <celier@adacore.com>

	* prj-attr.adb: New attribute Runtime_Source_Dir

	* prj-nmsc.adb (Process_Project_Level_Array_Attributes): Process
	attribute Runtime_Source_Dir.
	(Check_Naming_Schemes): Give default values to out parameters to avoid
	invalid data.

	* prj.ads (Language_Config): New component Runtime_Source_Dir

	* snames.ads-tmpl: New standard name Runtime_Source_Dir

2009-04-16  Pascal Obry  <obry@adacore.com>

	* adaint.h, adaint.c (__gnat_rmdir): New routine.
	Simple wrapper routines used to convert to proper encoding on
	Windows.

	* s-crtl.ads: Use __gnat_rmdir instead of direct call to the C library.

	* g-dirope.adb (Remove_Dir): Fix a bug, the root directory was removed
	twice.

2009-04-16  Pascal Obry  <obry@adacore.com>

	* s-crtl.ads, s-os_lib.adb: Minor code clean-up.

2009-04-16  Thomas Quinot  <quinot@adacore.com>

	* snames.ads-tmpl (Name_Defined): New predefined name for use by the
	integrated preprocessor.

	* prep.ads, prep.adb (Setup_Hooks): New subprogram.
	(Initialize): Split into two subprograms, Initialize (to be called
	prior to compiler command line processing) and Setup_Hooks (to be called
	later on when the first source file is loaded).

	* gprep.adb: Change call to Prep.Initialize to call to Prep.Setup_Hooks.
	Add call to Prep.Initialize.

	* sinput-l.adb, prepcomp.adb: Change call to Prep.Initialize to call
	to Prep.Setup_Hooks.

2009-04-16  Pascal Obry  <obry@adacore.com>

	* adaint.h, adaint.c (__gnat_chdir): New routine.
	Simple wrapper routines used to convert to proper encoding on
	Windows.

	* s-crtl.ads: Use __gnat_chdir instead of direct call to the C library.

	* a-direct.adb, g-dirope.adb: Use chdir from System.CRTL.

2009-04-16  Quentin Ochem  <ochem@adacore.com>

	* sinput-p.adb (Clear_Source_File_Table): Use Sinput.Initialize instead
	of Source.Init.

2009-04-16  Eric Botcazou  <ebotcazou@adacore.com>

	* a-convec.ads (Is_Empty): Mark inline.

2009-04-16  Nicolas Roche  <roche@adacore.com>

	* init.c (__gnat_init_float): Initialize FPU on x86_64 windows

2009-04-16  Thomas Quinot  <quinot@adacore.com>

	* prepcomp.adb: Minor reformatting

2009-04-16  Jerome Lambourg  <lambourg@adacore.com>

	* sem_prag.adb (Process_Import_Or_Interface): With .NET,
	Access_Subprogram types can also be imported.
	(Check_Form_Of_Interface_Name): Accept '/' character in entity CIL
	names.

2009-04-16  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
	preserve homonym chain when the declaration is rewritten into a
	renaming declaration, in order to preserve visibility structure.

2009-04-16  Jerome Lambourg  <lambourg@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Make sure that pragma pack is not
	taken into account for VM targets.

2009-04-16  Hristian Kirtchev  <kirtchev@adacore.com>

	* g-calend.ads, g-calend.adb (Week_In_Year): Now calls
	Year_Week_In_Year.
	(Year_Week_In_Year): New routine which contains the original code from
	Week_In_Year. Add the missing special case for January 1st falling on
	a Monday.

2009-04-16  Thomas Quinot  <quinot@adacore.com>

	* exp_dist.adb (Build_From_Any_Call): For a subtype that is a generic
	actual type, use the base type to build the To_Any function.
	(Build_From_Any_Function): Remove junk, useless subtype conversion.

2009-04-16  Thomas Quinot  <quinot@adacore.com>

	* exp_ch9.adb, exp_code.adb, tbuild.adb, sem_case.adb,
	restrict.adb: Minor code reorganization (use
	Add_{Char,Str}_To_Name_Buffer instead of inlining it by hand).

2009-04-16  Bob Duff  <duff@adacore.com>

	* exp_ch6.ads, exp_ch6.adb (Is_Build_In_Place_Function_Return): Remove,
	unused.

2009-04-16  Thomas Quinot  <quinot@adacore.com>

	* sem_ch4.adb: Minor reformatting

	* adaint.c: Remove junk duplicated code.

	* sem_ch3.adb: Minor reformatting

	* exp_dist.adb: Minor comment rewording

2009-04-16  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Document effect of Assume_No_Invalid_Values and -gnatVa
	used together.

2009-04-16  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Find_Equality_Types): Filter out types that are not
	usable before calling Add_One_Interp, to resolve spurious ambiguities.

2009-04-16  Robert Dewar  <dewar@adacore.com>

	* Make-lang.in: Add entries for s-conca?.o

	* Makefile.rtl: Add entries for s-conca?

	* debug.adb: Add debug flags -gnatd.c and -gnatd.C to control behavior
	of concatenation expansion

	* exp_ch4.adb (Expand_Concatenation): Generate calls for certain
	string cases instead of expanding assignments inline.

	* opt.ads (Optimize_Size): New flag

	* s-conca2.ads, s-conca2.adb, s-conca3.adb, s-conca3.ads,
	s-conca4.adb, s-conca4.ads, s-conca5.adb, s-conca5.ads, s-conca6.adb,
	s-conca6.ads, s-conca7.ads, s-conca7.adb, s-conca8.adb, s-conca8.ads,
	s-conca9.adb, s-conca9.ads: New file.

2009-04-16  Robert Dewar  <dewar@adacore.com>

	* exp_ch6.adb: Add comments

	* rtsfind.ads: Add entries for s-conca? routines

2009-04-16  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in: Update dependencies.

	* gcc-interface/Makefile.in: Update translation for vms.

2009-04-16  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Map_Formal_Package_Entities): renamed from Map_Entities
	and made global, to be used when installing parents of a child
	instance, to provide mappings for entities declared in formal packages
	of ancestor units. Now called from Install_Formal_Packages.

2009-04-16  Doug Rupp  <rupp@adacore.com>

	* s-taskin.adb (Initialize_ATCB): Initialize Debug_Events with others
	notation for clarity.

	* s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
	s-taprop-mingw.adb, s-taprop-linux.adb, s-taprop-solaris.adb,
	s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-posix.adb
	(Initialize): Initialize Known_Tasks with Environment task.

	* s-taskin.ads (Task_States): Move new states to end for the sake of
	GDB compatibility.

	* s-tassta.adb (Task_Wrapper): Fix comment about Enter_Task.

2009-04-16  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch9.adb (Expand_N_Protected_Type_Declaration): If a protected
	operation has an inline pragma, propagate the flag to the internal
	unprotected subprogram.

2009-04-16  Doug Rupp  <rupp@adacore.com>

	* s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-mingw.adb,
	s-taprop-linux.adb, s-taprop-solaris.adb, s-taprop-irix.adb, 
	s-taprop-hpux-dce.adb, s-taprop-posix.adb
	(Enter_Task): Move Known_Tasks initialization to s-tassta.adb

	* s-taprop-vms.adb (Enter_Task): Likewise.
	(Initialize): Import DBEXT, Debug_Register. Register DBGEXT callback.

	* s-tassta.adb (Activate_Tasks): After task creation set state to
	Activating, vice Runnable. Initialize Known_Tasks, moved here from
	s-taprop.adb (Enter_Task). Set Debug_Event_Activating for debugger.
	Set state to Runnable after above.
	(Task_Wrapper): Set Debug_Event_Run. In exception block set
	Debug_Event_Terminated.

	* s-taskin.ads (Task_States): Add new states Activiting and
	Activator_Delay_Sleep.
	(Bit_Array, Debug_Event_Array): New types.
	(Global_Task_Debug_Event_Set: New flag.
	(Common_ATCB): New field Debug_Events.

	* s-taskin.adb (Initialize_ATCB): Initialize Debug_Events.

	* s-tasren.adb (Timed_Selective_Wait): Set Activator_Delay_Sleep vice
	Activator_Sleep.

	* s-tasini.adb (Locked_Abort_To_Level): Add case alternatives for when
	Activating and when Acceptor_Delay_Sleep.

	* s-tasdeb.ads: Add constants for Debug_Events.
	(Debug_Event_Kind_Type): New subtype.
	(Signal_Debug_Event): New subprogram.

	* s-tasdeb.adb (Signal_Debug_Event): New null subprogram.

2009-04-16  Thomas Quinot  <quinot@adacore.com>

	* sem_elim.adb: Minor reformatting

	* freeze.adb: Minor reformatting

	* exp_ch4.adb: Minor reformatting

2009-04-16  Emmanuel Briot  <briot@adacore.com>

	* prj-nmsc.adb (Path_Name_Of): fix memory leak

2009-04-16  Robert Dewar  <dewar@adacore.com>

	* sinfo.ads (Backwards_OK, Forwards_OK): Clarify documentation

2009-04-16  Vincent Celier  <celier@adacore.com>

	* fmap.adb (Initialize): Show the current line when the mapping file
	is detected as "incorrectly formatted".

2009-04-16  Robert Dewar  <dewar@adacore.com>

	* sem_ch12.adb: Minor reformatting

	* sem_ch5.adb: Minor comment addition

	* sem_util.adb: Minor reformatting

	* sinput-p.adb: Minor reformatting
	Add missing pragma Warnings (On)

2009-04-16  Ed Falis  <falis@adacore.com>

	* s-vxwext-kernel.adb: (ERROR): deleted unused constant

2009-04-16  Vincent Celier  <celier@adacore.com>

	* ali-util.adb: Minor comment spelling error fix

2009-04-16  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch5.adb (Expand_Assign_Array): For the GCC back-end, do not
	generate an assignment loop in case of overlap.

2009-04-16  Olivier Hainque  <hainque@adacore.com>

	* gnat_ugn.texi (gnatmem description): Make it explicit that
	gnatmem is designed to work in association with static runtime
	library only.

2009-04-16  Thomas Quinot  <quinot@adacore.com>

	* sem_type.adb: Minor reformatting

2009-04-16  Hristian Kirtchev  <kirtchev@adacore.com>

	* s-osprim-darwin.adb, s-osprim-posix.adb (Clock): Add comment
	concerning return codes of gettimeofday and return value check.

2009-04-16  Ed Falis  <falis@adacore.com>

	* s-vxwext-kernel.ads (Int_Lock, Int_Unlock): set to convention C so
	body can be renaming of imported routines.

2009-04-16  Vasiliy Fofanov  <fofanov@adacore.com>

	* s-asthan-vms-alpha.adb: Disable warnings on alignment in a more
	targeted fashion.

2009-04-15  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch9.adb: Comment improvements.
	(Build_Entry_Family_Name): Add parentheses around the index of a entry
	family member.

2009-04-15  Bob Duff  <duff@adacore.com>

	* sem_warn.adb (Check_Infinite_Loop_Warning): Catch cases like
	"while X /= null loop" where X is unchanged inside the loop. We were
	not warning in this case, because of the pointers -- we feared that the
	loop variable could be updated via a pointer, if there are any pointers
	around the place. But that is impossible in this case.

	* sem_util.adb (May_Be_Lvalue): This routine was overly pessimistic in
	the case of dereferences. In X.all, X cannot be an l-value. We now
	catch that case (and implicit dereferences, too).

2009-04-15  Vincent Celier  <celier@adacore.com>

	* sinput-p.ads, sinput-p.adb (Clear_Source_File_Table): New procedure

2009-04-15  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Is_Actual_Of_Previous_Formal): Make fully recursive.
	From code reading.
	(Analyze_Package_Instantiation): If generic unit in child instance is
	the same as generic unit in parent instance, look for an outer homonym
	to locate the desired generic.

2009-04-15  Bob Duff  <duff@adacore.com>

	* sem_ch5.adb (Analyze_Loop_Statement): Don't check for infinite loop
	warnings unless the loop comes from source, because checking generated
	loops is a waste of time, and makes it harder to debug
	Check_Infinite_Loop_Warning.

	* sem_warn.adb (Check_Infinite_Loop_Warning): If the local variable
	tested in the while loop is a renaming, do not warn. Otherwise, we get
	false alarms, because it's usually renaming something that we can't
	deal with (an indexed component, a global variable, ...).

	* gnat_rm.texi: Fix typo

2009-04-15  Thomas Quinot  <quinot@adacore.com>

	* sem_ch6.adb: Minor reformatting

2009-04-15  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Expand_Ctrl_Function_Call): Check for the case where the
	immediate parent of the controlled function call is a component
	association.

2009-04-15  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Use_One_Type): If the type is tagged, indicate that the
	corresponding class-wide type is also in use.

2009-04-15  Thomas Quinot  <quinot@adacore.com>

	* frontend.adb: Minor comment fix

2009-04-15  Robert Dewar  <dewar@adacore.com>

	* gnatchop.adb (BOM_Length): New global variable
	(Write_Unit): Add new parameter Write_BOM
	(Write_Chopped_Files): Check for BOM and set Write_BOM for call
	to Write_Unit

	* gnat_ugn.texi: Add note on propagation of BOM by gnatchop

2009-04-15  Geert Bosch  <bosch@adacore.com>

	* system-mingw-x86_64.ads, system-darwin-x86_64.ads
	(Backend_Overflow_Checks): Set to True.

2009-04-15  Gary Dismukes  <dismukes@adacore.com>

	* par-ch3.adb (P_Type_Declaration): Issue an error if the synchronized
	keyword is given in a record extension.

2009-04-15  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Expand_Ctrl_Function_Call): Procede with the expansion
	of a controlled function call in the context of a record aggregate.
	This does not apply to array aggregates since the call will be expanded
	into assignments.

2009-04-15  Ed Falis  <falis@adacore.com>

	* s-osinte-vxworks-kernel.adb, s-osinte-vxworks.adb,
	s-osinte-vxworks.ads s-vxwext.ads, s-vxwext-kernel.adb,
	s-vxwext-kernel.ads, s-vxwext-rtp.ads, s-vxwext-rtp.adb: Reorganize
	s-osinte-vxworks* and s-vxwext*.

2009-04-15  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in: Update dependencies.

	* gcc-interface/Makefile.in: Reorganization of s-osinte-vxworks*
	and s-vxwext*.

2009-04-15  Robert Dewar  <dewar@adacore.com>

	* sem_ch13.adb (Unchecked_Conversions): Store source location instead
	of node for location for warning messages.

	* gnatchop.adb: Minor reformatting

2009-04-15  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb: additional guard for renaming declarations for in
	parameters of an array type.

2009-04-15  Robert Dewar  <dewar@adacore.com>

	* sem_eval.adb (Get_Static_Length): Go to origin node for array bounds
	in case they were rewritten by expander (Force_Evaluation).

	* targparm.adb (Get_Target_Parameters): Correct check for
	Suppress_Exception_Locations.

2009-04-15  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb (Expand_Inlined_Call): If an in-parameter in a call to be
	inlined  is of an array type that is not bit-packed, use a renaming
	declaration to capture its value, rather than a constant declaration.

2009-04-15  Robert Dewar  <dewar@adacore.com>

	* rtsfind.adb: Minor reformatting.

2009-04-15  Emmanuel Briot  <briot@adacore.com>

	* prj-part.adb, prj-tree.adb, prj-tree.ads (Restore_And_Free): renames
	Restore, and free the saved context.

2009-04-15  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch3.adb (Analyze_Private_Extension_Declaration): Move error check
	for illegal private extension from a synchronized interface parent in
	front of check for illegal limited extension so that limited extension
	from a synchronized interface will be rejected.
	(Check_Ifaces): Check that a private extension that has a synchronized
	interface as a progenitor must be explicitly declared synchronized.
	Also check that a record extension cannot derive from a synchronized
	interface.

2009-04-15  Pascal Obry  <obry@adacore.com>

	* adaint.h (__gnat_unlink): Add spec.
	(__gnat_rename): Likewise.

2009-04-15  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb: Minor spelling error corrections in error messages

2009-04-15  Robert Dewar  <dewar@adacore.com>

	* sinfo.ads: Minor comment update

	* opt.ads: Minor comment updates

	* checks.adb (Enable_Overflow_Check): Do not set Do_Overflow_Check for
	modular type.

2009-04-15  Ed Schonberg  <schonberg@adacore.com>

	* exp_disp.ads, exp_disp.adb (Register_Primitive): Is now a function
	that generates the code needed to update a dispatch table when a
	primitive operation is declared with a subprogram body without previous
	spec. Insertion of the generated code is responsibility of the caller.
	(Make_DT): When building static tables, append the code created by
	Register_Primitive to update a secondary table after it has been
	constructed.

	* exp_ch3.adb, exp_ch6.adb: use new version of Register_Primitive.

	* sem_disp.adb (Check_Dispatching_Operation): Call Register_Primitive
	on an overriding operation that implements an interface operation only
	if not building static dispatch tables.

2009-04-15  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-caldel-vms.adb (To_Duration): Declare a "safe" end of time which
	does not cause overflow when converted to Duration. Use the safe value
	as the maximum allowable time delay..

2009-04-15  Jerome Lambourg  <lambourg@adacore.com>

	* g-comlin.adb (Set_Command_Line): When adding a switch with attached
	parameter, specify that the delimiter is NUL, otherwise "-j2" will be
	translated to "-j 2".

2009-04-15  Bob Duff  <duff@adacore.com>

	* rtsfind.adb (Maybe_Add_With): Split out procedure to add implicit
	with_clauses, to avoid code duplication. Change this processing so we
	always add a with_clause on the main unit if needed.

2009-04-15  Pascal Obry  <obry@adacore.com>

	Add support for Win32 native encoding for delete/rename routines.
	
	* adaint.c (__gnat_unlink): New routine.
	(__gnat_rename): New routine.
	Simple wrapper routines used to convert to proper encoding on
	Windows.

	* s-os_lib.adb: Use __gnat_unlink and __gnat_rename instead of direct
	call to the C library.

	* g-sercom-mingw.adb, s-win32.ads: Update Win32 binding.

2009-04-15  Robert Dewar  <dewar@adacore.com>

	* s-tassta.adb: Minor reformatting

2009-04-15  Robert Dewar  <dewar@adacore.com>

	* frontend.adb (Frontend): Set proper default for
	Warn_On_Non_Local_Exception.

	* opt.ads (Exception_Handler_Encountered): New flag
	(No_Warn_On_Non_Local_Exception): New flag

	* par-ch11.adb (P_Exception_Handler): Set Exception_Handler_Encountered

	* sem_warn.adb (Set_Warning_Switch): Set No_Warn_On_Non_Local_Exception
	(Set_Dot_Warning_Switch): Set No_Warn_On_Non_Local_Exception

2009-04-15  Cyrille Comar  <comar@adacore.com>

	* s-tassta.adb, a-exextr.adb, a-elchha.adb
	(Ada.Exception.Last_Chance_Handler): Do not print unhandled exception
	message when exception traces are active since it would generate
	redundant information.
	(Exception_Traces.Notify_Exception): put message output by a critical
	section to avoid unsynchronized output.
	(Trace_Unhandled_Exception_In_Task): put message output by a critical
	section to avoid unsynchronized output.

2009-04-15  Emmanuel Briot  <briot@adacore.com>

	* g-comlin.adb, prj-tree.adb, prj-tree.ads, prj.adb, prj.ads
	(Free): New subprogram.

2009-04-15  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-calend.adb: Add new constant Nanos_In_Four_Years.
	(Formatting_Operations.Time_Of): Change the way four year chunks of
	nanoseconds are added to the intermediate result.

2009-04-15  Nicolas Setton  <setton@adacore.com>

	* sysdep.c: Add __APPLE__ in the list of systems where get_immediate
	does not need to wait for a carriage return.

2009-04-15  Tristan Gingold  <gingold@adacore.com>

	* bindgen.adb: Do not generate adafinal if No_Finalization restriction
	is set.

2009-04-15  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_Entity): improve error message for improper use of
	incomplete types.
	Diagnose additional illegal uses of incomplete types in formal parts.
	appearing in formal parts.

	* sem_ch6.adb (Process_Formals, Analyze_Return_Type): ditto.

2009-04-15  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Expand_N_Allocator): Install test for object too large.

2009-04-15  Nicolas Roche  <roche@adacore.com>

	* adaint.c: Add function __gnat_lwp_self that retrieves the LWP of the
	current thread.

	* s-osinte-linux.ads: Import the __gnat_lwp_self function as lwp_self

	* s-taprop-linux.adb (Enter_Task): Store the LWP in the TCB

2009-04-15  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb: improve error message on exponentiation.

2009-04-15  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-calend.adb: Move constant Epoch_Offset from package
	Conversion_Operations to top level.
	(Delay_Operations.To_Duration): Define a constant which represents
	"end of time" and use it as a guard against very distant delay dates.
	Protect the code against overflow when performing the origin shift to
	Unix time.

2009-04-15  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb: Minor reformatting.

	* sem_type.adb: Minor reformatting

2009-04-15  Javier Miranda  <miranda@adacore.com>

	* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Add missing
	support to check eliminated subprograms.

	* sem_elim.ads (Eliminate_Error_Msg): Update documentation.

	* sem_elim.adb (Set_Eliminated): Add support for elimination of
	dispatching subprograms.

	* exp_disp.adb (Make_DT): Minor code cleanup when freezing primitive
	operations. Initialize with "null" the slots of eliminated dispaching
	primitives.
	(Write_DT): Add output for eliminated primitives.

	* sem_disp.adb (Check_Dispatching_Call): Check eliminated primitives.

2009-04-15  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Use_One_Type): If both clauses appear on the same unit,
	the second is redundant, regardless of scopes.

2009-04-15  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Get_Directories): Check for sources before checking
	the object directory as when there are no sources, they may not be any
	object directory.

	* make.adb (Gnatmake): Do not attempt to get the path name of the exec
	directory, when there are no exec directory.

2009-04-15  Ed Schonberg  <schonberg@adacore.com>

	* sem_type.adb (Remove_Conversions): In order to resolve spurious
	ambiguities, refine removal of universal interpretations from complex
	expressions with literal arguments, when some numeric operators have
	been declared abstract.

2009-04-15  Ed Falis  <falis@adacore.com>

	* init.c: Map SIGSEGV to Storage_Error for all targets for uniformity
	and backward compatibility for targets using probing for stack overflow

2009-04-15  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case 'Obsolescent): Pragma is legal
	after any declaration, including renaming declarations.

2009-04-15  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in: Update dependencies.

	* gcc-interface/Makefile.in: Fix VxWorks target pairs.
	Update xenomai target pairs.

2009-04-15  Javier Miranda  <miranda@adacore.com>

	* exp_ch4.adb (Expand_N_Allocator): Code cleanup.

	* sem_ch6.adb (Check_Anonymous_Return): Add missing support for
	functions returning anonymous access to class-wide limited types. Mark
	also the containing scope as a task master.

	* sem_ch8.adb (Restore_Scope_Stack): Add missing management for
	limited-withed packages. Required to restore their visibility after
	processing packages associated with implicit with-clauses.

	* exp_ch3.adb (Build_Class_Wide_Master): Avoid marking masters
	associated with return statements because this work is now done by
	Check_Anonymous_Return.
	(Build_Master): Code cleanup.

2009-04-15  Thomas Quinot  <quinot@adacore.com>

	* sem_warn.ads: Minor reformatting

2009-04-15  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb: better error message for illegal interfaces

	* sem_ch6.adb (Possible_Freeze): Delay freezing a subprogram if a
	formal is an incomplete type from a limited_with clause.

2009-04-15  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Locate_Directory): New Boolean parameter
	Externally_Built indicating if the project is externally built. If it
	is, and --subdirs is specified, but the subdir does not exist, look
	for the specified directory, without the subdir.

2009-04-15  Gary Dismukes  <dismukes@adacore.com>

	* a-tasatt.adb: Fix typo, plus minor reformatting

	* sem_ch3.ads: Add missing hyphen ("class wide" => "class-wide").

	* sem_ch10.adb: Add missing hyphen ("use visible" => "use-visible").

2009-04-15  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Analyze_Private_Extension_Declaration): Verify that a
	private extension whose parent is a synchronized interface carries an
	explicit synchronized keyword.

2009-04-15  Thomas Quinot  <quinot@adacore.com>

	* exp_smem.adb (Make_Shared_Var_Procs): For a protected type,
	instantiate generic shared object package with the corresponding
	record type.

2009-04-15  Arnaud Charlet  <charlet@adacore.com>

	* system-linux-sparc.ads: Remove obsolete entries.

2009-04-15  Thomas Quinot  <quinot@adacore.com>

	* s-tasuti.ads: Add ??? comment

2009-04-15  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Analyze_Type_Declaration): Create freeze node for access
	type even if the designated type comes from a limited_with clause, to
	ensure that the symbol for the finalization list of the access type is
	created.

2009-04-10  Robert Dewar  <dewar@adacore.com>

	* sem_warn.ads, sem_warn.adb (Check_Low_Bound_Tested): Catch more cases
	for warning suppression.

2009-04-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Use_One_Type): If the two use_type clauses are
	identical, there is no redudancy to check.

2009-04-10  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch5.adb (Expand_N_Extended_Return_Statement): Delete redundant
	calls initializing SS_Allocator (which is initialized in following
	code).
	(Expand_Simple_Function_Return): Add comment about False value for
	Comes_From_Source on secondary-stack allocator.

	* exp_ch9.adb (Build_Entry_Family_Name): Add comment.
	(Build_Entry_Name): Add comment.

2009-04-10  Robert Dewar  <dewar@adacore.com>

	* einfo.ads, einfo.adb (Low_Bound_Tested): New name for Low_Bound_Known

	* sem_prag.adb (Analyze_Pragma, case Check): Remove check for lower
	bound tested, since this is now done more generally in Sem_Res.

	* sem_res.adb (Resolve_Comparison_Op): Add call to
	Check_Lower_Bound_Tested.
	(Resolve_Equality_Op): Add call to Check_Lower_Bound_Tested

	* sem_warn.ads, sem_warn.adb (Check_Low_Bound_Tested): New procedure
	(Low_Bound_Tested): New name for Low_Bound_Known flag

	* exp_ch5.adb: Minor reformatting

	* exp_ch4.adb:
	Add comments on copying the Comes_From_Source flag for allocators

	* sinfo.ads:
	Add comments on copying the Comes_From_Source flag for allocators

	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Copy
	Comes_From_Source flag from old allocator to new one.

2009-04-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.ads: Address missing documentation query

2009-04-10  Vincent Celier  <celier@adacore.com>

	* prj-attr.adb:
	Add new Linker attributes Max_Command_Line_Length, Response_File_Format
	and Response_File_Switches.

	* prj-nmsc.adb (Process_Linker): Process new attributes
	Max_Command_Line_Length, Response_File_Format and
	Response_File_Switches.

	* prj.ads (Response_File_Format): New enumeration type
	(Project_Configuration): New componants Max_Command_Line_Length,
	Resp_File_Format and Resp_File_Options.

	* snames.ads-tmpl: Add new standard names for linking response files
	for gprbuild: GNU, None, Object_List, Option_List,
	Max_Command_Line_Length, Response_File_Format and
	Response_File_Switches.

2009-04-10  Geert Bosch  <bosch@adacore.com>

	* system-aix.ads, system-darwin-ppc.ads, system-darwin-x86.ads,
	system-freebsd-x86.ads, system-hpux.ads, system-hpux-ia64.ads,
	system-irix-n32.ads, system-irix-o32.ads, system-linux-alpha.ads,
	system-linux-hppa.ads, system-linux-ia64.ads, system-linux-ppc.ads,
	system-linux-s390.ads, system-linux-s390x.ads, system-linux-sh4.ads,
	system-linux-sparc.ads, system-linux-x86_64.ads, system-linux-x86.ads,
	system-mingw.ads, system-solaris-sparc.ads, system-solaris-sparcv9.ads,
	system-solaris-x86.ads, system-tru64.ads, system-vms_64.ads,
	system-vms.ads, system-vms-ia64.ads, system-vms-zcx.ads,
	system-vxworks-arm.ads, system-vxworks-m68k.ads,
	system-vxworks-mips.ads, system-vxworks-ppc.ads,
	system-vxworks-sparcv9.ads, system-vxworks-x86.ads
	(Backend_Overflow_Checks): Set to True.

2009-04-10  Thomas Quinot  <quinot@adacore.com>

	* exp_attr.adb: Minor reformatting

2009-04-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Check_Precondition_Postcondition): Within a generic,
	analyze the expression for a postcondition, even if the compiler mode
	is Generate_Code.

2009-04-10  Robert Dewar  <dewar@adacore.com>

	* sem_aux.adb: Minor reformatting

2009-04-10  Ed Falis  <falis@adacore.com>

	* init.c: Change VxWorks 6 stack overflow checking for kernel apps.

	* system-vxworks-ppc.ads, system-vxworks-x86.ads: Update header.

2009-04-10  Thomas Quinot  <quinot@adacore.com>

	* sem_ch6.ads (Check_Subtype_Conformant): Add ??? comment for
	undocumented formal.
	Minor reformatting

	* a-direio.ads: Fix typo in comment

	* sem_ch3.adb, g-dirope.adb, sem_type.adb, sem_ch12.adb, sem_case.adb,
	errout.adb, sem_ch4.adb, sem_ch11.adb, exp_dist.adb, sem_ch13.adb:
	Use uniform phrasing for comment at start of subprogram body.

	* xsnamest.adb: Add note to explain why we use specific names for the
	newly generated files instead of generating snames.{ads,adb,h} directly

2009-04-10  Sergey Rybin  <rybin@adacore.com>

	* vms_data.ads:
	Add qualifier for new gnatstub option '--no-exception'

	* gnat_ugn.texi:
	Add the description of the new gnatstub option '--no-exception'

2009-04-10  Robert Dewar  <dewar@adacore.com>

	* rtsfind.adb: Minor reformatting

2009-04-10  Thomas Quinot  <quinot@adacore.com>

	* sem_disp.adb: Minor reformatting.
	Add comment pointing to RM clause for the case of warning against a
	(failed) attempt at declaring a primitive operation elsewhere than in a
	package spec.

2009-04-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Denotes_Formal_Package): Check whether the package is
	an actual for a previous formal package of the current instance.

2009-04-10  Bob Duff  <duff@adacore.com>

	* rtsfind.adb (RTE): Put implicit with_clauses on whatever unit needs
	them first, rather than on the extended main unit.

2009-04-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Check_Discriminant_Conformance): If discriminant
	specification of full view carries a null exclusion indicator, create
	an itype for it, to check for conformance with partial view.

2009-04-10  Bob Duff  <duff@adacore.com>

	* rtsfind.ads: Minor code change: make RE_Unit_Table constant.

	* rtsfind.adb: Minor comment changes, and remove useless code.

	* sinfo.ads: Add ??? comment.

2009-04-10  Vincent Celier  <celier@adacore.com>

	* vms_data.ads: Add missing GNAT SYNC VMS qualifiers -main= and -U

2009-04-10  Ed Schonberg  <schonberg@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference, case 'Tag): If the tagged
	type is a synchronized type, retrieve tag information from the
	corresponding record, which has the dispatch table link.

2009-04-10  Jerome Lambourg  <lambourg@adacore.com>

	* g-comlin.adb (Group_Analysis): Take care of switches that might be
	decomposed afterwards, but are present as-is in the command line
	configuration, and thus should be kept as-is.

2009-04-10  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Document that postconditions are tested on implicit
	returns.

	* sem_aux.adb: Minor reformatting

2009-04-10  Gary Dismukes  <dismukes@adacore.com>

	* itypes.adb (Create_Null_Excluding_Itype): Apply Base_Type when
	setting Etype.
	
	* par-ch3.adb (P_Access_Type_Definition): Set new attribute
	Null_Exclusion_In_Return_Present when an access-to-function type has a
	result type with an explicit not null.

	* sem_ch3.adb (Access_Subprogram_Definition): If a null exclusion is
	given on the result type, then create a null-excluding itype for the
	function.

	* sem_ch6.adb (Analyze_Return_Type): Create a null-excluding itype in
	the case where a null exclusion is imposed on a named access type.
	(Analyze_Subprogram_Specification): Push and pop the scope of the
	function around the call to Analyze_Return_Type in the case of no
	formals, for consistency with handling when formals are present
	(Process_Formals does this). Ensures that any itype created for the
	return type will be associated with the proper scope.

	* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): If a null
	exclusion is given on a generic function's result type, then create a
	null-excluding itype for the generic function.
	(Instantiate_Object): Set Null_Exclusion_Present of a constant created
	for an actual for a formal in object according to the setting on the
	formal. Ensures null exclusion checks are done when the association is
	elaborated.

	* sinfo.ads: Add new flag Null_Exclusion_In_Return_Present on
	N_Access_Function_Definition.

	* sinfo.adb: Add Get_ and Set_ operations for
	Null_Exclusion_In_Return_Present.

2009-04-10  Bob Duff  <duff@adacore.com>

	* exp_ch5.adb, exp_ch6.adb, sem_ch6.adb: Move the code that creates a
	call to the _Postconditions procedure in the case of implicit returns
	from analysis to expansion. This eliminates some duplicated code. Use
	the Postcondition_Proc to find the identity of this procedure during
	expansion.

2009-04-10  Robert Dewar  <dewar@adacore.com>

	* sem_ch6.adb: Minor code clean up.

	* einfo.ads, sem_attr.adb: Minor comment fixes.

2009-04-10  Robert Dewar  <dewar@adacore.com>

	* sem_ch8.adb: Minor reformatting

2009-04-10  Robert Dewar  <dewar@adacore.com>

	* einfo.ads, einfo.adb (Postcondition_Proc): New attribute for
	procedures.

	* sem_ch6.adb: Minor code clean up.

2009-04-10  Robert Dewar  <dewar@adacore.com>

	* mlib-tgt-specific-xi.adb: Minor reformatting

2009-04-10  Bob Duff  <duff@adacore.com>

	* einfo.ads: Minor comment fixes

2009-04-10  Vincent Celier  <celier@adacore.com>

	* snames.ads-tmpl: Remove names that are no longer used in the
	Project Manager.
	Mark specifically those that are used only in gprbuild

2009-04-10  Eric Botcazou  <ebotcazou@adacore.com>

	* init.c: Adjust EH support code on Alpha/Tru64.

2009-04-10  Bob Duff  <duff@adacore.com>

	* sem_ch6.adb (Process_PPCs): Add a call to the _Postconditions
	procedure on every path that could return implicitly (not via a return
	statement) from a procedure.

2009-04-10  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch9.adb (Build_Master_Entity): An extended return statement is a
	valid scope for a task declarations and therefore for a master id.

2009-04-10  Robert Dewar  <dewar@adacore.com>

	* sem_aux.adb: Minor reformatting

2009-04-10  Vincent Celier  <celier@adacore.com>

	* scn.adb (Obsolescent_Check_Flag): New Boolean flag, initialized to
	True.
	(Obsolescent_Check): Do nothing if Obsolescent_Check_Flag is False
	(Set_Obsolescent_Check): New procedure to change the value of
	Obsolescent_Check_Flag.

	* scn.ads (Set_Obsolescent_Check): New procedure to control
	Obsolescent_Check.

	* sinput-l.adb (Load_File): Do not check for pragma Restrictions on
	obsolescent features while preprocessing.

2009-04-10  Thomas Quinot  <quinot@adacore.com>

	* xsnamest.adb: Use XUtil to have uniform line endings (UNIX style) in
	generated files on all platforms.

2009-04-10  Robert Dewar  <dewar@adacore.com>

	* sem_aux.adb: Minor reformatting

2009-04-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Access_Definition): Handle properly the case of a
	protected function with formals that returns an anonymous access type.

2009-04-10  Thomas Quinot  <quinot@adacore.com>

	* sem_disp.adb: Minor reformatting

2009-04-10  Vasiliy Fofanov  <fofanov@adacore.com>

	* seh_init.c: Do not use the 32-bit specific implementation of
	__gnat_install_SEH_handler on 64-bit Windows target (64-bit specific
	version TBD).

2009-04-10  Jose Ruiz  <ruiz@adacore.com>

	* mlib-tgt-specific-xi.adb (Get_Target_Prefix): Target_Name may contain
	a '/' at the end so we better use the complete target name to determine
	whether it is a PowerPC 55xx target.

2009-04-10  Thomas Quinot  <quinot@adacore.com>

	* sem_eval.adb: Minor reformatting

2009-04-10  Thomas Quinot  <quinot@adacore.com>

	* snames.h, snames.ads, snames.adb: Remove files, now generated from
	templates.

	* snames.h-tmpl, snames.ads-tmpl, snames.adb-tmpl: Templates for the
	above.

	* xsnamest.adb: New file.

	* gcc-interface/Make-lang.in: New target for automated generation of
	snames.ads, snames.adb and snames.h

2009-04-10  Tristan Gingold  <gingold@adacore.com>

	* gcc-interface/Makefile.in, gcc-interface/utils.c: Include "rtl.h" to
	avoid compile time warnings.
	Do not add gcc/config in include search list while compiling the RTS.
	Pragma Thread_Local_Storage is available on any target.

2009-04-10  Bob Duff  <duff@adacore.com>

	* sem.ads, par.adb, sem_ch6.adb, sem_ch8.adb: Minor comment fixes.

2009-04-10  Tristan Gingold  <gingold@adacore.com>

	* init.c: Install signal handler on Darwin.

2009-04-10  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb: Minor reformatting

	* exp_util.adb (Make_Non_Empty_Check): New function
	(Silly_Boolean_Array_Not_Test): Add call to Make_Non_Empty_Check
	(Silly_Boolean_Array_Xor_Test): Use Make_Non_Empty_Check

2009-04-10  Arnaud Charlet  <charlet@adacore.com>

	* make.adb, gnatlink.adb: Rename JGNAT toolchain.

2009-04-10  Jose Ruiz  <ruiz@adacore.com>

	* mlib-tgt-specific-xi.adb (Get_Target_Prefix): Insert the appropriate
	tool prefix for AVR and PowerPC 55xx targets.

2009-04-10  Robert Dewar  <dewar@adacore.com>

	* sem_warn.adb (Within_Postcondition): New function
	(Check_Unset_Reference): Use Within_Postcondition to stop bad warning

2009-04-10  Robert Dewar  <dewar@adacore.com>

	* sem_warn.adb: Minor reformatting

	* make.adb: Minor reformatting.

2009-04-10  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch7.adb (Find_Final_List): When creating a finalization-chain
	entity and the scope is a subprogram, retrieve the Sloc of the
	subprogram's body rather than using the sloc of the spec, for better
	line-stepping behavior in gdb.
	(Wrap_Transient_Declaration): For the Sloc of nodes created with a list
	controller, use the Sloc of the first declaration of the containing list
	rather than that of the node that triggered creation of the list
	controller.

2009-04-10  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Check_Naming_Schemes): Initialize local variable Casing
	to avoid gcc warning.

2009-04-10  Robert Dewar  <dewar@adacore.com>

	* g-comlin.adb: Add ??? comment

2009-04-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_warn.adb (Check_Unused_Withs): Do not emit message about
	unreferenced entities for a package with no visible declarations.

2009-04-10  Robert Dewar  <dewar@adacore.com>

	* exp_ch9.adb: Minor reformatting

2009-04-10  Thomas Quinot  <quinot@adacore.com>

	* sem_prag.adb: Minor reformatting

2009-04-10  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb:
	(Check_Library_Attributes): For a project qualified as a library project
	that is not a library project, indicate in the error message which
	attributes are missing (Library_Dir and/or Library_Name).

2009-04-10  Bob Duff  <duff@adacore.com>

	* exp_ch5.adb, exp_ch9.adb: Avoid use of No_Position in Sloc of
	generated nodes, because it might confuse various circuits in the FE.

2009-04-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case Task_Name): Do not expand argument
	of pragma. It will be recopied and analyzed when used in call to
	Create_Task.

	* sem_res.adb (Resolve_Call): Clarify use of secondary stack within
	initialization operations and recognize use of it in procedure calls
	within init_procs.

	* exp_ch9.adb (Make_Task_Create_Call): Copy full tree of Task_Name
	argument, because it may have side-effects.

	* exp_ch2.adb: Remove obsolete comments on default functions

2009-04-10  Jose Ruiz  <ruiz@adacore.com>

	* adaint.c (RTX section): Do for RTX the same thing as we do for
	Windows (include ctype.h and define a fallback ISALPHA if IN_RTS).

2009-04-10  Robert Dewar  <dewar@adacore.com>

	* sem_aux.ads, sem_aux.adb (Nearest_Current_Scope): New function.

	* sem_res.adb (Resolve_Call): Fix test for
	Suppress_Value_Tracking_On_Call (was wrong for the case of a call from
	a non-dynamic scope).

2009-04-10  Robert Dewar  <dewar@adacore.com>

	* make.adb: Add comment.
	Minor reformatting

2009-04-10  Nicolas Setton  <setton@adacore.com>

	* s-osprim-darwin.adb: New file.

	* s-osinte-darwin.adb, s-osinte-darwin.ads: Fix binding to timespec.

2009-04-10  Thomas Quinot  <quinot@adacore.com>

	* g-socket.ads: Add comment clarifying alignment requirement for Fd_Set

2009-04-09  Nick Clifton  <nickc@redhat.com>

	* adadecode.h: Change copyright header to refer to version
	3 of the GNU General Public License with version 3.1 of the
	GCC Runtime Library Exception and to point readers at the
	COPYING3 and COPYING3.RUNTIME files and the FSF's license web
	page.
	* 9drpc.adb: Likewise.
	* a-assert.adb: Likewise.
	* a-astaco.adb: Likewise.
	* a-calari.adb: Likewise.
	* a-calcon.adb: Likewise.
	* a-calcon.ads: Likewise.
	* a-caldel.ads: Likewise.
	* a-calend-vms.adb: Likewise.
	* a-calend-vms.ads: Likewise.
	* a-calend.adb: Likewise.
	* a-calend.ads: Likewise.
	* a-calfor.adb: Likewise.
	* a-catizo.adb: Likewise.
	* a-cdlili.adb: Likewise.
	* a-cdlili.ads: Likewise.
	* a-cgaaso.adb: Likewise.
	* a-cgaaso.ads: Likewise.
	* a-cgarso.adb: Likewise.
	* a-cgcaso.adb: Likewise.
	* a-chacon.adb: Likewise.
	* a-chacon.ads: Likewise.
	* a-chahan.adb: Likewise.
	* a-chahan.ads: Likewise.
	* a-chlat9.ads: Likewise.
	* a-chtgke.adb: Likewise.
	* a-chtgke.ads: Likewise.
	* a-chtgop.adb: Likewise.
	* a-chtgop.ads: Likewise.
	* a-chzla1.ads: Likewise.
	* a-chzla9.ads: Likewise.
	* a-cidlli.adb: Likewise.
	* a-cidlli.ads: Likewise.
	* a-cihama.adb: Likewise.
	* a-cihama.ads: Likewise.
	* a-cihase.adb: Likewise.
	* a-cihase.ads: Likewise.
	* a-ciorma.adb: Likewise.
	* a-ciorma.ads: Likewise.
	* a-ciormu.adb: Likewise.
	* a-ciormu.ads: Likewise.
	* a-ciorse.adb: Likewise.
	* a-ciorse.ads: Likewise.
	* a-clrefi.adb: Likewise.
	* a-clrefi.ads: Likewise.
	* a-cohama.adb: Likewise.
	* a-cohama.ads: Likewise.
	* a-cohase.adb: Likewise.
	* a-cohase.ads: Likewise.
	* a-cohata.ads: Likewise.
	* a-coinve.adb: Likewise.
	* a-coinve.ads: Likewise.
	* a-colien.adb: Likewise.
	* a-colien.ads: Likewise.
	* a-colire.adb: Likewise.
	* a-colire.ads: Likewise.
	* a-comlin.adb: Likewise.
	* a-comlin.ads: Likewise.
	* a-convec.adb: Likewise.
	* a-convec.ads: Likewise.
	* a-coorma.adb: Likewise.
	* a-coorma.ads: Likewise.
	* a-coormu.adb: Likewise.
	* a-coormu.ads: Likewise.
	* a-coorse.adb: Likewise.
	* a-coorse.ads: Likewise.
	* a-coprnu.adb: Likewise.
	* a-coprnu.ads: Likewise.
	* a-crbltr.ads: Likewise.
	* a-crbtgk.adb: Likewise.
	* a-crbtgk.ads: Likewise.
	* a-crbtgo.adb: Likewise.
	* a-crbtgo.ads: Likewise.
	* a-crdlli.adb: Likewise.
	* a-crdlli.ads: Likewise.
	* a-cwila1.ads: Likewise.
	* a-cwila9.ads: Likewise.
	* a-decima.adb: Likewise.
	* a-decima.ads: Likewise.
	* a-diocst.adb: Likewise.
	* a-diocst.ads: Likewise.
	* a-direct.adb: Likewise.
	* a-direct.ads: Likewise.
	* a-direio.adb: Likewise.
	* a-direio.ads: Likewise.
	* a-dirval-mingw.adb: Likewise.
	* a-dirval-vms.adb: Likewise.
	* a-dirval.adb: Likewise.
	* a-dirval.ads: Likewise.
	* a-dynpri.adb: Likewise.
	* a-einuoc.adb: Likewise.
	* a-einuoc.ads: Likewise.
	* a-elchha.adb: Likewise.
	* a-elchha.ads: Likewise.
	* a-envvar.adb: Likewise.
	* a-excach.adb: Likewise.
	* a-except-2005.adb: Likewise.
	* a-except-2005.ads: Likewise.
	* a-except.adb: Likewise.
	* a-except.ads: Likewise.
	* a-excpol-abort.adb: Likewise.
	* a-excpol.adb: Likewise.
	* a-exctra.adb: Likewise.
	* a-exctra.ads: Likewise.
	* a-exetim-mingw.adb: Likewise.
	* a-exetim-mingw.ads: Likewise.
	* a-exexda.adb: Likewise.
	* a-exexpr-gcc.adb: Likewise.
	* a-exexpr.adb: Likewise.
	* a-exextr.adb: Likewise.
	* a-exstat.adb: Likewise.
	* a-filico.adb: Likewise.
	* a-filico.ads: Likewise.
	* a-finali.adb: Likewise.
	* a-finali.ads: Likewise.
	* a-interr.ads: Likewise.
	* a-intnam-aix.ads: Likewise.
	* a-intnam-darwin.ads: Likewise.
	* a-intnam-dummy.ads: Likewise.
	* a-intnam-freebsd.ads: Likewise.
	* a-intnam-hpux.ads: Likewise.
	* a-intnam-irix.ads: Likewise.
	* a-intnam-linux.ads: Likewise.
	* a-intnam-lynxos.ads: Likewise.
	* a-intnam-mingw.ads: Likewise.
	* a-intnam-rtems.ads: Likewise.
	* a-intnam-solaris.ads: Likewise.
	* a-intnam-tru64.ads: Likewise.
	* a-intnam-vms.ads: Likewise.
	* a-intnam-vxworks.ads: Likewise.
	* a-intsig.adb: Likewise.
	* a-intsig.ads: Likewise.
	* a-ngcefu.adb: Likewise.
	* a-ngcoar.adb: Likewise.
	* a-ngcoty.adb: Likewise.
	* a-ngcoty.ads: Likewise.
	* a-ngelfu.adb: Likewise.
	* a-ngrear.adb: Likewise.
	* a-ngrear.ads: Likewise.
	* a-nudira.adb: Likewise.
	* a-nudira.ads: Likewise.
	* a-nuflra.adb: Likewise.
	* a-nuflra.ads: Likewise.
	* a-numaux-darwin.adb: Likewise.
	* a-numaux-darwin.ads: Likewise.
	* a-numaux-libc-x86.ads: Likewise.
	* a-numaux-vxworks.ads: Likewise.
	* a-numaux-x86.adb: Likewise.
	* a-numaux-x86.ads: Likewise.
	* a-numaux.ads: Likewise.
	* a-rbtgso.adb: Likewise.
	* a-rbtgso.ads: Likewise.
	* a-reatim.ads: Likewise.
	* a-retide.adb: Likewise.
	* a-retide.ads: Likewise.
	* a-rttiev.adb: Likewise.
	* a-rttiev.ads: Likewise.
	* a-secain.adb: Likewise.
	* a-secain.ads: Likewise.
	* a-sequio.adb: Likewise.
	* a-sequio.ads: Likewise.
	* a-shcain.adb: Likewise.
	* a-shcain.ads: Likewise.
	* a-siocst.adb: Likewise.
	* a-siocst.ads: Likewise.
	* a-slcain.adb: Likewise.
	* a-slcain.ads: Likewise.
	* a-ssicst.adb: Likewise.
	* a-ssicst.ads: Likewise.
	* a-stboha.adb: Likewise.
	* a-stmaco.ads: Likewise.
	* a-storio.adb: Likewise.
	* a-strbou.adb: Likewise.
	* a-strbou.ads: Likewise.
	* a-stream.ads: Likewise.
	* a-strfix.adb: Likewise.
	* a-strhas.adb: Likewise.
	* a-strmap.adb: Likewise.
	* a-strmap.ads: Likewise.
	* a-strsea.adb: Likewise.
	* a-strsea.ads: Likewise.
	* a-strsup.adb: Likewise.
	* a-strsup.ads: Likewise.
	* a-strunb.adb: Likewise.
	* a-strunb.ads: Likewise.
	* a-ststio.adb: Likewise.
	* a-ststio.ads: Likewise.
	* a-stunau.adb: Likewise.
	* a-stunau.ads: Likewise.
	* a-stunha.adb: Likewise.
	* a-stwibo.adb: Likewise.
	* a-stwibo.ads: Likewise.
	* a-stwifi.adb: Likewise.
	* a-stwiha.adb: Likewise.
	* a-stwima.adb: Likewise.
	* a-stwima.ads: Likewise.
	* a-stwise.adb: Likewise.
	* a-stwise.ads: Likewise.
	* a-stwisu.adb: Likewise.
	* a-stwisu.ads: Likewise.
	* a-stwiun.adb: Likewise.
	* a-stwiun.ads: Likewise.
	* a-stzbou.adb: Likewise.
	* a-stzbou.ads: Likewise.
	* a-stzfix.adb: Likewise.
	* a-stzhas.adb: Likewise.
	* a-stzmap.adb: Likewise.
	* a-stzmap.ads: Likewise.
	* a-stzsea.adb: Likewise.
	* a-stzsea.ads: Likewise.
	* a-stzsup.adb: Likewise.
	* a-stzsup.ads: Likewise.
	* a-stzunb.adb: Likewise.
	* a-stzunb.ads: Likewise.
	* a-suteio.adb: Likewise.
	* a-suteio.ads: Likewise.
	* a-swbwha.adb: Likewise.
	* a-swmwco.ads: Likewise.
	* a-swunau.adb: Likewise.
	* a-swunau.ads: Likewise.
	* a-swuwha.adb: Likewise.
	* a-swuwti.adb: Likewise.
	* a-swuwti.ads: Likewise.
	* a-sytaco.adb: Likewise.
	* a-sytaco.ads: Likewise.
	* a-szbzha.adb: Likewise.
	* a-szmzco.ads: Likewise.
	* a-szunau.adb: Likewise.
	* a-szunau.ads: Likewise.
	* a-szuzha.adb: Likewise.
	* a-szuzti.adb: Likewise.
	* a-szuzti.ads: Likewise.
	* a-tags.adb: Likewise.
	* a-tags.ads: Likewise.
	* a-tasatt.ads: Likewise.
	* a-taside.adb: Likewise.
	* a-taside.ads: Likewise.
	* a-taster.adb: Likewise.
	* a-teioed.adb: Likewise.
	* a-teioed.ads: Likewise.
	* a-textio.adb: Likewise.
	* a-textio.ads: Likewise.
	* a-tiboio.adb: Likewise.
	* a-ticoau.adb: Likewise.
	* a-ticoau.ads: Likewise.
	* a-ticoio.adb: Likewise.
	* a-ticoio.ads: Likewise.
	* a-tideau.adb: Likewise.
	* a-tideau.ads: Likewise.
	* a-tideio.adb: Likewise.
	* a-tideio.ads: Likewise.
	* a-tienau.adb: Likewise.
	* a-tienau.ads: Likewise.
	* a-tienio.adb: Likewise.
	* a-tienio.ads: Likewise.
	* a-tifiio.adb: Likewise.
	* a-tifiio.ads: Likewise.
	* a-tiflau.adb: Likewise.
	* a-tiflau.ads: Likewise.
	* a-tiflio.adb: Likewise.
	* a-tiflio.ads: Likewise.
	* a-tigeau.adb: Likewise.
	* a-tigeau.ads: Likewise.
	* a-tiinau.adb: Likewise.
	* a-tiinau.ads: Likewise.
	* a-tiinio.adb: Likewise.
	* a-tiinio.ads: Likewise.
	* a-timoau.adb: Likewise.
	* a-timoau.ads: Likewise.
	* a-timoio.adb: Likewise.
	* a-timoio.ads: Likewise.
	* a-tiocst.adb: Likewise.
	* a-tiocst.ads: Likewise.
	* a-titest.adb: Likewise.
	* a-wichun.adb: Likewise.
	* a-wichun.ads: Likewise.
	* a-witeio.adb: Likewise.
	* a-witeio.ads: Likewise.
	* a-wtcoau.adb: Likewise.
	* a-wtcoau.ads: Likewise.
	* a-wtcoio.adb: Likewise.
	* a-wtcstr.adb: Likewise.
	* a-wtcstr.ads: Likewise.
	* a-wtdeau.adb: Likewise.
	* a-wtdeau.ads: Likewise.
	* a-wtdeio.adb: Likewise.
	* a-wtdeio.ads: Likewise.
	* a-wtedit.adb: Likewise.
	* a-wtedit.ads: Likewise.
	* a-wtenau.adb: Likewise.
	* a-wtenau.ads: Likewise.
	* a-wtenio.adb: Likewise.
	* a-wtenio.ads: Likewise.
	* a-wtfiio.adb: Likewise.
	* a-wtfiio.ads: Likewise.
	* a-wtflau.adb: Likewise.
	* a-wtflau.ads: Likewise.
	* a-wtflio.adb: Likewise.
	* a-wtflio.ads: Likewise.
	* a-wtgeau.adb: Likewise.
	* a-wtgeau.ads: Likewise.
	* a-wtinau.adb: Likewise.
	* a-wtinau.ads: Likewise.
	* a-wtinio.adb: Likewise.
	* a-wtmoau.adb: Likewise.
	* a-wtmoau.ads: Likewise.
	* a-wtmoio.adb: Likewise.
	* a-wtmoio.ads: Likewise.
	* a-wttest.adb: Likewise.
	* a-wwboio.adb: Likewise.
	* a-zchuni.adb: Likewise.
	* a-zchuni.ads: Likewise.
	* a-ztcoau.adb: Likewise.
	* a-ztcoau.ads: Likewise.
	* a-ztcoio.adb: Likewise.
	* a-ztcstr.adb: Likewise.
	* a-ztcstr.ads: Likewise.
	* a-ztdeau.adb: Likewise.
	* a-ztdeau.ads: Likewise.
	* a-ztdeio.adb: Likewise.
	* a-ztdeio.ads: Likewise.
	* a-ztedit.adb: Likewise.
	* a-ztedit.ads: Likewise.
	* a-ztenau.adb: Likewise.
	* a-ztenau.ads: Likewise.
	* a-ztenio.adb: Likewise.
	* a-ztenio.ads: Likewise.
	* a-ztexio.adb: Likewise.
	* a-ztexio.ads: Likewise.
	* a-ztfiio.adb: Likewise.
	* a-ztfiio.ads: Likewise.
	* a-ztflau.adb: Likewise.
	* a-ztflau.ads: Likewise.
	* a-ztflio.adb: Likewise.
	* a-ztflio.ads: Likewise.
	* a-ztgeau.adb: Likewise.
	* a-ztgeau.ads: Likewise.
	* a-ztinau.adb: Likewise.
	* a-ztinau.ads: Likewise.
	* a-ztinio.adb: Likewise.
	* a-ztmoau.adb: Likewise.
	* a-ztmoau.ads: Likewise.
	* a-ztmoio.adb: Likewise.
	* a-ztmoio.ads: Likewise.
	* a-zttest.adb: Likewise.
	* a-zzboio.adb: Likewise.
	* adadecode.c: Likewise.
	* adaint.c: Likewise.
	* adaint.h: Likewise.
	* alloc.ads: Likewise.
	* argv.c: Likewise.
	* arit64.c: Likewise.
	* atree.adb: Likewise.
	* atree.ads: Likewise.
	* aux-io.c: Likewise.
	* cal.c: Likewise.
	* casing.adb: Likewise.
	* casing.ads: Likewise.
	* cio.c: Likewise.
	* csets.adb: Likewise.
	* csets.ads: Likewise.
	* cstreams.c: Likewise.
	* ctrl_c.c: Likewise.
	* debug.adb: Likewise.
	* debug.ads: Likewise.
	* dec.ads: Likewise.
	* einfo.adb: Likewise.
	* einfo.ads: Likewise.
	* elists.adb: Likewise.
	* elists.ads: Likewise.
	* env.c: Likewise.
	* env.h: Likewise.
	* errno.c: Likewise.
	* exit.c: Likewise.
	* fe.h: Likewise.
	* final.c: Likewise.
	* fname.adb: Likewise.
	* fname.ads: Likewise.
	* g-allein.ads: Likewise.
	* g-alleve.adb: Likewise.
	* g-alleve.ads: Likewise.
	* g-altcon.adb: Likewise.
	* g-altcon.ads: Likewise.
	* g-altive.ads: Likewise.
	* g-alveop.adb: Likewise.
	* g-alveop.ads: Likewise.
	* g-alvety.ads: Likewise.
	* g-alvevi.ads: Likewise.
	* g-arrspl.adb: Likewise.
	* g-arrspl.ads: Likewise.
	* g-calend.ads: Likewise.
	* g-comlin.adb: Likewise.
	* g-debpoo.adb: Likewise.
	* g-debpoo.ads: Likewise.
	* g-eacodu-vms.adb: Likewise.
	* g-eacodu.adb: Likewise.
	* g-excact.adb: Likewise.
	* g-excact.ads: Likewise.
	* g-locfil.adb: Likewise.
	* g-os_lib.ads: Likewise.
	* g-rannum.adb: Likewise.
	* g-rannum.ads: Likewise.
	* g-regist.adb: Likewise.
	* g-regist.ads: Likewise.
	* g-signal.adb: Likewise.
	* g-signal.ads: Likewise.
	* g-soccon.ads: Likewise.
	* g-string.adb: Likewise.
	* g-string.ads: Likewise.
	* g-strspl.ads: Likewise.
	* g-timsta.adb: Likewise.
	* g-timsta.ads: Likewise.
	* g-trasym-vms-alpha.adb: Likewise.
	* g-trasym-vms-ia64.adb: Likewise.
	* g-utf_32.adb: Likewise.
	* g-utf_32.ads: Likewise.
	* g-wistsp.ads: Likewise.
	* g-zstspl.ads: Likewise.
	* gmem.c: Likewise.
	* gnatvsn.adb: Likewise.
	* gnatvsn.ads: Likewise.
	* gsocket.h: Likewise.
	* hostparm.ads: Likewise.
	* i-c.adb: Likewise.
	* i-cexten.ads: Likewise.
	* i-cobol.adb: Likewise.
	* i-cobol.ads: Likewise.
	* i-cpoint.adb: Likewise.
	* i-cpoint.ads: Likewise.
	* i-cpp.adb: Likewise.
	* i-cpp.ads: Likewise.
	* i-cstrea-vms.adb: Likewise.
	* i-cstrea.adb: Likewise.
	* i-cstrea.ads: Likewise.
	* i-cstrin.adb: Likewise.
	* i-cstrin.ads: Likewise.
	* i-forbla-darwin.adb: Likewise.
	* i-forbla-unimplemented.ads: Likewise.
	* i-forbla.adb: Likewise.
	* i-forbla.ads: Likewise.
	* i-forlap.ads: Likewise.
	* i-fortra.adb: Likewise.
	* i-pacdec.adb: Likewise.
	* i-pacdec.ads: Likewise.
	* i-vxwoio.adb: Likewise.
	* i-vxwoio.ads: Likewise.
	* indepsw-aix.adb: Likewise.
	* indepsw-gnu.adb: Likewise.
	* indepsw-mingw.adb: Likewise.
	* indepsw.adb: Likewise.
	* indepsw.ads: Likewise.
	* init.c: Likewise.
	* initialize.c: Likewise.
	* interfac.ads: Likewise.
	* krunch.adb: Likewise.
	* krunch.ads: Likewise.
	* lib-list.adb: Likewise.
	* lib-sort.adb: Likewise.
	* lib.adb: Likewise.
	* lib.ads: Likewise.
	* link.c: Likewise.
	* math_lib.adb: Likewise.
	* memtrack.adb: Likewise.
	* mingw32.h: Likewise.
	* mkdir.c: Likewise.
	* namet-sp.adb: Likewise.
	* namet-sp.ads: Likewise.
	* namet.adb: Likewise.
	* namet.ads: Likewise.
	* nlists.adb: Likewise.
	* nlists.ads: Likewise.
	* opt.adb: Likewise.
	* opt.ads: Likewise.
	* output.adb: Likewise.
	* output.ads: Likewise.
	* raise-gcc.c: Likewise.
	* raise.c: Likewise.
	* raise.h: Likewise.
	* repinfo.adb: Likewise.
	* repinfo.ads: Likewise.
	* repinfo.h: Likewise.
	* rident.ads: Likewise.
	* s-addima.adb: Likewise.
	* s-addima.ads: Likewise.
	* s-addope.adb: Likewise.
	* s-addope.ads: Likewise.
	* s-arit64.adb: Likewise.
	* s-arit64.ads: Likewise.
	* s-assert.adb: Likewise.
	* s-assert.ads: Likewise.
	* s-asthan-vms-alpha.adb: Likewise.
	* s-asthan.adb: Likewise.
	* s-asthan.ads: Likewise.
	* s-atacco.adb: Likewise.
	* s-atacco.ads: Likewise.
	* s-auxdec-empty.adb: Likewise.
	* s-auxdec-empty.ads: Likewise.
	* s-auxdec-vms_64.ads: Likewise.
	* s-auxdec.adb: Likewise.
	* s-auxdec.ads: Likewise.
	* s-bitops.adb: Likewise.
	* s-bitops.ads: Likewise.
	* s-boarop.ads: Likewise.
	* s-carsi8.adb: Likewise.
	* s-carsi8.ads: Likewise.
	* s-carun8.adb: Likewise.
	* s-carun8.ads: Likewise.
	* s-casi16.adb: Likewise.
	* s-casi16.ads: Likewise.
	* s-casi32.adb: Likewise.
	* s-casi32.ads: Likewise.
	* s-casi64.adb: Likewise.
	* s-casi64.ads: Likewise.
	* s-casuti.ads: Likewise.
	* s-caun16.adb: Likewise.
	* s-caun16.ads: Likewise.
	* s-caun32.adb: Likewise.
	* s-caun32.ads: Likewise.
	* s-caun64.adb: Likewise.
	* s-caun64.ads: Likewise.
	* s-chepoo.ads: Likewise.
	* s-crc32.adb: Likewise.
	* s-crc32.ads: Likewise.
	* s-crtl.ads: Likewise.
	* s-direio.adb: Likewise.
	* s-direio.ads: Likewise.
	* s-dsaser.ads: Likewise.
	* s-except.adb: Likewise.
	* s-except.ads: Likewise.
	* s-exctab.adb: Likewise.
	* s-exctab.ads: Likewise.
	* s-exnint.adb: Likewise.
	* s-exnint.ads: Likewise.
	* s-exnllf.adb: Likewise.
	* s-exnllf.ads: Likewise.
	* s-exnlli.adb: Likewise.
	* s-exnlli.ads: Likewise.
	* s-expint.adb: Likewise.
	* s-expint.ads: Likewise.
	* s-explli.adb: Likewise.
	* s-explli.ads: Likewise.
	* s-expllu.adb: Likewise.
	* s-expllu.ads: Likewise.
	* s-expmod.adb: Likewise.
	* s-expmod.ads: Likewise.
	* s-expuns.adb: Likewise.
	* s-expuns.ads: Likewise.
	* s-fatflt.ads: Likewise.
	* s-fatgen.adb: Likewise.
	* s-fatgen.ads: Likewise.
	* s-fatlfl.ads: Likewise.
	* s-fatllf.ads: Likewise.
	* s-fatsfl.ads: Likewise.
	* s-ficobl.ads: Likewise.
	* s-fileio.adb: Likewise.
	* s-fileio.ads: Likewise.
	* s-filofl.ads: Likewise.
	* s-finimp.adb: Likewise.
	* s-finimp.ads: Likewise.
	* s-finroo.adb: Likewise.
	* s-finroo.ads: Likewise.
	* s-fishfl.ads: Likewise.
	* s-fore.adb: Likewise.
	* s-fore.ads: Likewise.
	* s-fvadfl.ads: Likewise.
	* s-fvaffl.ads: Likewise.
	* s-fvagfl.ads: Likewise.
	* s-gearop.adb: Likewise.
	* s-gearop.ads: Likewise.
	* s-gecobl.adb: Likewise.
	* s-gecobl.ads: Likewise.
	* s-gecola.adb: Likewise.
	* s-gecola.ads: Likewise.
	* s-gerebl.adb: Likewise.
	* s-gerebl.ads: Likewise.
	* s-gerela.adb: Likewise.
	* s-gerela.ads: Likewise.
	* s-geveop.adb: Likewise.
	* s-geveop.ads: Likewise.
	* s-gloloc.adb: Likewise.
	* s-gloloc.ads: Likewise.
	* s-hibaen.ads: Likewise.
	* s-imenne.adb: Likewise.
	* s-imenne.ads: Likewise.
	* s-imgbiu.adb: Likewise.
	* s-imgbiu.ads: Likewise.
	* s-imgboo.adb: Likewise.
	* s-imgboo.ads: Likewise.
	* s-imgcha.adb: Likewise.
	* s-imgcha.ads: Likewise.
	* s-imgdec.adb: Likewise.
	* s-imgdec.ads: Likewise.
	* s-imgenu.adb: Likewise.
	* s-imgenu.ads: Likewise.
	* s-imgint.adb: Likewise.
	* s-imgint.ads: Likewise.
	* s-imgllb.adb: Likewise.
	* s-imgllb.ads: Likewise.
	* s-imglld.adb: Likewise.
	* s-imglld.ads: Likewise.
	* s-imglli.adb: Likewise.
	* s-imglli.ads: Likewise.
	* s-imgllu.adb: Likewise.
	* s-imgllu.ads: Likewise.
	* s-imgllw.adb: Likewise.
	* s-imgllw.ads: Likewise.
	* s-imgrea.adb: Likewise.
	* s-imgrea.ads: Likewise.
	* s-imguns.adb: Likewise.
	* s-imguns.ads: Likewise.
	* s-imgwch.adb: Likewise.
	* s-imgwch.ads: Likewise.
	* s-imgwiu.adb: Likewise.
	* s-imgwiu.ads: Likewise.
	* s-inmaop-dummy.adb: Likewise.
	* s-inmaop-vms.adb: Likewise.
	* s-inmaop.ads: Likewise.
	* s-interr-hwint.adb: Likewise.
	* s-interr-sigaction.adb: Likewise.
	* s-interr-vms.adb: Likewise.
	* s-interr.adb: Likewise.
	* s-interr.ads: Likewise.
	* s-intman-dummy.adb: Likewise.
	* s-intman-mingw.adb: Likewise.
	* s-intman-posix.adb: Likewise.
	* s-intman-solaris.adb: Likewise.
	* s-intman-vms.adb: Likewise.
	* s-intman-vms.ads: Likewise.
	* s-intman-vxworks.adb: Likewise.
	* s-intman-vxworks.ads: Likewise.
	* s-intman.ads: Likewise.
	* s-io.adb: Likewise.
	* s-io.ads: Likewise.
	* s-linux-alpha.ads: Likewise.
	* s-linux-hppa.ads: Likewise.
	* s-linux.ads: Likewise.
	* s-maccod.ads: Likewise.
	* s-mantis.adb: Likewise.
	* s-mantis.ads: Likewise.
	* s-mastop-irix.adb: Likewise.
	* s-mastop.adb: Likewise.
	* s-mastop.ads: Likewise.
	* s-memcop.ads: Likewise.
	* s-memory-mingw.adb: Likewise.
	* s-memory.adb: Likewise.
	* s-memory.ads: Likewise.
	* s-os_lib.ads: Likewise.
	* s-oscons-tmplt.c: Likewise.
	* s-osinte-aix.adb: Likewise.
	* s-osinte-darwin.adb: Likewise.
	* s-osinte-freebsd.adb: Likewise.
	* s-osinte-irix.adb: Likewise.
	* s-osinte-lynxos-3.adb: Likewise.
	* s-osinte-rtems.ads: Likewise.
	* s-osinte-tru64.adb: Likewise.
	* s-osinte-vxworks-kernel.adb: Likewise.
	* s-osinte-vxworks.adb: Likewise.
	* s-osprim-mingw.adb: Likewise.
	* s-osprim-posix.adb: Likewise.
	* s-osprim-solaris.adb: Likewise.
	* s-osprim-unix.adb: Likewise.
	* s-osprim-vms.adb: Likewise.
	* s-osprim-vms.ads: Likewise.
	* s-osprim-vxworks.adb: Likewise.
	* s-osprim.ads: Likewise.
	* s-pack03.adb: Likewise.
	* s-pack03.ads: Likewise.
	* s-pack05.adb: Likewise.
	* s-pack05.ads: Likewise.
	* s-pack06.adb: Likewise.
	* s-pack06.ads: Likewise.
	* s-pack07.adb: Likewise.
	* s-pack07.ads: Likewise.
	* s-pack09.adb: Likewise.
	* s-pack09.ads: Likewise.
	* s-pack10.adb: Likewise.
	* s-pack10.ads: Likewise.
	* s-pack11.adb: Likewise.
	* s-pack11.ads: Likewise.
	* s-pack12.adb: Likewise.
	* s-pack12.ads: Likewise.
	* s-pack13.adb: Likewise.
	* s-pack13.ads: Likewise.
	* s-pack14.adb: Likewise.
	* s-pack14.ads: Likewise.
	* s-pack15.adb: Likewise.
	* s-pack15.ads: Likewise.
	* s-pack17.adb: Likewise.
	* s-pack17.ads: Likewise.
	* s-pack18.adb: Likewise.
	* s-pack18.ads: Likewise.
	* s-pack19.adb: Likewise.
	* s-pack19.ads: Likewise.
	* s-pack20.adb: Likewise.
	* s-pack20.ads: Likewise.
	* s-pack21.adb: Likewise.
	* s-pack21.ads: Likewise.
	* s-pack22.adb: Likewise.
	* s-pack22.ads: Likewise.
	* s-pack23.adb: Likewise.
	* s-pack23.ads: Likewise.
	* s-pack24.adb: Likewise.
	* s-pack24.ads: Likewise.
	* s-pack25.adb: Likewise.
	* s-pack25.ads: Likewise.
	* s-pack26.adb: Likewise.
	* s-pack26.ads: Likewise.
	* s-pack27.adb: Likewise.
	* s-pack27.ads: Likewise.
	* s-pack28.adb: Likewise.
	* s-pack28.ads: Likewise.
	* s-pack29.adb: Likewise.
	* s-pack29.ads: Likewise.
	* s-pack30.adb: Likewise.
	* s-pack30.ads: Likewise.
	* s-pack31.adb: Likewise.
	* s-pack31.ads: Likewise.
	* s-pack33.adb: Likewise.
	* s-pack33.ads: Likewise.
	* s-pack34.adb: Likewise.
	* s-pack34.ads: Likewise.
	* s-pack35.adb: Likewise.
	* s-pack35.ads: Likewise.
	* s-pack36.adb: Likewise.
	* s-pack36.ads: Likewise.
	* s-pack37.adb: Likewise.
	* s-pack37.ads: Likewise.
	* s-pack38.adb: Likewise.
	* s-pack38.ads: Likewise.
	* s-pack39.adb: Likewise.
	* s-pack39.ads: Likewise.
	* s-pack40.adb: Likewise.
	* s-pack40.ads: Likewise.
	* s-pack41.adb: Likewise.
	* s-pack41.ads: Likewise.
	* s-pack42.adb: Likewise.
	* s-pack42.ads: Likewise.
	* s-pack43.adb: Likewise.
	* s-pack43.ads: Likewise.
	* s-pack44.adb: Likewise.
	* s-pack44.ads: Likewise.
	* s-pack45.adb: Likewise.
	* s-pack45.ads: Likewise.
	* s-pack46.adb: Likewise.
	* s-pack46.ads: Likewise.
	* s-pack47.adb: Likewise.
	* s-pack47.ads: Likewise.
	* s-pack48.adb: Likewise.
	* s-pack48.ads: Likewise.
	* s-pack49.adb: Likewise.
	* s-pack49.ads: Likewise.
	* s-pack50.adb: Likewise.
	* s-pack50.ads: Likewise.
	* s-pack51.adb: Likewise.
	* s-pack51.ads: Likewise.
	* s-pack52.adb: Likewise.
	* s-pack52.ads: Likewise.
	* s-pack53.adb: Likewise.
	* s-pack53.ads: Likewise.
	* s-pack54.adb: Likewise.
	* s-pack54.ads: Likewise.
	* s-pack55.adb: Likewise.
	* s-pack55.ads: Likewise.
	* s-pack56.adb: Likewise.
	* s-pack56.ads: Likewise.
	* s-pack57.adb: Likewise.
	* s-pack57.ads: Likewise.
	* s-pack58.adb: Likewise.
	* s-pack58.ads: Likewise.
	* s-pack59.adb: Likewise.
	* s-pack59.ads: Likewise.
	* s-pack60.adb: Likewise.
	* s-pack60.ads: Likewise.
	* s-pack61.adb: Likewise.
	* s-pack61.ads: Likewise.
	* s-pack62.adb: Likewise.
	* s-pack62.ads: Likewise.
	* s-pack63.adb: Likewise.
	* s-pack63.ads: Likewise.
	* s-parame-ae653.ads: Likewise.
	* s-parame-hpux.ads: Likewise.
	* s-parame-rtems.adb: Likewise.
	* s-parame-vms-alpha.ads: Likewise.
	* s-parame-vms-ia64.ads: Likewise.
	* s-parame-vms-restrict.ads: Likewise.
	* s-parame-vxworks.adb: Likewise.
	* s-parame-vxworks.ads: Likewise.
	* s-parame.adb: Likewise.
	* s-parame.ads: Likewise.
	* s-parint.adb: Likewise.
	* s-parint.ads: Likewise.
	* s-pooglo.adb: Likewise.
	* s-pooglo.ads: Likewise.
	* s-pooloc.adb: Likewise.
	* s-pooloc.ads: Likewise.
	* s-poosiz.adb: Likewise.
	* s-poosiz.ads: Likewise.
	* s-powtab.ads: Likewise.
	* s-proinf-irix-athread.adb: Likewise.
	* s-proinf-irix-athread.ads: Likewise.
	* s-proinf.adb: Likewise.
	* s-proinf.ads: Likewise.
	* s-purexc.ads: Likewise.
	* s-rannum.adb: Likewise.
	* s-rannum.ads: Likewise.
	* s-restri.adb: Likewise.
	* s-restri.ads: Likewise.
	* s-rident.ads: Likewise.
	* s-rpc.adb: Likewise.
	* s-rpc.ads: Likewise.
	* s-scaval.adb: Likewise.
	* s-scaval.ads: Likewise.
	* s-secsta.adb: Likewise.
	* s-secsta.ads: Likewise.
	* s-sequio.adb: Likewise.
	* s-sequio.ads: Likewise.
	* s-shasto.adb: Likewise.
	* s-shasto.ads: Likewise.
	* s-soflin.adb: Likewise.
	* s-soflin.ads: Likewise.
	* s-solita.adb: Likewise.
	* s-solita.ads: Likewise.
	* s-sopco3.adb: Likewise.
	* s-sopco3.ads: Likewise.
	* s-sopco4.adb: Likewise.
	* s-sopco4.ads: Likewise.
	* s-sopco5.adb: Likewise.
	* s-sopco5.ads: Likewise.
	* s-stache.adb: Likewise.
	* s-stache.ads: Likewise.
	* s-stalib.adb: Likewise.
	* s-stalib.ads: Likewise.
	* s-stausa.adb: Likewise.
	* s-stausa.ads: Likewise.
	* s-stchop-limit.ads: Likewise.
	* s-stchop-rtems.adb: Likewise.
	* s-stchop-vxworks.adb: Likewise.
	* s-stchop.adb: Likewise.
	* s-stchop.ads: Likewise.
	* s-stoele.adb: Likewise.
	* s-stoele.ads: Likewise.
	* s-stopoo.adb: Likewise.
	* s-stopoo.ads: Likewise.
	* s-stratt.adb: Likewise.
	* s-stratt.ads: Likewise.
	* s-strcom.adb: Likewise.
	* s-strcom.ads: Likewise.
	* s-string.adb: Likewise.
	* s-string.ads: Likewise.
	* s-strops.adb: Likewise.
	* s-strops.ads: Likewise.
	* s-strxdr.adb: Likewise.
	* s-ststop.adb: Likewise.
	* s-ststop.ads: Likewise.
	* s-taasde.adb: Likewise.
	* s-taasde.ads: Likewise.
	* s-tadeca.adb: Likewise.
	* s-tadeca.ads: Likewise.
	* s-tadert.adb: Likewise.
	* s-tadert.ads: Likewise.
	* s-taenca.adb: Likewise.
	* s-taenca.ads: Likewise.
	* s-taprob.ads: Likewise.
	* s-taprop-dummy.adb: Likewise.
	* s-taprop-hpux-dce.adb: Likewise.
	* s-taprop-irix.adb: Likewise.
	* s-taprop-linux.adb: Likewise.
	* s-taprop-lynxos.adb: Likewise.
	* s-taprop-mingw.adb: Likewise.
	* s-taprop-posix.adb: Likewise.
	* s-taprop-solaris.adb: Likewise.
	* s-taprop-tru64.adb: Likewise.
	* s-taprop-vms.adb: Likewise.
	* s-taprop-vxworks.adb: Likewise.
	* s-taprop.ads: Likewise.
	* s-tarest.adb: Likewise.
	* s-tarest.ads: Likewise.
	* s-tasdeb.adb: Likewise.
	* s-tasdeb.ads: Likewise.
	* s-tasinf-irix.ads: Likewise.
	* s-tasinf-linux.adb: Likewise.
	* s-tasinf-linux.ads: Likewise.
	* s-tasinf-mingw.adb: Likewise.
	* s-tasinf-mingw.ads: Likewise.
	* s-tasinf-solaris.adb: Likewise.
	* s-tasinf-solaris.ads: Likewise.
	* s-tasinf-tru64.ads: Likewise.
	* s-tasinf.adb: Likewise.
	* s-tasinf.ads: Likewise.
	* s-tasini.adb: Likewise.
	* s-tasini.ads: Likewise.
	* s-taskin.adb: Likewise.
	* s-taskin.ads: Likewise.
	* s-taspri-dummy.ads: Likewise.
	* s-taspri-hpux-dce.ads: Likewise.
	* s-taspri-mingw.ads: Likewise.
	* s-taspri-solaris.ads: Likewise.
	* s-taspri-tru64.ads: Likewise.
	* s-taspri-vms.ads: Likewise.
	* s-taspri-vxworks.ads: Likewise.
	* s-tasque.adb: Likewise.
	* s-tasque.ads: Likewise.
	* s-tasren.adb: Likewise.
	* s-tasren.ads: Likewise.
	* s-tasres.ads: Likewise.
	* s-tassta.adb: Likewise.
	* s-tassta.ads: Likewise.
	* s-tasuti.adb: Likewise.
	* s-tasuti.ads: Likewise.
	* s-tfsetr-default.adb: Likewise.
	* s-tfsetr-vxworks.adb: Likewise.
	* s-tpinop.adb: Likewise.
	* s-tpinop.ads: Likewise.
	* s-tpoben.adb: Likewise.
	* s-tpoben.ads: Likewise.
	* s-tpobop.adb: Likewise.
	* s-tpobop.ads: Likewise.
	* s-tpopde-vms.adb: Likewise.
	* s-tpopde-vms.ads: Likewise.
	* s-tpopsp-lynxos.adb: Likewise.
	* s-tpopsp-posix-foreign.adb: Likewise.
	* s-tpopsp-posix.adb: Likewise.
	* s-tpopsp-solaris.adb: Likewise.
	* s-tpopsp-vxworks.adb: Likewise.
	* s-tporft.adb: Likewise.
	* s-tposen.adb: Likewise.
	* s-tposen.ads: Likewise.
	* s-traceb.adb: Likewise.
	* s-traceb.ads: Likewise.
	* s-traces-default.adb: Likewise.
	* s-traces.adb: Likewise.
	* s-traces.ads: Likewise.
	* s-traent-vms.adb: Likewise.
	* s-traent-vms.ads: Likewise.
	* s-traent.adb: Likewise.
	* s-traent.ads: Likewise.
	* s-trafor-default.adb: Likewise.
	* s-trafor-default.ads: Likewise.
	* s-tratas-default.adb: Likewise.
	* s-tratas.adb: Likewise.
	* s-tratas.ads: Likewise.
	* s-unstyp.ads: Likewise.
	* s-utf_32.adb: Likewise.
	* s-utf_32.ads: Likewise.
	* s-vaflop-vms-alpha.adb: Likewise.
	* s-vaflop.adb: Likewise.
	* s-vaflop.ads: Likewise.
	* s-valboo.adb: Likewise.
	* s-valboo.ads: Likewise.
	* s-valcha.adb: Likewise.
	* s-valcha.ads: Likewise.
	* s-valdec.adb: Likewise.
	* s-valdec.ads: Likewise.
	* s-valenu.adb: Likewise.
	* s-valenu.ads: Likewise.
	* s-valint.adb: Likewise.
	* s-valint.ads: Likewise.
	* s-vallld.adb: Likewise.
	* s-vallld.ads: Likewise.
	* s-vallli.adb: Likewise.
	* s-vallli.ads: Likewise.
	* s-valllu.adb: Likewise.
	* s-valllu.ads: Likewise.
	* s-valrea.adb: Likewise.
	* s-valrea.ads: Likewise.
	* s-valuns.adb: Likewise.
	* s-valuns.ads: Likewise.
	* s-valuti.adb: Likewise.
	* s-valuti.ads: Likewise.
	* s-valwch.adb: Likewise.
	* s-valwch.ads: Likewise.
	* s-veboop.adb: Likewise.
	* s-veboop.ads: Likewise.
	* s-vector.ads: Likewise.
	* s-vercon.adb: Likewise.
	* s-vercon.ads: Likewise.
	* s-vmexta.adb: Likewise.
	* s-vmexta.ads: Likewise.
	* s-vxwext-kernel.ads: Likewise.
	* s-vxwext-rtp.adb: Likewise.
	* s-vxwext-rtp.ads: Likewise.
	* s-vxwext.ads: Likewise.
	* s-vxwork-arm.ads: Likewise.
	* s-vxwork-m68k.ads: Likewise.
	* s-vxwork-mips.ads: Likewise.
	* s-vxwork-ppc.ads: Likewise.
	* s-vxwork-sparcv9.ads: Likewise.
	* s-vxwork-x86.ads: Likewise.
	* s-wchcnv.adb: Likewise.
	* s-wchcnv.ads: Likewise.
	* s-wchcon.adb: Likewise.
	* s-wchcon.ads: Likewise.
	* s-wchjis.adb: Likewise.
	* s-wchjis.ads: Likewise.
	* s-wchstw.adb: Likewise.
	* s-wchstw.ads: Likewise.
	* s-wchwts.adb: Likewise.
	* s-wchwts.ads: Likewise.
	* s-widboo.adb: Likewise.
	* s-widboo.ads: Likewise.
	* s-widcha.adb: Likewise.
	* s-widcha.ads: Likewise.
	* s-widenu.adb: Likewise.
	* s-widenu.ads: Likewise.
	* s-widlli.adb: Likewise.
	* s-widlli.ads: Likewise.
	* s-widllu.adb: Likewise.
	* s-widllu.ads: Likewise.
	* s-widwch.adb: Likewise.
	* s-widwch.ads: Likewise.
	* s-win32.ads: Likewise.
	* s-winext.ads: Likewise.
	* s-wwdcha.adb: Likewise.
	* s-wwdcha.ads: Likewise.
	* s-wwdenu.adb: Likewise.
	* s-wwdenu.ads: Likewise.
	* s-wwdwch.adb: Likewise.
	* s-wwdwch.ads: Likewise.
	* scans.adb: Likewise.
	* scans.ads: Likewise.
	* seh_init.c: Likewise.
	* sfn_scan.adb: Likewise.
	* sinfo.adb: Likewise.
	* sinfo.ads: Likewise.
	* sinput.adb: Likewise.
	* sinput.ads: Likewise.
	* snames.adb: Likewise.
	* snames.ads: Likewise.
	* socket.c: Likewise.
	* stand.adb: Likewise.
	* stand.ads: Likewise.
	* stringt.adb: Likewise.
	* stringt.ads: Likewise.
	* sysdep.c: Likewise.
	* system-aix.ads: Likewise.
	* system-darwin-ppc.ads: Likewise.
	* system-darwin-x86.ads: Likewise.
	* system-darwin-x86_64.ads: Likewise.
	* system-freebsd-x86.ads: Likewise.
	* system-hpux-ia64.ads: Likewise.
	* system-hpux.ads: Likewise.
	* system-irix-n32.ads: Likewise.
	* system-irix-n64.ads: Likewise.
	* system-irix-o32.ads: Likewise.
	* system-linux-alpha.ads: Likewise.
	* system-linux-hppa.ads: Likewise.
	* system-linux-ia64.ads: Likewise.
	* system-linux-mips.ads: Likewise.
	* system-linux-mipsel.ads: Likewise.
	* system-linux-ppc.ads: Likewise.
	* system-linux-ppc64.ads: Likewise.
	* system-linux-s390.ads: Likewise.
	* system-linux-s390x.ads: Likewise.
	* system-linux-sh4.ads: Likewise.
	* system-linux-sparc.ads: Likewise.
	* system-linux-sparcv9.ads: Likewise.
	* system-linux-x86.ads: Likewise.
	* system-linux-x86_64.ads: Likewise.
	* system-lynxos-ppc.ads: Likewise.
	* system-lynxos-x86.ads: Likewise.
	* system-mingw-x86_64.ads: Likewise.
	* system-mingw.ads: Likewise.
	* system-rtems.ads: Likewise.
	* system-solaris-sparc.ads: Likewise.
	* system-solaris-sparcv9.ads: Likewise.
	* system-solaris-x86.ads: Likewise.
	* system-solaris-x86_64.ads: Likewise.
	* system-tru64.ads: Likewise.
	* system-vms-ia64.ads: Likewise.
	* system-vms-zcx.ads: Likewise.
	* system-vms.ads: Likewise.
	* system-vms_64.ads: Likewise.
	* system-vxworks-arm.ads: Likewise.
	* system-vxworks-m68k.ads: Likewise.
	* system-vxworks-mips.ads: Likewise.
	* system-vxworks-ppc.ads: Likewise.
	* system-vxworks-sparcv9.ads: Likewise.
	* system-vxworks-x86.ads: Likewise.
	* system.ads: Likewise.
	* table.adb: Likewise.
	* table.ads: Likewise.
	* targext.c: Likewise.
	* targparm.ads: Likewise.
	* tree_in.adb: Likewise.
	* tree_in.ads: Likewise.
	* tree_io.adb: Likewise.
	* tree_io.ads: Likewise.
	* types.adb: Likewise.
	* types.ads: Likewise.
	* uintp.adb: Likewise.
	* uintp.ads: Likewise.
	* uname.adb: Likewise.
	* uname.ads: Likewise.
	* urealp.adb: Likewise.
	* urealp.ads: Likewise.
	* vx_stack_info.c: Likewise.
	* widechar.adb: Likewise.
	* widechar.ads: Likewise.
	* exp_attr.adb: 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.
	* sem.adb: Likewise.
	* sem_attr.ads: Likewise.
	* freeze.adb: Likewise.
	* freeze.ads: Likewise.
	* errout.ads: Likewise.
	* erroutc.adb: Likewise.
	* exp_ch11.ads: Likewise.

2009-04-09  Jakub Jelinek  <jakub@redhat.com>

	* config-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.
	* gcc-interface/trans.c: Likewise.
	* gnathtml.pl: Likewise.
	* gcc-interface/ada.h: Likewise.  Remove runtime exception.
	* gcc-interface/gigi.h: Likewise.
	* gcc-interface/misc.c: Likewise.
	* gcc-interface/targtyps.c: Likewise.

2009-04-09  Nicolas Setton  <setton@adacore.com>

	* s-osinte-darwin.ads: Fix wrong binding to struc timeval.

	* s-osinte-darwin.adb (To_Timeval): Adapt to fixed implementation of
	struct_timeval.

2009-04-09  Bob Duff  <duff@adacore.com>

	* exp_ch5.adb, exp_ch9.adb: Correct miscellaneous Slocs in
	internally-generated nodes related to select statements to avoid
	confusing the debugger.

2009-04-09  Pascal Obry  <obry@adacore.com>

	* make.adb: Ensure that all linker arguments are duplicated.

2009-04-09  Robert Dewar  <dewar@adacore.com>

	* sem_ch5.adb: Minor reformatting

2009-04-09  Vincent Celier  <celier@adacore.com>

	* vms_data.ads:
	Change GNAT CHECK qualifier /DIAGNOSIS_LIMIT to /DIAGNOSTIC_LIMIT
	New qualifier /LEXPAND_SOURCE=nnn for -gnatGnnn
	New qualifier /LXDEBUG=nnn for -gnatDnnn
	For H820-010

	* gnat_ugn.texi:
	Update documentation for VMS qualifiers equivalent to -gnatGnn and
	-gnatDnn

2009-04-09  Nicolas Setton  <setton@adacore.com>

	* s-osinte-darwin.ads: (Pad_Type): Make this an array of unsigned_long,
	to match layout of siginfo_t in sys/signal.h.

	* gcc-interface/Makefile.in: Add section for x86_64 darwin.

2009-04-09  Thomas Quinot  <quinot@adacore.com>

	* g-socket.ads: (Fd_Set): Use Interfaces.C.long alignment.

2009-04-09  Nicolas Setton  <setton@adacore.com>

	* s-oscons-tmplt.c: Allow long lines in the generated spec.
	Add generation of Darwin-specific constants needed when binding to the
	pthread library.

2009-04-09  Robert Dewar  <dewar@adacore.com>

	* checks.adb:
	(Insert_Valid_Check): Avoid unnecessary generation of junk declaration
	when no invalid values exist, Avoid duplicate read of atomic variable.

	* cstand.adb (Build_Signed_Integer_Type): Set Is_Known_Valid
	(Standard_Unsigned): Set Is_Known_Valid

	* sem_ch3.adb (Analyze_Subtype_Declaration): Copy Is_Known_Valid on
	subtype declaration if no constraint.
	(Set_Modular_Size): Set Is_Known_Valid if appropriate
	(Build_Derived_Numeric_Type): Copy Is_Known_Valid if no constraint

2009-04-09  Robert Dewar  <dewar@adacore.com>

	* switch-c.adb, gnat_ugn.texi, vms_data.ads, switch.adb,
	switch.ads: for numeric switches, an optional equal sign is always
	allowed.

2009-04-09  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Get_Unit): Do not consider Casing on platform where
	the case of file names is not significant.

2009-04-09  Vincent Celier  <celier@adacore.com>

	* errout.adb: Remove dependency on package Style

	* style.ads, styleg.adb, styleg.ads (RM_Column_Check): Remove function,
	moved to Stylesw.
	
	* stylesw.ads, stylesw.adb (RM_Column_Check): New function, moved from
	Styleg.

	* errutil.adb, par.adb: Import Stylesw

2009-04-09  Arnaud Charlet  <charlet@adacore.com>

	* opt.ads: Fix typos.

2009-04-09  Robert Dewar  <dewar@adacore.com>

	* einfo.adb: Minor reformatting

2009-04-09  Robert Dewar  <dewar@adacore.com>

	* gcc-interface/Make-lang.in, style.ads, style.adb: Reorganize style
	units.

	* styleg-c.ads, styleg-c.adb: Removed, no longer used.

2009-04-09  Robert Dewar  <dewar@adacore.com>

	* g-comver.adb: Minor reformatting.

2009-04-09  Thomas Quinot  <quinot@adacore.com>

	* lib-load.ads (Load_Unit): Update documentation.

2009-04-09  Ed Schonberg  <schonberg@adacore.com>

	* lib-load.adb (Load_Unit): When loading the parent of a child unit
	named in a with_clause, retain the with_clause to preserve a
	limited_with indication.

2009-04-09  Robert Dewar  <dewar@adacore.com>

	* sem_ch7.adb, sem_ch10.adb, sem_prag.adb, sem_ch12.adb, sem_util.adb,
	exp_ch13.adb, sem_ch6.adb, exp_disp.adb, sem_ch8.adb, sem_warn.adb,
	sem_cat.adb: Code clean up: use Is_Package_Or_Generic_Package where
	possible to replace an OR of two separate tests.

2009-04-09  Robert Dewar  <dewar@adacore.com>

	* binderr.adb, errout.adb, errutil.adb: New circuitry for handling
	Maximum_Messages.
	
	* erroutc.adb, erroutc.ads (Warnings_Suppressed): Now tests global
	warning status as well.
	
	* opt.ads (Maximum_Messages): New name for Maximum_Errors.
	
	* switch-b.adb, switch-c.adb: Change name Maximum_Errors to
	Maximum_Messages.
	
	* bindusg.adb, usage.adb: Update line for -gnatm switch

	* gnat_ugn.texi: Update documentation for -gnatmnn compiler switch and
	-mnn binder switch.

2009-04-09  Robert Dewar  <dewar@adacore.com>

	* sem_ch10.adb: Minor reformatting.

2009-04-09  Bob Duff  <duff@adacore.com>

	* exp_ch11.adb (Expand_Exception_Handlers, Prepend_Call_To_Handler):
	Set Sloc of generated nodes for calls to Undefer_Aborts and
	Save_Occurrence to No_Location, so the debugger ignores them and
	therefore does not jump back and forth when single stepping.

2009-04-09  Robert Dewar  <dewar@adacore.com>

	* switch-b.adb: Minor reformatting.

2009-04-09  Robert Dewar  <dewar@adacore.com>

	* sem_aggr.adb, exp_ch5.adb, sem_ch3.adb, exp_atag.adb, layout.adb,
	sem_dist.adb, exp_ch7.adb, sem_ch5.adb, sem_type.adb, exp_imgv.adb,
	exp_util.adb, sem_aux.adb, sem_aux.ads, exp_attr.adb, exp_ch9.adb,
	sem_ch7.adb, inline.adb, fe.h, sem_ch9.adb, exp_code.adb, einfo.adb,
	einfo.ads, exp_pakd.adb, checks.adb, sem_ch12.adb, exp_smem.adb,
	tbuild.adb, freeze.adb, sem_util.adb, sem_res.adb, sem_attr.adb,
	exp_dbug.adb, sem_case.adb, exp_tss.adb, exp_ch4.adb, exp_ch6.adb,
	sem_smem.adb, sem_ch4.adb, sem_mech.adb, sem_ch6.adb, exp_disp.adb,
	sem_ch8.adb, exp_aggr.adb, sem_eval.adb, sem_cat.adb, exp_dist.adb,
	sem_ch13.adb, exp_strm.adb, lib-xref.adb, sem_disp.adb, exp_ch3.adb:
	Reorganize einfo/sem_aux, moving routines from einfo to sem_aux

2009-04-09  Robert Dewar  <dewar@adacore.com>

	* exp_util.adb (Silly_Boolean_Array_Xor_Test): Simplify existing code.

	* atree.h: Add Elist26

	* gnat_ugn.texi: Complete documentation deprecating -gnatN for non-gcc
	backends.

2009-04-09  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Export_DT): Addition of a new argument (Index); used to
	retrieve from the Dispatch_Table_Wrappers list the external name.
	Addition of documentation.
	(Make_Secondary_DT): Addition of a new argument (Suffix_Index) that is
	used to export secondary dispatch tables (in the previous version of
	the frontend only primary dispatch tables were exported). Addition of
	documentation.
	(Import_DT): New subprogram (internal of Make_Tags). Used to import a
	dispatch table of a given tagged type. 
	(Make_Tags): Modified to import secondary dispatch tables.

	* sem_ch3.adb (Analyze_Object_Declaration): Code cleanup.
	(Constant_Redeclaration): Code cleanup.

	* einfo.ads (Dispatch_Table_Wrapper): Renamed to
	Dispatch_Table_Wrappers.  Update documentation.

	* einfo.adb (Dispatch_Table_Wrapper, Set_Dispatch_Table_Wrapper):
	Renamed to Dispatch_Table_Wrappers.

	* sem_util.adb (Collect_Interface_Components): Improve handling of
	private types.

	* atree.ads (Elist26, Set_Elist26): New subprograms

	* atree.adb (Elist26, Set_Elist26): New subprograms

2009-04-09  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Build_Derived_Record_Type): Fix typo.
	(Derive_Progenitor_Subprograms): Handle interfaces in subtypes of
	tagged types.

2009-04-09  Robert Dewar  <dewar@adacore.com>

	* s-direio.adb: Minor reformatting

	* exp_ch4.adb (Expand_Concatenate): Avoid overflow checks for String

2009-04-09  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Expand_Concatenate): Improve handling of overflow cases

2009-04-09  Pascal Obry  <obry@adacore.com>

	* a-cihama.adb, a-cihama.ads, a-coinve.adb, a-coinve.ads,
	s-tpoben.adb, s-tpoben.ads, s-finimp.adb, s-finimp.ads,
	a-convec.adb, a-convec.ads, a-finali.adb, a-finali.ads,
	a-filico.ads: Add some missing overriding keywords.

2009-04-09  Pascal Obry  <obry@adacore.com>

	* a-cihama.adb, a-cihama.ads, a-coinve.adb, a-coorma.ads, a-cihase.adb,
	a-cihase.ads, a-cohama.adb, a-cohama.ads, a-coorse.adb, a-coorse.ads,
	a-coormu.adb, a-coormu.ads, a-cohase.adb, a-cohase.ads: Minor
	reformatting.

2009-04-09  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Check_Overriding_Indicator): Do not generate warning on
	missing overriding indicator if the new declaration is not seen as
	primitive.

2009-04-09  Thomas Quinot  <quinot@adacore.com>

	* exp_ch4.adb (Expand_Concatenate): Add circuitry to properly handle
	overflows in computation of bounds.

2009-04-09  Pascal Obry  <obry@adacore.com>

	* a-cihama.adb, a-cgcaso.adb, a-cihase.adb, a-cohase.adb: Fix some
	typos in comment.

2009-04-09  Robert Dewar  <dewar@adacore.com>

	* sem_attr.adb (Check_Stream_Attribute): Check violation of
	restriction No_Streams

	* gnat_rm.texi: Clarify No_Streams restriction

	* g-socket.adb: Minor reformatting.

2009-04-09  Thomas Quinot  <quinot@adacore.com>

	* g-socket.ads: Mark Initialize and Finalize as obsolesent interfaces.

2009-04-09  Geert Bosch  <bosch@adacore.com>

	* exp_fixd.adb (Build_Conversion): Accept new optional Trunc argument.
	(Set_Result): Likewise.
	(Expand_Convert_Float_To_Fixed): Have Set_Result truncate the
	conversion, as required by RM 4.6(31).

2009-04-08  Robert Dewar  <dewar@adacore.com>

	* checks.adb (Enable_Overflow_Check): Do not enable if overflow checks
	suppressed.
	
	* exp_ch4.adb (Expand_Concatenate): Make sure checks are off for all
	resolution steps.

2009-04-08  Robert Dewar  <dewar@adacore.com>

	* sem_ch12.adb (Analyze_Package_Instantiation): Remove test for
	No_Local_Allocators restriction preventing local instantiation.

2009-04-08  Thomas Quinot  <quinot@adacore.com>

	* sem_eval.adb: Minor comment fix

2009-04-08  Thomas Quinot  <quinot@adacore.com>

	* g-socket.adb, g-socket.ads (GNAT.Sockets.Sockets_Library_Controller):
	New limited controlled type used to automate the initialization and
	finalization of the sockets implementation.
	(GNAT.Sockets.Initialize, Finalize): Make these no-ops

2009-04-08  Vincent Celier  <celier@adacore.com>

	* prj-attr.adb: New read-only project-level attribute Project_Dir

	* prj-proc.adb (Add_Attributes): New parameter Project_Dir, value of
	read-only attribute of the same name.
	(Process_Declarative_Items): Call Add_Attributes with Project_Dir
	(Recursive_Process): Ditto

	* snames.adb: Add new standard name Project_Dir

	* snames.ads: Add new standard name Project_Dir

2009-04-08  Thomas Quinot  <quinot@adacore.com>

	* checks.adb: Minor reformatting

2009-04-08  Vincent Celier  <celier@adacore.com>

	* vms_data.ads: Add documentation for new style keyword
	OVERRIDING_INDICATORS

2009-04-08  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb (Check_Completion.Post_Error): Post error on spec if the
	spec is in the current unit.

2009-04-08  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Is_Protected_Self_Reference): Add guard to check for
	presence of entity.

	* usage.adb, gnat_ugn.texi: add info on -gnatyO: overriding indicators

2009-04-08  Vincent Celier  <celier@adacore.com>

	* vms_data.ads: Add VMS equivalent for -gnatyO (OVERRIDING_INDICATORS)

2009-04-08  Thomas Quinot  <quinot@adacore.com>

	* checks.ads: Minor reformatting

2009-04-08  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Update documentation of pragma Obsolescent
	
	* sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow identifiers to
	be omitted, and allow Entity parameter to be omitted.

2009-04-08  Thomas Quinot  <quinot@adacore.com>

	* exp_util.adb: Minor comment fix

2009-04-08  Robert Dewar  <dewar@adacore.com>

	* g-socket.ads: Fix bad syntax in pragma Obsolescent

	* par-ch2.adb (Scan_Pragma_Argument_Association): Check for error of
	argument with no identifier following one that has an identifier. Was
	missed in some cases.

	* sem_prag.adb (Analyze_Pragma, case Check_Policy): Allow Policy
	identifier.
	(Analyze_Pragma, case Obsolescent): Allow Message, Version identifiers

	* snames.adb: Add Name_Policy

	* snames.ads: Add Name_Policy

2009-04-08  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Minor reformatting

	* par-ch2.adb: Minor reformatting

2009-04-08  Robert Dewar  <dewar@adacore.com>

	* exp_attr.adb, sem_attr.adb, sem_util.adb: Code clean up.

2009-04-08  Robert Dewar  <dewar@adacore.com>

	* sem_cat.adb (Check_Categorization_Dependencies): Handle Preelaborate
	properly in the presence of Remote_Types or Remote_Call_Interface.

	* sem_util.adb: Add comment.

2009-04-08  Robert Dewar  <dewar@adacore.com>

	* ug_words: Add /ASSUME_VALID for -gnatB

	* vms_data.ads: Add /ASSUME_VALID for -gnatB

	* sem_cat.adb: Add clarifying commment

	* a-direio.ads (Bytes): Make sure value is non-zero

2009-04-08  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Is_Variable): If the prefix is an explicit dereference
	that does not come from source, check for a rewritten function call in
	prefixed notation before other forms of rewriting.

2009-04-08  Robert Dewar  <dewar@adacore.com>

	* Makefile.rtl: Remove s-strops and s-sopco? from the run time, since
	these are now obsolescent units used only for bootrapping with an
	older compiler.

2009-04-08  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Add documentation for pragma Thread_Local_Storage

	* sem_ch3.adb: Minor comment updates

2009-04-08  Ed Schonberg  <schonberg@adacore.com>

	* inline.adb (Back_End_Cannot_Inline): restrict warning to subprograms
	that come from source.

2009-04-08  Tristan Gingold  <gingold@adacore.com>

	* gcc-interface/gigi.h (enum attr_type): Add ATTR_THREAD_LOCAL_STORAGE.
	* gcc-interface/decl.c (prepend_attributes): New case
	Pragma_Thread_Local_Storage.
	* gcc-interface/utils.c (process_attributes): New case
	ATTR_THREAD_LOCAL_STORAGE.

2009-04-08  Ed Schonberg  <schonberg@adacore.com>

	* inline.adb (Back_End_Cannot_Inline): Do not mark a body as inlineable
	by the back-end if it contains a call to a subprogram without a
	previous spec that is declared in the same unit.

	* errout.ads: Update comments on uses of dirs

2009-04-08  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Expand_Concatenate): Make sure nodes are properly typed

2009-04-08  Tristan Gingold  <gingold@adacore.com>

	* sem_prag.adb: Restrict pragma Thread_Local_Storage to library level
	variables.
	Set Has_Gigi_Rep_Item flag to TLS variables (to ease gigi work).

2009-04-08  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb:
	(Add_Source): Add the mapping of the unit name to source file name in
	the Unit_Sources_HT hash table, if the unit name is not null.

	* prj.adb (Reset): Reset hash table Tree.Unit_Sources_HT

	* prj.ads (Unit_Sources_Htable): New hash table instantiation
	(Project_Tree_Data): New component Unit_Sources_HT

2009-04-08  Thomas Quinot  <quinot@adacore.com>

	* sem_ch8.adb: Minor reformatting.
	Minor code reorganization.

2009-04-08  Robert Dewar  <dewar@adacore.com>

	* snames.h, einfo.adb, einfo.ads, sem_prag.adb, snames.adb,
	snames.ads, freeze.adb, par-prag.adb: Add implementation of
	pragma Thread_Local_Storage, setting new flag
	Has_Pragma_Thread_Local_Storage in corresponding entities.

2009-04-08  Emmanuel Briot  <briot@adacore.com>

	* prj.ads: Update comment on switches file

	* prj-nmsc.adb: Code clean up. Use renaming clauses.

2009-04-08  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Expand_Concatenate): Further fixes to bounds handling

2009-04-08  Thomas Quinot  <quinot@adacore.com>

	* ali-util.adb: Minor comment fix

2009-04-08  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Analyze_Use_Type): Improve error message when clause
	appears in a context clause, and the enclosing package is mentioned in
	a limited_with_clause.
	(Use_One_Type): Reject clause if type is still incomplete.

2009-04-08  Emmanuel Briot  <briot@adacore.com>

	* prj-nmsc.adb (Check_File, Process_Sources_In_Multi_Language_Mode):
	avoid copies of Source_Data variables when possible, since these
	involve calls to memcpy() which are done too many times.

2009-04-08  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Expand_Concatenate): Clean up code

2009-04-07  Thomas Quinot  <quinot@adacore.com>

	* exp_ch4.adb (Expand_Concatenate): Add missing conversion to index
	type for the case of concatenating a constrained array indexed by an
	enumeration type.

2009-04-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Check_Conformance): when checking conformance of an
	operation that overrides an abstract operation inherited from an
	interface, return False if only one of the controlling formals is an
	access parameter.

2009-04-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Analyze_Object_Renaming): additional error messages
	mandated by AI05-105.

2009-04-07  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Get_Mains): Warn if a main is an empty string

2009-04-07  Thomas Quinot  <quinot@adacore.com>

	* usage.adb: Minor fix in usage message.

	* sem_ch10.adb (Remove_Homonyms): Fix subtype of formal in body to
	match declaration; the correct subtype is Node_Id, not Entity_Id,
	because the expected node kind is an identifier, not a defining
	identifier.

	* switch-c.adb: Minor reformatting.

	* uintp.adb: Minor reformatting.

2009-04-07  Robert Dewar  <dewar@adacore.com>

	* exp_ch13.adb: Minor reformatting

2009-04-07  Robert Dewar  <dewar@adacore.com>

	* sem_warn.adb (Check_Infinite_Loop_Warning.Test_Ref): Add defence
	against missing parent.

2009-04-07  Thomas Quinot  <quinot@adacore.com>

	* xoscons.adb: Minor reformatting

2009-04-07  Robert Dewar  <dewar@adacore.com>

	* rtsfind.ads: Remove obsolete string concatenation entries

2009-04-07  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Expand_Concatenate): Redo handling of bounds

2009-04-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Check_Body_Required): Handle properly imported
	subprograms.

2009-04-07  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case
	Attribute_Address): When Init_Or_Norm_Scalars is True and the object
	is of a scalar or string type then suppress the setting of the
	expression to Empty.

	* freeze.adb (Warn_Overlay): Also emit the warnings about default
	initialization for the cases of scalar and string objects when
	Init_Or_Norm_Scalars is True.

2009-04-07  Bob Duff  <duff@adacore.com>

	* s-secsta.ads, g-pehage.ads, s-fileio.ads: Minor comment fixes

2009-04-07  Bob Duff  <duff@adacore.com>

	* gnat_rm.texi, s-fileio.adb (System.File_IO.Open): New feature: A
	Form parameter of Text_Translation=No allows binary mode for Text_IO
	files.

	* gnat_rm.texi: Document Form parameter Text_Translation=xxx.

2009-04-07  Javier Miranda  <miranda@adacore.com>

	* exp_ch5.adb (Expand_Assign_Array): Add implicit conversion when
	processing the bounds for bit packed arrays or VM target machines.

2009-04-07  Thomas Quinot  <quinot@adacore.com>

	* g-sothco.ads (Int_Access): Remove extraneous access type (use
	anonymous access instead).
	(Get_Socket_From_Set): Fix incorrectly reverted formals
	Last and Socket to match the underlying C routine.

	* g-socket.adb, g-socket.ads
	(Get): Use named parameter associations instead of positional ones in
	call go Get_Socket_From_Set, since this routine has two formals of the
	same type.
	(Image): New procedure.

	* g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
	g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi.adb, g-socthi.ads:
	(C_Ioctl, Syscall_Ioctl): use "access C.int" instead of "Int_Access"
	for type of Arg formal.

	* sem_warn.adb: Minor reformatting

2009-04-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Has_Tagged_Component): Fix typo in loop that iterates
	over record components.

2009-04-07  Nicolas Roche  <roche@adacore.com>

	* gsocket.h:
	Don't include resolvLib.h on VxWorks 6 (kernel and rtp). This library
	has disappeared between VxWorks 6.4 and VxWorks 6.5
	In RTP mode use time.h instead of times.h

2009-04-07  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Expand_N_Op_Concat): Improve lower bound handling

2009-04-07  Kevin Pouget  <pouget@adacore.com>

	* exp_dist.adb: Modify Build_From_Any_Fonction procedure to correct
	expanded code for constrained types.

2009-04-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Overloaded_Selected_Component): implement
	AI05-105: in an object renaming declaration, anonymousness is a name
	resolution rule.

	* sem_ch8.adb (Analyze_Object_Renaming): Ditto.

2009-04-07  Arnaud Charlet  <charlet@adacore.com>

	* g-comlin.adb (Expansion): Fix old regression: also return directory
	names when matching.

2009-04-07  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb:
	(Expand_N_Op_Concat): Call Expand_Concatenate for all cases
	(Expand_Concatenate): New name for Expand_Concatenate_String which has
	been rewritten to handle all types.
	(Expand_Concatenate_Other): Remove

2009-04-07  Ed Schonberg  <schonberg@adacore.com>

	* lib-xref.adb (Generate_Reference): A default subprogram in an
	instance appears within the tree for the instance, but generates an
	implicit reference in the ALI.

2009-04-07  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Build_Derived_Record_Type): When processing a tagged
	derived type that has discriminants, propagate the list of interfaces
	to the corresponding new base type. In addition, propagate also
	attribute Limited_Present (found working in this patch).

2009-04-07  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb: Rewrite concatenation expansion.

2009-04-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Restore_Scope_Stack): First_Private_Entity is only
	relevant to packages.

2009-04-07  Robert Dewar  <dewar@adacore.com>

	* sem_attr.adb: Minor reformatting

	* sem_ch6.adb: Minor reformatting

2009-04-07  Tristan Gingold  <gingold@adacore.com>

	* socket.c: Add more protections against S_resolvLib_ macros.

2009-04-07  Thomas Quinot  <quinot@adacore.com>

	* sem_attr.adb: Minor reformatting

2009-04-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (New_Overloaded_Entity): New predicate
	Is_Overriding_Alias to handle properly types that inherit two homonym
	operations that have distinct dispatch table entries.

2009-04-07  Emmanuel Briot  <briot@adacore.com>

	* s-regexp.adb (Create_Mapping): Ignore excaped open parenthesis when
	looking for the end of a parenthesis group

2009-04-07  Tristan Gingold  <gingold@adacore.com>

	* gsocket.h Don't #include resolvLib.h if __RTP__ is defined.

	* socket.c Don't use resolvLib_ macros if not defined.

2009-04-07  Robert Dewar  <dewar@adacore.com>

	* g-socket.adb: Minor reformatting.

	* g-socthi-mingw.adb: Minor reformatting

	* g-sothco.ads: Minor reformatting

	* exp_ch4.adb:
	(Expand_Concatenate_String): Complete rewrite to generate efficient code
	inline instead of relying on external library routines.

	* s-strops.ads, s-sopco5.ads, s-sopco5.adb, s-sopco4.ads, s-sopco4.adb,
	s-sopco3.ads, s-sopco3.adb, s-strops.adb: Note that this unit is now
	obsolescent

2009-04-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb:
	(Eval_Attribute): for attributes of array objects that are not strings,
	attributes are not static if nominal subtype of object is unconstrained.

2009-04-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (New_Overloaded_Entity): If two implicit homonym
	operations for a type T in an instance do not override each other,
	when T is derived from a formal private type, the corresponding
	operations inherited by a type derived from T outside
	of the instance do not override each other either.

2009-04-07  Robert Dewar  <dewar@adacore.com>

	(Osint.Fail): Change calling sequence to have one string arg
	(Make.Make_Failed): Same change
	All callers are adjusted to use concatenation

2009-04-07  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb: Fix documentation typo

2009-04-07  Robert Dewar  <dewar@adacore.com>

	* tbuild.ads: Minor reformatting

2009-04-07  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Make_DT): Avoid the generation of the OSD_Table
	when compiling under ZFP runtime.

2009-04-07  Robert Dewar  <dewar@adacore.com>

	* g-comlin.adb: Minor reformatting

2009-04-07  Thomas Quinot  <quinot@adacore.com>

	* socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
	g-socthi-vxworks.ads, g-socthi-mingw.adb, g-socthi-mingw.ads,
	g-socthi.adb, g-socthi.ads, g-socket.adb, g-socket.ads, g-sothco.ads:
	Remove dynamic allocation of Fd_Set in Socket_Set_Type objects.

2009-04-07  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Document -gnatDnn/-gnatGnn

	* opt.ads (Sprint_Line_Limit): New parameter
	
	* sprint.adb: Usa Sprint_Line_Limit instead of Line_Limit throughout
	
	* switch-c.adb: Recognize -gnatDnnn and -gnatGnnn switches
	
	* usage.adb: Output information for -gnatGnn -gnatDnn

2009-04-07  Robert Dewar  <dewar@adacore.com>

	* make.adb: Minor reformatting

2009-04-07  Robert Dewar  <dewar@adacore.com>

	* mlib-tgt-specific-vms-alpha.adb: Minor reformatting

2009-04-07  Robert Dewar  <dewar@adacore.com>

	* mlib-tgt-specific-vms-ia64.adb: Minor reformatting

2009-04-07  Robert Dewar  <dewar@adacore.com>

	* checks.adb:
	Remove Assume_Valid parameter from In_Subrange_Of calls
	
	* sem_eval.adb:
	(Is_Subrange_Of): Remove Assume_Valid parameter, not needed
	(Is_In_Range): Remove incorrect use of Assume_Valid
	(Is_Out_Of_Range): Remove incorrect use of Assume_Valid
	
	* sem_eval.ads:
	(Is_Subrange_Of): Remove Assume_Valid parameter, not needed
	(Is_In_Range): Documentation cleanup
	(Is_Out_Of_Range): Documentation cleanup

	* gnat_rm.texi:
	Add documentation for Assume_No_Invalid_Values pragma

	* sem_ch12.adb: Minor reformatting

	* sem_ch6.adb: (Check_Conformance): Avoid cascaded errors

	* sem_prag.adb: Improve error message.

	* gnatchop.adb, osint.ads, sinput.adb, sinput.ads, styleg.adb:
	LF/CR no longer recognized as line terminator

	* switch.ads: Minor documentation improvement

	* vms_data.ads: Minor reformatting

2009-04-07  Robert Dewar  <dewar@adacore.com>

	* checks.adb (Determine_Range): Add Assume_Valid parameter
	
	* checks.ads (Determine_Range): Add Assume_Valid parameter
	
	* errout.adb (Error_Msg_NEL): Use Suppress_Loop_Warnings rather than
	 Is_Null_Loop to suppress warnings in a loop body.
	
	* exp_ch4.adb:
	(Rewrite_Comparison): Major rewrite to accomodate invalid values
	
	* exp_ch5.adb:
	(Expand_N_Loop_Statement): Delete loop known not to execute
	
	* opt.ads:
	(Assume_No_Invalid_Values): Now set to False, and as documented, this
	 fully enables the proper handling of invalid values.
	
	* sem_attr.adb:
	New calling sequence for Is_In_Range
	
	* sem_ch5.adb:
	(Analyze_Iteration_Scheme): Accomodate possible invalid values
	 in determining if a loop range is null.
	
	* sem_eval.adb:
	(Is_In_Range): Add Assume_Valid parameter
	(Is_Out_Of_Range): Add Assume_Valid_Parameter
	(Compile_Time_Compare): Major rewrite to accomodate invalid values and
	 also to do more accurate and complete range analysis, catching more
	 cases.
	
	* sem_eval.ads:
	(Is_In_Range): Add Assume_Valid parameter
	(Is_Out_Of_Range): Add Assume_Valid_Parameter
	
	* sem_util.adb:
	New calling sequence for Is_In_Range
	
	* sinfo.adb:
	(Suppress_Loop_Warnings): New flag
	
	* sinfo.ads:
	(Is_Null_Loop): Update documentation
	(Suppress_Loop_Warnings): New flag
	
	* gnat_ugn.texi: Document -gnatB switch

2009-04-07  Arnaud Charlet  <charlet@adacore.com>

	* gnatvsn.ads: Bump version number.

2009-04-07  Thomas Quinot  <quinot@adacore.com>

	* exp_ch3.adb: Minor rewording (comments)

2009-04-07  Robert Dewar  <dewar@adacore.com>

	* exp_disp.adb: Minor reformatting

2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Test the
	underlying type.
	* gcc-interface/trans.c (lvalue_required_p): Likewise.

2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Attribute_to_gnu) <Max_Size_In_Storage_Elmts>:
	Do not convert the result.  Remove obsolete comment.

2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (establish_gnat_vms_condition_handler): Clear
	DECL_CONTEXT.
	(Subprogram_Body_to_gnu): Fix pasto.

2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (standard_datatypes): Remove ADT_void_type_decl.
	(void_type_decl_node): Remove.
	(init_gigi_decls): Likewise.
	(gnat_install_builtins): Declare.
	(record_builtin_type): Likewise.
	(create_type_stub_decl): Likewise.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Void>: Use void_type.
	(gnat_to_gnu_entity) <E_Array_Type>: Make fat and thin pointer types
	artificial.
	<E_Array_Subtype>: Use the index types, not only their name, in the
	record giving the names of the bounds, if any.
	For a packed array type, make it artificial only if the base type
	was artificial as well.  Remove redundant statement.
	(gnat_to_gnu_entity) <E_Incomplete_Type>: Do not create TYPE_DECL for
	dummy types.
	Use create_type_stub_decl to build the TYPE_STUB_DECL of types.
	(rest_of_type_decl_compilation_no_defer): Likewise.
	* gcc-interface/misc.c (gnat_printable_name): Add missing guard.
	* gcc-interface/utils.c (make_dummy_type): Always create TYPE_STUB_DECL
	and use create_type_stub_decl to build it.
	(gnat_pushdecl): Rewrite condition.
	(gnat_install_builtins): Remove bogus declaration.
	(record_builtin_type): New function.
	(finish_record_type): Use create_type_stub_decl to build TYPE_STUB_DECL
	of types.
	(create_type_stub_decl): New function.
	(create_type_decl): Assert that the type is not dummy.  If the type
	hasn't been named yet, equate the TYPE_STUB_DECL to the created node.
	(build_vms_descriptor32): Do not create TYPE_DECL for the descriptor.
	(build_vms_descriptor): Likewise.
	(init_gigi_decls): Delete and move bulk of code to...
	* gcc-interface/trans.c (gigi): ...here.  Use record_builtin_type.
	(emit_range_check): Add gnat_node parameter.
	(emit_index_check): Likewise.
	(emit_check): Likewise.
	(build_unary_op_trapv): Likewise.
	(build_binary_op_trapv): Likewise.
	(convert_with_check): Likewise.
	(Attribute_to_gnu): Adjust calls for above changes.
	(call_to_gnu): Likewise.
	(gnat_to_gnu): Likewise.
	(assoc_to_constructor): Likewise.
	(pos_to_constructor): Likewise.
	(Sloc_to_locus): Set BUILTINS_LOCATION for Standard_Location nodes.
	(process_type): Do not create TYPE_DECL for dummy types.

2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity): Reorder local variables.
	* gcc-interface/trans.c: Fix formatting throughout.  Fix comments.
	* gcc-interface/utils.c: Fix comments.

2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (compile_time_known_address_p): Rewrite and
	move around.
	(gnat_to_gnu_type): Move around.
	(get_unpadded_type): Likewise.
	* gcc-interface/utils.c (update_pointer_to): Use synthetic macro.
	Tidy comments.

2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (check_for_eliminated_entity): New function.
	(Attribute_to_gnu): Invoke it for Access- and Address-like attributes.
	(call_to_gnu): Invoke it instead of manually checking.

2009-04-04  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (finish_record_type): Force structural equality
	checks if the record type is discriminated.

2009-03-31  Eric Botcazou  <ebotcazou@adacore.com>

	* system-linux-alpha.ads (Functions_Return_By_DSP): Remove.
	* system-linux-mips.ads (Functions_Return_By_DSP): Likewise.
	* system-linux-mipsel.ads (Functions_Return_By_DSP): Likewise.
	* system-linux-s390.ads (Functions_Return_By_DSP): Likewise.
	* system-linux-s390x.ads (Functions_Return_By_DSP): Likewise.
	* system-linux-sparc.ads (Functions_Return_By_DSP): Likewise.
	* system-linux-sparcv9.ads (Functions_Return_By_DSP): Likewise.

2009-03-30  Paolo Bonzini  <bonzini@gnu.org>

	* gcc-interface/decl.c (maybe_pad_type): Use TREE_OVERFLOW instead
	of TREE_CONSTANT_OVERFLOW.

2009-03-30  Joseph Myers  <joseph@codesourcery.com>

	PR rtl-optimization/323
	* gcc-interface/misc.c (gnat_post_options): Set
	flag_excess_precision_cmdline.  Give an error for
	-fexcess-precision=standard for processors where the option is
	significant.

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR c/39323
	* gcc-interface/utils.c (create_field_decl): Use "unsigned int"
	on bit_align.

2009-03-11  Olivier Hainque  <hainque@adacore.com>

	* gcc-interface/trans.c (gnat_to_gnu) <case N_Slice>: In range
	checks processing, remove unintended TREE_TYPE walk on index type.

2009-03-01  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/39264
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do no
	call make_packable_type on fat pointer types.
	<E_Array_Subtype>: Likewise.
	<E_Record_Subtype>: Call make_packable_type on all record types
	except for fat pointer types.
	(make_packable_type): Likewise.
	(gnat_to_gnu_field): Likewise.

2009-02-28  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/Makefile.in (cygwin/mingw): Revert accidental
	EH_MECHANISM change made on 2007-12-06.

2009-02-26  Andreas Schwab  <schwab@suse.de>

	PR ada/39172
	* Makefile.in (srcdir): Set to @top_srcdir@ instead of @srcdir@.
	* gcc-interface/Makefile.in: Change all uses of $(srcdir),
	$(fsrcdir) and $(fsrcpfx) to add ada subdir.
	(AWK): Substitute.
	(target_cpu_default): Substitute.

2009-02-25  Laurent GUERBY  <laurent@guerby.net>

	PR ada/39221
	* a-teioed.adb (Expand): Fix Result overflow.

2009-02-25  Laurent GUERBY  <laurent@guerby.net>

	* gcc-interface/Makefile.in: Fix multilib handling for
	sparc64-linux.

2009-02-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* s-oscons-tmplt.c [__osf__ && !_SS_MAXSIZE]: Undef AF_UNIX6.

2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>

	* gcc-interface/misc.c (gnat_post_options): Turn off warn_psabi.

2009-02-16  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/deftarg.c: Remove.

2009-02-10  Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (enum alias_set_op): New enumeration.
	(copy_alias_set): Rename into...
	(relate_alias_sets): ...this.  Add third parameter OP.  Retrieve the
	underlying array of unconstrained arrays for the new type as well.
	If the old and new alias sets don't conflict, make one a subset of
	the other as per the OP parameter.
	(gnat_to_gnu_entity): Adjust calls to copy_alias_set.
	<E_Record_Type>: Do not copy the alias set for derived types.
	For all types, make the alias set of derived types a superset of
	that of their parent type.
	(make_aligning_type): Adjust calls to copy_alias_set.
	(make_packable_type): Likewise.
	* gcc-interface/trans.c (gnat_to_gnu)<N_Validate_Unchecked_Conversion>:
	Check for alias set conflict instead of strict equality to issue the
	warning.

2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
	Set TYPE_NONALIASED_COMPONENT on the array type only if appropriate.
	(copy_alias_set): Assert that arrays have the same aliasing settings.
	(substitute_in_type) <ARRAY_TYPE>: Copy TYPE_NONALIASED_COMPONENT.

2009-02-08  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
	Set TYPE_NONALIASED_COMPONENT on the array type.

2009-01-31  Laurent GUERBY  <laurent@guerby.net>

	* gcc-interface/Makefile.in: Fix mipsel linux handling.

2009-01-16  Jakub Jelinek  <jakub@redhat.com>

	* gcc-interface/Makefile.in: Fix multilib handling for
	powerpc64-linux.

2009-01-12  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Really strip
	only useless conversions around renamed objects.

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

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Put
	the _Tag field before any discriminants in the field list.
	(components_to_record): Remove obsolete comment.



Copyright (C) 2009 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
