1. 16 Jun, 2005 40 commits
    • makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if gprmake was invoked with -d. · dc8f5791
      2005-06-14  Vincent Celier  <celier@adacore.com>
      
      	* makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
      	gprmake was invoked with -d.
      	(Compile_Sources): If -d was used, output the "completed ..." message
      	for each compilation.
      	(Scan_Arg): Recognize new switch -d
      	When -c and at least one main is specified, set
      	Unique_Compile to True to guarantee that no other sources will be
      	compiled.
      
      From-SVN: r101068
      Vincent Celier committed
    • vms_conv.ads, [...]: Remove "Library" command. · a46edbad
      2005-06-14  Doug Rupp  <rupp@adacore.com>
      	    Vincent Celier  <celier@adacore.com>
      
      	* vms_conv.ads, vms_conv.adb: Remove "Library" command.
      	Update copyright.
      
      	* vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
      	Remove "Library" command.
      	Change keyword for style check -gnatyd from NOCRLF to
      	DOS_LINE_ENDINGS.
      	Remove useless second style check keyword NONE
      	Remove help documentation for inexistent style check keyword
      	RM_COLUMN_LAYOUT.
      	Add help documentation for style check keywords DOS_LINE_ENDINGS,
      	UNNECESSARY_BLANK_LINES and XTRA_PARENS
      	Add UNNECESSARY_BLANK_LINES for -gnatyu
      	Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
      
              * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
      
      From-SVN: r101067
      Doug Rupp committed
    • styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message. · f3d771b3
      2005-06-14  Sergey Rybin  <rybin@adacore.com>
      
      	* styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
      
      From-SVN: r101066
      Sergey Rybin committed
    • nmake.adt: Modify header so that xnmake does not generate output files with multiple blank... · d026bfa5
      2005-06-14  Robert Dewar  <dewar@adacore.com>
      
      	* nmake.adt: Modify header so that xnmake does not generate output
      	files with multiple blank lines.
      
              * treeprs.adt: Remove a blank line so that output from xtreeprs does
              not have an extra blank line
      
      From-SVN: r101065
      Robert Dewar committed
    • 2005-06-14 Arnaud Charlet <charlet@adacore.com> · ff7cce69
      	    Jose Ruiz  <ruiz@adacore.com>
      
      	* s-tposen.adb, s-tpobop.adb
      	(Exceptional_Complete_Rendezvous): Save the occurrence and not only
      	the exception id.
      	(PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
      	there is no violation of the Max_Entry_Queue_Length restriction (if it
      	has been set); Program_Error is raised otherwise.
      	(Requeue_Call): Before requeuing the task on the target entry queue we
      	check that there is no violation of the Max_Entry_Queue_Length
      	restriction (if it has been set); Program_Error is raised otherwise.
      
      From-SVN: r101064
      Arnaud Charlet committed
    • s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition. · f51ab33b
      2005-06-14  Arnaud Charlet  <charlet@adacore.com>
      
      	* s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
      
      From-SVN: r101063
      Arnaud Charlet committed
    • s-strxdr.adb: Follow AI95-00132 · ab129900
      2005-06-14  Thomas Quinot  <quinot@adacore.com>
      
      	* s-strxdr.adb: Follow AI95-00132
      
      From-SVN: r101062
      Thomas Quinot committed
    • sem_warn.adb (Warn_On_Known_Condition): If the constant expression appears… · bd6f5b5c
      sem_warn.adb (Warn_On_Known_Condition): If the constant expression appears within a negation (either from source or as...
      
      2005-06-14  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_warn.adb (Warn_On_Known_Condition): If the constant expression
      	appears within a negation (either from source or as a rewriting of
      	inequality) adjust text of warning accordingly.
      
      From-SVN: r101061
      Ed Schonberg committed
    • re PR ada/10671 (improve error message for named notation used in pragma) · 59e5fbe0
      2005-06-14  Robert Dewar  <dewar@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      
      	PR ada/10671
      
      	* sem_prag.adb: Implement pragma Persistent_BSS
      	Remove obsolete pragma Persistent_Data, Persistent_Object
      	Set Ada_Version_Explicit, for implementation of AI-362
      	Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
      	Add processing for pragma Pure_05 and Preelaborate_05
      	Add processing for Assertion_Policy pragma
      	Add pragma identifiers for Assert
      	(Analyze_Pragma, case Assert): Check number of arguments
      	(Process_Inline): Additional guard against an illegal program, where the
      	argument of the pragma is undefined, and warnings on redundant
      	constructs are enabled.
      	(Analyze_Pragma, case Obsolescent): Allow an optional second argument
      	Ada_05 to this pragma, specifying that the pragma is only active in
      	Ada_05 mode.
      	(Check_Arg_Order): New procedure
      	Add appropriate calls to this procedure throughout
      	Also throughout, check entity name before doing any other checks
      
      	* snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
      	Remove obsolete pragma Persistent_Data, Persistent_Object
      	Add entries for pragma Pure_05 and Preelaborate_05
      	Add entries for Assertion_Policy pragma and associated names
      	Add some names for pragma argument processing
      
      	* tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
      
      From-SVN: r101060
      Robert Dewar committed
    • sem_eval.adb (Subtypes_Statically_Match): Use discriminant constraint of full view if present... · 6eaf4095
      2005-06-14  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_eval.adb (Subtypes_Statically_Match): Use discriminant
      	constraint of full view if present, when other type is discriminated.
      	(Eval_Relational_Op): Recognize tests of pointer values against Null,
      	when the pointer is known to be non-null, and emit appropriate warning.
      
      From-SVN: r101059
      Ed Schonberg committed
    • sem_case.adb (Expand_Others_Choice): Improve warning. · 4875fbba
      2005-06-14  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_case.adb (Expand_Others_Choice): Improve warning.
      
      From-SVN: r101058
      Ed Schonberg committed
    • sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the expression… · bc49df98
      sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the expression when the component type is an anonymous...
      
      2005-06-14  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
      	expression when the component type is an anonymous access type to
      	ensure that appropriate accessibility checks are done.
      
      	* sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
      	expression of an assignment when the target object is of an anonymous
      	access type. This ensures that required accessibility checks are done.
      	(One_Bound): Move the check for type Universal_Integer to
      	Process_Bounds.
      	(Process_Bounds): Check whether the type of the preanalyzed range is
      	Universal_Integer, and in that case set Typ to Integer_Type prior
      	to setting the type of the original range and the calls to One_Bound.
      
      From-SVN: r101057
      Gary Dismukes committed
    • scng.adb: Add call to new Check_EOF routine · 357ac4df
      2005-06-14  Robert Dewar  <dewar@adacore.com>
      
      	* scng.adb: Add call to new Check_EOF routine
      	(Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
      	Add some comments regarding wide character handling
      
      	* style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
      
      	* stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
      
      	* g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
      	characters are now considered graphic characters and hence yield false
      	in this call.
      
      From-SVN: r101056
      Robert Dewar committed
    • s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer. · 38d7a13a
      2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
      
      From-SVN: r101055
      Eric Botcazou committed
    • prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List when the… · a493557f
      prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List when the project file in a with clause is not the...
      
      2005-06-14  Vincent Celier  <celier@adacore.com>
      
      	* prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
      	when the project file in a with clause is not the last one, that is the
      	project file name is followed by a comma.
      	* prj-pp.adb: (First_With_In_List): New Boolean global variable
      	(Print): Issue list of project files separated by commas in with clauses
      	according to the values returned by Is_Not_Last_In_List.
      	* prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
      	(Set_Is_Not_Last_In_List): New procedure
      
      From-SVN: r101054
      Vincent Celier committed
    • prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp" · 88664966
      2005-06-14  Vincent Celier  <celier@adacore.com>
      
      	* prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
      	(Check_Stand_Alone_Library): If the specified reference symbol file does
      	not exist, only issue a warning when the symbol policy is not
      	Controlled. And, when symbol policy is Compliant, set the symbol
      	policy to Autonomous.
      
      From-SVN: r101053
      Vincent Celier committed
    • prep.adb (Preprocess): Ignore error when scanning the first token of a line. · 474e8cbe
      2005-06-14  Vincent Celier  <celier@adacore.com>
      
      	* prep.adb (Preprocess): Ignore error when scanning the first token of
      	a line.
      
      From-SVN: r101052
      Vincent Celier committed
    • re PR ada/15613 (Accepts named parameters not last) · f073e741
      2005-06-14  Robert Dewar  <dewar@adacore.com>
      
      	PR ada/15613
      
      	* par-ch2.adb (Scan_Pragma_Argument): New procedure
      	(P_Pragma): Implement RM 2.8(4) check for no pos args after named args
      
      From-SVN: r101051
      Robert Dewar committed
    • osint.adb (Add_Default_Search_Dirs): Put source and object directories of… · 96f2e32f
      osint.adb (Add_Default_Search_Dirs): Put source and object directories of project files before directories coming...
      
      2005-06-14  Vincent Celier  <celier@adacore.com>
      
      	* osint.adb (Add_Default_Search_Dirs): Put source and object
      	directories of project files before directories coming from
      	ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
      
      From-SVN: r101050
      Vincent Celier committed
    • opt.ads, opt.adb: New flags for persistent_bss mode Add Ada_Version_Explicit... · f81e6250
      2005-06-14  Robert Dewar  <dewar@adacore.com>
      
      	* opt.ads, opt.adb: New flags for persistent_bss mode
      	Add Ada_Version_Explicit, for implementation of AI-362
      	Add Assertions_Enabled_Config and associated handling
      	Needed since setting can be changed with Assertion_Policy pragma
      	Add new flag Warn_On_Ada_2005_Compatibility
      
      	* switch-c.adb: Recognize -gnatwy/Y
      	Set Ada_Version_Explicit, for implementation of AI-362
      	The -gnatg switch now includes -gnatyu
      
      	* usage.adb: Add -gnatwy/Y
      	Remove wrong asterisk on -gnatwX line
      	Add line for -gnatyu switch
      
      From-SVN: r101049
      Robert Dewar committed
    • mdll.adb (Get_Dll_Name): New routine that returns the DLL name given the library name. · ebccab77
      2005-06-14  Pascal Obry  <obry@adacore.com>
      
      	* mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
      	the library name.
      
      From-SVN: r101048
      Pascal Obry committed
    • Make-lang.in: Add initialize.o when needed. · 844e7daa
      2005-06-10  Doug Rupp  <rupp@adacore.com>
      	    Arnaud Charlet  <charlet@adacore.com>
      	    Olivier Hainque  <hainque@adacore.com>
      	    Jose Ruiz  <ruiz@adacore.com>
      
      	* Make-lang.in: Add initialize.o when needed.
      	Remove obsolete references to RT_FLAGS.
      	Add missing dependencies for sdefault.o
      
      	* initialize.c: New file.
      
      	* init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
      	[VMS] cond_signal_table: Fix problem in declaration.
      	[VMS] __gnat_error_handler: rewrite.
      	Move all __gnat_initialize() routines to initialize.c
      	Specialize the former "hpux" section to "hppa hpux", as this is what the
      	section really is here for and we now have other hpux ports that need
      	different contents.
      	(__gnat_adjust_context_for_raise) i386-linux: First version of this
      	function for this target. Adjust PC by one in the machine context. This
      	adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
      	it is more reliable to do that in the signal handler itself.
      	(__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
      	flags, so that the handler is passed the context structure to adjust
      	prior to the raise.
      	(__gnat_error_handler) i386-linux: Adjust the signature to match what a
      	SA_SIGINFO sigaction should look like. Call
      	__gnat_adjust_context_for_raise before actually raising. Cleanup unused
      	Machine_State_Operations stuff.
      	Add conditional code so that the x86_64 is also supported.
      
      From-SVN: r101047
      Doug Rupp committed
    • lib-xref.ads, [...] (Generate_Definition): Treat any entity declared within an… · 217efe16
      lib-xref.ads, [...] (Generate_Definition): Treat any entity declared within an inlined body as referenced...
      
      2005-06-14  Ed Schonberg  <schonberg@adacore.com>
      	    Emmanuel Briot  <briot@adacore.com>
      
      	* lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
      	declared within an inlined body as referenced, to prevent spurious
      	warnings.
      	(Output_One_Ref): If an entity renames an array component, indicate in
      	the ALI file that this aliases (renames) the array. Capture as well
      	function renamings that rename predefined operations.
      	Add information about generic parent for package and subprogram
      	instances.
      	(Get_Type_Reference): For a subtype that is the renaming of an actual in
      	an instantiation, use the first_subtype to ensure that we don't generate
      	cross-reference information for internal types.
      	For objects and parameters of a generic private type, retain the '*'
      	indicator to distinguish such an entity from its type.
      
              * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
              to store information about instantiated entities.
      
              * ali.adb (Scan_ALI): Add support for parsing the reference to the
              generic parent
      
              * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
              (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
              information.
      
      From-SVN: r101046
      Ed Schonberg committed
    • lib-load.ads, [...] (Load_Unit): Addition of a new parameter that indicates if... · e9437007
      2005-06-14  Javier Miranda  <miranda@adacore.com>
      	    Jose Ruiz  <ruiz@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      
      	* lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
      	that indicates if we are parsing a compilation unit found in a
      	limited-with clause.
      	It is use to avoid the circularity check.
      
      	* par.ads, par.adb (Par): Addition of a new parameter to indicate if
      	we are parsing a compilation unit found in a limited-with clause. This
      	is use to avoid the circularity check.
      
      	* par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
      	unit as a consequence of parsing a limited-with clause. This is used
      	to avoid the circularity check.
      
      	* sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
      	(Analyze_Context): Limited-with clauses are now allowed
      	in more compilation units.
      	(Analyze_Subunit_Context, Check_Parent): Protect the frontend
      	againts previously reported critical errors in context clauses
      	(Install_Limited_Withed_Unit): Code cleanup plus static detection
      	of two further errors: renamed subprograms and renamed packages
      	are not allowed in limited with clauses.
      	(Install_Siblings): Do not install private_with_clauses on the package
      	declaration for a non-private child unit.
      	(Re_Install_Parents): When a parent of the subunit is reinstalled,
      	reset visibility of child units properly.
      	(Install_Withed_Unit): When a child unit appears in a with_clause of its
      	parent, it is immediately visible.
      
      From-SVN: r101045
      Javier Miranda committed
    • layout.adb (Discrimify): Remove resetting of Vtype to the underlying type which… · d37209bf
      layout.adb (Discrimify): Remove resetting of Vtype to the underlying type which turns out to be an...
      
      2005-06-14  Gary Dismukes  <dismukes@adacore.com>
      
      	* layout.adb (Discrimify): Remove resetting of Vtype to the underlying
      	type which turns out to be an incomplete and incorrect fix.
      	(Layout_Array_Type): Use Underlying_Type when checking whether the scope
      	of the type is declared in a record (for determination of insertion
      	type).
      	(SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
      	a private type and ensure that the primary entity is used for the type
      	of the newly created function's V formal by taking the Etype of the
      	view.
      
      From-SVN: r101044
      Gary Dismukes committed
    • re PR ada/6717 (Race condition in GNAT.Sockets.Create_Selector) · 564383da
      2005-06-14  Thomas Quinot  <quinot@adacore.com>
      
      	PR ada/6717
      
      	* g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
      	broadcast address.
      	(Create_Selector): Bind listening socket used to create the signalling
      	socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
      	Set listen backlog to 1 to ensure that we detect socket theft by a
      	failure of our own connect(2) call.
      	(Check_Selector): Improve documentation of the selector mechanism.
      	(Broadcast_Inet_Addr): New constant.
      
      From-SVN: r101043
      Thomas Quinot committed
    • g-os_lib.ads, [...] (Non_Blocking_Spawn): Two new versions with output file… · e5a97c13
      g-os_lib.ads, [...] (Non_Blocking_Spawn): Two new versions with output file descriptor and with output file name.
      
      2005-06-14  Vincent Celier  <celier@adacore.com>
      	    Cyrille Comar  <comar@adacore.com>
      
      	* g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
      	with output file descriptor and with output file name.
      	(Dup, Dup2): Now global procedures as they are used by two subprograms
      	(Copy): Allocate the 200K buffer on the heap rather than on the stack.
      
      From-SVN: r101042
      Vincent Celier committed
    • g-dynhta.ads, [...] (Reset): Free the table itself after releasing the items. · de972f9d
      2005-06-14  Pascal Obry  <obry@adacore.com>
      
      	* g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
      	releasing the items.
      
      From-SVN: r101041
      Pascal Obry committed
    • g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal to "" · df957272
      2005-06-14  Nicolas Roche  <roche@adacore.com>
      
      	* g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
      	to ""
      	(Next_Level): Fix minor bug in handling of ../dir case
      	(Read): Add dir separator to Directory name so that "" is understood as
      	 "/"
      
      From-SVN: r101040
      Nicolas Roche committed
    • g-debpoo.adb (Deallocate, [...]): Improve output. · ee936a69
      2005-06-14  Emmanuel Briot  <briot@adacore.com>
      
      	* g-debpoo.adb (Deallocate, Dereference): Improve output.
      
      From-SVN: r101039
      Emmanuel Briot committed
    • g-comlin.adb (Getopt): Skip any leading space in the Switches string. · ffdbd4c4
      2005-06-14  Joel Brobecker  <brobecker@adacore.com>
      
      	* g-comlin.adb (Getopt): Skip any leading space in the Switches string.
      	Avoids a CE when it starts with spaces.
      
      From-SVN: r101038
      Joel Brobecker committed
    • fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi can determine... · a49c3e16
      2005-06-14  Jose Ruiz  <ruiz@adacore.com>
      
      	* fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
      	can determine whether pragma Suppress_Exception_Locations is in effect.
      
      	* utils2.c (build_call_raise): Do not pass the file name to the
      	exception handler if pragma Suppress_Exception_Locations is in effect.
      	(build_allocator): Add and process arg IGNORE_INIT_TYPE.
      
      From-SVN: r101037
      Jose Ruiz committed
    • exp_intr.adb, [...]: Minor fix to error message text · 84f8ad69
      2005-06-14  Robert Dewar  <dewar@adacore.com>
      
      	* exp_intr.adb, par-ch5.adb: Minor fix to error message text
      
      From-SVN: r101036
      Robert Dewar committed
    • exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an RACW without any primitives... · 0772a6ea
      2005-06-14  Thomas Quinot  <quinot@adacore.com>
      
      	* exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
      	RACW without any primitives, do not generate the if statement for
      	dispatching by name in the PolyORB/DSA case, as it would be malformed
      	(it would have an Elsif_Parts list that is not No_List, but with a
      	length of 0).
      
      From-SVN: r101035
      Thomas Quinot committed
    • exp_dbug.ads, [...] (Get_Variant_Part): Fix the encoding of the "simple_choice"… · 975f3195
      exp_dbug.ads, [...] (Get_Variant_Part): Fix the encoding of the "simple_choice" member in a variant record...
      
      2005-06-14  Nicolas Setton  <setton@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
      	the "simple_choice" member in a variant record, in accordance with the
      	description in the package spec: the information output for a constant
      	should be "S number", not "SS number".
      	(Get_Encoded_Name): Return at once if not generating code. Avoids name
      	overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
      
      From-SVN: r101034
      Nicolas Setton committed
    • exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within the entry_call… · f75ef3af
      exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within the entry_call alternative of a conditional entry...
      
      2005-06-14  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
      	the entry_call alternative of a conditional entry call, wrap the
      	conditional entry call itself.
      
      From-SVN: r101033
      Ed Schonberg committed
    • exp_ch2.adb (Param_Entity): Take the case of an expanded_name denoting a formal… · dbf663a9
      exp_ch2.adb (Param_Entity): Take the case of an expanded_name denoting a formal parameter into account.
      
      2005-06-14  Thomas Quinot  <quinot@adacore.com>
      
      	* exp_ch2.adb (Param_Entity): Take the case of an expanded_name
      	denoting a formal parameter into account.
      
      From-SVN: r101032
      Thomas Quinot committed
    • exp_aggr.adb (Aggr_Size_OK): An array with no components can always be expanded in place. · 643a0839
      2005-06-14  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_aggr.adb (Aggr_Size_OK): An array with no components can always
      	be expanded in place. The size computation does not require a
      	subtraction, which would raise an exception on a compiler built with
      	assertions when the upper bound is Integer'first.
      	(Flatten): For an array of composite components, take into account the
      	size of the components to determine whether it is safe to expand the
      	array into a purely positional representation.
      
      From-SVN: r101031
      Ed Schonberg committed
    • errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user code... · 2aab5fd5
      2005-06-14  Ed Schonberg  <schonberg@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      
      	* errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
      	code, not on the bodies of predefined operations, to cut down on
      	spurious noise.
      
      From-SVN: r101030
      Ed Schonberg committed
    • einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on anonymous access types... · edd63e9b
      2005-06-14  Ed Schonberg  <schonberg@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      	    Thomas Quinot  <quinot@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      	    Hristian Kirtchev  <kirtchev@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      
      	* einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
      	anonymous access types, to indicate that the accessibility level of
      	the type is determined by that of the enclosing declaration.
      	(Has_Persistent_BSS): New flag
      	(Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
      	of this attribute with functions.
      	(Is_Primitive_Wrapper): Remove the barrier.
      	(Has_Specified_Stream_Input, Has_Specified_Stream_Output,
      	Has_Specified_Stream_Read, Has_Specified_Stream_Write):
      	New subprograms.
      	(Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
      	Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
      	New subprograms.
      	(Is_Pure_Unit_Access_Type): New flag
      	(Abstract_Interfaces): Complete the assertion to cover all usages.
      	(Set_Is_Interface): Complete the assertion to cover all usages.
      	(Is_Primitive_Wrapper): New attribute.
      	(Is_Obsolescent): Now applies to all entities (though it is only set
      	for subprograms currently)
      	New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
      	which solves various problems concerning access subtypes.
      	(Has_Persistent_BSS): New flag
      	(Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
      	Remove these subprograms because this attribute is currently
      	not used.
      	New entity flags:
      	Has_Specified_Stream_Input (Flag190)
      	Has_Specified_Stream_Output (Flag191)
      	Has_Specified_Stream_Read (Flag192)
      	Has_Specified_Stream_Write (Flag193)
      	Present in all type and subtype entities. Set for a given view if the
      	corresponding stream-oriented attribute has been defined by an
      	attribute definition clause. When such a clause occurs, a TSS is set
      	on the underlying full view; the flags are used to track visibility of
      	the attribute definition clause for partial or incomplete views.
      	(Is_Pure_Unit_Access_Type): New flag
      	Clarify use of Is_Internal.
      	(Is_Primitive_Wrapper): New attribute present in primitive subprograms
      	internally generated to wrap the invocation of tasks and protected
      	types that implement interfaces.
      	(Implementation_Base_Type): Documentation correction
      	(Is_Obsolescent): Now applies to all entities (though it is only set
      	for subprograms currently)
      	New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
      	which solves various problems concerning access subtypes.
      
      	* exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
      	for examined parameters. Identify unequal parameter list lengths as
      	non-conformant parameters.
      	(Overriding_Possible): Do not check for "All" qualifier in declaration
      	of controlling access parameter, following prescription of AI-404.
      	(Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
      	that build the procedure body that wraps an entry invocation
      	(Build_Corresponding_Record, Build_Protected_Sub_Specification,
      	Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
      	Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
      	give support to abstract interface types
      
      	* freeze.adb (Freeze_Entity): Issue error message if
      	Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
      	type has no storage pool (Ada 2005) AI-366.
      	Also modified to give support to abstract interface types
      	(Freeze_Subprogram): Issue an error for a dispatching subprogram with an
      	Inline_Always pragma.
      
      	* par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
      	now begin an entry declaration.
      	(P_Entry_Or_Subprogram_With_Indicator): New procedure in
      	P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
      	a subprogram declaration preceded by an overriding indicator.
      	(P_Protected_Operation_Declaration_Opt): Add case for parsing entry
      	declarations or subprogram declarations preceded by reserved words
      	"not" or "overriding".
      	(P_Entry_Declaration): Update comment. Parse and check overriding
      	indicator, set semantic flags of entry declarations.
      	(P_Task): New error message in case of private applied
      	to a task type declaration.
      	(P_Protected): New error message in case of private applied
      	to a task type declaration.
      
      	* sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
      	in which the full view of a type implementing an interface is a
      	concurrent type.
      	(Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
      	Declare_Inherited_Private_Subprograms): If an explicit operation
      	overrides an operation that is inherited in the private part, mark the
      	explicit one as overriding, to enable overriding indicator checks.
      	(Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
      	full view to partial view, to simplify handling in back-end.
      
      	* sprint.adb: Print interface lists where needed: derived types,
      	protected types, task types.
      	output "is null" for null procedures. Part of implementation of
      
      	* sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
      	relaxation of rules for access types in pure, shared passive partitions.
      
      	* exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
      	first read discriminants into temporary objects, performing checks on
      	the read values, then possibly performing discriminant checks on the
      	actual (if it is constrained), and only finally reading the components
      	into a constrained temporary object.
      	(Build_Elementary_Input_Call): Adjust the specific circuitry for the
      	case of reading discriminants of a mutable record type to recognize
      	the new form of the code generated by
      	Build_Mutable_Record_Read_Procedure.
      
      	* exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
      	of a simple call to Make_TSS_Name.
      	(Make_TSS_Name_Local): Add the TSS name as the last thing in the name
      	buffer, in order for Is_TSS to work correctly on local TSS names.
      
      	* sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
      	Is_Local_Anonymous_Access to check legaliy of attributes in the
      	context of  access components and stand-alone access objects.
      	(Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
      	treated as available for a limited private type if there is an
      	attribute_definition_clause that applies to its full view, but not in
      	other cases where the attribute is available for the full view
      	(specifically, the sole fact that the full view is non-limited does not
      	make the attribute available for the partial view).
      	(Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
      	non-overloaded intrinsic subprogram.
      	(Check_Stream_Attribute): Reject an attribute reference for an
      	unavailable stream attribute even if the prefix is not a limited type
      	(case of a 'Input attribute reference for an abstract, non-classwide
      	type)
      	(Stream_Attribute_Available): New function to determine whether a stream
      	attribute is available at a place.
      	(Check_Attribute): Use Stream_Attribute_Available instead of just
      	testing for TSS presence on the implementation base type.
      	(Analyze_Attribute): Modified to give support to task interfaces.
      	(Analyze_Access_Attribute): Add error check for use of an Access (or
      	Unrestricted_Access) attribute with a subprogram marked as
      	Inline_Always.
      	(Analyze_Attribute, case Attribute_Address): Add error check for use of
      	an Address attribute with a subprogram marked as Inline_Always.
      	Update Eval_Attribute to handle new value of Width from AI-395
      
      	* sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
      	(Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
      	Factor common code across the stream-oriented attribute circcuits into
      	a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
      	processing is functionally identical to the previous duplicated one,
      	except that an expression that denotes an abstract subprogram will now
      	be rejected, as mandated by AI-195 item 5.
      
      	* sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
      	Is_Local_Anonymous_Access to apply accessibility checks to access
      	components and stand-alone access objects.
      	(Has_Discriminant_Dependent_Constraint): Moved to spec for use
      	elsewhere.
      	(Is_Potentially_Persistent_Type): New function
      	(Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
      	a heap-object whose type has a constrained partial view, the object is
      	unconstrained and the component may depend on a discriminant, making its
      	renaming illegal.
      
      	* sinfo.ads, sinfo.adb
      	(Must_Not_Override): Flag applicable to N_Entry_Declaration.
      	(Must_Override): Flag applicable to N_Entry_Declaration.
      	Indicate that interface_list can appear in single task and single
      	protected declarations.
      	Replace Is_Overriding and Not_Overriding with Must_Override and
      	Must_Not_Override, to better express intent of AI.
      	Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
      	of an overriding indicator in a subprogram or instance.
      	Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
      	Add the overriding indicator [[not] overriding] construct to the
      	following grammar productions:
      	 ENTRY_DECLARATION
      	 GENERIC_INSTANTIATION
      	 SUBPROGRAM_SPECIFICATION
      
      	* par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
      	can start with an overriding indicator.
      
      	* par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
      	flags accordingly on subrogram specifications or instances.
      
      	* sem_ch8.adb:
      	(Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
      	overriding_indicator, if present, is consistent with status of spec.
      	Improve error message for null-excluding checks on controlling access
      	parameters.
      	(Check_In_Previous_With_Clause): Protect the frontend against
      	previously reported critical errors in the context clauses.
      	Save and restore Ada_Version_Explicit, for implementation of AI-362
      	(Analyze_Subprogram_Renaming): If the new entity is a dispatching
      	operation verify that controlling formals of the renamed entity that
      	are access parameters are explicitly non-null.
      	(Find_Expanded_Name): Improve error message when prefix is an illegal
      	reference to a private child unit.
      
      	* exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
      	s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
      	Rewrite to correspond to new wide character names in AI-395
      
              * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
              default procedures.
      
      From-SVN: r101029
      Ed Schonberg committed