From 052e0603b1b8a2dbbcee2261642764fcea84fe51 Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Tue, 2 Aug 2011 17:25:25 +0200 Subject: [PATCH] [multiple changes] 2011-08-02 Robert Dewar * exp_ch9.adb, exp_sel.adb, restrict.ads, exp_disp.adb, erroutc.ads, exp_ch3.adb: Minor reformatting. 2011-08-02 Emmanuel Briot * adaint.c (__gnat_locate_exec_on_path): only returns executable files, not any regular file. (__gnat_locate_file_with_predicate): new subprogram. 2011-08-02 Yannick Moy * sinfo.adb, sinfo.ads: Restrict the use of flags Has_Dynamic_Length_Check and Has_Dynamic_Range_Check to expression nodes, plus N_Subtype_Declaration for the 2nd one. From-SVN: r177180 --- gcc/ada/ChangeLog | 3209 ++++++++++++++++++++++++++++++++++++++++++ gcc/ada/adaint.c | 35 +- gcc/ada/erroutc.ads | 70 +- gcc/ada/exp_ch3.adb | 14 +- gcc/ada/exp_ch9.adb | 12 +- gcc/ada/exp_disp.adb | 4 +- gcc/ada/exp_sel.adb | 7 +- gcc/ada/restrict.ads | 18 +- gcc/ada/sinfo.adb | 13 +- gcc/ada/sinfo.ads | 30 +- 10 files changed, 3329 insertions(+), 83 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index ff0670569f6..5220337f507 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,20 @@ +2011-08-02 Robert Dewar + + * exp_ch9.adb, exp_sel.adb, restrict.ads, exp_disp.adb, erroutc.ads, + exp_ch3.adb: Minor reformatting. + +2011-08-02 Emmanuel Briot + + * adaint.c (__gnat_locate_exec_on_path): only returns executable + files, not any regular file. + (__gnat_locate_file_with_predicate): new subprogram. + +2011-08-02 Yannick Moy + + * sinfo.adb, sinfo.ads: Restrict the use of flags + Has_Dynamic_Length_Check and Has_Dynamic_Range_Check to expression + nodes, plus N_Subtype_Declaration for the 2nd one. + 2011-08-02 Sergey Rybin * gnat_rm.texi: Ramification of pragma Eliminate documentation @@ -3185,6 +3202,3198 @@ variables that are referenced in exception handlers volatile. + +Copyright (C) 2011 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. + + * gnat_rm.texi: Ramification of pragma Eliminate documentation + - fix bugs in the description of Source_Trace; + - get rid of UNIT_NAME; + +2011-08-02 Javier Miranda + + * exp_ch9.adb + (Build_Dispatching_Requeue): Adding support for VM targets + since we cannot directly reference the Tag entity. + * exp_sel.adb (Build_K): Adding support for VM targets. + (Build_S_Assignment): Adding support for VM targets. + * exp_disp.adb + (Default_Prim_Op_Position): In VM targets do not restrict availability + of predefined interface primitives to compiling in Ada 2005 mode. + (Is_Predefined_Interface_Primitive): In VM targets this service is not + restricted to compiling in Ada 2005 mode. + (Make_VM_TSD): Generate code that declares and initializes the OSD + record. Needed to support dispatching calls through synchronized + interfaces. + * exp_ch3.adb + (Make_Predefined_Primitive_Specs): Enable generation of predefined + primitives associated with synchronized interfaces. + (Make_Predefined_Primitive_Bodies): Enable generation of predefined + primitives associated with synchronized interfaces. + +2011-08-02 Yannick Moy + + * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of + statements hidden in SPARK if preceded by the HIDE directive + (Parse_Exception_Handlers): mark each exception handler in a sequence of + exception handlers as hidden in SPARK if preceded by the HIDE directive + * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK + if starting with the HIDE directive + * par-ch7.adb (P_Package): mark a package body hidden in SPARK if + starting with the HIDE directive; mark the declarations in a private + part as hidden in SPARK if the private part starts with the HIDE + directive + * restrict.adb, restrict.ads + (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK + (Is_In_Hidden_Part_In_SPARK): new function which returns whether its + argument node belongs to a part which is hidden in SPARK + (Check_SPARK_Restriction): do not issue violations on nodes in hidden + parts in SPARK; protect the possibly costly call to + Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on + * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration + * scng.adb (Accumulate_Token_Checksum_GNAT_6_3, + Accumulate_Token_Checksum_GNAT_5_03): add case for new token + Tok_SPARK_Hide. + (Scan): recognize special comment starting with '#' and followed by + SPARK keyword "hide" as a HIDE directive. + +2011-08-02 Yannick Moy + + * types.ads, erroutc.ads: Minor reformatting. + +2011-08-02 Vincent Celier + + * link.c: Add response file support for cross platforms. + +2011-08-02 Ed Schonberg + + * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression + in an association, set parent field of copy before partial analysis. + * sem_res.adb (Resolve_Slice): create reference to itype only when + expansion is enabled. + +2011-08-02 Yannick Moy + + * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set + for new flag denoting which subprogram bodies are in ALFA + * restrict.adb, sem_ch7.adb: Update comment + * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, + sem_ch9.adb, sem_res.adb: Add calls to + Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs. + * sem_ch6.adb (Analyze_Function_Return): add calls to + Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the + middle of the body, and extended return. + (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument + False when missing return. + (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA + to True for subprograms whose spec is in ALFA. Remove later on the flag + on the entity used for a subprogram body when there exists a separate + declaration. + * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA): + if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to + False, otherwise do nothing. + +2011-08-02 Robert Dewar + + * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting. + +2011-08-02 Yannick Moy + + * sem_ch4.ads: minor formatting. + +2011-08-02 Yannick Moy + + * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, + debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb, + errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb, + restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb, + opt.ads: cleanup of SPARK mode + +2011-08-02 Yannick Moy + + * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard + types. + * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities + (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA + * sem_ch3.adb + (Analyze_Object_Declaration): set Is_In_ALFA flag for objects + (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes + (Constrain_Integer): set Is_In_ALFA flag for integer subtypes + (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration + types. + (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with + non-static range. + * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for + functions whose return type is not in ALFA. + (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram + specifications. + (Process_Formals): unset Is_In_ALFA flag for subprograms if a + parameter's type is not in ALFA. + * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard + types are in ALFA. + +2011-08-02 Ed Schonberg + + * sem_ch6 (Analyze_Expression_Function): treat the function as + Inline_Always, and introduce a subprogram declaration for it when it is + not a completion. + * inline.adb (Add_Inlined_Body): recognize bodies that come from + expression functions, so that the back-end can determine whether they + can in fact be inlined. + * sem_util.adb (Is_Expression_Function): predicate to determine whether + a function body comes from an expression function. + +2011-08-02 Gary Dismukes + + * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming + null exclusions to test Can_Never_Be_Null on the anonymous access types + of the formals rather than testing the formals themselves. Exclude this + check in cases where the Old_Formal is marked as a controlling formal, + to avoid issuing spurious errors for bodies completing dispatching + operations (due to the flag not getting set on controlling access + formals in body specs). + (Find_Corresponding_Spec): When checking full and subtype conformance of + subprogram bodies in instances, pass Designated and E in that order, for + consistency with the expected order of the formals (New_Id followed by + Old_Id). + +2011-08-02 Robert Dewar + + * sem_ch8.adb: Minor reformatting. + +2011-08-02 Ed Schonberg + + * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure + Check_Class_Wide_Actual, to implement AI05-0071, on defaulted + primitive operations of class-wide actuals. + +2011-08-02 Javier Miranda + + * exp_atag.ads, exp_atag.adb + (Build_Common_Dispatching_Select_Statements): Remove argument Loc + since its value is implicitly passed in argument Typ. + * exp_disp.adb (Make_Disp_Conditional_Select_Body, + Make_Disp_Timed_Select_Body): Remove Loc in calls to routine + Build_Common_Dispatching_Select_Statements. + +2011-08-02 Robert Dewar + + * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads, + exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments. + Minor reformatting. + +2011-08-02 Robert Dewar + + * sem_res.adb: Minor reformatting. + * sem_prag.adb: Minor reformatting. + +2011-08-02 Javier Miranda + + * exp_atag.adb, exp_atags.ads + (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr + by the tagged type Entity. Required to use this routine in the VM + targets since we do not have available the Tag entity in the VM + platforms. + * exp_ch6.adb + (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package + Ada.Tags has not been previously loaded. + * exp_ch7.adb + (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke + Build_VM_TSDs if package Ada.Tags has not been previously loaded. + * sem_aux.adb + (Enclosing_Dynamic_Scope): Add missing support to handle the full + view of enclosing scopes. Required to handle enclosing scopes that + are synchronized types whose full view is a task type. + * exp_disp.adb + (Build_VM_TSDs): Minor code improvement to avoid generating and + analyzing lists with empty nodes. + (Make_Disp_Asynchronous_Select_Body): Add support for VM targets. + (Make_Disp_Conditional_Select_Body): Add support for VM targets. + (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets. + (Make_Disp_Timed_Select_Body): Add support for VM targets. + (Make_Select_Specific_Data_Table): Add support for VM targets. + (Make_VM_TSD): Generate code to initialize the SSD structure of + the TSD. + +2011-08-02 Yannick Moy + + * lib-writ.adb (Write_ALI): when ALFA mode is set, write local + cross-references section in ALI. + * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub + (enclosing subprogram), Slc (location of Sub) and Sun (unit number of + Sub). + (Enclosing_Subprogram_Or_Package): new function to return the enclosing + subprogram or package entity of a node + (Is_Local_Reference_Type): new function returns True for references + selected in local cross-references. + (Lt): function extracted from Lt in Output_References + (Write_Entity_Name): function extracted from Output_References + (Generate_Definition): generate reference with type 'D' for definition + of objects (object declaration and parameter specification), with + appropriate locations and units, for use in local cross-references. + (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created + references of type 'I' for initialization in object definition. + (Output_References): move part of function Lt and procedure + Write_Entity_Name outside of the body. Ignore references of types 'D' + and 'I' introduced for local cross-references. + (Output_Local_References): new procedure to output the local + cross-references sections. + (Lref_Entity_Status): new array defining whether an entity is a local + * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference + with 'I' type when initialization expression is present. + * get_scos.adb, get_scos.ads: Correct comments and typos + +2011-08-02 Javier Miranda + + * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in + the JVM target. + * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in + the JVM target. + * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no + TSD support. + +2011-08-02 Vincent Celier + + * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line + (No_Space_Img): New function + (Find_Excluded_Sources): When reading from a file, record the file name + and the line number for each excluded source. + (Mark_Excluded_Sources): When reporting an error, if the excluded + sources were read from a file, include file name and line number in + the error message. + +2011-08-02 Ed Schonberg + + * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2). + +2011-08-02 Robert Dewar + + * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting + +2011-08-02 Javier Miranda + + * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the + generation of TSDs to the DOTNET compiler. + * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the + generation of TSDs to the DOTNET compiler. + +2011-08-02 Javier Miranda + + * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data + record of all the tagged types declared inside library level package + declarations, library level package bodies or library level subprograms. + * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD + associated with a given tagged type. + (Build_VM_TSDs): New subprogram. + * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main + compilation units that are subprograms. + * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main + compilation units that are package bodies. + (Expand_N_Package_Declaration): Generate TSDs of the main compilation + units that are a package declaration or a package instantiation. + * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code + reorganization to improve the error generated by the frontend when the + function Ada.Tags.Secondary_Tag is not available. + * rtsfind.ads (RE_Register_TSD): New runtime entity. + * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup. + +2011-08-02 Javier Miranda + + * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode. + +2011-08-02 Robert Dewar + + * s-imenne.ads: Minor reformatting. + +2011-08-02 Robert Dewar + + * a-stunau.ads: Add pragma Suppress_Initialization for Big_String + * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed + * s-stalib.ads: Add pragma Suppress_Initialization for Big_String + +2011-08-02 Robert Dewar + + * einfo.ads (Materialize_Entity): Document this is only for renamings + * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate + required debug information in the case where we transform the object + declaration into a renaming declaration. + * exp_ch4.adb (Expand_Concatenate): Generate debug info for result + object + * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of + Materialize_Entity. + +2011-08-02 Robert Dewar + + * einfo.ads, einfo.adb (Suppress_Initialization): Replaces + Suppress_Init_Procs. + * exp_ch3.adb, exp_disp.adb, freeze.adb: Use + Suppress_Initialization/Initialization_Suppressed. + * gnat_rm.texi: New documentation for pragma Suppress_Initialization + * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function + * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed + * sem_prag.adb: New processing for pragma Suppress_Initialization. + +2011-08-02 Robert Dewar + + * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb: + Minor reformatting. + +2011-08-02 Ed Schonberg + + * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can + only have inheritable classwide pre/postconditions. + +2011-08-02 Javier Miranda + + * a-tags.ads, a-tags.adb (Check_TSD): New subprogram. + * rtsfind.ads (RE_Check_TSD): New runtime entity. + * exp_disp.adb (Make_DT): Generate call to the new runtime routine that + checks if the external tag of a type is the same as the external tag + of some other declaration. + +2011-08-02 Thomas Quinot + + * s-taskin.ads: Minor reformatting. + +2011-08-02 Emmanuel Briot + + * g-comlin.adb (Display_Help): swap the order in which it prints the + short help and the general usage. + +2011-08-02 Ed Schonberg + + * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly + the aspect declarations and attach them to the generic copy for + subsequent analysis. + (Analyze_Subprogram_Instantiation): copy explicitly the aspect + declarations of the generic tree to the new subprogram declarations. + * sem_attr.adb (Check_Precondition_Postcondition): recognize + conditions that apply to a subprogram instance. + +2011-08-02 Robert Dewar + + * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project]. + +2011-08-02 Ed Schonberg + + * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged + private type with a tagged full view is not derived in the immediate + scope of the partial view, (RM 7.3 (7)) use the scope of the base type. + +2011-08-02 Robert Dewar + + * exp_ch4.adb: Minor reformatting. + +2011-08-02 Ed Schonberg + + * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an + Ada2012 iterator, the loop will be rewritten during expansion into a + while loop with a cursor and an element declaration. Do not analyze the + body in this case, because if the container is for indefinite types the + actual subtype of the elements will only be determined when the cursor + declaration is analyzed. + +2011-08-02 Arnaud Charlet + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore + size/alignment related attributes in CodePeer_Mode. + +2011-08-02 Gary Dismukes + + * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to + Prepend_Element, since this can result in the operation getting the + wrong slot in the full type's dispatch table if the full type has + inherited operations. The incomplete type's operation will get added + to the proper position in the full type's primitives + list later in Sem_Disp.Check_Operation_From_Incomplete_Type. + (Process_Incomplete_Dependents): Add Is_Primitive test when checking for + dispatching operations, since there are cases where nonprimitive + subprograms can get added to the list of incomplete dependents (such + as subprograms in nested packages). + * sem_ch6.adb (Process_Formals): First, remove test for being in a + private part when determining whether to add a primitive with a + parameter of a tagged incomplete type to the Private_Dependents list. + Such primitives can also occur in the visible part, and should not have + been excluded from being private dependents. + * sem_ch7.adb (Uninstall_Declarations): When checking the rule of + RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents + list of a Taft-amendment incomplete type is a primitive before issuing + an error that the full type must appear in the same unit. There are + cases where nonprimitives can be in the list (such as subprograms in + nested packages). + * sem_disp.adb (Derives_From): Use correct condition for checking that + a formal's type is derived from the type of the corresponding formal in + the parent subprogram (the condition was completely wrong). Add + checking that was missing for controlling result types being derived + from the result type of the parent operation. + +2011-08-02 Yannick Moy + + * errout.adb (First_Node): minor renaming + * restrict.adb (Check_Formal_Restriction): put restriction warning on + first node. + +2011-08-02 Yannick Moy + + * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator + before accessing operands. + * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to + decide whether an initialization expression respects SPARK rules, as + the plain node is the expanded one. This allows for more valid warnings + to be issued. + * gnat_rm.texi: Minor update. + +2011-08-02 Arnaud Charlet + + * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert + previous change. + +2011-08-02 Robert Dewar + + * sem_ch3.adb, sem_ch4.adb: Minor reformatting. + +2011-08-02 Hristian Kirtchev + + * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original + loop statements and the element renaming declaration with a block when + the element type is controlled. + +2011-08-02 Yannick Moy + + * sinfo.ads: Minor formatting. + +2011-08-02 Ed Schonberg + + * sem_aggr.adb (Add_Association): if the association has a box and no + expression, use the Sloc of the aggregate itself for the new + association. + * errout.adb (First_Node): Exclude nodes with no Sloc, and always use + the Original_Node. + +2011-08-02 Hristian Kirtchev + + * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring. + When a container is provided via a function call, generate a renaming + of the function result. This avoids the creation of a transient scope + and the premature finalization of the container. + * exp_ch7.adb (Is_Container_Cursor): Removed. + (Wrap_Transient_Declaration): Remove the supression of the finalization + of the list controller when the declaration denotes a container cursor, + it is not needed. + +2011-08-02 Yannick Moy + + * restrict.adb (Check_Formal_Restriction): only issue a warning if the + node is from source, instead of the original node being from source. + * sem_aggr.adb + (Resolve_Array_Aggregate): refine the check for a static expression, to + recognize also static ranges + * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration, + Array_Type_Declaration): postpone the test for the type being a subtype + mark after the type has been resolved, so that component-selection and + expanded-name are discriminated. + (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm + to distinguish the case of an iteration scheme, so that an error is + issed on a non-static range in SPARK except in an iteration scheme. + * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with + In_Iter_Schm = True. + * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for + user-defined operators so that they are allowed in renaming + * sem_ch8.adb + (Find_Selected_Component): refine the check for prefixing of operators + so that they are allowed in renaming. Move the checks for restrictions + on selector name after analysis discriminated between + component-selection and expanded-name. + * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on + concatenation argument of string type if it is static. + * sem_util.adb, sem_util.ads + (Check_Later_Vs_Basic_Declarations): add a new function + Is_Later_Declarative_Item to decice which declarations are allowed as + later items, in the two different modes Ada 83 and SPARK. In the SPARK + mode, add that renamings are considered as later items. + (Enclosing_Package): new function to return the enclosing package + (Enter_Name): correct the rule for homonyms in SPARK + (Is_SPARK_Initialization_Expr): default to returning True on nodes not + from source (result of expansion) to avoid issuing wrong warnings. + +2011-08-02 Ed Schonberg + + * errout.adb: On anything but an expression First_Node returns its + argument. + +2011-08-02 Pascal Obry + + * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting. + +2011-08-02 Hristian Kirtchev + + * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization. + Set the associated loop as the related expression of internally + generated cursors. + * exp_ch7.adb (Is_Container_Cursor): New routine. + (Wrap_Transient_Declaration): Supress the finalization of the list + controller when the declaration denotes a container cursor. + +2011-08-02 Yannick Moy + + * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through + command line now. + * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the + expression is a simple expression. This check cannot be performed in + the semantics, so just drop it. + (P_Index_Or_Discriminant_Constraint): move check that the index or + discriminant is a subtype mark to Analyze_Subtype_Declaration in the + semantics. Other cases were previously checked in the semantics. + * par-ch4.adb (P_Name): move checks that a selector name is not + character literal or an operator symbol to Find_Selected_Component in + the semantics + * par-ch5.adb (Parse_Decls_Begin_End): move check that basic + declarations are not placed after later declarations in a separate + procedure in Sem_Util (possibly not the best choice?), to be used both + during parsing, for Ada 83 mode, and during semantic analysis, for + SPARK mode. + * par-endh.adb (Check_End): move check that end label is not missing + to Process_End_Label in the semantics + * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove + the special case for SPARK restriction + * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End + * restrict.adb, restrict.ads (Check_Formal_Restriction): add a + parameter Force to issue the error message even on internal node (used + for generated end label). Call Check_Restriction to check when an error + must be issued. In SPARK mode, issue an error message even if the + restriction is not set. + (Check_Restriction): new procedure with an additional out parameter to + inform the caller that a message has been issued + * sem_aggr.adb: Minor modification of message + * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction + instead of issuing an error message directly + * sem_ch3.adb (Analyze_Declarations): move here the check that basic + declarations are not placed after later declarations, by calling + Check_Later_Vs_Basic_Declarations + (Analyze_Subtype_Declaration): move here the check that an index or + discriminant constraint must be a subtype mark. Change the check that + a subtype of String must start at one so that it works on subtype marks. + * sem_ch4.adb (Analyze_Call): move here the check that a named + association cannot follow a positional one in a call + * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction + instead of issuing an error message directly + * sem_ch8.adb (Find_Selected_Component): move here the check that a + selector name is not a character literal or an operator symbol. Move + here the check that the prefix of an expanded name cannot be a + subprogram or a loop statement. + * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new + procedure called from parsing and semantics to check that basic + declarations are not placed after later declarations + (Process_End_Label): move here the check that end label is not missing + +2011-08-02 Arnaud Charlet + + * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum + representation clause in codepeer mode, since it confuses CodePeer and + does not bring useful info. + +2011-08-02 Ed Falis + + * init.c: initialize fp hw on MILS. + +2011-08-02 Ed Schonberg + + * errout.adb (First_Node): for bodies, return the node itself (small + optimization). For other nodes, do not check source_unit if the node + comes from Standard. + +2011-08-02 Robert Dewar + + * exp_ch3.adb: Minor comment additions. + * sem_ch13.adb: Minor reformatting. + +2011-08-02 Pascal Obry + + * make.adb, makeutl.adb: Removes some superfluous directory separator. + +2011-08-02 Robert Dewar + + * sem_attr.adb: Minor reformatting. + +2011-08-02 Robert Dewar + + * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value + (Has_Default_Component_Value): Removed + * einfo.ads Comment updates + (Has_Default_Aspect): Replaces Has_Default_Value + (Has_Default_Component_Value): Removed + * exp_ch13.adb + (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects + * exp_ch3.adb + (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects + (Get_Simple_Init_Val): Handle Default_Value aspect + (Needs_Simple_Initialization): Handle Default_Value aspect + * exp_ch3.ads: Needs_Simple_Initialization + * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect + * par-prag.adb (Pragma_Default[_Component]Value) Removed + * sem_ch13.adb + (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects + * sem_prag.adb (Pragma_Default[_Component]Value) Removed + * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed + +2011-08-02 Ed Schonberg + + * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate + package containing iteration primitives. + exp_ch5.adb (Expand_Iterator_Loop): ditto. + +2011-08-02 Ed Schonberg + + * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with + "of", pre-analyze expression in case it is a function call with + finalization actions that must be placed ahead of the loop. + * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present + on an Ada2012 iterator, insert them ahead of the rewritten loop. + +2011-08-02 Geert Bosch + + * cstand.adb (Create_Float_Types): Only consider C's long double for + Long_Long_Float, in addition to double. + +2011-08-02 Robert Dewar + + * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads, + sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads, + prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb: + Minor reformatting. + +2011-08-02 Ed Schonberg + + * sem_attr.adb: handle properly 'Result when it is a prefix of an + indexed component. + +2011-08-02 Javier Miranda + + * einfo.ads, einfo.adb + (Original_Access_Type): Move this attribute to Node26 since there was + an undocumented use of Node21 in E_Access_Subprogram_Type entities + which causes conflicts and breaks the generation of the .NET compiler. + (Interface_Name): Add missing documentation on JGNAT only uses of + this attribute. + +2011-08-02 Geert Bosch + + * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist + (Find_Back_End_Float_Type): Likewise + (Create_Back_End_Float_Types): Likewise + (Create_Float_Types): Likewise + (Register_Float_Type): Likewise + * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of + Nlist and split out type selection in new local Find_Base_Type function. + * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of + Nlist + * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist + +2011-08-02 Robert Dewar + + * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in + alpha order). + * opt.ads: Minor comment change. + * sem_ch12.adb: Minor code reorganization. + +2011-08-02 Gary Dismukes + + * sem_ch3.adb (Complete_Private_Subtype): Don't append the private + subtype's list of rep items to the list on the full subtype in the case + where the lists are the same. + +2011-08-02 Geert Bosch + + * switch-c.adb (Free): New deallocation procedure to avoid implicitly + using the one from System.Strings, which also deallocates all strings. + +2011-08-02 Geert Bosch + + * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New + function. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-02 Olivier Hainque + + * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function + end_locus. + +2011-08-02 Javier Miranda + + * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals + associated with anonymous access to subprograms. + +2011-08-02 Geert Bosch + + * opt.ads + (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions. + (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition. + * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads + (Add_Symbol_Definition): Move to switch-c.adb + (Process_Command_Line_Symbol_Definitions): Adjust references to above. + * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation. + (Add_Symbol_Definition): Move to switch-c.adb. + * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw. + * sem_warn.adb + (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch): + Move to warnsw.adb. + * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size, + Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch): + Move to warnsw.adb. + * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw. + (Add_Symbol_Definition): Moved from Prepcomp. + * switch-c.ads: Update copyright notice. Use String_List instead of + Argument_List, removing dependency on System.OS_Lib. + +2011-08-02 Yannick Moy + + * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal + mode on initialization expression which does not respect SPARK + restrictions. + * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines + if the tree referenced by its argument represents an initialization + expression in SPARK, suitable for initializing an object in an object + declaration. + +2011-08-02 Javier Miranda + + * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the + internally generated access to subprogram with its associated protected + subprogram type. + * einfo.ads, einfo.adb (Original_Access_Type): New attribute. + +2011-08-02 Geert Bosch + + * cstand.adb (Register_Float_Type): Print information about type to + register, if the Debug_Flag_Dot_B is set. + * debug.adb (Debug_Flag_Dot_B): Document d.b debug option. + * rtsfind.ads (RE_Max_Base_Digits): New run time entity. + * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations + with a requested precision of more than Max_Digits digits and no more + than Max_Base_Digits digits, if a range specification is present and the + Predefined_Float_Types list has a suitable type to derive from. + * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the + case of type completion with pragma Import + * sem_prag.adb + (Process_Import_Predefined_Type): Processing to complete a type + with pragma Import. Currently supports floating point types only. + (Set_Convention_From_Pragma): Do nothing without underlying type. + (Process_Convention): Guard against absence of underlying type, + which may happen when importing incomplete types. + (Process_Import_Or_Interface): Handle case of importing predefined + types. Tweak error message. + +2011-08-02 Eric Botcazou + + * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined + functions to previous change. Reorganize code slightly. + +2011-08-02 Geert Bosch + + * back_end.ads (Register_Type_Proc): New call back procedure type for + allowing the back end to provide information about available types. + (Register_Back_End_Types): New procedure to register back end types. + * back_end.adb (Register_Back_End_Types): Call the back end to enumerate + available types. + * cstand.adb (Back_End_Float_Types): New list for floating point types + supported by the back end. + (Build_Float_Type): Add extra parameter for Float_Rep_Kind. + (Copy_Float_Type): New procedure to make new copies of predefined types. + (Register_Float_Type): New call back procedure to populate the BEFT list + (Find_Back_End_Float_Type): New procedure to find a BEFT by name + (Create_Back_End_Float_Types): New procedure to populate the BEFT list. + (Create_Float_Types): New procedure to create entities for floating + point types predefined in Standard, and put these and any remaining + BEFTs on the Predefined_Float_Types list. + * stand.ads (Predefined_Float_Types): New list for predefined floating + point types that do not have declarations in package Standard. + +2011-08-02 Eric Botcazou + + * inline.adb (Get_Code_Unit_Entity): New local function. Returns the + entity node for the unit containing the parameter. + (Add_Inlined_Body): Use it to find the unit containing the subprogram. + (Add_Inlined_Subprogram): Likewise. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-02 Thomas Quinot + + * s-stusta.adb (Print): Make sure Pos is always initialized to a + suitable value. + +2011-08-02 Geert Bosch + + * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image. + +2011-08-02 Eric Botcazou + + * sem_type.adb (Covers): Move trivial case to the top and reuse the + computed value of Base_Type. + +2011-08-02 Yannick Moy + + * restrict.adb (Check_Restriction): issue an error for any use of + class-wide, even if the No_Dispatch restriction is not set. + * sem_aggr.adb: Correct typos in comments and messages in formal mode + * sem_ch3.adb (Process_Full_View): issue an error in formal mode is, + when completing a private extension, the type named in the private part + is not the same as that named in the visible part. + * sem_res.adb (Resolve_Call): issue an error in formal mode on the use + of an inherited primitive operations of a tagged type or type extension + that returns the tagged type. + * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new + function which returns True for an implicit operation inherited by the + derived type declaration for the argument type. + (Is_SPARK_Object_Reference): move to appropriate place in alphabetic + order. + +2011-08-02 Ed Schonberg + + * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from + Process_Bounds, to perform analysis with expansion of a range or an + expression that is the iteration scheme for a loop. + (Analyze_Iterator_Specification): If domain of iteration is given by a + function call with a controlled result, as is the case if call returns + a predefined container, ensure that finalization actions are properly + generated. + * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range. + +2011-08-02 Javier Miranda + + * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-02 Javier Miranda + + * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to + determine if the analysis is performed using N or Original_Node (N). + * exp_util.adb (Side_Effect_Free): Code cleanup since the new + functionality of routine Is_Variable avoids code duplication. + * checks.adb (Determine_Range): Handle temporaries generated by + Remove_Side_Effects. + +2011-08-02 Javier Miranda + + * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and + expansion of the condition. Required since the previous analysis was + done with expansion disabled (see Resolve_Quantified_Expression) and + hence checks were not inserted and record comparisons have not been + expanded. + +2011-08-02 Ed Falis + + * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads: + Update header. + +2011-08-02 Bob Duff + + * opt.ads: Minor comment fix. + +2011-08-02 Bob Duff + + * sem_ch12.adb (Analyze_Package_Instantiation, + Analyze_Subprogram_Instantiation): Turn off style checking while + analyzing an instance. Whatever style checks that apply to the generic + unit should apply, so it makes no sense to apply them in an instance. + This was causing trouble when compiling an instance of a runtime + unit that violates the -gnatyO switch. + * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from + one of the two case statements, causing spurious errors. + +2011-08-02 Robert Dewar + + * uname.adb: Minor reformatting. + * gnatcmd.adb: Minor reformatting. + * exp_attr.adb: Minor reformatting. + +2011-08-02 Ed Schonberg + + * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction + No_Dispatching_Calls, do not look for the Assign primitive, because + predefined primitives are not created in this case. + +2011-08-02 Bob Duff + + * stylesw.ads: Minor comment fixes. + +2011-08-02 Robert Dewar + + * freeze.adb (Add_To_Result): New procedure. + +2011-08-02 Jose Ruiz + + * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run + time, if the specific run-time routines for handling streams of strings + are not available, use the default mechanism. + +2011-08-02 Arnaud Charlet + + * s-regpat.ads: Fix typo. + +2011-08-02 Vincent Celier + + * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is + not null, call it to create the in memory config project file without + parsing an existing default config project file. + +2011-08-02 Eric Botcazou + + * atree.adb (Allocate_Initialize_Node): Remove useless temporaries. + +2011-08-02 Ed Schonberg + + * sem_elim.adb: an abstract subprogram does not need an eliminate + pragma for its descendant to be eliminable. + +2011-08-02 Ed Falis + + * init.c: revert to handling before previous checkin for VxWorks + * s-intman-vxworks.adb: delete unnecessary declarations related to + using Ada interrupt facilities for handling signals. + Delete Initialize_Interrupts. Use __gnat_install_handler instead. + * s-intman-vxworks.ads: Import __gnat_install_handler as + Initialize_Interrupts. + * s-taprop-vxworks.adb: Delete Signal_Mask. + (Abort_Handler): change construction of mask to unblock exception + signals. + +2011-08-02 Jerome Guitton + + * a-except-2005.adb (Raise_From_Signal_Handler): Call + Debug_Raise_Exception before propagation starts. + +2011-08-02 Eric Botcazou + + * exp_ch6.adb (Expand_Call): Guard restriction checks with a call + to Restriction_Check_Required. + * sem_ch3.adb (Analyze_Object_Declaration): Likewise. + * sem_res.adb (Resolve_Call): Likewise. + * sem_attr.adb (Check_Stream_Attribute): Likewise. + +2011-08-02 Bob Duff + + * stylesw.ads: Update comment. + * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N. + * errout.ads: Remove obsolete comment. + +2011-08-02 Javier Miranda + + * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function. + (Set_Is_Safe_To_Reevaluate): new procedure. + * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no + assignment is allowed on safe-to-reevaluate variables. + (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the + temporary created to remove side effects in expressions that use + the secondary stack as safe-to-reevaluate. + * exp_util.adb (Side_Effect_Free): Add missing code to handle well + variables that are not true constants. + +2011-08-02 Robert Dewar + + * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads, + sem_res.adb, sem_ch6.adb: Minor reformatting. + +2011-08-02 Jerome Guitton + + * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code. + +2011-08-02 Ed Schonberg + + * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do + not set Overridden_Operation if subprogram is an initialization + procedure. + +2011-08-02 Yannick Moy + + * par-ch6.adb: Correct obsolete name in comments + * restrict.adb, restrict.ads (Check_Formal_Restriction): new function + which takes two message arguments (existing function takes one), with + second message used for continuation. + * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject + block statements that originate from a source block statement, not + generated block statements + * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for + symmetry with procedure case + * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new + function to issue an error in formal mode if a package specification + contains more than one tagged type or type extension. + * sem_res.adb (Resolve_Actuals): in formal mode, check that actual + parameters matching formals of tagged types are objects (or ancestor + type conversions of objects), not general expressions. Issue an error + on view conversions that are not involving ancestor conversion of an + extended type. + (Resolve_Type_Conversion): in formal mode, issue an error on the + operand of an ancestor type conversion which is not an object + * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the + procedure so that it works also for actuals of function calls + (Is_Actual_Tagged_Parameter): new function which determines if its + argument is an actual parameter of a formal of tagged type in a + subprogram call + (Is_SPARK_Object_Reference): new function which determines if the tree + referenced by its argument represents an object in SPARK + +2011-08-02 Robert Dewar + + * sem_ch3.adb: Minor reformatting + Minor comment addition + Minor error msg text change + +2011-08-02 Javier Miranda + + * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New + function. Used to be more precise when we generate a variable plus one + assignment to remove side effects in the evaluation of the Bound + expressions. + (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes + of the bound expression to force its re-analysis and thus expand the + associated transient scope (if required). Code cleanup replacing the + previous code that declared the constant entity by an invocation to + routine Force_Evaluation which centralizes this work in the frontend. + +2011-08-02 Robert Dewar + + * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table + (Base_Type): Now uses improved Is_Base_Type function + * einfo.ads (Base_Type): Inline this function + +2011-08-02 Robert Dewar + + * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion + (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas + +2011-08-02 Arnaud Charlet + + * gcc-interface/Make-lang.in: Update dependencies. + * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks + targets. + +2011-08-02 Yannick Moy + + * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on + non-simple expression used in delta constraint + (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on + index constraint which is not a subtype mark + * par.adb: With and use Restrict + * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal + mode on component type which is not a subtype mark and default + expression on component + (Analyze_Subtype_Declaration): issue an error in formal mode on subtype + of string which does not have a lower index bound equal to 1 + (Array_Type_Declaration): issue an error in formal mode on index or + component type which is not a subtype mark, and on aliased keyword on + component + (Derived_Type_Declaration): issue an error in formal mode on interface, + limited or abstract type + (Record_Type_Declaration): issue an error in formal mode on interface + (Record_Type_Definition): issue an error in formal mode on tagged types + and type extensions not declared in the specification of a library unit + package; on null non-tagged record; on variant part + +2011-08-02 Vincent Celier + + * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir + not declared for qualified library project when Library_Name is not + declared, but Library_Dir is. + +2011-08-02 Robert Dewar + + * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated + pragmas (affects aspects [Component_]Default_Value + (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use + component type for the resolution + +2011-08-02 Eric Botcazou + + * einfo.adb (Base_Type): Tune implementation for speed. + +2011-08-02 Robert Dewar + + * freeze.adb: Minor reformatting. + +2011-08-02 Thomas Quinot + + * scos.ads: Update comments. + +2011-08-02 Ed Schonberg + + * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the + base type, because the parent may be a subtype of a private type whose + convention is established in a private part. + +2011-08-02 Hristian Kirtchev + + * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return + statement in a block when the expansion of the return expression has + created a finalization chain. + * freeze.adb (Freeze_Expression): Alphabetize all choices associated + with the parent node. + Add N_Extended_Return_Statement to handle the case where a transient + object declaration appears in the Return_Object_Declarations list of + an extended return statement. + +2011-08-02 Matthew Gingell + + * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly + unused parameter 'name'. + +2011-08-02 Ed Schonberg + + * sem_elim.adb (Set_Eliminated): If the overridden operation is an + inherited operation, check whether its alias, which is the source + operastion that it renames, has been marked eliminated. + +2011-08-02 Javier Miranda + + * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an + in-mode parameter whose type is an access type since it can be used to + modify its designated object. Enforce code that handles as safe an + access type that is not access-to-constant but it is the result of a + previous removal of side-effects. + (Remove_Side_Effects): Minor code reorganization of cases which require + no action. Done to incorporate documentation on new cases uncovered + working in this ticket: no action needed if this routine was invoked + too early and the nodes are not yet decorated. + * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls + to routine Remove_Side_Effects by calls to Force_Evaluation since they + were issued with actuals that are implicitly provided by + Force_Evaluation. + +2011-08-02 Robert Dewar + + * sem_ch3.adb, sem_res.adb: Minor reformatting. + +2011-08-02 Yannick Moy + + * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure + to issue an error in formal mode on attribute not supported in this mode + (Analyze_Attribute): issue errors on standard attributes not supported + in formal mode. + * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of + comment, and issue error in formal mode on modulus which is not a power + of 2. + (Process_Range_Expr_In_Decl): issue error in formal mode on non-static + range. + * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in + subtype mark. + * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary + operator on modular type (except 'not'). + +2011-08-02 Robert Dewar + + * gnat_rm.texi: Minor reformatting. + +2011-08-02 Arnaud Charlet + + * s-osinte-linux.ads: Minor comment update and reformatting. + * i-cexten.ads: Make this unit pure, as for its parent. + Will allow its usage in more contexts if needed. + +2011-08-02 Robert Dewar + + * s-utf_32.ads: Minor comment fix. + +2011-08-02 Ed Schonberg + + * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive + operation of a tagged synchronized type, handle the case where the + controlling argument is overloaded. + +2011-08-02 Yannick Moy + + * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl: + Replace pragma SPARK_95 with pragma Restrictions (SPARK) + * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set + SPARK mode and formal verification mode on processing SPARK restriction + * s-rident.ads (Restriction_Id): add SPARK restriction in those not + requiring consistency checking. + +2011-08-02 Robert Dewar + + * sem_res.adb: Minor reformatting. + +2011-08-02 Robert Dewar + + * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, + a-cforse.ads: Remove unneeded with of Ada.Containers + Remove commented out pragma Inline's + Move specifications of new subprograms to the actual specs + +2011-08-02 Yannick Moy + + * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, + a-cforse.ads: Update comments. + +2011-08-02 Ed Schonberg + + * sem_attr.adb: add attribute name when 'Result has the wrong prefix. + +2011-08-02 Robert Dewar + + * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, + a-cforse.ads, a-cofove.ads: Minor reformatting. + +2011-08-02 Claire Dross + + * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads, + a-cofove.ads: Add comments. + +2011-08-02 Yannick Moy + + * gnat_rm.texi: Document formal containers. + +2011-08-02 Emmanuel Briot + + * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there + are empty sections. + +2011-08-02 Robert Dewar + + * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor + reformatting. + +2011-08-02 Robert Dewar + + * aspects.adb: New aspects Default_Value and Default_Component_Value + New format of Aspect_Names table checks for omitted entries + * aspects.ads: Remove mention of Aspect_Cancel and add documentation on + handling of boolean aspects for derived types. + New aspects Default_Value and Default_Component_Value + New format of Aspect_Names table checks for omitted entries + * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag + (Has_Default_Value): New flag + (Has_Default_Component_Value): New flag + (Has_Default_Value): New flag + * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names + table. + * par-prag.adb: New pragmas Default_Value and Default_Component_Value + * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects + Default_Value and Default_Component_Value + * sem_prag.adb: New pragmas Default_Value and Default_Component_Value + New aspects Default_Value and Default_Component_Value + * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value + * sprint.adb: Print N_Aspect_Specification node when called from gdb + +2011-08-02 Vincent Celier + + * prj-nmsc.adb (Check_Library_Attributes): For virtual library project, + inherit library kind. + +2011-08-02 Ed Schonberg + + * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds. + Minor reformatting. + +2011-08-02 Robert Dewar + + * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM + +2011-08-02 Yannick Moy + + * sem_aggr.adb (Resolve_Aggregate): Fix thinko. + +2011-08-02 Robert Dewar + + * impunit.adb: Add comment. + +2011-08-02 Yannick Moy + + * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks + qualification of aggregates in formal mode + (Is_Top_Level_Aggregate): returns True for an aggregate not contained in + another aggregate + (Resolve_Aggregate): complete the test that an aggregate is adequately + qualified in formal mode + +2011-08-02 Pascal Obry + + * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting. + * mlib-prj.adb: Supress warning when compiling binder generated file. + (Build_Library): Supress all warnings when compiling the binder + generated file. + +2011-08-02 Yannick Moy + + * errout.adb, errout.ads (Check_Formal_Restriction): move procedure + from here... + * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here + * sem_aggr.adb, sem_ch5.adb, sem_util.adb: + Add with/use clauses to make Check_Formal_Restriction visible + +2011-08-02 Ed Schonberg + + * sem_ch12.adb (Check_Generic_Actuals): handle properly actual + in-parameters when type of the generic formal is private in the generic + spec and non-private in the body. + +2011-08-02 Claire Dross + + * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb, + a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads, + a-cofove.adb, a-cofove.ads: New files implementing formal containers. + * impunit.adb, Makefile.rtl: Take new files into account. + +2011-08-02 Robert Dewar + + * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb, + sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting. + +2011-08-02 Yannick Moy + + * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in + formal mode + * sem_util.adb (Matching_Static_Array_Bounds): proper detection of + matching static array bounds, taking into account the special case of + string literals + * sem_ch3.adb: Typo in comment. + +2011-08-02 Yannick Moy + + * errout.adb, errout.ads (Check_Formal_Restriction): new procedure + which issues an error in formal mode if its argument node is originally + from source + * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type + has a discriminant specification so that it does not include the case + of derived types + (Derived_Type_Declaration): move here the test that a derived type has a + discriminant specification + * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the + first element of a component association before accessing its choices + (presence of component association is not enough) + * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram + declaration is a library item before accessing the next element in a + list, as library items are not member of lists + * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, + sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use + Check_Formal_Restriction whenever possible. + +2011-08-02 Ed Schonberg + + * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype + reference when needed. + +2011-08-02 Bob Duff + + * gnat_ugn.texi: Fix typo. + +2011-08-02 Vincent Celier + + * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of + archive file name. Do not use the full path name of archives for Open + VMS. + +2011-08-02 Robert Dewar + + * sem_ch12.adb, sem_ch11.adb: New calling sequence for + Analyze_Aspect_Specifications + * sem_ch13.adb + (Analyze_Aspect_Specifications): New handling for boolean aspects + * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence + * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling + sequence for Analyze_Aspect_Specifications + * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely + * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used + +2011-08-02 Robert Dewar + + * freeze.adb (Freeze_Entity): Remove handling of delayed boolean + aspects, since these no longer exist. + +2011-08-02 Robert Dewar + + * par-ch13.adb (Aspect_Specifications_Present): Always return false on + semicolon, do not try to see if there are aspects following it. + * par-ch3.adb (P_Declarative_Items): Better message for unexpected + aspect spec. + +2011-08-02 Robert Dewar + + * sem_ch8.adb, aspects.ads: Minor reformatting. + +2011-08-02 Eric Botcazou + + * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline. + * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure + extracted from... + (Analyze_Aspect_Specifications): ...here. Call above procedure. + +2011-08-02 Yannick Moy + + * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal + mode on subprogram declaration outside of package specification, unless + it is followed by a pragma Import + * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration, + Access_Type_Declaration): issue error in formal mode on access type + (Analyze_Incomplete_Type_Decl): issue error in formal mode on + incomplete type + (Analyze_Object_Declaration): issue error in formal mode on object + declaration which does not respect SPARK restrictions + (Analyze_Subtype_Declaration): issue error in formal mode on subtype + declaration which does not respect SPARK restrictions + (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue + error in formal mode on digits or delta constraint + (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on + decimal fixed point type + (Derived_Type_Declaration): issue error in formal mode on derived type + other than type extensions of tagged record types + * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant + with check on access definition + * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal + mode on protected definition. + (Analyze_Task_Definition): issue error in formal mode on task definition + +2011-08-02 Robert Dewar + + * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting. + +2011-08-02 Javier Miranda + + * sem_ch6.adb (Can_Override_Operator): New function. + (Verify_Overriding_Indicator): Add missing code to check overriding + indicator in operators. Fixes regression. + (Check_Overriding_Indicator): Minor reformating after replacing the + code that evaluates if the subprogram can override an operator by + invocations to the above new function. + * einfo.adb + (Write_Field26_Name): Add missing code to ensure that, following + the documentation in einfo.ads, this field is not shown as attribute + "Static_Initialization" on non-dispatching functions. + +2011-08-02 Jose Ruiz + + * sem_res.adb (Resolve_Call): A call to + Ada.Real_Time.Timing_Events.Set_Handler violates restriction + No_Relative_Delay (AI-0211) only when it sets a relative timing event, + i.e., when the second parameter is of type Time_Span. + +2011-08-02 Vincent Celier + + * make.adb (Gnatmake): use /lib.a to link + with an archive instead of -L -l. + +2011-08-02 Ed Schonberg + + * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed, + mark the base types In_Use in addition to making the operations + use_visible. + +2011-08-02 Ed Falis + + * init.c: add and setup __gnat_signal_mask for the exception signals + * s-inmaop-vxworks.adb: new file. + * s-intman-vxworks.adb: remove unnecessary initializations and + simplify remaining + * s-intman-vxworks.ads: remove unnecessary variable + * s-taprop-vxworks.adb: simplify signal initialization + +2011-08-02 Robert Dewar + + * sem_ch8.adb: Minor code reorganization, comment updates. + +2011-08-02 Robert Dewar + + * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util + * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved + here from Sem_Res. + (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression + (Matching_Static_Array_Bounds): Moved here from Sem_Res + +2011-08-02 Ed Schonberg + + * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5. + * par_ch8.adb (P_Use_Type): initialize Used_Operations for node. + * sinfo.ads, sinfo.adb (Used_Operations): new attribute of + use_type_clauses, to handle more efficiently use_type and use_all_type + constructs. + * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the + Ada2012 Use_All_Type clause. + (Use_Class_Wide_Operations): new procedure. + +2011-08-02 Robert Dewar + + * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb, + sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized + expression to expression function. + +2011-08-02 Ed Schonberg + + * sem_ch4.adb: transform simple Ada2012 membership into equality only + if types are compatible. + +2011-08-02 Yannick Moy + + * sem_res.adb (Matching_Static_Array_Bounds): new function which + returns True if its argument array types have same dimension and same + static bounds at each index. + (Resolve_Actuals): issue an error in formal mode on actuals passed as + OUT or IN OUT paramaters which are not view conversions in SPARK. + (Resolve_Arithmetic_Op): issue an error in formal mode on + multiplication or division with operands of fixed point types which are + not qualified or explicitly converted. + (Resolve_Comparison_Op): issue an error in formal mode on comparisons of + Boolean or array type (except String) operands. + (Resolve_Equality_Op): issue an error in formal mode on equality + operators for array types other than String with non-matching static + bounds. + (Resolve_Logical_Op): issue an error in formal mode on logical operators + for array types with non-matching static bounds. Factorize the code in + Matching_Static_Array_Bounds. + (Resolve_Qualified_Expression): issue an error in formal mode on + qualified expressions for array types with non-matching static bounds. + (Resolve_Type_Conversion): issue an error in formal mode on type + conversion for array types with non-matching static bounds + +2011-08-02 Robert Dewar + + * par-ch10.adb: Minor code reorganization (use Nkind_In). + +2011-08-02 Ed Schonberg + + * par-ch9.adb: save location of entry for proper error message. + +2011-08-02 Javier Miranda + + * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal + (Use_Full_View) which permits this routine to climb through the + ancestors using the full-view of private parents. + * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set + Use_Full_View to true in calls to Is_Ancestor. + * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to + true in call to Is_Ancestor. + * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set + Use_Full_View to true in call to Is_Ancestor. + * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in + call to Is_Ancestor. + * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set + Use_Full_View to true in calls to Is_Ancestor. + * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT, + Make_Select_Specific_Data_Table, Register_Primitive, + Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor. + * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View + to true in call to Is_Ancestor. + * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set + Use_Full_View to true in calls to Is_Ancestor. + * exp_cg.adb + (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor. + (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor. + +2011-08-02 Robert Dewar + + * gnat_rm.texi: Minor reformatting. + * sem_prag.adb: Minor reformatting. + +2011-08-02 Tristan Gingold + + * vms_data.ads: Add VMS qualifier for -gnateP. + +2011-08-02 Robert Dewar + + * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty + * par-ch7.adb (P_Package): Proper placement of aspects for package + decl/instantiation. + * par-endh.adb (Check_End): Ad Is_Sloc parameter + (End_Statements): Add Is_Sloc parameterr + * par.adb (P_Aspect_Specification): New meaning of Decl = Empty + (Check_End): Ad Is_Sloc parameter + (End_Statements): Add Is_Sloc parameterr + +2011-08-02 Vincent Celier + + * ug_words: Add VMS qualifier equivalent to -gnateP: + /SYMBOL_PREPROCESSING. + +2011-08-02 Jose Ruiz + + * gnat-style.texi: For hexadecimal numeric literals the typical + grouping of digits is 4 to represent 2 bytes. + A procedure spec which is split into several lines is indented two + characters. + +2011-08-02 Yannick Moy + + * exp_aggr.adb (Is_Others_Aggregate): move function to other unit. + * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here + (Resolve_Aggregate): issue errors in formal modes when aggregate is not + properly qualified + (Resolve_Array_Aggregate): issue errors in formal modes on non-static + choice in array aggregate + (Resolve_Extension_Aggregate): issue errors in formal modes on subtype + mark as ancestor + (Resolve_Record_Aggregate): issue errors in formal modes on mixed + positional and named aggregate for record, or others in record + aggregate, or multiple choice in record aggregate + * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when + array operands to logical operations AND, OR and XOR do not have the + same static lower and higher bounds + * sem_ch5.adb, sinfo.ads: Correct typos in comments + +2011-08-01 Robert Dewar + + * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement): + Replaces Last_Source_Node_In_Sequence. + * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K + * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores + parens and blank in string (this was inconsistently implemented). + * errout.ads + (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and + blank in string (this was inconsistently implemented). + * gnat1drv.adb + (Set_Global_Switches): Set formal mode switches appropriately + * opt.ads, opt.adb: Formal mode is now global switches, more consistent + * par-prag.adb + (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and + call Set_Error_Msg_Lang to set "spark" as language name. + * par.adb: Remove unnecessary call to set formal language for errout + * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches + appropriately and call Set_Error_Msg_Lang to set "spark" as language + name. + * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and + calls to it, moved after resolution so that types are known + * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if + result of concatenation is not of type String + (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of + concatenation is not properly restricted + * gnat_rm.texi: Add doc on pragma Spark_95. + * gcc-interface/Makefile.in: Remove obsolete target pairs for + Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-01 Javier Miranda + + * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of + condition that detects if the overridden operation must replace an + existing entity. + +2011-08-01 Javier Miranda + + * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded + code declarations inserted by Insert_Actions in each alternative of the + N_Case_Expression node. + +2011-08-01 Robert Dewar + + * sem_ch6.adb: Minor code reorganization. + * sem_util.adb: Minor reformatting. + +2011-08-01 Pascal Obry + + * prj-env.adb: Remove /lib/gpr/ project search path. + * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource. + +2011-08-01 Yannick Moy + + * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character + literal or operator symbol which is prefixed + * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal + mode on access attributes. + * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check + that concatenation operands are properly restricted in formal mode + (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure + Analyze_Concatenation_Operand. Issue an error in formal mode if the + result of the concatenation has a type different from String. + (Analyze_Conditional_Expression, Analyze_Explicit_Dereference, + Analyze_Quantified_Expression, Analyze_Slice, + Analyze_Null): issue an error in formal mode on unsupported constructs + * sem_ch5.adb + (Analyze_Block_Statement): only issue error on source block statement + * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new + function which returns the last node in a list of nodes for which + Comes_From_Source returns True, if any + * sem_ch6.adb (Check_Missing_Return): minor refactoring to use + Last_Source_Node_In_Sequence + * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming, + Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal + mode on unsupported constructs + * sem_ch9.adb Do not return after issuing error in formal mode, as the + rest of the actions may be needed later on since the error is marked as + not serious. + * sinfo.ads: Typos in comments. + +2011-08-01 Pascal Obry + + * projects.texi: Minor editing. + +2011-08-01 Yannick Moy + + * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for + insertion character ~~ + * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures + (Set_Error_Msg_Lang): new procedure which fixes the language for use + with insertion character ~~ + (Set_Msg_Text): treat insertion character ~~ + * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb, + sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to + Formal_Error_Msg_... procedures by equivalent Error_Msg_... + procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make + errors related to the formal language restriction not serious + (insertion character |). + * par.adb (Par): set formal language for error messages if needed + * sem_ch6.adb (Check_Missing_Return): take into account possible + generated statements at the end of the function + * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and + enumeration value to define a new pragma SPARK_95 + * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default, + SPARK_Version): new type and variables to store the SPARK version + (none by default). + (SPARK_Mode): return True when SPARK_Version is set + * par-prag.adb: Correct indentation + (Prag): take Pragma_SPARK_95 into account + * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95 + into account. + +2011-08-01 Robert Dewar + + * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb, + sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb, + sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting + +2011-08-01 Pascal Obry + + * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass + Target_Name to Get_Path call. + (Parse_Single_Project): Likewise. + (Post_Parse_Context_Clause): Likewise. + * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter. + Call Initialise_Project_Path with the proper Target_Name. + (Initialize_Project_Path): Add //lib/gnat + search path. + (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path + with the proper Target_Name. + * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to + Part.Parse routine. + (Parse_Project_And_Apply_Config): Likewise. + * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine. + This is fine as this part of the code is supporting only native + compilation. + * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This + is fine as this part of the code is supporting only native compilation. + +2011-08-01 Yannick Moy + + * sem_util.adb (Enter_Name): issue error in formal mode on declaration + of homonym, unless the homonym is one of the cases allowed in SPARK + * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for + package declaration occurring after a body. + +2011-08-01 Robert Dewar + + * checks.adb, exp_ch4.adb: Minor reformatting. + +2011-08-01 Javier Miranda + + * einfo.ads (Access_Disp_Table): Fix documentation. + (Dispatch_Table_Wrappers): Fix documentation. + +2011-08-01 Pascal Obry + + * prj-env.adb, prj-env.ads: Minor reformatting. + +2011-08-01 Yannick Moy + + * sem_util.ads, sem_util.adb, par.adb, par_util.adb + (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move + procedures out of these packages. + * errout.ads, errout.adb + (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move + procedures in of this package + (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE + * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode + on misplaced later vs initial declarations, like in Ada 83 + * sem_attr.adb (Processing for Analyze_Attribute): issue error in + formal mode on attribute of private type whose full type declaration + is not visible + * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a + package declaration inside a package specification + (Analyze_Full_Type_Declaration): issue error in formal mode on + controlled type or discriminant type + * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on + user-defined operator means that it should come from the source + (New_Overloaded_Entity): issue error in formal mode on overloaded + entity. + * sem_ch6.ads, sem_ch13.ads: typos in comments. + +2011-08-01 Thomas Quinot + + * atree.adb: Minor reformatting. + * checks.adb: Minor reformatting. + +2011-08-01 Vincent Celier + + * s-parame-vms-ia64.ads: Fix typo in comment + Minor reformatting + * s-parame-vms-restrict.ads: Removed, unused. + +2011-08-01 Javier Miranda + + * exp_ch3.adb + (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound. + * sem_ch3.adb + (Constrain_Index): Remove side effects in the evaluation of the bounds. + * sem_ch3.ads, sem_ch3.adb + (Is_Constant_Bound): New extended version of the subprogram that was + previously located inside function Exp_Ch3.Is_Variable_Size_Array. + Moved here since it is shared by routines of sem_ch3 and exp_ch3. + * sem_aux.ads (Constant_Value): Fix typo in comment. + * checks.adb (Generate_Index_Checks): New implementation which, for + array objects with constant bounds, generates the runtime check + referencing the bounds of the array type. For other cases this routine + provides its previous behavior obtaining such values from the array + object. + * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its + parent type. + * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since + we cannot have semantic interpretations of the new node. + +2011-08-01 Ed Schonberg + + * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified + expressions. + +2011-08-01 Arnaud Charlet + + * sem_ch8.adb: Minor code editing. + * s-vxwext.adb: Remove trailing space. + * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for + consistency with other files. + +2011-08-01 Thomas Quinot + + * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting. + +2011-08-01 Ed Schonberg + + * par-ch10.adb: reject parameterized expressions as compilation unit. + * sem_ch4.adb: handle properly conditional expression with overloaded + then_clause and no else_clause. + +2011-08-01 Tristan Gingold + + * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address + like done by System.Aux_DEC. + * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table. + +2011-08-01 Yannick Moy + + * par-endh.adb (Check_End): issue a syntax error in SPARK mode for + missing label at end of declaration (subprogram or package) + * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing + of positional and named parameter association + * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on + Error_Msg_SP which adds a prefix to the error message giving the name + of the formal language analyzed + * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for + access result type in subprogram, unconstrained array as result type,. + (Analyze_Subprogram_Declaration): issue an error in formal mode for null + procedure + * sem_ch8.adb: Code clean up. + +2011-08-01 Javier Miranda + + * sem_ch7.adb (Uninstall_Declarations): Remove useless code. + * einfo.ads (Access_Disp_Table): Fix documentation. + (Dispatch_Table_Wrappers): Fix documentation. + * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers, + Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions + to enforce the documentation of this attribute. + (Set_Is_Interface): Cleanup the assertion. + * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate + the Underlying_Type entity before reading attribute Access_Disp_Table. + * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion): + Locate the Underlying_Type before reading attribute Access_Disp_Table. + * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate + the Underlying_Type entity before reading attribute Access_Disp_Table. + * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration): + Locate the Underlying_Type entity before reading attribute + Access_Disp_Table. + +2011-08-01 Ed Schonberg + + * s-poosiz.ads: Additional overriding indicators. + +2011-08-01 Yannick Moy + + * sem_ch5.adb (Analyze_Exit_Statement): add return after error in + formal mode. + (Analyze_Iteration_Scheme): issue error in formal mode when loop + parameter specification does not include a subtype mark. + * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in + formal mode on abstract subprogram. + (Analyze_Subprogram_Specification): issue error in formal mode on + user-defined operator. + (Process_Formals): issue error in formal mode on access parameter and + default expression. + * sem_ch9.adb (Analyze_Abort_Statement, + Analyze_Accept_Statement, Analyze_Asynchronous_Select, + Analyze_Conditional_Entry_Call, Analyze_Delay_Relative, + Analyze_Delay_Until, Analyze_Entry_Call_Alternative, + Analyze_Requeue, Analyze_Selective_Accept, + Analyze_Timed_Entry_Call): issue error in formal mode on such constructs + * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error): + issue error in formal mode on user-defined raise statement. + +2011-08-01 Thomas Quinot + + * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a + declaration being hidden when overriding an implicit inherited + subprogram. + * par-ch10.adb (P_Compilation_Unit): In syntax check only mode + (-gnats), do not complain about a source file that contains only a + pragma No_Body. + +2011-08-01 Ed Schonberg + + * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop + variable if already set. + +2011-08-01 Arnaud Charlet + + * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads, + g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads, + s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads, + g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb, + g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads, + g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads, + g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads, + g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb, + g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb, + g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads, + g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads, + s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb, + g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads, + s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads, + g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb, + g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb, + g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb, + g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb, + g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb, + g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb, + s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads, + s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads, + a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb, + s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads, + s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb, + g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads, + g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb, + g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb, + g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads, + g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads, + g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads, + s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads, + s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb, + g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb, + g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads, + s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb, + s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads, + g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads, + g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb, + g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads, + s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads, + g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads, + g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads, + g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb, + s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb, + g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb, + g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb, + g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb, + s-osinte-mingw.ads: Update to GPLv3 run-time license. + Use GNAT instead of GNARL. + +2011-08-01 Bob Duff + + * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads, + a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads, + a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor + reformatting. + +2011-08-01 Yannick Moy + + * debug.adb (d.D) reverve flag for the SPARK mode + (d.E) reverve flag for SPARK generation mode + (d.F) reverve flag for Why generation mode + * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode, + ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New + functions which return True when the corresponding modes are set + (Formal_Language): return "spark" or "alfa" when in formal verification + mode. + * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on + Error_Msg to prefix the error message with a tag giving the formal + language + (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error + message with a tag giving the formal language + * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on + block statement + (Analyze_Case_Statement): issue error in formal mode on case statement + with a single "others" case alternative + (Analyze_Exit_Statement): issue errors in formal mode on exit + statements which do not respect SPARK restrictions + (Analyze_Goto_Statement): issue error in formal mode on goto statement + (Check_Unreachable_Code): always issue an error (not a warning) in + formal mode on unreachable code (concerns both code after an infinite + loop and after an unconditional jump, both not allowed in SPARK) + * sem_ch6.adb (Analyze_Return_Statement): add call to + Set_Return_Present for a procedure containing a return statement + (already done for functions in Analyze_Function_Return) + (Analyze_Function_Return): issue error in formal mode on extended + return or if return is not last statement in function + (Check_Missing_Return): issue error in formal mode if function does + not end with return or if procedure contains a return + * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new + function to detect if there is an inner scope of its parameter S which + is a loop. + +2011-08-01 Thomas Quinot + + * sem_ch6.ads: Minor reformatting. + +2011-08-01 Javier Miranda + + * sem_util.adb (Abstract_Interface_List): Complete condition when + processing private type declarations to avoid reading unavailable + attribute. + (Is_Synchronized_Tagged_Type): Complete condition when processing + private extension declaration nodes to avoid reading unavailable + attribute. + +2011-08-01 Thomas Quinot + + * sem_ch3.adb: Minor reformatting. + +2011-08-01 Thomas Quinot + + * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads, + i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads, + s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads, + s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages + for VMS, instead parametrize the common implementation with + System.Parameters declarations. + +2011-08-01 Eric Botcazou + + * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing. + +2011-08-01 Tristan Gingold + + * seh_init.c: Fix SEH handler installation on win64. + +2011-08-01 Ed Schonberg + + * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent + double analysis of an anonymous access to subprogram, because it can + lead to improper sharing of profiles and a back-end crash. + +2011-08-01 Robert Dewar + + * make.adb, sem_ch4.adb: Minor reformatting. + * gcc-interface/Make-lang.in: Update dependencies. + * sem_util.adb, exp_ch5.adb: Minor reformatting. + +2011-08-01 Arnaud Charlet + + * gnat_rm.texi: Fix definition of Long_Integer. + +2011-08-01 Ed Schonberg + + * exp_aggr.adb: check limit size of static aggregate unconditionally, + to prevent storage exhaustion. + * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being + finalized is a function body, insert the cleanup code before the final + return statement, to prevent spurious warnings. + * s-pooglo.ads: add overriding indicator. + +2011-08-01 Ed Schonberg + + * sem_ch4.adb (Operator_Check): improve error message when both a + with_clause and a use_clause are needed to make operator usage legal. + * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to + determine whether a compilation unit is visible within an other, + either through a with_clause in the current unit, or a with_clause in + its library unit or one one of its parents. + +2011-08-01 Ed Schonberg + + * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator + over an arbitrary expression of an array or container type. + * lib-xref.adb: clarify comment. + +2011-08-01 Bob Duff + + * einfo.ads: Minor reformatting. + * debug.adb: Minor comment improvement. + +2011-08-01 Javier Miranda + + * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not + consider hidden subprograms as valid candidates. + +2011-08-01 Arnaud Charlet + + * make.adb (Compile): Strip -mxxx switches in CodePeer mode. + +2011-08-01 Vasiliy Fofanov + + * gnat_ugn.texi: Fix typo. + +2011-08-01 Robert Dewar + + * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb, + lib-xref.adb: Minor reformatting + +2011-08-01 Gary Dismukes + + * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of + when to generate a call to Move_Final_List. + (Has_Controlled_Parts): Remove this function. + +2011-08-01 Geert Bosch + + * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra + "," in choice list. + +2011-08-01 Thomas Quinot + + * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for + explicit raise of a predefined exception as Comes_From_Source if the + original N_Raise_Statement comes from source. + +2011-08-01 Robert Dewar + + * sinfo.ads: Add comment. + * sem_ch6.adb: Minor reformatting. + +2011-08-01 Robert Dewar + + * freeze.adb (Freeze_Entity): Refine check for bad component size + clause to avoid rejecting confirming clause when atomic/aliased present. + +2011-08-01 Ed Schonberg + + * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to + better determine whether an entity reference is a write. + * sem_util.adb (Is_LHS): refine predicate to handle assignment to a + subcomponent. + * lib-xref.adb (Output_References): Do no suppress a read reference at + the same location as an immediately preceeding modify-reference, to + handle properly in-out actuals. + +2011-08-01 Tristan Gingold + + * env.c (__gnat_setenv) [VMS]: Refine previous change. + +2011-08-01 Quentin Ochem + + * i-cstrin.adb (New_String): Changed implementation, now uses only the + heap to compute the result. + +2011-08-01 Robert Dewar + + * atree.ads: Minor reformatting. + +2011-08-01 Emmanuel Briot + + * g-expect.adb (Get_Command_Output): Fix memory leak. + +2011-08-01 Geert Bosch + + * cstand.adb (P_Float_Type): New procedure to print the definition of + predefined fpt types. + (P_Mixed_Name): New procedure to print a name using mixed case + (Print_Standard): Use P_Float_Type for printing floating point types + * einfo.adb (Machine_Emax_Value): Add preliminary support for quad + precision IEEE float. + +2011-08-01 Thomas Quinot + + * sem_ch3.adb: Minor reformatting. + +2011-08-01 Ed Schonberg + + * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is + the completion of a generic function, insert the new body rather than + rewriting the original. + +2011-08-01 Yannick Moy + + * sinfo.ads, errout.ads: Typos in comments. + +2011-08-01 Robert Dewar + + * par-endh.adb: Minor reformatting. + +2011-08-01 Robert Dewar + + * aspects.ads, aspects.adb: Add aspects for library unit pragmas + (Pre_Post_Aspects): New subtype. + * par-ch12.adb (P_Generic): New syntax for aspects in packages + * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter + * par-ch7.adb (P_Package): Remove Decl parameter + (P_Package): Handle new syntax for aspects (before IS) + * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle + new aspect syntax + (P_Task_Definition): Remove Decl parameter, handle new aspect syntax + * par.adb (P_Aspect_Specifications): Add Semicolon parameter + (P_Package): Remove Decl parameter + * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit + aspects + * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect + specs + * sem_util.ads, sem_util.adb (Static_Boolean): New function + * sinfo.ads: Document new syntax for aspects in packages etc. + * sprint.adb: Handle new syntax of aspects before IS in package + +2011-08-01 Thomas Quinot + + * atree.ads: Minor reformatting. + * sem_prag.adb: Minor reformatting. + +2011-08-01 Robert Dewar + + * exp_util.adb (Insert_Actions): Fix error in handling Actions for + case expr alternative. + +2011-08-01 Ed Schonberg + + * sem_ch12.adb: Fix typo. + +2011-08-01 Geert Bosch + + * sem_prag.adb (Check_No_Link_Name): New procedure. + (Process_Import_Or_Interface): Use Check_No_Link_Name. + * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float) + instead of Standard_Long_Long_Float_Size global. Preparation for + eventual removal of per type constants. + * exp_util.ads (Get_Stream_Size): New function returning the stream + size value of subtype E. + * exp_util.adb (Get_Stream_Size): Implement new function. + * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size + function. + * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size + * einfo.adb: + (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats + +2011-08-01 Geert Bosch + + * cstand.adb: Fix comments. + * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit + count of arguments. + +2011-08-01 Robert Dewar + + * exp_ch4.adb, sem_cat.adb: Minor reformatting. + +2011-08-01 Geert Bosch + + * atree.ads: Fix comment. + +2011-08-01 Robert Dewar + + * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec. + * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name. + * par.adb: Add with for Namet.Sp. + * par-tchk.adb: Minor reformatting. + +2011-08-01 Vincent Celier + + * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb + (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name + of the init procedure of a SAL. + * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name): + New procedure. + +2011-08-01 Thomas Quinot + + * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor + reformatting. + +2011-08-01 Richard Kenner + + * adaint.c (__gnat_file_time_name_attr): Get rid of warning. + +2011-08-01 Thomas Quinot + + * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function + conformant with its spec (return True only for types that have + an overriding Initialize primitive operation that prevents them from + having preelaborable initialization). + * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable + initialization for controlled types in Ada 2005 or later mode. + +2011-08-01 Robert Dewar + + * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition, + Postcondition. + (Same_Aspect): New function. + * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect + Type_Invariant, Precondition, Postcondition. + * snames.ads-tmpl: Add Name_Type_Invariant. + +2011-08-01 Robert Dewar + + * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point + here. + (Freeze_All_Ent): Fix error in handling inherited aspects. + * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is + already analyzed, but don't skip entire processing of a declaration, + that's wrong in some cases of declarations being rewritten. + (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects. + Don't delay for integer, string literals + Treat predicates in usual manner for delay, remove special case code, + not needed. + (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point + (Build_Predicate_Function): Update saved expression in aspect + (Build_Invariant_Procedure): Update saved expression in aspect + * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization + of replacement of discriminant references if the reference is simple. + +2011-08-01 Robert Dewar + + * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate. + * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for + Static_Predicate and Dynamic_Predicate. + (Build_Predicate_Function): Add processing for Static_Predicate + and Dynamic_Predicate. + * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag + (From_Static_Predicate): New flag + * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate + +2011-08-01 Robert Dewar + + * usage.adb: Documentation cleanup for Ada version modes in usage. + * expander.adb: Minor reformatting. + +2011-08-01 Robert Dewar + + * atree.ads: Minor comment fix. + * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads, + a-witeio.ads, sem_prag.adb: Minor reformatting. + +2011-08-01 Doug Rupp + + * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure + pointers. Use descrip.h header file for convenience. Add some + comments. + +2011-08-01 Robert Dewar + + * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point + (Freeze_All): Call Check_Aspect_At_End_Of_Declarations + * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point): + New procedure. + (Check_Aspect_At_End_Of_Declarations): New procedure + (Analye_Aspect_Specification): Minor changes for above procedures + * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect + specification node as well. + +2011-08-01 Pascal Obry + + * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special + Windows files. Use GetFilesAttributes() in this case to check for file + existence instead of returning with an error code. + +2011-08-01 Vincent Celier + + * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when + High is above Source length. + +2011-08-01 Robert Dewar + + * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment. + +2011-08-01 Robert Dewar + + * aspects.ads (Boolean_Aspects): New subtype. + * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects + for derived types in cases where the parent type and derived type have + aspects. + * freeze.adb (Freeze_Entity): Fix problems in handling derived type + with aspects when parent type also has aspects. + (Freeze_Entity): Deal with delay of boolean aspects (must evaluate + boolean expression at this point). + * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in + accordance with final decision on the Ada 2012 feature. + * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag. + +2011-08-01 Matthew Heaney + + * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector. + +2011-08-01 Pascal Obry + + * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: + Fix Replace_Slice when High is above current string size. + (Replace_Slice): Fix DL computation when High is above current + string length. + +2011-08-01 Gary Dismukes + + * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired. + +2011-08-01 Matthew Heaney + + * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child + of node. + +2011-08-01 Pascal Obry + + * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor + reformatting. + +2011-08-01 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named + access to protected subprograms in generic bodies. + * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a + protected type, indicate that the convention of the subprogram is + Convention_Protected, because it may be used in subsequent declarations + within the protected declaration. + +2011-08-01 Vincent Celier + + * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init" + and "final" procedures when the name of the library is "ada", to avoid + duplicate symbols "adainit" and "adafinal" in executables. + +2011-08-01 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a + quantified expression that appears within a postcondition and uses the + Ada2012 'Result attribute. + +2011-07-28 Rainer Orth + + * init.c (__gnat_error_handler): Cast reason to int. + (__gnat_install_handler): Explain sa_sigaction use. + +2011-07-24 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : If the + subprogram has copy-in copy-out parameters, try to promote the mode of + the return type if it is passed in registers. + +2011-07-24 Eric Botcazou + + * gcc-interface/utils2.c (build_binary_op) : Do not mark the + left operand as addressable. + +2011-07-24 Eric Botcazou + + * gcc-interface/gigi.h (build_function_stub): Remove. + (build_return_expr): Likewise. + (convert_vms_descriptor): Declare. + * gcc-interface/utils.c (convert_vms_descriptor): Make global. + (build_function_stub): Move to... + * gcc-interface/utils2.c (build_return_expr): Move to... + * gcc-interface/trans.c (build_function_stub): ...here. + (build_return_expr): ...here. + (Subprogram_Body_to_gnu): Add local variable for language_function. + Disconnect the parameter attributes cache, if any, once done with it. + Call end_subprog_body only after setting the end_locus. + Build the stub associated with the function, if any, at the very end. + (gnat_to_gnu) : Remove couple of useless local + variables and streamline control flow. + +2011-07-23 Arnaud Charlet + + PR ada/49819 + * gcc-interface/Makefile.in (powerpc-linux): Remove reference to + g-trasym-dwarf.adb. + +2011-07-22 Rainer Orth + + PR bootstrap/49794 + * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler): + Assign to act.sa_sigaction. + * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast + current->return_address to char * before arithmetic. + +2011-07-22 Rainer Orth + + * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation. + Correct argument types. + Extract code from reason. + (__gnat_install_handler): Assign to act.sa_sigaction. + +2011-07-21 Eric Botcazou + + * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to... + (GNAT1_OBJS): ...here. + +2011-07-15 Eric Botcazou + + PR ada/48711 + * g-socthi-mingw.adb (Fill): Fix formatting. + + * gcc-interface/gigi.h: Move around comment. + +2011-07-14 John David Anglin + + PR ada/46350 + * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast. + +2011-07-14 Florian Weimer + + PR ada/48711 + * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL. + +2011-07-13 Eric Botcazou + + * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit + range comparison if Pmode is SImode. + +2011-07-12 Laurent GUERBY + Eric Botcazou + + * adadecode.c: Wrap up in extern "C" block. + * adadecode.h: Likewise. + * adaint.c: Likewise. Remove 'const' keyword. + * adaint.h: Likewise. + * argv.c: Likewise. + * atree.h: Likewise. + * cio.c: Likewise. + * cstreams.c: Likewise. + * env.c: Likewise. + * exit.c: Likewise. + * fe.h: Likewise. + * final.c: Likewise. + * init.c: Likewise. + * initialize.c: Likewise. + * link.c: Likewise. + * namet.h: Likewise. + * nlists.h: Likewise. + * raise.c: Likewise. + * raise.h: Likewise. + * repinfo.h: Likewise. + * seh_init.c: Likewise. + * targext.c: Likewise. + * tracebak.c: Likewise. + * uintp.h: Likewise. + * urealp.h: Likewise. + * xeinfo.adb: Wrap up generated C code in extern "C" block. + * xsinfo.adb: Likewise. + * xsnamest.adb: Likewise. + * gcc-interface/gadaint.h: Wrap up in extern "C" block. + * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block. + * gcc-interface/misc.c: Likewise. + * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER. + (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and + ada/targext.o here... + (GNAT_ADA_OBJS): ...and not here. + (GNAT1_ADA_OBJS): Add ada/b_gnat1.o. + (GNATBIND_OBJS): Reorder. + +2011-07-07 Richard Henderson + + * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call + dwarf2out_frame_init. + +2011-07-07 Eric Botcazou + + * gcc-interface/misc.c (gnat_init): Tweak previous change. + +2011-07-07 Rainer Orth + + PR target/39150 + * gcc-interface/Makefile.in: Handle x86_64-solaris2. + +2011-07-06 Richard Guenther + + * gcc-interface/misc.c (gnat_init): Merge calls to + build_common_tree_nodes and build_common_tree_nodes_2. + Re-initialize boolean_false_node. + +2011-07-02 Eric Botcazou + Olivier Hainque + Nicolas Setton + + * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on + the type according to the ARTIFICIAL_P parameter. + (create_type_decl): Likewise. + (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1. + +2011-07-01 Eric Botcazou + + * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command. + (gnatbind): Likewise. + +2011-06-29 Rainer Orth + + * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL). + +2011-06-18 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE + local variable throughout. Remove useless call to Base_Type. + (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout. + Take it also into account for the volatileness of the field. Set the + TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings. + +2011-06-18 Eric Botcazou + + * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP + on a dereference built for a by-ref object if it has an address clause. + +2011-06-18 Eric Botcazou + + * einfo.ads (Address_Taken): Document use for the second argument of + Asm_Input and Asm_Output attributes. + * sem_attr.adb (Analyze_Attribute) : If the second + argument is an entity name, then set Address_Taken on it. + : Likewise. + * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the + Attr_Asm_Input and Attr_Asm_Output attributes explicitly. + (gnat_to_gnu) : If an operand is going to end up in + memory and is a CONST_DECL, retrieve its corresponding VAR_DECL. + +2011-06-16 Joern Rennecke + + PR middle-end/46500 + * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args. + +2011-06-14 Joseph Myers + + * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o. + (ada/utils.o): Update dependencies. + * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add + ../../../libcpp/libcpp.a. + * gcc-interface/utils.c: Include common/common-target.h. + (process_attributes): Use targetm_common.have_named_sections. + +2011-06-07 Richard Guenther + + * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call + set_sizetype. + +2011-06-06 Eric Botcazou + + * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the + TREE_THIS_NOTRAP flag. + +2011-06-06 Eric Botcazou + + * gcc-interface/utils2.c (gnat_stabilize_reference) : + Fix thinko. + +2011-06-06 Eric Botcazou + + * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred + constants whose full view has discriminants specially. + +2011-06-06 Eric Botcazou + + * gcc-interface/utils.c: Include diagnostic.h. + (gnat_write_global_declarations): Output debug information for all + global type declarations before finalizing the compilation unit. + * gcc-interface/Make-lang.in (ada/utils.o): Add dependency. + +2011-05-25 Jakub Jelinek + + * gcc-interface/utils.c (def_fn_type): Remove extra va_end. + +2011-05-25 Kai Tietz + + * adaint.c (__gnat_to_canonical_file_list_next): Use array + initialization instead of const/none-const pointer assignment. + +2011-05-24 Joseph Myers + + * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include + $(EXTRA_GNAT1_OBJS). + (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS). + (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove. + (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a. + * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use + libcommon-target.a instead of prefix.o. + +2011-05-21 Joseph Myers + + PR ada/49097 + * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS). + +2011-05-20 Joseph Myers + + * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o. + * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a + instead of version.o. + +2011-05-18 Kai Tietz + + * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use + boolean_false_node instead of integer_zero_node. + (convert_with_check): Likewise. + * gcc-interface/decl.c (choices_to_gnu): Likewise. + +2011-05-12 Eric Botcazou + + * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the + type of the parameter is an unconstrained array, convert the actual to + the type of the formal in the In Out and Out cases as well. + +2011-05-11 Nathan Froyd + + * gcc-interface/utils.c (def_fn_type): Don't call build_function_type; + call build_function_type_array or build_varargs_function_type_array + instead. + (create_subprog_type): Don't call build_function_type; call + build_function_type_vec instead. + +2011-05-11 Nathan Froyd + + * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL. + (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL. + (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL. + +2011-05-07 Eric Botcazou + + * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces. + + * gcc-interface/gigi.h (global_bindings_p): Adjust prototype. + * gcc-interface/utils.c (global_bindings_p): Return bool and simplify. + +2011-05-05 Nathan Froyd + + * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label. + +2011-05-05 Nathan Froyd + + * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators + instead of accessing TYPE_ARG_TYPES directly. + * gcc-interface/utils.c (handle_nonnull_attribute): Likewise. + +2011-05-05 Eric Botcazou + + PR ada/48844 + * gcc-interface/gigi.h (get_variant_part): Declare. + * gcc-interface/decl.c (get_variant_part): Make global. + * gcc-interface/utils2.c (find_common_type): Do not return T1 if the + types have the same constant size, are record types and T1 has a + variant part while T2 doesn't. + +2011-05-05 Eric Botcazou + + * gcc-interface/utils.c (begin_subprog_body): Do not call + get_pending_sizes. + (end_subprog_body): Likewise. + +2011-05-04 Richard Guenther + + * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to + int_const_binop. + (pos_to_constructor): Likewise. + +2011-05-03 Nathan Froyd + Eric Botcazou + + * gcc-interface/trans.c (gigi): Call build_function_type_list instead + of build_function_type. Adjust calls to... + (build_raise_check): ...this. Do not take a void_tree parameter. + Call build_function_type_list instead of build_function_type. + Fix head comment and swap couple of conditional blocks. + +2011-04-30 Eric Botcazou + + * gnatvsn.ads (Library_Version): Bump to 4.7. + (Current_Year): Bump to 2011. + +2011-04-29 Michael Matz + + * gcc-interface/misc.c (gnat_handle_option): Set + warn_maybe_uninitialized. + +2011-04-23 Gerald Pfeifer + + * gnat_ugn.texi (Complexity Metrics Control): Update link to + the Watson/McCabe paper. + +2011-04-23 Jim Meyering + + * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/ + +2011-04-22 Eric Botcazou + + * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE + onto the new type. + +2011-04-22 Eric Botcazou + + * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG + parameter. + * gcc-interface/utils.c (create_subprog_decl): Likewise. Set + DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Add + ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl. + : Do not set flags on the reused DECL node coming from an alias. + Set DECL_IGNORED_P on the DECL node built for subprograms if they + don't need debug info here... + * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here. + (gigi): Adjust calls to create_subprog_decl. + (build_raise_check): Likewise. + (establish_gnat_vms_condition_handler): Likewise. + (Compilation_Unit_to_gnu): Likewise. + (gnat_to_gnu): Likewise. + +2011-04-21 Eric Botcazou + + * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define. + (NO_REORDER_ADAFLAGS): New variable. + (EXTRA_GNATTOOLS): Always define. + (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h. + Clean up and adjust list of files compiled with special options. + * gcc-interface/Make-lang.in: Likewise. + (ada/decl.o): Cosmetical change. + (ada/misc.o): Remove dependency on $(PLUGIN_H). + +2011-04-20 Jim Meyering + + * initialize.c (__gnat_initialize): Remove useless if-before-free. + +2011-04-17 Eric Botcazou + + * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with + $(CFLAGS) on the link line. + +2011-04-17 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Declare the + padded type built for the return type if it is unconstrained. + +2011-04-14 Nathan Froyd + + * gcc-interface/utils.c (gnat_poplevel): Use block_chainon. + +2011-04-12 Nathan Froyd + + * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON + before calling TREE_CHAIN. + * gcc-interface/misc.c (gnat_init_ts): New function. + (LANG_HOOKS_INIT_TS): Define. + +2011-04-12 Martin Jambor + + * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node + instead of cgraph_node. + +2011-04-08 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Set minimum + alignment on fields of the RETURN type built for the Copy-In Copy-Out + mechanism. + +2011-04-08 Eric Botcazou + + * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers + of aggregate types that contain a placeholder. + +2011-04-08 Nathan Froyd + + * gcc-interface/utils.c (handle_sentinel_attribute): Don't use + TYPE_ARG_TYPES. + (handle_type_generic_attribute): Likewise. + +2011-04-04 Eric Botcazou + + PR ada/47163 + * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change. + +2011-04-04 Kai Tietz + + PR ada/47163 + * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets + to flag value. + +2011-04-02 Eric Botcazou + + * gcc-interface/utils2.c (build_allocator): In the unconstrained array + type case, do not strip a padding type around the array type. + +2011-04-02 Eric Botcazou + + * gcc-interface/utils.c (update_pointer_to): Finalize named pointer + types. + +2011-04-02 Eric Botcazou + + * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete. + * gcc-interface/misc.c (gnat_handle_option): Remove special handling + code for -feliminate-unused-debug-types. + (gnat_post_options): Likewise. + +2011-04-02 Eric Botcazou + + * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial + declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a + distinct copy. + +2011-04-02 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the + DECL_ARTIFICIAL flag on enumeration types. + +2011-04-02 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not make + fat pointer types artificial unconditionally. + : Attach the base array type as a parallel type if it + isn't artificial. + +2011-04-02 Eric Botcazou + + * gcc-interface/gigi.h (get_dummy_type): Declare. + (build_dummy_unc_pointer_types): Likewise. + (finish_fat_pointer_type): Likewise. + * gcc-interface/decl.c (gnat_to_gnu_entity) : If a dummy + fat pointer type has been built, complete it in place. + : Call build_dummy_unc_pointer_types to build dummy fat + and thin pointers. Remove useless variable. + (finish_fat_pointer_type): Make global and move to... + * gcc-interface/utils.c (finish_fat_pointer_type): ...here. + (get_dummy_type): New function. + (build_dummy_unc_pointer_types): Likewise. + (gnat_pushdecl): Propage the name to the anonymous variants only. + (update_pointer_to): Only adjust the pointer types in the unconstrained + array case. + +2011-04-02 Eric Botcazou + + * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Set it + if this is a Taft amendment type and the full declaration is available. + * gcc-interface/trans.c (process_type): Likewise. + If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P. + (process_freeze_entity): Likewise. + * gcc-interface/utils.c (dummy_global): New static variable. + (gnat_write_global_declarations): If there are types declared as used + at the global level, insert them in the global hash table. + +2011-04-02 Eric Botcazou + + * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param. + * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial + declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct + copy. + (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL + flag of the type accordingly. + * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type. + +2011-04-02 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Defer + finalizing types when updating the pointers to the designated type. + : Finalize the deferred types even if we didn't defer processing + of incomplete types in this invocation. + +2011-04-01 Olivier Hainque + Nicolas Setton + Eric Botcazou + + * gcc-interface/misc.c (gnat_descriptive_type): New function. + (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type. + +2011-03-28 Kai Tietz + + * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native + Windows targets. + (EH_MECHANISM): Use GCC exception mechanism for native Windows targets. + * system-mingw.ads (System): Change ZCX_By_Default default to True. + + * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype. + +2011-03-28 Tristan Gingold + + PR ada/44431 + * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c. + Use ada output of gnatbind. + (ada/b_gnatb.adb): Ditto. + (ada/b_gnat1.o, ada/b_gnatb.o): New rules. + (ada.mostlyclean, ada.stage1) + (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile) + (ada.stagefeedback): Adjust. + * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c. + Use ada output of gnatbind. + (b_gnatm.adb): Ditto. + (b_gnatl.o, b_gnatm.o): New rules. + +2011-03-26 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Create TYPE_DECL + for the padded type built to support a specified size or alignment. + +2011-03-26 Eric Botcazou + + * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Defer + unconditionally to the end of the unit when the designated type is + limited_with'ed. + : Rename local variable. Attempt to un-defer types only and do it + for limited_with'ed types as well. + (finalize_from_with_types): Adjust comment. Rename variable and tidy. + * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT + consistently and remove redundant call to finalize_from_with_types. + +2011-03-26 Eric Botcazou + + * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to + subprograms without a previous spec declared in the same unit. + * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined + subprograms at the end of the unit instead of at the beginning. + * gcc-interface/utils.c (create_subprog_decl): Check that the entity + isn't public for the special handling of non-inline functions nested + inside inline external functions. + +2011-03-25 Jeff Law + + * gcc-interface/utils.c (def_fn_type): Add missing va_end. + +2011-03-24 Eric Botcazou + + * einfo.ads (Size_Depends_On_Discriminant): Adjust description. + * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure + to compute Set_Size_Depends_On_Discriminant. + (Layout_Type): Call it on array types in back-end layout mode. + * sem_util.adb (Requires_Transient_Scope): Return true for array + types only if the size depends on the value of discriminants. + * gcc-interface/utils2.c (build_binary_op) : Use the RHS + type if the RHS is a call to a function that returns an unconstrained + type with default discriminant. + +2011-03-24 Eric Botcazou + + * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of + non-conversion to the nominal result type at the end. + +2011-03-23 Eric Botcazou + + * gcc-interface/trans.c (create_temporary): New function taken from... + (create_init_temporary): ...here. Call it. + (call_to_gnu): Create the temporary for the return value early, if any. + Create it for a function with copy-in/copy-out parameters if there is + no target; in other cases of copy-in/copy-out, use another temporary. + Push the new binding level lazily. Add and rename local variables. + +2011-03-23 Eric Botcazou + + * gcc-interface/decl.c (validate_size): Improve comments and tweak + error message. + (set_rm_size): Likewise. + +2011-03-23 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Create TYPE_DECL + for the padded type built in order to support a specified alignment. + Fix incorrect formatting. + +2011-03-21 Eric Botcazou + + PR bootstrap/48216 + * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL. + +2011-03-21 Eric Botcazou + + * gcc-interface/decl.c (components_to_record): Add REORDER parameter, + rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter + to the end of the list. Adjust recursive call. Rename local variable. + If REORDER is true, reorder components of the record type. + (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to + components_to_record and adjust the parameter list. + +2011-03-21 Eric Botcazou + + * gcc-interface/decl.c (elaborate_expression_1): When optimization is + disabled, use the variable for bounds of loop iteration scheme. + +2011-03-21 Kai Tietz + + PR target/12171 + * gcc-interface/utils.c (gnat_internal_attribute_table): Add column. + +2011-03-17 Eric Botcazou + + * gcc-interface/decl.c (elaborate_expression_1): Try harder to find + out whether the expression is read-only. Short-circuit placeholder + case and rename a couple of local variables. + +2011-03-17 Eric Botcazou + + * gcc-interface/gigi.h (smaller_form_type_p): Declare. + * gcc-interface/trans.c (smaller_form_type_p): Make global and move... + * gcc-interface/utils.c (smaller_form_type_p): ...to here. + (convert): Deal with conversions from a smaller form type specially. + +2011-02-14 Eric Botcazou + + * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and + its argument, except for the special -I- switch. + +2011-02-12 Gerald Pfeifer + + * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to + "Ada Issues". + +2011-02-08 Eric Botcazou + + * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs. + +2011-02-03 Eric Botcazou + + * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of + GNAT_FORMAL. + * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to... + * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE + instead of GNAT_FORMAL. Protect the expression against multiple uses. + Do not generate the check directly, instead instantiate the template + check present in the descriptor. + (make_descriptor_field): Move around. + (build_vms_descriptor32): Build a template check in the POINTER field. + (build_vms_descriptor): Remove useless suffixes. + * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call. + +2011-01-26 Eric Botcazou + + PR bootstrap/47467 + * targext.c: Include target files if IN_RTS is defined. + +2011-01-26 Richard Guenther + + PR bootstrap/47467 + * targext.c: Include config.h. + * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H) + dependency. + +2011-01-04 Pascal Obry + Eric Botcazou + + * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit. + +2011-01-04 Eric Botcazou + + * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the + end-of-case on the end label and its associated gotos, if any. + +2011-01-04 Eric Botcazou + + * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the + expressions of the parameter cache within the statement group of + the CICO mechanism. + +2011-01-04 Olivier Hainque + Eric Botcazou + + * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default. + (set_end_locus_from_node): New function. + (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we + make and the function end_locus. + (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus + for the elaboration subprogram. + (set_gnu_expr_location_from_node) : Use it to attempt to + set the end_locus of the expression as well. + +2011-01-04 Eric Botcazou + + PR ada/47131 + * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make + variables that are referenced in exception handlers volatile. + + Copyright (C) 2011 Free Software Foundation, Inc. diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c index fd305e67011..446f50018da 100644 --- a/gcc/ada/adaint.c +++ b/gcc/ada/adaint.c @@ -2700,10 +2700,11 @@ __gnat_os_exit (int status) exit (status); } -/* Locate a regular file, give a Path value. */ +/* Locate file on path, that matches a predicate */ char * -__gnat_locate_regular_file (char *file_name, char *path_val) +__gnat_locate_file_with_predicate + (char *file_name, char *path_val, int (*predicate)(char*)) { char *ptr; char *file_path = (char *) alloca (strlen (file_name) + 1); @@ -2733,7 +2734,7 @@ __gnat_locate_regular_file (char *file_name, char *path_val) if (absolute) { - if (__gnat_is_regular_file (file_path)) + if (predicate (file_path)) return xstrdup (file_path); return 0; @@ -2746,7 +2747,7 @@ __gnat_locate_regular_file (char *file_name, char *path_val) if (*ptr != 0) { - if (__gnat_is_regular_file (file_name)) + if (predicate (file_name)) return xstrdup (file_name); } @@ -2787,7 +2788,7 @@ __gnat_locate_regular_file (char *file_name, char *path_val) strcpy (++ptr, file_name); - if (__gnat_is_regular_file (file_path)) + if (predicate (file_path)) return xstrdup (file_path); if (*path_val == 0) @@ -2802,6 +2803,24 @@ __gnat_locate_regular_file (char *file_name, char *path_val) return 0; } +/* Locate an executable file, give a Path value. */ + +char * +__gnat_locate_executable_file (char *file_name, char *path_val) +{ + return __gnat_locate_file_with_predicate + (file_name, path_val, &__gnat_is_executable_file); +} + +/* Locate a regular file, give a Path value. */ + +char * +__gnat_locate_regular_file (char *file_name, char *path_val) +{ + return __gnat_locate_file_with_predicate + (file_name, path_val, &__gnat_is_regular_file); +} + /* Locate an executable given a Path argument. This routine is only used by gnatbl and should not be used otherwise. Use locate_exec_on_path instead. */ @@ -2818,14 +2837,14 @@ __gnat_locate_exec (char *exec_name, char *path_val) strcpy (full_exec_name, exec_name); strcat (full_exec_name, HOST_EXECUTABLE_SUFFIX); - ptr = __gnat_locate_regular_file (full_exec_name, path_val); + ptr = __gnat_locate_executable_file (full_exec_name, path_val); if (ptr == 0) - return __gnat_locate_regular_file (exec_name, path_val); + return __gnat_locate_executable_file (exec_name, path_val); return ptr; } else - return __gnat_locate_regular_file (exec_name, path_val); + return __gnat_locate_executable_file (exec_name, path_val); } /* Locate an executable using the Systems default PATH. */ diff --git a/gcc/ada/erroutc.ads b/gcc/ada/erroutc.ads index df29bad07a3..a2ac46329d4 100644 --- a/gcc/ada/erroutc.ads +++ b/gcc/ada/erroutc.ads @@ -219,33 +219,33 @@ package Erroutc is -- error message table, since messages are not always inserted in sequence. Last_Error_Msg : Error_Msg_Id; - -- The last entry on the list of error messages. Note that this is not - -- the same as the physically last entry in the error message table, since - -- messages are not always inserted in sequence. + -- The last entry on the list of error messages. Note: this is not the same + -- as the physically last entry in the error message table, since messages + -- are not always inserted in sequence. -------------------------- -- Warning Mode Control -- -------------------------- - -- Pragma Warnings allows warnings to be turned off for a specified - -- region of code, and the following tables are the data structures used - -- to keep track of these regions. + -- Pragma Warnings allows warnings to be turned off for a specified region + -- of code, and the following tables are the data structures used to keep + -- track of these regions. - -- The first table is used for the basic command line control, and for - -- the forms of Warning with a single ON or OFF parameter. + -- The first table is used for the basic command line control, and for the + -- forms of Warning with a single ON or OFF parameter. -- It contains pairs of source locations, the first being the start -- location for a warnings off region, and the second being the end - -- location. When a pragma Warnings (Off) is encountered, a new entry - -- is established extending from the location of the pragma to the - -- end of the current source file. A subsequent pragma Warnings (On) - -- adjusts the end point of this entry appropriately. + -- location. When a pragma Warnings (Off) is encountered, a new entry is + -- established extending from the location of the pragma to the end of the + -- current source file. A subsequent pragma Warnings (On) adjusts the end + -- point of this entry appropriately. - -- If all warnings are suppressed by command switch, then there is a - -- dummy entry (put there by Errout.Initialize) at the start of the - -- table which covers all possible Source_Ptr values. Note that the - -- source pointer values in this table always reference the original - -- template, not an instantiation copy, in the generic case. + -- If all warnings are suppressed by command switch, then there is a dummy + -- entry (put there by Errout.Initialize) at the start of the table which + -- covers all possible Source_Ptr values. Note that the source pointer + -- values in this table always reference the original template, not an + -- instantiation copy, in the generic case. type Warnings_Entry is record Start : Source_Ptr; @@ -280,9 +280,9 @@ package Erroutc is -- Set to True if entry has been used to suppress a warning Config : Boolean; - -- True if pragma is configuration pragma (in which case no matching - -- Off pragma is required, and it is not required that a specific - -- warning be suppressed). + -- True if pragma is configuration pragma (in which case no matching Off + -- pragma is required, and it is not required that a specific warning be + -- suppressed). end record; package Specific_Warnings is new Table.Table ( @@ -304,10 +304,10 @@ package Erroutc is -- end Mumble; -- The trouble is that the first pragma is technically a configuration - -- pragma, and yet it is clearly being used in the context of thinking - -- of it as a specific case. To deal with this, what we do is that the - -- On entry can match a configuration pragma from the same file, and if - -- we find such an On entry, we cancel the indication of it being the + -- pragma, and yet it is clearly being used in the context of thinking of + -- it as a specific case. To deal with this, what we do is that the On + -- entry can match a configuration pragma from the same file, and if we + -- find such an On entry, we cancel the indication of it being the -- configuration case. This seems to handle all cases we run into ok. ----------------- @@ -336,16 +336,16 @@ package Erroutc is -- output giving node number (of node N) if the debug X switch is set. procedure Check_Duplicate_Message (M1, M2 : Error_Msg_Id); - -- This function is passed the Id values of two error messages. If - -- either M1 or M2 is a continuation message, or is already deleted, - -- the call is ignored. Otherwise a check is made to see if M1 and M2 - -- are duplicated or redundant. If so, the message to be deleted and - -- all its continuations are marked with the Deleted flag set to True. + -- This function is passed the Id values of two error messages. If either + -- M1 or M2 is a continuation message, or is already deleted, the call is + -- ignored. Otherwise a check is made to see if M1 and M2 are duplicated or + -- redundant. If so, the message to be deleted and all its continuations + -- are marked with the Deleted flag set to True. procedure Output_Error_Msgs (E : in out Error_Msg_Id); - -- Output source line, error flag, and text of stored error message and - -- all subsequent messages for the same line and unit. On return E is - -- set to be one higher than the last message output. + -- Output source line, error flag, and text of stored error message and all + -- subsequent messages for the same line and unit. On return E is set to be + -- one higher than the last message output. procedure Output_Line_Number (L : Logical_Line_Number); -- Output a line number as six digits (with leading zeroes suppressed), @@ -366,9 +366,9 @@ package Erroutc is -- including the end points) will be deleted from the error listing. function Same_Error (M1, M2 : Error_Msg_Id) return Boolean; - -- See if two messages have the same text. Returns true if the text - -- of the two messages is identical, or if one of them is the same - -- as the other with an appended "instance at xxx" tag. + -- See if two messages have the same text. Returns true if the text of the + -- two messages is identical, or if one of them is the same as the other + -- with an appended "instance at xxx" tag. procedure Set_Msg_Blank; -- Sets a single blank in the message if the preceding character is a diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb index c54f3b08ad2..540d3952787 100644 --- a/gcc/ada/exp_ch3.adb +++ b/gcc/ada/exp_ch3.adb @@ -8459,15 +8459,15 @@ package body Exp_Ch3 is -- they may be ancestors of synchronized interface types). elsif (not Is_Interface (Tag_Typ) - and then Is_Interface (Etype (Tag_Typ)) - and then Is_Limited_Record (Etype (Tag_Typ))) + and then Is_Interface (Etype (Tag_Typ)) + and then Is_Limited_Record (Etype (Tag_Typ))) or else (Is_Concurrent_Record_Type (Tag_Typ) - and then Has_Interfaces (Tag_Typ)) + and then Has_Interfaces (Tag_Typ)) or else (not Tagged_Type_Expansion - and then not Is_Interface (Tag_Typ) - and then Tag_Typ = Root_Type (Tag_Typ)) + and then not Is_Interface (Tag_Typ) + and then Tag_Typ = Root_Type (Tag_Typ)) then Append_To (Res, Make_Subprogram_Declaration (Loc, @@ -8944,10 +8944,10 @@ package body Exp_Ch3 is and then not Is_Interface (Tag_Typ) and then ((Is_Interface (Etype (Tag_Typ)) - and then Is_Limited_Record (Etype (Tag_Typ))) + and then Is_Limited_Record (Etype (Tag_Typ))) or else (Is_Concurrent_Record_Type (Tag_Typ) - and then Has_Interfaces (Tag_Typ)) + and then Has_Interfaces (Tag_Typ)) or else (not Tagged_Type_Expansion and then Tag_Typ = Root_Type (Tag_Typ))) diff --git a/gcc/ada/exp_ch9.adb b/gcc/ada/exp_ch9.adb index 986ed35092b..b8a89bcb55f 100644 --- a/gcc/ada/exp_ch9.adb +++ b/gcc/ada/exp_ch9.adb @@ -8698,9 +8698,7 @@ package body Exp_Ch9 is if Tagged_Type_Expansion then Prepend_To (Params, Make_Function_Call (Loc, - Name => - New_Reference_To (RTE (RE_Get_Offset_Index), Loc), - + Name => New_Reference_To (RTE (RE_Get_Offset_Index), Loc), Parameter_Associations => New_List ( Unchecked_Convert_To (RTE (RE_Tag), Concval), Make_Integer_Literal (Loc, DT_Position (Entity (Ename)))))); @@ -8710,20 +8708,20 @@ package body Exp_Ch9 is else Prepend_To (Params, Make_Function_Call (Loc, - Name => - New_Reference_To (RTE (RE_Get_Offset_Index), Loc), + Name => New_Reference_To (RTE (RE_Get_Offset_Index), Loc), Parameter_Associations => New_List ( + -- Obj_Typ Make_Attribute_Reference (Loc, - Prefix => Concval, + Prefix => Concval, Attribute_Name => Name_Tag), -- Tag_Typ Make_Attribute_Reference (Loc, - Prefix => New_Reference_To (Etype (Concval), Loc), + Prefix => New_Reference_To (Etype (Concval), Loc), Attribute_Name => Name_Tag), -- Position diff --git a/gcc/ada/exp_disp.adb b/gcc/ada/exp_disp.adb index 9b994667639..85abeafdb13 100644 --- a/gcc/ada/exp_disp.adb +++ b/gcc/ada/exp_disp.adb @@ -6627,7 +6627,7 @@ package body Exp_Disp is -- Iface_Tag Make_Attribute_Reference (Loc, - Prefix => New_Reference_To (Iface, Loc), + Prefix => New_Reference_To (Iface, Loc), Attribute_Name => Name_Tag), -- OSD @@ -6648,7 +6648,7 @@ package body Exp_Disp is Make_Subtype_Indication (Loc, Subtype_Mark => New_Reference_To (RTE (RE_Interface_Data), Loc), - Constraint => Make_Index_Or_Discriminant_Constraint + Constraint => Make_Index_Or_Discriminant_Constraint (Loc, Constraints => New_List ( Make_Integer_Literal (Loc, Num_Ifaces)))), diff --git a/gcc/ada/exp_sel.adb b/gcc/ada/exp_sel.adb index 0c17bd16374..5596f8a10f9 100644 --- a/gcc/ada/exp_sel.adb +++ b/gcc/ada/exp_sel.adb @@ -156,7 +156,7 @@ package body Exp_Sel is else Tag_Node := Make_Attribute_Reference (Loc, - Prefix => Obj, + Prefix => Obj, Attribute_Name => Name_Tag); end if; @@ -205,7 +205,7 @@ package body Exp_Sel is if Tagged_Type_Expansion then return Make_Assignment_Statement (Loc, - Name => New_Reference_To (S, Loc), + Name => New_Reference_To (S, Loc), Expression => Make_Function_Call (Loc, Name => New_Reference_To (RTE (RE_Get_Offset_Index), Loc), @@ -218,10 +218,11 @@ package body Exp_Sel is else return Make_Assignment_Statement (Loc, - Name => New_Reference_To (S, Loc), + Name => New_Reference_To (S, Loc), Expression => Make_Function_Call (Loc, Name => New_Reference_To (RTE (RE_Get_Offset_Index), Loc), + Parameter_Associations => New_List ( -- Obj_Typ diff --git a/gcc/ada/restrict.ads b/gcc/ada/restrict.ads index 001d13166bb..5472d056ee1 100644 --- a/gcc/ada/restrict.ads +++ b/gcc/ada/restrict.ads @@ -185,6 +185,10 @@ package Restrict is -- The table contains pairs of source locations, the first being the start -- location for hidden region, and the second being the end location. + -- Note that the start location is included in the hidden region, while + -- the end location is excluded from it. (It typically corresponds to the + -- next token during scanning.) + type SPARK_Hide_Entry is record Start : Source_Ptr; Stop : Source_Ptr; @@ -310,8 +314,8 @@ package Restrict is function Get_Restriction_Id (N : Name_Id) return Restriction_Id; -- Given an identifier name, determines if it is a valid restriction - -- identifier, and if so returns the corresponding Restriction_Id - -- value, otherwise returns Not_A_Restriction_Id. + -- identifier, and if so returns the corresponding Restriction_Id value, + -- otherwise returns Not_A_Restriction_Id. function Is_In_Hidden_Part_In_SPARK (Loc : Source_Ptr) return Boolean; -- Determine if given location is covered by a hidden region range in the @@ -358,9 +362,9 @@ package Restrict is function Restricted_Profile return Boolean; -- Tests if set of restrictions corresponding to Profile (Restricted) is - -- currently in effect (set by pragma Profile, or by an appropriate set - -- of individual Restrictions pragmas). Returns True only if all the - -- required restrictions are set. + -- currently in effect (set by pragma Profile, or by an appropriate set of + -- individual Restrictions pragmas). Returns True only if all the required + -- restrictions are set. procedure Set_Hidden_Part_In_SPARK (Loc1, Loc2 : Source_Ptr); -- Insert a new hidden region range in the SPARK hides table @@ -394,8 +398,8 @@ package Restrict is (Unit : Node_Id; Warn : Boolean; Profile : Profile_Name := No_Profile); - -- Sets given No_Dependence restriction in table if not there already. - -- Warn is True if from Restriction_Warnings, or for Restrictions if flag + -- Sets given No_Dependence restriction in table if not there already. Warn + -- is True if from Restriction_Warnings, or for Restrictions if the flag -- Treat_Restrictions_As_Warnings is set. False if from Restrictions and -- this flag is not set. Profile is set to a non-default value if the -- No_Dependence restriction comes from a Profile pragma. diff --git a/gcc/ada/sinfo.adb b/gcc/ada/sinfo.adb index 571541af26e..fb9ab568f8b 100644 --- a/gcc/ada/sinfo.adb +++ b/gcc/ada/sinfo.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2010, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2011, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -1440,11 +1440,17 @@ package body Sinfo is function Has_Dynamic_Length_Check (N : Node_Id) return Boolean is begin + pragma Assert (False + or else NT (N).Nkind in N_Subexpr); return Flag10 (N); end Has_Dynamic_Length_Check; + function Has_Dynamic_Range_Check (N : Node_Id) return Boolean is begin + pragma Assert (False + or else NT (N).Nkind = N_Subtype_Declaration + or else NT (N).Nkind in N_Subexpr); return Flag12 (N); end Has_Dynamic_Range_Check; @@ -4484,12 +4490,17 @@ package body Sinfo is procedure Set_Has_Dynamic_Length_Check (N : Node_Id; Val : Boolean := True) is begin + pragma Assert (False + or else NT (N).Nkind in N_Subexpr); Set_Flag10 (N, Val); end Set_Has_Dynamic_Length_Check; procedure Set_Has_Dynamic_Range_Check (N : Node_Id; Val : Boolean := True) is begin + pragma Assert (False + or else NT (N).Nkind = N_Subtype_Declaration + or else NT (N).Nkind in N_Subexpr); Set_Flag12 (N, Val); end Set_Has_Dynamic_Range_Check; diff --git a/gcc/ada/sinfo.ads b/gcc/ada/sinfo.ads index e5ca5aae247..88bcafbd125 100644 --- a/gcc/ada/sinfo.ads +++ b/gcc/ada/sinfo.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2010, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2011, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -424,6 +424,8 @@ package Sinfo is -- Raises_Constraint_Error (Flag7-Sem) evaluation raises CE -- Must_Not_Freeze (Flag8-Sem) set if must not freeze -- Do_Range_Check (Flag9-Sem) set if a range check needed + -- Has_Dynamic_Length_Check (Flag10-Sem) set if length check inserted + -- Has_Dynamic_Range_Check (Flag12-Sem) set if range check inserted -- Assignment_OK (Flag15-Sem) set if modification is OK -- Is_Controlling_Actual (Flag16-Sem) set for controlling argument @@ -485,18 +487,6 @@ package Sinfo is -- refers to a node or is posted on its source location, and has the -- effect of inhibiting further messages involving this same node. - -- Has_Dynamic_Length_Check (Flag10-Sem) - -- This flag is present on all nodes. It is set to indicate that one of - -- the routines in unit Checks has generated a length check action which - -- has been inserted at the flagged node. This is used to avoid the - -- generation of duplicate checks. - - -- Has_Dynamic_Range_Check (Flag12-Sem) - -- This flag is present on all nodes. It is set to indicate that one of - -- the routines in unit Checks has generated a range check action which - -- has been inserted at the flagged node. This is used to avoid the - -- generation of duplicate checks. - ------------------------------------ -- Description of Semantic Fields -- ------------------------------------ @@ -1125,6 +1115,19 @@ package Sinfo is -- handler is deleted during optimization. For further details on why -- this is required, see Exp_Ch11.Remove_Handler_Entries. + -- Has_Dynamic_Length_Check (Flag10-Sem) + -- This flag is present on all expression nodes. It is set to indicate + -- that one of the routines in unit Checks has generated a length check + -- action which has been inserted at the flagged node. This is used to + -- avoid the generation of duplicate checks. + + -- Has_Dynamic_Range_Check (Flag12-Sem) + -- This flag is present in N_Subtype_Declaration nodes and on all + -- expression nodes. It is set to indicate that one of the routines in + -- unit Checks has generated a range check action which has been inserted + -- at the flagged node. This is used to avoid the generation of duplicate + -- checks. + -- Has_Local_Raise (Flag8-Sem) -- Present in exception handler nodes. Set if the handler can be entered -- via a local raise that gets transformed to a goto statement. This will @@ -2217,6 +2220,7 @@ package Sinfo is -- Subtype_Indication (Node5) -- Generic_Parent_Type (Node4-Sem) (set for an actual derived type). -- Exception_Junk (Flag8-Sem) + -- Has_Dynamic_Range_Check (Flag12-Sem) ------------------------------- -- 3.2.2 Subtype Indication --