2001-12-17  Ed Schonberg <schonber@gnat.com>

	* sem_res.adb (Resolve_Selected_Component): do not generate a 
	discriminant check if the selected component is a component of 
	the argument of an initialization procedure.

	* trans.c (tree_transform, case of arithmetic operators): If result 
	type is private, the gnu_type is the base type of the full view, 
	given that the full view itself may be a subtype.
	
2001-12-17  Robert Dewar <dewar@gnat.com>

	* sem_res.adb: Minor reformatting
	
	* trans.c (tree_transform, case N_Real_Literal): Add missing third 
	parameter in call to Machine (unknown horrible effects from this 
	omission).
	
	* urealp.h: Add definition of Round_Even for call to Machine
	Add third parameter for Machine
	
2001-12-17  Ed Schonberg <schonber@gnat.com>

	* sem_warn.adb (Check_One_Unit): Suppress warnings completely on 
	predefined units in No_Run_Time mode.
	
2001-12-17  Richard Kenner <kenner@gnat.com>

	* misc.c (insn-codes.h): Now include.
	
2001-12-17  Olivier Hainque <hainque@gnat.com>

	* a-except.adb: Preparation work for future integration of the GCC 3 
	exception handling mechanism
	(Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
	to factorize previous code sequences and make them externally callable,
	e.g. for the Ada personality routine when the GCC 3 mechanism is used.
	(Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
	Use the new notification routines.
	
2001-12-17  Emmanuel Briot <briot@gnat.com>

	* prj-tree.ads (First_Choice_Of): Document the when others case
	
2001-12-17  Arnaud Charlet <charlet@gnat.com>

	* bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in 
	HI-E mode, in order to support Ravenscar profile properly.
	
	* cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E 
	mode on 32 bits targets.
	
2001-12-17  Vincent Celier <celier@gnat.com>

	* fmap.adb: Initial version.
	
	* fmap.ads: Initial version.
	
	* fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
	If search is successfully done, add to mapping.
	
	* frontend.adb: Initialize the mapping if a -gnatem switch was used.
	
	* make.adb:
	(Gnatmake): Add new local variable Mapping_File_Name.
	 Create mapping file when using project file(s).
	 Delete mapping file before exiting.
	
	* opt.ads (Mapping_File_Name): New variable
	
	* osint.adb (Find_File): Use path name found in mapping, if any.
	
	* prj-env.adb (Create_Mapping_File): New procedure
	
	* prj-env.ads (Create_Mapping_File): New procedure.
	
	* switch.adb (Scan_Front_End_Switches): Add processing for -gnatem 
	(Mapping_File)
	
	* usage.adb: Add entry for new switch -gnatem.
	
	* Makefile.in: Add dependencies for fmap.o.
	
2001-12-17  Ed Schonberg <schonber@gnat.com>

	* sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit 
	is a package instantiation rewritten as a package body.
	(Install_Withed_Unit): Undo previous change, now redundant.
	
2001-12-17  Gary Dismukes <dismukes@gnat.com>

	* layout.adb:
	(Compute_Length): Move conversion to Unsigned to callers.
	(Get_Max_Size): Convert Len expression to Unsigned after calls to
	Compute_Length and Determine_Range.
	(Layout_Array_Type): Convert Len expression to Unsigned after calls to
	Compute_Length and Determine_Range.
	Above changes fix problem with length computation for supernull arrays
	where Max (Len, 0) wasn't getting applied due to the Unsigned 
	conversion used by Compute_Length.
	
2001-12-17  Arnaud Charlet <charlet@gnat.com>

	* rtsfind.ads:
	(OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
	 System.Secondary_Stack.
	(OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
	 in HI-E mode.
	Remove unused entity RE_Exception_Data.
	
	* rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
	
	* rident.ads (No_Secondary_Stack): New restriction.

2001-12-17  Joel Brobecker <brobecke@gnat.com>

	* gnat_rm.texi: Fix minor typos. Found while reading the section 
	regarding "Bit_Order Clauses" that was sent to a customer.
	Very interesting documentation!
	
2001-12-17  Robert Dewar <dewar@gnat.com>

	* sem_case.adb (Choice_Image): Avoid creating improper character 
	literal names by using the routine Set_Character_Literal_Name. This 
	fixes bombs in certain error message cases.
	
2001-12-17  Arnaud Charlet <charlet@gnat.com>

	* a-reatim.adb: Minor reformatting.
	
2001-12-17  Ed Schonberg <schonber@gnat.com>

	* sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the 
	case where the formal is an extension of another formal in the current 
	unit or in a parent generic unit.
	
2001-12-17  Arnaud Charlet <charlet@gnat.com>

	* s-tposen.adb: Update comments.  Minor reformatting. 
	Minor code clean up.
	
	* s-tarest.adb: Update comments.  Minor code reorganization.
	
2001-12-17  Gary Dismukes <dismukes@gnat.com>

	* exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag 
	when Java_VM.
	
2001-12-17  Robert Dewar <dewar@gnat.com>

	* exp_attr.adb: Minor reformatting
	
2001-12-17  Ed Schonberg <schonber@gnat.com>

	* sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle 
	derivations nested within a child unit: verify that the parent
	type is declared in an outer scope.
	
2001-12-17  Robert Dewar <dewar@gnat.com>

	* sem_ch12.adb: Minor reformatting
	
2001-12-17  Ed Schonberg <schonber@gnat.com>

	* sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post 
	warning if current unit is a predefined one, from which bodies may 
	have been deleted.
	
2001-12-17  Robert Dewar <dewar@gnat.com>

	* eval_fat.ads: Add comment that Round_Even is referenced in Ada code
	Fix header format. Add 2001 to copyright date.
	
	* exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference, 
	which caused CE during compilation if checks were enabled.

2001-12-17  Vincent Celier <celier@gnat.com>

	* make.adb:
	(Switches_Of): New function
	(Test_If_Relative_Path): New procedure
	(Add_Switches): Use new function Switches_Of
	(Collect_Arguments_And_Compile): Use new function Switches_Of.
	When using a project file, test if there are any relative
	search path. Fail if there are any.
	(Gnatmake): Only add switches for the primary directory when not using 
	a project file. When using a project file, change directory to the 
	object directory of the main project file. When using a project file, 
	test if there are any relative search path. Fail if there are any. 
	When using a project file, fail if specified executable is relative 
	path with directory information, and prepend executable, if not 
	specified as an absolute path, with the exec directory.  Make sure 
	that only one -o switch is transmitted to the linker.
	
	* prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
	
	* prj-nmsc.adb:
	(Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
	when using a non standard naming scheme.
	(Check_Ada_Naming_Scheme): Make sure that error messages
	do not raise exceptions.
	(Is_Illegal_Append): Return True if there is no dot in the suffix.
	(Language_Independent_Check): Check the exec directory.
	
	* prj.adb (Project_Empty): Add new component Exec_Directory
	
	* prj.ads:
	(Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
	(Project_Data): Add component Exec_Directory
	
	* snames.adb: Updated to match snames.ads revision 1.215
	
	* snames.ads: Added Exec_Dir
	
2001-12-17  Robert Dewar <dewar@gnat.com>

	* make.adb: Minor reformatting
	
	* prj-nmsc.adb: Minor reformatting
	
	* snames.adb: Updated to match snames.ads
	
	* snames.ads: Alphebetize entries for project file

2001-12-17  Ed Schonberg <schonber@gnat.com>

	* trans.c (process_freeze_entity): Do nothing if the entity is a 
	subprogram that was already elaborated.
	
2001-12-17  Richard Kenner <kenner@gnat.com>
	
	* decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment 
	and Esize if object is referenced via pointer.

2001-12-17  Ed Schonberg <schonber@gnat.com>

	* sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant 
	is discrete before analyzing choices.
	
2001-12-17  Joel Brobecker <brobecke@gnat.com>

	* bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string 
	containing the name of the Ada Main Program. This string is mainly 
	intended for the debugger.
	(Gen_Output_File_C): Do the equivalent change when generating a C file.
	
2001-12-17  Robert Dewar <dewar@gnat.com>

	* ali.adb: Set new Dummy_Entry field in dependency entry
	
	* ali.ads: Add Dummy_Entry field to source dependency table
	
	* bcheck.adb (Check_Consistency): Ignore dummy D lines
	
	* lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
	
	* lib-writ.ads: Document dummy D lines for missing files.
	
	* types.ads: (Dummy_Time_Stamp): New value for non-existant files

2001-12-17  Robert Dewar <dewar@gnat.com>

	* ali.adb: Type reference does not reset current file.
	
	* ali.adb: Recognize and scan renaming reference
	
	* ali.ads: Add spec for storing renaming references.
	
	* lib-xref.ads: Add documentation for handling of renaming references
	
	* lib-xref.adb: Implement output of renaming reference.
	
	* checks.adb:
	(Determine_Range): Document local variables
	(Determine_Range): Make sure Hbound is initialized. It looks as though
	 there could be a real problem here with an uninitialized reference
	 to Hbound, but no actual example of failure has been found.
	
2001-12-17  Laurent Pautet <pautet@gnat.com>

	* g-socket.ads:
	Fix comment of Shutdown_Socket and Close_Socket. These functions
	should not fail silently because if they are called twice, this
	probably means that there is a race condition in the user program.
	Anyway, this behaviour is consistent with the rest of this unit.
	When an error occurs, an exception is raised with the error message
	as exception message.

2001-12-17  Robert Dewar <dewar@gnat.com>

	* frontend.adb: Move call to Check_Unused_Withs from Frontend, so 
	that it happens before modification of Sloc values for -gnatD.
	
	* gnat1drv.adb: Move call to Check_Unused_Withs to Frontend, 
	so that it happens before modification of Sloc values for -gnatD.
	
	* switch.adb: Minor reformatting

2001-12-15  Richard Henderson  <rth@redhat.com>

	* sem_ch7.adb: Wrap comment.

2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>

	* 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
	5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
	5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
	5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
	5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
	7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
	a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
	a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
	cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
	exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
	exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
	g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
	gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
	make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
	par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
	repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
	s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
	s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
	s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
	s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
	sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
	sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
	sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
	sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
	spelling errors.

2001-12-14  Vincent Celier <celier@gnat.com>

	* osint.adb(Create_Debug_File): When an object file is specified, 
	put the .dg file in the same directory as the object file.
	
2001-12-14  Robert Dewar <dewar@gnat.com>

	* osint.adb: Minor reformatting
	
	* lib-xref.adb (Output_Instantiation): New procedure to generate 
	instantiation references.
	
	* lib-xref.ads: Add documentation of handling of generic references.
	
	* ali.adb (Read_Instantiation_Ref): New procedure to read 
	instantiation references
	
	* ali.ads: Add spec for storing instantiation references
	
	* bindusg.adb: Minor reformatting
	
	* switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
	
	* usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
	
	* gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
	
	* csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
	
	* csets.ads:
	Fix header format
	Add 2001 to copyright date
	Add entry for Latin-5 (Cyrillic ISO-8859-5)
	
2001-12-14  Matt Gingell <gingell@gnat.com>

	* adaint.c: mktemp is a macro on Lynx and can not be used as an 
	expression.
	
2001-12-14  Richard Kenner <kenner@gnat.com>

	* misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR 
	if operand is CONSTRUCTOR.
	
2001-12-14  Ed Schonberg <schonber@gnat.com>

	* trans.c (tree_transform, case N_Assignment_Statement): Set lineno 
	before emiting check on right-hand side, so that exception information 
	is correct.

2001-12-14  Richard Kenner <kenner@gnat.com>
	
	* utils.c (create_var_decl): Throw away initializing expression 
	if just annotating types and non-constant.
	
2001-12-14  Vincent Celier <celier@gnat.com>

	* prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
	Default_Ada_...
	
	* prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix): 
	Remove functions.
	(Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
	
	* prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix): 
	Remove functions.
	(Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.

2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>

	* ChangeLog: Remove piece of diff output.

2001-12-14  Geert Bosch <bosch@gnat.com>

	* config-lang.in: Update copyright notice

	* layout.adb: Remove commented out code.

	* mdllfile.ads: Update copyright notice. Fix header format.

	* sem_case.ads: Likewise.

	* sem_ch3.adb: Minor reformatting.

2001-12-12  Geert Bosch <bosch@gnat.com>

	* freeze.ads: Update copyright date.

	* g-comlin.ads: Minor reformatting.

	* gnat-style.texi: Fix typo.

2001-12-12  Geert Bosch <bosch@gnat.com>

	*  einfo.h: Regenerate.

2001-12-12  Ed Schonberg <schonber@gnat.com>

	* sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names 
	on known node types, rather than untyped fields. Further cleanups.
	
2001-12-12  Robert Dewar <dewar@gnat.com>

	* sem_ch12.adb:
	(Save_Entity_Descendant): Minor comment update.
	(Copy_Generic_Node): Deal with incorrect reference to Associated_Node
	 of an N_Attribute_Reference node. As per note below, this does not 
	eliminate need for Associated_Node in attribute ref nodes.
	(Associated_Node): Documentation explicitly mentions attribute 
	reference nodes, since this field is used in such nodes.
	
	* sem_ch12.adb (Associated_Node): Minor documentation cleanup.

2001-12-12  Robert Dewar <dewar@gnat.com>

	* s-stalib.adb: Add more comments on with statements being needed
	
	* par-ch12.adb: Minor reformatting
	
	* prj-dect.ads: Fix copyright header
	
	* s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both 
	inputs fit in 32 bits, but the result still overflows.
	
	* s-fatgen.ads: Minor comment improvement
	
2001-12-12  Ed Schonberg <schonber@gnat.com>

	* sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a 
	formal derived type, look for an inherited component from the full 
	view of the parent, if any.
	
2001-12-12  Robert Dewar <dewar@gnat.com>

	* checks.ads (Apply_Alignment_Check): New procedure.
	
	* exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to 
	ensure that the alignment of objects with address clauses is 
	appropriate, and raise PE if not.

	* exp_util.ads (Must_Be_Aligned): Removed, replaced by 
	Exp_Pakd.Known_Aligned_Enough
	
	* mdllfile.ads: Minor reformatting

	* mlib-fil.ads: Minor reformatting
	
2001-12-12  Ed Schonberg <schonber@gnat.com>

	* exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous 
	fix to any component reference if enclosing record has non-standard 
	representation.
	
2001-12-12  Vincent Celier <celier@gnat.com>

	* g-dirope.ads (Find, Wildcard_Iterator): Moved to child package 
	Iteration
	
2001-12-12  Ed Schonberg <schonber@gnat.com>

	* freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in 
	sem_attr.
	
2001-12-12  Robert Dewar <dewar@gnat.com>

	* impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
	
2001-12-12  Emmanuel Briot <briot@gnat.com>

	* g-regexp.adb: Remove all debug code, since it isn't required anymore,
	and it adds dependencies to system.io.
	
2001-12-12  Pascal Obry <obry@gnat.com>

	* g-dirope.adb (Expand_Path.Var): Correctly detect end of 
	variable name.

2001-12-11  Ed Schonberg <schonber@gnat.com>

	* sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
	that is the parent of other generics, the instance body replaces the 
	instance node.  Retrieve the instance of the spec, which is the one 
	that is visible in clients and within the body.

2001-12-11  Vincent Celier <celier@gnat.com>

	* gnatmain.adb: Initial version.
	
	* gnatmain.ads: Initial version.
	
	* prj-attr.adb (Initialisation_Data): Add package Gnatstub.
	
	* snames.adb: Updated to match snames.ads.
	
	* snames.ads: Added Gnatstub.
	
2001-12-11  Vincent Celier <celier@gnat.com>

	* prj-attr.adb (Initialization_Data): Change name from 
	Initialisation_Data.
	
2001-12-11  Emmanuel Briot <briot@gnat.com>

	* g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
	+ and * applied to backslashed expressions like \r.
	
2001-12-11  Vasiliy Fofanov <fofanov@gnat.com>

	* g-os_lib.ads: String_List type added, Argument_List type is now 
	subtype of String_List.
	
2001-12-11  Robert Dewar <dewar@gnat.com>

	* g-os_lib.ads: Change copyright to FSF
	Add comments for String_List type
	
2001-12-11  Vincent Celier <celier@gnat.com>

	* g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a 
	string to the buffer).

2001-12-11  Ed Schonberg <schonber@gnat.com>

	* freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
	sem_attr.
	
	* sem_attr.adb: Simplify previous fix for Address.
	(Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now, 
	to avoid anomalies where the bound of the type appears to raise 
	constraint error.

2001-12-11  Robert Dewar <dewar@gnat.com>

	* lib-xref.adb (Output_Refs): Make sure pointers are always properly 
	handled.
	
2001-12-11  Ed Schonberg <schonber@gnat.com>

	* sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a 
	renamed unit before checking for recursive instantiations.
	
2001-12-11  Emmanuel Briot <briot@gnat.com>

	* prj.ads: Add comments for some of the fields.

2001-12-11  Robert Dewar <dewar@gnat.com>

	* lib-xref.adb (Output_Refs): Don't output type references outside 
	the main unit if they are not otherwise referenced.
	
2001-12-11  Ed Schonberg <schonber@gnat.com>

	* sem_attr.adb (Analyze_attribute, case Address and Size): Simplify 
	code and diagnose additional illegal uses
	
	* sem_util.adb (Is_Object_Reference): An indexed component is an 
	object only if the prefix is.
	
2001-12-11  Vincent Celier <celier@gnat.com>

	* g-diopit.adb: Initial version.
	
	* g-diopit.ads: Initial version.
	
	* g-dirope.adb:
	(Expand_Path): Avoid use of Unbounded_String
	(Find, Wildcard_Iterator): Moved to child package Iteration
	
	* Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
	
2001-12-11  Robert Dewar <dewar@gnat.com>

	* sem_attr.adb: Minor reformatting

2001-12-11  Ed Schonberg <schonber@gnat.com>

	* sem_ch3.adb: Clarify some ???.
	
2001-12-11  Robert Dewar <dewar@gnat.com>

	* exp_util.adb (Must_Be_Aligned): Removed, replaced by 
	Exp_Pakd.Known_Aligned_Enough
	
	* sem_ch13.adb (Check_Address_Alignment): Removed, extended 
	version is moved to Exp_Ch13.

2001-12-11  Robert Dewar <dewar@gnat.com>

	* einfo.ads: Minor reformatting
	
	* exp_ch5.adb: Add comment for previous.change
	
	* ali.adb: New interface for extended typeref stuff.
	
	* ali.ads: New interface for typeref stuff.
	
	* checks.adb (Apply_Alignment_Check): New procedure.
	
	* debug.adb: Add -gnatdM for modified ALI output
	
	* exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
	
	* lib-xref.adb: Extend generation of <..> notation to cover 
	subtype/object types. Note that this is a complete rewrite, 
	getting rid of the very nasty quadratic algorithm previously 
	used for derived type output.
	
	* lib-xref.ads: Extend description of <..> notation to cover 
	subtype/object types. Uses {..} for these other cases. 
	Also use (..) for pointer types.
	
	* sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
	
	* exp_pakd.adb: Minor reformatting.  Note that prevous RH should say: 
	(Known_Aligned_Enough): Replaces Must_Be_Aligned.

2001-12-11  Vincent Celier <celier@gnat.com>

	* gnatcmd.adb:
	Changed /COMPILE_ONLY to /ACTIONS=COMPILE
	Changed /BIND_ONLY to /ACTIONS=BIND
	Changed /LINK_ONLY to /ACTIONS=LINK
	
2001-12-11  Ed Schonberg  <schonber@gnat.com>

	* sem_ch8.adb (Find_Selected_Component): improved search for a
	candidate package in case of error.
	
	* sem_ch12.adb (Inline_Instance_Body): place head of use_clause
	chain back on scope stack before reinstalling use clauses.
	
	* exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
	is enabled, do not kill the code for the condition, to preserve
	warning.

2001-12-11  Robert Dewar <dewar@gnat.com>

	* checks.adb (Insert_Valid_Check): Apply validity check to expression 
	of conversion, not to result of conversion.

2001-12-11  Ed Schonberg <schonber@gnat.com>
	
	* sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag 
	before freezing parent. If the declarations are mutually recursive, 
	an access to the current record type may be frozen before the 
	derivation is complete.

2001-12-05  Vincent Celier <celier@gnat.com>

	* gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY, 
	-c /COMPILE_ONLY, -l /LINK_ONLY
	
	* opt.ads:
	(Bind_Only): New Flag
	(Link_Only): New flag
	
	* switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only) 
	and -l (Link_Only)
	
	* makeusg.adb: Add new switches -b and -l. Update Copyright notice.
	
	* make.adb:
	(Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
	(Gnatmake): Set the step flags. Only perform a step if the
	corresponding step flag is True.
	(Scan_Make_Arg): Reset the bind and link step flags when -u
	or -gnatc has been specified.

2001-12-05  Ed Schonberg <schonber@gnat.com>

	* sem_eval.adb (Eval_Concatenation): If left operand is a null string, 
	get bounds from right operand.
	
	* sem_eval.adb: Minor reformatting
	
	* exp_util.adb (Make_Literal_Range): use bound of literal rather 
	than Index'First, its lower bound may be different from 1.
	
	* exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B 
	and C48009J
	
2001-12-05  Vincent Celier <celier@gnat.com>

	* prj-nmsc.adb Minor reformatting
	
	* prj-nmsc.adb (Language_Independent_Check): Reset Library flag if 
	set and libraries are not supported.
	
2001-12-05  Ed Schonberg <schonber@gnat.com>

	* sem_ch3.adb (Build_Derived_Private_Type): set Public status of 
	private view explicitly, so the back-end can treat as a global 
	when appropriate.

2001-12-05  Ed Schonberg <schonber@gnat.com>

	* sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
	 unit, always replace instance node with new body, for ASIS use.

2001-12-05  Vincent Celier <celier@gnat.com>
	
	* prj-nmsc.adb (Language_Independent_Check): Issue a warning if 
	libraries are not supported and both attributes Library_Name and 
	Library_Dir are specified.
	
	* prj-proc.adb (Expression): Set location of Result to location of 
	first term.
	
	* Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
	(prj-nmsc is now importing MLib.Tgt)
	
	* prj-proc.adb: Put the change indicated above that was forgotten.

2001-12-05  Robert Dewar <dewar@gnat.com>

	* Makefile.in: Add dependencies for System.IO for GNAT.Regexp

2001-12-05  Ed Schonberg <schonber@gnat.com>

	* sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
	constraint, introduce explicit subtype declaration and derive from it.
	
	* sem_ch3.adb: Minor reformatting

2001-12-05  Robert Dewar <dewar@gnat.com>

	* checks.adb (Determine_Range): Increase cache size for checks. 
	Minor reformatting
	
	* exp_ch6.adb: Minor reformatting
	(Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
	a parameter whose root type is System.Address, since treating such
	subprograms as pure in the code generator is almost surely a mistake
	that will lead to unexpected results.
	
	* exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and 
	change handling of conversions.
	
	* g-regexp.adb: Use System.IO instead of Ada.Text_IO.

2001-12-05  Ed Schonberg <schonber@gnat.com>

	* sem_ch3.adb (Analyze_Object_Declaration): If expression is an 
	aggregate with static wrong size, attach generated Raise node to 
	declaration.

2001-12-05  Robert Dewar <dewar@gnat.com>

	* sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute. 
	Fixes compilation abandoned bomb in B24009B.

2001-12-05  Ed Schonberg <schonber@gnat.com>

	* sem_ch12.adb:
	Document use of Associated_Node on Selected_Components.
	(Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
	to clarify use of untyped descendant fields.

2001-12-05  Robert Dewar <dewar@gnat.com>

	* prj-dect.ads: Add ??? comment
	Add 2001 to copyright notice (was not done in after all)
	
	* prj-part.adb: Minor reformatting. Reword one awkward error message.
	
	* prj.ads: Minor reformatting throughout, and add some ??? comments
	
	* snames.ads: Minor reformatting

2001-12-05  Geert Bosch <bosch@gnat.com>

	* snames.adb: Autoupdate

2001-12-05  Vincent Celier <celier@gnat.com>

	* prj-dect.adb (Parse): Rename parameter Modifying to Extends.
	
	* prj-dect.ads (Parse): Rename parameter Modifying to Extends.
	
	* prj-env.adb: Minor comment changes (modifying -> extends).
	
	* prj-nmsc.adb: Minor comment changes (modifying -> extends).
	
	* prj-part.adb (Parse_Single_Project): Change Tok_Modifying to 
	Tok_Extends.
	
	* prj.adb (Initialize): Change Modifying to Extends.
	
	* scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
	
	* prj.ads: Minor comment change (Modifying -> extending).
	
	* snames.ads: Change modifying to extends.

2001-12-05  Robert Dewar <dewar@gnat.com>

	* sem_warn.adb: Remove stuff for conditionals, we are not going to 
	do this after all.
	
	* sem_warn.ads: Remove stuff for conditionals, we are not going to 
	do this after all.  Add 2001 to copyright notice

2001-12-04  Geert Bosch <bosch@gnat.com>

	*  einfo.h, sinfo.h, treeprs.ads: Regenerate.

2001-12-04  Robert Dewar <dewar@gnat.com>

	* errout.adb (Error_Msg): Ignore attempt to put error msg at junk 
	location if we already have errors. Stops some cases of cascaded 
	errors.
	
	* errout.adb: Improve comment.

2001-12-04  Robert Dewar <dewar@gnat.com>

	* sem_ch12.adb:
	(Analyze_Formal_Type_Definition): Defend against Error.
	(Analyze_Formal_Subprogram): Defend against Error.
	
	* par-ch12.adb (F_Formal_Type_Declaration): In case of error, 
	remove following semicolon if present. Removes cascaded error.

2001-12-04  Douglas B. Rupp <rupp@gnat.com>

	* bindgen.adb:
	(Gen_Exception_Table_Ada): Write "begin" and then return if Num
	 exceptions equals 0.
	(Gen_Exception_Table_C): Return if Num exceptions equals 0.
	Fixes PIWG E tests (which have to be run with -gnatL).

2001-12-04  Robert Dewar <dewar@gnat.com>

	* einfo.ads: Minor reformatting

2001-12-04  Ed Schonberg <schonber@gnat.com>

	* einfo.ads: Block_Node points to the identifier of the block, not to 
	the block node itself, to preserve the link when the block is 
	rewritten, e.g. within an if-statement with a static condition. 
	
	* inline.adb (Cleanup_Scopes): recover block statement from block 
	entity using new meaning of Block_Node.
	
	* sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to 
	identifier of block node, rather than to node itself.

2001-12-04  Gary Dismukes <dismukes@gnat.com>
	
	* layout.adb:
	(Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
	(Discrimify): Go back to setting the Etypes of the selected component
	because the Vname component does not exist at this point and will 
	fail name resolution. Also set Analyzed.
	Remove with and use of Sem_Res.

2001-12-04  Arnaud Charlet <charlet@gnat.com>

	* Makefile.in: (HIE_SOURCES): add s-fat*.

2001-12-04  Robert Dewar <dewar@gnat.com>

	* sem_attr.adb:
	(Compile_Time_Known_Attribute): New procedure.
	(Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
	 proper range check.

2001-12-04  Ed Schonberg <schonber@gnat.com>

	* sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before 
	processing discriminants to diagnose illegal default values.

2001-12-04  Ed Schonberg <schonber@gnat.com>

	* sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide 
	access discriminant within a type extension that constrains its 
	parent discriminants.

2001-12-04  Ed Schonberg <schonber@gnat.com>

	* sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication 
	is malformed, use instance of Any_Id to allow analysis to proceed.
	
	* par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if 
	type definition is illegal.
	(P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
	misplaced.

2001-12-04  Ed Schonberg <schonber@gnat.com>

	* sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to 
	constants.

2001-12-04  Robert Dewar <dewar@gnat.com>

	* errout.adb: Minor reformatting

2001-12-04  Robert Dewar <dewar@gnat.com>

	* exp_util.adb: Minor reformatting from last change
	
	* errout.adb (Check_For_Warning): For a Raised_Constraint_Error node 
	which is a rewriting of an expression, traverse the original 
	expression to remove warnings that may have been posted on it.

2001-12-04  Ed Schonberg <schonber@gnat.com>

	* exp_util.adb (Must_Be_Aligned): Return false for a component of a 
	record that has other packed components.

2001-12-04  Douglass B. Rupp <rupp@gnat.com>

	* adaint.c: Minor cleanups.

2001-12-04  Douglass B. Rupp <rupp@gnat.com>

	* adaint.c: Do not use utime.h on vxworks.

2001-12-04  Arnaud Charlet <charlet@gnat.com>

	* Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes 
	more confusion than it solves.

2001-12-04  Geert bosch <bosch@gnat.com>

	* einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.

2001-12-04  Geert Bosch  <bosch@gnat.com>

	* Makefile.in (update-sources): New target. 
	For use by gcc_release script.

2001-12-04  Ed Schonberg <schonber@gnat.com>

	* sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as 
	a configuration pragma, it is now legal wherever a pragma can appear.

2001-12-04  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.in: Don't set ALL.  Delete @cross_defines@,
	@cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
	is now @CROSS@ -DIN_GCC; update comment.

2001-12-04  Robert Dewar <dewar@gnat.com>

	* einfo.adb (Has_Pragma_Pure_Function): New flag.
	Fix problem that stopped ceinfo from working
	
	* einfo.ads (Has_Pragma_Pure_Function): New flag.
	
	* sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.

2001-12-04  Douglas B. Rupp <rupp@gnat.com>

	* gnatchop.adb:
	(File_Time_Stamp): New procedure.
	(Preserve_Mode): New boolean.
	(Write_Unit): Pass time stamp.
	Implement -p switch (preserve time stamps).
	
	* gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
	
	* gnatchop.adb: Do usage info for -p switch
	
	* adaint.h (__gnat_set_file_time_name): New function
	
	* adaint.c (__gnat_set_file_time_name): Implement
	
	* adaint.h: Fix typo

2001-12-03  Robert Dewar <dewar@gnat.com>

	* sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
        have Associated_Node.

2001-12-03  Robert Dewar <dewar@gnat.com>

	* prj-proc.adb: Minor reformatting

	* make.adb: Minor reformatting

2001-12-03  Geert Bosch <bosch@gnat.com>

	* make.adb: Minor reformatting.

2001-12-03 Robert Dewar  <dewar@gnat.com>

	* sem_ch12.adb: Minor reformatting

2001-12-03  Ed Schonberg <schonber@gnat.com>

	* sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
	push Standard on the stack before analyzing the instance body,
	in order to have a clean visibility environment.

	* sem_ch12.adb (Inline_Instance_Body): Remove redundant code.

2001-12-03  Ed Schonberg <schonber@gnat.com>

	* sem_ch12.adb (Instantiate_Package_Body): Protect against double
	instantiation of a body that contains an inlined body.

2001-12-03  Ed Schonberg <schonber@gnat.com>

	* sem_ch12.adb:
	(Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
	to prevent freezing within formal packages.
	(Freeze_Subprogram_Body): If body comes from another instance that
	appeared before its own body, place freeze node at end of current
	declarative part, to prevent a back-end crash.
	(Inline_Instance_Body): Handle properly a package instance within
	a subprogram instance that is a child unit.

2001-12-01  Graham Stott  <grahams@redhat.com>

	* Makefile.in (misc.o): Add missing $(srcdir) prefix
	and add optabs.h dependency.

	* misc.c: Include optabs.h
	(gnat_tree_code_type): Make static and const.
	(gnat_tree_code_length): Likewise.
	(gnat_tree_code_name): Likewise.
	(update_setjmp_buf): Obtain operands mode from insn_data.

2001-11-29  Richard Henderson  <rth@redhat.com>

	* init.c: Remove obsolete dwarf2 frame.h section.

2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>

	* Make-lang.in (ada.generated-manpages): New dummy target.

2001-11-29  Ed Schonberg <schonber@gnat.com>

	* g-os_lib.adb (Add_To_Command): use explicit loop to move string
	into Command, an array conversion is illegal here. Uncovered by
	ACATS B460005.

2001/11/28  Geert Bosch <bosch@gnat.com>

	* init.c: Minor whitespace changes.

2001-11-28  Doug Rupp <rupp@gnat.com>

	* init.c: (__gnat_install_handler,VMS): Increase size of alternate
	signal stack.

2001-11-28  Zack Weinberg  <zack@codesourcery.com>

	* misc.c (gnat_expand_constant): Move declaration above
	definition of lang_hooks.
	(LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
	(gnat_init): lang_expand_constant no longer exists.

	(internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
	always have vprintf.
	(gnat_init): Always call set_internal_error_function.

2001-11-27  Andreas Jaeger  <aj@suse.de>

	* Makefile.in (stamp-tool_src_dir): Use symbolic link.

2001-11-27  Laurent Guerby  <guerby@acm.org>

	* Makefile.in: Regenerate Ada dependencies.

2001-11-26  Richard Henderson  <rth@redhat.com>

	* Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
	gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
	gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.

2001-11-25  Laurent Guerby  <guerby@acm.org>

	* sysdep.c (rts_get_*): Fix style.

2001-11-19  Laurent Guerby  <guerby@acm.org>

	* Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
	since it is of no apparent use and cause warnings.

2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>

	* misc.c (gnat_decode_option, gnat_init_options): Make definitions
	static too.
	(gnat_init): Don't return NULL.
	(finish_parse): Remove.

2001-11-17  Laurent Guerby  <guerby@acm.org>

	* Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
	* gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
	* io-aux.c: Provide K&R prototypes to all functions, reformat code.
	* lang-spec.h: Add missing struct field to silence warnings.
	* sysdep.c (rts_get_*): Provide K&R prototype.
	* sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
	* traceback.c (Unlock_Task, Lock_Task): Likewise.
	* tracebak.c (__gnat_backtrace): Remove unused variable.
	* utils.c (end_subprog_body): Move to K&R style.

Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.

2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>

	* misc.c (gnat_init): Change prototype.  Include the
	functionality of the old init_parse and init_decl_processing.
	(gnat_init_decl_processing): New prototype.
	(init_parse): Remove.
	* utils.c (init_decl_processing): Rename gnat_init_decl_processing.

2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>

	* misc.c (gnat_print_decl, gnat_print_type): Renamed.
	(LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
	(print_lang_statistics, lang_print_xnode, print_lang_identifier,
	set_yydebug): Remove.

2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>

	* misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
	(struct lang_hooks): Constify.
	(language_string, lang_identify): Remove.
	* utils.c (init_decl_processing): Update.

2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>

	* misc.c: Include langhooks-def.h.
	* Makefile.in: Update.

2001-10-30  Robert Dewar <dewar@gnat.com>

	* style.adb:
	(Check_Identifier): Rewrite circuit to be compatible with use of letters
	in the upper half of ASCII.
	(Check_Identifier): Minor reformatting

2001-10-30  Geert Bosch <bosch@gnat.com>

	* (Associated_Node, Set_Associated_Node): Do not check for
	Freeze_Entity.

2001-10-30  Robert Dewar <dewar@gnat.com>

	* a-reatim.ads: Minor reformatting

2001-10-30  Robert Dewar <dewar@gnat.com>

	* gnatdll.adb: Minor reformatting throughout. Many ??? added for
	undocumented declarations.

2001-10-30  Pascal Obry <obry@gnat.com>

	* gnatdll.adb (Parse_Command_Line): handle -g option to be passed
	to the binder and linker.
	Minor style fix.

	* mdll.ads: Fix layout.  Update copyright notice.

	* mdll.adb: Fix layout.  Update copyright notice.

2001-10-30  Robert Dewar <dewar@gnat.com>

	* usage.adb: Minor fix to output for -gnaty.

2001-10-30  Ed Schonberg <schonber@gnat.com>

	* a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
	to accommodate all its possible values.

	* a-reatim.adb (Split): Special-case handling of Time_Span_First
	and of small absolute values of T.

2001-10-30  Richard Kenner <kenner@gnat.com>

	* misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
	set_mem_attributes since not needed and wrong if RESULT if a REG;
	fixes ACATS failures.

2001-10-30  Geert Bosch <bosch@gnat.com>

	* 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
	s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.

2001-10-30  Robert Dewar <dewar@gnat.com>

	* bindusg.adb: Undocument -f switch.

	* gnatcmd.adb: Remove /FULL_ELABORATION.

	* opt.ads (Force_RM_Elaboration_Order): Document that this is
	obsolescent.

	* gnatbind.adb: Output new warning for use of obsolescent -f switch.

	* gnatbind.adb: Minor update of warning msg.

2001-10-30  Vincent Celier <celier@gnat.com>

	* gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
	for project file switches (-P (/PROJECT_FILE=),
	 -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
	or MEDIUM or HIGH)

2001-10-30  Geert Bosch <bosch@gnat.com>

	* decl.c: Minor whitespace fixes.

2001-10-30  Richard Kenner <kenner@gnat.com>

	* utils2.c (build_allocator): Test for SIZE overflow in array case too

2001-10-30  Geert Bosch <bosch@gnat.com>

	* ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
	Found due to GCC 3.0 warning of using uninitialized value.

	* layout.adb:
	(Get_Max_Size): Use variant record for tracking value/expression.
	 Makes logic clearer and prevents warnings for uninitialized variables.
	(Layout_Array_Type): Use variant record for tracking value/expression.
	 Makes logic clearer and prevents warnings for uninitialized variables.

2001-10-30  Robert Dewar <dewar@gnat.com>

	* lib.adb: Minor reformatting

	* s-taprop.ads: Minor reformatting

2001-10-29  Laurent Guerby  <guerby@acm.org>

	* init.c:
	(Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
	const.
	(_gnat_error_handler): Make MSG const.

2001-10-29  Richard Kenner <kenner@gnat.com>

	* sysdep.c: Fix localtime_r problem on LynxOS.
	Also remove #elif to avoid warnings.

	* misc.c (yyparse): Don't set up and register jmpbuf; remove decls
	used by this.

	* decl.c (annotate_value): Make SIZE unsigned to avoid warning.

2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>

	* 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
	exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
	g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
	g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
	layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
	s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
	sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
	sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
	sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
	types.ads, urealp.adb: Fix spelling errors.

2001-10-27  Laurent Guerby <guerby@acm.org>

	* trans.c (gigi): Fix non determinism leading to bootstrap
	comparison failures for debugging information.

2001-10-26  Florian Weimer  <fw@deneb.enyo.de>

	* gnat_rm.texi: Use @./@: where appropriate.

2001-10-26  Robert Dewar <dewar@gnat.com>

	* sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.

2001-10-26  Richard Kenner <kenner@gnat.com>

	* gmem.c (__gnat_gmem_read_next): Properly check for EOF

2001-10-26  Richard Kenner <kenner@gnat.com>

	* decl.c (validate_size): Modify message for bad size to avoid
	implication that compiler is modifying the size.

2001-10-26  Robert Dewar <dewar@gnat.com>

	* prj-util.adb: Minor reformatting. Fix bad header format.

2001-10-26  Robert Dewar <dewar@gnat.com>

	* sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.

	* sinfo.ads: Clarify use of Associated_Node (documentation only).

	* sem_ch12.adb: Change Node4 to Associated_Node. Change
	Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
	much more narrowly in places where needed. These are cleanups.

2001-10-26  Joel Brobecker <brobecke@gnat.com>

	* 5zosinte.ads (null_pthread): new constant.

	* 5ztaprop.adb:
	(Initialize_TCB): Initialize thread ID to null, to be able to verify
	 later that this field has been set.
	(Finalize_TCB): ditto.
	(Suspend_Task): Verify that the thread ID is not null before using it.
	(Resume_Task): ditto.

	* s-tasdeb.adb:
	(Resume_All_Tasks): Lock the tasks list before using it.
	(Suspend_All_Tasks): ditto.

2001-10-26  Richard Kenner <kenner@gnat.com>

	* decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
	Make constant variant of designated type for Is_Access_Constant.
	Call update_pointer_to with main variant.

	* trans.c (process_freeze_entity, process_type):
	Call update_pointer_to on main variant.

	* utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
	If main variant, update all other variants.

	* utils2.c (build_unary_op, case INDIRECT_REF): No longer set
	TREE_STATIC.

2001-10-26  Robert Dewar <dewar@gnat.com>

	* prj-util.adb: Minor reformatting

2001-10-26  Robert Dewar <dewar@gnat.com>

	* prj-util.adb: Minor reformatting

2001-10-26  Robert Dewar <dewar@gnat.com>

	* prj-attr.adb: Minor reformatting throughout

2001-10-26  Robert Dewar <dewar@gnat.com>

	* prj-attr.ads: Minor reformatting
	Add ??? comment (this whole spec has almost no comments)

2001-10-26  Vincent Celier <celier@gnat.com>

	* g-os_lib.adb (Normalize_Pathname): Preserve the double slash
        ("//") that precede the drive letter on Interix.

2001-10-26  Geert Bosch <bosch@gnat.com>

	* gnat_rm.texi: Add GNAT Reference Manual.

2001-10-25  Robert Dewar <dewar@gnat.com>

	* sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
        is Error. Similar change for other renaming cases.

2001-10-25  Robert Dewar <dewar@gnat.com>

	* s-atacco.ads: Add pragma Inline_Always for functions.
	Fix header format. Add copyright 2001

2001-10-25  Ed Schonberg <schonber@gnat.com>

	* par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
        return Error rather than Empty so that analysis can proceed.

2001-10-25  Ed Schonberg <schonber@gnat.com>

	* sem_util.adb (Enter_Name): better handling of cascaded error
        messages when a unit appears in its own context.

2001-10-25  Ed Schonberg <schonber@gnat.com>

	* sem_util.adb (Defining_Entity): in case of error, attach created
        entity to specification, so that semantic analysis can proceed.

2001-10-25  Robert Dewar <dewar@gnat.com>

	* sem_util.adb
        (Defining_Entity): Deal with Error.
	(Process_End_Label): Deal with bad end label for.

2001-10-25  Ed Schonberg <schonber@gnat.com>

	* sem_elab.adb (Check_A_Call): refine message when call is in an
	instance but callee is not declared in the generic unit.

2001-10-25  Ed Schonberg <schonber@gnat.com>

	* sem_elab.adb (Check_A_Call): check for renaming before finding the
	enclosing unit, which may already be different from the calling unit.

2001-10-25  Geert Bosch <bosch@gnat.com>

	* 4gintnam.ads: fix header format.

2001-10-25  Ed Schonberg <schonber@gnat.com>

	* sem_res.adb (Resolve_Call): if the call is actually an indexing
        operation on the result of a parameterless call, perform elaboration
        check after the node has been properly rewritten.

	* sem_ch12.adb (Copy_Generic_Node): after the proper body has been
        inlined within the generic tree, the defining identifier is not a
        compilation_unit.

2001-10-25  Ed Schonberg <schonber@gnat.com>

	* sem_res.adb (Resolve): special-case resolution of Null in an
         instance or an inlined body to avoid view conflicts.

	* sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
         compatibility by retrieving the access type of the generic copy.

2001-10-25  Robert Dewar <dewar@gnat.com>

	* sem_ch3.adb:
	(Analyze_Number_Declaration): Handle error expression.
	(Signed_Integer_Type_Declaration): Handle error bound.
	(Analyze_Subtype_Indication): Handle error range.

	* sem_util.adb (Get_Index_Bounds): Check for Error.

2001-10-25  Robert Dewar <dewar@gnat.com>

	* restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
	in no run time mode.

2001-10-25  Pascal Obry <obry@gnat.com>

	* gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
        mode case for ALLOC case.

	* gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
        all platforms. Improvement of last change.

2001-10-25  Robert Dewar <dewar@gnat.com>

	* exp_ch4.adb (Expand_N_Allocator): Minor reformatting.

2001-10-25  Geert Bosch  <bosch@gnat.com>

	* osint.adb (Is_Relative): Remove duplicate.

2001-10-25  Pascal Obry <obry@gnat.com>

	* osint.adb (Read_Default_Search_Dirs): correctly detect relative
        pathnames in UNIX and DOS style with drive letter.
	(Is_Relative): new routine.

	* osint.adb: Minor reformatting

	* osint.adb (Is_Relative): implementation using
        GNAT.OS_Lib.Is_Absolute_Path. Better fix.

2001-10-25  Pascal Obry <obry@gnat.com>

	* g-dirope.adb (Basename): correctly compute offset between the
        original Path and the translated one.

	* g-dirope.adb: (Base_Name): add some comments.

2001-10-25  Robert Dewar <dewar@gnat.com>

	* exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
        in HIE mode, avoids compilation abandoned message

	* exp_imgv.adb: Correct typo in previous change

	* exp_imgv.adb: Correct typo in previous change (not my day!)

2001-10-25  Robert Dewar <dewar@gnat.com>

	* s-tpinop.ads: Add 2001 to copyright notice. Fix header format.

2001-10-25  Pascal Obry <obry@gnat.com>

	* g-awk.ads: Move all pragma inlines next to the routine
	 declarations. This is more uniform with other GNAT spec.

2001-10-22  Geert Bosch  <bosch@gnat.com>

	* Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.

2001-10-19  Geert Bosch  <bosch@gnat.com>

	* Makefile.in (tools, gnattools): Remove gnatmem.

2001-10-17  Richard Henderson  <rth@redhat.com>

	* Makefile.in (misc.o): Depend on langhooks.h.
	* misc.c: Include it.
	(LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
	(LANG_HOOKS_DECODE_OPTION): New.
	(lang_hooks): Use LANG_HOOKS_INITIALIZER.

2001-10-16  Florian Weimer  <fw@deneb.enyo.de>

	* trans.c (tree_transform): Adjust to recent change in
	expand_asm_operands to implement named asm operands.

2001-10-11  Ed Schonberg  <schonber@gnat.com>

	* exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
	renaming of discriminant for mutable record type.

2001-10-11  Robert Dewar  <dewar@gnat.com>

	* validsw.adb: Properly save -gnatVn status.

2001-10-11  Robert Dewar <dewar@gnat.com>

	* usage.adb: Add lines for V switch.

	* gnatcmd.adb (COMPILE): Revise translations for -gnatV
	(/VALIDITY_CHECKING).

2001-10-11  Ed Schonberg <schonber@gnat.com>

	* sem_type.adb (Add_One_Interp): an operator for a type declared in
	an extension of System is known to be visible.

2001-10-11  Ed Schonberg <schonber@gnat.com>

	* sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
	properly. Fixes regression on ACATS C34005G.

2001-10-11  Robert Dewar <dewar@gnat.com>

	* sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
	loop in generic instance, since this is likely not very useful.

2001-10-11  Robert Dewar <dewar@gnat.com>

	* restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
	the error message for high integrity mode.

	* rtsfind.adb (RTE): Give message if we try to find an entity that
	is not available in high integrity mode.

	* rtsfind.ads:
	(OK_To_Use_In_HIE_Mode): New array.
	(RTE): May return Empty in high integrity mode.

	* rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
	OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.

	* sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
	unit if not inlined always and in no runtime mode. Fixes problem
	caused by new Rtsfind changes.

	* sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
	body is deleted.

	* rtsfind.adb (RTE): Make sure we do not try to load unit after
	giving message for entity not available in high integrity mode.

2001-10-11  Pascal Obry <obry@gnat.com>

	* impunit.adb: Add GNAT.CRC32.

2001-10-11  Ed Schonberg <schonber@gnat.com>

	* exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
	properly the case where one universal operand in a non-static
	exponentiation of a real literal.

2001-10-11  Ed Schonberg <schonber@gnat.com>

	* exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
	clause, return the gobal finalization list, for lack of anthing else.

2001-10-11  Ed Schonberg <schonber@gnat.com>

	* exp_ch7.adb (Make_Transient_Block): if statement is within
	exception handler, always use new transient scope to place Clean
	procedure.

2001-10-11  Pascal Obry <obry@gnat.com>

	* Makefile.in:
	(GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
	(GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
	(GNATLS_RTL_OBJS): add g-crc32.o
	(GNATMAKE_RTL_OBJS): add g-crc32.o

	* ali-util.adb:
	(CRC_Match): new function.
	(Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
	instead of the previous simple checksum algorithm.
	(Time_Stamp_Mismatch): use CRC_Match for comparison.
	(Set_Source_Table): idem.

	* ali-util.ads:
	(Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
	instead of simple checksum.
	(CRC_Match): new function.
	(CRC_Error): new constant.

	* ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
	a CRC now and not a simple checksum. A CRC uses lower-case hex
	letters, fixes ambiguity in parsing.

	* ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
	is what this variable will store.

	* bcheck.adb: Change reference to chechsum in comments by CRC.
	(Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
	rename All_Checksum_Match to All_CRC_Match. Change due to API
	renaming since now GNAT does not use a simple checksum but a
	CRC using GNAT.CRC32.

	* gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
	now and not anymore a simple checksum.

	* lib-load.adb: Use Source_CRC instead of Source_Checksum in many
	places.

	* lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.

	* scans.adb:
	(Restore_Scan_State): rename Checksum to CRC.
	(Save_Scan_State): idem.

	* scans.ads:
	With GNAT.CRC32.
	(Checksum): rename to CRC.
	(Saved_Scan_State): Save_Checksum field renamed to Save_CRC

	* scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
	GNAT.CRC32).  Update copyright notice.

	* scn-slit.adb: Rename many Accumulate_Checksum to Update (from
	GNAT.CRC32).  Update copyright notice.

	* scn.adb:
	(Accumulate_Checksum): removed.
	(Update): new procedure. Add a wide-character into the CRC.

	* sinput-l.adb:
	(Complete_Source_File_Entry): use CRC32 instead of simple checksum.
	(Load_File): fix initialization of S (change Source_Checksum to
	Source_CRC)

	* sinput-p.adb (Load_Project_File): rename Source_Checksum to
	Source_CRC in S initialization.

	* sinput.adb (Source_Checksum): renamed to Source_CRC.

	* sinput.ads (Source_Checksum): renamed to Source_CRC.
	Update comments for the CRC.

	* types.adb (Hex): Use lowercase for the letter part.

	* types.ads (Get_Hex_String): Returns the hexadecimal representation
	for a word. This is currently used only for CRC. In previous version,
	the checksum was using a representation with all letter being
	upper-case. With the new implementation (using CRC) we do not remove
	the 32th bit of the CRC, so we can have an upper-case starting letter
	in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
	It is ambigous since the CRC was optional and could be followed by
	options like EB, EE. So now this routines uses lower-case letter for
	the hexadecimal representation. Strange enough only lower case letters
	where checked in Scan_ALI (even if this was not a possible case).

	* gnatvsn.ads (Library_Version): changed to 3.15a.

	* s-crc32.ads: Initial version from GNAT.CRC32. This is the version
	for the compiler.

	* s-crc32.adb: Initial version from GNAT.CRC32. This is the version
	for the compiler.

	* ali-util.adb: Redo previous change to avoid using word CRC everywhere
	Add 2001 to copyright notice
	(Accumulate_Checksum): Modify to use System.CRC32.

	* ali-util.ads: Redo changes of previous revision to continue to use
	the word Checksum. Add 2001 to copyright notice.

	* ali.adb: Undo some of previous changes, not needed.
	Keep the change for lower case letters in the checksum.

	* ali.ads: Undo previous change not needed.

	* bcheck.adb: Undo most of previous change, not needed.
	But do use Checksums_Match for checksum comparison.

	* gnatls.adb: Undo most of previous change, not needed.
	But do use Checksums_Match for comparing checksums.

	* lib-load.adb: Undo previous change, not needed.

	* lib-writ.adb: Undo previous change, not needed.

	* lib-writ.ads: Document that checksums use lower case,
	not upper case letters.

	* scans.adb: Undo previous change, not needed

	* scans.ads: Undo previous change, not needed.

	* scn-nlit.adb: Undo previous changes, not needed.

	* scn-slit.adb: Undo previous change, not needed.  Fix header format.

	* scn.adb:
	(Accumulate_Checksum): Use System.CRC32.
	(Initialize_Checksum): New procedure.
	Remove other changes of previous revision.

	* sinput-p.adb: Undo previous change, not needed.

	* sinput.adb: Undo previous change, not needed.

	* sinput-l.adb: Undo previous change, not needed.

	* sinput.ads: Undo previous change, not needed.  Keep only comment
	on new checksum algorithm

	* Makefile.in: Add s-crc32 as needed, remove g-crc32.
	Also remove a-tags and a-stream from GNAT sources.

	* ali.adb (Scan_ALI): fix typo introduce in latest check-in.

	* Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.

2001-10-11  Geert Bosch  <bosch@gnat.com>

	* einfo.h: Regenerate.

	* nmake.ads: Regenerate.

	* nmake.adb: Regenerate.

	* sinfo.h: Regenerate.

	* treeprs.adb: Regenerate.

2001-10-10  Geert Bosch  <bosch@gnat.com>

	* gnat-style.texi: New file describing coding guidelines for Ada.

2001-10-10  Ed Schonberg <schonber@gnat.com>

	* einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
	is Flag174.

2001-10-10  Geert Bosch  <bosch@gnat.com>

	* snames.ads: Add new names for project facility.

	* snames.adb: Update to reflect snames.ads changes.

	* snames.h: Update to reflect snames.ads changes.

2001-10-10  Vincent Celier <celier@gnat.com>

	* make.adb:
	(Add_Switches): reflect the changes for the switches attributes
	Default_Switches indexed by the programming language,
	Switches indexed by the file name.
	(Collect_Arguments_And_Compile): Idem.
	Reflect the attribute name changes.

	* prj-attr.adb:
	(Initialisation_Data): Change the names of some packages and
	attributes.
	(Initialize): process case insensitive associative arrays.

	* prj-attr.ads:
	(Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.

	* prj-dect.adb:
	(Parse_Attribute_Declaration): For case insensitive associative
	 arrays, set the index string to lower case.

	* prj-env.adb:
	Reflect the changes of the project attributes.

	* prj-nmsc.adb:
	Replace Check_Naming_Scheme by Ada_Check and
	Language_Independent_Check.

	* prj-nmsc.ads:
	Replaced Check_Naming_Scheme by 2 procedures:
	Ada_Check and Language_Independent_Check.

	* prj-proc.adb:
	(Process_Declarative_Items): For case-insensitive associative
	arrays, set the index string to lower case.
	(Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
	Prj.Nmsc.Check_Naming_Scheme.

	* prj-tree.adb:
	(Case_Insensitive): New function
	(Set_Case_Insensitive): New procedure

	* prj-tree.ads:
	(Case_Insensitive): New function
	(Set_Case_Insensitive): New procedure
	(Project_Node_Record): New flag Case_Insensitive.

	* prj-util.adb:
	(Value_Of): new function to get the string value of a single
	string variable or attribute.

	* prj-util.ads:
	(Value_Of): new function to get the string value of a single
	string variable or attribute.

	* prj.adb:
	(Ada_Default_Spec_Suffix): New function
	(Ada_Default_Impl_Suffix): New function
	Change definitions of several constants to reflect
	new components of record types.

	* prj.ads:
	(Naming_Data): Change several components to reflect new
	elements of naming schemes.
	(Project_Data): New flags Sources_Present and
	Language_Independent_Checked.
	(Ada_Default_Spec_Suffix): New function.
	(Ada_Default_Impl_Suffix): New function.

	* snames.ads:
	Modification of predefined names for project manager: added
	Implementation, Specification_Exceptions, Implementation_Exceptions,
	Specification_Suffix, Implementation_Suffix, Separate_Suffix,
	Default_Switches, _Languages, Builder, Cross_Reference,
	Finder. Removed Body_Part, Specification_Append, Body_Append,
	Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
	Gnatlink.

	* prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
	Add comments.

	* prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
	not that it is Nil_Variable_Value.

	* prj.ads: Add ??? for uncommented declarations

2001-10-10  Ed Schonberg <schonber@gnat.com>

	* sem_prag.adb: (Analyze_Pragma, case External): If entity is a
	constant, do not indicate possible modification, so that gigi can
	treat it as a bona fide constant.

2001-10-10  Robert Dewar <dewar@gnat.com>

	* sem_prag.adb: Add processing for pragma External.

	* snames.ads: Add entry for pragma External.

	* par-prag.adb: Add pragma External.

	* snames.adb: Updated to match snames.ads.

2001-10-10  Ed Schonberg <schonber@gnat.com>

	* exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
	a dynamic task if the allocator appears in an indexed assignment
	or selected component assignment.

	* exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
	For a dynamic task in an assignment statement, use target of
	assignment to generate meaningful name.

2001-10-10  Ed Schonberg <schonber@gnat.com>

	* einfo.adb (Write_Field19_Name): Body_Entity is also defined for
	a generic package.

	* einfo.ads: Body_Entity is also defined for generic package.
	Documentation change only

	* exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
	others_choice for a discriminated component initialization,
	convert discriminant references into the corresponding discriminals.

	* exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
	only if original type is private and expression has to be wrapped
	in a conversion.

	* checks.adb:
	(Apply_Constraint_Check): Do not perform length check
	if expression is an aggregate with only an others_choice.
	(Length_N_Cond): two references to the same in_parameter
	(typically the discriminal in an init_proc) denote the same value.
	Two useful optimization uncovered by bugfixes above.

2001-10-10  Robert Dewar <dewar@gnat.com>

	* xeinfo.adb: Change int to char in translation of enumeration types.
	This fixes a problem in the C representation of component alignment.
	Add 2001 to copyright notice

2001-10-10  Richard Kenner <kenner@gnat.com>

	* decl.c: (validate_size): Do check size of object of integral type
	if it is a packed array type.

2001-10-10  Richard Kenner <kenner@gnat.com>

	* decl.c: (gnat_to_gnu_entity, case object): Also materialize
	VAR_DECL for constant if not Is_Public but -O0.

2001-10-10  Richard Kenner  <kenner@gnat.com>

	* misc.c (struct lang_hooks): Add new initializer to match GCC change.

2001-10-10  Geert Bosch  <bosch@gnat.com>

	* xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
	use '/' as switch character, allowing for absolute file names.

2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>

	* 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
	FSF address.

2001-10-08  Geert Bosch  <bosch@gnat.com>

	* Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
	Automatically build utilities when files need to be regenerated.

2001-10-08  Geert Bosch  <bosch@gnat.com>

	* xsnames.adb: New utility for updating snames.ads and snames.adb

2001-10-08  Zack Weinberg  <zack@codesourcery.com>

	* Make-lang.in (ADAFLAGS): Add -W -Wall.
	(ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
	(gnat1): Also depend on attribs.o.
	(gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
	* Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
	(ADAC): Set to @ADAC@ in stage1, $(CC) later.
	(ADAFLAGS): Add -W -Wall.
	(ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
	take out CFLAGS.

	(.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
	s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
	s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
	Use $(ADAC), not $(CC), as compilation command.

	(gnattools): Depend directly on tools to build, don't use
	recursive make.
	(gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.

	* einfo.h, sinfo.h: New files (autogenerated).

2001-10-08  Richard Henderson  <rth@redhat.com>

	* comperr.adb (Abort_In_Progress): New.
	(Compiler_Abort): Use it to prevent recursion.

2001-10-08  Robert Dewar <dewar@gnat.com>

	* atree.adb: Set Error_Posted in Error node, helps error recovery.

	* par-endh.adb (Output_End_Expected): We should also not test
	Error_Posted on the Error node, since now it is always set.

	* cstand.adb (Create_Standard): Set Etype of Error to Any_Type
	to help error recovery. Part of general work on 9407-004.

	* par.adb: Add ??? for misuse of error

	* sem_res.adb:
	(Resolve): Defend against Error, fixes 9407-003.
	(Resolve_Discrete_Subtype_Indication): Defend against Error.

	* sinfo.ads (N_Error): Now has Etype field (which will be set
	to Any_Type to help error recovery).

2001-10-08  Richard Kenner (kenner@gnat.com)

	* misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
	Consistently set MEM attributes from expression; fixes
	bootstrap failure on x86.

2001-10-08  Geert Bosch  (bosch@gnat.com)

	* 5oosinte.adb: Add 2001 to copyright notice.

2001-10-08  Geert Bosch  (bosch@gnat.com)

	* ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].

	* csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].

2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>

	* 5oosinte.adb: Fix spelling error of "separate" as "seperate".

2001-10-05  Geert Bosch  (bosch@gnat.com)

	* adaint.h: Small formatting fix.

2001-10-04  Geert Bosch  <bosch@gnat.com>

	* sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
	Arg is int, not FILE *, in dummy version of functions.

	* adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
	Arg is int, not FILE *.

2001-10-04  Geert Bosch  <bosch@gnat.com>

	* 3lsoccon.ads: Added file, missed with initial check ins.

	* 4lintnam.ads: Fix header format.
	Change Linux to GNU/Linux.

	* 5iosinte.adb: Change Linux to GNU/Linux.

	* 5iosinte.ads: Change Linux to GNU/Linux.

	* 5itaprop.adb: Change Linux to GNU/Linux.

	* 5itaspri.ads: Change Linux to GNU/Linux.
	Update copyright notice.

	* 5lintman.adb: Change Linux to GNU/Linux.

	* 5lml-tgt.adb: Change Linux to GNU/Linux.

	* 5losinte.ads: Change Linux to GNU/Linux.

	* 5lsystem.ads: Change Linux to GNU/Linux.

	* 5qosinte.adb: Change Linux to GNU/Linux.

	* 5qosinte.ads: Change Linux to GNU/Linux.

	* 5qparame.ads: Change Linux to GNU/Linux.

	* 5qtaprop.adb: Change Linux to GNU/Linux.

	* 5qtaspri.ads: Change Linux to GNU/Linux.
	Add 2001 to copyright notice.

	* 5vintman.ads: Change Linux to GNU/Linux.
	Fix header format.  Add 2001 to copyright notice.

	* g-soccon.ads: Change Linux to GNU/Linux.

	* g-trasym.ads: Change Linux to GNU/Linux.
	Add 2001 to copyright notice.

	* memtrack.adb: Change Linux to GNU/Linux.

	* s-intman.ads: Change Linux to GNU/Linux.
	Add 2001 to copyright notice.  Fix header format.

	* s-stache.adb: Change Linux to GNU/Linux.

	* adaint.c: Change Linux to GNU/Linux.

	* cio.c: Change Linux to GNU/Linux.

	* cstreams.c: Change Linux to GNU/Linux.

	* init.c: Change Linux to GNU/Linux.

	* gmem.c: Change Linux to GNU/Linux.

	* tracebak.c: Change Linux to GNU/Linux.


2001-10-02  Geert Bosch  <bosch@gnat.com>

	* misc.c (insert_default_attributes): Add dummy version.
