- 16 Jun, 2005 40 commits
-
-
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 -
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 -
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 -
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 -
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 -
2005-06-14 Arnaud Charlet <charlet@adacore.com> * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition. From-SVN: r101063
Arnaud Charlet committed -
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 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 -
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 -
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 -
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 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 -
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 -
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 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 -
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 -
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 -
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 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 -
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 -
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 -
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 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 -
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 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 -
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 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 -
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 -
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 -
2005-06-14 Emmanuel Briot <briot@adacore.com> * g-debpoo.adb (Deallocate, Dereference): Improve output. From-SVN: r101039
Emmanuel Briot committed -
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 -
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 -
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 -
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" 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 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 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 -
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 -
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 -
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
-