1. 06 Jun, 2007 40 commits
    • 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
    • g-trasym.ads, [...]: Update list of supported targets Add note about symbolic traceback · 45fdc755
      2007-04-20  Robert Dewar  <dewar@adacore.com>
      
      	* g-trasym.ads, g-traceb.ads: Update list of supported targets
      	Add note about symbolic traceback
      
      From-SVN: r125425
      Robert Dewar committed
    • g-soccon.ads: Add new constant Thread_Blocking_IO... · 9aeef76b
      2007-04-20  Thomas Quinot  <quinot@adacore.com>
      
      	* g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
      	default, set False on a per-runtime basis.
      	(Need_Netdb_Buffer): New constant.
      
      	* g-socket.ads, g-socket.adb: Import new package
      	GNAT.Sockets.Thin.Task_Safe_NetDB.
      	(Raise_Host_Error): Use Host_Error_Message from platform-specific thin
      	binding to obtain proper message.
      	(Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
      	Replace various occurrences of Arry (Arry'First)'Address with the
      	equivalent Arry'Address (GNAT always follows implementation advice from
      	13.3(14)).
      	(Get_Host_By_Address, Get_Host_By_Name,
      	Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
      	instead, rely on platform-specific task safe netdb operations provided
      	by g-socthi.
      
      	* g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
      	parameter Process_Blocking_IO.
      	(Host_Error_Messages): Add stub body.
      	(GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
      	(Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
      	Safe_Getservbyport): Move functions into new child package
      	Task_Safe_NetDB.
      	(Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
      	Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
      	(In_Addr): Add alignment clause.
      
      From-SVN: r125424
      Thomas Quinot committed
    • g-regpat.adb (Quote): Fix improper quoting of '.' · 96338f19
      2007-04-20  Emmanuel Briot  <briot@adacore.com>
      
      	* g-regpat.adb (Quote): Fix improper quoting of '.'
      
      From-SVN: r125423
      Emmanuel Briot committed
    • g-pehage.adb (Produce): Open output files in Binary mode... · bdfc3830
      2007-04-20  Thomas Quinot  <quinot@adacore.com>
      
      	* g-pehage.adb (Produce): Open output files in Binary mode, so that
      	they have UNIX line endings (LF only) even on Windows, and thus pass
      	all GNAT style checks.
      
      From-SVN: r125422
      Thomas Quinot committed
    • g-os_lib.ads, [...] (Normalize_Pathname.Get_Directory): Correct obvious bug… · 690792a2
      g-os_lib.ads, [...] (Normalize_Pathname.Get_Directory): Correct obvious bug (return Dir; instead of return Directory;).
      
      2007-04-20  Vincent Celier  <celier@adacore.com>
      
      	* g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
      	Correct obvious bug (return Dir; instead of return Directory;).
      	(Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
      
      From-SVN: r125421
      Vincent Celier committed
    • gnatsym.adb: Update Copyright notice · 751089b2
      2007-04-20  Vincent Celier  <celier@adacore.com>
      
      	* gnatsym.adb: Update Copyright notice
      	(Parse_Cmd_Line): Accept new switch -D
      	(Gnatsym): In Direct policy (switch -D) copy reference file to symbol
      	 file.
      
      	* prj.ads (Policy): New policy Direct
      	(Yes_No_Unknown): New enumeration type
      	(Project_Data): New component Libgnarl_Needed
      
      	* prj-nmsc.adb (Check_For_Source): When recording a source file make
      	use the untouched pathname casing.
      	(Get_Directories): Ensure that the Display_Exec_Directory is using the
      	proper casing on non case-sensitive platforms like Windows.
      	(Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
      	on all platforms, as it is not possible to know which one is allowed
      	before processing the project files.
      	(Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
      	specified when symbol policy is Direct. Check that when there is a
      	symbol file defined (either by default or with attribute
      	Library_Symbol_File) it is not the same as the reference symbol file.
      	(Check_Stand_Alone_Library): Recognize new symbol policy Direct.
      	(Look_For_Sources): Allow Locally_Removed_Files to be declare in non
      	extending projects.
      	(Record_Ada_Source): Record a source that has been locally removed in an
      	imported project.
      
      	* symbols.ads (Policy): New policy Direct
      
      	* symbols-vms.adb (Initialize): Take new policy Direct in case
      	statement
      
      From-SVN: r125420
      Vincent Celier committed
    • gmem.c: Add support for timestamps on memory operations. · 8cc39ff2
      2007-04-20  Vasiliy Fofanov  <fofanov@adacore.com>
      
      	* gmem.c: Add support for timestamps on memory operations.
      
      	* memtrack.adb, gnatmem.adb: Add support for timestamps on memory
      	operations (not used currently, just foundation for future
      	enhancements). Add possibility to perform full dump of gmem.out file.
      	(Print_Back_Traces): Declare accesses to root arrays constants since
      	they aren't modified.
      	(Print_Back_Traces): allocate root arrays on the heap rather than stack.
      
      From-SVN: r125419
      Vasiliy Fofanov committed
    • gnatls.adb: Add 3 spaces before the default project directory when... · 9fd79385
      2007-04-20  Vincent Celier  <celier@adacore.com>
      
      	* gnatls.adb: 
      	Add 3 spaces before the default project directory when displaying
      	the project search path.
      	Add new command line switch '-l' to display license information.
      
      From-SVN: r125418
      Vincent Celier committed
    • gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK= has been… · 37ed3e06
      gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK= has been specified Correct error...
      
      2007-04-20  Vincent Celier  <celier@adacore.com>
      
      	* gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
      	has been specified
      	Correct error message when invocation of the linker fails
      	Add explicit size clause for the C imported variables
      	Object_List_File_Supported and Using_GNU_Linker to emphasize that
      	we expect char size.
      	Read target parameters earlier, since this is needed to set
      	Target_VM properly. Also do not use -static/shared-libgcc for non GCC
      	targets.
      
      From-SVN: r125417
      Vincent Celier committed
    • gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept switch -P · 53a0bb66
      2007-04-20  Vincent Celier  <celier@adacore.com>
      
      	* gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
      	switch -P
      	(ASIS_Main): New global variable
      	(Get_Closure): New procedure
      	(GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
      	check, metric or pretty. Call Get_Closure in this case.
      	(Check_Files): For GNAT LIST, check all sources of all projects when
      	All_Projects is True.
      	(GNATCmd): Accept -U for GNAT LIST
      
      From-SVN: r125416
      Vincent Celier committed
    • g-debpoo.ads, [...] (Free_Physically.Free_Blocks): Use the absolute value of… · f38df0e1
      g-debpoo.ads, [...] (Free_Physically.Free_Blocks): Use the absolute value of Header.Block_Size when...
      
      2007-04-20  Vincent Celier  <celier@adacore.com>
      	    Emmanuel Briot  <briot@adacore.com>
      	    Olivier Hainque  <hainque@adacore.com>
      
      	* g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
      	absolute value of Header.Block_Size when displaying the freed physical
      	memory in traces.
      	(Allocate): Compute Storage_Address using Integer_Address, not
      	Storage_Offset, because the range of Storage_Offset may not be large
      	enough.
      	(Configure): New parameter Low_Level_Traces
      	(Allocate, Deallocation, Free_Physically): Added low-level traces
      	(Configure): new parameter Errors_To_Stdout.
      	(Output_File): new subprogram
      	(Deallocate, Dereference): Send error messages to the proper stream
      	(Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
      	documented. Previous code would send it to the current output file
      	defined in GNAT.IO, which might not be stdout
      	(Is_Valid): Adjust comment to mention that a positive reply means that
      	Header_Of may be used to retrieve the allocation header associated with
      	the subprogram Storage address argument. Return False early if this
      	address argument is misaligned.
      
      From-SVN: r125415
      Vincent Celier committed
    • g-comlin.ads, [...]: Add new warning for renaming of function return objects · fbe627af
      2007-04-20  Robert Dewar  <dewar@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      
      	* g-comlin.ads, g-comlin.adb: 
      	Add new warning for renaming of function return objects
      
      	* opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
      	(Tree_Read): Use size of object instead of type'object_size, since the
      	latter is incorrect for packed array types.
      	(Tree_Write): Same fix
      
      	* opt.ads: Add new warning for renaming of function return objects
      	(Generating_Code): New boolean variable used to indicate that the
      	frontend as finished its work and has called the backend to process
      	the tree and generate the object file.
      	(GCC_Version): Is now private
      	(Static_Dispatch_Tables): New constant declaration.
      	(Overflow_Checks_Unsuppressed): New flag.
      	(Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
      	(List_Closure): New flag for gnatbind (-R)
      	Zero_Formatting: New flag for gnatbind (-Z)
      	(Special_Exception_Package_Used): New flag.
      	(Warn_On_Unrepped_Components): New flag.
      
      	* sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
      	unit is a compilation unit, rather than relying on its scope, so that
      	Standard can be renamed.
      	(Analyze_Object_Renaming): Add new warning for renaming of function
      	return objects.
      	Also reject attempt to rename function return object in Ada 83 mode.
      	(Attribute_Renaming): In case of tagged types, add the body of the
      	generated function to the freezing actions of the type.
      	(Find_Type): A protected type is visible right after the reserved word
      	"is" is encountered in its type declaration. Set the entity and type
      	rather than emitting an error message.
      	(New_Scope): Properly propagate Discard_Names to inner scopes
      	(Check_Nested_Access): New procedure.
      	(Has_Nested_Access, Set_Has_Nested_Access): New procedures.
      	(Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
      
      	* sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
      	Add new warning for renaming of function return objects
      	(Check_References): Suppress warnings for objects whose type or
      	base type has Warnings suppressed.
      	(Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
      	(Set_Warning_Switch): Include new -gnatwc in -gnatwa
      
      From-SVN: r125414
      Robert Dewar committed
    • g-catiio.ads, [...] (Image): Check for null picture string · f24f72e8
      2007-04-20  Robert Dewar  <dewar@adacore.com>
      
      	* g-catiio.ads, g-catiio.adb (Image): Check for null picture string
      
      From-SVN: r125413
      Robert Dewar committed
    • g-hesorg.ads, [...]: Update documentation GNAT.Heap/Bubble_Sort_G is now pure · a2fd0ecb
      2007-04-20  Robert Dewar  <dewar@adacore.com>
      
      	* g-hesorg.ads, g-heasor.ads,
      	g-busorg.ads, g-bubsor.ads: Update documentation
      	GNAT.Heap/Bubble_Sort_G is now pure
      
      From-SVN: r125412
      Robert Dewar committed
    • frontend.adb (Frontend): Return immediately if the main source could not be parsed... · 804f7040
      2007-04-20  Vincent Celier  <celier@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      
      	* frontend.adb (Frontend): Return immediately if the main source could
      	not be parsed, because of preprocessing errors.
      
      	* gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
      	(Gnat1drv): Exit with errors if the main source could not be parsed,
      	because of preprocessing errors.
      	(Check_Rep_Info): New procedure
      
      From-SVN: r125411
      Vincent Celier committed
    • exp_util.ads, [...] (Expand_Subtype_From_Expr): In Ada2005... · 0712790c
      2007-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
      	object of a limited type can be initialized with a call to a function
      	that returns in place. If the limited type has unknown discriminants,
      	and the underlying type is a constrained composite type, build an actual
      	subtype from the function call, as is done for private types.
      	(Side_Effect_Free): An expression that is the renaming of an object or
      	whose prefix is the renaming of a object, is not side-effect free
      	because it may be assigned through the renaming and its value must be
      	captured in a temporary.
      	(Has_Controlled_Coextensions): New routine.
      	(Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
      	as is done for other limited types.
      	(Non_Limited_Designated_Type): new predicate.
      	(Make_CW_Equivalent_Type): Modified to handle class-wide interface
      	objects.
      	Remove all handling of with_type clauses.
      
              * par-ch10.adb: Remove all handling of with_type clauses.
      
      	* lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
      	checksum if the main source could not be parsed.
      	(Loat_Unit): When processing a child unit, determine properly whether
      	the parent unit is a renaming when the parent is itself a child unit.
      	Remove handling of with_type clauses.
      
      	* sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
      	(Set_Is_Static_Coextension): New procedure.
      	(Has_Local_Raise): New function
      	(Set_Has_Local_Raise): New procedure
      	(Renaming_Exception): New field
      	(Has_Init_Expression): New flag
      	(Delay_Finalize_Attach): Remove because flag is obsolete.
      	(Set_Delay_Finalize_Attach): Remove because flag is obsolete.
      	Remove all handling of with_type clauses.
      	(Exception_Junk): Can now be set in N_Block_Statement
      
      From-SVN: r125410
      Ed Schonberg committed
    • exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that are interface type. · 2ed216d0
      2007-04-20  Robert Dewar  <dewar@adacore.com>
      
      	* exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
      	are interface type.
      	(Build_Elementary_Input_Call): For floating-point use right type in the
      	absence of strange size or stream size clauses.
      	(Build_Elementary_Write_Call): Same fix
      	(Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
      	set to value that does not match base type size.
      
      From-SVN: r125409
      Robert Dewar committed
    • exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a default… · 2fa9443e
      exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a default initialization on an imported object...
      
      2007-04-20  Ed Schonberg  <schonberg@adacore.com>
      	    Arnaud Charlet  <charlet@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
      	default initialization on an imported object, when there is no
      	initialization call generated for it.
      	(Expand_Pragma_Assert): Add handling of No_Exception_Propagation
      	restriction
      
      	* snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
      	Static_Elaboration_Desired.
      	Remove pragma Thread_Body.
      	Implement a new pragma No_Body
      	Removes the Explicit_Overriding pragma
      	Remove Optional_Overriding pragma
      	(Prag): Deal with Universal_Aliasing.
      	(Name_CIL, Name_CIL_Constructor, Convention_CIL,
      	Pragma_CIL_Constructor): New names.
      
      	* sem_cat.adb (Validate_Object_Declaration): An initialization that
      	uses the equivalent aggregate of a type must be treated as an implicit
      	initialization.
      	(Get_Categorization): Check a unit for pragma Preelaborate only if it
      	has none of the other categories.
      	(Process_Import_Or_Interface_Pragma): Report an error for an attempt
      	to apply Import to an object renaming declaration.
      
      	* sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
      	from a C++ class should be declared as limited and that it will be
      	considererd limited.
      	(Analyze_Pragma): Warn that a type specified with pragma CPP_Class
      	should be declared as limited and that it will be considererd limited.
      	(Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
      	(Analyze_Pragma, case Export): Diagnose export of enumeration literal
      	(Analyze_Pragma): Deal with Universal_Aliasing.
      	(Sig_Flags): Likewise.
      	(Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
      	(Overflow_Checks_Unsuppressed): New flag.
      	(Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
      	(Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
      	case of JVM or .NET targets, and compiling user code.
      	Add debugging convenience routine rv
      
      From-SVN: r125408
      Ed Schonberg committed
    • exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to compute masking constant... · 7d8b9c99
      2007-04-20  Robert Dewar  <dewar@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
      	compute masking constant, since we now set Esize properly to the
      	underlying size.
      	(Create_Packed_Array_Type): Set proper Esize value adjusted as required
      	to match the alignment.
      	(Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
      	packed arrays of 8 bits or less.
      
      	* freeze.adb (Freeze_Entity): When freezing the formals of a
      	subprogram, freeze the designated type of a parameter of an access type
      	only if it is an access parameter.
      	Increase size of C convention enumeration object
      	(Freeze_Entity, array type case): Make sure Esize value is properly
      	adjusted for the alignment if it is known.
      	(Freeze_Entity, array type case): When checking bit packed arrays for
      	the size being incorrect, check RM_Size, not Esize.
      	(Freeze_Record_Type): Check for bad discriminated record convention
      	(In_Exp_Body): Return true if the body is generated for a subprogram
      	renaming, either an attribute renaming or a renaming as body.
      	(Check_Itype): If the designated type of an anonymous access component
      	is a non-protected subprogram type, indicate that it is frozen, to
      	prevent out-of-scope freeze node at some subsequent call.
      	(Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
      	only if the subprogram is neither imported nor exported, as well as the
      	NCA descriptor class if the subprogram is exported.
      
      From-SVN: r125407
      Robert Dewar committed
    • exp_intr.adb (Expand_Unc_Deallocation): Add missing support for deallocation of… · b545a0f6
      exp_intr.adb (Expand_Unc_Deallocation): Add missing support for deallocation of class-wide interface objects.
      
      2007-04-20  Javier Miranda  <miranda@adacore.com>
      
      	* exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
      	deallocation of class-wide interface objects.
      	(Expand_Dispatching_Constructor_Call): Take into account that if the
      	result of the dispatching constructor is an interface type, the
      	function returns a class-wide interface type; otherwise the returned
      	object would be actual. The frontend previously accepted returning
      	interface types because Expand_Interface_Actuals silently performed
      	the management of the returned type "as if" it were a class-wide
      	interface type.
      	(Expand_Dispatching_Constructor_Call): Replace call to
      	Make_DT_Access_Action by direct call to Make_Function_Call.
      
      From-SVN: r125406
      Javier Miranda committed