1. 06 Jun, 2007 40 commits
    • 2007-06-06 Benjamin Kosnik <bkoz@redhat.com> · c846e485
      	    Frank Mori Hess  <frank.hess@nist.gov>
      	
      
      
      Co-Authored-By: Frank Mori Hess <frank.hess@nist.gov>
      
      From-SVN: r125485
      Benjamin Kosnik committed
    • configure.ac: Update TOOLS_TARGET_PAIRS configuration to match gcc/ada/Makefile.in. · 4dced6f9
              * configure.ac: Update TOOLS_TARGET_PAIRS configuration to match
              gcc/ada/Makefile.in.
      
              * configure: Regenerated.
      
      From-SVN: r125484
      Arnaud Charlet committed
    • re PR tree-optimization/32216 (ICE: verify_stmts failed (invalid reference… · 9f106823
      re PR tree-optimization/32216 (ICE: verify_stmts failed (invalid reference prefix) with -ftree-vectorize)
      
      	PR tree-optimization/32216
      	* tree-vectorizer.c (supportable_widening_operation): Determine
      	signedness of FIX_TRUNC_EXPR from output operand.
      	(supportable_narrowing_operation): Ditto.
      	* tree-vect-generic.c (expand_vector_operations_1): Determine
      	signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
      	from input operand.
      
      testsuite/ChangeLog:
      	
      	PR tree-optimization/32216
      	* gcc.dg/vect/pr32216.c: New test.
      
      From-SVN: r125482
      Uros Bizjak committed
    • Resync · ec11296f
      From-SVN: r125481
      Arnaud Charlet committed
    • Add new tests · 1d46f74e
      From-SVN: r125480
      Arnaud Charlet committed
    • Minor editing. · 4491f0ae
      Update constants.
      Update copyright notice.
      
      From-SVN: r125479
      Arnaud Charlet committed
    • a-reatim.adb: Documentation addition · a99ada67
      2007-04-20  Robert Dewar  <dewar@adacore.com>
      
      	* a-reatim.adb: Documentation addition
      
      	* g-cgideb.adb: Minor code reorganization
      
      	* tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
      	mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
      	s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
      
      	* debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
      	function.  Change name New_Scope to Push_Scope
      	(Get_Debug_Flag_K): Remove unused obsolete function.
      
      	* exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
      	Push_Scope.
      
      	* makeusg.adb: Update Copyright notice
      	Add line for switch -aP
      
      	* makeusg.adb: Fix wording of some usage messages
      
      	* s-assert.adb (Raise_Assert_Failure): Add call to
      	Debug_Raise_Assert_Failure.
      
      	* s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
      	(2, Standard'Alignment) for compatibility with AAMP (where alignment
      	is restricted to 1).
      
      	* s-wchjis.adb: Remove use of System.Pure_Exceptions
      
      	* tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
      	node location to No_Location when we're not debugging the expanded
      	code.
      
      From-SVN: r125478
      Robert Dewar committed
    • a-cidlli.ads, [...] (Empty_Vector, [...]): Move this object declaration after… · 7d2e68b3
      a-cidlli.ads, [...] (Empty_Vector, [...]): Move this object declaration after freezing point of all its associated tagged...
      
      2007-04-20  Javier Miranda  <miranda@adacore.com>
      
      	* a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads, 
      	a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
      	declaration after freezing point of all its associated tagged types;
      	otherwise such types are frozen too early.
      
      From-SVN: r125477
      Javier Miranda committed
    • makegpr.adb (Add_Archive_Path): Use untouched object and library dirs and library name. · d579fabd
      2007-04-20  Pascal Obry  <obry@adacore.com>
      	    Vincent Celier  <celier@adacore.com>
      
      	* makegpr.adb (Add_Archive_Path): Use untouched object and library
      	dirs and library name.
      	(Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
      	comments.
      	(Build_Library): Idem.
      	(Compile_Individual_Sources): Idem.
      	(Compile_Link_With_Gnatmake): Idem.
      	(Compile_Sources): Idem.
      	(Get_Imported_Directories): Idem.
      	(Link_Executables): Idem. Same change for the executable dir.
      	(Check_Compilation_Needed): C_Source_Path new variable containing
      	the canonical form of Source_Path to check against the source names
      	in the dependency file.
      	(Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
      	verbose mode, display the name of the object directory we're changing
      	to.
      	(Saved_Switches): New name of table X_Switches
      	(Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
      	(Usage): New line for switch -aP
      	(Get_Imported_Directories.Add): Make sure that Add_Arg is True before
      	testing if a directory should be added to the search path.
      
      From-SVN: r125476
      Pascal Obry committed
    • xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and -gnatw.C) · e08b38f5
      2007-04-20  Vincent Celier  <celier@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      
      	* xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
      	-gnatw.C)
      
      	* gnat_ugn.texi: Fix ordering of -g switch for gnatmake
      	Document gnatbind switch -a
      	(case Constructions): Document that variables declarations are allowed
      	for previously declared variables.
      	Fix external lib project example
      	-gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
      	Indicate that "#if not X or Y then" is not allowed in input files to
      	gnatprep.
      	Document gnatw.x and gnatw.X warning flags
      	Mention -Winline switch to activate warnings when back-end inlining is
      	ineffective.
      	Add gnatcheck rule descriptions
      	Describe how to use the GNAT driver to call a tool on a closure.
      	Describe how to run project-wide checks or metrics.
      	Document gnatbind's -R option
      	Updated to account for Ada 2005 support
      
      	* gnat_rm.texi (Case Construction): Allow variable declarations for
      	previously declared variables.
      	(Representation Clauses and Pragmas): Lift restriction on alignment
      	clauses for record types.
      	(Ada.Characters.*): Fix typo in reference to A.3.3(27).
      	Document No_Exception_Propagation restriction
      	Document No_Body pragma
      	Updated to account for Ada 2005 support; corrected some typos
      	(Implementation Defined Pragmas): Document pragma Universal_Aliasing.
      
      	* gnat-style.texi: Make it clear that we never use mode IN for
      	procedures or functions
      
      	* ug_words: Add entries for -gnatw.x and -gnatw.X
      	Add entries for -gnatw.c/.C
      
      From-SVN: r125475
      Vincent Celier committed
    • vms_conv.adb (Process_Argument): Keep arguments starting with '+' as is. · 9de6e082
      2007-04-20  Vincent Celier  <celier@adacore.com>
      
      	* vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
      	is.
      
      	* vms_data.ads: Add entries for -gnatw.x and -gnatw.X
      	/STYLE_CHECKS=GNAT: Change meaning to -gnatyg
      	/GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
      	Add missing comment for /OPTIMIZE=SPACE
      	Add entry for OPTIMIZE=SPACE
      	Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
      	Add documentation for new qualifiers corresponding to -gnatw.c/.C
      
      From-SVN: r125474
      Vincent Celier committed
    • types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to PE_Non_Transportable_Actual. · 96efeb4f
      2007-04-20  Thomas Quinot  <quinot@adacore.com>
      
      	* types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
      	PE_Non_Transportable_Actual.
      	(By_Descriptor_Last): New constant.
      	(By_Copy_Return): Likewise.
      
      From-SVN: r125473
      Thomas Quinot committed
    • tracebak.c (FRAME_OFFSET): Add parameter FP. · e7ad2039
      2007-04-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
      	add the stack bias if the offset is computed from a frame address.
      	(__gnat_backtrace): Adjust for above change.
      
      From-SVN: r125472
      Eric Botcazou committed
    • s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the VxWorks task… · c956c1be
      s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the VxWorks task descriptor in the Ada run time...
      
      2007-04-20  Matthew Gingell  <gingell@adacore.com>
      	    Jose Ruiz  <ruiz@adacore.com>
      
      	* s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
      	VxWorks task descriptor in the Ada run time, call a C subprogram
      	(__gnat_get_stack_info) that extracts the required information.
      
      	* sysdep.c: Back out temporary lynxos workaround.
      	(__gnat_get_stack_info): Add this procedure that passes to the Ada run
      	time the stack information associated to the currently executing task.
      	Only VxWorks systems require this function.
      
      From-SVN: r125471
      Matthew Gingell committed
    • switch-b.adb (Scan_Binder_Switches): Add processing for new switches -R and -Z · c7f0bdd2
      2007-04-20  Vincent Celier  <celier@adacore.com>
      
      	* switch-b.adb (Scan_Binder_Switches): Add processing for new
      	switches -R and -Z
      
      	* switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
      	(Scan_Make_Switches): Recognize new switch -aP
      
      From-SVN: r125470
      Vincent Celier committed
    • stylesw.ads, [...] (Set_GNAT_Style_Check): New procedure · 94a198aa
      2007-04-20  Robert Dewar  <dewar@adacore.com>
      
      	* stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
      	(Set_Style_Check_Options): Recognize new -gnatyg style switch
      
      	* switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
      	Warn_On_Non_Local_Exception to False, to turn off warnings for
      	No_Exception_Propagation in ZFP runtime.
      	(Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
      	back-ends.
      	(Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
      
      From-SVN: r125469
      Robert Dewar committed
    • a-dirval-vms.adb, [...] (Windows): New Boolean function. · c2a49ce6
      2007-04-20  Vincent Celier  <celier@adacore.com>
      
      	* a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
      	function.
      
      	* a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
      	letter if it is not followed by a '/' or a '\'.
      	(Windows): New Boolean function
      
      	* a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
      	Ada 2005.
      	(Containing_Directory): On Windows, keep at least one '/' or '\' after a
      	drive letter.
      	(Containing_Directory): Raise Use_Error when the directory is a root
      	directory.
      	(Extension): When returning the result, use a conversion to Result_Type,
      	not a qualification.
      
      From-SVN: r125468
      Vincent Celier committed
    • s-stoele.ads, [...]: Move inline_always subprograms earlier than their first call. · cb65368d
      2007-04-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
      	than their first call.
      	Add type Dummy_Communication_Block used in the generation of the pre-
      	defined dispatching primitive _disp_asynchronous_select.
      	(Storage_Element): Put Pragma Universal_Aliasing on it.
      
      From-SVN: r125467
      Eric Botcazou committed
    • g-soccon-darwin.ads, [...]: Add new constant Thread_Blocking_IO... · 4ce7ff88
      2007-04-20  Thomas Quinot  <quinot@adacore.com>
      
      	* g-soccon-darwin.ads, gen-soccon.c: Add new constant
      	Thread_Blocking_IO, always True by default, set False on a per-runtime
      	basis.
      	Add Windows-specific constants
      	Add new constant Need_Netdb_Buffer.
      	Add new macros to indicate whether getXXXbyYYY is thread safe and, if
      	not, whether to use getXXXbyYYY_r.
      
      	* gsocket.h: Add new constant Need_Netdb_Buffer.
      	Add new macros to indicate whether getXXXbyYYY is thread safe and, if
      	not, whether to use getXXXbyYYY_r.
      
      From-SVN: r125466
      Thomas Quinot committed
    • 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