1. 06 Jun, 2007 40 commits
    • s-stausa.ads, [...] (Initialize_Analyzer): Added parameter "Overflow_Guard". · 37000aba
      2007-04-20  Quentin Ochem  <ochem@adacore.com>
      
      	* s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
      	"Overflow_Guard".
      	(Stack_Analyzer): Added field "Overflow_Guard"
      	(Task_Result): Added field "Overflow_Guard".
      	(Index_Str): New constant.
      	(Task_Name_Str): New constant.
      	(Actual_Size_Str): New constant.
      	(Pattern_Array_Element_Size): New constant.
      	(Get_Usage_Range): New subprogram.
      	(Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
      	Now align the output.
      	Added comments.
      	(Initialize): Added value for Overflow_Guard.
      	(Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
      	Update the value of the overflow guard according to the actual
      	beginning of the pattern array.
      	(Initialize_Analyzer): Added parameter Overflow_Guard.
      	Take this parameter into accound when computing the max size.
      	(Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
      	(Report_Result): Removed extra useless procedure.
      	Updated call to Output_Result.
      	Moved full computation of the Task_Result here.
      
      From-SVN: r125465
      Quentin Ochem committed
    • s-secsta.adb (Chunk): Ensure this object has a static size known at compile time... · 1513f9bf
      2007-04-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* s-secsta.adb (Chunk): Ensure this object has a static size known at
      	compile time, to avoid dynamic memory allocation
      	(Elaboration code): Only use dynamic memory allocation when needed.
      
      From-SVN: r125464
      Arnaud Charlet committed
    • sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for exceptions. · 0c1edb56
      2007-04-20  Ed Schonberg  <schonberg@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      
      	* sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
      	exceptions.
      	(Write_Itype): Handle case of string literal subtype, which
      	comes up in this context.
      	(Update_Itype): when debugging expanded code, update sloc of itypes
      	associated with defining_identifiers and ranges, for gdb use.
      	(Sprint_Node_Actual): Add static keyword to object or exception
      	declaration output if Is_Statically_Allocated is True.
      	(Sprint_End_Label): Set entity of end marker for a subprogram, package,
      	or task body, so that the tree carries the proper Sloc information for
      	debugging use.
      	(Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
      
      From-SVN: r125463
      Ed Schonberg committed
    • sinput-l.ads, [...]: implement a new pragma No_Body · 0600d9bc
      2007-04-20  Robert Dewar  <dewar@adacore.com>
      
      	* sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
      
      From-SVN: r125462
      Robert Dewar committed
    • sem_smem.adb (Check_Shared_Var): Check explicitly for as task object, to prevent… · ff682191
      sem_smem.adb (Check_Shared_Var): Check explicitly for as task object, to prevent subsequent expansion.
      
      2007-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
      	to prevent subsequent expansion.
      
      From-SVN: r125461
      Ed Schonberg committed
    • sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an illegal… · 13f34a3f
      sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an illegal aggregate and the type is still...
      
      2007-04-20  Robert Dewar  <dewar@adacore.com>
      
      	* sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
      	illegal aggregate and the type is still Any_Composite.
      	(Subtypes_Statically_Match): Fix problem of empty discriminant list
      
      From-SVN: r125460
      Robert Dewar committed
    • s-finroo.ads, [...] (Read, Write): Use null procedure declarations instead of an… · 79e44845
      s-finroo.ads, [...] (Read, Write): Use null procedure declarations instead of an explicit null body, for conciseness.
      
      2007-04-20  Thomas Quinot  <quinot@adacore.com>
      
      	* s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
      	declarations instead of an explicit null body, for conciseness.
      
      From-SVN: r125459
      Thomas Quinot committed
    • s-taprob.adb (Unlock): Change the ceiling priority of the underlying lock, if needed. · 72fb810d
      2007-04-20  Jose Ruiz  <ruiz@adacore.com>
      	    Arnaud Charlet  <charlet@adacore.com>
      
      	* s-taprob.adb (Unlock): Change the ceiling priority of the underlying
      	lock, if needed.
      
      	* s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
      	priority associated to a lock.
      
      	* s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
      	assertion to take into account case of no abort restriction.
      	(Initialize_Protection_Entries): Add initialization for the field
      	New_Ceiling associated to the protected object.
      	(Unlock_Entries): Change the ceiling priority of the underlying lock, if
      	needed.
      
      	* s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
      	since this function needs to be set consistently with Update_Exception.
      
      	* s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
      	since this function needs to be set consistently with Update_Exception.
      
      	* s-taskin.ads: Update comments on
      	Interrupt_Server_Blocked_On_Event_Flag.
      	(Unbind_Handler): Fix handling of server_task wakeup
      	(Server_Task): Set self's state so that Unbind_Handler can take
      	appropriate actions.
      	(Common_ATCB): Now use a constant from System.Parameters to determine
      	the max size of the Task_Image field.
      
      	* s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
      	Initialize_Analyzer function.
      	([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
      	take into account case of no abort restriction.
      	([Vulnerable_]Complete_Master): Modify assertion.
      
      	* s-tataat.adb (Finalize): Use the nestable versions of
      	Defer/Undefer_Abort.
      
      	* s-tpobop.adb (Protected_Entry_Call): Relax assertion.
      
      	* s-tpobop.ads: Update comments.
      
      	* s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
      	of locking the object manually, to avoid inconsistencies between
      	Lock/Unlock_Entry assertions.
      
      	* s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
      	terminating
      	application and System.Parameters.No_Abort is True.
      	Update comments on Interrupt_Server_Blocked_On_Event_Flag.
      	(Unbind_Handler): Fix handling of server_task wakeup
      	(Server_Task): Set self's state so that Unbind_Handler can take
      	appropriate actions.
      
      From-SVN: r125458
      Jose Ruiz committed
    • 2007-04-20 Thomas Quinot <quinot@adacore.com> · b9f3a4b0
      	    Olivier Hainque  <hainque@adacore.com>
      
      	* a-except-2005.ads, a-except-2005.adb
      	(Raise_From_Controlled_Operation): New procedure in
      	(private part of) Ada.Exceptions (standard runtime version). Used to
      	provide informational exception message when Program_Error is raised as
      	a result of an Adjust or Finalize operation propagating an exception.
      	(Rmsg_28): Fix description for E.4(18) check.
      	(Raise_Current_Excep): Call Debug_Raise_Exception just before
      	propagation starts, to let debuggers know about the event in a reliable
      	fashion.
      	Take the address of E and dereference to make sure it is homed on stack
      	and prevent the stores from being deleted, necessary for proper
      	debugger behavior on "break exception" hits.
      	(Local_Raise): Moved to System.Exceptions
      
      	* s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
      	exception message from the current occurrence and raise Program_Error
      	has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
      
      From-SVN: r125457
      Thomas Quinot committed
    • socket.c (__gnat_close_signalling_fd): New function. · 1c8e4e2e
      2007-04-20  Thomas Quinot  <quinot@adacore.com>
      
      	* socket.c (__gnat_close_signalling_fd): New function.
      	(__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
      	__gnat_safe_getservbyname, __gnat_safe_getservbyport):
      	New supporting functions for task safe Netdb operations.
      
      From-SVN: r125456
      Thomas Quinot committed
    • raise-gcc.c (__gnat_eh_personality): Tweak the signature and add special code on… · 2e603994
      raise-gcc.c (__gnat_eh_personality): Tweak the signature and add special code on ia64-vms to handle major...
      
      2007-04-20  Olivier Hainque  <hainque@adacore.com>
      
      	* raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
      	special code on ia64-vms to handle major incompatibilities between the
      	GCC unwinding ABI and the VMS Condition Handling Facility, both calling
      	this routine with a very different set of arguments and expectations on
      	the return value.
      
      From-SVN: r125455
      Olivier Hainque committed
    • sem_elab.adb (Check_A_Call): Specialize elaboration warnings on elaboration model · e090bc75
      2007-04-20  Robert Dewar  <dewar@adacore.com>
      
      	* sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
      	elaboration model
      	(Check_A_Call): Add check for entry call which was causing blowup
      
      From-SVN: r125454
      Robert Dewar committed
    • sem_util.ads, [...] (May_Be_Lvalue): A prefix of an attribute reference acts as an lvalue when... · f377c995
      2007-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      
      	* sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
      	reference acts as an lvalue when the attribute name modifies the prefix
      	(Is_Coextension_Root): New routine.
      	(Mark_Static_Coextensions): New routine.
      	(Type_Access_Level): Revise code for checking the level of the
      	anonymous access type of a return object.
      	(Safe_To_Capture_Value): Not safe to capture if Address_Taken
      	(Matches_Prefixed_View_Profile): Remove the no longer necessary
      	retrieval of the corresponding controlling record type.
      	(Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
      	concurrent types declared within a generic as well as class wide types.
      	Emit a mode incompatibility error whenever a protected entry or routine
      	override an interface routine whose first parameter is not of mode
      	"out", "in out" or access to variable.
      	(Overrides_Synchronized_Primitive): Rename to
      	Find_Overridden_Synchronized_Primitive.
      	(Collect_Interface_Components): New subprogram that collects all the
      	components of a tagged record containing tags of secondary dispatch
      	tables.
      	(Add_Global_Declaration): New procedure
      	(Abstract_Interface_List): Handle properly the case of a subtype of a
      	private extension.
      	(Type_Access_Level): In the case of a type whose parent scope is a
      	return statement, call Type_Access_Level recursively on the enclosing
      	function's result type to determine the level of the return object's
      	type.
      	(Build_Elaboration_Entity): Build name of elaboration entity from the
      	scope chain of the entity, rather than the unit name of the file name.
      	(Check_Nested_Access): New procedure.
      	(Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
      	(Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
      	(Get_Renamed_Entity): Utility routine for performing common operation
      	of chasing the Renamed_Entity field of an entity.
      
      From-SVN: r125453
      Hristian Kirtchev committed
    • sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body · 495d6dd6
      2007-04-20  Robert Dewar  <dewar@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      
      	* sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
      	(Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
      	overriding of an inherited private subprogram now there is no need to
      	inherit its dispatching slot and reduce the size of the dispatch table.
      	Set_All_DT_Position now ensures that the same slot is now assigned to
      	both entities. This is required to statically build the dispatch table.
      	(Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
      	of calling Set_All_DT_Position to re-evaluate the position of the
      	entries in the dispatch table. Such reevaluation is not desired if
      	the tagged type is already frozen.
      
      From-SVN: r125452
      Robert Dewar committed
    • sem_res.ads, [...] (Process_Allocator): Do not propagate the chain of coextensions when... · b7d1f17f
      2007-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      
      	* sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
      	chain of coextensions when an allocator serves as the root of such a
      	chain.
      	(Propagate_Coextensions): Remove the test for the root being an
      	allocator.
      	(Resolve_Allocator): Add condition to ensure that all future decoration
      	occurs on an allocator node. Add processing and cleanup for static
      	coextensions.
      	(Valid_Conversion): If the operand type is the limited view of a
      	class-wide type, use the non-limited view is available to determine
      	legality of operation.
      	(Ambiguous_Character): move to spec, for use elsewhere.
      	(Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
      	(Resolve_Range): Diagnose properly an ambiguous range whose bounds are
      	character literals.
      	(Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
      	Do_Division_Check flag explicitly.
      	(Resolve_Actuals): If the actual is of a synchronized type, and the
      	formal is of the corresponding record type, this is a call to a
      	primitive operation of the type, that is declared outside of the type;
      	the actual must be unchecked-converted to the type of the actual
      	(Resolve_Call): Kill all current values for any subprogram call if
      	flag Suppress_Value_Tracking_On_Call is set.
      	(Resolve_Type_Conversion): Generate error message the the operand
      	or target of interface conversions come from a limited view.
      	(Check_Infinite_Recursion): Ignore generated calls
      	(Check_Allocator_Discrim_Accessibility): New procedure for checking
      	that an expression that constrains an access discriminant in an
      	allocator does not denote an object with a deeper level than the
      	allocator's access type.
      	(Resolve_Allocator): In the case of an allocator initialized by an
      	aggregate of a discriminated type, check that associations for any
      	access discriminants satisfy accessibility requirements by calling
      	Check_Allocator_Discrim_Accessibility.
      	(Resolve_Equality_Op): Handle comparisons of anonymous access to
      	subprogram types in the same fashion as other anonymous access types.
      	(Resolve_Concatenation_Arg): Remove initial character '\' in an error
      	message that is not a continuation message.
      	(Resolve_Type_Conversion): Add missing support for conversion to
      	interface type.
      	(Resolve_Actuals): Introduce a transient scope around the call if an
      	actual is a call to a function returning a limited type, because the
      	resulting value must be finalized after the call.
      	(Resolve_Actuals): If the call was given in prefix notations, check
      	whether an implicit 'Access reference or implicit dereference must be
      	added to make the actual conform to the controlling formal.
      
      From-SVN: r125451
      Hristian Kirtchev committed
    • 2007-04-20 Robert Dewar <dewar@adacore.com> · 27c489df
      	    Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch5.adb
      	(Find_Var): Do not consider function call in test for infinite loop
      	warning if warnings set off for function entity.
      	(One_Bound): Do not create a temporary for a loop bound if it is a
      	character literal.
      	(Analyze_Assignment): Traverse the right hand side of an assignment and
      	mark all allocators as static coextensions.
      	(Analyze_Assignment): Exempt assignments involving a dispatching call
      	to a function with a controlling access result from the check requiring
      	the target to be class-wide.
      
      From-SVN: r125450
      Robert Dewar committed
    • sem_ch13.adb (Analyze_Attribute_Definition_Clause, [...]): Check for restriction… · 8f7770f9
      sem_ch13.adb (Analyze_Attribute_Definition_Clause, [...]): Check for restriction No_Implementation_Attributes if in Ada 95 mode.
      
      2007-04-20  Robert Dewar  <dewar@adacore.com>
      	    Arnaud Charlet  <charlet@adacore.com>
      
      	* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
      	Check for restriction No_Implementation_Attributes if in Ada 95 mode.
      	(Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
      	(Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
      	message when using a VM, since this attribute is not supported.
      	(Analyze_Record_Representation_Clause): Give unrepped component warnings
      
      	* usage.adb: Add new warning for renaming of function return objects
      	Indicate that -gnatwp and -gnatwP concern front-end inlining
      	Add line for -gnatyg
      	Add usage information for -gnatw.c/C
      
      From-SVN: r125449
      Robert Dewar committed
    • sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the use of… · 8909e1ed
      sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the use of entity Exception_Occurrence if...
      
      2007-04-20  Javier Miranda  <miranda@adacore.com>
      	    Hristian Kirtchev  <kirtchev@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
      	use of entity Exception_Occurrence if it is not available in the
      	target run-time.
      
      	* sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
      	concurrent types are declared within an Ada 2005 generic, build their
      	corresponding record types since they are needed for overriding-related
      	semantic checks.
      	(Analyze_Protected_Type): Rearrange and simplify code for testing that a
      	protected type does not implement a task interface or a nonlimited
      	interface.
      	(Analyze_Task_Type): Rearrange and simplify code for testing that a task
      	type does not implement a protected interface or a nonlimited interface.
      	(Single_Task_Declaration, Single_Protected_Declaration): use original
      	entity for variable declaration, to ensure that debugging information
      	is correcty generated.
      	(Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
      	routines if the expander is not active.
      	(Analyze_Task_Body): Mark all handlers to stop optimization of local
      	raise, since special things happen for task exception handlers.
      
      	* sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
      	concurrent types declared within a generic.
      	(Check_Dispatching_Operation): Do not emit warning about late interface
      	operations in the context of an instance.
      	(Check_Dispatching_Call): Remove restriction against calling a
      	dispatching operation with a limited controlling result.
      	(Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
      	Register_Interface_DT_Entry by calls to Register_Primitive.
      	(Check_Dispatching_Formals): Handle properly a function with a
      	controlling access result.
      
      From-SVN: r125448
      Javier Miranda committed
    • sem_ch10.ads, [...] (Analyze_Compilation_Unit): Disable check on obsolescent… · fcd1d957
      sem_ch10.ads, [...] (Analyze_Compilation_Unit): Disable check on obsolescent withed unit in case of limited-withed units.
      
      2007-04-20  Javier Miranda  <miranda@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      
      	* sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
      	on obsolescent withed unit in case of limited-withed units.
      	(Analyze_Compilation_Unit): Add guard to code that removed an
      	instantiation from visibility, to prevent compiler aborts when
      	instantiation is abandoned early on.
      	(Install_Limited_Withed_Unit): Recognize a limited-with clause on the
      	current unit being analyzed, and Distinguish local incomplete types
      	from limited views of types declared elsewhere.
      	(Build_Limited_Views.Decorate_Tagged_Type): Add documentation
      	to state that the class-wide entity is shared by the limited-view
      	and the full-view.
      	(Analyze_With_Clause): Improve placement of flag for case of
      	unimplemented unit.
      	(Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
      	manner similar to GNAT.Current_Exception. This is a violation of
      	restriction (No_Exception_Propagation), and also inhibits the
      	optimization of local raise to goto.
      	(Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
      	and if so set Most_Recent_Exception_Used flag in Opt, and also check
      	for violation of restriction No_Exception_Propagation.
      
      From-SVN: r125447
      Javier Miranda committed
    • sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names Remove no longer used nodes. · 9f0d9574
      2007-04-20  Robert Dewar  <dewar@adacore.com>
      
      	* sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
      	Remove no longer used nodes.
      
      From-SVN: r125446
      Robert Dewar committed
    • scng.adb: (Check_End_Of_Line): Deal with very long lines · 0e701488
      2007-04-20  Robert Dewar  <dewar@adacore.com>
      
      	* scng.adb: (Check_End_Of_Line): Deal with very long lines
      
      From-SVN: r125445
      Robert Dewar committed
    • s-bitops.adb: Get rid of System.Pure_Exceptions. · b06f1f83
      2007-04-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* s-bitops.adb: Get rid of System.Pure_Exceptions.
      	Replace UC by Ada.UC
      
      From-SVN: r125444
      Arnaud Charlet committed
    • restrict.ads, [...] (No_Exception_Handlers_Set): Only return true if… · 6790c865
      restrict.ads, [...] (No_Exception_Handlers_Set): Only return true if configurable run-time or No_Run_Time is set.
      
      2007-04-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
      	true if configurable run-time or No_Run_Time is set.
      	(Set_Restriction): Avoid setting restriction No_Elaboration_Code when
      	processing an unit which is not the one being compiled.
      
      From-SVN: r125443
      Arnaud Charlet committed
    • prj.adb (Project_Empty): Gives default value for new component Libgnarl_Needed · 38c2fd0c
      2007-04-20  Vincent Celier  <celier@adacore.com>
      
      	* prj.adb (Project_Empty): Gives default value for new component
      	Libgnarl_Needed
      
      	* prj-attr.ads: Minor reformatting
      
      	* prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
      	directory using the untouched casing.
      	(For_All_Source_Dirs): Idem.
      
      	* prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
      	directories specified with switches -aP.
      	(Add_Search_Project_Directory): New procedure
      	(Initialize_Project_Path): Put the directories in table
      	Search_Directories in the project search path.
      	(Initialize_Project_Path): For VMS, transform into canonical form the
      	project path.
      
      From-SVN: r125442
      Vincent Celier committed
    • prep.ads, prep.adb (Expression): New Boolean parameter Complemented, defaulted to False. · f95fd3b2
      2007-04-20  Vincent Celier  <celier@adacore.com>
      
      	* prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
      	defaulted to False.
      	In the "not" case, recursive call with Complemented set to True.
      	Do not allow "or" or "and" operators when Complemented is True.
      
      From-SVN: r125441
      Vincent Celier committed
    • par-ch4.adb: (P_Name): Recover from literal used as name · af1a7c88
      2007-04-20  Robert Dewar  <dewar@adacore.com>
      
      	* par-ch4.adb: (P_Name): Recover from literal used as name
      
      From-SVN: r125440
      Robert Dewar committed
    • par-ch12.adb (P_Generic_Associations): The source position of an Others… · f92f17e6
      par-ch12.adb (P_Generic_Associations): The source position of an Others association is that of the others keyword...
      
      2007-04-20  Ed Schonberg  <schonberg@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      
      	* par-ch12.adb (P_Generic_Associations): The source position of an
      	Others association is that of the others keyword, not that of the token
      	that follows the box.
      	(P_Formal_Type_Definition): Handle formal access types that carry a
      	not null indicator.
      
      	* par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
      	multiple identifier are present, save Scan_State before scanning the
      	colon, to ensure that separate trees are constructed for each
      	declaration.
      	(P_Identifier_Declarations): For object declaration, set new flag
      	Has_Init_Expression if initialization expression present.
      	(P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
      	Improve NOT NULL error messages
      
      From-SVN: r125439
      Ed Schonberg committed
    • sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components of the type… · c7ce71c2
      sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components of the type that specify the position of interface...
      
      2007-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
      	of the type that specify the position of interface tags when the type
      	inherits discriminated array components from the parent type.
      	If a component is initialized with a box, check for the presence of a
      	default expression in its declaration before using its default
      	initialization procedure.
      	(Resolve_Record_Aggregate): If a component is box-initialized, and the
      	component type has a discriminants, create a partial aggregate for it
      	by copying the discriminants of the component subtype.
      	Reject attempt to initialize a discriminant with a box.
      	(Array_Aggr_Subtype): Indicate to the backend that the size of arrays
      	associated with dispatch tables is known at compile time.
      	(Get_Value): If an association in a record aggregate has a box
      	association, and the corresponding record component has a default
      	expression, always copy the default expression, even when the
      	association has a single choice, in order to create a proper
      	association for the expanded aggregate.
      
      From-SVN: r125438
      Ed Schonberg committed
    • sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to the full type declaration. · 2b73cf68
      2007-04-20  Javier Miranda  <miranda@adacore.com>
      	    Hristian Kirtchev  <kirtchev@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
      	the full type declaration.
      	(Analyze_Component_Declaration): Add local variable E to capture the
      	initialization expression of the declaration. Replace the occurences of
      	Expression (N) with E.
      	(OK_For_Limited_Init_In_05): Allow initialization of class-wide
      	limited interface object with a function call.
      	(Array_Type_Declaration): If the declaration lacks subtype marks for
      	indices, create a simple index list to prevent cascaded errors.
      	(Is_Null_Extension): Ignore internal components created for secondary
      	tags when checking whether a record extension is a null extension.
      	(Check_Abstract_Interfaces): Add missing support for interface subtypes
      	and generic formals.
      	(Derived_Type_Declaration): Add missing support for interface subtypes
      	and generic formals.
      	(Analyze_Object_Declaration): If an initialization expression is
      	present, traverse its subtree and mark all allocators as static
      	coextensions.
      	(Add_Interface_Tag_Component): When looking for components that may be
      	secondary tags, ignore pragmas that can appear within a record
      	declaration.
      	(Check_Abstract_Overriding): an inherited function that dispatches on
      	result does not need to be overriden if the controlling type is a null
      	extension.
      	(Mentions_T): Handle properly a 'class attribute in an anonymous access
      	component declaration, when the prefix is an expanded name.
      	(Inherit_Component): If the derivation is for a private extension,
      	inherited components remain visible and their ekind should not be set
      	to Void.
      	(Find_Type_Of_Object): In the case of an access definition, always set
      	Is_Local_Anonymous_Access. We were previously not marking the anonymous
      	access type of a return object as a local anonymous type.
      	(Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
      	range with character literal bounds.
      	(Constrain_Array): Initialize the Packed_Array_Type field to Empty.
      	(Access_Subprogram_Declaration): Indicate that the type declaration
      	depends on an incomplete type only if the incomplete type is declared
      	in an open scope.
      	(Analyze_Subtype_Declaration): Handle properly subtypes of
      	synchronized types that are tagged, and that may appear as generic
      	actuals.
      	(Access_Subprogram_Declaration): An anonymous access to subprogram can
      	appear as an access discriminant in a private type declaration.
      	(Add_Interface_Tag_Components): Complete decoration of the component
      	containing the tag of a secondary dispatch table and the component
      	containing the offset to the base of the object (this latter component
      	is only generated when the parent type has discriminants --as documented
      	in this routine).
      	(Inherit_Components): Use the new decoration of the tag components to
      	improve the condition that avoids inheriting the components associated
      	with secondary tags of the parent.
      	(Build_Discriminanted_Subtype): Indicate to the backend that the
      	size of record types associated with dispatch tables is known at
      	compile time.
      	(Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
      	(Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
      	to include task, protected, and synchronized interfaces as limited
      	interfaces.
      	(Process_Discriminants): Remove the setting of
      	Is_Local_Anonymous_Access on the type of (anonymous) access
      	discriminants of nonlimited types.
      	(Analyze_Interface_Type_Declaration): Complete the decoration of the
      	class-wide entity it is is already present. This situation occurs if
      	the limited-view has been previously built.
      	(Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
      	field.
      	(Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
      	Related_Interface.
      
      From-SVN: r125437
      Javier Miranda committed
    • osinte-c.ads, [...] (Set_Library_Info_Name): Fail if base name of specified… · 71780989
      osinte-c.ads, [...] (Set_Library_Info_Name): Fail if base name of specified object file is not equal to base name of source.
      
      2007-04-20  Vincent Celier  <celier@adacore.com>
      
      	* osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
      	of specified object file is not equal to base name of source.
      
      From-SVN: r125436
      Vincent Celier committed
    • mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory separator... · b5755e2b
      2007-04-20  Vincent Celier  <celier@adacore.com>
      
      	* mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
      	separator, use instead the proper host directory separator.
      	(Copy_ALI_Files): Make sure that an already existing ALI file in the
      	ALI copy dir is writable, before doing the copy.
      
      	* mlib-utl.ads, mlib-utl.adb: 
      	(Gcc): If length of command line is too long, put the list of object
      	files in a response file, if this is supported by the platform.
      	(Ar): If invocation of the archive builder is allowed to be done in
      	chunks and building it in one shot would go above an OS dependent
      	limit on the number of characters on the command line, build the archive
      	in chunks.
      
      From-SVN: r125435
      Vincent Celier committed
    • mkdir.c (__gnat_mkdir): Add support for UTF-8. · da4d406d
      2007-04-20  Pascal Obry  <obry@adacore.com>
      
      	* mkdir.c (__gnat_mkdir): Add support for UTF-8.
      
      From-SVN: r125434
      Pascal Obry committed
    • Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run time... · 66680f7a
      2007-04-20  Jose Ruiz  <ruiz@adacore.com>
      	    Arnaud Charlet  <charlet@adacore.com>
      
      	* Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
      	time, use the default s-interr body that provides interrupt support
      	based on signals.
      	(LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
      	a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
      	g-soccon.ads, and s-taprop.adb for the marte run time.
      	(EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
      	timers are supported on marte.
      	(EH_MECHANISM for marte): Do not use ZCX.
      	(THREADSLIB for marte): Use -lmarte.
      	Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
      	Add mlib-tgt-specific.o to gnatmake objects
      	mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
      	longer of MLib.Tgt.
      	(LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
      	6, either kernel or rtp, use a specialized version of s-osinte.ads.
      
      From-SVN: r125433
      Jose Ruiz committed
    • lib-writ.adb: Handle Convention_CIL in addition to Convention_Java, since both are separated. · d3cc6a32
      2007-04-20  Arnaud Charlet  <charlet@adacore.com>
      	    Vincent Celier  <celier@adacore.com>
      
      	* lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
      	since both are separated.
      	Add support for imported CIL packages.
      	Add further special handling of "value_type" for CIL.
      	Add special handling of pragma Import for CIL.
      
      	* make.ads, make.adb: When switch -eS is used, direct all outputs to
      	standard output instead of standard error, except errors.
      	(Absolute_Path): Use untouched casing for the parent directory.
      	(Add_Library_Search_Dir): Use the untouched directory name.
      	(Add_Source_Search_Dir): Idem.
      	(Change_To_Object_Directory): Update output to use proper casing.
      	(Create_Binder_Mapping_File): Use the untouched filename to set
      	ALI_Name.
      	(Gnatmake): Use untouched library and executable directory names.
      	(Insert_Project_Sources): Use untouched filename for spec and body.
      	(Is_In_Object_Directory): Use untouched object directory.
      	(Mark_Directory): Idem.
      	(Collect_Arguments_And_Compile): Ensure that Full_Source_File always
      	contains the non-canonical filename in all cases.
      	(Change_To_Object_Directory): In verbose mode, display the name of the
      	object directory we're changing to.
      	(Compile_Sources): Make sure, when a project file is used, to compile
      	the body of the unit, when there is one, even when only the spec is
      	recorded in an ALI file.
      	(Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
      	spec to the body.
      	(Report_Compilation_Failed): New procedure
      	(Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
      	procedures moved from the spec to the body.
      	(Extract_Failure): Removed, not used
      	Replace explicit raises of exception Bind_Failed and Link_Failed with
      	calls to Make_Failed with the proper message.
      	Replace explicit raises of exception Compilation_Failed with calls to
      	procedure Report_Compilation_Failed.
      	(Initialize): Create mapping files unconditionally when using project
      	files.
      
      	* sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
      	Pragma_CIL_Constructor): New names.
      
      	* targparm.ads, targparm.adb
      	(Compiler_System_Version): Removed, no longer used.
      	(Get_Target_Parameters): Relax checks on system.ads validity. Add
      	handling of two new system flags: JVM and CLI.
      
      From-SVN: r125432
      Arnaud Charlet committed
    • sem_ch12.adb (Analyze_Associations): Diagnose use of an others association in an instance. · 437bae3f
      2007-04-20  Ed Schonberg  <schonberg@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      
      	* sem_ch12.adb (Analyze_Associations): Diagnose use of an others
      	association in an instance.
      	(Copy_Generic_Node): If the node is a string literal, no need to copy
      	its descendants.
      	(Is_Generic_Formal): For a formal subprogram, the declaration is the
      	grandparent of the entity.
      	(Analyze_Formal_Interface_Type): Transform into a full type declaration,
      	to simplify handling of formal interfaces that derive from other formal
      	interfaces.
      	(Instantiate_Subprogram_Body): The defining unit name of the body of
      	the instance should be a defining identifier.
      	(Install_Formal_Packages): make global to the package, for use in
      	instantiations of child units.
      	(Analyze_Package_Instantiation): Do not attempt to set information on an
      	enclosing master of an entry when expansion is disabled.
      	(Instantiate_Type): If the actual is a tagged synchronized type and the
      	generic ancestor is an interface, create a generic actual for the
      	corresponding record.
      	(Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
      	declaration, to ensure that the interface list is processed correctly.
      	(Inline_Instance_Body): If enclosing scope is an instance body, remove
      	its entities from visibiility as well.
      	(Pre_Analyze_Actuals): if the actual is an allocator with  constraints
      	given with a named association, analyze the expression only, not the
      	discriminant association itself.
      	(Reset_Entity): If the analysis of a selected component is transformed
      	into an expanded name in the prefix of a call with parameters, do not
      	transform the original node into an expanded name, to prevent visibility
      	errors in the case of nested generics.
      	(Check_Private_View): For an array type, check whether the index types
      	may need exchanging.
      
      From-SVN: r125431
      Ed Schonberg committed
    • layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package spec from body · f35b24e9
      2007-04-20  Robert Dewar  <dewar@adacore.com>
      
      	* layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
      	spec from body
      	(Layout_Type): Fix recomputation of size from alignment.
      
      From-SVN: r125430
      Robert Dewar committed
    • initialize.c (__gnat_initialize for vxworks): Update documentation on the ZCX support... · 27f92b16
      2007-04-20  Olivier Hainque  <hainque@adacore.com>
      
      	* initialize.c (__gnat_initialize for vxworks):  Update documentation
      	on the ZCX support, using different sets of crtstuff objects than with
      	GCC 3.4.
      
      From-SVN: r125429
      Olivier Hainque committed
    • init.c: Do not adjust IP of an imported VMS exception of ia64. · dc642211
      2007-04-20  Tristan Gingold  <gingold@adacore.com>
      	    Olivier Hainque  <hainque@adacore.com>
      
      	* init.c: Do not adjust IP of an imported VMS exception of ia64.
      	LIB$STOP is called to raise an exception and the IP of the exception
      	is the instruction right after the call.
      	(__gnat_adjust_context_for_raise, AIX): Implement.
      	(__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
      	 adjust_context_for_raise before Raise_From_Signal_Hanler.
      	(__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
      	siginfo is passed to the handler, necessary to let the zcx propagation
      	engine unwind past it.
      
      From-SVN: r125428
      Tristan Gingold committed
    • a-clrefi.adb, [...]: New files · 10e77af2
      2007-04-20  Vincent Celier  <celier@adacore.com>
      	    Arnaud Charlet  <charlet@adacore.com>
      
      	* a-clrefi.adb, a-clrefi.ads: New files
      
      	* impunit.adb: Add s-os_lib in the list of user visible units.
      	(Non_Imp_File_Names_95): Add a-clrefi to this list
      	Remove obsolete run-time entries.
      	(Non_Imp_File_Names_05): Add Ada 2005 entries for:
      	 "a-exetim" -- Ada.Execution_Time
      	 "a-extiti" -- Ada.Execution_Time.Timers
      
      	* mlib-prj.ads, mlib-prj.adb
      	(Build_Library): Use untouched object dir and library dir. At the
      	same time makes sure that the checks are done using the canonical
      	form. Removes hard-coded directory separator and use the proper host
      	one instead.
      	(Process_Project): Do not look in object directory to check if libgnarl
      	is needed for a library, if there is no object directory.
      	(Build_Library): Scan the ALI files to decide if libgnarl is needed for
      	linking.
      	(Build_Library): When invoking gnatbind, use a response file if the
      	total size of the arguments is too large.
      
      	* Makefile.rtl: (g-sttsne): New object file.
      	Add entry for a-clrefi, s-utf_32, System.Exceptions
      
      	* Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
      	(GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
      	(GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
      	Change g-string to s-string, g-os_lib to s-os_lib
      	Change all g-utf_32 references to s-utf_32
      
      From-SVN: r125427
      Vincent Celier committed
    • hostparm.ads (Normalized_CWD): Use the host directory separator instead of the… · 26fa2a35
      hostparm.ads (Normalized_CWD): Use the host directory separator instead of the hardcoded forward slash which...
      
      2007-04-20  Pascal Obry  <obry@adacore.com>
      
      	* hostparm.ads (Normalized_CWD): Use the host directory separator
      	instead of the hardcoded forward slash which is not the proper
      	character on Windows for example.
      	(Java_VM): Removed.
      
      From-SVN: r125426
      Pascal Obry committed