1. 06 Apr, 2007 40 commits
    • a-diroro.ads: Inserted the pragma Unimplemented_Unit · 87ace727
      2007-04-06  Robert Dewar  <dewar@adacore.com>
      	    Arnaud Charlet  <charlet@adacore.com>
      
      	* a-diroro.ads: Inserted the pragma Unimplemented_Unit
      
      	* bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
      	of files
      	Add mention of -Sev (set initialize_scalars option from environment
      	variable at run time) in gnatbind usage message.
      
      	* elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
      
      	* fname-uf.ads: Minor comment fix
      
      	* osint.ads: Change pragma Elaborate to Elaborate_All
      
      	* par-load.adb: Add documentation.
      
      	* sem_cat.ads, sem_cat.adb: Minor code reorganization
      
      	* s-parint.ads (RCI_Locator) : Add 'Version' generic formal
      
      	* s-secsta.ads: Extra comments
      
      	* s-soflin.ads: Minor comment fixes
      
      	* s-stratt.ads (Block_Stream_Ops_OK): Removed.
      
      	* s-wchcon.ads: Minor comment addition
      
      	* treepr.adb: Minor change in message
      	(Print_Name,Print_Node): Make these debug printouts more robust: print
      	"no such..." instead of crashing on bad input.
      
      From-SVN: r123606
      Robert Dewar committed
    • s-stchop-vxworks.adb: · 7a56c3bc
      2007-04-06  Eric Botcazou <botcazou@adacore.com>
      
      	* s-stchop-vxworks.adb: 
      	(Stack_Check): Raise Storage_Error if the argument has wrapped around.
      
      From-SVN: r123605
      Eric Botcazou committed
    • utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and BIT_AND_EXPR. · fc879b8f
      2007-04-06  Olivier Hainque  <hainque@adacore.com>
      
      	* utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
      	BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
      	opcodes.
      
      From-SVN: r123604
      Olivier Hainque committed
    • uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous implementation of UI_Div. · 2e45500e
      2007-04-06  Thomas Quinot  <quinot@adacore.com>
      
      	* uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
      	implementation of UI_Div.
      	(UI_Div): Reimplement as a call to UI_Div_Rem.
      	(UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
      	remainder, avoiding the cost of a multiplication and a subtraction.
      	(UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
      	provides both quotient and remainder in a single computation.
      	(UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
      	functions for uint.
      	(UI_Modular_Inverse): Add a note that the behaviour of this subprogram
      	is undefined if the given n is not inversible.
      
      From-SVN: r123603
      Thomas Quinot committed
    • tracebak.c (PC_ADJUST - ia64): -4 instead of -16... · d72eef29
      2007-04-06  Olivier Hainque  <hainque@adacore.com>
      
      	* tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
      	an address always within the call instruction from a return address.
      
      From-SVN: r123602
      Olivier Hainque committed
    • s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion before propagating exception. · 6d770ce5
      	* s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
      	before propagating exception.
      
      From-SVN: r123601
      Arnaud Charlet committed
    • sinfo.ads, sinfo.adb (Coextensions): New element list for allocators... · f28573f4
      2007-04-06  Ed Schonberg  <schonberg@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      
      	* sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
      	to chain nested components that are allocators for access discriminants
      	of the enclosing object.
      	Add N_Push and N_Pop nodes
      	New field Exception_Label added
      	(Local_Raise_Statements): New field in N_Exception_Handler_Node
      	(Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
      	(Is_Coextension): New flag for allocators, to mark allocators that
      	correspond to access discriminants of dynamically allocated objects.
      	(N_Block_Statement): Document the fact that the corresponding entity
      	can be an E_Return_Statement.
      	(Is_Coextension): New flag for allocators.
      	Remove all code for DSP option
      
      	* sprint.ads, sprint.adb: Display basic information for class_wide
      	subtypes. Add handling of N_Push and N_Pop nodes
      
      From-SVN: r123600
      Ed Schonberg committed
    • sem_util.ads, [...] (Object_Access_Level): If the object is a dereference of a… · 9e87a68d
      sem_util.ads, [...] (Object_Access_Level): If the object is a dereference of a local object R created as a reference to...
      
      2007-04-06  Ed Schonberg  <schonberg@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      
      	* sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
      	dereference of a local object R created as a reference to another
      	object O, use the access level of O.
      	(Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
      	rather than local Same_Formal_Type, to check whether protected operation
      	overrides an inherited one.
      	(Same_Formal_Type): New predicate, used when matching signatures of
      	overriding synchronized operations, to handle the case when a formal
      	has a type that is a generic actual.
      	(Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
      	predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
      	(Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
      	syntactic ambiguities involving indexing of function calls that return
      	arrays.
      	(Abstract_Interface_List): New subprogram that returns the list of
      	abstract interfaces associated with a concurrent type or a
      	concurrent record type.
      	(Interface_Present_In_Parent): New subprogram used to check if a
      	given type or some of its parents implement a given interface.
      	(Collect_Abstract_Interfaces): Add support for concurrent types
      	with interface types.
      	(Has_Abstract_Interfaces): Add support for concurrent types with
      	interface types.
      	(Is_Parent): New subprogram that determines whether E1 is a parent
      	of E2. For a concurrent type its parent is the first element of its
      	list of interface types; for other types this function provides the
      	same result than Is_Ancestor.
      	(Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
      	(Collect_Synchronized_Interfaces): Removed because the subprogram
      	Collect_Abstract_Interfaces provides this functionality.
      	(Collect_Abstract_Interfaces): Minor update to give support to
      	concurrent types and thus avoid undesired code duplication.
      	(Get_Subprogram_Entity): Handle entry calls.
      	(May_Be_Lvalue): Include actuals that appear as in-out parameters in
      	entry calls.
      	(Enter_Name): Do not give -gnatwh hiding warning for record component
      	entities, they never result in hiding.
      
      From-SVN: r123599
      Ed Schonberg committed
    • sem_type.ads, [...] (Has_Abstract_Interpretation): Make predicate recursive... · 3aba5ed5
      2007-04-06  Ed Schonberg  <schonberg@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      
      	* sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
      	predicate recursive, to handle complex expressions on literals whose
      	spurious ambiguity comes from the abstract interpretation of some
      	subexpression.
      	(Interface_Present_In_Ancestor): Add support to concurrent record
      	types.
      	(Add_One_Interp,Disambiguate): Split Is_Abstract flag into
      	Is_Abstract_Subprogram and Is_Abstract_Type.
      
      From-SVN: r123598
      Ed Schonberg committed
    • sem_ch8.adb (Has_Components): If the argument is an incomplete type that is a limited view... · 16ca248a
      2007-04-06  Ed Schonberg  <schonberg@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      
      	* sem_ch8.adb (Has_Components): If the argument is an incomplete type
      	that is a limited view, check the non-limited view if available.
      	(Undefined): Refine error message for missing with of Text_IO
      	(Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
      	to distinguish real missing with cases.
      	Fix format of all missing with messages
      	(Analyze_Subprogram_Renaming): Emit proper error message on illegal
      	renaming as body when renamed entity is abstract.
      
      From-SVN: r123597
      Ed Schonberg committed
    • sem_ch7.ads, [...] (Inspect_Deferred_Constant_Completion): Move out of… · 13bbad84
      sem_ch7.ads, [...] (Inspect_Deferred_Constant_Completion): Move out of Analyze_Package_Declaration...
      
      2007-04-06  Ed Schonberg  <schonberg@adacore.com>
      	    Thomas Quinot  <quinot@adacore.com>
      
      	* sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
      	out of Analyze_Package_Declaration, because processing must be applied
      	to package bodies as well, for deferred constants completed by pragmas.
      	(Analyze_Package_Declaration): When the package declaration being
      	analyzed does not require an explicit body, call Check_Completion.
      	(May_Need_Implicit_Body): An implicit body is required when a package
      	spec contains the declaration of a remote access-to-classwide type.
      	(Analyze_Package_Body): If the package contains RACWs, append the
      	pending subprogram bodies generated by exp_dist at the end of the body.
      	(New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
      	Is_Abstract_Subprogram and Is_Abstract_Type.
      	(Preserve_Full_Attributes): The full entity list is not an attribute
      	that must be preserved from full to partial view.
      
              * sem_dist.adb (Add_RAS_Dereference_TSS):
              Change primitive name to _Call so it cannot clash with any legal
              identifier, and be special-cased in Check_Completion.
              Mark the full view of the designated type for the RACW associated with
              a RAS as Comes_From_Source to get proper view switching when installing
              private declarations.
              Provite a placeholder nested package body along with the nested spec
              to have a place for Append_RACW_Bodies to generate the calling stubs
              and stream attributes.
      
      From-SVN: r123596
      Ed Schonberg committed
    • sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a… · b6a1a16f
      sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a tag-indeterminate call to an abstract...
      
      2007-04-06  Ed Schonberg  <schonberg@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      
      	* sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
      	tag-indeterminate call to an abstract function, when the left-hand side
      	is not classwide.
      	(Analyze_Loop_Statement): Improve detection of infinite loops
      
      From-SVN: r123595
      Ed Schonberg committed
    • sem_ch4.adb (Try_Primitive_Operation): The call is legal if the prefix type is a… · aab883ec
      sem_ch4.adb (Try_Primitive_Operation): The call is legal if the prefix type is a discriminated subtype of the type of...
      
      2007-04-06  Ed Schonberg  <schonberg@adacore.com>
      	    Bob Duff  <duff@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
      	prefix type is a discriminated subtype of the type of the formal.
      	(Analyze_Allocator): Collect all coextensions regardless of the context.
      	Whether they can be allocated statically is determined in exp_ch4.
      	(Analyze_Selected_Component): If the prefix is a limited view and the
      	non-limited view is available, use the non-limited one.
      	(Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
      	therefore illegal), suggest a qualified expression rather than a type
      	conversion, because a type conversion would be illegal in this context.
      	(Anayze_Allocator): Trace recursively all nested allocators so that all
      	coextensions are on the corresponding list for the root. Do no mark
      	coextensions if the root allocator is within a declaration for a stack-
      	allocated object, because the access discriminants will be allocated on
      	the stack as well.
      	(Analyze_Call): Remove restriction on calls to limited functions for the
      	cases of generic actuals for formal objects, defaults for formal objects
      	and defaults for record components.
      	(Analyze_Allocator): Before analysis, chain coextensions on the proper
      	element list. Their expansion is delayed until the enclosing allocator
      	is processed and its finalization list constructed.
      	(Try_Primitive_Operation): If the prefix is a concurrent type, looks
      	for an operation with the given name among the primitive operations of
      	the corresponding record type.
      	(Analyze_Selected_Component): If the prefix is a task type that
      	implements an interface, and there is no entry with the given name,
      	check whether there is another primitive operation (e.g. a function)
      	with that name.
      	(Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
      	properly the indexing of a function call written in prefix form, where
      	the function returns an array type, and all parameters of the function
      	except the first have defaults.
      	(Analyze_Equality_Op): If this is a call to an implicit inequality, keep
      	the original operands, rather than relocating them, for efficiency and
      	to work properly when an operand is overloaded.
      	(Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
      	Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
      	(Analyze_Selected_Component): If the prefix is a private extension, only
      	scan the visible components, not those of the full view.
      	(Try_Primitive_Operation): If the operation is a procedure, collect all
      	possible interpretations, as for a function, because in the presence of
      	classwide parameters several primitive operations of the type can match
      	the given arguments.
      
      From-SVN: r123594
      Ed Schonberg committed
    • sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual when capturing… · da931119
      sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual when capturing size information...
      
      2007-04-06  Ed Schonberg  <schonberg@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
      	when capturing size information, instead of base type, which for a
      	formal array type will be the unconstrained type.
      	(Analyze_Formal_Object_Declaration): Add check for illegal default
      	expressions for a formal in object of a limited type.
      	(Instantiate_Object): Ditto.
      	(Check_Formal_Package_Instance): Skip entities that are formal objects,
      	because they were defaulted in the formal package and no check applies
      	to them.
      	(Check_Formal_Package_Instance): Extend conformance check to other
      	discrete types beyond Integer.
      	(Process_Default): Copy directly the unmatched formal. A generic copy
      	has already been performed in Analyze_Formal_Package.
      	(Analyze_Associations): If a formal subprogram has no match, check for
      	partial parametrization before looking for a default, to prevent
      	spurious errors.
      	(Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
      	not set the instantiation environment before analyzing the actuals.
      	Fixes regression on 8515-003 with implementation of AI-133.
      	Set_Instance_Env checks whether the generic unit is a predefined
      	unit, in which case the instance must be analyzed with the latest Ada
      	mode. This setting must take place after analysis of the actuals,
      	because the actuals must be analyzed and frozen in the Ada mode extant
      	outside of the current instantiation.
      	(Save_Env, Restore_Env): Preserve and restore the configuration
      	parameters so that predefined units can be compiled in the proper Ada
      	mode.
      	(Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
      	Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
      	and Is_Abstract_Type.
      	(Analyze_Formal_Package): For better error recovery, Add exception
      	handler to catch Instantion_Error, which can be raised in
      	Analyze_Associations
      
      From-SVN: r123593
      Ed Schonberg committed
    • 2007-04-06 Ed Schonberg <schonberg@adacore.com> · 9915e6c7
      	* sem_ch10.adb (Install_Limited_Context_Clauses.
      	Expand_Limited_With_Clause): Use a new copy of selector name in the
      	call to Make_With_Clause. This fixes the tree structure for ASIS
      	purposes. Nothing is changed in the compiler behaviour.
      	(Process_Body_Clauses): Handle properly use clauses whose prefix is
      	a package renaming.
      	(Install_Limited_With_Clauses): Do not install non-limited view when it
      	is still incomplete.
      
      From-SVN: r123592
      Ed Schonberg committed
    • s-carun8.adb, [...] (Compare_Array_?8): modify so that last full word is no longer compared twice. · 53ff7b04
      2007-04-06  Ed Falis  <falis@adacore.com>
      
      	* s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
      	full word is no longer compared twice.
      
      From-SVN: r123591
      Ed Falis committed
    • sem_ch13.ads, [...] (Adjust_Record_For_Reverse_Bit_Order): Use First/Next_Component_Or_Discriminant · a9a5b8ac
      2007-04-06  Robert Dewar  <dewar@adacore.com>
      
      	* sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
      	Use First/Next_Component_Or_Discriminant
      	(Analyze_Record_Representation_Clause):
      	Use First/Next_Component_Or_Discriminant
      	(Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
      	(Analyze_Attribute_Definition_Clause, case Value_Size): Reject
      	definition if type is unconstrained.
      	(Adjust_Record_For_Reverse_Bit_Order): New procedure
      	(Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
      	Is_Abstract_Subprogram and Is_Abstract_Type.
      	(Adjust_Record_For_Reverse_Bit_Order): New procedure
      
      	* repinfo.adb (List_Record_Info): Use First/
      	Next_Component_Or_Discriminant.
      
      	* style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
      	New procedure.
      
      	* stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
      	Include -gnatyA in default switches
      
      	* opt.ads: (Warn_On_Non_Local_Exception): New flag
      	(Warn_On_Reverse_Bit_Order): New flag
      	(Extensions_Allowed): Update the documentation.
      	(Warn_On_Questionable_Missing_Parens): Now on by default
      
      	* usage.adb: Add documentation of -gnatw.x/X switches
      	Document new -gnatyA style switch
      	-gnatq warnings are on by default
      
      From-SVN: r123590
      Robert Dewar committed
    • prj-ext.adb (Initialize_Project_Path): New procedure that initialize the default project path... · 2f41ec1a
      2007-04-06  Vincent Celier  <celier@adacore.com>
      
      	* prj-ext.adb (Initialize_Project_Path): New procedure that initialize
      	the default project path, initially done during elaboration of the
      	package.
      	If the prefix returned by Sdefault is null, get the prefix from a call
      	to Executable_Prefix_Path.
      	(Project_Path): Call Initialize_Project_Path if Current_Project_Path is
      	null.
      
      	* prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
      	canonical directory name to open the directory from which files are
      	retrieved.
      	(Record_Other_Sources): Idem.
      	(Locate_Directory): Add the possibility to create automatically missing
      	directories when Setup_Projects is True.
      	Call Locate_Directory so that the directory will be created when
      	Setup_Projects is True, for object dir, library dir, library ALI dir,
      	library source copy dir and exec dir.
      
      	* prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
      	versions of GNAT.
      
      From-SVN: r123589
      Vincent Celier committed
    • par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error · 874a0341
      2007-04-06  Robert Dewar  <dewar@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      	    Bob Duff  <duff@adacore.com>
      	    Vincent Celier  <celier@adacore.com>
      
      	* par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
      	(Extensions_Allowed): No longer sets Ada_Version
      	Entry for pragma Unreferenced_Objects
      
      	* sem_prag.adb (Analyze_Pragma, case Priority): Force with of
      	system.tasking if pragma priority used in a procedure
      	(Analyze_Pragma, case Warning): Handle dot warning switches
      	(Process_Compile_Time_Warning_Or_Error): New procedure
      	(Analyze_Pragma): Add processing for Compile_Time_Error
      	Add support for extra arguments External_Name and Link_Name.
      	Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
      	(Process_Import_Or_Interface): Add support for the use of pragma Import
      	with tagged types.
      	(Extensions_Allowed): No longer affects Ada_Version
      	(Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
      	Is_Abstract_Type. Make sure these are called only when appropriate.
      	Add processing for pragma Unreferenced_Objects
      
      	* snames.h, snames.ads, snames.adb: Add entry for pragma
      	Compile_Time_Error
      	Add new standard name Minimum_Binder_Options for new gprmake
      	Add new standard names for gprmake: Archive_Suffix,
      	Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
      	Library_Support, Library_Version_Options,
      	Shared_Library_Minimum_Options,
      	Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
      	Change Name_Call to Name_uCall so that it cannot clash with a legal
      	subprogram name.
      	Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
      	Append C_Plus_Plus to convention identifiers as synonym for CPP
      	Add new standard names Stack and Builder_Switches
      	Add new standard names: Compiler_Minimum_Options, Global_Config_File,
      	Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
      	Run_Path_Option, Toolchain_Version.
      	Entry for pragma Unreferenced_Objects
      
      	* switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
      	switches, without repetition of "eD". Make sure that last character of
      	-gnatep= switch is not taken as -gnat switch character.
      	Complete rewrite of circuit for handling saving compilation options
      	Occasioned by need to support dot switchs for -gnatw, but cleans up
      	things in general.
      	-gnatX does not affect Ada_Version
      	Include -gnatyA in -gnatg style switches
      
      	* sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
      	warnings on return objects.
      	(Warn_On_Useless_Assignment): Exclude warnings on return objects
      	(Set_Dot_Warning_Switch): New procedure
      	(Check_References): Add missing case of test for
      	Has_Pragma_Unreferenced_Objects
      	(Output_Unreferenced_Messages): Implement effect of new pragma
      	Unreferenced_Objects, remove special casing of limited controlled
      	variables.
      
      From-SVN: r123588
      Robert Dewar committed
    • par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location · 6c929a2e
      2007-04-06  Robert Dewar  <dewar@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      	    Bob Duff  <duff@adacore.com>
      
      	* par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
      	(P_Interface_Type_Definition): Remove the formal Is_Synchronized because
      	there is no need to generate always a record_definition_node in case
      	of synchronized interface types.
      	(P_Type_Declaration): Update calls to P_Interface_Type_Definition.
      	(P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
      	illegal in Ada 95, in cases where it is legal. Change the warnings to
      	errors in other cases. Don't give the error unless the "not null"
      	parses properly. Correct the source position at which the error occurs.
      	(P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
      	P_Null_Exclusion, to suppress "not null" warnings.
      	(P_Identifier_Declarations): Code cleanup. Removed unrequired label and
      	associated goto statements.
      
      	* par-endh.adb (Pop_End_Context): Allow more flexibility in placement
      	of END RECORD
      
      	* scans.ads (Type_Token_Location): New flag
      
      	* par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
      	(P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
      	P_Null_Exclusion, to suppress "not null" warnings.
      
      From-SVN: r123587
      Robert Dewar committed
    • namet.ads, namet.adb (wn): Improve this debugging routine. · 3726d5d9
      2007-04-06  Robert Dewar  <dewar@adacore.com>
      
      	* namet.ads, namet.adb (wn): Improve this debugging routine. Calling
      	it no longer destroys the contents of Name_Buffer or Name_Len and
      	non-standard and invalid names are handled better.
      	(Get_Decoded_Name_String): Improve performance by using
      	Name_Has_No_Encodings flag in the name table.
      	(Is_Valid_Name): New function to determine whether a Name_Id is valid.
      	Used for debugging printouts.
      
      From-SVN: r123586
      Robert Dewar committed
    • mlib.adb (Building_Library): Only output "building a library..." in verbose mode · 0780eccc
      2007-04-06  Vincent Celier  <celier@adacore.com>
      
      	* mlib.adb (Building_Library): Only output "building a library..." in
      	verbose mode
      
      	* mlib-prj.adb (Build_Library): Only output lists of object and ALI
      	files in verbose mode.
      
      	* mlib-utl.adb (Ar): Only output the first object files when not in
      	verbose mode.
      	(Gcc): Do not display all the object files if not in verbose mode, only
      	the first one.
      
      From-SVN: r123585
      Vincent Celier committed
    • gnat_rm.texi, [...]: Add -gnatyl documentation Update 'Exception Handling… · 0916df6a
      gnat_rm.texi, [...]: Add -gnatyl documentation Update 'Exception Handling Control' chapter which was...
      
      2007-04-06  Robert Dewar  <dewar@adacore.com>
      	    Arnaud Charlet  <charlet@adacore.com>
      	    Vincent Celier  <celier@adacore.com>
      
      	* gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
      	Update 'Exception Handling Control' chapter which was outdated.
      	Minor fix to documentation of -gnatwq
      	Remove section "Adapting the Run Time to a New C++ Compiler" because
      	it is now obsolete.
      	Add passage on need of -nostart-files in some non-ada-main cases.
      	Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
      	Update documentation about Interfacing with C++
      	Add documentation for new gnatmake switch -p
      	Add missing protocol part in URLs.
      	Document -gnatyA
      	Document pragma Compile_Time_Error
      	Add documentation for Object_Size indicating that stand alone
      	objects can have a larger size in some cases.
      	Add node for GNAT.Byte_Swapping, GNAT.SHA1
      	Update reference to the Ravenscar profile.
      	Document pragma Unreferenced_Objects
      
      	* gnat-style.texi: Fix typo
      
      From-SVN: r123584
      Robert Dewar committed
    • lib-xref.ads, [...]: Modify the loop that collects type references... · ecf8118f
      2007-04-06  Ed Schonberg  <schonberg@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      
      	* lib-xref.ads, lib-xref.adb: 
      	Modify the loop that collects type references, to include interface
      	types that the type implements. List each of these interfaces when
      	building the entry for the type.
      	(Generate_Definition): Initialize component Def and Typ of new entry
      	in table Xrefs, to avoid to have these components unitialized.
      	(Output_References): Split Is_Abstract flag into
      	Is_Abstract_Subprogram and Is_Abstract_Type.
      	(Generate_Reference): Add barrier to do not generate the warning
      	associated with Ada 2005 entities with entities generated by the
      	expander.
      
      From-SVN: r123583
      Ed Schonberg committed
    • lib-writ.adb (Write_With_Lines): Factor duplicated code between the cases where… · ff5066d4
      lib-writ.adb (Write_With_Lines): Factor duplicated code between the cases where a given dependency has a body or not.
      
      2007-04-06  Thomas Quinot  <quinot@adacore.com>
      
      	* lib-writ.adb (Write_With_Lines): Factor duplicated code between the
      	cases where a given dependency has a body or not.
      	(Write_With_File_Names): New subprogram, common code for the two cases
      	above.
      
      From-SVN: r123582
      Thomas Quinot committed
    • lib.ads, lib.adb (Tree_Read): Release the memory occupied by the switches from… · 2491bb7d
      lib.ads, lib.adb (Tree_Read): Release the memory occupied by the switches from previously loaded tree
      
      2007-04-06 Serguei Rybin <rybin@adacore.com>
      
      	* lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
      	switches from previously loaded tree
      
      From-SVN: r123581
      Serguei Rybin committed
    • init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except __gnat_adjust_context_for_raise. · 00f74faf
      2007-04-06  Eric Botcazou <botcazou@adacore.com>
      	    Arnaud Charlet  <charlet@adacore.com>
      
      	* init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
      	__gnat_adjust_context_for_raise.
      	(__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
      	implementation of floating point operations as native x86 targets.
      	So the FPU should be initialized in the same way using finit. Fix
      	floating point operations accuracy issues.
      	(__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
      	member in struct sigaction, so as to avoid warning for incompatible
      	pointer types.
      
      From-SVN: r123580
      Eric Botcazou committed
    • i-fortra.ads: Add Double_Complex type. · 815f44d0
      2007-04-06  Geert Bosch  <bosch@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      
      	* i-fortra.ads: Add Double_Complex type.
      
      	* impunit.adb: (Is_Known_Unit): New function
      	Add Gnat.Byte_Swapping
      	Add GNAT.SHA1
      	Add new Ada 2005 units
      	Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
      	Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
      	Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
      	Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
      
      	* impunit.ads (Is_Known_Unit): New function
      
      	* a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
      	a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
      	a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
      	g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
      	s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
      	s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
      	New files.
      
      	* Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
      
      	* a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
      
      From-SVN: r123579
      Geert Bosch committed
    • i-cstrea.ads: (fopen): Add encoding parameter. · 0ee30464
      2007-04-06  Pascal Obry  <obry@adacore.com>
      
      	* i-cstrea.ads: (fopen): Add encoding parameter.
      	(freopen): Idem.
      	Change reference from a-sysdep.c to sysdep.c in comment.
      	Update copyright notice.
      	This set of patch add support for the encoding form parameter.
      
      	* mingw32.h (S2WSU): New macro to convert from a string to a
      	wide-string using the UTF-8 encoding. The S2WS macro supports now only
      	standard 8bits encoding.
      	(WS2SU): As above but converting from wide-sring to string.
      	This is needed as it is necessary to have access to both versions in the
      	runtime for the form parameter encoding support.
      	This set of patch add support for the encoding form parameter.
      	(S2WS): Improve implementation to handle cases where the filename is not
      	UTF-8 encoded. In this case we default to using the current code page
      	for the conversion.
      
      	* s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
      	type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
      	the constants defined in adaint.h.
      	(fopen): Add encoding parameter.
      	(freopen): Idem.
      
      	* s-ficobl.ads (AFCB): Add Encoding field to record the filename
      	encoding. This is needed for the Reset routine (freopen low level-call).
      
      	* s-fileio.adb (Open): Decode encoding form parameter and set the
      	corresponding encoding value into AFCB structure.
      	(Reset): Pass the encoding value to freopen.
      	(Close): Move the call to Lock_Task to the beginning of the procedure.
      
      From-SVN: r123578
      Pascal Obry committed
    • g-regpat.adb (Parse_Posix_Character_Class): Fix handling of [[:xdigit:]] character class. · 5bdd76e8
      2007-04-06  Emmanuel Briot  <briot@adacore.com>
      
      	* g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
      	[[:xdigit:]] character class.
      	Also raise an exception when an invalid character class is used.
      
      From-SVN: r123577
      Emmanuel Briot committed
    • gprep.adb (Process_Files.Process_One_File): Use full file name when issuing… · 7616900d
      gprep.adb (Process_Files.Process_One_File): Use full file name when issuing pragma Source_Reference.
      
      2007-04-06  Vincent Celier  <celier@adacore.com>
      
      	* gprep.adb (Process_Files.Process_One_File): Use full file name when
      	issuing pragma Source_Reference.
      
      From-SVN: r123576
      Vincent Celier committed
    • gnatcmd.adb (B_Start): Add prefix of binder generated file. · df777314
      2007-04-06  Jose Ruiz  <ruiz@adacore.com>
      	    Vincent Celier  <celier@adacore.com>
      
      	* gnatcmd.adb (B_Start): Add prefix of binder generated file.
      	(Stack_String): Add this String that contains the name of the Stack
      	package in the project file.
      	(Packages_To_Check_By_Stack): Add this list that contains the packages
      	to be checked by gnatstack, which are the naming and the stack packages.
      	(Check_Files): If no .ci files were specified for gnatstack we add all
      	the .ci files belonging to the projects, including binder generated
      	files.
      	(Non_VMS_Usage): Document that gnatstack accept project file switches.
      	(GNATCmd): Update the B_Start variable if we are in a VMS environment.
      	Add gnatstack to the list of commands that use project file related
      	switches, and get the single attribute Switches from the stack package
      	in a project file when calling gnatstack. Parse the -U flag for
      	processing files belonging to all projects in the project tree.
      	Remove all processing for command Setup
      
      	* prj-attr.adb: Add new package Stack with single attribute Switches
      
      	* vms_conv.ads (Command_Type): Add command Stack.
      	Move to body declarations that are only used in the body: types Item_Id,
      	Translation_Type, Item_Ptr, Item and its subtypes.
      
      	* vms_conv.adb: (Initialize): Add data for new command Stack.
      	Add declarations moved from the spec: types Item_Id, Translation_Type,
      	Item_Ptr, Item and its subtypes.
      	(Cargs_Buffer): New table
      	(Cargs): New Boolean global variable
      	(Process_Buffer): New procedure to create arguments
      	(Place): Put character in table Buffer or Cargs_Buffer depending on the
      	 value of Cargs.
      	(Process_Argument): Set Cargs when processing qualifiers for GNAT
      	COMPILE
      	(VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
      	empty, for table Cargs_Buffer.
      	(Initialize): Remove component Setup in Command_List
      
      From-SVN: r123575
      Jose Ruiz committed
    • g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding computation. · cf6ba14a
      2007-04-06  Thomas Quinot  <quinot@adacore.com>
      
      	* g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
      	computation.
      
      From-SVN: r123574
      Thomas Quinot committed
    • g-expect.adb (Get_Command_Output): When expanding the output buffer we must… · 0fdc3afe
      g-expect.adb (Get_Command_Output): When expanding the output buffer we must ensure that there is enough place for...
      
      	* g-expect.adb (Get_Command_Output): When expanding the output buffer
      	we must ensure that there is enough place for the new data we are going
      	to copy in.
      
      From-SVN: r123573
      Arnaud Charlet committed
    • g-debpoo.adb (Validity): New package with a complete new implementation of… · 11f03980
      g-debpoo.adb (Validity): New package with a complete new implementation of subprograms Is_Valid and...
      
      2007-04-06  Vincent Celier  <celier@adacore.com>
      
      	* g-debpoo.adb (Validity): New package with a complete new
      	implementation of subprograms Is_Valid and Set_Valid.
      	(Is_Valid): Move to local package Validity
      	(Set_Valid): Move to local package Validity
      
      From-SVN: r123572
      Vincent Celier committed
    • g-arrspl.adb (Free): New routine to free the source string. · 358f47f3
      2007-04-06  Pascal Obry  <obry@adacore.com>
      
      	* g-arrspl.adb (Free) [Element_Access]: New routine to free the source
      	string.
      	(Create): Free the source string before storing the new one.
      
      From-SVN: r123571
      Pascal Obry committed
    • g-alleve.ads (Low Level Vector type definitions): Map each to the associated… · 9a8bd0b5
      g-alleve.ads (Low Level Vector type definitions): Map each to the associated vector view instead of all to the unsigned char view.
      
      2007-04-06  Olivier Hainque  <hainque@adacore.com>
      
      	* g-alleve.ads (Low Level Vector type definitions): Map each to the
      	associated vector view instead of all to the unsigned char view.
      
      	* g-altcon.adb (Generic_Conversions): New internal generic package,
      	offering facilities for all the Vector/View conversion routines
      	implemented by this unit.
      	(To_View/To_Vector - all versions): Reimplemented in a systematic
      	manner, using the internal Generic_Conversions facilities.
      
      From-SVN: r123570
      Olivier Hainque committed
    • sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat an… · aad93b55
      sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat an association with a box as providing a value...
      
      2007-04-06  Ed Schonberg  <schonberg@adacore.com>
      	    Bob Duff  <duff@adacore.com>
      
      	* sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
      	an association with a box as providing a value even though the
      	initialization procedure for the type is not available.
      	(Resolve_Record_Aggregate): Check that a choice of an association with a
      	box corresponds to a component of the type.
      	(Resolve_Record_Aggregate): Split Is_Abstract flag into
      	Is_Abstract_Subprogram and Is_Abstract_Type.
      
      	* exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
      	assert.
      
      	* inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
      	Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
      	called only when appropriate.
      
      From-SVN: r123569
      Ed Schonberg committed
    • 2007-04-06 Ed Schonberg <schonberg@adacore.com> · c5c7f763
      	* exp_strm.adb
      	(Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
      	 discriminant defaults.
      	(Build_Record_Or_Elementary_Output_Procedure): Ditto.
      	(Make_Component_List_Attributes): Ditto.
      
      From-SVN: r123568
      Ed Schonberg committed
    • exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the result are the… · 86109281
      exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the result are the bounds of the left operand, not the right.
      
      2007-04-06  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
      	result are the bounds of the left operand, not the right.
      
      From-SVN: r123567
      Ed Schonberg committed