diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 159153a4dad..82383f2f87b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,16 @@ 2015-01-05 Jakub Jelinek + * gcc.c (process_command): Update copyright notice dates. + * gcov-dump.c: Ditto. + * gcov.c: Ditto. + * doc/cpp.texi: Bump @copying's copyright year. + * doc/cppinternals.texi: Ditto. + * doc/gcc.texi: Ditto. + * doc/gccint.texi: Ditto. + * doc/gcov.texi: Ditto. + * doc/install.texi: Ditto. + * doc/invoke.texi: Ditto. + * auto-profile.c, auto-profile.h: Fix up Copyright line. 2015-01-04 Sandra Loosemore diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 3ff202bee6b..02968d71560 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,7 @@ +2015-01-05 Jakub Jelinek + + * gnat_ugn.texi: Bump @copying's copyright year. + 2015-01-05 Eric Botcazou PR ada/64492 @@ -8,15971 +12,8 @@ * gcc-interface/misc.c (internal_error_function): Use xasprintf instead of unchecked asprintf. -2014-12-22 Eric Botcazou - - * gcc-interface/trans.c (Attribute_to_gnu) : If the - type is a floating-point type, implement the semantics of the C99 - f{min,max} routines with regard to NaNs. - (gnat_to_gnu): Call builtin_decl_implicit. - * gcc-interface/utils2.c (compare_arrays): Adjust comments. - -2014-12-22 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_field): Post the error message - for parent overlapping on the position instead of on the first bit. - For a field that needs strict alignment, issue the error for the - position first and, for the size, issue an error if it is too large - only for the atomic and aliased cases. Issue a specific error if - the size is not a multiple of a byte in the volatile and the strict - alignment cases. - -2014-12-22 Eric Botcazou - - * gcc-interface/decl.c (check_ok_for_atomic): Rename into... - (check_ok_for_atomic_type): ...this. When checking the mode, also - check that the type is sufficient aligned. Remove useless code and - tidy up implementation. - (gnat_to_gnu_entity): Adjust to above renaming. - (gnat_to_gnu_component_type): Likewise. - (gnat_to_gnu_field): Likewise. - -2014-12-17 Pierre-Marie de Rodat - - * gcc-interface/misc.c (gnat_get_array_descr_info): New. Use it for - the get_array_descr_info lang-hook. Use it to tune the DWARF output - for array types. - -2014-11-24 Eric Botcazou - - * gcc-interface/Makefile.in (Cygwin/Mingw): Fix previous change. - -2014-11-24 Eric Botcazou - - * gcc-interface/trans.c (build_return_expr): Use INIT_EXPR instead of - MODIFY_EXPR to assign to the return object. - (finalize_nrv_r): Adjust to above change. - (finalize_nrv_unc_r): Likewise. - -2014-11-24 Eric Botcazou - - * gcc-interface/trans.c (push_range_check_info): Replace early test - with assertion. - (Raise_Error_to_gnu): Do not call push_range_check_info if the loop - stack is empty. - * gcc-interface/utils.c (convert_to_fat_pointer): Fix formatting. - * gcc-interface/utils2.c (gnat_invariant_expr): Deal with padded types - and revert latest change. - -2014-11-22 Eric Botcazou - - * gcc-interface/trans.c (Call_to_gnu): Strip unchecked conversions on - actuals of In parameters if the destination type is an unconstrained - composite type. - -2014-11-22 Eric Botcazou - - * gcc-interface/trans.c (gnat_gimplify_expr): Add 'type' variable. - : Deal with unconstrained array types and use 'type'. - : Use 'type'. - : Likewise. - -2014-11-20 Trevor Saunders - - * gcc-interface/decl.c (annotate_value_cache): Replace htab with - hash_table. - (annotate_value): Adjust. - (init_gnat_decl): Likewise. - (destroy_gnat_decl): Likewise. - * gcc-interface/utils.c (pad_type_hash_table): Replace htab with - hash_table. - (init_gnat_utils): Adjust. - (destroy_gnat_utils): Likewise. - (lookup_and_insert_pad_type): Likewise. - -2014-11-20 Arnaud Charlet - - PR ada/63931 - * gnatvsn.ads (Library_Version): Switch to "5". - -2014-11-20 Thomas Quinot - - * freeze.adb (Freeze_Entity): Do not reset Is_True_Constant - for aliased constant objects. - -2014-11-20 Robert Dewar - - * exp_util.adb (Following_Address_Clause): Use new Name_Table - boolean flag set by parser to avoid the search if there is no - address clause anywhere for the name. - * namet.adb (Name_Enter): Initialize Boolean_Info flag - (Name_Find): ditto (Reinitialize): ditto (Get_Name_Table_Boolean): - New function (Set_Name_Table_Boolean): New procedure - * namet.ads: Add and document new Boolean field in name table - (Get_Name_Table_Boolean): New function. - (Set_Name_Table_Boolean): New procedure. - * par-ch13.adb (P_Representation_Clause): Set Name_Table boolean - flag for an identifier name if we detect an address clause or - use-at clause for the identifier. - * sem_ch3.adb (Analyze_Object_Declaration): Remove comment about - Following_Address_Clause since this function is now optimized - and is not a performance concern. - * sem_prag.adb (Analyze_Pragma, case Elaborate): In SPARK - mode, pragma Elaborate is now allowed, but does not suppress - elaboration checking. - -2014-11-20 Jerome Lambourg - - * gcc-interface/Makefile.in: Add some support for VxWorks7. - -2014-11-20 Thomas Quinot - - * sem_ch13.adb, freeze.adb: Minor reformatting. - * gnat_rm.texi: Minor editing. - -2014-11-20 Robert Dewar - - * sem_prag.adb (Analyze_Pragma): Minor reformatting. - (Process_Suppress_Unsuppress): Ignore suppress Elaboration_Check - in SPARK. - -2014-11-20 Bob Duff - - * gnat_rm.texi: Correction to documentation of - 'Unrestricted_Access in case of access to unconstrained array. - * a-cofove.adb (Capacity): Fix bug -- was always - returning Capacity_Range'Last. - (Is_Sorted): Fix bug -- was always returning True, because - Container.Last = Last. That test isn't even needed, because the - loop will go around zero times in that case, so deleted that - test rather than fixing it. - (Reverse_Elements): Make sure to use the correct array bounds. - -2014-11-20 Ed Schonberg - - * sem_ch12.adb (Analyze_Associations): In GNATProve mode, build - wrappers for functions and operators that are actuals only if - expander is enabled. Wrappers play no role within a generic unit. - -2014-11-20 Hristian Kirtchev - - * sem_util.adb (Policy_In_Effect): Use the - configuration level assertion flag. - -2014-11-20 Arnaud Charlet - - * s-parame-ae653.ads: Update comments. - -2014-11-20 Robert Dewar - - * types.ads, einfo.ads: Minor reformatting. - * sem_elab.adb (Check_A_Call): Add guard for reference to Alias - for variable case. - -2014-11-20 Bob Duff - - * a-cofove.adb (Elems,Elemsc): Use access-to-constrained arrays - instead of access-to-unconstrained, because the latter doesn't - work with 'Unrestricted_Access when the result is returned from - a function. - * a-cofove.ads (Vector): Move the discriminant-dependent array - after the other components for efficiency. Otherwise the compiler - will generate a lot of code to calculate the offset of the other - components every time they're accessed. - -2014-11-20 Olivier Hainque - - * opt.ads: Fix comment on Generate_SCO_Instance_Table wrt when - it is set to true. - -2014-11-20 Ed Schonberg - - * exp_ch3.adb (Expand_N_Object_Declaration): Handle properly - a type invariant check on an object with default initialization - and an address clause. - -2014-11-20 Robert Dewar - - * sem_elab.adb (Check_A_Call): Handle variable ref case in - SPARK (Check_Elab_Call): ditto (Find_Elab_Reference): ditto - (Get_Referenced_Ent): ditto. - * sem_elab.ads: Comment fixes to account for the fact that we - now deal with variable references in SPARK mode. - * sem_res.adb (Resolve_Entity_Name): In SPARK_Mode Call - Check_Elab_Call for variable. - -2014-11-20 Yannick Moy - - * a-cofove.ads (Copy): Fix precondition, which should allow - Capacity = 0. - (First_To_Previous, Current_To_Last): Add necessary preconditions. - -2014-11-20 Hristian Kirtchev - - * exp_ch3.adb (Build_Initialization_Call): Reimplement the - circuitry which extraacts the [underlying] full view of a - private type to handle a case where the private type acts as a - generic actual. - * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Inherit the - loop label form the original loop regardless of whether it came - from source. - * sem_attr.adb (Analyze_Attribute): When taking 'Access of an - expression function with a generated body that has not been - analyzed yet, analyze the body to freeze the expression. - * sem_util.adb (Set_Public_Status_Of): New routine. - (Transfer_Entities): Handle the case where a private type with - an internally generated full view is being transfered and update - its full view. - -2014-11-20 Vincent Celier - - * prj-nmsc.adb (Check_Object): If a unit is in a multi-source - file, its object file is never the same as any other unit. - -2014-11-20 Bob Duff - - * s-taskin.adb (Initialize_ATCB): Take into - account the fact that the domain of the activator can be null - if we're initializing a foreign task. - -2014-11-20 Robert Dewar - - * sem_ch12.adb: Minor reformatting. - -2014-11-20 Jerome Lambourg - - * s-osinte-vxworks.ads: Add comments. Minor reformatting. - -2014-11-20 Yannick Moy - - * sem_prag.adb, sem_elab.adb: Minor rewording of error message in - SPARK mode, for consistency. - -2014-11-20 Vasiliy Fofanov - - * gnat_ugn.texi: New section on gnattest stubbing. Minor - reformatting. - -2014-11-20 Jerome Lambourg - - * s-taprop-vxworks.adb (Create_Task): Fix thread comparison. - Minor reformatting. - -2014-11-20 Robert Dewar - - * s-tassta.adb, exp_aggr.adb, s-taskin.adb, exp_strm.adb: Minor - reformatting. - * comperr.adb (Compiler_Abort): New wording for bug box. - * par-ch13.adb: Minor reformatting. - * par-ch3.adb (P_Identifier_Declarations): Handle aspect - specifications given before initialization expression in object - declaration cleanly. - * gnat1drv.adb (Adjust_Global_Switches): Make sure static - elaboration mode is set if we are operating in SPARK mode. - * sem_ch12.adb (Analyze_Package_Instantiation): Make - sure static elab mode is set if we are in SPARK mode. - (Analyze_Subprogram_Instantiation): ditto. - (Set_Instance_Env): ditto. - * sem_elab.adb (Check_A_Call): In SPARK mode, we require - Elaborate_All in the case of a call during elaboration to a - subprogram in another unit. - -2014-11-20 Ed Schonberg - - * inline.adb (Can_Split_Unconstrained_Function, - Build_Procedure): Copy parameter type rather than creating - reference to the entity, to capture class-wide reference, whose - name is not retrieved by visibility. - -2014-11-20 Arnaud Charlet - - * s-taspri-solaris.ads: Replace 64 by long_long_integer'size. - -2014-11-20 Olivier Hainque - - * init.c (__gnat_map_signal for VxWorks): Use a common mapping - scheme for VxWorks version >= 6, instead of falling back to the - vx5 scheme for versions > 6. - -2014-11-20 Ed Schonberg - - * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Use - base type when constructing subtype indication for constrained - target object. - -2014-11-20 Jose Ruiz - - * projects.texi: Minor spelling fix. - -2014-11-20 Bob Duff - - * gnat_ugn.texi: Add doc for --split-line-before-op switch in gnatpp. - -2014-11-20 Vincent Celier - - * prj-attr.adb (Register_New_Package): Allow the registration - of an already unknown package and make it known. - -2014-11-20 Trevor Saunders - - * gcc-interface/decl.c, gcc-interface/utils.c: replace htab with - hash_table. - -2014-11-20 Robert Dewar - - * sem_prag.adb (Analyze_Pragma, case Elaborate): Forbid pragma - Elaborate in SPARK mode. - -2014-11-20 Bob Duff - - * s-taskin.adb, s-tassta.adb (Initialize_ATCB): If Domain - is null, then initialize T.Common.Domain to that of the - activating task (not the parent task!), as required by RM-D.16.1. - T.Common.Domain should never be null; so Assert. Remove similar - code from Create_Task in s-tassta.adb. - * s-mudido-affinity.adb: Remove checks for Domain = null, - because it can't be null. - * s-taskin.ads, s-taspri-dummy.ads, s-taspri-mingw.ads, - s-taspri-posix.ads, s-taspri-posix-noaltstack.ads, - s-taspri-solaris.ads, s-taspri-vxworks.ads: Mark limited types as - explicitly limited for clarity. - -2014-11-20 Ed Schonberg - - * exp_aggr.adb (Init_Hidden_Discriminants): Code clean up. - -2014-11-20 Robert Dewar - - * errout.adb (Error_Msg): Don't suppress continuation msgs for - run-time files. - * sem_prag.adb (Analyze_Pragma, case Elaborate): Forbid pragma - Elaborate in SPARK mode. - -2014-11-20 Yannick Moy - - * gnat_rm.texi: Update GNAT RM with rule about expressions in - Update attribute. - -2014-11-20 Thomas Quinot - - * g-socket.adb (To_Host_Entry): Guard against case of a - non-AF_INET entry. - -2014-11-20 Vadim Godunko - - * a-strunb-shared.adb (To_Unbounded_String): Use shared empty - object to construct return value when source string is empty or - requested length is zero. - * a-stwiun-shared.adb (To_Unbounded_Wide_String): Likewise. - * a-stzunb-shared.adb (To_Unbounded_Wide_Wide_String): Likewise. - -2014-11-20 Yannick Moy - - * a-cfhase.adb, a-cfinve.adb, a-cforma.adb, a-cfhama.adb, a-cforse.adb, - a-cofove.adb: Skip CodePeer analysis on body of all formal containers. - -2014-11-20 Arnaud Charlet - - * adaint.c: Fix typo. - * exp_util.adb (Make_Subtype_From_Expr): Complete previous change, - generate constant values. - * sem_eval.adb (Decompose_Expr): Fix latent bug leading to a wrong - evaluation to '0' of some unknown values. - -2014-11-20 Robert Dewar - - * repinfo.adb (List_Record_Info): Do not list discriminant in - unchecked union. - * sem_ch13.adb (Has_Good_Profile): Minor reformatting - (Analyze_Stream_TSS_Definition): Minor reformatting - (Analyze_Record_Representation_Clause): Do not issue warning - for missing rep clause for discriminant in unchecked union. - -2014-11-20 Vadim Godunko - - * a-strunb-shared.adb, a-stwiun-shared.adb, a-stzunb-shared.adb - ("&") Use already computed value of data length to call allocation - subprogram. - -2014-11-20 Ed Schonberg - - * exp_ch6.adb (Expand_Call, Inlined_Subprogram): Do not suppress - debugging information for a call to a predefined unit, if the - call comes from source and the unit is in the Ada hierarchy. - -2014-11-20 Bob Duff - - * s-mudido.ads: Update signature of Create and Get_Last_CPU. Add - CPU_Set, another Create, and Get_CPU_Set. - * s-mudido.adb: Corresponding changes to the spec. New - operations just raise an exception. Also minor cleanup: use - raise_expressions. - * s-mudido-affinity.adb: Implementations of new operations from - * s-mudido.ads, for the platforms that actually support processor - affinity. The new Create (which takes a set) now does all the - work; the old Create (which takes a range) now just calls the - new one. Change error messages to reflect the fact that it's an - arbitrary set, not just a range. - -2014-11-20 Robert Dewar - - * exp_attr.adb: Minor reformatting. - -2014-11-20 Hristian Kirtchev - - * exp_util.adb (Make_Subtype_From_Expr): Capture the bounds of - all index constracts when the expression is of an array type. - -2014-11-20 Bob Duff - - * s-taskin.ads: Minor comment improvements. - -2014-11-20 Bob Duff - - * exp_ch9.adb: Minor comment fixes. - * s-taskin.adb (Initialize): Small simplification: pass System_Domain - to Initialize_ATCB instead of passing null and then setting the Domain - to System_Domain. This requires moving the creation of System_Domain - earlier. - * s-taprop-linux.adb (Set_Task_Affinity): Only call CPU_SET for - processors that have a True in the Domain. This is necessary if the - Domain is not all-True values. - -2014-11-20 Ed Schonberg - - * sem_ch13.adb (Has_Good_Profile): a) An stream attribute - for the class-wide type of an interface type is not a primitive - operation and is not subject to the restrictions of 13.13. (38/3). - b) A stream operation for an interface type must be a null - procedure, and it cannot be a function. - -2014-11-20 Bob Duff - - * exp_attr.adb (Attribute_Max_Size_In_Storage_Elements): - Eliminate 'Class references from the tree, because gigi crashes on - 'Class. Also, don't check Nkind (Attr) -- it is known to be - N_Attribute_Reference. Assert that instead. - -2014-11-20 Bob Duff - - * debug.adb: Minor comment fix. - -2014-11-20 Arnaud Charlet - - * a-ciorma.adb: Minor update: move pragma Annotate up. - * a-cfdlli.adb: Skip codepeer analysis on this body. - -2014-11-20 Robert Dewar - - * sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All): - Allow use of this pragma with generic unit (package or subprogram). - * gnat_rm.texi: Clarify that pragma No_Elaboration_Code_All can - be applied to generics. - -2014-11-20 Ed Schonberg - - * sem_aggr.adb (Valid_Limited_Ancestor): Ancestor part of - extension aggregate can itself be an extension aggregate, as - well as a call that is rewritten as a reference. - -2014-11-20 Eric Botcazou - - * inline.adb (Add_Inlined_Subprogram): Insert all programs - generated as a body or whose declaration was provided along with - the body. - -2014-11-20 Javier Miranda - - * sem.adb (Semantics): Disable expansion if we are compiling a - separate unit under configurable runtime. By default separate - units are compiled with expansion disabled but under configurable - runtime we enable the expansion to get error messages about - missing entities. - -2014-11-20 Robert Dewar - - * sem_ch13.adb: Minor reformatting. - * exp_util.adb (Following_Address_Clause): Handle case of - package private part. - -2014-11-20 Arnaud Charlet - - * a-cdlili.adb, a-cihama.adb, a-coinve.adb, a-cusyqu.adb, a-ciorse.adb, - a-coorma.adb, a-cborma.adb, a-cidlli.adb, a-cimutr.adb, a-ciormu.adb, - a-cbprqu.adb, a-cihase.adb, a-cohama.adb, a-coorse.adb, a-coboho.adb, - a-cuprqu.adb, a-cbhama.adb, a-rbtgbo.adb, a-cborse.adb, a-comutr.adb, - a-ciorma.adb, a-cobove.adb, a-coormu.adb, a-convec.adb, a-cohase.adb, - a-coinho.adb, a-coinho-shared.adb, a-cbdlli.adb, a-cbsyqu.adb, - a-cbmutr.adb, a-cbhase.adb: Add pragma Annotate to prevent codepeer - from analyzing these bodies. - -2014-11-20 Ed Schonberg - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not apply - inlining expansion if function build in place, i.e. has a limited - return type. - -2014-11-20 Hristian Kirtchev - - * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Add - variables Body_Id, Body_Inputs, Body_Outputs, Spec_Inputs, - Spec_Outputs. Synthesize the inputs and outputs of the subprogram - when pragma [Refined_]Global is missing and perform legality - checks on output states with visible refinement. - (Appears_In): Update the comment on usage. - (Check_Output_States): New routine. - (Collect_Dependency_Clause): New routine. - (Collect_Global_Items): Relocated to - Analyze_Refined_Global_In_Decl_Part. - (Collect_Subprogram_Inputs_Outputs): Add new formal parameters - Synthesize and Depends_Seen. The routine can now synthesize inputs - and outputs from pragma [Refined_]Depends. - (Normalize_Clause): Update the comment on usage. The routine no longer - performs normalization of outputs. - (Normalize_Clauses): Normalize both inputs and outputs. - (Normalize_Output): Relocated to Normalize_Clauses. - * sem_prag.ads (Collect_Subprogram_Inputs_Outputs): Add new - formal parameters Synthesize and Depends_Seen and update the - comment on usage. - -2014-11-20 Vincent Celier - - PR ada/47500 - * back_end.adb (Scan_Back_End_Switches): Skip switch -G and - its argument. - -2014-11-20 Ed Schonberg - - * sem_ch13.adb (Reset_Loop_Variable): New subsidiary procedure - in Build_Predicate_Functions, to handle properly quantified - expressions in dynamic predicates. - -2014-11-20 Robert Dewar - - * gnatcmd.adb, sem_ch6.adb, exp_dist.adb: Minor reformatting. - * sem_util.adb (Bad_Unordered_Enumeration_Reference): Suppress - warning (return False) for generic type. - -2014-11-20 Hristian Kirtchev - - * sem_res.adb (Appears_In_Check): Removed. - (Is_OK_Volatile_Context): Rewrite the checks which verify that - an effectively volatile object subject to enabled properties - Async_Writers or Effective_Reads appears in a suitable context to - properly recognize a procedure call. - (Within_Check): New routine. - (Within_Procedure_Call): New routine. - -2014-11-20 Ed Schonberg - - * sem_ch6.adb: Improve better error message. - -2014-11-20 Thomas Quinot - - * freeze.adb, sem_ch13.adb: Minor editing. - -2014-11-20 Vincent Celier - - * gnatcmd.adb: Remove any special processing for the ASIS tools - (gnatpp, gnatmetric, gnatcheck, gnatelim and gnatstup) and simply - invoke the tool with the provided switches and arguments. - -2014-11-20 Ed Schonberg - - * sem_ch6.adb (Analyze_Expression_Function): Reject declaration - of expression function with identical profile as previous - expression function. - -2014-11-20 Thomas Quinot - - * sem_ch13.adb: Complete previous change. - * exp_dist.adb, exp_dist.ads: Rework PolyORB/DSA arguments processing - circuitry to correctly handle the case of non-private limited - unconstrained formals. - -2014-11-20 Robert Dewar - - * freeze.adb, exp_dbug.adb, sem_ch13.adb: Minor reformatting. - -2014-11-20 Thomas Quinot - - * einfo.ads: Fix minor typo in comment. - -2014-11-20 Robert Dewar - - * inline.adb, sem_util.adb: Minor reformatting. - -2014-11-20 Pierre-Marie Derodat - - * uintp.h (UI_Eq): Declare. - * urealp.h (Norm_Den): Declare. - (Norm_Num): Declare. - * exp_dbug.adb (Is_Handled_Scale_Factor): New. - (Get_Encoded_Name): Do not output ___XF GNAT encodings - for fixed-point types when these can be handled by GCC's DWARF - back-end. - -2014-11-20 Thomas Quinot - - * sem_ch13.db (Inherit_Aspects_At_Freeze_Point): Inherit parent - SSO even if set through a pragma Default_Scalar_Storage_Order. - * freeze.adb (Set_SSO_From_Default): For a type extension, - do not let the default SSO override the parent SSO. - * gnat_rm.texi: document the above - -2014-11-20 Robert Dewar - - * a-stream.ads, a-reatim.ads, a-calend.ads, sinfo.ads, s-crtl.ads, - interfac.ads, s-taskin.ads: Minor reformatting. - -2014-11-20 Hristian Kirtchev - - * sem_prag.adb (Analyze_Pragma): Extensions_Visible can now - apply to an expression function. - * sem_util.adb (Extensions_Visible_Status): Add special processing - for expression functions. - -2014-11-20 Hristian Kirtchev - - * inline.adb (Build_Body_To_Inline): Remove meaningless aspects - and pragmas. - (Generate_Subprogram_Body): Remove meaningless aspects and pragmas. - (Remove_Aspects_And_Pragmas): New routine. - (Remove_Pragmas): Removed. - * namet.ads, namet.adb (Nam_In): New versions of the routine. - -2014-11-20 Thomas Quinot - - * sem_util.adb: Minor reformatting. - -2014-11-20 Robert Dewar - - * sem_prag.adb (Analyze_Pragma, case Linker_Section): Detect - duplicate Linker_Section. - -2014-11-20 Ed Schonberg - - * exp_ch4.adb: Add guard for build-in-place boolean op. - -2014-11-20 Yannick Moy - - * checks.adb (Apply_Scalar_Range_Check): In GNATprove mode, - put a range check when an empty range is used, instead of an - error message. - * sinfo.ads Update comment on GNATprove mode. - -2014-11-20 Arnaud Charlet - - * a-stream.ads, s-osinte-linux.ads, a-reatim.ads, a-calend.ads, - s-crtl.ads, interfac.ads, s-taskin.ads: Replace uses of 2 ** 63 and - 2 ** 64 by references to Long_Long_Integer instead, to allow these - units to be analyzed by codepeer or spark when using a target - configuration file with long_long_size set to 32. - -2014-11-20 Hristian Kirtchev - - * sem_util.adb (Extensions_Visible_Status): Modify the logic to account - for non-SPARK code. - (Object_Access_Level): In ASIS mode, recognize - a selected component with an implicit dereference so that it - yields the same value with and without expansion. - -2014-11-20 Ed Schonberg - - * sem_prag.adb (Analyze_Pragma, case Implemented): In ASIS - (compile-only) mode, use original type declaration to determine - whether protected type implements an interface. - -2014-11-20 Yannick Moy - - * a-cfdlli.adb, a-cfdlli.ads, a-cfinve.adb, a-cfinve.ads, - * a-cofove.adb, a-cofove.ads: Mark spec as SPARK_Mode, and private - part/body as SPARK_Mode Off. - * a-cfhama.adb, a-cfhama.ads, a-cfhase.adb, a-cfhase.ads, - * a-cforma.adb, a-cforma.ads, a-cforse.adb, a-cforse.ads: Use - aspect instead of pragma for uniformity. - -2014-11-20 Hristian Kirtchev - - * sem_util.adb (Is_EVF_Expression): Include - attributes 'Loop_Entry, 'Old and 'Update to the logic. - -2014-11-20 Bob Duff - - * sem_res.adb (Make_Call_Into_Operator): Don't - call Left_Opnd in the case of unary operators, because they only - have Right. - -2014-11-20 Pascal Obry - - * initialize.c (ProcListCS): New extern variable (critical section). - (ProcListEvt): New extern variable (handle). - (__gnat_initialize)[Win32]: Initialize the ProcListCS critical - section object and the ProcListEvt event. - * final.c (__gnat_finalize)[Win32]: Properly finalize the - ProcListCS critical section and the ProcListEvt event. - * adaint.c (ProcListEvt): New Win32 event handle. - (EnterCS): New routine to enter the critical section when dealing with - child processes chain list. - (LeaveCS): As above to exit from the critical section. - (SignalListChanged): Routine to signal that the chain process list has - been updated. - (add_handle): Use EnterCS/LeaveCS, also call SignalListChanged when the - handle has been added. - (__gnat_win32_remove_handle): Use EnterCS/LeaveCS, - also call SignalListChanged if the handle has been found and removed. - (remove_handle): Routine removed, implementation merged with the above. - (win32_wait): Use EnterCS/LeaveCS for the critical section. Properly - copy the PID list locally to ensure that even if the list is updated - the local copy remains valid. Add into the hl (handle list) the - ProcListEvt handle. This handle is used to signal that a change has - been made into the process chain list. This is to ensure that a waiting - call can be resumed to take into account new processes. We also make - sure that if the handle was not found into the list we start over - the wait call. Indeed another concurrent call to win32_wait() - could already have handled this process. - -2014-11-20 Ed Schonberg - - * sem_res.adb (Resolve_Actuals): The legality rule concerning - the use of class-wide actuals for a non-controlling formal are - not rechecked in an instance. - -2014-11-20 Pascal Obry - - * g-dirope.ads: Minor typo fix. - -2014-11-20 Hristian Kirtchev - - * exp_attr.adb (Expand_N_Attribute_Reference, - Expand_Update_Attribute): Preserve the tag of a prefix by offering - a specific view of the class-wide version of the prefix. - -2014-11-20 Javier Miranda - - * sem_ch6.adb (Analyze_Function_Return): For functions returning - an access to an interface add an implicit conversion to the target - type to force the displacement of the pointer to the object to - reference the secondary dispatch table. - (Check_Anonymous_Return): Skip internally built functions which handle - the case of null access when locating the master of a task. - * sem_res.adb (Valid_Conversion): Return true for internally - generated conversions of access to interface types added to force - the displacement of the pointer to reference the corresponding - dispatch table. - -2014-11-20 Pascal Obry - - * adaint.c (add_handle): realloc with a size of +100. - -2014-11-20 Ed Schonberg - - * sem_res.adb (Make_Call_Into_Operator): In ASIS mode, propagate - back the resolved operands to the original call node, taking - into account that the original call may have named associations. - -2014-11-20 Hristian Kirtchev - - * inline.adb (Has_Some_Contract): Change the - guard to test the Ekind of the entity rather than the Analyzed - flag. This handles partially analyzed contexts. - -2014-11-20 Ed Schonberg - - * sem_ch8.adb (Analyze_Object_Renaming): In Ada 83 mode, do - not reject the renaming of a function result if the renaming - does not come for source. - -2014-11-20 Robert Dewar - - * exp_util.ads: Minor addition of ??? clause. - -2014-11-20 Ed Schonberg - - * sem_util.adb (Is_Variable): For an Ada 2012 implicit - dereference introduced for an indexing opertion, check that the - type of the corresponding access discriminant is not an access - to constant. - -2014-11-20 Hristian Kirtchev - - * sem_ch6.adb (Find_Corresponding_Spec): Inherit - the ghostness of the matching spec, the same way convention - is inherited. - -2014-11-20 Eric Botcazou - - * sem_ch3.adb (Analyze_Object_Declaration): Swap a couple of - tests in a condition so Following_Address_Clause is invoked - only if need be. - * exp_util.ads (Following_Address_Clause): Add small note. - -2014-11-20 Pascal Obry - - * adaint.c (remove_handle): New local routine without a lock. - (win32_wait): fix the critical section to properly protect needed - code, use new remove_handle. - (__gnat_win32_remove_handle): refactor code with remove_handle. - -2014-11-20 Eric Botcazou - - * inline.adb (Analyze_Inlined_Bodies): Iterate between loading - of the inlined bodies and instantiation of the generic bodies - until no more bodies need to be loaded. - -2014-11-20 Vincent Celier - - * prj.adb, prj.ads, prj-conf.adb: Minor change of procedure name: - Update_Ignore_Missing_With becomes Set_Ignore_Missing_With. - -2014-11-20 Robert Dewar - - * exp_ch7.adb, sem_ch5.adb, sem_ch7.adb, sem_util.adb, - sem_ch6.adb: Minor reformatting. - -2014-11-20 Javier Miranda - - * exp_ch4.adb (Expand_N_Type_Conversion): Add missing implicit - conversion to force the displacement of the pointer to the object - to reference the secondary dispatch table. - -2014-11-11 Simon Wright - - PR ada/42978 - * mlib-utl.adb (ar): Output the options passed to ranlib. - -2014-11-07 Arnaud Charlet - - * debug.adb, snames.adb-tmpl (Is_Keyword_Name): Consider 'overriding' - a keyword in Ada 95 mode when -gnatd.D is used. - * gnat_ugn.texi: Document -gnatd.D. - -2014-11-07 Vasiliy Fofanov - - * gnatls.adb: Lower severity of the program's return value in - some common cases. - -2014-11-07 Ed Schonberg - - * sem_ch10.adb (Decorate_Type): The limited view of a tagged - type has an empty list of primitive operations. - -2014-11-07 Hristian Kirtchev - - * sem_ch3.adb (Analyze_Object_Declaration): Update references to SPARK - RM. - (Process_Full_View): Update references to SPARK RM. - * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Update references - to SPARK RM. - (Analyze_Subprogram_Body_Helper): Update references - to SPARK RM. - * sem_ch7.adb (Analyze_Package_Body_Helper): Update references - to SPARK RM. - * sem_prag.adb (Check_Ghost_Constituent): Update references to - SPARK RM. - * sem_res.adb (Check_Ghost_Policy): Update references to SPARK RM. - (Resolve_Actuals): Ensure that the actual parameter of a Ghost - subprogram whose formal is of mode IN OUT or OUT is Ghost. - * sem_util.adb (Check_Ghost_Completion): Update references to - SPARK RM. - -2014-11-07 Ed Schonberg - - * exp_ch7.adb (Make_Final_Call): If type of designated object is - derived from that of the formal of the Deep_Finalize procedure, - add an unchecked conversion to prevent spurious type error. - -2014-11-07 Robert Dewar - - * table.adb, inline.adb, einfo.adb, gnat1drv.adb, exp_ch13.adb, - exp_fixd.adb, prj-conf.adb, exp_strm.adb, a-cofove.adb, exp_ch3.ads: - Minor reformatting. - -2014-11-07 Robert Dewar - - * sem_ch12.adb, sem_ch13.adb, prj-tree.adb: Minor reformatting. - -2014-11-07 Hristian Kirtchev - - * einfo.adb (Set_Is_Checked_Ghost_Entity, - Set_Is_Ignored_Ghost_Entity): Add exceptions to the assertion - check. - * sem_ch6.adb (Check_Conformance): Consider only - source subprograms when checking for Ghost conformance. - * sem_prag.adb (Analyze_Pragma): Handle the case - where pragma Ghost applies to a stand alone subprogram body that - acts as a compilation unit. - * sem_res.adb: Minor reformatting (merge if statements). - -2014-11-07 Ed Schonberg - - * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): - Check whether underlying type is constrained before generating - the object declaration for the result object of the function. - -2014-11-07 Robert Dewar - - * freeze.adb: Code clean up. - -2014-11-07 Yannick Moy - - * a-cfdlli.ads, a-cfhama.ads, a-cfhase.ads, a-cfinve.ads, - * a-cforma.ads, a-cforse.ads, a-cofove.ads: Mark First_To_Previous, - Current_To_Last and Strict_Equal as Ghost. - -2014-11-07 Ed Schonberg - - * sem_ch3.adb: Code clean up. - -2014-11-07 Hristian Kirtchev - - * freeze.adb (Freeze_Entity): Issue an error regardless of the - SPARK_Mode when a ghost type is effectively volatile. - * sem_ch3.adb (Analyze_Object_Contract): Decouple the checks - related to Ghost from SPARK_Mode. - * sem_res.adb (Check_Ghost_Policy): Issue an error regardless - of the SPARK_Mode when the Ghost policies do not match. - * sem_util.adb (Check_Ghost_Completion): Issue an error regardless - of the SPARK_Mode when the Ghost policies do not match. - -2014-11-07 Ed Schonberg - - * sem_ch5.adb (Analyze_Iterator_Specification): return if name - in iterator does not have any usable aspect for iteration. - -2014-11-07 Ed Schonberg - - * sem_ch6.adb (Analyze_Null_Procedure): Reject a null procedure - that there is a previous null procedure in scope with a matching - profile. - -2014-11-07 Hristian Kirtchev - - * atree.adb (Copy_Separate_Tree): Copy the aspect specifications. - * inline.adb (Has_Some_Contract): Do the check only when the - related entity has been analyzed. - -2014-11-07 Ed Schonberg - - * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Integer): - If the restriction No_Floating_Point is in effect, and the - operands have the same type, introduce a temporary to hold - the fixed point result, to prevent the use of floating-point - operations at run-time. - -2014-11-07 Robert Dewar - - * freeze.adb (Check_Address_Clause): Minor reformatting - (Find_Constant): Minor reformatting. - (Freeze_Array_Type): Modify check for packed declarations. - (Freeze_Entity): Minor reformatting. - -2014-11-05 Eric Botcazou - - * gnatvsn.ads (Library_Version): Bump to 5.0. - -2014-11-05 Eric Botcazou - - * gcc-interface/trans.c (Subprogram_Body_to_gnu): For a function with - copy-in/copy-out parameters and which returns by invisible reference, - do not create the variable for the return value; instead, manually - generate the indirect copy out statements on exit. - (gnat_to_gnu) : Adjust accordingly and build - a simple indirect assignment for the return value. - -2014-11-05 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : For a - derived untagged type that renames discriminants, be prepared for - a type derived from a private discriminated type when changing the - type of the stored discriminants. - -2014-11-05 Eric Botcazou - - * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): Set - the SLOC of the node on the call to set_jmpbuf_address_soft emitted - on block entry with SJLJ. - -2014-11-05 Eric Botcazou - - * gcc-interface/utils.c (create_subprog_decl): Move code dealing with - conflicting inlining status of nested subprograms to... - * gcc-interface/trans.c (check_inlining_for_nested_subprog): ...here. - (Attribute_to_gnu) : Call it. - (Call_to_gnu): Likewise. - (Subprogram_Body_to_gnu): Drop the body if it is an inlined external - function that has been marked uninlinable. - -2014-10-31 Hristian Kirtchev - - * aspects.adb Add an entry for aspect Ghost in table - Canonical_Aspect. - * aspects.ads Add an entry for aspect Ghost in tables - Aspect_Argument, Aspect_Delay, Aspect_Id, Aspect_Names and - Implementation_Defined_Aspect. - * einfo.adb: Flags 277 and 278 are now in use. - (Is_Checked_Ghost_Entity): New routine. - (Is_Ghost_Entity): Removed. - (Is_Ghost_Subprogram): Removed. - (Is_Ignored_Ghost_Entity): New routine. - (Set_Is_Checked_Ghost_Entity): New routine. - (Set_Is_Ignored_Ghost_Entity): New routine. - (Write_Entity_Flags): Output flags Is_Checked_Ghost_Entity and - Is_Ignored_Ghost_Entity. - * einfo.ads: Add new flags Is_Checked_Ghost_Entity - and Is_Ignored_Ghost_Entity along with usage in nodes. - (Is_Checked_Ghost_Entity): New routine and pragma Inline. - (Is_Ghost_Entity): Removed along with synthesized flag - description and usage in nodes. - (Is_Ghost_Subprogram): Removed along with synthesized flag description - and usage in nodes. - (Is_Ignored_Ghost_Entity): New routine and pragma Inline. - (Set_Is_Checked_Ghost_Entity): New routine and pragma Inline. - (Set_Is_Ignored_Ghost_Entity): New routine and pragma Inline. - * freeze.adb (Freeze_Entity): A Ghost type cannot be effectively - volatile. - * par-prag.adb Pragma Ghost does not need special handling by - the parser. - * repinfo.adb (List_Mechanisms): Remove the entry for convention Ghost. - * sem_attr.adb (Analyze_Access_Attribute): Remove obsolete check. - * sem_ch3.adb (Analyze_Full_Type_Declaration): Mark - the type as Ghost when its enclosing context is Ghost. - (Analyze_Incomplete_Type_Decl): Mark the type as Ghost when - its enclosing context is Ghost. - (Analyze_Number_Declaration): Mark the number as Ghost when its - enclosing context is Ghost. - (Analyze_Object_Declaration): Mark the object as Ghost when its - enclosing context is Ghost. Verify the Ghost policy between - initial declaration and completion of a deferred constant. - (Analyze_Object_Contract): A Ghost variable cannot be effectively - volatile, imported or exported. - (Build_Derived_Record_Type): Mark a type extension as Ghost when it - implements a Ghost interface. - (Build_Record_Type): Inherit volatility and "ghostness" from - the parent type. - (Check_Completion): A Ghost entity declared - in a non-Ghost package does not require completion in a body. - (Implements_Ghost_Interface): New routine. - (Process_Full_View): Inherit "ghostness" from the partial view. Verify - the Ghost policy between the partial and full views. Verify the - completion of a Ghost type extension. - * sem_ch4.adb (Check_Ghost_Subprogram_Call): Removed. - * sem_ch5.adb (Analyze_Assignment): Analyze the left hand side first. - * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Mark - the subprogram as Ghost when its enclosing context is Ghost. - (Analyze_Generic_Subprogram_Body): Mark the generic body as Ghost - when its enclosing context is Ghost. Verify the Ghost policy - between the spec and body. - (Analyze_Subprogram_Body_Helper): Mark the body as Ghost when its - enclosing context is Ghost. Verify the Ghost policy between the spec - and body. - (Check_Conformance): A Ghost subprogram profile and a non-Ghost - subprogram profile are not subtype conformant. - (Convention_Of): Removed. - * sem_ch7.adb (Analyze_Package_Body_Helper): Inherit the - "ghostness" from the spec. Verify the Ghost policy between - the spec and body. - (Analyze_Private_Type_Declaration): Mark the type as Ghost when its - enclosing context is Ghost. - (Requires_Completion_In_Body): New routine. - (Unit_Requires_Body): Use Requires_Completion_In_Body. - (Unit_Requires_Body_Info): Rename formal parameter P to Pack_Id, update - comment on usage and all uses of P in the body. Use - Requires_Completion_In_Body. - * sem_ch7.ads (Unit_Requires_Body): Rename formal parameter P - to Pack_Id, update comment on usage and all uses of P in the body. - * sem_ch8.adb (Analyze_Exception_Renaming): Inherit the "ghostness" - from the renamed excention. - (Analyze_Generic_Renaming): Inherit the "ghostness" from the - renamed generic subprogram. - (Analyze_Object_Renaming): Inherit the "ghostness" from the renamed - object. - (Analyze_Package_Renaming): Inherit the "ghostness" from the - renamed package. - (Analyze_Subprogram_Renaming): Inherit the "ghostness" from the - renamed subprogram. - * sem_ch11.adb (Analyze_Exception_Declaration): Mark an exception - as Ghost when its enclosing context is Ghost. - * sem_ch12.adb (Analyze_Generic_Package_Declaration, - Analyze_Generic_Subprogram_Declaration): Mark an exception as - Ghost when its enclosing context is Ghost. - (Preanalyze_Actuals): Remove obsolete check. - * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing - for aspect Ghost. - (Check_Aspect_At_Freeze_Point): Aspects - Depends and Global do no need special checking at freeze point. - (Insert_After_SPARK_Mode): Update comment on usage. - * sem_mech.adb (Set_Mechanisms): Remove the entry for convention Ghost. - * sem_prag.adb Add an entry for pragma Ghost in table Sig_Flags. - (Analyze_Abstract_State): Update the grammar of the pragma. Add - formal parameter Pack_Id along with comment on usage. Mark an - abstract state as Ghost when its enclosing context is Ghost. Add - processing for option Ghost. - (Analyze_Constituent): Verify - that a Ghost abstract state is refined by Ghost constituents. - (Analyze_Pragma): "Ghost" is now a valid policy. Add checks - related to the use and placement of Check_Policy Ghost. Add - processing for pragma Ghost. - (Check_Ghost_Constituent): New routine. - (Is_Valid_Assertion_Kind): "Ghost" is now a valid assertion. - (Process_Convention): Remove obsolete check. - (Set_Convention_From_Pragma): Remove the processing for convention - Ghost. - * sem_res.adb (Check_Ghost_Context): New routine. - (Resolve_Call): Verify that a reference to a Ghost entity appears in a - suitable context. Verify the Ghost polity between point of declaration - and point of use. - (Resolve_Entity_Name): Verify that a reference to - a Ghost entity appears in a suitable context. Verify the Ghost - polity between point of declaration and point of use. - * sem_util.adb (Check_Ghost_Completion): New routine. - (Check_Ghost_Derivation): New routine. - (Incomplete_Or_Partial_View): New routine. - (Incomplete_Or_Private_View): Removed. - (Is_Ghost_Entity): New routine. - (Is_Ghost_Statement_Or_Pragma): New routine. - (Is_Subject_To_Ghost): New routine. - (Policy_In_Effect): New routine. - (Set_Is_Ghost_Entity): New routine. - (Within_Ghost_Scope): New routine. - * sem_util.ads (Check_Ghost_Completion): New routine. - (Check_Ghost_Derivation): New routine. - (Incomplete_Or_Partial_View): New routine. - (Incomplete_Or_Private_View): Removed. - (Is_Ghost_Entity): New routine. - (Is_Ghost_Statement_Or_Pragma): New routine. - (Is_Subject_To_Ghost): New routine. - (Policy_In_Effect): New routine. - (Set_Is_Ghost_Entity): New routine. - (Within_Ghost_Scope): New routine. - * snames.adb-tmpl (Get_Convention_Id): Remove the entry for - convention Ghost. - (Get_Convention_Name): Remove the entry for convention Ghost. - * snames.ads-tmpl Remove the convention id for Ghost. Add a - pragma id for Ghost. - -2014-10-31 Sergey Rybin - - * gnat_ugn.texi: Add description of --RTS option for ASIS tools. - -2014-10-31 Olivier Hainque - - * gcc-interface/Makefile.in (arm-vxworks): Update target pairs. - -2014-10-31 Vincent Celier - - * prj-part.adb (Parse_Single_Project): Call Set_Display_Name_Of. - * prj-proc.adb (Recursive_Process): Call Display_Name_Of to - get the project Display_Name. - * prj-tree.adb (Display_Name_Of): New function - (Set_Display_Name_Of): New procedure. - (Create_Project): Call Set_Display_Name_Of. - * prj-tree.ads (Display_Name_Of): New function. - (Set_Display_Name_Of): New procedure. - (Project_Node_Record): New component Display_Name. - (Project_Name_And_Node): Remove component Display_Name. - * prj-conf.adb (Parse_Project_And_Apply_Config): Use the full - Config_File_Path as the Config_File_Name, not just its simple - name. - -2014-10-31 Thomas Quinot - - * get_scos.adb: Minor reformatting. - -2014-10-31 Ed Schonberg - - * exp_ch5.adb (Expand_Formal_Container_Loop): Create block to - capture declaration for cursor to prevent spurious errors when - several formal iterators that use the same cursoe name appear - in the same context. - -2014-10-31 Vincent Celier - - * prj-proc.adb (Recursive_Process): Make sure that the project - display name is never No_Name. - -2014-10-31 Ed Schonberg - - * sem_attr.adb (Analyze_Access_Attribute): Do not emit error - message if reference does not come from source, as in the case - for the controlling argument of a dispatching call. Error is - diagnosed when call is resolved. - * sem_ch4.adb (Complete_Object_Operation); Fix incorrect RM - reference in error message. - * sem_res.adb (Check_Prefixed_Call): ditto. - -2014-10-31 Yannick Moy - - * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): Do not - suppress checks when pragma Restrictions (No_Exception) is used in - CodePeer or GNATprove mode. - -2014-10-31 Yannick Moy - - * gnat1drv.adb (Adjust_Global_Switches): Explicitly mark language - checks as not suppressed in GNATprove mode. - -2014-10-31 Ed Schonberg - - * sem_elab.adb (Check_Elab_Call): Nothing to check if call is - being pre-analyzed. - * sem_ch3.adb (Complete_Private_Subtype): If all rep items of full - view are those of the base, use rep_item chain of partial view, - which may include aspects. - * sem_cat.adb (Is_non_Remote_Access_Type): Use underlying type - of base type, to handle properly declared subtypes. - -2014-10-31 Ed Schonberg - - * sem_ch12.adb (Analyze_Generic_Package_Declaration): If there - is a default storage pool, add a corresponding aspect to the - generic unit, to be used at the point of instantiation. - (Analyze_Package_Instantiation): If generic unit has aspect - specifications, propagate them to instance. If instance has a - Default_Storage_Pool aspect, make sure that it overrides the - one that may be inherited from the generic. - -2014-10-31 Vincent Celier - - * prj-attr.adb: Minor removal of attributes of package Linker - that have never been used and never been documented. - * projects.texi: Add documentation for attribute Runtime. - * prj-nmsc.adb (Check_Configuration): Do not report a warning - for unknown compilers when the project is externally built. - -2014-10-31 Vasiliy Fofanov - - * prj-conf.adb (Do_Autoconf): Refactor the code so that empty - Normalized_Pathname doesn't inhibit the custom Selected_Target - value. - * prj-conf.adb (Parse_Project_And_Apply_Config): Make sure that - Automatically_Generated is correctly set after the first call - to Process_Project_And_Apply_Config and not modified after the - second call, if any. - -2014-10-31 Yannick Moy - - * Makefile.rtl, gnat_rm.texi, impunit.adb: Add mention of new library - files. - * a-cfinve.adb, a-cfinve.ads: New unit for formal indefinite - vectors, suitable for use in client SPARK code, also more - efficient than the standard vectors. - * a-coboho.adb, a-coboho.ads New unit for bounded holders, that - are used to define formal indefinite vectors in terms of formal - definite ones. - * a-cofove.adb, a-cofove.ads: Simplification of the API of formal - definite vectors, similar to the API of the new indefinite ones. A - new formal parameter of the generic unit called Bounded allows - to define growable vectors that use dynamic allocation. - -2014-10-31 Vincent Celier - - * prj-conf.adb (Look_For_Project_Paths): New procedure - (Parse_Project_And_Apply_Config): Initially, parse the project - files ignoring missing withs. If there are missing withs, extend - the project path with directories rooted at the compiler roots, - including directories rooted at the runtime roots, if there are - non default runtimes, in the PATH orser. - * prj-env.adb (Initialize_Default_Project_Path): Do not add - any directory from the prefix if the target is "-". - * prj-part.adb (Parse): Initialize the tables, as Parse may be - call several times by gprbuild. - * prj.adb (Update_Ignore_Missing_With): New procedure. - -2014-10-31 Ed Schonberg - - * sem_aux.adb (First_Stored_Discriminant, - Has_Completely_Hidden_Discriminant): When scanning the list of - discriminants to locate possibly hidden (inherited) discriminants, - ignore itypes that may appear in the entity list, when an access - discriminants is constrained by an access attribute reference. - -2014-10-31 Javier Miranda - - * freeze.adb (Freeze_Record_Type): Add missing - check to verify that all the primitives of an interface type - are abstract or null procedures. - -2014-10-31 Vincent Celier - - * s-os_lib.adb, s-os_lib.ads: New function Non_Blocking_Spawn that - redirects standard output and standard error to two different files. - -2014-10-31 Bob Duff - - * makeutl.ads: Minor comment fix. - -2014-10-31 Arnaud Charlet - - * system-linux-x86_64.ads, system-mingw-x86_64.ads (Word_Size, - Memory_Size): Use Standard'Word_Size so that the value can be changed - via a target configuration file. - -2014-10-31 Eric Botcazou - - * exp_ch4.adb: Minor tweak. - -2014-10-31 Eric Botcazou - - * sem_ch12.adb (Analyze_Package_Instantiation): Do not inline with - back-end inlining. - (Must_Inline_Subp): Delete. - * sem_util.ads, sem_util.adb (Must_Inline): Likewise. - -2014-10-31 Ed Schonberg - - * freeze.adb (Freeze_Entity): A default_pool does not apply to - internal access types generated for 'access references. - * sem_prag (Analyze_Pragma, case Default_Pool): If the name is - not null it must designate a variable. - -2014-10-31 Eric Botcazou - - * inline.adb: Minor reformatting. - -2014-10-31 Ed Schonberg - - * sem_ch3.adb (Build_Derived_Private_Type): If the derived - type has access discriminants, create itype references for their - anonymous types, so that they are elaborated before the generated - bodies for the primitive operations of the type. - -2014-10-31 Tristan Gingold - - * prj-conf.adb (Locate_Runtime): Remove procedure. - -2014-10-31 Eric Botcazou - - * inline.adb (Has_Excluded_Declaration): With back-end inlining, - only return true for nested packages. - (Cannot_Inline): Issue errors/warnings whatever the optimization level - for back-end inlining and remove assertion. - -2014-10-31 Sergey Rybin - - * table.adb (Tree_Read, Tree_Write): Use parentheses to specify - the desired order of '*' and '/' operations to avoid overflow. - -2014-10-31 Eric Botcazou - - * exp_ch6.adb (Do_Inline): Remove unreachable code. - (Do_Inline_Always): Likewise. - -2014-10-31 Vincent Celier - - * prj-nmsc.adb (Check_Stand_Alone_Library): Change error message - when library has no Ada interfaces and Library_Standalone is - declared. - -2014-10-31 Arnaud Charlet - - * sem_ch13.adb (Check_Constant_Address_Clause): Disable checks - on address clauses in CodePeer mode. - -2014-10-31 Javier Miranda - - * inline.adb (Expand_Inlined_Call): Do not skip - inlining of calls to subprogram renamings. - -2014-10-31 Hristian Kirtchev - - * sem_res.adb (Resolve_Entity_Name): Account for - the case where the immediate parent of a reference to an entity - is a parameter association. - -2014-10-31 Eric Botcazou - - * inline.adb (Check_And_Split_Unconstrained_Function): Do not - test for the presence of nested subprograms. - -2014-10-31 Ed Schonberg - - * aspects.ads, aspects.adb: Add aspect Default_Storage_Pool. - * sem_ch13.adb (Analyze_One_Aspect): Generate pragma for aspect - Default_Storage_Pool. - -2014-10-31 Eric Botcazou - - * sem_ch6.adb: Remove obsolete comment. - -2014-10-31 Olivier Hainque - - * g-allein.ads: bind vec_sld for pixels to 8hi vsldoi instead - of 4si, as pixels are short. - -2014-10-31 Ed Schonberg - - * sem_res.adb (Resolve_Call): Do not reject a call to a protected - operation in the spec of a protected type, when the call appears - in a pre/postcondition for another protected operation. - -2014-10-31 Tristan Gingold - - * prj-conf.adb: Locate_Runtime: Always search the runtime in - project path. - -2014-10-31 Eric Botcazou - - * inline.adb (Check_Package_Body_For_Inlining): Adjust previous - change to use correct idiom for back-end inlining. - -2014-10-31 Ed Schonberg - - * freeze.adb (Freeze_Record_Type): Do not check component size - if its type is generic. - -2014-10-31 Bob Duff - - * gnat_rm.texi: Fix documentation w.r.t -gnatw.w. - -2014-10-31 Ed Schonberg - - * sem_ch4.adb (Try_Container_Indexing): Use Check_Implicit_Dereference. - * sem_util.adb (Check_Implicit_Dereference): a) Handle generalized - indexing as well as function calls. b) If the context is a - selected component and whe are in an instance, remove entity from - selector name to force resolution of the node, so that explicit - dereferences can be generated in the instance if they were in - the generic unit. - -2014-10-31 Eric Botcazou - - * inline.adb (Back_End_Cannot_Inline): Delete. - (Add_Inlined_Subprogram): Do not call it. - -2014-10-31 Ed Schonberg - - * exp_ch3.ads (Make_Tag_Assignment): New function, used to - re-initialize the tag in a tagged object declaration with - initial value. - * exp_ch3.adb (Expand_N_Object_Declaration): Use - Make_Tag_Assignment to simplify code for a tagged object - declaration. - * exp_ch13.adb (Expand_Freeze_Entity): Analyze freeze actions - for the freeze node of an object. - * freeze.adb (Check_Address_Clause): Use Make_Tag_Assignment when - needed to extend Freeze_Actions for a tagged object declaration. - -2014-10-31 Eric Botcazou - - * gnat_ugn.texi: Further minor improvement to -flto entry. - -2014-10-31 Gary Dismukes - - * g-dynhta.adb, g-dynhta.ads: Minor typo fixes and reformatting. - -2014-10-30 Ed Schonberg - - * exp_ch3.adb (Expand_N_Object_Declaration): Code cleanup. - -2014-10-30 Ed Schonberg - - * sem_ch5.adb (Analyze_Iterator_Specification): If a subtype - indication is provided, check properly that it covers the element - type of of the container type. - -2014-10-30 Hristian Kirtchev - - * g-dynhta.ads, g-dynhta.adb: Add the implementation of a load facto - -based hash table. - -2014-10-30 Ed Schonberg - - * exp_util.ads, exp_util.adb (Following_Address_Clause): Modify - Has_Following_Address_Clause so that it returns the address - clause if present, rather than a boolean value. - * sem_ch3.adb (Analyze_Object_Declaration): use - Following_Address_Clause. - * exp_ch3.adb (Expand_N_Object_Declaration): When a tagged object - is initialized, insert tag assignment after object is frozen, - which may be after an address clause that follows the declaration. - -2014-10-30 Tristan Gingold - - * system-darwin-x86.ads, system-linux-s390x.ads, system-linux-alpha.ads, - system-vxworks-arm.ads, system-freebsd-x86_64.ads, - system-linux-hppa.ads, system-linux-s390.ads, - system-solaris-sparcv9.ads, system-mingw.ads, system-linux-ia64.ads, - system-vxworks-sparcv9.ads, system-linux-ppc.ads, system-aix64.ads, - system-linux-sh4.ads, system-solaris-x86.ads, system-linux-x86_64.ads, - system-linux-x86.ads, system-vxworks-ppc.ads, system-hpux.ads, - system-linux-armel.ads, system-darwin-ppc.ads, system-solaris-sparc.ads, - system-vxworks-m68k.ads, system-hpux-ia64.ads, system.ads, - system-solaris-x86_64.ads, system-mingw-x86_64.ads, - system-vxworks-mips.ads, system-linux-sparc.ads, system-freebsd-x86.ads, - system-aix.ads, system-darwin-x86_64.ads, system-vxworks-x86.ads: Add - pragma No_Elaboration_Code_All. - -2014-10-30 Eric Botcazou - - * gnat_ugn.texi: Minor improvement to -flto entry. - -2014-10-30 Hristian Kirtchev - - * sem_util.adb (Inherit_Subprogram_Contract): - Add a guard to protect against enumeration literal overriding. - * sem_ch3.adb, sem_ch4.adb, sem_res.adb, sem_util.adb: - Minor reformatting (add SPARK RM references). - -2014-10-30 Robert Dewar - - * exp_dbug.adb, opt.ads: Minor reformatting. - -2014-10-30 Yannick Moy - - * inline.adb (Has_Single_Return_In_GNATprove_Mode): - Return False when return statement is inside one or more blocks. - -2014-10-30 Hristian Kirtchev - - * exp_ch7.adb (Is_Subprogram_Call): Account for the case where an - object declaration initialized by a function call that returns - an unconstrained result may be rewritted as a renaming of the - secondary stack result. - -2014-10-30 Hristian Kirtchev - - * aspects.adb: Add an entry for aspect Extensions_Visible in - table Canonical_Aspect. - * aspects.ads: Add entry for aspect Extensions_Visible in - tables Aspect_Argument, Aspect_Delay, Aspect_Id, Aspect_Names, - Implementation_Defined_Aspect. - * einfo.adb (Get_Pragma): Include pragma Extensions_Visible in - the list of contract pragmas. - * par-prag.adb Pragma Extensions_Visible does not require special - processing from the parser. - * sem_ch3.adb (Analyze_Object_Declaration): Prevent an - implicit class-wide conversion of a formal parameter - of a specific tagged type whose related subprogram is - subject to pragma Extensions_Visible with value "False". - (Check_Abstract_Overriding): Add various overriding checks - related to pragma Extensions_Visible. - (Derive_Subprogram): - A subprogram subject to pragma Extensions_Visible with value - False requires overriding if the subprogram has at least one - controlling OUT parameter. - (Is_EVF_Procedure): New routine. - * sem_ch4.adb (Analyze_Type_Conversion): A formal parameter of - a specific tagged type whose related subprogram is subject to - pragma Extensions_Visible with value "False" cannot appear in - a class-wide conversion. - * sem_ch6.adb (Analyze_Subprogram_Contract): Remove - the assertion to account for pragma Extensions_Visible. - (Check_Overriding_Indicator): An overriding subprogram - inherits the contact of the overridden subprogram. - (New_Overloaded_Entity): An overriding subprogram inherits the - contact of the overridden subprogram. - * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing - for aspect Extensions_Visible. - (Check_Aspect_At_Freeze_Point): Aspect Extensions_Visible does not - require special processing at the freeze point. - * sem_prag.adb Add an entry for pragma Extensions_Visible in - table Sig_Flags. - (Analyze_Pragma): Ensure that various SPARK - pragmas lack identifiers in their arguments. Add processing for - pragma Extensions_Visible. - (Chain_CTC): Code reformatting. - * sem_res.adb (Resolve_Actuals): A formal parameter of a - specific tagged type whose related subprogram is subject to - pragma Extensions_Visible with value "False" cannot act as an - actual in a subprogram with value "True". - * sem_util.adb (Add_Classification): New routine. - (Add_Contract_Item): Account for pragma Extensions_Visible. Code - reformatting. - (Add_Contract_Test_Case): New routine. - (Add_Pre_Post_Condition): New routine. - (Extensions_Visible_Status): New routine. - (Inherit_Subprogram_Contract): New routine. - (Is_EVF_Expression): New routine. - (Is_Specific_Tagged_Type): New routine. - * sem_util.ads Add type Extensions_Visible_Mode and document all values. - (Add_Contract_Item): Add pragma Extensions_Visible to the - comment on usage. - (Inherit_Subprogram_Contract): New routine. - (Is_EVF_Expression): New routine. - (Is_Specific_Tagged_Type): New routine. - * sinfo.adb (Is_Inherited): New routine. - (Set_Is_Inherited): New routine. - * sinfo.ads Add flag Is_Inherited along with its usage in - nodes. - (Is_Inherited): New routine along with pragma Inline. - (Set_Is_Inherited): New routine along with pragma Inline. - * snames.ads-tmpl: Add predefined name "Extensions_Visible" - and a new Pragma_Id for the pragma. - -2014-10-30 Vincent Celier - - * prj-proc.adb (Process_Case_Construction): Do not look for - the ultimate extending project for a case variable. - -2014-10-30 Pierre-Marie Derodat - - * exp_dbug.adb, opt.ads (GNAT_Encodings): Import from C. Define - enumerators. - (gnat_encodings): Define a dummy variable for the AAMP back-end. - (Get_Encoded_Name): When -fgnat-encodings=all|gdb, encode names - for all discrete types whose bounds do not match size and do so - only for biased types when -fgnat-encodings=minimal. - * gcc-interface/decl.c (gnat_to_gnu_entity): Do not create ___XA - parallel types when array bounds are constant while the lower bound is - not 1. Also stop generating them because the bound type is - larger than sizetype. - * gcc-interface/misc.c (gnat_encodings): New. - -2014-10-30 Thomas Quinot - - * opt.adb (Set_Opt_Config_Switches): For an internal unit, - always reset Default_SSO to ' '. - -2014-10-30 Thomas Quinot - - * freeze.adb (Freeze_Record_Type): Set SSO from default before - checking SSO consistency. - -2014-10-30 Javier Miranda - - * inline.adb (Check_Package_Body_For_Inlining): - Cleanup this subprogram to implement exactly the behavior - documented in the spec. - -2014-10-30 Hristian Kirtchev - - * a-comutr.adb, a-cimutr.adb (Insert_Child): Add new variable First. - Update the position after all insertions have taken place. - -2014-10-30 Ed Schonberg - - * sem_prag.adb (Analyze_Pragma, case License): Do not perform - analysis of pragma arguments when in CodePeer mode, pragma has - different format on other compilers. - -2014-10-30 Thomas Quinot - - * s-os_lib.adb: Minor reformatting. - -2014-10-29 Richard Sandiford - - * gcc-interface/decl.c, gcc-interface/gigi.h, gcc-interface/misc.c, - gcc-interface/trans.c, gcc-interface/utils.c, gcc-interface/utils2.c: - Remove redundant enum from machine_mode. - -2014-10-28 Andrew MacLeod - - * gcc-interface/trans.c: Adjust include files. - * gcc-interface/utils.c: Ditto. - -2014-10-27 Eric Botcazou - - * gcc-interface/utils.c (create_subprog_decl): Adjust condition. - -2014-10-27 Eric Botcazou - - * gcc-interface/misc.c (gnat_init_options_struct): Parameterize errno - support here instead of... - Do not set flag_delete_dead_exceptions to 1 unconditionally. - (gnat_init_gcc_eh): Set flag_delete_dead_exceptions to 1. - (gnat_init_gcc_fp): ...here. - -2014-10-27 Eric Botcazou - - * gcc-interface/trans.c (gnat_to_gnu) : Minor tweaks. - -2014-10-27 Eric Botcazou - - * gcc-interface/utils.c (create_var_decl_1): For a variable declared - in the unit, set TREE_PUBLIC only if it has static storage duration. - -2014-10-27 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity): Apply special treatment - of derived packed array types to constrained subtypes only. - -2014-10-27 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Remove - superfluous computation for the max size. - : Likewise. Make sure that the max size calculation - does not overflow at compile time. - -2014-10-23 Ed Schonberg - - * sem_eval.adb (Check_Non_Static_Context): Do not set - Is_Machine_Number on a literal of a fixed-point type. - -2014-10-23 Robert Dewar - - * mlib-prj.adb, sem_ch4.adb, exp_ch3.adb: Minor reformatting. - -2014-10-23 Pierre-Marie Derodat - - * exp_dbug.ads: Update ___XA parallel type specification. - -2014-10-23 Hristian Kirtchev - - * sem_ch3.adb (Copy_Array_Subtype_Attributes): Inherit the rep - chain of the source type. - * sem_ch13.adb (Analyze_Aspect_Specifications): Minor - reformatting of an error message. - * sem_util.adb (Inherit_Rep_Item_Chain): Do not inherit a rep - chain that has been inherited already. - -2014-10-23 Ed Schonberg - - * sem_ch6.adb (Analyze_Expression_Function): Simplify analysis - in generic context, and generate body in this case as well, - to simplify ASIS traversals on the construct. - -2014-10-23 Ed Schonberg - - * sem_ch4.adb (Complete_Object_Operation): Indicate that the - scope of the operation (s) is referenced, to prevent spurious - warnings about unused units. - -2014-10-23 Johannes Kanig - - * errout.adb (Error_Msg_Internal): Copy check flag, increment - check msg count. - * erroutc.adb (Delete_Msg) adjust check msg count. - (Output_Msg_Text) handle check msg case (do nothing). - (Prescan_Message) recognize check messages with severity prefixes. - * errutil.adb (Error_Msg) handle check flag, adjust counter. - -2014-10-23 Ed Schonberg - - * sem_eval.adb (Subtypes_Statically_Match): For a generic actual - type, check for the presence of discriminants in its parent type, - against the presence of discriminants in the context type. - -2014-10-23 Tristan Gingold - - * adaint.c: __gnat_get_file_names_case_sensitive: Default is - true on arm-darwin. - -2014-10-23 Arnaud Charlet - - * pprint.adb (Expression_Image): Add handling of quantifiers. - -2014-10-23 Ed Schonberg - - * exp_pakd.adb (Expand_Packed_Element_Reference): If the - prefix is a source entity, generate a reference to it before - transformation, because rewritten node might not generate a - proper reference, leading to spurious warnings. - -2014-10-23 Tristan Gingold - - * init.c: Fix thinko in previous patch. - -2014-10-23 Hristian Kirtchev - - * sem_ch3.adb (Decimal_Fixed_Point_Type_Declaration): - Inherit the rep chain of the implicit base type. - (Floating_Point_Type_Declaration): Inherit the rep chain of the - implicit base type. - (Ordinary_Fixed_Point_Type_Declaration): Inherit the rep chain of the - implicit base type. - (Signed_Integer_Type_Declaration): Inherit the rep chain of the - implicit base type. - * sem_util.ads, sem_util.adb (Inherit_Rep_Item_Chain): New routine. - -2014-10-23 Pascal Obry - - * g-regist.adb, g-regist.ads: Add support for reading 32bit or 64bit - view of the registry. - -2014-10-23 Ed Schonberg - - * exp_ch3.adb (Expand_N_Object_Declaration): If type is abstract, - return without expanding expression, to prevent subsequent crash. - * freeze.adb: better error message for illegal declaration. - -2014-10-23 Hristian Kirtchev - - * sysdep.c (__gnat_localtime_tzoff): Properly delimit the - substring which represents the time zone on VxWorks. - -2014-10-23 Vincent Celier - - * gnatls.adb: If --RTS= was not used, check if there is a default - runtime. If there is none, in verbose mode, indicate that the - default runtime is not available and show only the current - directory in the source and the object search paths. - -2014-10-23 Ed Schonberg - - * sem_ch6.adb (Process_Formals): A thunk procedure with a - parameter of a limited view does not need a freeze node. - -2014-10-23 Hristian Kirtchev - - * sem_ch7.adb (Analyze_Package_Body_Helper): - The logic which hides local entities from external - visibility is now contained in routine Hide_Public_Entities. - (Hide_Public_Entities): New routine. Object and subprogram - renamings are now hidden from external visibility the same way - objects are. - -2014-10-23 Ed Schonberg - - * sem_attr.adb (Analyze_Attribute): The prefix of attribute Elaborated - does not require freezing, in particular if it denotes a generic - function. - -2014-10-23 Yannick Moy - - * sem_prag.adb (Analyze_Pragma/Pragma_Inline & Pragma_Inline_Always): - Disable analysis in GNATprove mode. - -2014-10-23 Arnaud Charlet - - * mlib-prj.adb: Remove obsolete references to libdecgnat (VMS only). - -2014-10-23 Arnaud Charlet - - * gnat1drv.adb (Adjust_Global_Switches): Ignore style check - pragmas in codepeer mode. - -2014-10-23 Gary Dismukes - - * gnat_rm.texi: Minor syntax fix for pragma Annotate (missing ','). - -2014-10-23 Hristian Kirtchev - - * sem_ch12.adb (Inline_Instance_Body): Alphabetize - local variables and constants. Add constants Save_SM and Save_SMP - to capture SPARK_Mode-related attributes. Compile the inlined - body with the SPARK_Mode of the enclosing context. - -2014-10-23 Hristian Kirtchev - - * sinfo.adb (Elaboration_Boolean): Removed. - (Set_Elaboration_Boolean): Removed. - * sinfo.ads Remove attribute Elaboration_Boolean along with its - occurrence in nodes. - (Elaboration_Boolean): Removed along with pragma Inline. - (Set_Elaboration_Boolean): Removed along with pragma Inline. - -2014-10-23 Ed Schonberg - - * sem_ch3.adb (Constant_Redeclaration): Make error message more - explicit on a deferred constant whose object_definition is an - anonymous array. - -2014-10-23 Vincent Celier - - * gnatls.adb: Never call Targparm.Get_Target_Parameters. - -2014-10-23 Ed Schonberg - - * sem_ch6.adb (Analyze_Expression_Function): In a generic - context do not create a body, and only pre-analyze the expression, - which may include incomplete views. - -2014-10-23 Robert Dewar - - * sem_type.adb: Minor code reorganization (use Nkind_In, Ekind_In). - * sem_ch3.adb: Minor reformatting. - -2014-10-23 Ed Schonberg - - * sem_ch12.adb (Analyze_Associations): If an actual for a formal - object is a call to a parameterless expression function, add - the function to the list of actuals to freeze. - * freeze.adb (Check_Expression_Function): Create freeze nodes of - outer types that may be references in the body of the expression. - -2014-10-23 Hristian Kirtchev - - * exp_util.ads, checks.ads: Minor comment reformatting. - -2014-10-23 Javier Miranda - - * sem_eval (Test_In_Range): Disable removal of range_check for - VM targets. - -2014-10-23 Robert Dewar - - * erroutc.adb (Validate_Specific_Warnings): Fix test for -W - messages, which got disabled when we unconditionally added an - asterisk at the start of the string. - -2014-10-23 Vincent Celier - - * gnatls.adb: Ensure that "gnatls -l" works even when there is - no default runtime. - -2014-10-23 Eric Botcazou - - * sem_ch3.adb (Build_Derived_Private_Type): When the parent is - untagged and has discriminants, build the implicit full view after - building the derived type. Capture original declaration and type - here instead of... - (Copy_And_Build): ...here. - * sem_type.adb (Full_View_Covers): Handle the Underlying_Full_View. - -2014-10-23 Hristian Kirtchev - - * checks.adb (Ensure_Valid): Update the subprogram - profile. Propagate the contex attributes to Insert_Valid_Check. - (Insert_Valid_Check): Update the subprogram profile. Propagate - the attributes of the context to Duplicate_Subexpr_No_Checks. - (Validity_Check_Range): Update the subprogram profile. Propagate - the context attribute to Ensure_Valid. - * checks.ads (Ensure_Valid): Update the subprogram profile - along with the comment on usage. - (Insert_Valid_Check): Update the subprogram profile along with the - comment on usage. - (Validity_Check_Range): Update the subprogram profile along with - the comment on usage. - * exp_util.adb (Build_Temporary): New routine. - (Duplicate_Subexpr_No_Checks): Update the subprogram - profile. Propagate the attributes of the context to Remove_Side_Effects. - (Remove_Side_Effects): Update the subprogram profile. Update all calls - to Make_Temporary to invoke Build_Temporary. - * exp_util.ads (Duplicate_Subexpr_No_Checks): Update - the subprogram profile along with the comment on usage. - (Remove_Side_Effects): Update the subprogram profile along with - the comment on usage. - * sem_ch3.adb (Process_Range_Expr_In_Decl): Pass the subtype - to the validity check machinery. Explain the reason for this - propagation. - -2014-10-23 Robert Dewar - - * a-strsea.adb: Minor reformatting. - -2014-10-23 Thomas Quinot - - * bcheck.adb (Check_Consistent_SSO_Default): Exclude internal - units from consistency check. - * gnat_rm.texi (Default_Scalar_Storage_Order): Document that - consistency check excludes run-time units. - -2014-10-23 Ed Schonberg - - * a-strsea.adb (Find_Token): Enable constraint checking in this - procedure, so that even when compiling with checks suppressed, as is - the case for the run-time, an exception is raised in this routine when - the input meets the conditions described in RM 2005 A.4.3 (68/1). - -2014-10-20 Eric Botcazou - - * sem_ch3.adb (Build_Derived_Private_Type): When the parent - is untagged and has discriminants, build the implicit full - view even if the derived type is a completion, and make it - the Underlying_Full_View of the type. - (Copy_And_Build): Fix Is_Completion actual parameter in the calls to - Build_Derived_Type. - (Build_Derived_Record_Type): Likewise. - -2014-10-20 Ed Schonberg - - * sem_ch13.adb: Add guard to convention setting. - -2014-10-20 Robert Dewar - - * sem_ch3.adb, prj-proc.adb, prj-proc.ads, prj-conf.adb: Minor - reformatting. - -2014-10-20 Robert Dewar - - * par-prag.adb (Add_List_Pragma_Entry): New procedure. - * par.adb (P_Pragma): Document requirement to handle multiple calls. - -2014-10-20 Robert Dewar - - * sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All): - Fix error of bad inheritance of this pragma from with'ed unit. - -2014-10-20 Ed Schonberg - - * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): For a subtype, - inherit convention from parent type, because the subtype may - have been declared on a partial view, prior to the pragma on - the parent. - -2014-10-20 Olivier Hainque - Tristan Gingold - - * gcc-interface/Makefile.in: Handle arm-darwin and VxWorks 7. - Misc clean ups. - -2014-10-20 Nicolas Roche - - * gcc-interface/Make-lang.in: ensure that automatically generated - dependency are referencing generated gnatvsn rather than original - one. - -2014-10-20 Gary Dismukes - - * gnat_ugn.texi: Minor reformatting. - * sem_ch3.adb: Minor reformatting. - -2014-10-20 Vincent Celier - - * prj-attr.adb: New project level attribute Runtime. - * prj-conf.adb (Get_Project_Runtimes): New procedure to get - the attributes Runtime declared in the main project, to use - in auto-configuration. - (Get_Or_Create_Configuration_File): Call Get_Project_Runtimes. - * prj-proc.adb (Runtime_Defaults): New table to store - the default values of attributes Runtime (). - (Set_Default_Runtime_For): New procedure to store the default - value of a Runtime () in table Runtime_Defaults. - (Expression): Use the value stored in table Runtime_Defaults as - the default for Runtime (). - * prj-proc.ads (Set_Default_Runtime_For): New procedure. - * prj.ads (Attribute_Default_Value): New enumerated value - Runtime_Value. - -2014-10-20 Ed Schonberg - - * sem_ch3.adb (Analyze_Object_Declaration): If the type is - an unconstrained unchecked_union type, rewrite declaration - as a renaming to prevent attempt to retrieve non- existent - discriminants from expression. - -2014-10-20 Ed Schonberg - - * gnat_ugn.texi: Minor reformatting. - -2014-10-20 Tristan Gingold - - * init.c (__gnat_is_stack_guard): Don't use mach_vm_region_recurse on - arm-darwin. - * raise-gcc.c: Add ATTRIBUTE_UNUSED to remove warnings for - unused arguments. - -2014-10-20 Hristian Kirtchev - - * sem_attr.adb (Analyze_Attribute): Replace - variables CS and PS with Proc_Id and Subp_Id to better illustrate - their purpose. Account for the case where _Postconditions - has not been generated yet and the context is aspect/pragma - Refined_Post. In that scenario the expected prefix of attribute - 'Result is the current scope. - -2014-10-20 Robert Dewar - - * par-ch4.adb (P_Expression): Handle extraneous comma/semicolon - in middle of expression with logical operators. - -2014-10-20 Robert Dewar - - * par-ch13.adb (Possible_Misspelled_Aspect): New function. - -2014-10-20 Steve Baird - - * pprint.adb: Improve Expression_Image function. - -2014-10-20 Robert Dewar - - * gnat_rm.texi: Document No_Tagged_Streams pragma and aspect. - * snames.ads-tmpl: Add entry for pragma No_Tagged_Streams. - * aspects.ads, aspects.adb: Add aspect No_Tagged_Streams. - * einfo.adb (No_Tagged_Streams_Pragma): New field. - * einfo.ads: Minor reformatting (reorder entries). - (No_Tagged_Streams_Pragma): New field. - * exp_ch3.adb: Minor comment update. - * opt.ads (No_Tagged_Streams): New variable. - * par-prag.adb: Add dummy entry for pragma No_Tagged_Streams. - * sem.ads (Save_No_Tagged_Streams): New field in scope record. - * sem_attr.adb (Check_Stream_Attribute): Check stream ops - prohibited by No_Tagged_Streams. - * sem_ch3.adb (Analyze_Full_Type_Declaration): Set - No_Tagged_Streams_Pragma. - (Analyze_Subtype_Declaration): ditto. - (Build_Derived_Record_Type): ditto. - (Record_Type_Declaration): ditto. - * sem_ch8.adb (Pop_Scope): Restore No_Tagged_Streams. - (Push_Scope): Save No_Tagged_Streams. - * sem_prag.adb (Analyze_Pragma, case No_Tagged_Streams): Implement new - pragma. - -2014-10-20 Robert Dewar - - * sem_ch3.adb, prj-proc.adb, sem_ch4.adb, prj-env.adb, lib.ads, - sem_ch13.adb: Minor reformatting. - -2014-10-20 Javier Miranda - - * exp_ch3.adb (Expand_N_Object_Declaration): Expand the - declaration of a class-wide limited object containing an - initializing expression into a renaming declaration. Required to - avoid passing such declaration to the backend and also to avoid - generating an extra copy. - -2014-10-20 Eric Botcazou - - * inline.adb (List_Inlining_Info): Minor tweaks. - (Add_Inlined_Body): Inline the enclosing package - if it is not internally generated, even if it doesn't come - from source. - -2014-10-20 Ed Schonberg - - * sem_ch4.adb (Process_Function_Call): If the first actual - denotes a discrete type, the mode must be interpreted as a slice - of an array returned by a parameterless call. - -2014-10-20 Vasiliy Fofanov - - * prj-env.ads, prj-env.adb (Get_Runtime_Path): No longer inhibit - searching for runtime referenced by a simple name on a project path. - -2014-10-20 Olivier Hainque - - * vxworks-x86-link.spec: New file. - * system-vxworks-x86.ads: Add pragma Linker_Options to link with - vxworks-x86-link.spec. - -2014-10-20 Vincent Celier - - * opt.ads (Origin_Of_Target): New type. - (Target_Origin): New variable. - * prj-conf.adb (Parse_Project_And_Apply_Config): Record - Target_Value and Target_Origin. If target was not specified - on the command line with --target=, check if attribute Target - is declared in the main project. If it is and it is not the - native target, parse again the projects so that 'Target get - the new value. Fail if the target has changed again. Invoke - Process_Project_And_Apply_Config with Do_Phase_1 set to False - is Process_Project_Tree_Phase_1 has already been invoked. - * prj-conf.ads (Process_Project_And_Apply_Config): New Boolean - parameter Do_Phase_1, defaulted to True. - * prj-proc.adb (Expression): Check the special values and - defaults for attribute Target. - -2014-10-20 Ed Schonberg - - * sem_ch3.adb (Handle_Late_Controlled_Primitive): Do not analyze - the subprogram spec of the body in full, because it will be - reanalyzed when the declaration itself is analyzed; otherwise. a - formal may end up duplicated in the list of formals leading to - spurious conformance errors with an existing declaration. - -2014-10-20 Ed Schonberg - - * sem_ch13.adb: Improve error recovery on illegal aspect. - -2014-10-20 Arnaud Charlet - - * set_targ.adb (Write_Target_Dependent_Values, Write_Line): - Fix calling C APIs with no trailing NUL char by calling better - wrappers instead. - -2014-10-20 Tristan Gingold - - * gnat_ugn.texi: Document that gdb users must be in group - _developer on mac os. - -2014-10-20 Arnaud Charlet - - * a-tgdico.ads: Fix typo. - -2014-10-20 Ed Schonberg - - * exp_aggr.adb (Convert_To_Assignments): Do not create a - transient scope for a component whose type requires it, if the - context is an initialization procedure, because the target of - the assignment must be visible outside of the block. - -2014-10-20 Tristan Gingold - - * tracebak.c: Define PC_ADJUST for arm-darwin. - * env.c: Remove darwin specific code. - * raise-gcc.c (__gnat_Unwind_ForcedUnwind): Error on arm-darwin. - -2014-10-20 Ed Schonberg - - * sem_ch3.adb (Analyze_Full_Type_Declaration): If previous view - is incomplete rather than private, and full type declaration - has aspects, analyze aspects on the full view rather than - the incomplete view, to prevent freezing anomalies with the - class-wide type. - -2014-10-17 Robert Dewar - - * exp_ch9.adb (Expand_N_Task_Body): Add defense against - previous errors. - * freeze.adb (Freeze_Entity): Add defense against checking null - scope for generic. - * restrict.adb (Tasking_Allowed): Add test for No_Run_Time mode. - * sem_ch13.adb (Freeze_Entity_Checks): Add defense against - previous errors. - * sem_ch9.adb (Analyze_Task_Type_Declaration): Give error if - in No_Run_Time mode. - -2014-10-17 Robert Dewar - - * prj-makr.adb: Minor reformatting. - -2014-10-17 Robert Dewar - - * gnatcmd.adb, make.adb, prj-part.adb, gnatlink.adb, prj-nmsc.adb, - prj-conf.adb, prj-env.adb: Use Is_Directory_Separator where possible. - -2014-10-17 Ed Schonberg - - * exp_prag.adb (Undo_Initialization): If Initialize_Scalars - is enabled, code will be generated for some composite types - to initialize an object after its declaration. If there is - a subsequent Import pragma for the object, that code must be - removed as specified byw the semantics of the pragma, and to - prevent out-of-order elaboration issues in the back-end. - -2014-10-17 Hristian Kirtchev - - * exp_ch4.adb (Expand_N_Op_Concat): Keep concatenation operator - wrapping mechanism under debug flag -gnatd.h. - * debug.adb: Claim debug switch -gnatd.h. - -2014-10-17 Doug Rupp - - * gcc-interface/Makefile.in: Enable the socket runtime bits - for Android. - -2014-10-17 Ed Schonberg - - * sem_ch13.adb (Add_Invariants, Replace_Type_References): Do - not perform the replacement on the expression for an inherited - class-wide invariant if in ASIS_Mode and the type reference is - already the prefix of a 'Class attribute reference: the expression - has already been preanalyzed and the replacement performed when - first encountered on the declaration of the parent type. - -2014-10-17 Robert Dewar - - * sem_ch5.adb, sem_ch7.adb, prj-nmsc.adb, sem_ch13.adb, exp_ch3.adb: - Minor reformatting. - -2014-10-17 Ed Schonberg - - * exp_ch3.adb (Build_Component_Invariant_Call): Retrieve Invariant - subprogram from base type. - * sem_ch7.adb (Analyze_Package_Specification): Build invariant - subprogram for private type, not any of its subtypes. - * sem_ch13.adb (Build_Invariant_Procedure_Declaration): Set type - of procedure entity, because a call to it may be generated in - a client unit before the corresponding subprogram declaration - is analyzed. - -2014-10-17 Vincent Celier - - * prj-nmsc.adb (Get_Directories): Do not create directories - when a project is abstract. - -2014-10-17 Ed Schonberg - - * sem_ch5.adb (Analyze_Iterator_Specification): If the domain - of iteration is given by an expression that is not an array type, - verify that its type implements an iterator iterface. - -2014-10-17 Robert Dewar - - * sem_attr.adb (Eval_Attribute): Ensure that attribute - reference is not marked as being a static expression if the - prefix evaluation raises CE. - -2014-10-17 Robert Dewar - - * exp_pakd.adb: Move bit packed entity tables to spec. - * exp_pakd.ads: Move bit packed entity tables here from body. - * freeze.adb (Freeze_Array_Type): Check that packed array type - is supported. - * rtsfind.adb (PRE_Id_Table): New table (Entity_Not_Defined): - Specialize messages using PRE_Id_Table. - * uintp.ads, uintp.adb (UI_Image): New functional form. - -2014-10-17 Robert Dewar - - * aspects.ads, aspects.adb: Add Suppress_Initialization aspect. - * einfo.ads, einfo.adb (Suppress_Initialization): Now applies to - E_Variable. - * exp_ch3.adb (Default_Initialize_Object): Handle - Suppress_Initialization. - * exp_prag.adb (Expand_Pragma_Suppress_Initialization): New - procedure (Expand_N_Pragma): Handle Suppress_Initialization - (Expand_Pragma_Import_Or_Interface): Use Undo_Initialization - (Undo_Initialization): New procedure. - * sem_prag.adb (Analyze_Pragma, case Suppress_Initialization): - This is now allowed for E_Variable case. - * gnat_rm.texi: Document new aspect Suppress_Initialization - Suppress_Initialization aspect/pragma can apply to variable. - * einfo.ads: Minor reformatting. - -2014-10-17 Arnaud Charlet - - * spark_xrefs.ads: Add documentation pointer to Flow_Computed_Globals. - -2014-10-17 Robert Dewar - - * cstand.adb (Create_Standard): Mark Short_Integer as - implementation defined. - * sem_util.adb (Set_Entity_With_Checks): Avoid blow up for - compiler built with assertions for No_Implementation_Identifiers test. - -2014-10-17 Robert Dewar - - * aspects.ads: Documentation fix, aspect Lock_Free does have a - corresponding pragma. - * gnat_rm.texi: Document implementation defined boolean aspects - as boolean. - -2014-10-17 Ed Schonberg - - * sem_ch13.adb (Add_Invariants): For a class-wide type invariant, - preserve semantic information on the invariant expression - (typically a function call) because it may be inherited by a - type extension in a different unit, and it cannot be resolved - by visibility elsewhere because it may refer to local entities. - -2014-10-17 Robert Dewar - - * gnat_rm.texi: Document that string literal can be used for - pragma Warnings when operating in Ada 83 mode. - -2014-10-17 Ed Schonberg - - * freeze.adb (Find_Aggregate_Component_Desig_Type): New - subsidiary function to Freeze_ Expression, used to determine - whether an aggregate for an array of access types also freezes the - designated type, when some aggregate components are allocators. - -2014-10-17 Ed Schonberg - - * a-strsea.adb (Find_Token): AI05-031 indicates that the - procedure must raise Index_Error when Source is not empty and - the From parameter is not within the range of the Source string. - -2014-10-17 Robert Dewar - - * sem_prag.adb (Is_Static_String_Expression): Allow string - literal in Ada 83 mode. - -2014-10-17 Vincent Celier - - * prj-conf.adb (Get_Config_Switches): In CodePeer mode, do - not take into account any compiler command from package IDE. - -2014-10-17 Ed Schonberg - - * sem_ch12.adb (Build_Function_Wrapper): The formals of the - wrapper must have the same identifiers as those of the formal - subprogram, because calls within the generic may use named - associations. - -2014-10-17 Robert Dewar - - * sem_ch3.adb, a-strsea.adb: Minor reformatting. - * par-ch6.adb (P_Subprogram): Fix bad handling of null procedures. - -2014-10-17 Ed Schonberg - - * sem_ch3.adb (Build_Derived_Enumeration_Type): Propagate aspect - specfications from original type declaration to declaration of - implicit base, because original node is rewritten as a subtype - declaration on which type aspects do not belong. - -2014-10-17 Hristian Kirtchev - - * sem_ch3.adb (Propagate_Default_Init_Cond_Attributes): A derived type - inherits the attributes related to pragma Default_Initial_Condition - from its parent type. - -2014-10-17 Ed Schonberg - - * a-strsea.adb (Index - versions with a From parameter): - According to AI05-056, the Index functions with a From parameter - return 0 if the source is an empty string. - -2014-10-17 Hristian Kirtchev - - * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Disable - the consistency checks in ASIS mode. - -2014-10-17 Arnaud Charlet - - * s-expmod.ads: Minor typo fix. - -2014-10-17 Robert Dewar - - * sem_util.adb: Minor reformatting. - -2014-10-17 Ed Schonberg - - * sem_ch12.adb (Build_Function_Wrapper): Build wrappers for - actuals that are defaulted subprograms of the formal subprogram - declaration. - -2014-10-17 Robert Dewar - - * exp_ch4.adb (Expand_N_Op_Eq): Make sure we deal with the - implementation base type. - * sinfo.ads: Add a note for N_Op_Eq and N_Op_Ne that record - operands are always expanded out into component comparisons. - -2014-10-17 Robert Dewar - - * s-vallli.adb: Minor comment correction. - * s-valuti.ads: Minor comment reformatting. - -2014-10-17 Robert Dewar - - * gnat_rm.texi: Document System.Atomic_Counters. - * impunit.adb: Add System.Atomic_Counters (s-atocou.ads) to the - list of user- accessible units added as children of System. - * s-atocou.ads: Update comment. - -2014-10-17 Arnaud Charlet - - * s-expmod.ads: Add comments. - -2014-10-17 Hristian Kirtchev - - * sem_ch3.adb (Build_Derived_Record_Type): Remove the propagation - of all attributes related to pragma Default_Initial_Condition. - (Build_Derived_Type): Propagation of all attributes related - to pragma Default_Initial_Condition. - (Process_Full_View): Account for the case where the full view derives - from another private type and propagate the attributes related - to pragma Default_Initial_Condition to the private view. - (Propagate_Default_Init_Cond_Attributes): New routine. - * sem_util.adb: Alphabetize various routines. - (Build_Default_Init_Cond_Call): Use an unchecked type conversion - when calling the default initial condition procedure of a private type. - (Build_Default_Init_Cond_Procedure_Declaration): Prevent - the generation of multiple default initial condition procedures. - -2014-10-17 Robert Dewar - - * prj-conf.adb: Revert previous change. - -2014-10-17 Robert Dewar - - * lib-writ.ads, s-valdec.ads: Minor reformatting. - -2014-10-17 Ed Schonberg - - * sem_ch12.adb: Additional work on function wrappers. - -2014-10-17 Eric Botcazou - - * exp_util.adb (Possible_Bit_Aligned_Component): Also recurse - on the renamed object of renamings. - -2014-10-17 Vincent Celier - - * prj-conf.adb (Parse_Project_And_Apply_Config): In CodePeer - mode, always use the native target. - -2014-10-16 Andrew MacLeod - - * gcc-interface/misc.c: Adjust include files. - -2014-10-13 Eric Botcazou - Alan Modra - - PR ada/63225 - * uintp.adb (Vector_To_Uint): Move from here to... - * uintp.ads (UI_Vector): Make public. - (Vector_To_Uint): ...here. - -2014-10-10 Robert Dewar - - * freeze.adb, sem_attr.adb: Minor reformatting. - -2014-10-10 Johannes Kanig - - * a-cfdlli.ads, a-cfhama.ads, a-cfhase.ads, a-cforma.ads, - a-cforse.ads, a-cofove.ads: add "Default_Initial_Condition" - to container type. - -2014-10-10 Vincent Celier - - * prj-conf.adb (Do_Autoconf): In Codepeer mode, do not try to get - any configuration switches from the project file. - -2014-10-10 Ed Schonberg - - * sem_ch12.adb (Build_Wrapper): Renamed as Build_Operator_Wrapper. - (Build_Function_Wrapper): New function, to construct a wrapper - function for actuals that are functions with an arbitrary - number of parameters. Used in GNATProve mode to simplify proof - propagation in instantiations. - -2014-10-10 Robert Dewar - - * freeze.adb, gnat1drv.adb, sem_ch13.adb: Minor reformatting and - code clean up. - -2014-10-10 Hristian Kirtchev - - * sem_res.adb (Is_OK_Volatile_Context): Allow - a volatile object reference to appear as the expression of a - type conversion. - -2014-10-10 Ed Schonberg - - * sem_ch13.adb (Analyze_Aspect_Specifications, Library_Unit_Aspects): - Aspect specification is legal on a local instantiation of a - library-level generic unit. - -2014-10-10 Gary Dismukes - - * gnat1drv.adb (Adjust_Global_Switches): Set Front_End_Inlining - if inlining has been enabled via -gnatn and the target is not GCC. - -2014-10-10 Ed Schonberg - - * freeze.adb (Freeze_Entity): Freezing a subprogram does - not always freeze its profile. In particular, an attribute - reference that takes the access type does not freeze the types - of the formals. - -2014-10-10 Robert Dewar - - * errout.adb (Adjust_Name_Case): New procedure. - (Set_Msg_Node): Use Adjust_Name_Case. - * errout.ads (Adjust_Name_Case): New procedure. - * exp_intr.adb (Add_Source_Info): Minor code reorganization - (use Ekind_In). - (Write_Entity_Name): Use Errout.Adjust_Name_Case. - * sem_prag.adb (Is_Non_Significant_Pragma_Reference): Review - and fix up entries in Sig_Flags, and correct logical errors in - function itself. - * sprint.adb (Sprint_Node_Actual): Properly print string for - raise statement. - -2014-10-10 Ed Schonberg - - * sem_ch3.adb (Analyze_Object_Declaration): For an object of an - anonymous array type with delayed aspects, defer freezing of - type until object itself is frozen. - * freeze.adb (Freeze_Entity): When freezing an object of an - anonymous array type with delayed aspects, remove freeze node of - object after freezing type, to prevent out-of-order elaboration - in the back-end. The initialization call for the object has - already been constructed when expanding the object declaration. - -2014-10-10 Robert Dewar - - * exp_intr.adb (Write_Entity_Name): Moved to outer level - (Write_Entity_Name): Properly handle operator names - (Expand_Source_Info): New procedure. - * exp_intr.ads (Add_Source_Info): New procedure. - -2014-10-10 Robert Dewar - - * butil.ads: Minor reformatting. - * sem_ch5.adb: Code clean up. - -2014-10-10 Robert Dewar - - * exp_ch11.adb (Expand_N_Raise_Statement): Handle - Prefix_Exception_Messages. - * opt.adb: Handle new flags Prefix_Exception_Message[_Config]. - * opt.ads: New flags Prefix_Exception_Message[_Config]. - * par-prag.adb: New dummy entry for pragma Prefix_Exception_Messages. - * snames.ads-tmpl: Add entries for new pragma Prefix_Exception_Messages. - * sem_prag.adb: Implement new pragma Prefix_Exception_Messages - * gnat_rm.texi: Document pragma Prefix_Exception_Messages. - -2014-10-10 Gary Dismukes - - * sinfo.ads, gnat_ugn.texi, a-except.adb, a-except-2005.adb, - raise-gcc.c Spelling changes (prolog => prologue, epilog => epilogue). - -2014-10-10 Ed Schonberg - - * sem_ch5.adb (Is_Wrapped_In_Block): Handle properly blocks that - contain pragmas generated for loop invariants and type predicates. - Clarify use of this subprogram. - -2014-10-10 Yannick Moy - - * sem_prag.adb (Analyze_Global_Item): Accept formal objects in Global - contracts. - * errout.adb, errout.ads (SPARK_Msg_NE): Issue error unless - SPARK_Mode is Off. - -2014-10-10 Vadim Godunko - - * a-stwima.adb (To_Sequence): Compute size of result array. - -2014-10-10 Javier Miranda - - * gnat_ugn.texi (Interfacing with C++ at the Class Level): Update the - sources of the example to avoid a warning when the Ada files are - automatically generated by the binding generator. - -2014-10-10 Ed Schonberg - - * sem_attr.adb (Resolve_Attribute, case 'Update): Set - Do_Range_Check on the expression of a record component - association when needed, as is done for array components, when - the corresponding type is a scalar type. - -2014-10-10 Gary Dismukes - - * a-coinho-shared.adb: Minor typo fix. - * prj-env.ads: Minor reformatting. - -2014-10-10 Hristian Kirtchev - - * sem_res.adb (Resolve_String_Literal): Do not - generate a string literal subtype for the default expression of - a formal parameter in GNATprove mode. - -2014-10-10 Yannick Moy - - * errout.adb (SPARK_Msg_N): Issue error unless SPARK_Mode is Off. - -2014-10-10 Ed Schonberg - - * exp_ch5.adb (Expand_Formal_Container_Element_Loop): Analyze - declaration for loop parameter before rest of loop, and set - entity kind to prevent assignments to it in the user code. - * sem_ch3.adb (Analyze_Object_Contract): No contracts apply to the - loop parameter in an element iteration over o formal container. - -2014-10-10 Robert Dewar - - * gnat_ugn.texi: Document use of user-level routines to handle - e.g. col major arrays. - -2014-10-10 Doug Rupp - - * s-osinte-android.adb: Fix misspelling. - * gsocket.h: Tweak the Android quirks. - -2014-10-10 Robert Dewar - - * errout.ads (SPARK_Msg_N): Fix spec to match change in body. - -2014-10-10 Robert Dewar - - * sem_ch13.adb: Minor code reorganization. - -2014-10-10 Pat Rogers - - * gnat_rm.texi: Text now indicates pragma No_Run_Time is not - for users. - -2014-10-10 Vadim Godunko - - * a-coinho-shared.adb: Add minor comment. - * a-stzmap.adb (To_Sequence): Compute size of result array. - -2014-10-10 Javier Miranda - - * exp_ch3.adb (Build_Init_Procedure): Complete the condition of an - if-stmt to match its current documentation. - -2014-10-10 Robert Dewar - - * sem_ch7.adb, einfo.adb, einfo.ads, sem_prag.adb, sem_ch12.adb, - freeze.adb, sem_util.adb, sem_res.adb, exp_ch6.adb, exp_ch13.adb, - sem_ch6.adb, sem_cat.adb, sem_disp.adb - (Is_Subprogram_Or_Generic_Subprogram): New primitive. Use this primitive - throughout where appropriate. - -2014-10-10 Bob Duff - - * a-coinho-shared.ads: Minor reformatting. - * s-traceb.adb: Minor clean up. - -2014-10-10 Robert Dewar - - * ali.adb (Scan_ALI): Read and process new GP flag on ALI P line. - * ali.ads (GNATprove_Mode): New component in ALI table. - (GNATprove_Mode_Specified): New global. - * gnatbind.adb (Gnatbind): Give fatal error if any file compiled - in GNATProve mode. - * lib-writ.ads, lib-writ.adb (GP): New flag on P line for - GNATProve_Mode. - -2014-10-10 Javier Miranda - - * exp_ch3.adb (Build_Init_Procedure): Adding assertion. - (Build_Init_Statement): Ensure that statements - associated with the parent components are located at the beginning - of the returned list of statements. - -2014-10-10 Ed Schonberg - - * sem_ch13.adb (Inherit_Aspects_At_Freeze_Node): If the full - view of a private type T that has a type invariant is a scalar - or constrained array type, the base type created for the full - view has the same type invariant. - -2014-10-10 Robert Dewar - - * exp_util.ads, sem_ch12.adb, exp_util.adb, i-fortra.ads: Minor code - reorganization. - -2014-09-22 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust comment. - * gcc-interface/utils.c (gnat_write_global_declarations): Fix typo. - -2014-09-15 Jakub Jelinek - - * gcc-interface/Make-lang.in (check_acats_numbers0, - check_acats_numbers1, check_acats_numbers2, check_acats_numbers3, - check_acats_numbers4, check_acats_numbers5, check_acats_numbers6, - check_acats_numbers, check_acats_subdirs): New variables. - (check_acats_targets): Use $(check_acats_subdirs). - (check-acats, check-acats%): Rewritten so that for parallelized - testing each job runs all the chapters files, with - GCC_RUNTEST_PARALLELIZE_DIR set in environment. Prepare the support - directory sequentially and share it. - (check-acats-subtargets): Always print just check-acats. - -2014-08-25 Martin Liska - - * gcc-interface/utils.c (rest_of_subprog_body_compilation): Adjust to - new cgraph interface. - (gnat_write_global_declarations): Likewise. - -2014-08-13 Sylvestre Ledru - - * 9drpc.adb: Fix a typo - * s-interr.ads: Likewise - * s-taskin.ads: Likewise - * s-traces.ads: Likewise - * sysdep.c: Likewise - -2014-08-12 Joel Sherrill - - * socket.c: For RTEMS, use correct prototype of gethostbyname_r(). - * gsocket.h Add include of on RTEMS. - -2014-08-11 Joel Sherrill - - * s-osinte-rtems.adb: Correct formatting of line in license block. - -2014-08-04 Claire Dross - - * exp_util.adb (Get_First_Parent_With_Ext_Axioms_For_Entity): - For an instance, look at the scope before the generic parent. - -2014-08-04 Yannick Moy - - * lib-writ.ads: Update comments. - * sem_disp.ads, sem_disp.adb (Inherited_Subprograms): Add - parameters to filter inherited subprograms. - -2014-08-04 Robert Dewar - - * gnat_rm.texi: Add section on use of address clause for memory - mapped I/O. - -2014-08-04 Ed Schonberg - - * sem_ch3.adb (Analyze_Subtype_Declaration): A subtype, in - particular the subtype created for a generic actual, inherits - invariant information from the base type. - -2014-08-04 Robert Dewar - - * aspects.ads, aspects.adb: Add entries for aspect Obsolescent. - * gnat_rm.texi: Add documentation for aspect Obsolescent. - * sem_ch13.adb (Analyze_Aspect_Specifications): Implement aspect - Obsolescent. - (Check_Aspect_At_Freeze_Point): Add dummy entry for pragma Obsolescent. - * s-osprim-mingw.adb: Minor reformatting. - * sem_res.adb (Is_Atomic_Ref_With_Address): New function - (Resolve_Indexed_Component): Rework warnings for non-atomic access - (Resolve_Selected_Component): Add warnings for non-atomic access. - -2014-08-04 Doug Rupp - - * g-calend.adb (timeval_to_duration, duration_to_timeval): Change sec - formal to long_long. - * g-calend.ads (timeval): Bump up size to accomodate sec type. - * s-taprop-linux.adb (timeval_to_duration): Change sec formal to - long_long - * s-osprim-posix.adb (timeval): Bump up size to accomodate - new sec type. - (timeval_to_duration): Change sec formal to Long_Long_Integer - * s-osinte-darwin.adb (timeval): Bump up - size to accomodate new sec type. - (timeval_to_duration): Change sec formal to long_long - * s-osinte-android.adb: Likewise. - * cal.c (__gnat_timeal_to_duration, __gnat_duration_to_timeval): Change - sec formal from long to long long. - -2014-08-04 Robert Dewar - - * sem_res.adb (Resolve_Qualified_Expression): Make sure - Do_Range_Check flag gets set. - -2014-08-04 Robert Dewar - - * einfo.ads, einfo.adb (Is_Standard_String_Type): New function. - * exp_ch3.adb (Build_Array_Init_Proc): Use - Is_Standard_String_Type. - (Expand_Freeze_Array_Type): ditto. - (Get_Simple_Init_Val): ditto. - (Needs_Simple_Initialization): ditto. - * sem_eval.adb (Eval_String_Literal): Use Is_Standard_String_Type. - * sem_warn.adb (Is_Suspicious_Type): Use Is_Standard_String_Type. - -2014-08-04 Pascal Obry - - * adaint.c (__gnat_try_lock): Use _tcscpy and _tcscat instead of - _stprintf which insert garbage into the wfull_path buffer. - -2014-08-04 Arnaud Charlet - - * cal.c: Remove old VMS/nucleus code. Remove obsolete vxworks - code. - * fe.h: Minor reformatting. - -2014-08-04 Rainer Orth - - * cstreams.c: (_LARGEFILE_SOURCE): Guard definition. - -2014-08-04 Robert Dewar - - * par-ch13.adb (Get_Aspect_Specifications): Improve error - recovery, fixing a -gnatQ bomb. - -2014-08-04 Yannick Moy - - * sem_ch3.adb (Analyze_Object_Declaration): In GNATprove mode, - do not generate two Itypes with the same name for an array - definition. - * sinfo.ads: Expand doc on GNATprove mode. - -2014-08-04 Hristian Kirtchev - - * exp_ch3.adb (Expand_Freeze_Record_Type): Set the finalization - master and storage pool attributes on the root type of an - anonymous access type. - * exp_ch4.adb (Expand_N_Allocator): Set the finalization master - and storage pool attributes on the root type of an anonymous - access type. - -2014-08-04 Arnaud Charlet - - * exp_ch3.adb: Minor reformatting. - * tb-alvms.c, tb-alvxw.c, tb-ivms.c: Removed. - * tracebak.c: Remove use of above files. - * gcc-interface/Makefile.in: Update dependencies. - -2014-08-04 Pierre-Marie Derodat - - * gcc-interface/utils.c (gnat_set_type_context): Also set the - context for parallel types' TYPE_STUB_DECL. Do not change - anything if the context is already set for them. - (gnat_pushdecl): Update the comment for calls to - gnat_set_type_context to mention parallel types. - (add_parallel_type): When adding a context-less parallel type to - a type that has a context, propagate the context from the latter - type to the former. - (process_deferred_decl_context): Call gnat_set_type_context - rather than manually setting the type context. - (build_unc_object_type): Call gnat_set_type_context on the - template type. - -2014-08-04 Ed Schonberg - - * exp_ch5.adb (Expand_N_Case_Statement): If a choice is a - subtype indication and the case statement has only two choices, - replace subtype indication with its range, because the resulting - membership test cannot have a subtype indication as an operand. - -2014-08-04 Arnaud Charlet - - * exp_ch3.adb: Update comments, minor reformatting. - -2014-08-04 Hristian Kirtchev - - * sem_ch3.adb (Analyze_Declarations): Explain why the bodies of - the default initial condition procedures are build here. - * sem_util.adb (Build_Default_Init_Cond_Procedure): Wrap the - analyzed argument of pragma Default_Initial_Condition in some - dummy code as GNATprove mode disables assertions, but still - needs to see the argument. - -2014-08-04 Robert Dewar - - * exp_ch6.adb, sem_util.adb: Minor reformatting. - -2014-08-04 Olivier Hainque - - * a-comutr.ads: Set Root_Node_Type'Alignment to - Standard'Maximum_Alignment, so that it is at least as large as - the max default for Tree_Node_Type'Alignment. - -2014-08-04 Hristian Kirtchev - - * exp_ch3.adb (Freeze_Type): Remove the generation and inheritance - of the default initial condition procedure [body]. - * sem_ch3.adb (Analyze_Declarations): Create the bodies of - all default initial condition procedures at the end of private - declaration analysis. - * sem_util.adb (Build_Default_Init_Cond_Procedure_Bodies): New - routine. - (Build_Default_Init_Cond_Procedure_Body): Merged in the - processing of routine Build_Default_Init_Cond_Procedure_Bodies. - * sem_util.ads (Build_Default_Init_Cond_Procedure_Bodies): - New routine. - (Build_Default_Init_Cond_Procedure_Body): Removed. - -2014-08-04 Ed Schonberg - - * sem_elab.adb (Check_Elab_Call): Do not check a call to a - postcondtion. - * exp_ch6.adb (Expand_Call): Clarify handling of inserted - postcondition call. - -2014-08-04 Hristian Kirtchev - - * sem_prag.adb (Analyze_Pragma): Ensure that an - internally generated spec for a stand alone body is recognized - as a proper context for pragma SPARK_Mode. - -2014-08-04 Robert Dewar - - * erroutc.adb (Delete_Msg): Do not decrement Warnings_Treated_As_Errors. - -2014-08-04 Arnaud Charlet - - * adabkend.adb (Scan_Back_End_Switches): Ignore extra -o - when -gnatO has already been specified, for compatibility - with gcc driver. - (Scan_Compiler_Args): Do not call Set_Output_Object_File_Name in - codepeer mode. - * g-expect.ads: Fix typo. - -2014-08-04 Thomas Quinot - - * exp_ch4.adb (Insert_Dereference_Action): the actual Size - must account for the bounds template if the designated type is - an unconstrained array. - -2014-08-04 Hristian Kirtchev - - * a-cfhama.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb Add - SPARK_Mode in the body. - * sem_ch7.adb (Analyze_Package_Body_Helper): Restore the original - way to verify the consistency of SPARK_Mode between a spec and - a body. - * sem_ch12.adb (Analyze_Package_Instantiation): Remove the call - to Set_Ignore_Pragma_SPARK_Mode. Set flag Ignore_Pragma_SPARK_Mode - manually. - (Analyze_Subprogram_Instantiation): Remove the call to - Set_Ignore_Pragma_SPARK_Mode. Set flag Ignore_Pragma_SPARK_Mode - manually. - * sem_prag.adb (Analyze_Pragma): Remove local variable - Inst_Id. SPARK_Mode can no longer be applied to a package or - subprogram instantiation. - * sem_util.adb, sem_util.ads (Set_Ignore_Pragma_SPARK_Mode): - Removed. - -2014-08-04 Robert Dewar - - * sem_prag.adb, osint.adb, osint.ads: Minor reformatting. - -2014-08-04 Yannick Moy - - * sem_ch3.adb (Derive_Type_Declaration, - Process_Discriminants): Remove SPARK-specific legality checks. - -2014-08-04 Thomas Quinot - - * g-sechas.ads, g-sechas.adb (HMAC_Initial_Context): New subprogram. - * gnat_rm.texi (GNAT.MD5/SHA1/SHA224/SHA256/SHA512): Document support - for HMAC. - -2014-08-04 Hristian Kirtchev - - * sem_ch7.adb (Analyze_Package_Body_Helper): When verifying the - compatibility of SPARK_Mode between a spec and a body, use the - SPARK_Mode of the public part. - * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Use - the already available routine to exchange the aspects between - the template and its copy. Analyze the aspects of copy to - ensure that the corresponding pragmas perform their semantic - effects. The partial analysis of aspects is no longer needed. - (Analyze_Package_Instantiation): Save and restore the SPARK_Mode - of the context. - (Analyze_Subprogram_Instantiation): Save and restore the SPARK_Mode of - the context. - * sem_prag.adb (Analyze_Pragma): Do not bypass a subprogram - instantiation which does not come from source. - -2014-08-04 Hristian Kirtchev - - * a-cfhama.ads, a-cfhase.ads, a-cforma.ads, a-cforse.ads Add - SPARK_Mode pragmas to the public and private part of the unit. - * sem_ch3.adb (Derive_Type_Declaration): Ensure that a derived - type cannot have discriminants if the parent type already has - discriminants. - (Process_Discriminants): Ensure that the type of a discriminant is - discrete. - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The check on - SPARK_Mode compatibility between a spec and a body can now be - safely performed while processing a generic. - * sem_ch7.adb (Analyze_Package_Body_Helper): The check on - SPARK_Mode compatibility between a spec and a body can now be - safely performed while processing a generic. - * sem_prag.adb (Analyze_Pragma): Pragma SPARK_Mode can now be - safely analyzed when processing a generic. - -2014-08-04 Nicolas Roche - - * g-dirope.adb: Minor reformating. - -2014-08-04 Robert Dewar - - * sem_ch6.adb: Minor reformatting. - -2014-08-04 Ed Schonberg - - * sem_prag.adb (Analyze_Pragma, case Assert and related pragmas): - Before normalizing these pragmas into a pragma Check, preanalyze - the optional Message argument, (which is subsequently copied) - so that it has the proper semantic information for ASIS use. - * sem_case.adb: Initialize flag earlier. - * osint.adb, osint.ads (Find_File): Add parameter Full_Name, used when - the full source path of a configuration file is requested. - (Read_Source_File): Use Full_Name parameter.. - -2014-08-04 Hristian Kirtchev - - * opt.ads Alphabetize various global flags. New flag - Ignore_Pragma_SPARK_Mode along with a comment on usage. - * sem_ch6.adb (Analyze_Generic_Subprogram_Body): - Pragma SPARK_Mode is now allowed in generic units. - (Analyze_Subprogram_Body_Helper): Do not verify the compatibility - between the SPARK_Mode of a spec and that of a body when inside - a generic. - * sem_ch7.adb (Analyze_Package_Body_Helper): Do not verify the - compatibility between the SPARK_Mode of a spec and that of a - body when inside a generic. - * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): - Pragma SPARK_Mode is now allowed in generic units. - (Analyze_Package_Instantiation): Save and restore the value of - flag Ignore_ Pragma_SPARK_Mode in a stack-like fasion. Set - the governing SPARK_Mode before analyzing the instance. - (Analyze_Subprogram_Instantiation): Save and restore the value - of flag Ignore_ Pragma_SPARK_Mode in a stack-like fasion. Set - the governing SPARK_Mode before analyzing the instance. - * sem_ch13.adb (Analyze_Aspect_Specifications): Emulate the - placement of a source pragma when inserting the generated pragma - for aspect SPARK_Mode. - * sem_prag.adb (Analyze_Pragma): Reimplement the handling of - pragma SPARK_Mode to allow for generics and their respective - instantiations. - * sem_util.ads, sem_util.adb (Check_SPARK_Mode_In_Generic): Removed. - (Set_Ignore_Pragma_SPARK_Mode): New routine. - -2014-08-04 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Deal with - renaming discriminants in tagged types first. - * gcc-interface/trans.c (gnat_to_gnu) : Test - the underlying type of the prefix. - (Pragma_to_gnu, case Pragma_Warning): Ignore Reason => "..." - (process_freeze_entity): Reset the nodes of all the view of a type, - if any. - -2014-08-04 Doug Rupp - Olivier Hainque - - * gcc-interface/Makefile.in (x86 VxWorks): Add filter-out for vxworks7 - and remove incorrect EH_MECHANISM macros. - Add sigtramp.h to EXTRA_LIBGNAT_SRCS when we add sigtramp-vxworks.o to - EXTRA_LIBGNAT_OBJS. - -2014-08-04 Robert Dewar - - * exp_attr.adb (Expand_N_Attribute_Reference): Make sure prefix - of constructed 'Valid attribute in -gnatVa mode does not appear - to come from source. - * sem_attr.adb (Analyze_Access_Attribute): Don't set - Never_Set_In_Source for non-source reference. - * sem_util.adb: Minor reformatting. - * sem_warn.adb (Check_References): Don't check Address_Taken, - not necessary, see comment. - -2014-08-04 Robert Dewar - - * sem_util.adb, sem_case.adb: Minor reformatting. - -2014-08-04 Ed Schonberg - - * exp_ch9.adb (Extract_Entry): If the synchronized object is a - limited view, replace with non-limited view, which is available - at the point of an entry call. - -2014-08-04 Ed Schonberg - - * exp_ch6.adb (Expand_Call): If the call is to a function in - a run-time unit that is marked Inline_Always, we must suppress - debugging information on it, so that the code that is eventually - inlined will not affect debugging of the user program. - -2014-08-04 Robert Dewar - - * inline.adb, einfo.ads, s-tassta.adb, s-tarest.adb: Minor comment - fixes. - -2014-08-04 Ed Schonberg - - * sem_prag.adb (Process_Import_Or_Interface): Handle properly - an aspect Import that specifies a False value. - -2014-08-04 Robert Dewar - - * gnat_rm.texi: Add section on aspect Invariant'Class. - -2014-08-04 Ed Schonberg - - * sem_case.adb (Check_Choice_Set): New flag Predicate_Error, - for better control of cascaded error messages when some choice - in a case statement over a predicated type violates the given - static predicate. - -2014-08-04 Hristian Kirtchev - - * sem_ch3.adb (Build_Derived_Type): Modify the - inheritance of the rep chain to ensure that a non-tagged type's - items are not clobbered during the inheritance. - -2014-08-04 Robert Dewar - - * sem_ch3.adb, einfo.ads: Minor reformatting. - -2014-08-04 Yannick Moy - - * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Fix - detection of subprograms that cannot be inlined in GNATprove mode. - -2014-08-04 Ed Schonberg - - * einfo.adb: Add guard to Returns_Limited_View. - -2014-08-04 Jose Ruiz - - * s-tassta.adb, s-tarest.adb (Task_Wrapper): Force maximum alignment of - the secondary stack to respect the alignments of the returned objects. - -2014-08-04 Ed Schonberg - - * einfo.ads, einfo.adb (Returns_Limited_View): New flag defined - on function entities whose return type is a limited view. - * freeze.adb (Freeze_Entity): Use Returns_Limited_View to determine - where to place the freeze node for a function that returns the - limited view of a type, when the function is called and frozen - in a different unit. - -2014-08-04 Eric Botcazou - - * sem_ch3.adb (Build_Derived_Private_Type): Minor code - refactoring. - -2014-08-04 Robert Dewar - - * gnat_ugn.texi: Clarify documentation on assertions. - -2014-08-04 Ed Schonberg - - * sem_aggr.adb (Resolve_Record_Aggregate, Get_Value): Warn - if a component association has a box initialization when the - component type has no default initialization, either through an - initial value, an aspect, or an implicit initialization procedure. - -2014-08-04 Ed Schonberg - - * freeze.adb: Code clean up. - -2014-08-04 Thomas Quinot - - * sem_ch5.adb: Minor reformatting. - -2014-08-04 Ed Schonberg - - * freeze.adb (Late_Freeze_Subprogram): Following AI05-151, - a function can return a limited view of a type declared - elsewhere. In that case the function cannot be frozen at the end - of its enclosing package. If its first use is in a different unit, - it cannot be frozen there, but if the call is legal the full view - of the return type is available and the subprogram can now be - frozen. However the freeze node cannot be inserted at the point - of call, but rather must go in the package holding the function, - so that the backend can process it in the proper context. - -2014-08-04 Robert Dewar - - * exp_ch5.adb, sem_ch5.adb, einfo.ads: Minor reformatting. - -2014-08-04 Arnaud Charlet - - * sem_ch4.adb (Operator_Check): Refine previous change. - -2014-08-04 Arnaud Charlet - - * sem_scil.ads: Improve comments. - * sem_ch4.adb (Analyze_Equality_Op): Add support for - Allow_Integer_Address (equality between Address and Integer). - -2014-08-04 Yannick Moy - - * a-cfhama.adb, a-cforse.adb: Minor fixes to avoid using prefix - notation on untagged objects. - * sem.ads: Update comment. - * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do - not inline subprograms declared in the visible part of a package. - -2014-08-04 Ed Schonberg - - * exp_ch5.adb: minor reformatting. - * einfo.ads, einfo.adb (Is_Processed_Transient): Applies to loop - parameters. - -2014-08-04 Thomas Quinot - - * s-fatgen.adb: Minor reformatting. - -2014-08-04 Arnaud Charlet - - * exp_util.adb (Is_Possibly_Unaligned_Object): Always return - False on .NET. - -2014-08-04 Ed Schonberg - - * sem_ch5.adb (Analyze_Loop_Statement): Set properly the kind of - the loop parameter for element iterators over containers and - arrays, so that improper uses of it are detected in the loop - body when expansion is disabled. - * exp_ch5.adb (Expand_Iterator_Loop): The entity kind of the - generated cursor is that of the analyzed loop parameter. - -2014-08-04 Hristian Kirtchev - - * exp_ch3.adb (Build_CPP_Init_Procedure): Remove - Flag_Decl. Do not analyze the declaration of the flag as it is - not part of the tree yet, instead add it to the freeze actions - of the C++ type. - -2014-08-04 Robert Dewar - - * checks.adb (Apply_Scalar_Range_Check): Make sure we handle - case of OUT and IN OUT parameter correctly (where Source_Typ is - set), we were missing one case where a check must be applied. - -2014-08-04 Hristian Kirtchev - - * sem_ch8.adb (Build_Class_Wide_Wrapper): Update the comment on - the generated code. Instead of hiding the renaming and using the - wrapper as the proper association, have the subprogram renaming - alias the wrapper. - (Build_Spec): The entity of the wrapper is - now derived from the entity of the related primitive. - -2014-08-04 Emmanuel Briot - - * s-regpat.adb: s-regpat.adb (Parse): fix incorrect link when - using non-capturing groups. - -2014-08-04 Ed Schonberg - - * inline.adb (Build_Body_To_Inline): Remove Unmodified and - related pragmas before copying the original body, to prevent - spurious errors when the pragmas apply to formals that will not - appear in the inlined body. - -2014-08-04 Robert Dewar - - * exp_prag.adb, sem_ch7.adb, einfo.adb, sem_prag.adb, sem_util.adb, - exp_ch3.adb: Minor reformatting. - -2014-08-04 Robert Dewar - - * prj-strt.adb, prj-strt.ads, sem_attr.adb: Minor reformatting. - -2014-08-04 Hristian Kirtchev - - * aspects.adb Add an entry in table Canonical_Aspect for - Default_Initial_Condition. - * aspects.ads Add an entry in tables Aspect_Id, Aspect_Argument, - Aspect_Names and Aspect_Delay for Default_Initial_Condition. - * einfo.adb Flag3 is now Has_Default_Init_Cond. Flag132 - is now Is_Default_Init_Cond_ Procedure. Flag133 is now - Has_Inherited_Default_Init_Cond. - (Default_Init_Cond_Procedure): New routine. - (Has_Default_Init_Cond): New routine. - (Has_Inherited_Default_Init_Cond): New routine. - (Is_Default_Init_Cond_Procedure): New routine. - (Set_Default_Init_Cond_Procedure): New routine. - (Set_Has_Default_Init_Cond): New routine. - (Set_Has_Inherited_Default_Init_Cond): New routine. - (Set_Is_Default_Init_Cond_Procedure): New routine. - (Write_Entity_Flags): Output all the new flags. - * einfo.ads New attributes Default_Init_Cond_Procedure, - Has_Inherited_Default_Init_Cond and Is_Default_Init_Cond_Procedure - along with usage in nodes. - (Default_Init_Cond_Procedure): New routine. - (Has_Default_Init_Cond): New routine and pragma Inline. - (Has_Inherited_Default_Init_Cond): New routine and - pragma Inline. - (Is_Default_Init_Cond_Procedure): New routine and - pragma Inline. - (Set_Default_Init_Cond_Procedure): New routine. - (Set_Has_Default_Init_Cond): New routine and pragma Inline. - (Set_Has_Inherited_Default_Init_Cond): New routine and pragma Inline. - (Set_Is_Default_Init_Cond_Procedure): New routine and pragma Inline. - * exp_ch3.adb (Expand_N_Object_Declaration): New constant - Next_N. Generate a call to the default initial condition procedure - if the object's type is subject to the pragma. (Freeze_Type): - Generate the body of the default initial condition procedure or - inherit the spec from a parent type. - * exp_ch7.adb Add with and use clause for Exp_Prag. - (Expand_Pragma_Initial_Condition): Removed. - * exp_prag.ads, exp_prag.adb (Expand_Pragma_Initial_Condition): New - routine. - * par-prag.adb (Prag): Pragma Default_Initial_Condition does - not need special treatment by the parser. - * sem_ch3.adb (Build_Derived_Record_Type): Propagate the - attributes related to pragma Default_Initial_Condition to the - derived type. - (Process_Full_View): Propagate the attributes - related to pragma Default_Initial_Condition to the full view. - * sem_ch7.adb (Analyze_Package_Specification): Build the - declaration of the default initial condition procedure for all - types that qualify or inherit the one from the parent type. - * sem_ch13.adb (Analyze_Aspect_Specifications): - Add processing for aspect Default_Initial_Condition. - (Check_Aspect_At_Freeze_Point): Aspect - Default_Initial_Condition does not require delayed analysis. - (Replace_Type_References_Generic): Moved to spec. - * sem_ch13.ads (Replace_Type_References_Generic): Moved from body. - * sem_prag.adb Add an entry in table Sif_Glags for - Default_Initial_Condition. - (Analyze_Pragma): Pragma - Default_Initial_Condition is now part of assertion - policy. Add processing for pragma Default_Initial_Condition. - (Is_Valid_Assertion_Kind): Pragma Default_Initial_Condition is - now recognized as a proper assertion policy. - * sem_util.ads, sem_util.adb (Build_Default_Init_Cond_Call): New - routine. - (Build_Default_Init_Cond_Procedure_Body): New routine. - (Build_Default_Init_Cond_Procedure_Declaration): New routine. - (Inherit_Default_Init_Cond_Procedure): New routine. - * snames.ads-tmpl Add new predefined name and pragma id for - Default_Initial_Condition. - -2014-08-04 Vincent Celier - - * prj-dect.adb (Parse_Case_Construction): It is no longer - an error if the variable for a case construction is not - typed, only if the variable value is not a single string. Call - Parse_Choice_List and End_Case_Construction with the new parameter - to indicate that the variable is typed. - * prj-strt.adb (End_Case_Construction): Only check the labels - if the variable is typed. If the variable is not typed, - issue a warning when there is no "when others" allternative. - (Parse_Choice_List): Manage the labels only if the variable - is typed. - * prj-strt.ads (End_Case_Construction): New Boolean parameter - String_Type. - (Parse_Choice_List): Ditto. - -2014-08-04 Ed Schonberg - - * sem_ch5.adb: Additional fix to Check_Predicate_Use. - -2014-08-04 Vincent Celier - - * projects.texi: Update documentation of case constructions with - variables that are not typed. - -2014-08-04 Ed Schonberg - - * sem_ch8.adb (Build_Class_Wide_Wrapper): If the operator carries - an Eliminated pragma, indicate that the wrapper is also to be - eliminated, to prevent spurious errors when using gnatelim on - programs that include box-initialization of equality operators - (consequence of AI05-071).. - -2014-08-04 Robert Dewar - - * checks.adb (Activate_Overflow_Check): Handle floating-point - case correctly. - * checks.ads (Activate_Overflow_Check): Clarify handling of - floating-point cases. - * exp_util.adb (Check_Float_Op_Overflow): Reset Do_Overflow_Check - flag if we generate an explicit overflow check (for - Check_Float_Overflow mode). - -2014-08-04 Robert Dewar - - * prj-proc.adb, prj-part.adb, prj-strt.adb, prj.adb, prj.ads, - prj-attr.adb, prj-attr.ads: Minor reformatting. - -2014-08-04 Yannick Moy - - * expander.adb (Expand): Always perform special - expansion in GNATprove mode, even when doing pre-analysis. - -2014-08-04 Thomas Quinot - - * repinfo.adb (List_Scalar_Storage_Order): List bit order if - not default. Also list bit order if SSO is specified. Do not - assume that bit order is always equal to scalar storage order. - -2014-08-04 Thomas Quinot - - * freeze.adb (Set_SSO_From_Default): Do not set scalar storage - order to reverse SSO for a type that has an explicit native - Bit_Order. - -2014-08-04 Doug Rupp - - * cal.c: Macro check for VxWorks7. - * init.c (getpid): Likewise. - * mkdir.c (__gnat_mkdir): Likewise. - * sysdep.c (__gnat_is_file_not_found_error): Likewise. - -2014-08-04 Gary Dismukes - - * exp_ch3.adb (Expand_N_Object_Declaration): Inhibit generation - of an invariant check in the case where No_Initialization is set, - since the object is uninitialized. - -2014-08-04 Thomas Quinot - - * snames.ads-tmpl (Default_Scalar_Storage_Order): Now an attribute - name, in addition to a pragma name. - * snames.adb-tmpl (Get_Pragma_Id, Is_Configuration_Pragma_Name, - Is_Pragma_Name): Adjust accordingly. - * sem_attr.ads, sem_attr.adb, exp_attr.adb - (Attribute_Default_Scalar_Storage_Order): Add handling of new - attribute. - * gnat_rm.texi: Document the above. - -2014-08-04 Arnaud Charlet - - * exp_util.adb (Check_Float_Op_Overflow): No-op in codepeer - mode for now, to revert to previous behavior. - * checks.adb: Revert previous change, no longer needed. - -2014-08-04 Robert Dewar - - * gnat1drv.adb (Adjust_Global_Switches): Don't set - Check_Float_Overflow if Machine_Oveflows_On_Target is True. - * sem_prag.adb (Analyze_Pragma, case Check_Float_Overflow): Don't - set Check_Float_Overflow if Machine_Oveflows_On_Target is True. - * switch-c.adb (Scan_Front_End_Switches): Don't set - Check_Float_Overflow if Machine_Oveflows_On_Target is True. - -2014-08-04 Vincent Celier - - * prj-attr.adb: Add new default indications for - attributes Object_Dir, Exec_Dir, Source_Dirs and Target. - (Attribute_Default_Of): New function (Initialize): Set the - default for those attributes that have one specified. - * prj-attr.ads (Attribute_Data): New component Default. - * prj-proc.adb (Expression): Take into account the new defaults - for attributes Object_Dir, Exec_Dir and Source_Dirs. - * prj-strt.adb (Attribute_Reference): Set the default for - the attribute. - * prj-tree.ads, prj-tree.adb (Default_Of): New function. - (Set_Default_Of): New procedure. - * prj.adb (The_Dot_String): New global Name_Id variable, - initialized in procedure Initialize. - (Dot_String): New function - (Initialize): Initialize The_Dot_String. - (Reset): Create the string list Shared.Dot_String_List. - * prj.ads (Attribute_Default_Value): New enumeration type. - (Project_Qualifier): Change enumeration value Dry to Abstract_Project. - (Dot_String): New function. - (Shared_Project_Tree_Data): New string list component Dot_String_List. - * projects.texi: Document new defaults for attribute Object_Dir, - Exec_Dir and Source_Dirs. - -2014-08-04 Robert Dewar - - * sem_ch12.adb: Minor reformatting. - -2014-08-04 Arnaud Charlet - - * exp_util.adb, checks.adb (Check_Float_Op_Overflow): Add special - expansion in CodePeer_Mode. - (Selected_Range_Checks): Add handling of overflow checks in - CodePeer_Mode. - -2014-08-04 Robert Dewar - - * exp_attr.adb (Expand_N_Attribute_Reference, case Pred): - Remove special test for Float'First, no longer required. - (Expand_N_Attribute_Reference, case Succ): Remove special test - for Float'First, no longer required. - * s-fatgen.adb (Pred): return infinity unchanged. - (Succ): ditto. - -2014-08-04 Claire Dross - - * sem_ch12.adb (Analyze_Associations): Defaults should only be - used if there is no explicit match. - * exp_util.adb (Get_First_Parent_With_Ext_Axioms_For_Entity): - Also check for pragma external_axiomatization on generic units. - -2014-08-04 Robert Dewar - - * checks.adb (Activate_Overflow_Check): Remove - Check_Float_Overflow processing. - (Apply_Scalar_Range_Check): Ditto. - (Generate_Range_Check): Ditto. - * exp_ch4.adb (Expand_N_Op_Add): Add call to - Check_Float_Op_Overflow. - (Expand_N_Op_Divide): ditto. - (Expand_N_Op_Multiply): ditto. - (Expand_N_Op_Subtract): ditto. - * exp_util.ads, exp_util.adb (Check_Float_Op_Overflow): New procedure. - * sem_attr.adb (Analyze_Attribute, case Pred): Make sure - Do_Range_Check is set for floating-point case in -gnatc or - GNATprove mode. - (Analyze_Attribute, case Succ): Make sure - Do_Range_Check is set for floating-point case in -gnatc or - GNATprove mode. - * sem_res.adb (Resolve_Type_Conversion): Make sure Do_Range_Check - flag is set for real to integer conversion in GNATprove or - -gnatc mode. - -2014-08-04 Gary Dismukes - - * sem_ch13.adb (Analyze_Aspect_Specifications): Resolve - the expression of an Import or Export aspect as type Boolean - and require it to be static. Add ??? comment. Also, set the - Is_Exported flag when appropriate. - -2014-08-04 Robert Dewar - - * exp_ch4.adb: Minor reformatting. - * exp_attr.adb: Minor reformatting. - -2014-08-04 Thomas Quinot - - * s-fatgen.ads, s-fatgen.adb (S, P): New visible type declarations - (Unaligned_Valid): Remove now unused subprogram. - * exp_attr.adb (Expand_N_Attribute_Reference, case - Attribute_Valid): If the prefix is in reverse SSO or potentially - unaligned, copy it using a byte copy operation to a temporary - variable. - * einfo.adb: Minor comment fix. - -2014-08-04 Hristian Kirtchev - - * freeze.adb (Freeze_Entity): Do not freeze formal subprograms. - -2014-08-04 Robert Dewar - - * s-imgrea.adb (Image_Floating_Point): Don't add space before +Inf. - * s-fatgen.adb (Pred): Handle Float'First. - (Succ): Handle Float'Last. - -2014-08-04 Ed Schonberg - - * sem_util.adb (Is_Potentially_Unevaluated): If the original - node of a parent node in the tree is a short-circuit operation, - the node is potentially unevaluated. - -2014-08-04 Robert Dewar - - * sem_res.adb (Resolve_Type_Conversion): Set Do_Range_Check on - conversion from a real type to an integer type. - -2014-08-04 Yannick Moy - - * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, sem_ch7.adb, sem_ch9.adb, - sem_ch12.adb, sem_util.adb, sem_util.ads, sem_res.adb, sem_attr.adb, - exp_ch6.adb, sem_ch4.adb, restrict.adb, restrict.ads, sem_ch6.adb, - sem_ch8.adb, sem_ch11.adb: Update some subprogram names to refer to - SPARK_05 instead of SPARK. - -2014-08-04 Robert Dewar - - * sem.ads: Minor reformatting. - * sem_ch13.adb (Analyze_Aspect_External_Or_Link_Name): Minor - reformatting. - (Analyze_Aspect_Specifications, case Convention): Put External_Name - before Link_Name when constructing pragma. - -2014-08-04 Yannick Moy - - * sem.adb, sem.ads (In_Default_Expr): Global flag that is set - to True during analysis of a default component expression. - (Semantics): Save and restore In_Default_Expr around analysis. - * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration): - Call new wrapper Preanalyze_Default_Expression. - (Preanalyze_Default_Expression): New wrapper on - Preanalyze_Spec_Expression which sets and restores In_Default_Expr. - * sem_res.adb (Resolve_Call): Mark calls inside default - expressions as not inlined in GNATprove mode. - -2014-08-04 Robert Dewar - - * exp_ch4.adb: Minor reformatting. - -2014-08-04 Olivier Hainque - - * link.c: remove const on __gnat_objlist_file_supported for AIX - -2014-08-04 Robert Dewar - - * sem_util.ads: Minor addition of comment. - -2014-08-04 Vincent Celier - - * prj-dect.adb (Check_Package_Allowed): Allow package IDE in - all projects, including aggregate and aggregate library projects. - -2014-08-04 Yannick Moy - - * back_end.adb (Call_Back_End): Do not call gigi in GNATprove mode. - -2014-08-04 Robert Dewar - - * sem_eval.adb (Test_In_Range): Always in range for - Is_Known_Valid target type, where input type has smaller or - equal size and does not have biased rep. - -2014-08-04 Ed Schonberg - - * sem_attr.adb (Eval_Attribute): Constrained is not treated as - a static attribute, and the Static flag must not be set on it - during resolution. It may be constant-folded during expansion, - but if expansion is disabled it is not a static expression. - -2014-08-04 Hristian Kirtchev - - * sem_ch8.adb (Build_Class_Wide_Wrapper): Mark the primitive as - referenced once resolution has taken place. - -2014-08-04 Gary Dismukes - - * exp_ch4.adb (Expand_N_Type_Conversion): Don't - compare access levels in the case where the target type is the - anonymous type of an access discriminant, since the level of - such types is defined based on context. Add comment. - -2014-08-04 Hristian Kirtchev - - * sem_ch8.adb (Build_Class_Wide_Wrapper): Handle various special - cases related to equality. Remove the special processing - for dispatching abstract subprograms as it is not needed. - (Interpretation_Error): Add a specialized error message for - predefined operators. - (Is_Intrinsic_Equality): New routine. - (Is_Suitable_Candidate): New routine. - -2014-08-04 Gary Dismukes - - * checks.adb: Minor comment reformatting. - -2014-08-04 Ed Schonberg - - * restrict.adb (Check_Restriction): For checked max_parameter - restrictions reset Violated flag, so that subsequent violations - are properly detected. - -2014-08-04 Robert Dewar - - * sem_ch3.adb (Check_Initialization): Fix bad test of GNATprove - mode. - (Process_Discriminants): Fix bad test of GNATprove mode - -2014-08-04 Hristian Kirtchev - - * sem_ch12.adb (Instantiate_Formal_Subprogram): - Move variable to their own section. Propagate the source - location of a formal parameter to the corresponding formal of - the subprogram renaming declaration. Code reformatting. - -2014-08-04 Arnaud Charlet - - * g-trasym-vms-ia64.adb, g-trasym-vms-alpha.adb: Removed. - -2014-08-04 Ed Schonberg - - * exp_aggr.adb (Expand_Array_Aggregate): Do not attempt expansion - if error already detected. We may reach this point in spite of - previous errors when compiling with -gnatq, to force all possible - errors (this is the usual ACATS mode). - -2014-08-04 Gary Dismukes - - * checks.adb (Generate_Range_Check): For the case of converting - a base type with a larger range to a smaller target subtype, only - use unchecked conversions of bounds in the range check followed - by conversion in the case where both types are discrete. In other - cases, convert to the target base type and save in a temporary - followed by the range check. - (Convert_And_Check_Range): New procedure factoring code to save - conversion to a temporary followed by a range check (called two - places in Generate_Range_Check). - * exp_ch4.adb (Expand_N_Type_Conversion): Relax previous - check-in, to generate range checks for conversions between - any floating-point types rather than limiting it to matching - base types. - -2014-08-02 Trevor Saunders - - * gcc-interface/trans.c: Use hash_set instead of pointer_set. - -2014-08-01 Ed Schonberg - - * restrict.adb (Update_Restrictions): For restrictions with a - maximum parameter (e.g. number of protected entries in Ravenscar) - do not compute the maximum of the violation over several objects, - because the restriction is per-object. - (Check_Restriction): After possible message, reset the value - of of a checked max_parameter restriction to zero, to prevent - cascaded errors. - * sem_ch3.adb (Build_Derived_Private_Type): Use base of parent - (sub)type to determine whether derived type should be on the - list of private dependents of a type whose full view may become - visible subsequently. - -2014-08-01 Olivier Hainque - - * gcc-interface/Make-lang.in (ADA_TOOLS_FLAGS_TO_PASS, native): use - $(CXX) instead of ../../xg++ to feed CXX. - (CXX_LFLAGS): Remove. Now unused as the proper flags - are expected to be included in the CXX variable. - -2014-08-01 Pierre-Marie Derodat - - * gcc-interface/decl.c (elaborate_expression_1): Return the new - variable when debug info is needed and the expression is not - constant. Tag as external only new variables that are global. - (gnat_to_gnu_entity): Call it after the GNU declaration is saved. - * gcc-interface/trans.c (Attribute_to_gnu): Do not cache - attributes for IN array parameters when their actual subtype - needs debug info. - (Compilation_Unit_to_gnu): Call it to process all remaining nodes. - * gcc-interface/gigi.h (process_deferred_decl_context): New. - * gcc-interface/utils.c (gnat_write_global_declarations): Do not - emit debug info for ignored global declarations. - (struct deferred_decl_context_node, - add_deferred_decl_context, add_deferred_type_context, - compute_deferred_decl_context, defer_or_set_type_context, - deferred_decl_context_queue, get_debug_scope, - get_global_context, process_deferred_decl_context): New. - (gnat_pushdecl): Re-implement the DECL_CONTEXT and TYPE_CONTEXT - computation machinery to rely on the GNAT Scope attribute. - -2014-08-01 Eric Botcazou - - * gcc-interface/utils2.c (build_simple_component_ref): Add guard. - -2014-08-01 Robert Dewar - - * sem_ch8.adb, opt.ads Minor comment updates. - -2014-08-01 Hristian Kirtchev - - * exp_intr.adb (Expand_Unc_Deallocation): Request a renaming - from the side effects removal machinery. - * exp_util.adb (Duplicate_Subexpr): Add formal parameter - Renaming_Req. Update the nested call to Remove_Side_Effects. - (Duplicate_Subexpr_No_Checks): Add formal parameter - Renaming_Req. Update the nested call to Remove_Side_Effects. - (Duplicate_Subexpr_Move_Checks): Add formal parameter - Renaming_Req. Update the nested call to Remove_Side_Effects. - (Remove_Side_Effects): Add formal parameter Renaming_Req. Generate - an object renaming declaration when the caller requests it. - * exp_util.ads (Duplicate_Subexpr): Add formal - parameter Renaming_Req. Update comment on usage. - (Duplicate_Subexpr_No_Checks): Add formal parameter Renaming_Req. - (Duplicate_Subexpr_Move_Checks): Add formal parameter - Renaming_Req. - -2014-08-01 Bob Duff - - * gnat_ugn.texi: Minor updates. - -2014-08-01 Robert Dewar - - * atree.adb: Minor reformatting. - -2014-08-01 Ed Schonberg - - * exp_aggr.adb (Init_Hidden_Discriminants): If some ancestor is a - private extension, get stored constraint, if any, from full view. - -2014-08-01 Robert Dewar - - * opt.ads (No_Elab_Code_All_Pragma): New global variable. - * sem_ch10.adb (Check_No_Elab_Code_All): New procedure - (Analyze_Compilation_Unit): Call Check_No_Elab_Code_All - (Analyze_Subunit_Context): Call Check_No_Elab_Code_All. - * sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All): - Remove code for checking with's, now in sem_ch10.adb, set - Opt.No_Elab_Code_All_Pragma. - -2014-08-01 Eric Botcazou - - * sem_ch3.adb (Copy_And_Build): Copy the declaration for - access types as well and adjust the subtype mark if there are - no constraints. - -2014-08-01 Robert Dewar - - * sem_eval.adb (Test_In_Range): Return Unknown if error posted. - -2014-08-01 Robert Dewar - - * sem_ch3.adb, einfo.ads, exp_ch4.adb: Code clean ups. - -2014-08-01 Eric Botcazou - - * einfo.ads (Has_Private_Ancestor): Remove obsolete usage. - * exp_ch4.adb (Expand_Composite_Equality): Add conversion - of the actuals in the case of untagged record types too. - * sem_ch3.adb (Build_Full_Derivation): New procedure to create the - full derivation of a derived private type, extracted from... - (Copy_And_Build): In the case of record types and most - enumeration types, copy the original declaration. Build the - full derivation according to the approach extracted from... - (Build_Derived_Private_Type): ...here. Call Build_Full_Derivation - to create the full derivation in all existing cases and also - create it in the no-discriminants/discriminants case instead of - deriving directly from the full view. - (Is_Visible_Component): Remove obsolete code. - * sem_aggr.adb (Resolve_Record_Aggregate): Likewise. - -2014-08-01 Arnaud Charlet - - * fe.h (GNAT_Mode): New. - * gcc-interface/decl.c (gnat_to_gnu_entity): Do not error out on - reverse SSO in GNAT mode. - -2014-08-01 Thomas Quinot - - * freeze.adb: Minor reformatting. - -2014-08-01 Thomas Quinot - - * exp_ch3.adb (Default_Initialize_Object): Do not generate - default initialization for an imported object. - -2014-08-01 Olivier Hainque - - * seh_init.c (__gnat_map_SEH): Cast argument of IsBadCodePtr - to the expected FARPROC type instead of void *. - * adaint.c (f2t): Expect __time64_t * as second argument, in line with - other datastructures. - (__gnat_file_time_name_attr): Adjust accordingly. - (__gnat_check_OWNER_ACL): Declare pSD as PSECURITY_DESCRIPTOR, - in line with uses. - (__gnat_check_OWNER_ACL): Declare AccessMode - parameter as ACCESS_MODE instead of DWORD, in line with callers - and uses. - (__gnat_set_executable): Add ATTRIBUTE_UNUSED on mode, - unused on win32. Correct cast of "args" on call to spawnvp. - (add_handle): Cast realloc calls into their destination types. - (win32_wait): Remove declaration and initialization of unused variable. - (__gnat_locate_exec_on_path): Cast alloca calls - into their destination types. - * initialize.c (append_arg, __gnat_initialize): Cast xmalloc calls into - their destination types. - -2014-08-01 Gary Dismukes - - * exp_ch4.adb (Expand_N_Type_Conversion): Expand - range checks for conversions between floating-point subtypes - when the target and source types are the same. - -2014-08-01 Robert Dewar - - * exp_aggr.adb: Minor reformatting. - -2014-08-01 Eric Botcazou - - * sem_ch13.adb (Check_Indexing_Functions): Initialize - Indexing_Found. - -2014-08-01 Arnaud Charlet - - * gnat1drv.adb (Gnat1drv): In gnatprove mode, we now write the - ALI file before we call the backend (so that gnat2why can append - to it). - -2014-08-01 Thomas Quinot - - * exp_pakd.adb (Expand_Bit_Packed_Element_Set, - Expand_Packed_Element_Reference): Pass additional Rev_SSO - parameter indicating whether the packed array type has reverse - scalar storage order to the s-pack* Set/Get routines. - * s-pack*.ad* (Get, Set, GetU, SetU): New formal Rev_SSO - indicating reverse scalar storage order. - -2014-08-01 Robert Dewar - - * sem_ch3.adb (Check_Initialization): Set Do_Range_Check - for initial component value in -gnatc or GNATprove mode. - (Process_Discriminants): Same fix for default discriminant values. - * sem_eval.adb (Test_In_Range): Improve accuracy of results by - checking subtypes. - -2014-08-01 Robert Dewar - - * sinfo.ads: Minor comment clarification. - -2014-08-01 Hristian Kirtchev - - * sem_ch13.adb (Analyze_Aspect_Specifications): Code - reformatting. Store the generated pragma Import in the related - subprogram as routine Wrap_Imported_Subprogram will need it later. - * sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): An item of - a private type with discriminants is considered to fall in the - category of unconstrained or tagged items. - -2014-08-01 Arnaud charlet - - * s-os_lib.adb (Open_Append): New functions to open a file for - appending. This binds to the already existing (but not used) - __gnat_open_append. - * osint.ads, osint.adb (Open_File_To_Append_And_Check): New procedure - to open a file for appending. - * osint-c.ads, osint-c.adb (Open_Output_Library_Info): New procedure - to open the ALI file for appending. - -2014-08-01 Robert Dewar - - * sem_ch8.adb: Minor reformatting. - -2014-08-01 Yannick Moy - - * sem_ch13.adb (Insert_Pragma): Add special case for precondition - pragmas from aspects, which need to be inserted in proper order. - -2014-08-01 Ed Schonberg - - * exp_aggr.adb (Expand_Record_Aggregate, Init_Hidden_Discriminants): - Handle properly a type extension that constrains a discriminated - derived type that renames other discriminants of an ancestor. - -2014-08-01 Thomas Quinot - - * s-pack06.adb, s-pack10.adb, s-pack03.ads, s-pack12.adb, s-pack14.ads, - s-pack25.adb: Fix minor inconsistencies and typos. - -2014-08-01 Hristian Kirtchev - - * sem_ch8.adb (Analyze_Subprogram_Renaming): Alphabetize - globals and move certain variables to the "local - variable" section. Call Build_Class_Wide_Wrapper when - renaming a default actual subprogram with a class-wide actual. - (Build_Class_Wide_Wrapper): New routine. - (Check_Class_Wide_Actual): Removed. - (Find_Renamed_Entity): Code reformatting. - (Has_Class_Wide_Actual): Alphabetize. Change the - logic of the predicate as the renamed name may not necessarely - denote the correct subprogram. - -2014-08-01 Eric Botcazou - - * sem_ch7.adb: Fix minor oversight in condition. - -2014-08-01 Bob Duff - - * projects.texi: Minor documentation improvements. - -2014-08-01 Robert Dewar - - * aspects.ads, aspects.adb: Add aspect No_Elaboration_Code_All. - * gnat_rm.texi: Document No_Elaboration_Code_All pragma and aspect. - * lib-load.adb: Initialize No_Elab_Code_All field. - * lib-writ.adb: Initialize No_Elab_Code_All. - * lib.ads, lib.adb: New field No_Elab_Code_All. - * par-prag.adb: Add dummy entry for pragma No_Elaboration_Code_All. - * restrict.ads, restrict.adb: Restriction No_Elaboration_Code_All no - longer exists. - * sem_ch10.adb (Analyze_Context): Processing for - No_Elaboration_Code_All removed. - (Generate_Parent_References): Moved to Sem_Util. - * sem_prag.adb: Add processing for pragma No_Elaboration_Code_All. - * sem_util.ads, sem_util.adb (Get_Parent_Entity): Moved here from - Sem_Ch10. - * snames.ads-tmpl: Add entry for pragma No_Elaboration_Code_All. - * targparm.adb: Minor comment updates Add comments on ignoring - pragma No_Elaboration_Code_All. - -2014-08-01 Nicolas Roche - - * adaint.c (__gnat_set_close_on_exec): Ensure that - we can unset "close_on_exec" flag. - -2014-08-01 Ed Schonberg - - * exp_ch9.adb (Build_Wrapper_Spec, Replicate_Formals): When building - the parameter specs of the wrapper program for a primitive operation - of a synchronized type that implements an interface, copy the - null_exclusion indicator as well. - -2014-08-01 Robert Dewar - - * sem_eval.ads: Minor reformatting. - -2014-08-01 Eric Botcazou - - * exp_ch3.adb (Build_Initialization_Call): Call Underlying_Type - to go down the chain of private derivations. - * freeze.adb (Freeze_Entity): Fix typo in comment. - -2014-08-01 Ed Schonberg - - * sem_ch3.adb (Access_Type_Declaration): If designated type is - a limited view, create a master entity (as is already done for - class-wide types) in case the full view designates a type that - contains tasks. - * sem_ch8.adb (Find_Selected_Component): If prefix is a dereference - and the designated type is a limited view, use the non-limited - view if available. - -2014-08-01 Eric Botcazou - - * gcc-interface/ada-tree.h (DECL_BY_DESCRIPTOR_P): Delete. - (DECL_FUNCTION_STUB): Likewise. - (SET_DECL_FUNCTION_STUB): Likewise. - (DECL_PARM_ALT_TYPE): Likewise. - (SET_DECL_PARM_ALT_TYPE): Likewise. - (TYPE_VAX_FLOATING_POINT_P): Delete. - (TYPE_DIGITS_VALUE): Likewise. - (SET_TYPE_DIGITS_VALUE): Likewise. - * gcc-interface/gigi.h (standard_datatypes): Remove ADT_malloc32_decl. - (malloc32_decl): Delete. - (build_vms_descriptor): Likewise. - (build_vms_descriptor32): Likewise. - (fill_vms_descriptor): Likewise. - (convert_vms_descriptor): Likewise. - (TARGET_ABI_OPEN_VMS): Likewise. - (TARGET_MALLOC64): Likewise. - * gcc-interface/decl.c (add_parallel_type_for_packed_array): New. - (gnat_to_gnu_entity): Call it to add the original type as a parallel - type to the implementation type of a packed array type. - : Remove now obsolete kludge. - : Delete obsolete comment. - : Small tweak. - : Remove support for stub subprograms, as well as - for the descriptor passing mechanism. - (gnat_to_gnu_param): Likewise. - * gcc-interface/misc.c (gnat_init_gcc_fp): Remove special case. - (gnat_print_type): Adjust. - * gcc-interface/trans.c (gigi): Remove obsolete initializations. - (vms_builtin_establish_handler_decl): Delete. - (gnat_vms_condition_handler_decl): Likewise. - (establish_gnat_vms_condition_handler): Likewise. - (build_function_stub): Likewise. - (Subprogram_Body_to_gnu): Do not call above functions. - (Call_to_gnu): Remove support for the descriptor passing mechanism. - * gcc-interface/utils.c (make_descriptor_field): Delete. - (build_vms_descriptor32): Likewise. - (build_vms_descriptor): Likewise. - (fill_vms_descriptor): Likewise. - (convert_vms_descriptor64): Likewise. - (convert_vms_descriptor32): Likewise. - (convert_vms_descriptor): Likewise. - * gcc-interface/utils.c (unchecked_convert): Likewise. - * gcc-interface/utils2.c (maybe_wrap_malloc): Remove obsolete stuff. - -2014-08-01 Eric Botcazou - - * gcc-interface/trans.c (gigi): Use gnat_to_gnu_type for the exception - type and get_unpadded_type for the longest FP type. - (Attribute_to_gnu) : Compare the precision of the types. - (convert_with_check): Adjust formatting and remove FIXME. - -2014-08-01 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : - Do not convert the RM bounds to the base type. - (E_Floating_Point_Subtype): Likewise. - (E_Array_Subtype): Convert the bounds to the base type. - * gcc-interface/trans.c (get_type_length): New function. - (Attribute_to_gnu) : Call it. - : Likewise. - (Loop_Statement_to_gnu): Convert the bounds to the base type. - (gnat_to_gnu) : Likewise. - * gcc-interface/utils.c (make_type_from_size): Do not convert the RM - bounds to the base type. - (create_range_type): Likewise. - (convert): Convert the bounds to the base type for biased types. - * gcc-interface/utils2.c (compare_arrays): Convert the bounds to the - base type. - -2014-08-01 Eric Botcazou - - * gcc-interface/trans.c (gnat_to_gnu) : Remove - incorrect implicit type derivation. - * gcc-interface/utils.c (max_size) : Convert the bounds - to the base type. - -2014-08-01 Hristian Kirtchev - - * sem_attr.adb (Analyze_Attribute): Preanalyze and resolve the - prefix of attribute Loop_Entry. - * sem_prag.adb (Analyze_Pragma): Verify the placement of pragma - Loop_Variant with respect to an enclosing loop (if any). - (Contains_Loop_Entry): Update the parameter profile and all - calls to this routine. - * sem_res.adb (Resolve_Call): Code reformatting. Do not ask - for the corresponding body before determining the nature of the - ultimate alias's declarative node. - -2014-08-01 Robert Dewar - - * gnat1drv.adb, sem_ch4.adb: Minor reformatting. - -2014-08-01 Robert Dewar - - * sem_eval.adb (Rewrite_In_Raise_CE): Don't try to reuse inner - constraint error node since it is a list member. - -2014-08-01 Robert Dewar - - * sem_warn.adb: Minor reformatting. - -2014-08-01 Eric Botcazou - - * einfo.adb (Underlying_Type): Return the underlying full view - of a private type if present. - * freeze.adb (Freeze_Entity): - Build a single freeze node for partial, full and underlying full - views, if any. - * gcc-interface/decl.c (gnat_to_gnu_entity) : Add a - missing guard before the access to the Underlying_Full_View. - * gcc-interface/trans.c (process_freeze_entity): Deal with underlying - full view if present. - * gcc-interface/utils.c (make_dummy_type): Avoid superfluous work. - -2014-08-01 Ed Schonberg - - * sem_res.adb (Resolve_Entry_Call): When an entry has - preconditions, the entry call is wrapped in a procedure call - that incorporates the precondition checks. To prevent a double - expansion, with possible duplication of extra formals, that - procedure call must only be pre-analyzed and resolved. Expansion - takes place upon return to the caller Resolve_Call. - -2014-08-01 Hristian Kirtchev - - * sem_res.adb (Resolve_Call): Do not perform - GNATprove-specific inlining while within a generic. - -2014-08-01 Ed Schonberg - - * sem_ch4.adb (Analyze_Case_Expression): Handle properly a - case expression with incompatible alternatives, when the first - alternative is overloaded. - -2014-08-01 Ed Schonberg - - * sem_res.adb (Check_Parameterless_Call): Use Relocate_Node - to create the name of the parameterless call, rather than - New_Copy, to preserve the tree structure when the name is a - complex expression, e.g. a selected component that denotes a - protected operation, whose prefix is itself a selected component. - -2014-08-01 Ed Schonberg - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Use - Unit_Declaration_Node to retrieve body when inlining, to handle - properly subprogram child units. - -2014-08-01 Robert Dewar - - * sem_attr.adb: Minor reformatting. - -2014-08-01 Vincent Celier - - * debug.adb: Minor documentation addition for -dn switch. - -2014-08-01 Robert Dewar - - * sem_aggr.adb, exp_ch9.adb, sem_prag.adb, sem_util.adb, - sem_attr.adb, sem_eval.ads, sem_cat.adb, sem_ch13.adb: Improve - documentation of Is_Static_Expression vs Is_OK_Static_Expression. - In several places, use the Is_OK version as suggested by the spec. - -2014-08-01 Vincent Celier - - * gnatcmd.adb: Revert last change which was not correct. - -2014-08-01 Hristian Kirtchev - - * freeze.adb (Find_Constant): Ensure that the constant being - inspected is still an object declaration (i.e. not a renaming). - -2014-08-01 Ed Schonberg - - * sem_ch5.adb (Analyze_Loop_Parameter_Specification): a) - An attribute_reference to Loop_Entry denotes an iterator - specification: its prefix is an object, as is the case for 'Old. - b) If the domain of iteration is an expression whose type has - the Iterable aspect defined, this is an iterator specification. - -2014-08-01 Robert Dewar - - * gnatcmd.adb: Minor reformatting. - -2014-08-01 Robert Dewar - - * atree.ads (Info_Messages): New counter. - * err_vars.ads: Minor comment update. - * errout.adb (Delete_Warning_And_Continuations): Deal - with new Info_Messages counter. - (Error_Msg_Internal): ditto. - (Delete_Warning): ditto. - (Initialize): ditto. - (Write_Error_Summary): ditto. - (Output_Messages): ditto. - (To_Be_Removed): ditto. - * erroutc.adb (Delete_Msg): Deal with Info_Messages counter. - (Compilation_Errors): ditto. - * errutil.adb (Error_Msg): Deal with Info_Messages counter. - (Finalize): ditto. - (Initialize): ditto. - * sem_prag.adb (Analyze_Pragma): Minor comment addition. - * gnat_ugn.texi: Document that -gnatwe does not affect info - messages. - -2014-08-01 Robert Dewar - - * debug.adb: Document debug switch -gnatd.Z. - * sem.adb (Semantics): Force expansion on in no or configurable - run time mode. - -2014-08-01 Ed Schonberg - - * sem_ch5.adb (Analyze_Loop_Parameter_Specification): An - unchecked conversion denotes an iterator specification. Such a - conversion will be inserted in the context of an inlined call - when needed, and its argument is always an object. - -2014-08-01 Robert Dewar - - * make.adb, makeutl.ads: Minor reformatting. - * debug.adb, opt.ads: Clarify documentation of Front_End_Inlining and - Back_End_Inlining. - -2014-08-01 Tristan Gingold - - * gnatcmd.adb (GNATCmd): Set AAMP_On_Target using command name. - -2014-08-01 Javier Miranda - - * gnat1drv.adb (Adjust_Global_Switches): Reverse meaning of - -gnatd.z. - * debug.adb: Updating documentation. - * exp_ch6.adb (Expand_Call): Remove assertion. - -2014-08-01 Robert Dewar - - * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, sem_util.adb, - sem_res.adb: Minor reformatting. - -2014-08-01 Vincent Celier - - * make.adb (Initialize): Set Keep_Temporary_Files to True when - -dn is specified. - * makeusg.adb: Add line for new switch --keep-temp-files. - * makeutl.ads (Keep_Temp_Files_Option): New constant String. - * opt.ads (Keep_Temporary_Files): Document that it is also used - by gnatmake and gprbuild. - * switch-m.adb: Recognize new switch --keep-temp-files. - -2014-08-01 Tristan Gingold - - * sem_ch9.adb (Analyze_Task_Type_Declaration): Move code from ... - * exp_ch9.adb (Make_Task_Create_Call): ... here. - -2014-08-01 Vincent Celier - - * gnat1drv.adb: Do not try to get the target parameters when - invoked with -gnats. - -2014-08-01 Hristian Kirtchev - - * exp_ch7.adb (Find_Last_Init): Nothing to do for an object - declaration subject to No_Initialization. - -2014-08-01 Ed Schonberg - - * sem_aggr.adb (Resolve_Array_Aggregate): Reject choice that - is a subtype with dynamic predicates, or a non-static subtype - with predicates. - * sem_ch3.adb (Analyze_Number_Declaration): Reject qualified - expression if subtype has a dynamic predicate. - (Constrain_Index): Reject subtype indication if subtype mark - has predicates. - (Inerit_Predicate_Flags): Inherit Has_Predicates as well. - (Make_Index): If index is a subtype indication, itype inhereits - predicate flags for subsequent testing. - * sem_ch5.adb (Analyze_Loop_Parameter_Specification): New - procedure Check_Predicate_Use, to reject illegal uses of domains - of iteration that have dynamic predicates. - * sem_res.adb (Resolve_Slice): Reject slices given by a subtype - indication to which a predicate applies. - * sem_util.adb (Bad_Predicated_Subtype_Use): Add guard to - prevent cascaded errors when subtype is invalid. - -2014-08-01 Robert Dewar - - * sem_ch10.adb: Minor reformatting. - -2014-08-01 Ed Schonberg - - * sem_ch6.adb (Same_Generic_Actual): Make function symmetric, - because either type may be a subtype of the other. - -2014-08-01 Vincent Celier - - * makeusg.adb: Add documentation for debug switch -dn. - -2014-08-01 Ed Schonberg - - * sem_dim.adb (Process_Minus, Process_Divide): Label dimension - expression with standard operator and type, for pretty-printing - use, when in ASIS_Mode. When generating code dimensional analysis - is not involved and dimension expressions are handled statically, - and other operators are resolved in the usual way. - -2014-08-01 Ed Schonberg - - * sem_ch3.adb (Build_Derived_Record_Type): Remove setting of - Parent_Subtype in ASIS mode, leads to several failures. - * sem_ch4.adb (Analyze_Selected_Component): In an instance, - if the prefix is a type extension, check whether component is - declared in the parent type, possibly in a parent unit. Needed - in ASIS mode when Parent_Subtype is not set. - -2014-08-01 Robert Dewar - - * sem_prag.adb: Minor reformatting. - * s-regpat.adb: Minor reformatting. - * sem_ch3.adb (Analyze_Object_Declaration): Do not set - Treat_As_Volatile on constants. - -2014-08-01 Tristan Gingold - - * exp_ch9.adb (Make_Task_Create_Call): Improve error message. - -2014-08-01 Ed Schonberg - - * sem_ch10.adb (Analyze_Compilation_Unit): Do not place a - warning on a with_clause created for the renaming of a parent - unit in an explicit with_clause. - -2014-08-01 Ed Schonberg - - * sem_ch13.adb (Analyze_Aspect_Specifications, case Aspect_Import): - Set Is_Imported flag at once, to simplify subsequent legality - checks. Reject the aspect on an object whose declaration has an - explicit initial value. - * sem_prag.adb (Process_Import_Or_Interface): Use original node - to check legality of an initial value for an imported entity. - Set Is_Imported flag in case of error to prevent cascaded errors. - Do not set the Is_Imported flag if the pragma comes from an - aspect, because it is already done when analyzing the aspect. - -2014-08-01 Emmanuel Briot - - * g-regpat.adb (Parse): Add support for non-capturing parenthesis. - -2014-08-01 Robert Dewar - - * sem_ch7.adb, einfo.adb, einfo.ads, sem_ch13.adb: Minor change of - identifier name. - -2014-08-01 Hristian Kirtchev - - * sem_ch3.adb (Analyze_Object_Contract): Enable the volatility - checks when the related variable comes from source. - * sem_res.adb (Resolve_Actuals): Enable the volatility checks - when the related actual parameter comes from source. Update comment. - * freeze.adb (Freeze_Record_Type): Do not freeze the designated - type of an array of pointers when the designated type is - class-wide and its root type is the record being currently frozen. - -2014-08-01 Ed Schonberg - - * sem_ch5.adb (Analyze_Iterator_Specification): Preserve Ekind - of renaming declaration created for domain of iteration. - * sem_aggr.adb (Resolve_Array_Aggregate): Better placement - for error messages on aggregates whose index subtypes have - predicates. The new placement avoids posting messages on previous - subtype declarations rather than on the aggregate itself. - * sem_disp.adb (Is_Inherited_Public_Operation): New predicate for - Add_Dispatching_Operation, to handle properly the overriding of - the predefined operations on controlled types, when the partial - view of a type is not visibly controlled. - -2014-08-01 Ben Brosgol - - * gnat_ugn.texi: Add tutorial on portable fixed-point types as an - appendix. - -2014-08-01 Hristian Kirtchev - - * einfo.adb (Is_Hidden_Non_Overridden_Subprogram): Remove the - assertion check as the attribute is defined for all entities. - (Set_Is_Hidden_Non_Overridden_Subprogram): Remove the assertion - check as the attribute is defined for all entities. - * einfo.ads Update the documentation of attribute - Is_Hidden_Non_Overridden_Subprogram. - * sem_ch7.adb (Install_Package_Entity): No need to check the - entity kind of the Id. - * sem_ch13.adb (Hide_Matching_Homograph): Update the comment on - usage. Ensure that the homographs are of the same entity kind - and not fully conformant. - (Hide_Non_Overridden_Subprograms): Update the comment on usage. - -2014-08-01 Robert Dewar - - * inline.adb: Minor code reorganization. - * sem_ch12.adb, s-tasdeb.ads: Minor reformatting. - -2014-08-01 Robert Dewar - - * inline.adb, s-os_lib.ads: Minor reformatting. - -2014-08-01 Arnaud Charlet - - * s-tasdeb.ads, s-tasdeb.adb (Master_Hook, Master_Completed_Hook): New. - * s-tassta.adb (Task_Wrapper, Vulnerable_Complete_Master): Call new - hooks. - -2014-08-01 Yannick Moy - - * inline.adb (Cannot_Inline): Issue info message instead of - warning for subprograms not inlined in GNATprove mode. - * sem_res.adb (Resolve_Call): Take body into account for deciding - whether subprogram can be inlined in GNATprove mode or not. - -2014-08-01 Claire Dross - - * exp_util.ads (Get_First_Parent_With_Ext_Axioms_For_Entity): Renaming - of Get_First_Parent_With_External_Axiomatization_For_Entity for - shorter. - * sem_ch12.adb (Analyze_Associations): Only call Build_Wrapper - for parameters of packages with external axiomatization. - -2014-08-01 Robert Dewar - - * sem_res.adb: Minor comment addition. - -2014-08-01 Arnaud Charlet - - * s-crtl.ads, i-cstrea.ads, adaint.c, adaint.h, osint.adb, - s-fileio.adb (__gnat_fopen, __gnat_freopen): Remove vms_form parameter, - no longer used. - * s-os_lib.ads: Minor reformatting. - -2014-08-01 Arnaud Charlet - - * exp_attr.adb (Is_Inline_Floating_Point_Attribute): Restore more - completely previous code since only GCC back-ends are prepared - to handle e.g. 'Machine attribute. - * targparm.adb, targparm.ads: Remove remaining refs and - handling of OpenVMS_On_Target, VAX_Float_On_Target and - RTX_RTSS_Kernel_Module_On_Target. - * hostparm.ads (OpenVMS, Max_Debug_Name_Length): Removed, - no longer used. - -2014-08-01 Robert Dewar - - * exp_dist.adb, exp_attr.adb: Minor reformatting. - * sem_ch3.adb, mlib-tgt-specific-hpux.adb, a-direct.ads, - a-synbar-posix.adb, exp_ch9.adb, sem_ch10.adb, sem_prag.adb, - sem_ch12.adb, sem.ads, sem_res.adb, s-exctra.adb, s-soflin.ads, - g-alveop.ads, sem_ch8.adb, vxaddr2line.adb, sem_cat.ads: Remove - improper use of shall. - -2014-08-01 Robert Dewar - - * sem_aggr.adb, exp_atag.adb, layout.adb, nlists.adb, nlists.ads, - exp_attr.adb, exp_ch9.adb, par-ch12.adb, exp_aggr.adb, - exp_ch3.adb: Minor reformatting & code reorganization. - -2014-08-01 Robert Dewar - - * gnat_rm.texi: Remove VMS specific rules for pragma Ident. - * Makefile.rtl, adaint.c, gnat_rm.texi, s-asthan.adb, s-asthan.ads, - s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads, - s-po32gl.adb, s-po32gl.ads, s-vaflop.adb, s-vaflop.ads, s-vmexta.adb, - s-vmexta.ads, sem_vfpt.adb, sem_vfpt.ads, socket.c: Remove VMS specific - code. - * gcc-interface/decl.c, gcc-interface/Makefile.in, - gcc-interface/Make-lang.in: Ditto. Also remove refs to rTX. - -2014-08-01 Pascal Obry - - * s-os_lib.ads: Rename File_Size to Large_File_Size. - -2014-08-01 Robert Dewar - - * a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads, - a-numaux-darwin.adb, a-numaux-darwin.ads, a-numaux.ads, - a-numaux-libc-x86.ads: Fix bad package header comments. - * elists.ads, elists.adb (Append_New_Elmt): New procedure. - * gnat_rm.texi, a-calend.adb, gnatcmd.adb, einfo.adb, einfo.ads, - checks.adb, sem_prag.adb, sem_prag.ads, rtsfind.ads, freeze.adb, - sem_util.adb, sem_attr.adb, exp_dbug.adb, exp_dbug.ads, gnat1drv.adb, - targparm.adb, targparm.ads, exp_ch6.adb, switch-b.adb, s-shasto.ads, - stand.ads, s-auxdec.ads, opt.adb, opt.ads, mlib-tgt.ads, s-fatgen.adb, - s-fatgen.ads, system.ads, snames.ads-tmpl, s-stalib.ads, - s-os_lib.adb: Remove VMS-specific code. - -2014-08-01 Arnaud Charlet - - * exp_attr.adb (Is_Inline_Floating_Point_Attribute): Revert to - previous state in CodePeer_Mode. - -2014-08-01 Robert Dewar - - * hostparm.ads: Put back definition of OpenVMS as False to aid - the transition process. - * sem_ch7.adb: Minor reformatting. - * prj-env.adb: Minor code fix. - * gnat_rm.texi: Complete previous change. - * sem_ch3.adb: Minor reformatting. - * sem_ch6.adb: Minor reformatting. - * sem_elab.adb: Minor reformatting. - * exp_strm.adb: Complete previous change. - -2014-08-01 Vincent Celier - - * sem_warn.adb (Warn_On_Unreferenced_Entity): Do not issue a - warning when a constant is unreferenced and its type has pragma - Unreferenced_Objects. - -2014-08-01 Hristian Kirtchev - - * einfo.adb: Flag2 is now known as - Is_Hidden_Non_Overridden_Subprogram. - (Is_Hidden_Non_Overridden_Subprogram): New routine. - (Set_Is_Hidden_Non_Overridden_Subprogram): New routine. - (Write_Entity_Fields): Output Flag2. - * einfo.ads: New attribute Is_Hidden_Non_Overridden_Subprogram - along with occurrences in entities. - (Is_Hidden_Non_Overridden_Subprogram): New routine and pragma Inline. - (Set_Is_Hidden_Non_Overridden_Subprogram): New routine - and pragma Inline. - * sem_ch7.adb (Install_Package_Entity): Do not enter implicitly - declared non-overriden homographs into visibility. - * sem_ch13.adb (Freeze_Entity_Checks): Hide all - implicitly declared non-overriden homographs. - (Hide_Non_Overridden_Subprograms): New routine. - -2014-08-01 Robert Dewar - - * snames.ads-tmpl, s-os_lib.adb, s-os_lib.ads, s-fileio.adb: Remove - VMS-specific code. - * prj-conf.adb: Minor reformatting. - * xr_tabls.adb (Read_File): Restore code which was enabled on - non VMS platforms before. - * prj-env.adb (Initialize_Default_Project_Path): Ditto. - * sem_ch5.adb: Minor reformatting. - * lib-writ.adb, lib-writ.ads, bindgen.adb, sem_vfpt.adb, - sem_vfpt.ads, ali.adb, ali.ads, opt.ads, bcheck.adb, exp_strm.adb: - Remove VMS-specific code. - -2014-08-01 Vincent Celier - - * make.adb (Await_Compile): Remove loop that was only needed - for VMS. - -2014-08-01 Robert Dewar - - * a-calcon.ads, a-direct.adb, a-dirval-mingw.adb, a-dirval.adb, - a-dirval.ads, a-except-2005.adb, a-excpol-abort.adb, - a-numaux-darwin.ads, a-numaux.ads, bindgen.adb, bindusg.adb, - einfo.adb, einfo.ads, err_vars.ads, errout.ads, errutil.adb, - exp_ch3.adb, exp_ch4.adb, exp_ch7.adb, exp_ch7.ads, fname-uf.adb, - fname.adb, fname.ads, freeze.adb, g-debpoo.adb, g-dirope.ads, - g-excact.ads, g-expect.ads, g-socket.adb, g-socket.ads, g-sothco.ads, - g-traceb.ads, gnat_rm.texi, gnatlink.adb, gnatls.adb, i-cstrea.adb, - krunch.adb, krunch.ads, layout.adb, lib-util.adb, make.adb, - mlib.adb, osint-b.adb, osint-b.ads, osint-c.adb, osint.adb, - osint.ads, output.ads, par.adb, prj-conf.adb, prj-env.adb, - prj-makr.adb, prj-nmsc.adb, prj.adb, prj.ads, repinfo.adb, rtsfind.adb, - rtsfind.ads, s-excmac-gcc.ads, s-fatgen.adb, s-mastop.ads, - s-parame-ae653.ads, s-parame-hpux.ads, s-parame-vxworks.ads, - s-parame.ads, s-soflin.ads, s-stoele.adb, s-tasini.adb, - s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-mingw.ads, - s-taspri-posix-noaltstack.ads, s-taspri-posix.ads, - s-taspri-solaris.ads, s-taspri-vxworks.ads, s-trasym.ads, - sem_ch12.adb, sem_ch4.adb, sem_eval.adb, sem_intr.adb, sem_mech.adb, - sem_mech.ads, sem_prag.adb, sem_res.adb, sem_util.adb, sem_util.ads, - sinfo.adb, sinfo.ads, sinput-c.adb, symbols.ads, targparm.adb, - treepr.adb, types.ads, xr_tabls.adb, xr_tabls.ads: Remove VMS - specific code and comments. - -2014-08-01 Ed Schonberg - - * sem_ch5.adb (Analyze_Iterator_Specification): New procedure - Check_Reverse_Iteration, to verify the legality of the Reverse - indicator on various container types, and to detect illegal - reverse iterations on containers that only supoort forward - iteration. - -2014-08-01 Vincent Celier - - * gnatcmd.adb: Remove the VMS specific stuff. Integrate in - procedure GNATCmd the relevant declarations from packages VMS_Cmds - and VMS_Conv. - * gnatcmd.ads: Update comments to remove any trace of VMS - -2014-08-01 Ed Schonberg - - * sem_ch12.adb: sem_ch12.adb (Build_Wrapper): Capture entity for - defaulted actual that is an operator, before building wrapper - for it in GNATprove mode. Restrict construction of wrapper to - actuals that are operators. - -2014-08-01 Vincent Celier - - * vms_conv.adb, vms_conv.ads, vms_data.ads, vms_cmds.ads: Remove VMS - specific packages no longer needed. - -2014-08-01 Pascal Obry - - * s-os_lib.ads (System.CRTL): Move with clause to body. - (File_Size): New type. - (File_Length64): Use it. - (File_Length): Restore previous spec returning a Long_Integer. - * s-os_lib.adb (System.CRTL): Move with clause here. - -2014-08-01 Vincent Celier - - * mlib-prj.adb: Update comments to remove any mention of VMS. - -2014-08-01 Arnaud Charlet - - * ug_words, xgnatugn.adb, gcc-interface/Make-lang.in: Remove - xgnatugn.adb and ug_words. - -2014-08-01 Eric Botcazou - - * exp_attr.adb (Expand_N_Attribute_Reference): Check whether - expansion can be avoid for Machine, Model and Rounding. - (Is_Inline_Floating_Point_Attribute): Return true for Machine - & Model, as well as Rounding if wrapped in a conversion to an - integer type. - * sem_res.adb (Simplify_Type_Conversion): Deal with Rounding as well. - * gcc-interface/gigi.h (fp_arith_may_widen): Declare. - * gcc-interface/utils.c (fp_arith_may_widen): New global variable. - * gcc-interface/misc.c (enumerate_modes): Compute it. - * gcc-interface/trans.c (FP_ARITH_MAY_WIDEN): Delete. - (lvalue_required_for_attribute_p): Deal with Descriptor_Size, - Machine and Model. - (Attribute_to_gnu) : New case. - ): Likewise. - (convert_with_check): Test - fp_arith_may_widen variable. - -2014-08-01 Pascal Obry - - * adaint.h (GNAT_FOPEN): New definition for Windows. - (GNAT_OPEN): Likewise. - (GNAT_STAT): Likewise. - (GNAT_FSTAT): Likewise. - (GNAT_LSTAT): Likewise. - (GNAT_STRUCT_STAT): Likewise. - * adaint.c (__gnat_stat): Fix computation of file size for - Windows. - -2014-08-01 Vincent Celier - - * Makefile.rtl: Minor comment update. - -2014-08-01 Vincent Celier - - * Make-generated.in: Remove dependencies for vms-help. - -2014-08-01 Gary Dismukes - - * makeutl.ads, opt.ads: Minor grammar fixes. - * makeutl.adb: Minor code reorganization. - -2014-08-01 Arnaud Charlet - - * gcc-interface/Makefile.in, gcc-interface/Make-lang.in, - gnatsym.adb: Remove gnatsym (VMS only tool). - -2014-08-01 Ben Brosgol - - * gnat_ugn.texi, projects.texi, xgnatugn.adb: Removed all VMS - conditionalization from gnat_ugn.texi and projects.texi, and updated - (considerably simplified) xgnatugn.adb, to be removed soon. - -2014-08-01 Vincent Celier - - * debug.adb: Remove doc for gnatmake/gprbuild switch -ds. - * make.adb (List_Bad_Compilations): Use Opt.No_Exit_Message - instead of Debug.Debug_Flag_S. - * makeutl.adb (Finish_Program, Fail_Program): Use Opt flag - No_Exit_Message instead of Debug.Debug_Flag_S to suppress exit - error messages. - * makeutl.ads (No_Exit_Message_Option): New constant string - for switch --no-exit-message. - * opt.ads (No_Exit_Message): New Boolean flag, defaulted to False. - * switch-m.adb (Scan_Make_Switches): Recognize new switch - --no-exit-message. - -2014-08-01 Arnaud Charlet - - * exp_vfpt.adb, exp_vfpt.ads: Removed, no longer used. - * gcc-interface/Make-lang.in: Remove exp_vfpt.o - -2014-08-01 Javier Miranda - - * inline.ads (Inlined_Calls, Backend_Calls, - Backend_Inlined_Subps, Backend_Not_Inlined_Subps): Declarations - moved to inline.adb (Cannot_Inline): Update documentation. - (Check_And_Build_Body_To_Inline): Renamed. - (List_Inlining_Info): Subprogram moved here from package exp_ch6. - * inline.adb (Check_Inlining_Restrictions): New local variable. - (Inlined_Calls, Backend_Calls, Backend_Inlined_Subps, - Backend_Not_Inlined_Subps): Declarations moved here - from inline.ads (Number_Of_Statements): Removed. - (Remove_Pragmas): Avoid duplicated version of this subprogram. - (Build_Body_To_Inline): Code cleanup. - (Build_Body_To_Inline.Has_Excluded_Statament): Removed. - (Check_And_Build_Body_To_Inline): Renamed. Code cleanup. - (Check_Body_To_Inline): Removed. - (Generate_Body_To_Inline): Renamed as Generate_Subprogram_Body. - (Has_Excluded_Declaration): No action if not - Check_Inlining_Restrictions. - (Has_Excluded_Statement): No action if not Check_Inlining_Restrictions. - (Initialize): Initialize the lists of inlined calls and subprograms. - (List_Inlining_Info): Subprogram moved here from package exp_ch6. - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Update call - to Check_And_Build_Body_To_Inline since it has been renamed as - Check_And_Split_Unconstrained_Function - * exp_ch6.ad[sb] (List_Inlining_Info): Subprogram moved to - package inline. - * gnat1drv.adb Update call to Inline.List_Inlining_Info. - -2014-08-01 Vincent Celier - - * debug.adb: Add documentation for new debug switch -ds. - * make.adb (List_Bad_Compilations): Do not issue any message - when switch -ds is specified. - * makeutl.adb (Fail_Program): Do not issue any message when - -ds is specified. - (Finish_Program): Ditto. - -2014-08-01 Robert Dewar - - * s-exnint.adb, s-exnint.ads, s-wwdwch.ads, s-carsi8.ads, - s-casi32.ads, indepsw.adb, a-timoau.ads, s-explli.adb, s-explli.ads, - s-casi16.ads, s-powtab.ads, g-wistsp.ads, a-ztmoau.adb, - indepsw-gnu.adb, s-imgllb.ads, types.adb, gnat.ads, s-proinf.adb, - indepsw-aix.adb, s-caun64.ads, s-imgllw.ads, s-traces-default.adb, - s-vxwork-x86.ads, s-expllu.adb, s-exnlli.adb, s-exnlli.ads, - s-traces.adb, widechar.ads, stand.adb, s-expint.adb, - s-tratas-default.adb, s-expint.ads, s-geveop.ads, s-caun32.ads, - s-expuns.adb, s-mantis.adb, s-mantis.ads, s-caun16.ads, s-tasinf.adb, - s-memcop.ads, s-dsaser.ads, s-imgbiu.ads, a-szmzco.ads, g-strspl.ads, - s-casi64.ads, g-zstspl.ads, indepsw-mingw.adb, tree_io.adb, - s-boarop.ads, uname.ads, s-fore.adb, s-fore.ads, g-timsta.adb, - g-timsta.ads, s-assert.adb, s-vector.ads, s-tratas.adb, - s-tratas.ads: Minor fix to copyright notices. - -2014-08-01 Eric Botcazou - - * sinfo.ads: Remove long obsolete comment. -2014-08-01 Ed Schonberg - - * sem_util.adb: Add guard to setting of No_Predicate_On_Actual. - * sem_ch3.adb: Minor reformatting. - -2014-08-01 Pascal Obry - - * cstreams.c: Only enable large file support on know supported - platforms. Add missing defines/includes. - -2014-08-01 Ed Schonberg - - * einfo.ads, einfo.adb New flags No_Predicate_On_Actual and - No_Dynamic_Predicate_On_Actual, to enforce the generic contract - on generic units that contain constructs that forbid subtypes - with predicates. - * sem_ch3.adb (Analyze_Subtype_Declaration, Process_Subtype): - Inherit flags indicating the presence of predicates in subtype - declarations with and without constraints. - (Inherit_Predicate_Flags): Utility for the above. - * sem_util.adb (Bad_Predicated_Subtype_Use): In a generic context, - indicate that the actual cannot have predicates, and preserve - warning. In an instance, report error if actual has predicates - and the construct appears in a package declaration. - * sem_ch12.adb (Diagnose_Predicated_Actual): Report error - for an actual with predicates, if the corresponding formal - carries No_Predicate_On_Actual or (in the case of a loop) - No_Dynamic_Predicate_On_Actual. - * sem_ch13.adb (Build_Predicate_Functions); Do not build a - Static_Predicate function if the type is non-static (in the - presence of previous errors), - * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Set flag - No_Dynamic_Predicate_On_Actual in a generic context, to enforce - generic contract on actuals that cannot have predicates. - -2014-08-01 Pascal Obry - - * a-direct.adb (C_Size): Returns an int64. - * osint.adb (System.CRTL): New with clause. - (File_Length.Internal): Returns an int64. - * s-os_lib.ads (File_Length): Returns an int64. - -2014-08-01 Robert Dewar - - * gnatchop.adb, gnatcmd.adb, make.adb, mlib-prj.adb, bindgen.adb, - mlib.ads, butil.adb, clean.adb, binde.adb, gnatls.adb, gnatname.adb, - osint.adb, krunch.adb: Minor reformatting. - -2014-08-01 Robert Dewar - - * inline.adb, inline.ads, fe.h, einfo.adb, einfo.ads, sem_util.adb, - sem_util.ads, exp_ch4.adb, exp_ch11.adb, exp_ch6.adb, cstand.adb, - sem_mech.adb, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb, snames.ads-tmpl: - Remove VMS-specific code. - * gcc-interface/decl.c, gcc-interface/trans.c: Ditto. - -2014-08-01 Arnaud Charlet - - * binde.adb, bindgen.adb, butil.adb, clean.adb, gnatbind.adb, - gnatchop.adb, gnatcmd.adb, gnatls.adb, gnatname.adb, krunch.adb, - make.adb, makeutl.adb, memtrack.adb, mlib-prj.adb, mlib.adb, - mlib.ads, tempdir.adb: Remove VMS handling. - -2014-08-01 Pascal Obry - - * adaint.h, adaint.c (__gnat_file_length): Returns an __int64. - (__gnat_named_file_length): Likewise. - (__gnat_file_length_attr): Likewise. - * a-direct.adb (C_Size): Use size_t as returned type. - * osint.adb (File_Length): Adjust spec for Internal routine - (returns size_t). - * s-os_lib.adb (File_Length): Now returns a CRTL.size_t. - (System.CRTL): With claused moved to spec. - * s-os_lib.ads (System.CRTL): With clause moved to here. - -2014-08-01 Pascal Obry - - * adaint.h, adaint.c (__gnat_open): Added. - * s-crtl.ads (open): Import __gnat_open for large file support. - -2014-08-01 Robert Dewar - - * sem_case.adb (Dup_Choice): Improve message for integer constants. - -2014-08-01 Arnaud Charlet - - * gnatlink.adb: Remove special handling of VMS, RTX and JVM. - -2014-08-01 Pascal Obry - - * adaint.h (GNAT_OPEN): Defines as open64 where supported. - * adaint.c (GNAT_OPEN): Uses new macro where needed. - -2014-07-31 Eric Botcazou - - * gcc-interface/utils.c (lookup_and_insert_pad_type): New function - extracted from... - (maybe_pad_type): ...here. Call it to canonicalize the pad type. - * gcc-interface/gigi.h: Update comment. - -2014-07-31 Javier Miranda - - * debug.adb Remove documentation of -gnatd.k (no longer needed). - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Code cleanup. - * inline.ads (Backend_Inlined_Subps): New - Elist. (Backend_Not_Inlined_Subps): New Elist. - (Has_Excluded_Declaration): Declaration previously located in - * inline.adb (Has_Excluded_Statement): Declaration previously - located in inline.adb - * inline.adb (Has_Single_Return): Moved out of - Build_Body_To_Inline to avoid having duplicated code. - (Number_Of_Statements): New subprogram. - (Register_Backend_Inlined_Subprogram): New subprogram. - (Register_Backend_Not_Inlined_Subprogram): New subprogram. - (Add_Inlined_Subprogram): Register backend inlined subprograms and - also register subprograms that cannot be inlined by the backend. - (Has_Excluded_Declaration): Moved out of Build_Body_To_Inline - to avoid having duplicated code. Replace occurrences of - Debug_Flag_Dot_K by Back_End_Inlining. - * sem_res.adb (Resolve_Call): Code cleanup. - * exp_ch6.adb (Expand_Call): Complete previous patch. Replace - occurrence of Debug_Flag_Dot_K by Back_End_Inlining. - (List_Inlining_Info): Add listing of subprograms passed to the - backend and listing of subprograms that cannot be inlined by - the backend. - * sem_ch12.adb, sem_ch3.adb Replace occurrences of - Debug_Flag_Dot_K by Back_End_Inlining. - -2014-07-31 Robert Dewar - - * nlists.ads: Minor code fix (remove unwise Inline for - List_Length). - -2014-07-31 Arnaud Charlet - - * einfo.adb: Remove VMS specific code. - * exp_attr.adb: Remove VAX specific code. - * set_targ.adb: Remove handling of VAX_Float. - * sem_vfpt.adb: Remove references to Vax_Native. - * sem_attr.adb (Is_VAX_Float): Remove ref to VAX_Native. - -2014-07-31 Robert Dewar - - * sem_ch4.adb: Minor reformatting. - -2014-07-31 Arnaud Charlet - - * gcc-interface/trans.c, gcc-interface/misc.c: Remove references - to VMS. Misc clean ups. - * gcc-interface/Makefile.in (gnatlib-shared-vms): Remove. - -2014-07-31 Robert Dewar - - * cstand.adb, einfo.adb, einfo.ads, errout.adb, exp_attr.adb, - exp_prag.adb, frontend.adb, interfac.ads, - par-prag.adb, s-auxdec.ads, s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, - s-fvaffl.ads, s-fvagfl.ads, s-vaflop.ads, sem_attr.adb, sem_attr.ads, - sem_ch13.adb, sem_ch3.adb, sem_ch8.adb, sem_prag.adb, snames.adb-tmpl, - snames.ads-tmpl: Remove obsolete VMS-specific code. - -2014-07-31 Robert Dewar - - * sem_ch3.adb, sem_ch13.adb: Minor reformatting. - -2014-07-31 Arnaud Charlet - - * a-intnam-linux.ads: Minor: update obsolete comments. - * s-taasde.adb: Minor: fix comment header. - -2014-07-31 Arnaud Charlet - - * s-auxdec-vms-ia64.adb, s-parame-vms-alpha.ads, s-asthan-vms-alpha.adb, - s-tpopde-vms.adb, s-mastop-vms.adb, s-tpopde-vms.ads, s-taprop-vms.adb, - mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads, s-inmaop-vms.adb, - g-enblsp-vms-alpha.adb, s-ransee-vms.adb, s-osprim-vms.adb, - s-osprim-vms.ads, g-socthi-vms.adb, g-socthi-vms.ads, system-vms_64.ads, - s-osinte-vms.adb, s-osinte-vms.ads, g-eacodu-vms.adb, - s-vaflop-vms-alpha.adb, s-parame-vms-ia64.ads, a-dirval-vms.adb, - a-caldel-vms.adb, mlib-tgt-specific-vms-alpha.adb, s-tasdeb-vms.adb, - symbols-vms.adb, a-intnam-vms.ads, g-expect-vms.adb, - symbols-processing-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb, - s-traent-vms.adb, s-traent-vms.ads, i-cstrea-vms.adb, a-numaux-vms.ads, - symbols-processing-vms-ia64.adb, s-interr-vms.adb, s-memory-vms_64.adb, - s-memory-vms_64.ads, g-enblsp-vms-ia64.adb, s-taspri-vms.ads, - s-auxdec-vms_64.ads, s-intman-vms.adb, s-intman-vms.ads, - s-tpopsp-vms.adb, s-asthan-vms-ia64.adb, a-calend-vms.adb, - a-calend-vms.ads, system-vms-ia64.ads, s-auxdec-vms-alpha.adb: Removed. - * namet.h (Is_Non_Ada_Error): Remove. - -2014-07-31 Robert Dewar - - * exp_util.adb, lib-writ.adb, sem_ch12.adb, s-direio.adb: Minor - reformatting. - -2014-07-31 Hristian Kirtchev - - * exp_attr.adb (Expand_Loop_Entry_Attribute): Update the comment - which demonstrates the expansion of while loops subject to - attribute 'Loop_Entry. The condition of a while loop along with - related condition actions is now wrapped in a function. Instead - of repeating the condition, the expansion now calls the function. - -2014-07-31 Ed Schonberg - - * sem_case.adb (Check_Against_Predicate): Correct off-by-one - error when reporting of missing values in a case statement for - a type with a static predicate. - (Check_Choices): Reject a choice given by a subtype to which a - Dynamic_Predicate applies. - * sem_ch3.adb (Analyze_Subtype_Declaration): Inherit - Has_Dynamic_Predicate_Aspect flag from parent. - -2014-07-31 Ed Schonberg - - * sem_ch13.adb (Analyze_Aspect_Specifications): A predicate - cannot apply to a subtype of an incomplete type. - (Is_Static_Choice): Treat an Others_Clause as static. The - staticness of the expression and of the range are checked - elsewhere. - -2014-07-31 Pascal Obry - - * adaint.h (__gnat_ftell64): Added. - (__gnat_fseek64): Added. - (__int64): Added. - * cstreams.c (__int64): Removed. - -2014-07-31 Pascal Obry - - * a-stream.ads (Stream_Element_Offset): Now a signed 64bit type. - * i-cstrea.ads, s-crtl.ads (fseek64): Offset is always a 64bit value. - (ftell64): Always returns a 64bit value. - * cstreams.c (int64): New definition. - (_FILE_OFFSET_BITS): Set to 64 to enable 64bit offset support. - (__gnat_ftell64): Always returns a 64bit value. The implemenation now - uses ftello() on UNIX. - (__gnat_fseek64): Offset is always a 64bit value. The - implementation now uses fseeko() on UNIX. - * a-ststio.adb, s-direio.adb (Set_Position): Simplify code, - always use fseek64 to set the offset. - (Size): Simplify code, always use fseek64/ftell64. - * s-direio.ads (Count): Now an int64. - * g-socket.ads (Vector_Element): Adjust definition for Length - to be a size_t. This matches the C definition and avoid using - a 64bit integer on 32bit platforms now that Count is always 64bit. - * g-socthi-mingw.adb (Ada.Streams): Removed as not used anymore. - (C_Recvmsg): Change some conversion to account for change in - Vector_Element. - (C_Sendmsg): Likewise. - -2014-07-31 Robert Dewar - - * cstand.adb (Create_Standard): Remove handling of -gnatdm flag. - * debug.adb: Remove documentation of -gnatdm flag. - * gnat1drv.adb (Adjust_Global_Switches): Remove handling of - -gnatdm flag. - -2014-07-31 Arnaud Charlet - - * lib-writ.adb (Write_Unit_Information): Fix case where U = - No_Unit. - -2014-07-31 Claire Dross - - * exp_util.adb, exp_util.ads - (Get_First_Parent_With_External_Axiomatization_For_Entity): - New routine to find the first parent of an entity with - a pragma Annotate (GNATprove, External_Axiomatization). - (Has_Annotate_Pragma_For_External_Axiomatization): New function - to check if a package has a pragma Annotate (GNATprove, - External_Axiomatization). - * einfo.ads, einfo.adb (Is_Generic_Actual_Subprogram): New - flag on the entity for the declaration created for a formal - subprogram in an instance. This is a renaming declaration, - or in GNATprove_Mode the declaration of an expression function - that captures the axiomatization of the actual. - * sem_ch6.adb (Analyze_Expression_Function): For a - Generic_Actual_Subprogram, place body immediately after the - declaration because it may be used in a subsequent declaration - in the instance. - * sem_ch12.adb (Build_Wrapper): Add code to handle instances where - the actual is a function, not an operator. Handle functions with - one and two parameters and binary and unary operators. - -2014-07-31 Pascal Obry - - * cstreams.c (__gnat_is_regular_file_fd): Removed. - * adaint.c (__gnat_is_regular_file_fd): Added. - -2014-07-31 Robert Dewar - - * exp_strm.adb: Minor reformatting. - -2014-07-31 Ed Schonberg - - * sem_ch12.adb (Build_Wrapper): New procedure, subsidiary to - Analyze_Associations, to create a wrapper around operators that - are actuals to formal subprograms. This is done in GNATProve - mode in order to propagate the contracts of the operators to - the body of the instance. - -2014-07-31 Ed Schonberg - - * sem_attr.adb (Analyze_Attribute, case 'Old): The reference is - legal if within an aspect specification for a generic subprogram. - -2014-07-31 Javier Miranda - - * gnat1drv.adb (Back_End_Inlining): Set to false if - Suppress_All_Inlining is set. - * debug.adb: Adding documentation for -gnatd.z. - * inline.adb (Add_Inlined_Body): Extend the -gnatn2 - processing to -gnatn1 for calls to Inline_Always routines. - (Add_Inlined_Subprogram): Remove previous patch. - -2014-07-31 Ed Schonberg - - * sem_ch13.adb (Check_One_Function): Apply properly the static - semantic rules for indexing aspects and the functions they denote. - -2014-07-31 Javier Miranda - - * debug.adb: Complete documentation of -gnatd.z. - -2014-07-31 Bob Duff - - * gnat_ugn.texi: Minor doc fixes. - -2014-07-31 Robert Dewar - - * sem_aggr.adb (Resolve_Array_Aggregate): Fix posting of missing - index value. - -2014-07-31 Tristan Gingold - - * s-unstyp.ads (Packed_Byte): Make this type universal aliasing. - (Packed_Bytes1): Make component aliased. - -2014-07-31 Robert Dewar - - * s-unstyp.ads, s-fileio.adb: Minor reformatting. - -2014-07-31 Robert Dewar - - * inline.adb, gnat1drv.adb, exp_ch6.adb, s-fileio.adb: Minor - reformatting. - -2014-07-31 Eric Botcazou - - * gcc-interface/utils2.c ((build_binary_op): Don't set TREE_THIS_NOTRAP - on array references here, now done more selectively in trans.c. - -2014-07-31 Doug Rupp - - * gcc-interface/misc.c (gnat_init_gcc_fp(): Set flag_errno_math to 0. - -2014-07-31 Hristian Kirtchev - - * sem_util.adb (Is_Effectively_Volatile): New routine. - -2014-07-31 Fedor Rybin - - * gnat_ugn.texi: Document --test-duration option for gnattest. - -2014-07-31 Javier Miranda - Eric Botcazou - - * opt.ads (Back_End_Inlining): New variable which controls - activation of inlining by back-end expansion. - * gnat1drv.adb (Adjust_Global_Switches): Initialize Back_End_Inlining - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not build - the body to be inlined by the frontend if Back_End_Inlining - is enabled. - * exp_ch6.adb (Register_Backend_Call): Moved to inline.adb. - (Expand_Call): If backend inlining is enabled let the backend to - handle inlined subprograms. - * inline.ads (Register_Backend_Call): Moved here from exp_ch6 - * inline.adb (Register_Backend_Call): Moved here from exp_ch6. - (Add_Inlined_Subprogram): Add subprograms when Back_End_Inlining is set. - (Must_Inline): Do not return Inline_Call if Back_End_Inlining is - enabled. - * debug.adb Document -gnatd.z - * fe.h Import Back_End_Inlining variable. - * gcc-interface/utils.c (create_subprog_decl): If Back_End_Inlining is - enabled then declare attribute "always inline" - * gcc-interface/decl.c, gcc-interface/trans.c, - gcc-interface/gigi.h: Add handling of Inline_Always pragma. - -2014-07-31 Robert Dewar - - * a-ngelfu.ads: Minor comment fix. - -2014-07-31 Hristian Kirtchev - - * freeze.adb (Freeze_Record_Type): Replace all calls to - Is_SPARK_Volatile with Is_Effectively_Volatile and update - related comments. - * sem_ch3.adb (Analyze_Object_Contract, Process_Discriminants): - Replace all calls to Is_SPARK_Volatile with - Is_Effectively_Volatile and update related comments. - * sem_ch5.adb (Analyze_Iterator_Specification, - Analyze_Loop_Parameter_Specification): Replace all calls to - Is_SPARK_Volatile with Is_Effectively_Volatile and update - related comments. - * sem_ch6.adb (Process_Formals): Replace all calls to - Is_SPARK_Volatile with Is_Effectively_Volatile and update - related comments. - * sem_ch12.adb (Instantiate_Object): Replace the call to - Is_SPARK_Volatile_Object with Is_Effectively_Volatile_Object - and update related comment. - * sem_prag.adb (Analyze_External_Property_In_Decl_Part, - Analyze_Global_Item): Replace all calls to Is_SPARK_Volatile - with Is_Effectively_Volatile and update related comments. - * sem_res.adb (Resolve_Actuals, Resolve_Entity_Name): Replace - all calls to Is_SPARK_Volatile with Is_Effectively_Volatile and - update related comments. - * sem_util.adb (Has_Enabled_Property, - Variable_Has_Enabled_Property): Replace all calls - to Is_SPARK_Volatile with Is_Effectively_Volatile and - update related comments. - (Is_Effectively_Volatile): New routine. - (Is_Effectively_Volatile_Object): New routine. - (Is_SPARK_Volatile): Removed. - (Is_SPARK_Volatile_Object): Removed. - * sem_util.ads (Is_Effectively_Volatile): New routine. - (Is_Effectively_Volatile_Object): New routine. - (Is_SPARK_Volatile): Removed. - (Is_SPARK_Volatile_Object): Removed. - -2014-07-31 Pascal Obry - - * s-fileio.adb (Open): Make sure a shared file gets inserted into - the global list atomically. This ensures that the file descriptor - won't be freed because another tasks is closing the file. - -2014-07-31 Robert Dewar - - * sem_ch3.adb (Process_Range_Expr_In_Decl): Add comments on - generation of _FIRST and _LAST variables even in GNATprove_Mode. - * gnat_ugn.texi: Minor editing. - * sem_prag.adb (Ensure_Aggregate_Form): Make sure generated - aggregate is marked Comes_From_Source if argument is CFS. - -2014-07-31 Pascal Obry - - * s-fileio.adb: Remove obsolete comment. - -2014-07-31 Vincent Celier - - * a-strbou.ads ("=" (Bounded_String, Bounded_String): Add - overriding keyword before function to avoid error when compiler - is called with -gnatyO (check overriding indicators). - -2014-07-31 Tucker Taft - - * gnat_ugn.texi: Add a paragraph pointing the reader - to the "plugins" example. - -2014-07-31 Hristian Kirtchev - - * freeze.adb (Freeze_Expression): Document the - purpose of the parent chain traversal. - -2014-07-31 Robert Dewar - - * checks.ads, checks.adb (Activate_Overflow_Check): Do not set flag for - unconstrained fpt ops. - -2014-07-31 Pascal Obry - - * s-fileio.adb (Open): Make sure a shared file gets inserted into - the global list atomically. This ensures that the file descriptor - won't be freed because another tasks is closing the file. - -2014-07-31 Vincent Celier - - * projects.texi: Minor spelling error fix. - -2014-07-31 Robert Dewar - - * gnat_rm.texi: Document No_Elaboration_Code_All restriction. - * lib-writ.adb, lib-load.adb: Initialize No_Elab_Code field in unit - information. - * lib.ads, lib.adb (No_Elab_Code): New field in unit information. - * restrict.adb (Process_Restriction_Synonyms): Add handling - of No_Elaboration_Code_All. - * restrict.ads (Process_Restriction_Synonyms): Now handles - No_Elaboration_Code_All. - * sem_ch10.adb (Analyze_Context): Enforce transitive with for - No_Elaboration_Code_All. - * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): - Handle setting of No_Elab_Code in unit information. Handle - No_Elaboration_Code_All. - * snames.ads-tmpl (Name_No_Elaboration_Code): New name for - pragma processing. - (Name_No_Elaboration_Code_All): New name for pragma processing. - -2014-07-31 Eric Botcazou - - * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Reject array - types with a null range and use the Esize of the component - instead of its RM_Size to identify appropriate values. - -2014-07-31 Hristian Kirtchev - - * freeze.adb Add with and use clause for Aspects. - (Freeze_Expression): Emit an error when a volatile constant lacks - Boolean aspect Import. - (Has_Boolean_Aspect_Import): New routine. - -2014-07-31 Gary Dismukes - - * exp_util.adb: Minor reformatting. - -2014-07-31 Vincent Celier - - * errutil.adb (Error_Msg): Make sure that all components of - the error message object are initialized. - -2014-07-31 Ed Schonberg - - * sem_ch4.adb (Try_Container_Indexing): If the container type is - class-wide, use specific type to locate iteration primitives. - * sem_ch13.adb (Check_Indexing_Functions): Add legality checks for - rules in RM 4.1.6 (Illegal_Indexing): New diagnostic procedure. - Minor error message reformating. - * exp_ch5.adb (Expand_Iterator_Loop): Handle properly Iterator - aspect for a derived type. - -2014-07-31 Robert Dewar - - * debug.adb: Document debug flag d.X. - -2014-07-31 Ed Schonberg - - * sem_util.ads (Find_Specific_Type): Moved here from exp_disp.adb. - * sem_util.adb (Find_Specific_Type): If type is untagged private, - retrieve full view so that primitive operations can be located. - * exp_disp.adb Move Find_Specific_Type to sem_util. - * exp_ch4.adb (Expand_N_Op_Eq): If operands are class-wide, use - Find_Specific_Type to locate primitive equality. - * exp_util.adb (Make_CW_Equivalent_Type): A class_wide equivalent - type does not require initialization. - * exp_attr.adb (Compile_Stream_Body_In_Scope): Within an instance - body all visibility is established, and the enclosing package - declarations must not be installed. - -2014-07-31 Yannick Moy - - * sem_parg.adb, sem_prag.ads (Collect_Subprogram_Inputs_Outputs): - Make subprogram public. - -2014-07-31 Ed Schonberg - - * exp_ch9.adb (Expand_N_Protected_Type_Declaration): New - predicate Discriminated_Size, to distinguish between private - components that depend on discriminants from those whose size - depends on some other non-static expression. - -2014-07-31 Nicolas Setton - - * g-exptty.adb (Close): Fix binding to Waitpid: use the - tty version. - -2014-07-31 Ed Schonberg - - * sem_ch3.adb (Make_Index): Reject properly the use of 'Length - in a discrete range, when 'range was probably intended. - -2014-07-31 Robert Dewar - - * sem_warn.adb, sem_warn.ads (Has_Junk_Name): Moved from body to spec. - -2014-07-31 Robert Dewar - - * frontend.adb: Minor reformatting. - * sem.adb: Minor reformatting. - * sem_ch6.adb (Analyze_Null_Procedure): Set proper sloc for - identifiers on rewrite. - * par.adb: Minor comment updates. - * a-ngelfu.adb (Cos): Minor simplification. - * par-ch13.adb (Get_Aspect_Specifications): Improve messages - and recovery for bad aspect. - * exp_ch3.adb: Code clean up. - * sem_util.ads: Minor comment correction. - * sem_ch13.adb (Check_Array_Type): Properly handle large types. - * sem_ch3.adb: Code clean up. - * binderr.ads: Minor comment correction. - -2014-07-31 Ed Schonberg - - * exp_disp.adb (Expand_Interface_Conversion): A call whose - prefix is a static conversion to an interface type that is not - class-wide is not dispatching. - -2014-07-31 Robert Dewar - - * inline.adb, s-traceb.adb, s-traceb-hpux.adb, memtrack.adb, - s-traceb-mastop.adb: Minor reformatting. - -2014-07-31 Ed Schonberg - - * exp_ch3.adb (Expand_Record_Extension): In ASIS_Mode perform - expansion, to handle properly visibility of selected components - in instance bodies. - -2014-07-31 Robert Dewar - - * par-ch13.adb (Get_Aspect_Specifications): Set Inside_Depends. - * par-ch2.adb (P_Pragma): Set Inside_Depends. - * par-ch4.adb (P_Simple_Expression): Pass Inside_Depends to - Check_Unary_Plus_Or_Minus. - * scans.ads (Inside_Depends): New flag. - * scng.adb (Scan): Pass Inside_Depends to Check_Arrow. - * style.ads: Add Inside_Depends parameter to Check_Arrow Add - Inside_Depends parameter to Check_Unary_Plus_Or_Minus. - * styleg.adb (Check_Arrow): Handle Inside_Depends case. - (Check_Unary_Plus_Or_Minus): Handle Inside_Depends case. - * styleg.ads: Add Inside_Depends parameter to Check_Arrow Add. - Inside_Depends parameter to Check_Unary_Plus_Or_Minus. - -2014-07-31 Javier Miranda - - * s-vaflop.adb Move the body of function T_To_G before - T_To_D. Required for frontend inlining. - * inline.adb (Has_Excluded_Contract): New subprogram used to - check if a subprogram inlined by the frontend has contracts - which cannot be inlined. - -2014-07-31 Bob Duff - - * s-traceb.adb, s-traceb-hpux.adb, s-traceb-mastop.adb: - (Call_Chain): Add 1 to number of frames to skip, to account for - the fact that there's one more frame on the stack. - * gcc-interface/Makefile.in (s-traceb.o): Adjust rules. - -2014-07-31 Robert Dewar - - * checks.adb (Enable_Overflow_Check): More precise setting of - Do_Overflow_Check flag for division. - -2014-07-31 Eric Botcazou - - * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Reject packed - array types with implementation type. - -2014-07-31 Hristian Kirtchev - - * sem_ch10.adb (Process_State): Remove local variable Name. Add - local variable Decl. Partially declare an abstract state by - generating an entity and storing it in the state declaration. - * sem_prag.adb (Create_Abstract_State): Fully declare a - semi-declared abstract state. - -2014-07-31 Robert Dewar - - * prj-nmsc.adb: Minor reformatting. - -2014-07-31 Bob Duff - - * s-tasdeb.adb (System.Tasking.Debug): Remove - all usage of the secondary stack from this package. - -2014-07-31 Hristian Kirtchev - - * freeze.adb (Freeze_Expression): Update the loop in charge - of finding a proper insertion place for freeze nodes to handle - N_Expression_With_Actions nodes. - -2014-07-31 Robert Dewar - - * sem_util.adb, a-ngelfu.ads, prj-nmsc.adb, prj-conf.adb: Minor - reformatting. - -2014-07-31 Pascal Obry - - * prj-nmsc.adb: Minor reformatting. - -2014-07-31 Ed Schonberg - - * sem_util.adb (Has_Preelaborable_Initialization): Check that - type is tagged before checking whether a user-defined Initialize - procedure is present. - -2014-07-31 Gary Dismukes - - * a-ngelfu.ads (Sqrt): Augment postcondition. - -2014-07-31 Pascal Obry - - * prj-nmsc.adb (Check_Library_Attributes): An aggegate library - directory and ALI directory must be different than all object - and library directories of aggregated projects. - -2014-07-31 Vincent Celier - - * prj-pars.adb, prj-conf.ads, prj-conf.adb (Locate_Runtime): Move spec - to package body, as it is not called from outside. Remove argument - Project_Tree, no longer used. When runtime cannot be found, - call Raise_Invalid_Config instead of failing the program. - -2014-07-31 Robert Dewar - - * bindgen.adb (Gen_Output_File_Ada): Generate pragma Suppress - (Overflow_Check). - * gnatlink.adb (Process_Args): Remove generation of -gnato0, - no longer needed. - -2014-07-31 Robert Dewar - - * gnat_ugn.texi: Document new switch -gnato0. - * sem_ch3.ads: Minor reformatting. - * gnatlink.adb (Process_Args): Compile bind file with -gnato0 - (we do not want overflow checks when incrementing elaboration - counters). - * einfo.ads: Minor reformatting. - -2014-07-31 Robert Dewar - - * exp_ch5.adb, freeze.adb, exp_ch3.adb: Minor comment correction. - * s-arit64.adb: Minor reformatting. - -2014-07-31 Robert Dewar - - * gnat1drv.adb (Adjust_Global_Switches): Default for overflow - checking is enabled except in GNAT_Mode. - * switch-c.adb (Scan_Front_End_Switches): Implement -gnato0 - (suppress overflow checks). - -2014-07-31 Ed Schonberg - - * exp_ch3.adb (Expand_Freeze_Record_Type): Do not build an - invariant procedure for an internally generated subtype that is - created for an object of a class-wide type. - -2014-07-31 Vincent Celier - - * prj-nmsc.adb, errutil.adb: Make code similar to Errout. - -2014-07-31 Gary Dismukes - - * gnat_rm.texi, sem_aux.ads, einfo.ads, sem_util.ads, sem_ch6.adb, - exp_disp.adb: Minor reformatting. - -2014-07-31 Robert Dewar - - * exp_ch5.adb, sem_ch3.adb, exp_ch7.adb, exp_util.adb, exp_ch9.adb, - sem_ch7.adb, checks.adb, s-exctra.adb, exp_ch6.adb, exp_disp.adb, - exp_dist.adb, sem_ch13.adb, exp_strm.adb, exp_ch3.adb: Minor - reformatting. - -2014-07-31 Robert Dewar - - * sem_ch13.adb: Minor reformatting. - -2014-07-31 Ed Schonberg - - * exp_ch3.adb (Build_Invariant_Checks): If the enclosing record - is an unchecked_union, warn that invariants will not be checked - on components that have them. - -2014-07-31 Robert Dewar - - * freeze.adb (Freeze_Entity): Check for error of - Type_Invariant'Class applied to a untagged type. - * sem_ch6.adb (Analyze_Null_Procedure): Unconditionally rewrite - as null body, so that we perform error checks even if expansion - is off. - -2014-07-31 Ed Schonberg - - * sem_ch13.adb (Build_Invariant_Procedure): If body of procedure - is already present, nothing to do. - * exp_ch3.adb (Build_Component_Invariant_Call): For an access - component, check whether the access type has an invariant before - checking the designated type. - (Build_Record_Invariant_Proc): Change suffix of generated - name to prevent ambiguity when record type has invariants - in addition to those of components, and two subprograms are - constructed. Consistent with handling of array types. - (Insert_Component_Invariant_Checks): Build invariant procedure - body when one has not been created yet, in the case of composite - types that are completions and whose full declarations carry - invariants. - -2014-07-30 Thomas Quinot - - * gnat_rm.texi: Minor doc fixes. - -2014-07-30 Robert Dewar - - * a-rbtgbo.adb, sem_ch13.adb: Minor reformatting. - -2014-07-30 Vincent Celier - - * errutil.adb (Set_Msg_Text): Process tilde ('~'): no processing - of error message. - * prj-nmsc.adb (Locate_Directory): Use a tilde ('~') in the - message to report that a directory cannot be created, to avoid - processing of the directory path that may contains special - insertion characters. - -2014-07-30 Ed Schonberg - - * a-crdlli.ads: Place declaration of Empty_List after full type - declaration for Curosr, to prevent freezing error. - -2014-07-30 Robert Dewar - - * get_targ.adb: Minor code reorganization. - * prj-proc.adb, prj-proc.ads, get_targ.ads, sem_ch6.adb: Minor - reformatting. - -2014-07-30 Ed Schonberg - - * a-cbhase.adb: a-cbhase.adb (Insert): Raise Constraint_Error, - not Program_Error, when attempting to remove an element not in - the set. This is the given semantics for all set containers. - -2014-07-30 Ed Schonberg - - * a-rbtgbo.adb (Delete_Node_Sans_Free): If - element is not present in tree return rather than violating - an assertion. Constraint_Error will be raised in the caller if - element is not in the container. - -2014-07-30 Arnaud Charlet - - * set_targ.adb (Read_Target_Dependent_Values): New subprogram. - (elab body): Add provision for default target config file. - * get_targ.ads, get_targ.adb (Get_Back_End_Config_File): New subprogram. - -2014-07-30 Ed Schonberg - - * a-cbhase.adb (Delete): Raise Constraint_Error, not Program_Error, - when attempting to remove an element not in the set. This is - the given semantics for all set containers. - * a-cborse.adb (Delete): Attempt removal first, to check for - tampering, before checking whether this is an attempt to - delete a non-existing element, and in fthe latter case raise - Constraint_Error. - -2014-07-30 Vincent Celier - - * prj-proc.adb (Recursive_Process): Do not create a new - Project_Id if the project is already in the list of projects of - the tree. - -2014-07-30 Ed Schonberg - - * sem_ch6.adb (Analyze_Function_Return): Reject a return expression - whose type is an incomplete formal type. - (Analyze_Return_Type): Reject a return type that is an untagged - imcomplete formal type. - (Process_Formals): Reject a formal parameter whose type is an - untagged formal incomplete type. - * sem_res.adb (Resolve_Actuals): Reject an actual whose type is - an untagged formal incomplete type. - -2014-07-30 Robert Dewar - - * gnat_ugn.texi: Minor spelling correction. - * makeutl.adb: Minor code reorganization. - * exp_ch4.adb, exp_aggr.adb, exp_ch3.adb: Minor reformatting. - -2014-07-30 Robert Dewar - - * einfo.ads (Has_Unchecked_Union): Document that this is used - to check for illegal Valid_Scalars attribute references. - * exp_attr.adb (Build_Record_VS_Func): New function - (Expand_N_Attribute_Reference, case Valid_Scalars): Call this - function. - * gnat_rm.texi: Document 'Valid_Scalars cannot be applied to - Unchecked_Union Add note on 'Valid_Scalars generating a lot - of code. - * sem_attr.adb (Analyze_Attribute, case Valid_Scalars): Give - error on attempt to apply Valid_Scalars to Unchecked_Union type. - -2014-07-30 Steve Baird - - * exp_ch4.adb (Expand_N_Indexed_Component): Disable optimized handling - of A(I..J)(K) in CodePeer_Mode. - -2014-07-30 Ben Brosgol - - * gnat_ugn.texi: Fix typo. - -2014-07-30 Thomas Quinot - - * lib-writ.ads: document format change. - -2014-07-30 Pascal Obry - - * prj-util.adb (For_Interface_Sources): Do not - include sources from withed externally built projects. - -2014-07-30 Robert Dewar - - * lib.adb: Minor reformatting. - * prj-util.adb: Minor reformatting. - -2014-07-30 Ed Schonberg - - * exp_aggr.adb (Build_Record_Aggr_Code): For an array component - that depends on discriminants, and which is given by an others - clause, create an explicit subtype with the discriminant values - of the enclosing aggregate, because the backend cannot otherwise - retrieve the actual bounds of the array. - -2014-07-30 Fedor Rybin - - * gnat_ugn.texi: Improve gnattest documentation. - -2014-07-30 Pascal Obry - - * makeutl.adb (Insert_Project_Sources): Properly handle sources - that are aggregated. We want to include sources not only part - of libraries but also if part of an aggregated project from an - aggregate library. - * prj.adb (For_Project_And_Aggregated_Context): Properly check - state of root project. - -2014-07-30 Thomas Quinot - - * lib-load.ads: Minor reformatting. - * sinfo.ads (Library_Unit): Update comment. - * lib.ads (Notes): Simplify. The Unit component in Notes_Entry - is redundant. Instead used the pragma Node_Id directly as the - element type. - -2014-07-30 Thomas Quinot - - * lib.adb (Store_Note): Store only notes that do not come from - an instance, and that are in the extended main source unit. - * lib-writ (Write_Unit_Information): Annotations from subunits - must be emitted along with those for the main unit, and they - must carry a specific file name. - * ali.ads (Notes_Record): Use a File_Name_Type instead of a - Unit_Id for the source file containing the pragma, as in the - case of annotations from subunits we might not have a readily - available unit id. - * ali.adb (Scan_ALI): Account for above change in data structure. - -2014-07-30 Vincent Celier - - * makeutl.adb (Insert_Project_Sources): When the library project - is an aggregate Stand-Alone Library, insert in the queue the - Ada interface units, with Closure set to True; - -2014-07-30 Eric Botcazou - - * sem_util.adb: Fix minor typo. - * makeutl.adb: Minor reformatting. - -2014-07-30 Robert Dewar - - * exp_ch7.adb, checks.adb, makeutl.adb, makeutl.ads: Minor reformatting. - -2014-07-30 Yannick Moy - - * checks.ads: Fix typo in comment. - -2014-07-30 Pierre-Marie Derodat - - * sem_util.adb (Set_Debug_Info_Needed): For scalar types, recurse on - entities that materialize range bounds, if any. - -2014-07-30 Vincent Celier - - * projects.texi: Minor spelling fix. - -2014-07-30 Hristian Kirtchev - - * checks.adb (Make_Bignum_Block): Use the new secondary stack - build routines to manage the mark. - * exp_ch7.adb (Create_Finalizer, Expand_Cleanup_Actions): - Use the new secodary stack build routines to manage the mark. - (Insert_Actions_In_Scope_Around): Add new formal parameter - Manage_SS along with comment on its usage. Code and comment - reformatting. Mark and release the secondary stack when the - context warrants it. - (Make_Transient_Block): Update the call - to Insert_Actions_In_Scope_Around to account for parameter Manage_SS. - (Wrap_Transient_Declaration): Remove local variable - Uses_SS. Ensure that the secondary stack is marked and released - when the related object declaration appears in a library level - package or package body. Code and comment reformatting. - * exp_util.ads, exp_util.adb (Build_SS_Mark_Call): New routine. - (Build_SS_Release_Call): New routine. - -2014-07-30 Steve Baird - - * exp_attr.adb: Revert previous change, not needed after all. - -2014-07-30 Vincent Celier - - * makeutl.adb (Queue.Insert_Project_Sources): Insert with - Closure => True for interfaces of Stand-Alone Libraries. - * makeutl.ads (Source_Info (Format => Gprbuild)): Add new - Boolean component Closure, defaulted to False. - -2014-07-30 Yannick Moy - - * sem_res.adb: Fix typo in error message. - -2014-07-30 Robert Dewar - - * sem_ch3.adb (Process_Range_Expr_In_Decl): Use _FIRST/_LAST - as name suffixes rather than L/H for subtype bounds. - * tbuild.ads: Minor comment improvements and fixes - (Make_External_Name): Document that suffix can start with an - underscore. - -2014-07-30 Bob Duff - - * gnat_ugn.texi: Document --rep-clauses switch. - -2014-07-30 Ed Schonberg - - * sem_ch13.adb (Analyze_Aspect_Specifications): Default_Value and - Default_Component_Value can only be specified for scalar type or - arrays of scalar types respectively. This legality check must - be performed at the point the aspect is analyzed, in order to - reject aspect specifications that apply to a partial view. - -2014-07-30 Thomas Quinot - - * freeze.adb: Minor reformatting. - -2014-07-30 Robert Dewar - - * exp_attr.adb (Expand_Attribute, case First/Last): Don't expand in - codepeer mode. - -2014-07-30 Ed Schonberg - - * freeze.adb (Check_Expression_Function): At the freeze point - of an expression function, verify that the expression in the - function does not contain references to any deferred constants - that have no completion yet. - (Freeze_Expression, Freeze_Before): call - Check_Expression_Function. - * a-ciorse.ads: Add Reference_Control_Type to detect tampering. - * a-ciorse.adb: Add Adjust and Finalize routines for - Reference_Control_Type. Use it in the construction of Reference - and Constant_Reference values. - -2014-07-30 Robert Dewar - - * exp_aggr.adb: Update comments. - * a-chtgbo.adb, a-chtgbo.ads, a-cbhase.adb, a-cbhase.ads: Minor - reformatting. - -2014-07-30 Robert Dewar - - * cstand.adb (New_Standard_Entity): New version takes name - string to call Make_Name. - (Create_Standard): Use this routine to set name before setting other - fields. - -2014-07-30 Robert Dewar - - * exp_attr.adb (Expand_Attribute, case First): Rewrite simple - entity reference. - (Expand_Attribute, case Last): Ditto. - * exp_ch3.adb (Constrain_Index): New calling sequence for - Process_Range_Expr_In_Decl. - (Expand_N_Object_Declaration): Avoid setting Is_Known_Valid in one - problematical case. - * sem_ch3.adb (Constrain_Index): New calling sequence for - Process_Range_Expr_In_Decl. - (Set_Scalar_Range_For_Subtype): ditto. - (Process_Range_Expr_In_Decl): Create constants to hold bounds for - subtype. - * sem_ch3.ads (Process_Range_Expr_In_Decl): Add Subtyp parameter. - * sem_eval.adb (Compile_Time_Compare): Make sure we use base - types if we are not assuming no invalid values. - -2014-07-30 Robert Dewar - - * clean.adb: Minor reformatting. - * opt.ads: Minor fix to incorrect comment. - -2014-07-30 Ed Schonberg - - * a-chtgbo.ads, a-chtgbo.adb (Delete_Node_At_Index): New - subprogram, used by bounded hashed sets, to delete a node at - a given index, whose element may have been improperly updated - through a Reference_Preserving key. - * a-cbhase.ads: Add Reference_Control_Type to package Generic_Keys. - * a-cbhase.adb: Add Adjust and Finalize routines for - Reference_Control_Type. - (Delete, Insert): Raise Program_Error, not Constraint_Error, - when operation is illegal. - (Reference_Preserving_Key): Build aggregate for Reference_Control_Type - * a-cmbutr.ads: Add Reference_Control_Type to detect tampering. Add - private with_clause for Ada.Finalization. - * a-cbmutr.adb: Add Adjust and Finalize routines for - Reference_Control_Type. Use it in the construction of Reference - and Constant_Reference values. - -2014-07-30 Robert Dewar - - * sem_ch3.adb, sem_ch3.ads: Minor code reorganization. - -2014-07-30 Pascal Obry - - * clean.adb (Clean_Project): Properly check for directory - existence before trying to enter it. - -2014-07-30 Robert Dewar - - * sem_ch3.ads, prj.ads, prj-nmsc.adb: Minor reformatting. - -2014-07-30 Robert Dewar - - * par-ch5.adb (P_Sequence_Of_Statements): Properly handle - missing semicolon after name. - -2014-07-30 Pascal Obry - - * prj.ads (Gprinstall_Flags): New constant. - * prj-nmsc.adb (Check_Library_Attributes): Do not fails for - missing library dir if Directories_Must_Exist_In_Projects - is false. - -2014-07-30 Bob Duff - - * a-except-2005.adb, a-except.adb: Remove obsolete comments. - * s-traceb.ads: Updagte comments. - -2014-07-30 Robert Dewar - - * checks.adb, a-cihase.adb, a-cihase.ads, a-chtgop.adb, a-chtgop.ads, - a-except.adb, a-except-2005.adb, a-cborse.adb, a-cborse.ads, - a-exexda.adb, a-elchha.adb, exp_aggr.adb, a-cohase.adb: Minor - reformatting. - -2014-07-30 Ed Schonberg - - * a-chtgop.ads, a-chtgop.adb (Delete_Node_At_Index): New - subprogram, used by all versions of hashed sets, to delete a node - whose element has been improperly updated through a Reference_ - Preserving key. - * a-cohase.adb: Remove Delete_Node, use new common procedure - Delete_Node_At_Index. - * a-cihase.ads: Add Reference_Control_Type to package Generic_Keys. - * a-cihase.adb: Add Adjust and Finalize routines for - Reference_Control_Type. - (Reference_Preserving_Key): Build aggregate for - Reference_Control_Type - -2014-07-30 Yannick Moy - - * checks.adb, checks.ads (Determine_Range_R): New procedure to - determine the possible range of a floating-point expression. - -2014-07-30 Ed Schonberg - - * a-cborse.ads: Add Reference_Control_Type to package Generic_Keys. - * a-cborse.adb: Add Adjust and Finalize routines for - Reference_Control_Type. - (Reference_Preserving_Key): Build aggregate for - Reference_Control_Type. - (Delete): Check for tampering, and raise Program_Error (not - Constraint_Error) when attempting to delete an element not in - the set. - (Insert): Ditto. - -2014-07-30 Bob Duff - - * a-elchha.adb, a-except-2005.adb, a-except.adb, a-exexda.adb, - * a-exextr.adb, a-exstat.adb, exp_intr.ads, s-tassta.adb: - Exception_Information is used to produce useful debugging - information for the programmer. However, it was also used to - implement the stream attributes for type Exception_Occurrence. The - latter requires a stable and portable interface, which meant - that we couldn't include a symbolic traceback. A separate set of - routines was used to provide symbolic tracebacks under program - control (i.e. not automatically). The goal of this ticket is - to provide such automatic tracebacks, so the change here is to - split the two functionalities: Exception_Information gives the - maximally useful information for debugging (i.e. it now includes - a symbolic traceback when a decorator is set, and it can be - improved freely in the future without disturbing streaming). - Untailored_Exception_Information always uses hexadecimal addresses - in the traceback, has a stable and portable output, and is now - used for streaming. - -2014-07-30 Eric Botcazou - - * exp_aggr.adb (Expand_Array_Aggregate): Add missing test - on the target of the assignment to find out whether it - can be directly done by the back-end. - * exp_util.adb (Is_Possibly_Unaligned_Slice): Remove obscure test. - -2014-07-30 Robert Dewar - - * inline.adb, a-coorse.adb, a-coorse.ads, a-cohase.adb, a-cohase.ads, - a-tasatt.adb: Minor reformatting. - -2014-07-30 Robert Dewar - - * exp_ch4.adb: Minor reformatting. - -2014-07-30 Ed Schonberg - - * a-coorse.adb, a-coorse.ads (Generic_Keys): Add a - Reference_Control_Type to generic package, to keep additional - information for Reference_Types that manipulate keys. Add Adjust and - Finalize procedures for this type. - (Finalize): When finalizing a reference_preserving_key, verify - that the key of the new value is equivalent to the key of the - original element, raise Program_Error otherwise. - (Insert): Detect tampering. - (Reference_Preserving_Key): Build proper Reference_Control_Type, - and update Busy and Lock bits to detect tampering. - * a-cohase.ads: Keep with-clause private. - -2014-07-30 Hristian Kirtchev - - * exp_ch4.adb (Expand_N_Op_Eq): Emit a warning when the operands - of an equality are of an Unchecked_Union type and lack inferable - discriminants. - -2014-07-30 Bob Duff - - * g-exctra.adb, g-exctra.ads, s-exctra.adb, s-exctra.ads, Makefile.rtl, - g-trasym.adb, g-trasym.ads, s-trasym.adb, s-trasym.ads: Move - GNAT.Traceback.Symbolic and GNAT.Exception_Traces into the System - hierarchy (System.Traceback.Symbolic and System.Exception_Traces), so - we can call them from the runtimes. Leave renamings in place under GNAT. - -2014-07-30 Yannick Moy - - * inline.adb (Check_And_Build_Body_To_Inline): Include code for - inlining in GNATprove mode. - -2014-07-30 Ed Schonberg - - * a-cohase.adb, a-cohase.ads (Generic_Keys): Add a - Reference_Control_Type to generic package, to keep additional - information for Reference_Types that manipulate keys. Add Adjust and - Finalize procedures for this type. - (Delete_Node): New procedure called when finalizing a - Reference_Control_Type, to remove a node whose element has been - improperly updated through a Reference. - (Insert): Detect tampering. - (Reference_Preserving_Key): Build proper Reference_Control_Type, - and update Busy and Lock bits to detect tampering. - -2014-07-30 Bob Duff - - * exp_intr.ads: Minor comment fix. - -2014-07-30 Gary Dismukes - - * exp_prag.adb, a-tags.ads: Minor typo fixes. - -2014-07-30 Bob Duff - - * a-excach.adb, a-excach-cert.adb, a-except-2005.ads, - a-except.ads, g-traceb.adb, memtrack.adb, - s-traceb.adb, s-traceb.ads, s-traceb-hpux.adb, s-traceb-mastop.adb: - Cleanup: Make the three versions of System.Traceback.Call_Chain - have the same interface. Use an array for the Traceback parameter - instead of an Address. This will enable reduction in code - duplication. - -2014-07-30 Pat Rogers - - * gnat_ugn.texi: Corrected minor textual error in description - of switch -gnatwl. - -2014-07-30 Bob Duff - - * Makefile.rtl: Sort file names. - -2014-07-30 Arnaud Charlet - - * a-tasatt.adb: Complete previous change: kill spurious warning - on e.g. sparc, and make sure we only use the fast path when the - alignment is compatible. - -2014-07-30 Yannick Moy - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Mark new Spec_Id as - coming from source. - -2014-07-30 Yannick Moy - - * inline.adb (Build_Body_To_Inline): Issue more precise messages - for declarations that prevent inlining. - (Cannot_Inline): Change usual start of message to refer to contextual - analysis in GNATprove mode. - * sem_res.adb (Resolve_Call): Change usual start of message to - refer to contextual analysis in GNATprove mode, when inlining - not possible. - -2014-07-30 Robert Dewar - - * sem_res.adb, sem_ch6.adb: Minor code reorganization. - * inline.adb: Minor reformatting. - -2014-07-30 Javier Miranda - - * a-tags.ads: Add comments. - -2014-07-30 Pat Rogers - - * gnat_rm.texi: Minor word error. - -2014-07-30 Ed Schonberg - - * exp_prag.adb (Expand_Old): Insert declarationss of temporaries - created to capture the value of the prefix of 'Old at the - beginning of the current declarative part, to prevent data flow - anomalies in the postcondition procedure that will follow. - -2014-07-30 Yannick Moy - - * debug.adb: Retire debug flag -gnatdQ. - * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Check SPARK_Mode - on decl, not on body. Ignore predicate functions. - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove use of - debug flag -gnatdQ. Correctly analyze SPARK_Mode on decl and - body when generating a decl for a body on which SPARK_Mode aspect - is given. - * sem_prag.adb (Analyze_Pragma|SPARK_Mode): Reorder tests for - attaching pragma to entity, to account for declaration not coming - from source. - * sem_res.adb (Resolve_Call): Issue warning and flag subprogram - as not always inlined in GNATprove mode, when called in an - assertion context. - -2014-07-30 Vincent Celier - - * debug.adb: Minor comment update. - -2014-07-30 Robert Dewar - - * s-tasuti.adb, s-tassta.adb: Minor reformatting. - * sprint.adb (Sprint_Node): Handle N_Contract case. - * exp_prag.adb: Minor reformatting. - * freeze.adb (Freeze_Entity): Check useless postcondition for - No_Return subprogram. - * sem_prag.adb: Minor reformatting. - -2014-07-30 Javier Miranda - - * a-tags.ads: Complete comments about performance. - -2014-07-30 Fedor Rybin - - * gnat_ugn.texi: Adding description for --exit-status option to - gnattest section. Fixing index entry of --passed-tests option - in gnattest section. - -2014-07-30 Javier Miranda - - * Makefile.rtl, gnat_rm.texi, i-cpp.adb, i-cpp.ads, impunit.adb, - rtsfind.ads: Remove references to package Interfaces.CPP since this - package is no longer needed. - -2014-07-30 Bob Duff - - * s-taasde.adb (Timer_Queue): Don't use a - build-in-place function call to initialize the Timer_Queue. - * s-traent.adb, s-traent.ads, s-traent-vms.adb, s-traent-vms.ads: - Turn off polling in these units, because otherwise we get - elaboration circularities with Ada.Exceptions when the -gnatP - switch is used. - * s-tassta.adb (Create_Task): Make sure independent tasks - are created with Parent = Environment_Task. This was not true, - for example, in s-interr.adb, when Interrupt_Manager does "new - Server_Task"; the Server_Task had Parent = Interrupt_Manager, - which is wrong because the master is determined by the access - type, which is at library level. - * s-tasuti.adb (Make_Independent): Avoid setting Parent; it is - now set correctly by Create_Task. - (Make_Passive): Remove the workaround for the race condition in - Make_Independent. - * frontend.adb (Frontend): Revert to previous method of detecting - temporary configuration pragma files, recognizing such files by - ".tmp" in the name. This is more general than detecting pragmas - Source_File_Name_Project, because it allows any tool to use - this naming convention, no matter the content of the file. - * gnat_ugn.texi: Document this naming convention. - -2014-07-30 Robert Dewar - - * exp_ch7.adb, s-tataat.adb, s-tataat.ads, s-parame-vms-alpha.ads, - inline.adb, s-parame-hpux.ads, exp_smem.adb, s-tasini.adb, - s-tasini.ads, s-parame-vms-ia64.ads, s-parame.ads, s-taskin.ads, - s-parame-vxworks.ads, a-tasatt.adb, a-tasatt.ads: Minor reformatting. - * a-suenco.adb (Convert): Handle overlong encodings in UTF8-UTF8 - conversion. - -2014-07-30 Ed Schonberg - - * sem_ch5.adb: Improve error recovery. - * inline.adb (Build_Body_To_Inline): Set Full_Analysis to false - before analyzing the body, so that in GNATprove mode there is - no light expansion. Whatever expansion is required by SPARK will - be performed when analysing the inlined code. - -2014-07-30 Bob Duff - - * s-tataat.adb, s-tataat.ads, a-tasatt.adb: Minor comment fixes. - -2014-07-30 Ed Schonberg - - * sem_ch5.adb (Analyze_Loop_Statement): If loop has a label, - verify that it is not hidden by an inner implicit declaration. - -2014-07-30 Thomas Quinot - - * sem.ads (Scope_Table_Entry): New component Locked_Shared_Objects. - * sem_ch8.adb (Push_Scope): Initialize Locked_Shared_Objects. - * exp_smem.adb (Add_Shared_Var_Lock_Procs): Handle the case where - the call returns an unconstrained type: in this case there is - already a transient scope, and we should not establish a new one. - * exp_ch7.adb (Insert_Actions_In_Scope_Around): New formal Clean. If - True, also insert cleanup actions in the tree. - (Wrap_Transient_Declaration): Call Insert_Actions_In_Scope_Around - with Clean set True. - -2014-07-30 Arnaud Charlet - - * s-taskin.ads (Direct_Index, Direct_Index_Range, - Direct_Attribute_Element, Direct_Attribute_Array, - Direct_Index_Vector, Direct_Attributes, Is_Defined, - Indirect_Attributes): Removed. (Atomic_Address, - Attribute_Array, Attributes): New. - * s-tasini.ads, s-tasini.adb (Proc_T, Initialize_Attributes, - Finalize_Attributes_Link, Initialize_Attributes_Link): Removed. - (Finalize_Attributes): Reimplement. - * s-tassta.adb (Create_Task): Remove call to - Initialize_Attributes_Link (Free_Task, Vulnerable_Free_Task): - Replace Finalize_Attributes_Link by Finalize_Attributes. - * a-tasatt.ads, a-tasatt.adb, s-tataat.ads, s-tataat.adb: - Reimplement from scratch, using a simpler and more efficient - implementation. - * s-tporft.adb (Register_Foreign_Thread): Remove now obsolete comment. - * s-parame.ads, s-parame-hpux.ads, - * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, - * s-parame-vxworks.ads (Max_Attribute_Count): New, replace - Default_Attribute_Count. - -2014-07-30 Olivier Hainque - - * vxworks-ppc-link.spec: New file. Extra link - instructions for ppc-vxworks. - * vxworks-crtbe-link.spec: Likewise, for ZCX related support. - * system-vxworks-ppc.ads: Adjust linker options to use spec files. - * system-vxworks-arm.ads: Likewise. - * gcc-interface/Makefile.in: Enable .spec files. - -2014-07-30 Ed Schonberg - - * sem_aggr.adb: Minor comment reformatting. - -2014-07-30 Robert Dewar - - * sem_util.ads, sem_util.adb (Is_Junk_Name): Removed. - * sem_warn.adb (Has_Junk_Name): New function - (Check_References): Use Has_Junk_Name to delete junk warnings - (Check_Unset_Reference): ditto. - (Warn_On_Unreferenced_Entity): ditto. - (Warn_On_Useless_Assignment): ditto. - -2014-07-30 Ed Schonberg - - * checks.adb (Insert_Valid_Check): Do not check for the packed - array type of a prefix that is an access type. - -2014-07-30 Ed Schonberg - - * sem_attr.adb (Eval_Attribute): Evaluate the GNAT attribute - Unconstrained_Array even if prefix is not frozen yet, as can - occur with a private subtype used as a generic actual. - -2014-07-30 Gary Dismukes - - * sem_attr.adb: Minor reformatting. - -2014-07-30 Pat Rogers - - * gnat_rm.texi: Corrected minor wording error in description - of No_Exception_Registration. - -2014-07-30 Yannick Moy - - * einfo.ads, einfo.adb: New flag Is_Inlined_Always for use in GNATprove - mode. Realphabetize two subprograms. - * inline.adb (Cannot_Inline): Use Is_Inlined_Always in GNATprove mode. - (Can_Be_Inlined_In_GNATprove_Mode): Adapt to possible Empty Body_Id. - (Check_And_Build_Body_To_Inline): Use Is_Inlined_Always in GNATprove - mode. - (Expand_Inline_Call): Use Is_Inlined_Always in GNATprove mode. - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not use - Is_Inline in GNATprove mode. - (Analyze_Subprogram_Specification): - Set Is_Inlined_Always at subprogram entity creation. - * sem_res.adb (Resolve_Call): Do not deal with inlining during - pre-analysis. Issue warning on call to possibly inlined - subprogram when body not seen. - -2014-07-30 Yannick Moy - - * lib-xref.adb (Generate_Reference): Add special - case for compiler-generated formals in GNATprove mode. - -2014-07-30 Yannick Moy - - * sem_ch6.adb: Add comments. - -2014-07-30 Thomas Quinot - - * s-os_lib.ads (GM_Time_Of): Clarify documentation. - -2014-07-30 Robert Dewar - - * sem_aggr.adb, sem_res.adb: Minor reformatting. - -2014-07-30 Thomas Quinot - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case - Bit_Order): Set Reverse_Bit_Order on the base type of the - specified first subtype. - -2014-07-30 Ed Schonberg - - * inline.adb (Expand_Inlined_Call): Use a renaming declaration - to capture the value of actuals of a limited type rather than - an object declaration, to prevent spurious errors when analyzing - the inlined body. - -2014-07-30 Ed Schonberg - - * sem_ch4.adb (Analyze_Type_Conversion): Treat an inlined body - as an instance, and inhibit semantic checks on already analyzed - code to prevent spurious errors. - -2014-07-30 Arnaud Charlet - - * a-exctra.ads ("="): New function, to restore compatibility. - -2014-07-30 Pascal Obry - - * adaint.c (__gnat_to_os_time): Set isdst to -1 for the mktime - routine to use the OS dst setting. - -2014-07-30 Pat Rogers - - * gnat_ugn.texi: Minor correction to description of -gnatw.K. - -2014-07-30 Ed Schonberg - - * sem_util.adb (Wrong_Type): Disable some checks equally within - instances and within inlined bodies, to suppress spurious type - errors on already analyzed code. - * sem_aggr.adb (Check_Expr_OK_In_Limited_Aggregate): Expression - is legal in an inlined body, juts as it is in an instance body. - -2014-07-30 Ed Schonberg - - * sem_res.adb (Resolve_Unchecked_Conversion): Within an inlined - body the operand of an unchecked conversion may be a literal, in - which case its type is the target type of the conversion. This - is in contrast to conversions in other contexts, where the - operand cannot be a literal and must be resolvable independent - of the context. - -2014-07-30 Pierre-Marie Derodat - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Create a - mere scalar constant instead of a reference for a renaming of - scalar literal. - * gcc-interface/utils.c (renaming_from_generic_instantiation_p): New. - * gcc-interface/gigi.h (renaming_from_generic_instantiation_p): New. - -2014-07-30 Robert Dewar - - * s-tasuti.adb, s-tasuti.ads, einfo.ads, sem_prag.adb, s-taasde.adb, - g-socthi-vms.adb, s-taprop-mingw.adb, s-interr.adb, s-interr-hwint.adb, - g-decstr.adb, s-tasdeb-vms.adb, g-expect-vms.adb, makeutl.adb, - s-interr-vms.adb, g-socthi.adb, exp_aggr.adb, s-tasdeb.adb, - g-awk.adb, gnatls.adb, s-taspri-posix.ads, g-catiio.adb, - s-interr-sigaction.adb, s-os_lib.adb, s-fileio.adb: Minor reformatting - & code reorganization. - -2014-07-30 Bob Duff - - * s-tassta.adb, sem_util.ads: Minor reformatting. - -2014-07-30 Yannick Moy - - * inline.adb (Build_Body_To_Inline): Detect when - subprogram has multiple returns, or not a single last return - statement, in GNATprove mode. - (Cannot_Inline): Simplify logic to handle case of GNATprove - inlining first. - -2014-07-30 Ed Schonberg - - * sem_ch6.adb: Stubs are not subject to inlining. - -2014-07-30 Bob Duff - - * s-tasuti.ads, s-tasuti.adb (Make_Independent): Change this - from a procedure to a function, so that it can more easily be - called before the "begin" of a task. - * s-taasde.ads (Delay_Block): Make this type immutably limited, - so we can use a build-in-place function call to initialize - Timer_Queue in the body. - * a-rttiev.adb, s-asthan-vms-alpha.adb, s-asthan-vms-ia64.adb, - * s-interr.adb, s-interr-hwint.adb, s-interr-sigaction.adb, - * s-interr-vms.adb, s-taasde.adb: Each independent task now calls - Make_Independent before reaching its "begin", to avoid race - conditions. This causes the activating task to wait until after - Make_Independent is complete before proceeding. In addition, - we initialize data structures used by independent tasks before - activating those tasks, to avoid possible use of uninitialized data. - * s-interr.ads, s-intman.ads, s-taspri-posix.ads, s-tasdeb.ads: - Minor comment fixes. - -2014-07-30 Bob Duff - - * a-exctra.ads, s-traent-vms.ads, s-traent.ads (Tracebacks_Array): Move - the declaration of Tracebacks_Array from Ada.Exceptions.Traceback to - System.Traceback_Entries (s-traent.ads and s-traent-vms.ads). Add - subtypes renaming Tracebacks_Array in Ada.Exceptions.Traceback. - * g-debpoo.adb: Refer to Tracebacks_Array in its new home. - -2014-07-30 Arnaud Charlet - - * a-tasatt.adb: Remove old comments. - -2014-07-30 Yannick Moy - - * einfo.ads (Is_Inlined): Document new use in GNATprove mode. - * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Add comments - to explain rationale for inlining or not in GNATprove mode. - (Expand_Inlined_Call): In GNATprove mode, set Is_Inlined flag - to False when inlining is not possible. - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set Is_Inlined - flag to indicate that subprogram is fully inlined. To be reversed - if inlining problem is found. - * sem_res.adb (Resolve_Call): Set Is_Inlined flag to False when - call in potentially unevaluated context. - -2014-07-30 Jose Ruiz - - * s-tarest.adb, s-tarest.ads: Fix comments. - -2014-07-30 Robert Dewar - - * exp_attr.adb, checks.adb, sem_util.adb, sem_util.ads, sem_attr.adb: - Change No_Scalar_Parts predicate to Scalar_Part_Present and - invert sense of test. This avoids the "not No_xxx" situation - which is always ugly. - -2014-07-30 Ed Schonberg - - * inline.adb (Expand_Inlined_Call): When generating code for - an internal subprogram the expansion uses the location of the - call, so that gdb can skip over it. In GNATprove mode we want to - preserve slocs of original subprogram when expanding an inlined - call, to obtain better warnings, even though subprogram appears - not to come from source if it is the inlining of a subprogram - body without a previous spec. - -2014-07-30 Eric Botcazou - - * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Reject array - types with atomic components. - -2014-07-30 Thomas Quinot - - * Make-generated.in: Remove now unnecessary targets after s-oscons - reorg. - -2014-07-30 Yannick Moy - - * sem_res.adb (Resolve_Call): Use ultimate alias - of callee when available. - -2014-07-30 Ed Schonberg - - * sem_ch6.adb (Analyze_Expression_Function): To check whether - an expression function is a completion, use the specification of - the previous declaration, not its entity, which may be internally - generated in an inlined context. - -2014-07-30 Doug Rupp - - * adaint.c (__gnat_tmp_name) [__ANDROID__]: Default to putting - temp files in /cache directory unless overridden by TMPDIR. - -2014-07-30 Jose Ruiz - - * s-tassta.adb, s-tarest.adb (Initialize, Create_Task, - Create_Restricted_Task): Remove redundant check. Number_Of_CPUs returns - type CPU, so it can never be greater than CPU_Range'Last. - -2014-07-30 Bob Duff - - * s-taskin.ads: Minor comment fix. - -2014-07-30 Thomas Quinot - - * g-socket.adb: Remove now useless WITH, USE, and USE TYPE - clauses. - -2014-07-30 Yannick Moy - - * debug.adb: Free debug flag dQ used for frontend inlining in - GNATprove mode.. - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove test of - debug flag.. - -2014-07-30 Thomas Quinot - - * Make-generated.in: Remove generation of s-oscons.ads, only - generate the xoscons utility, in runtime-agnostic rules. - * gcc-interface/Makefile.in: Clean up rules. Remove VMS parts, - no longer supported. - -2014-07-30 Bob Duff - - * exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call): New - parameter Chain to be used in the allocator case. - (Make_Build_In_Place_Call_In_Allocator): If the allocated object - has tasks, wrap the code in a block that will activate them, - including the usual finalization code to kill them off in case - of exception or abort. - -2014-07-30 Robert Dewar - - * treepr.adb, treepr.ads; Reorganize documentation for new pp routines - Remove renamings (don't work for gdb). - (par): New synonym for p (avoid gdb ambiguities). - * inline.adb, sem_ch6.adb, sem_ch13.adb: Minor reformatting. - -2014-07-30 Bob Duff - - * exp_ch9.ads, sem_prag.adb, exp_ch4.adb, sem_ch13.adb: Minor comment - fixes. - * treepr.ads, treepr.adb (ppp): Make this debugging routine - accept any type covered by Union_Id. - -2014-07-30 Robert Dewar - - * sem_ch4.adb (Analyze_If_Expression): Resolve condition before - analyzing branches. - * sem_eval.adb (Out_Of_Range): Check for statically unevaluated - expression case. - -2014-07-30 Robert Dewar - - * sem_ch13.adb (Analyze_Aspect, predicate cases): Diagnose use - of predicate aspect on entity other than a type. - -2014-07-30 Ed Schonberg - - * sem_ch6.adb (Body_Has_Contract): New predicate to determine - when a subprogram body without a previous spec cannot be inlined - in GNATprove mode, because it includes aspects or pragmas that - generate a SPARK contract clause. - * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): A subprogram - instance cannot be inlined. - -2014-07-30 Robert Dewar - - * debug.adb: Document that d7 suppresses compilation time output. - * errout.adb (Write_Header): Include compilation time in - header output. - * exp_intr.adb (Expand_Intrinsic_Call): Add - Compilation_Date/Compilation_Time (Expand_Source_Info): Expand - Compilation_Date/Compilation_Time. - * g-souinf.ads (Compilation_Date): New function - (Compilation_Time): New function. - * gnat1drv.adb (Gnat1drv): Set Opt.Compilation_Time. - * gnat_rm.texi (Compilation_Date): New function - (Compilation_Time): New function. - * opt.ads (Compilation_Time): New variable. - * s-os_lib.ads, s-os_lib.adb (Current_Time_String): New function. - * sem_intr.adb (Compilation_Date): New function. - (Compilation_Time): New function. - * snames.ads-tmpl (Name_Compilation_Date): New entry. - (Name_Compilation_Time): New entry. - -2014-07-30 Yannick Moy - - * inline.adb: Add comment. - -2014-07-30 Ed Schonberg - - * par-ch4.adb (Is_Parameterless_Attribute): 'Result is a - parameterless attribute, and a postondition can mention an - indexed component or a slice whose prefix is an attribute - reference F'Result. - -2014-07-30 Robert Dewar - - * sprint.adb (Sprint_Node_Actual, case Object_Declaration): - Avoid bomb when printing package Standard. - -2014-07-30 Ed Schonberg - - * sem_elab.adb (Check_Internal_Call_Continue): If an elaboration - entity is created at this point, ensure that the name of the - flag is unique, because the subprogram may be overloaded and - other homonyms may also have elaboration flags created on the fly. - -2014-07-30 Hristian Kirtchev - - * sem_attr.adb (Analyze_Array_Component_Update): New routine. - (Analyze_Attribute): Major cleanup of attribute - 'Update. The logic is now split into two distinct routines - depending on the type of the prefix. The use of <> is now illegal - in attribute 'Update. - (Analyze_Record_Component_Update): New routine. - (Check_Component_Reference): Removed. - (Resolve_Attribute): Remove the return statement and ??? comment - following the processing for attribute 'Update. As a result, - the attribute now freezes its prefix. - -2014-07-30 Javier Miranda - - * exp_ch4.adb (Apply_Accessibility_Check): Do - not call Base_Address() in VM targets. - -2014-07-30 Yannick Moy - - * gnat1drv.adb (Adjust_Global_Switches): Set - Ineffective_Inline_Warnings to True in GNATprove mode. - * inline.adb (Cannot_Inline): Prepare new semantics for GNATprove - mode of inlining. - * opt.ads (Ineffective_Inline_Warnings): Add comment that - describes use in GNATprove mode. - * sem_prag.adb (Analyze_Pragma|SPARK_Mode): Ignore - pragma when applied to the special body created for inlining. - -2014-07-30 Robert Dewar - - * inline.adb, exp_ch4.adb, sinput.adb, sem_ch6.adb, sem_ch13.adb: - Minor reformatting. - -2014-07-30 Hristian Kirtchev - - * aspects.ads Add a comment explaining why SPARK 2014 aspects are - not delayed. Update the delay status of most SPARK 2014 aspects. - * sem_ch13.adb (Analyze_Aspect_Specifications): Update all calls - to Decorate_Aspect_And_Pragma and Insert_Delayed_Pragma to refert - to Decorate and Insert_Pragma. Add various comments concerning - the delay status of several SPARK 2014 aspects. The insertion - of Refined_State now uses routine Insert_After_SPARK_Mode. - (Decorate): New routine. - (Decorate_Aspect_And_Pragma): Removed. - (Insert_Delayed_Pragma): Removed. - (Insert_Pragma): New routine. - -2014-07-30 Ed Schonberg - - * inline.adb (Expand_Inlined_Call): In GNATprove mode, emit - only a warning, not an error on an attempt to inline a recursive - subprogram. - -2014-07-30 Robert Dewar - - * g-forstr.adb: Minor code reorganization (use J rather than I - as a variable name). - * gnat_rm.texi, sem_prag.adb, sem_util.adb, sem_ch13.adb, - g-forstr.ads: Minor reformatting. - -2014-07-30 Eric Botcazou - - * sprint.adb (Set_Debug_Sloc): Also reset the end location if - we are debugging the generated code. - -2014-07-30 Yannick Moy - - * sinput.ads, sinput.adb (Comes_From_Inlined_Body): New function that - returns True for source pointer for an inlined body. - -2014-07-30 Javier Miranda - - * exp_ch4.adb (Apply_Accessibility_Check): Add - missing calls to Base_Address(). - -2014-07-30 Ed Schonberg - - * sem_ch6.adb (Hanalyze_Subprogram_Body_Helper): In GNATprove - mode, subprogram bodies without a previous declaration are also - candidates for front-end inlining. - -2014-07-30 Hristian Kirtchev - - * aspects.ads Aspects Async_Readers, Async_Writers, - Effective_Reads and Effective_Writes do not need to be delayed. - * sem_ch13.adb (Analyze_Aspect_Specifications): Propagate the - optional Boolean expression when generating the corresponding - pragma for an external property aspect. - * sem_prag.adb (Analyze_External_Property_In_Decl_Part): Remove - local constant Obj. Add local constant Obj_Id. Reimplement the - check which ensures that the related variable is in fact volatile. - (Analyze_Pragma): Reimplement the analysis of external property pragmas. - * sem_util.adb (Is_Enabled): New routine. - (Variable_Has_Enabled_Property): Reimplement the detection of - an enabled external property. - -2014-07-30 Sergey Rybin - - * gnat_ugn.texi, vms_data.ads: gnatstub: describe generating subunits - for body stubs. - -2014-07-30 Pascal Obry - - * g-forstr.adb, g-forstr.ads: New. - * gnat_rm.texi, impunit.adb Makefile.rtl: Add new unit - GNAT.Formatted_String. - -2014-07-30 Eric Botcazou - - * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): New predicate. - (Expand_Array_Aggregate): Also enable in-place expansion for - code generated by the compiler. For an object declaration, - set the kind of the object in addition to its type. If an - in-place assignment is to be generated and it can be directly - done by the back-end, do not expand the aggregate. - * fe.h (Is_Others_Aggregate): Declare. - * gcc-interface/trans.c - (gnat_to_gnu) : Add support for an - aggregate with a single Others choice on the RHS by means of - __builtin_memset. Tidy up. - -2014-07-30 Ed Schonberg - - * gnat_rm.texi: minor reformatting. - -2014-07-30 Yannick Moy - - * sem_ch6.adb (Analyze_Subprogram_Helper_Body): Remove body to inline - in SPARK_Mode Off. - -2014-07-30 Robert Dewar - - * gnat_rm.texi: Document additional implementation-defined use - of Constrained. - -2014-07-30 Robert Dewar - - * prj-proc.adb, prj-strt.adb: Update comments. - -2014-07-30 Gary Dismukes - - * sinfo.ads, einfo.ads, checks.ads: Minor typo fix and reformatting. - -2014-07-30 Vincent Celier - - * prj-proc.adb (Imported_Or_Extended_Project_From): New Boolean - parameter No_Extending, defaulted to False. When No_Extending - is True, do not look for an extending project. - (Expression): For a variable reference that is not for the current - project, get its Id calling Imported_Or_Extended_Project_From - with No_Extending set to True. - * prj-strt.adb (Parse_Variable_Reference): If a referenced - variable is not found in the current project, check if it is - defined in one of the projects it extends. - -2014-07-30 Robert Dewar - - * sem_util.adb (Predicate_Tests_On_Arguments): Omit tests for - some additional cases of internally generated routines. - -2014-07-30 Ed Schonberg - - * sem_ch10.adb (Analyze_Proper_Body): When compiling for ASIS, - if the compilation unit is a subunit, extend optional processing - to all subunits of the current one. This allows gnatstub to - supress generation of spurious bodies. - -2014-07-30 Hristian Kirtchev - - * a-cbmutr.adb (Insert_Child): Use local variable First to keep - track of the initial element's index within the tree. - -2014-07-29 Hristian Kirtchev - - * a-cbmutr.adb (Allocate_Node): Remove the two parameter version. - (Insert_Child): Add local variable First. Capture the index of the - first node being created to ensure correct cursor construction - later on. Use the three parameter version of Allocate_Node - when creating multiple children as this method allows aspect - Default_Value to take effect (if applicable). - -2014-07-29 Eric Botcazou - - * exp_aggr.adb (Safe_Slice_Assignment): Remove. - (Expand_Array_Aggregate): For a safe slice assignment, just set - the target and use the common code path. - -2014-07-29 Robert Dewar - - * sem_util.adb, sem_util.ads, sem_res.adb, exp_ch6.adb: Invert - predicate No_Predicate_Test_On_Arguments, new name is - Predicate_Tests_On_Arguments (with the opposite sense). - -2014-07-29 Hristian Kirtchev - - * sem_attr.adb (Resolve_Attribute): Clean up the code for - attribute 'Access. Do not generate an elaboration flag for a - stand alone expression function. The expression of an expression - function is now frozen when the expression function appears as - the prefix of attribute 'Access. - * sem_ch6.adb (Analyze_Expression_Function): Remove local - variable New_Decl and update all references to it after the - rewriting has taken place. Establish the linkages between the - generated spec and body. - -2014-07-29 Robert Dewar - - * sem_prag.adb (ip, rv): Prevent from being optimized away. - * gnatls.adb (gnatls): Set E_Fatal exit status if ali file not found. - * s-imgllb.adb, s-imgllw.adb, s-imgwiu.adb, s-imgbiu.adb: Minor - reformatting. - -2014-07-29 Vincent Celier - - * prj-pp.adb: Minor comment update. - * frontend.adb: If a target dependency info file has been read - through switch -gnateT= add it to the dependencies of the source - being compiled. - -2014-07-29 Robert Dewar - - * sem_ch3.adb, prj.adb: Minor reformatting. - -2014-07-29 Vincent Celier - - * prj-pp.adb (Pretty_Print.Output_Project_File): New - procedure to output project file names between quotes without - concatenation, even if the line is too long. - (Pretty_Print): Use Output_Project_File for project being extended and - project imported. - -2014-07-29 Vincent Celier - - * gnat_ugn.texi: Document that configuration pragmas files are - added to the dependencies, unless they contain only pragmas - Source_File_Name_Project. - -2014-07-29 Robert Dewar - - * frontend.adb: Minor reformatting. - -2014-07-29 Robert Dewar - - * exp_ch6.adb (Add_Call_By_Copy_Code): Minor reformatting - (Expand_Actuals): Make sure predicate checks are properly applied - for the case of OUT or IN OUT parameters. - * sem_res.adb: Minor reformatting (Resolve_Actuals): Skip - predicate tests on arguments for Finalize - * sem_util.adb (No_Predicate_Test_On_Arguments): Returns True - if predicate tests on subprogram arguments should be skipped. - * sem_util.ads (No_Predicate_Test_On_Arguments): New function - -2014-07-29 Ed Schonberg - - * sem_ch3.adb (Analyze_Object_Declaration): If there is an address - clause for the object and the expression is an aggregate, defer - resolution and expansion of the aggregate until the freeze point - of the entity. - * sem_aggr.adb (Resolve_Aggregate): An others_clause is legal if - the parent node is an N_Reference generated during expansion. - -2014-07-29 Vincent Celier - - * prj.adb (Add_To_Buffer): Effectively double the size of the buffer. - -2014-07-29 Robert Dewar - - * frontend.adb, inline.adb, sem_util.adb, sem_res.adb, - prepcomp.ads: Minor reformatting and code clean up. - * exp_ch6.adb (Expand_Actuals): Generate predicate test - unconditionally for case of OUT or IN OUT actual (before this - was generated only for certain subcases, which is wrong, the - test is always needed). - -2014-07-29 Ed Schonberg - - * sem_ch3.adb: Move Has_Defaulted_Discriminants to sem_util. - * sem_ch4.adb (Analyze_Allocator): Defer resolution of expression - until context type is available. - * sem_res.adb (Resolve_Allocator): In the case of a qualified - expression, complete resolution of expression. - (Check_Aliased_Parameter): New procedure within Resolve_Actuals, - to apply Ada2012 checks on aliased formals, as well as - accesibility checks when the context of the call is an allocator - or a qualified expression. - * sem_util.ads, sem_util.adb (Has_Defaulted_Discriminants): - Moved here from sem_ch3. - (Object_Access_Level): Handle properly aliased formals and - aggregates. - * exp_ch6.adb (Expand_Call): Remove check on aliased parameters, - now properly performed in sem_res (Resolve_Actuals, - Check_Aliased_Parameter). - -2014-07-29 Yannick Moy - - * debug.adb Enable GNATprove inlining under debug flag -gnatdQ for now. - * inline.ads, inline.adb (Can_Be_Inlined_In_GNATprove_Mode): New - function to decide when a subprogram can be inlined in GNATprove mode. - (Check_And_Build_Body_To_Inline): Include GNATprove_Mode as a - condition for possible inlining. - * sem_ch10.adb (Analyze_Compilation_Unit): Remove special case - for Inline_Always in GNATprove mode. - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Build inlined - body for subprograms in GNATprove mode, under debug flag -gnatdQ. - * sem_prag.adb Minor change in comments. - * sem_res.adb (Resolve_Call): Only perform GNATprove inlining - inside subprograms marked as SPARK_Mode On. - * sinfo.ads: Minor typo fix. - -2014-07-29 Vincent Celier - - * frontend.adb: Add dependency on gnat.adc when taken into account - and on non-temporary configuration pragmas files specified in - switches -gnatec. - * prepcomp.ads, prepcomp.adb (Add_Dependency): New procedure to add - dependencies on configuration pragmas files. - -2014-07-29 Pat Rogers - - * gnat_ugn.texi: Minor clarification to the explanation for the - GNATtest -v switch. - -2014-07-29 Robert Dewar - - * types.ads (Mechanism_Type): Change range back to -18 .. Int'Last with - documentation that explains the need for this extended range - (use by C_Pass_By_Copy). - -2014-07-29 Robert Dewar - - * gnat_rm.texi, sem_prag.adb: Minor reformatting. - -2014-07-29 Sergey Rybin - - * gnat_ugn.texi: gnatmetric: clarify documentation for cyclomatic - complexity metrics. - -2014-07-29 Thomas Quinot - - PR ada/60652 - * s-oscons-tmplt.c: For Linux, define _BSD_SOURCE in order for - CRTSCTS to be visible. - -2014-07-29 Bob Duff - - * g-trasym.adb, g-trasym.ads: Code cleanup. - -2014-07-29 Doug Rupp - - * sigtramp-vxworks.c: Minor reformatting. - -2014-07-29 Ed Schonberg - - * gnat_rm.texi: No doc needed for Ada2012 aspect - Implicit_dereference. - -2014-07-29 Robert Dewar - - * sem_attr.adb (Attribute_12): New array - (Analyze_Attribute): Check impl-defined Ada 2012 attributes. - (Check_Ada_2012_Attribute): Removed. - -2014-07-29 Doug Rupp - - * init.c (vxworks6): Call sigtramp for RTP (as well as DKM) for ARM, - PPC, and e500. - * sigtramp-vxworks.c: New file. - * sigtramp-armvxw.c, sigtramp-ppcvxw.c: removed files. - -2014-07-29 Ed Schonberg - - * lib-xref.adb (Output_Refs, Check_Type_Reference): For a - derived array type, add information about component type, which - was previously missing in ali file. - * gnat_rm.texi: Add documentation for Atomic_Always_Lock_Free. - -2014-07-29 Thomas Quinot - - * sem_ch3.adb (Constrain_Corresponding_Record): For the case - of the subtype created for a record component, do not mark - the subtype as frozen. For one thing, this is anomalous (in - particular, the base type might not itself be frozen yet); - furthermore, proper freezing of the subtype must happen in any - case. So, we just mark the subtype as requiring delayed freezing - (and we'll actually freeze it when generating the init_proc of - the enclosing record). - Also change the name of the constrained record subtype (append a - 'C' so that it is clearly different from the unconstrained record - type, "related_idV") to make debugging easier. - (Process_Full_View): When creating a full subtype for a pending - private subtype, re-establish the scope of the private subtype - so that we get proper visibility on outer discriminants. - * exp_ch3.adb (Build_Init_Statements): Freeze any component - subtype that is not frozen yet. - -2014-07-29 Vincent Celier - - * prj-proc.adb (Recursive_Process): Always initialize the - environment when the project is an aggregate project, even when - it is not the root tree. -2014-07-29 Robert Dewar - - * exp_ch5.adb, exp_ch9.adb: Minor comment additions. - * gnat_rm.texi: Complete list of implementation aspects. - * aspects.ads: Minor comment clarification. - -2014-07-29 Ed Schonberg - - * exp_ch5.adb (Expand_N_Assignment_Statement): If the target type - is a null-excluding access type, do not generate a constraint - check if Suppress_Assignment_Checks is set on assignment node. - * exp_ch9.adb (Build_Simple_Entry_Call): If actual is an out - parameter of a null-excluding access type, there is access check - on entry, so set Suppress_Assignment_Checks on generated statement - that assigns actual to parameter block. - * sinfo.ads: Document additional use of Suppress_Assignment_Checks. - -2014-07-29 Robert Dewar - - * gnat_rm.texi: Change theta to @ in documentation of aspect - Dimension_System. - -2014-07-29 Robert Dewar - - * sem_attr.adb (Uneval_Old_Msg): Flags Uneval_Old_Accept/Warn - are now on pragma. - * sem_ch13.adb (Analyze_Aspect_Specifications): Remove setting - of Uneval_Old_* - * sem_prag.adb (Analyze_Pragma): Set Uneval_Old_* flags - * sinfo.ads, sinfo.adb: Move Uneval_Old_Accept/Warn to N_Pragma node. - -2014-07-29 Javier Miranda - - * types.ads Update documentation on how to add new reason codes - for exceptions. - (RT_Exception_Code): Keep values ordered by their - reason code. Required by the .NET backend. - (RT_CE_Exceptions): Subtype declaration removed. - (RT_PE_Exceptions): Subtype declaration removed. - (RT_SE_Exceptions): Subtype declaration removed. - (Kind): New mapping table of RT_Exception_Codes. - * exp_ch11.adb (Get_RT_Exception_Entity): Updated to use the - new mapping table. - * tbuild.adb (Make_Raise_Storage_Error): Updated to use the new - mapping table. (Make_Raise_Program_Error): Updated to use the - new mapping table. - (Make_Raise_Storage_Error): Updated to use the new mapping table. - * a-except.adb Keep Rcheck_CE_xxx entities ordered according to - their reason code. - -2014-07-29 Thomas Quinot - - * gnat_rm.texi: Document internal attributes used for PolyORB/DSA - distributed stubs generation. - * exp_ch3.adb: Minor reformatting. - -2014-07-29 Yannick Moy - - * sinfo.ads: Document constraint between frontend and GNATprove. - -2014-07-29 Robert Dewar - - * a-except.adb: Minor comment clarification. - -2014-07-29 Robert Dewar - - * gnat_rm.texi: Complete list of implementation attributes. - * snames.ads-tmpl: Clean up list of impl-defined attributes. - -2014-07-29 Hristian Kirtchev - - * freeze.adb (Freeze_Record_Type): Perform various - volatility-related checks. - -2014-07-29 Robert Dewar - - * sem_ch3.adb, sem_eval.adb: Minor reformatting. - -2014-07-29 Ed Schonberg - - * sem_attr.adb: sem_attr.adb (Access_Attribute): Handle properly - the case where the attribute reference appears in a nested scope - from that of the subprogram prefix. - * sem_attr.adb: Minor reformatting. - -2014-07-29 Robert Dewar - - * gnat_ugn.texi: Clarify documentation of Initialize_Scalar - initialization options. - -2014-07-29 Robert Dewar - - * sinfo.ads: Minor comment addition. - -2014-07-29 Bob Duff - - * sem_eval.adb, sem_ch13.adb: Minor reformatting. - -2014-07-29 Doug Rupp - - * init.c: Complete previous change. - -2014-07-29 Robert Dewar - - * exp_ch4.adb (Expand_N_If_Expression): Deal with unconstrained - array case. - -2014-07-29 Ed Schonberg - - * sem_attr.adb (Access_Attribute): If the prefix is a subprogram - and the completion will appear in the same declarative part, - create elaboration flag. - * exp_util.adb (Set_Elaboration_Flag): If the subprogram body - is a completion of a declaration in the same declarative part, - and the subprogram has had its address taken, add elaboration - check inside the subprogram body, to detect elaboration errors - that may occur through indirect calls. - -2014-07-29 Doug Rupp - - * sigtramp-armvxw.c: Enhance to handle RTP trampolining. - * init.c: Remove guard on sigtramp for ARM VxWorks RTP. - -2014-07-29 Vincent Celier - - * switch-c.adb (Scan_Front_End_Switches): Do not fail when two - runtime directorie specified with two switches --RTS= designate - the same directory, even when there are no literarily the same. - -2014-07-29 Robert Dewar - - * gnat_ugn.texi: Minor documentation clarification. - * switch-c.adb: Minor reformatting. - -2014-07-29 Robert Dewar - - * sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address): - Fix incorrect RTE call which caused bomb if pragma was in - configuration pragma file. - -2014-07-29 Jerome Lambourg - - * expect.c (__gnat_expect_poll): Fix typo in previous change. - * g-expect.adb: Update comments. - -2014-07-29 Arnaud Charlet - - * s-parame-hpux.ads, s-parame-vms-ia64.ads, s-parame.ads - (Default_Attribute_Count): Bump to 16 on native platforms. - -2014-07-29 Ed Schonberg - - * sem_res.adb: Add guard to front-end inlining for SPARK. - -2014-07-29 Robert Dewar - - * sem_ch10.adb, debug.adb, sem_prag.adb, sem_res.adb, sem_ch6.adb: - Minor reformatting. - -2014-07-29 Ed Schonberg - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Build body to - inline in GNATprove mode when subprogran is marked Inline_Always. - * sem_res.adb (Resolve_Call): Expand call in place in GNATProve - mode if body to inline is available. - * sem_prag.adb (Analyze_Pragma, case Inline_Always): Make pragma - effective in GNATprove mode. - * sem_ch10.adb (Analyze_Compilation_Unit): Call - Check_Package_Body_For_Inlining in GNATprove mode, so that body - containing subprograms with Inline_Always can be available before - calls to them. - -2014-07-29 Ed Schonberg - - * inline.ads, inline.adb, sem_ch10.adb: Rename Check_Body_For_Inlining - to Check_Package_Body_For_Inlining, to prevent confusion with other - inlining subprograms. - -2014-07-29 Robert Dewar - - * opt.ads: Minor comment update. - * sem_attr.adb (Uneval_Old_Msg): Deal with case of aspect, where - we want setting of Uneval_Old at time of encountering the aspect. - * sem_ch13.adb (Analyze_Aspect_Specifications): Capture setting - of Opt.Uneval_Old. - * sinfo.adb (Uneval_Old_Accept): New function (Uneval_Old_Warn): - New function (Set_Uneval_Old_Accept): New procedure. - (Set_Uneval_Old_Warn): New procedure. - * sinfo.ads: Uneval_Old_Accept: New flag Uneval_Old_Warn: New flag. - -2014-07-29 Robert Dewar - - * sinfo.ads, inline.adb, inline.ads, sem_ch6.adb: Minor reformatting. - * snames.ads-tmpl: Minor reformatting. - * xsnamest.adb (XSnamesT): Remove special casing of Name_Error - to give . Not clear why this was there, but the compiler - sources do not reference Name_Error, and this interfered with - the circuits for pragma Unevaluated_Use_Of_Old. - -2014-07-29 Hristian Kirtchev - - * sem_prag.adb (Process_Atomic_Shared_Volatile): Allow volatile - types in SPARK 2014 (again). - * sem_res.adb (Is_OK_Volatile_Context): New routine. - (Resolve_Entity_Name): Ensure that a volatile object with - enabled properties Async_Writers or Effectire_Reads appears in - a non-interfering context. - -2014-07-29 Ed Schonberg - - * sem_ch6.adb: Move Build_Body_To_Inline, - Check_And_Buid_Body_To_Inline, and Cannot_Inline to package Inline. - * exp_ch6.adb: Mode Expand_Inlined_Body to package Inline. - * inline.ads, inline.adb: Package now contains subprograms that - implement front-end inlining. No functional changes, no test - needed. - -2014-07-29 Robert Dewar - - * exp_dbug.adb, g-expect.adb, sem_elab.adb: Minor typo fix. - -2014-07-29 Ed Schonberg - - * sem_ch6.adb (Analyze_Return_Type): Reject a return type that - is a limited view when the context is a package body, because - there is no subsequent place at which the non-limited view may - become visible. - (Process_Formals): Ditto. - * sinfo.ads, par-ch3.adb: Minor reformatting. - -2014-07-29 Jerome Lambourg - - * expect.c (__gnat_expect_poll): New parameter dead_process - used to return the dead process among the array of file - descriptors. The Windows, VMS and HPUX implementations now - properly report the dead process via this parameter. Other unixes - don't need it. - * g-expect.adb (Poll): Adapt to the C profile. - (Expect_Internal): Use the new parameter to properly close the - File Descriptor. This then can be properly reported by the - function First_Dead_Process as is expected. - -2014-07-29 Robert Dewar - - * gnat_ugn.texi: Minor clarification of -gnatQ switch. - -2014-07-29 Robert Dewar - - * einfo.adb (Derived_Type_Link): New function - (Set_Derived_Type_Link): New procedure. - (Write_Field31_Name): Output Derived_Type_Link. - * einfo.ads: New field Derived_Type_Link. - * exp_ch6.adb (Expand_Call): Warn if change of representation - needed on call. - * sem_ch13.adb: Minor addition of ??? comment. - (Rep_Item_Too_Late): Warn on case that is legal but could cause an - expensive implicit conversion. - * sem_ch3.adb (Build_Derived_Type): Set Derived_Type_Link if needed. - -2014-07-29 Hristian Kirtchev - - * exp_ch3.adb (Build_Init_Procedure): Renamed Local_DF_Id - to DF_Id. Add new local variable DF_Call. Do not perform any - elaboration-related checks on the call to the partial finalization - routine within an init proc to avoid generating bogus elaboration - warnings on expansion-related code. - * sem_elab.adb (Check_A_Call): Move constant Access_Case to - the top level of the routine. Ensure that Output_Calls takes - into account flags -gnatel and -gnatwl when emitting warnings - or info messages. - (Check_Internal_Call_Continue): Update the call to Output_Calls. - (Elab_Warning): Moved to the top level of routine Check_A_Call. - (Emit): New routines. - (Output_Calls): Add new formal parameter Check_Elab_Flag along with a - comment on usage. Output all warnings or info messages only when the - caller context demands it and the proper elaboration flag is set. - -2014-07-29 Yannick Moy - - * sem_attr.adb (Analyze_Attribute/Attribute_Old): - Check rule about Old appearing in potentially unevaluated - expression everywhere, not only in Post. - -2014-07-29 Arnaud Charlet - - * sem_prag.adb: Update comment. - * a-except.adb, a-except-2005.adb: Minor editing. - -2014-07-29 Pierre-Marie Derodat - - * exp_dbug.adb (Debug_Renaming_Declaration): - Do not create renaming entities for renamings of non-packed - objects and for exceptions. - -2014-07-29 Robert Dewar - - * sem_ch3.adb, sinfo.ads, types.ads, sem_prag.adb, a-except-2005.adb, - sem_ch6.adb, par-ch3.adb: Minor reformatting. - -2014-07-29 Ed Schonberg - - * sem_ch6.adb (Check_Return_Subtype_Indication): Reject a return - subtype indication in an extended return statement when the - return value is an ancestor of the return type of the function, - and that return type is a null record extension. - -2014-07-29 Thomas Quinot - - * sem_ch13.adb (Rep_Item_Too_Late): Specialize/clarify error - message produced for the case of a type-related representation - item that is made illegal by 13.10(1). - * gnat_rm.texi (Scalar_Storage_Order): Minor change in - documentation. - -2014-07-29 Robert Dewar - - * gnat_ugn.texi: Add section on Wide_Wide_Character encodings. - * erroutc.adb (Output_Error_Msgs): Take wide characters into - account in computing position of error flags. - * sinput.adb (Get_Column_Number): Take wide characters into - account. - -2014-07-29 Ed Schonberg - - * par-ch3.adb (P_Access_Type_Definition): The subtype indication - in an access type definition can carry a null_exclusion indicator. - * sem_ch3.adb (Access_Type_Declaration): If the subtype indication - carries a null_exclusion indicator, verify that the subtype - indication denotes an access type, and create a null-excluding - subtype for it. - * sinfo.ads, sinfo.adb: New attribute Null_Excluding_Subtype, - defined on N_Access_To_Object_Definition to indicate that the - subtype indication carries a null_exclusion indicator. - -2014-07-29 Hristian Kirtchev - - * exp_ch6.adb (Add_Extra_Actual): Do not construct - the extra actual by name, generate a reference instead. - -2014-07-29 Arnaud Charlet - - * sem_prag.adb (Analyze_Pragma): Do not crash analyzing - Allow_Integer_Address if already set. - * a-except-2005.adb (Rcheck_PE_Stream_Operation_Not_Allowed): - Fix order, for consistency with Rmsg_xx declarations. - -2014-07-29 Ed Schonberg - - * sem_ch4.adb (Complete_Object_Operation): If the type of the - candidate subprogram is a limited view, use non-limited view - when available. - -2014-07-29 Robert Dewar - - * sem_ch13.adb: Minor change in RM reference. - * sem_mech.ads: Minor reformatting. - * einfo.ads: Minor comment fix. - * types.ads: Minor correction to range given for Mechanism_Type. - * exp_ch6.adb (Add_Invariant_And_Predicate_Checks): Do not - check predicate on way out for OUT or IN OUT parameters. - * par-ch3.adb (P_Constraint_Opt): Handle missing RANGE keyword - better (P_Range_Constraint): Corresponding fix. - * checks.ads: Minor comment clarification. - -2014-07-29 Gary Dismukes - - * sem_ch8.adb (Analyze_Object_Renaming): Set the Is_Volatile - and Treat_As_Volatile flags based on whether the renamed object - is a volatile object. - -2014-07-29 Olivier Hainque - - * g-debpoo.adb - (Default_Alignment): Rename as Storage_Alignment. This is not - a "default" that can be overriden. Augment comment to clarify - intent and document why we need to manage alignment padding. - (Header_Offset): Set to Header'Object_Size instead of 'Size - rounded up to Storage_Alignment. Storage_Alignment on the - allocation header is not required by our internals so was - overkill. 'Object_Size is enough to ensure proper alignment - of the header address when substracted from a storage address - aligned on Storage_Alignment. - (Minimum_Allocation): Rename as Extra_Allocation, conveying that - this is always added on top of the incoming allocation requests. - (Align): New function, to perform alignment rounding operations. - (Allocate): Add comments on the Storage_Address computation - scheme and adjust so that the alignment padding applies to that - (Storage_Address) only. - -2014-07-29 Robert Dewar - - * exp_ch3.adb (Default_Initialize_Object): Remove incorrect - pragma Unreferenced. - * cstand.adb (Create_Standard): Use E_Array_Type for standard - string types. Make sure index of Any_String/Any_Array is in a list. - * errout.adb: Minor reformatting. - -2014-07-29 Robert Dewar - - * gnat_ugn.texi: Clean up and correct documentation of warnings. - * usage.adb: Minor corrections to make sure warnings are properly - documented. - * warnsw.adb (Set_Warning_Switch): Remove redundant return statement. - (WA_Warnings): Add Warn_On_Suspicious_Modulus_Value. - -2014-07-29 Ed Schonberg - - * exp_ch3.adb (Expand_N_Object_Declaration): The dummy block - created to match internal sequence numbers between compilations - with/without abort must have its type properly set. - -2014-07-29 Robert Dewar - - * ali.adb (Initialize_ALI): Initialize SSO_Default_Specified - (Scan_ALI): Set SSO_Default in ALIs_Record (Scan_ALI): Set - SSO_Default_Specified. - * ali.ads (ALIs_Record): Add field SSO_Default - (SSO_Default_Specified): New global switch. - * bcheck.adb (Check_Consistent_SSO_Default): New procedure - (Check_Configuration_Consistency): Call this procedure - * einfo.adb (SSO_Set_High_By_Default): New - function (SSO_Set_Low_By_Default): New function - (Set_SSO_Set_High_By_Default): New procedure - (Set_SSO_Set_Low_By_Default): New procedure (Write_Entity_Flags): - List new flags - * einfo.ads (SSO_Set_Low_By_Default): New flag - (SSO_Set_High_By_Default): New flag - * freeze.adb (Set_SSO_From_Default): New procedure - (Freeze_Array_Type): Call Set_SSO_From_Default - (Freeze_Record_Type): Call Set_SSO_From_Default - * gnat_rm.texi: Document pragma Default_Scalar_Storage_Order - * lib-writ.adb (Write_ALI): Set OL/OH in P line as needed - * lib-writ.ads: Add OL/OH parameters to P line - * opt.adb: Set Default_SSO, Default_SSO_Config as appropriate - * opt.ads (Default_SSO): New global switch (Default_SSO_Config): - New global switch - * repinfo.adb (List_Scalar_Storage_Order): List SSO when it is - set by default using pragma Default_Scalar_Storage_Order. - * sem.ads (Scope_Stack_Entry): Add component Save_Default_SSO - * sem_ch13.adb (Inherit_Delayed_Rep_Aspects): - Clear SSO defaults when explicit SSO is inherited. - (Analyze_Attribute_Definition_Clause): Clear SSO defaults when - explicit SSO is specified. - (Inherit_Aspects_At_Freeze_Point): - Clear SSO default when inheriting SSO. - * sem_ch3.adb (Set_Default_SSO): New procedure - (Analyze_Private_Extension_Declaration): Set defualt SSO - (Array_Type_Declaration): ditto (Build_Derived_Array_Type): ditto - (Build_Derived_Private_Type): ditto (Build_Derived_Record_Type): - ditto (Build_Derived_Type): ditto (Make_Class_Wide_Type): ditto - (Record_Type_Declaration): ditto - * sem_ch8.adb (Pop_Scope): Restore Default_SSO (Push_Scope): - Save Default_SSO - * sem_prag.adb (Analyze_Pragma, case - Default_Scalar_Storage_Order): Set Default_SSO - -2014-07-29 Ed Schonberg - - * sem_ch6.adb (Valid_Operator_Definition): Verify that - all parameter have mode IN. This check must be done here for - subprogram instantiations that have operator names, because their - analysis does not follow the same path as that for subprogram - declarations. - -2014-07-29 Robert Dewar - - * freeze.adb (Freeze_Entity, Concurrent_Type case): Add a guard - to make sure that the Etype of a component of the corresponding - record type is present before trying to freeze it. - * sem_ch5.adb: Minor reformatting. - -2014-07-29 Robert Dewar - - * exp_attr.adb, types.ads, types.h, exp_ch11.adb, a-except.adb, - a-except-2005.adb: Add new reason code PE_Stream_Operation_Not_Allowed, - and then use it when a stream operation is used from a library generic - when the restriction (No_Streams) is active. - -2014-07-29 Thomas Quinot - - * projects.texi: Fix minor typo. - -2014-07-29 Yannick Moy - - * sem_attr.adb (Analyze_Attribute): Fix generation of warning. - -2014-07-29 Arnaud Charlet - - * sem_ch5.adb (Check_Unreachable_Code): Do not remove code in - CodePeer mode. - -2014-07-29 Hristian Kirtchev - - * exp_ch7.adb (Find_Last_Init): Add local variable - Deep_Init_Found. Check the statement immediately following the - declaration if [Deep_]Initialization was not found. - -2014-07-29 Hristian Kirtchev - - * exp_util.adb (Is_Aliased): It appears that - 'reference-d and renamed objects still play some role in Boolean - expression with actions and cannot be finalized immediately. - -2014-07-29 Ed Schonberg - - * exp_dbug.adb (Qualify_Needed): For debugging purposes, - Loop names are not part of the full qualification of entity names. - -2014-07-29 Robert Dewar - - * einfo.adb (Has_Protected): Test base type. - * sem_ch4.adb (Analyze_Allocator): Reorganize code to make sure - that we always properly check No_Protected_Type_Allocators. - -2014-07-29 Ed Schonberg - - * sem_util.ads, sem_util.adb (Defining_Entity): Now applies to - loop declarations as well. - * exp_ch5.adb (Expand_Loop_Statement): Apply Qualify_Entity_Names - to an iterator loop, because it may contain local renaming - declarations that require debugging information. - -2014-07-29 Robert Dewar - - * sem_util.ads, exp_util.adb, sem_attr.adb: Minor reformatting. - -2014-07-29 Robert Dewar - - * einfo.ads, einfo.adb (Static_Real_Or_String_Predicate): New function - (Set_Static_Real_Or_String_Predicate): New procedure - * sem_ch13.adb (Build_Predicate_Functions): Accomodate static - string predicates (Is_Predicate_Static): Handle static string - predicates. - * sem_eval.adb (Real_Or_String_Static_Predicate_Matches): - New procedure (Check_Expression_Against_Static_Predicate): - Deal with static string predicates, now fully implemented - (Eval_Relational_Op): Allow string equality/inequality as static - if not comes from source. - -2014-07-29 Robert Dewar - - * sem_aggr.adb, exp_ch5.adb, sem_ch5.adb, exp_util.adb, einfo.adb, - einfo.ads, sem_util.adb, sem_attr.adb, sem_case.adb, sem_eval.adb, - sem_eval.ads, sem_ch13.adb: General cleanup of static predicate - handling. Change name of Discrete_Predicate to - Discrete_Static_Predicate, and replace testing of the presence of this - field by testing the flag Has_Static_Expression. - -2014-07-29 Robert Dewar - - * gnat_rm.texi: Document pragma Unevaluated_Use_Of_Old. - * opt.adb: Handle Uneval_Old. - * opt.ads (Uneval_Old, Uneval_Old_Config): New variables. - * par-prag.adb: Add dummy entry for pragma Unevaluated_Use_Of_Old. - * sem.ads (Save_Uneval_Old): New field in Scope_Stack_Entry. - * sem_attr.adb (Uneval_Old_Msg): New procedure. - * sem_ch8.adb (Push_Scope): Save Uneval_Old. - (Pop_Scope): Restore Uneval_Old. - * sem_prag.adb (Analyze_Pragma, case Unevaluated_Use_Of_Old): - Implemented. - * snames.ads-tmpl: Add entries for pragma Unevaluated_Use_Of_Old - Add entries for Name_Warn, Name_Allow. - -2014-07-29 Robert Dewar - - * sem_aggr.adb (Resolve_Array_Aggregate): Change Is_Static_Range - to Is_OK_Static_Range. - * sem_attr.adb (Eval_Attribute): Make sure we properly flag - static attributes (Eval_Attribute, case Size): Handle size of - zero properly (Eval_Attribute, case Value_Size): Handle size of - zero properly. - * sem_ch13.adb: Minor reformatting. - * sem_ch3.adb (Process_Range_Expr_In_Decl): Change - Is_Static_Range to Is_OK_Static_Range. - * sem_eval.adb (Eval_Case_Expression): Total rewrite, was - wrong in several ways (Is_Static_Range): Moved here from spec - (Is_Static_Subtype): Moved here from spec Change some incorrect - Is_Static_Subtype calls to Is_OK_Static_Subtype. - * sem_eval.ads: Add comments to section on - Is_Static_Expression/Raises_Constraint_Error (Is_OK_Static_Range): - Add clarifying comments (Is_Static_Range): Moved to body - (Is_Statically_Unevaluated): New function. - * sem_util.ads, sem_util.adb (Is_Preelaborable_Expression): Change - Is_Static_Range to Is_OK_Static_Range. - * sinfo.ads: Additional commments for Is_Static_Expression noting - that clients should almost always use Is_OK_Static_Expression - instead. Many other changes throughout front end units to obey - this rule. - * tbuild.ads, tbuild.adb (New_Occurrence_Of): Set Is_Static_Expression - for enumeration literal. - * exp_ch5.adb, sem_intr.adb, sem_ch5.adb, exp_attr.adb, exp_ch9.adb, - lib-writ.adb, sem_ch9.adb, einfo.ads, checks.adb, checks.ads, - sem_prag.adb, sem_ch12.adb, freeze.adb, sem_res.adb, exp_ch4.adb, - exp_ch6.adb, sem_ch4.adb, sem_ch6.adb, exp_aggr.adb, sem_cat.adb: - Replace all occurrences of Is_Static_Expression by - Is_OK_Static_Expression. - -2014-07-29 Hristian Kirtchev - - * exp_ch4.adb (Process_Transient_Object): Remove constant - In_Cond_Expr, use its initialization expression in place. - * exp_ch7.adb (Process_Declarations): There is no need to check - that a transient object being hooked is controlled as it would - not have been hooked in the first place. - * exp_util.adb (Is_Aliased): 'Reference-d or renamed transient - objects are not considered aliased when the related context is - a Boolean expression_with_actions. - (Requires_Cleanup_Actions): There is no need to check that a transient - object being hooked is controlled as it would not have been hooked in - the first place. - -2014-07-29 Robert Dewar - - * errout.adb: Minor reformatting. - -2014-07-29 Hristian Kirtchev - - * exp_ch3.adb (Default_Initialize_Object): Add new variables - Abrt_Blk and Dummy. Generate a dummy temporary when aborts are - not allowed to ensure the symmetrical generation of symbols. - * exp_ch7.adb (Build_Object_Declarations): Remove variables A_Expr - and E_Decl. Add new variables Decl and Dummy. Generate a dummy - temporary when aborts are not allowed to ensure symmertrical - generation of symbols. - * exp_intr.adb (Expand_Unc_Deallocation): Add new variable - Dummy. Generate a dummy temporary when aborts are not allowed - to ensure symmertrical generation of symbols. - -2014-07-29 Ed Schonberg - - * exp_dbug.adb (Debug_Renaming_Declaration): For an object - renaming, indicate that the renamed entity itself needs debug - information. This is necessary if that entity is a temporary, - e.g. part of the expansion of an explicit dereference in an - iterator. - -2014-07-29 Thomas Quinot - - * errout.adb (Set_Error_Posted): When propagating flag to - an enclosing named association, also propagate to the parent - of that node, so that named and positional associations are - treated consistently. - -2014-07-29 Ed Schonberg - - * sem_attr.adb (Resolve_Attribute, case 'Update): Set - Do_Range_Check properly on array component expressions that - have a scalar type. In GNATprove mode, only checks on scalar - components must be marked by the front-end. - -2014-07-29 Ed Schonberg - - * sem_res.adb (Resolve_Type_Conversion): If the type of the - expression is a limited view, use the non-limited view when - available. - -2014-07-29 Hristian Kirtchev - - * exp_ch4.adb (Expand_N_Case_Expression): Mark the generated - case statement as coming from a conditional expression. - (Expand_N_If_Expression): Mark the generated if statement as - coming from a conditional expression. - * exp_ch5.adb (Expand_N_Case_Statement): Do not process controlled - objects found in case statement alternatives when the case - statement is actually a case expression. - (Expand_N_If_Statement): - Do not process controlled objects found in an if statement when - the if statement is actually an if expression. - * sinfo.adb (From_Conditional_Expression): New routine. - (Set_From_Conditional_Expression): New routine. - * sinfo.ads Add new semantic flag From_Conditional_Expression and - update related nodes. - (From_Conditional_Expression): New routine along with pragma Inline. - (Set_From_Conditional_Expression): New routine along with pragma Inline. - -2014-07-29 Hristian Kirtchev - - * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Remove - formal parameter Obj_Id and update the comment on usage. Renamed - Obj_Typ to Func_Typ and update all occurrences. - (Find_Last_Init): Remove formal parameter Decl and update the comment - on usage. - Remove local constants Obj_Id and Obj_Typ. Remove local variables - Init_Typ and Is_Conc. Remove the extraction of the initialization type. - (Find_Last_Init_In_Block): Remove formal parameter - Init_Typ and update the comment on usage. - (Is_Init_Call): Remove formal parameter Init_Typ and update the comment - on usage. Check whether the procedure call is an initialization - procedure of either the object type or the initialization type. - (Is_Init_Proc_Of): New routine. - (Process_Object_Declaration): Obj_Id and Obj_Typ are now global to this - routine. Add new variable Init_Typ. Add circuitry to extract the object - type as well as the initialization type. - -2014-07-29 Robert Dewar - - * sem_case.adb: Minor reformatting. - * sem_aux.ads: Minor reformatting. - -2014-07-29 Ed Schonberg - - * sinfo.adb (Set_Else_Actions, Set_Then_Actions): Set parent - pointer on these fields, even though they are semantic, because - subsequent analysis and expansion of action nades may require - exploring the tree, for example to locate a node to be wrapped - when a function with controlled result is called. - -2014-07-29 Claire Dross - - * sem_aux.adb (Get_Binary_Nkind): Use case on - Name_Id instead of an intermediate string. - (Get_Unary_Nkind): Use case on Name_Id instead of an intermediate - string. - -2014-07-29 Sergey Rybin - - * gnat_ugn.texi (gnatelim, gnatstub, gnatmetric): Add note - about processing sources with preprocessor directives. - -2014-07-24 Martin Liska - - * gcc-interface/trans.c (finalize_nrv): Adjust function call. - * gcc-interface/utils.c (rest_of_subprog_body_compilation): Likewise. - (gnat_write_global_declarations): Likewise. - -2014-07-19 David Wohlferd - - * gnat_rm.texi: Clean up for makeinfo 5.2. - -2014-07-19 David Wohlferd - - * gnat_rm.texi (Machine Code Insertions): Clean up. - -2014-07-18 Robert Dewar - - * exp_ch7.adb: Minor reformatting. - -2014-07-18 Claire Dross - - * sem_aux.ads (Get_Binary_Nkind): New function that returns - the Node_Kind value of an entity defining a binary operator. - (Get_Unary_Nkind): New function that returns the Node_Kind value - of an entity defining a unary operator. - -2014-07-18 Pascal Obry - - * sysdep.c: comment update. - * adaint.c (__gnat_fputwc): Use wchar_t on a limited set of - platforms where it is known to be supported. - -2014-07-18 Thomas Quinot - - * sem_dist.adb (Process_Remote_AST_Declaration): Need - to set Fat_Type's Ekind in order to be able to use its - Corresponding_Remote_Type attribute. - -2014-07-18 Hristian Kirtchev - - * einfo.adb Last_Aggregate_Assignment is now Node 30. - (Last_Aggregate_Assignment): Include - constants in the assertion. Update the underlying node. - (Set_Last_Aggregate_Assignment): Include constants in the - assertion. Update the underlying node. (Write_Field11_Name): - Remove the entry for Last_Aggregate_Assignment. - (Write_Field30_Name): Add an entry for Last_Aggregate_Assignment. - * einfo.ads Update the node designation and usage of attribute - Last_Aggregate_Assignment. - * exp_aggr.adb (Expand_Array_Aggregate): Store the last - assignment statement used to initialize a controlled object. - (Late_Expansion): Store the last assignment statement used to - initialize a controlled record or an array of controlled objects. - * exp_ch3.adb (Expand_N_Object_Declaration): Default - initialization of objects is now performed in a separate routine. - (Default_Initialize_Object): New routine. - * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Add formal parameter - Obj_Id. Update the comment on usage. - (Find_Last_Init): Remove formal parameter Typ. Update comment on usage. - Reimplement the logic. (Find_Last_Init_In_Block): New routine. - (Is_Init_Call): Add formal parameter Init_Typ. Update the - comment on usage. Account for the type init proc when trying - to determine whether a statement is an initialization call. - (Make_Adjust_Call): Rename formal parameter For_Parent to - Skip_Self. Update all occurrences of For_Parent. Account for - non-tagged types. Update the call to Make_Call. - (Make_Call): Rename formal parameter For_Parent to Skip_Self. Update - comment on usage. Update all occurrences of For_Parent. - (Make_Final_Call): Rename formal parameter For_Parent to - Skip_Self. Update all occurrences of For_Parent. Account - for non-tagged types. Update the call to Make_Call. - (Process_Object_Declaration): Most variables and constants are - now local to the routine. - * exp_ch7.ads (Make_Adjust_Call): Rename formal parameter - For_Parent to Skip_Self. Update the comment on usage. - (Make_Final_Call): Rename formal parameter For_Parent to - Skip_Self. Update the comment on usage. - -2014-07-18 Ed Schonberg - - * sem_ch9.adb (Analyze_Requeue): The entry being referenced - can be a procedure that is implemented by entry, and have a - formal that is a synchronized interface. It does not have to - be declared as a protected operation. - -2014-07-18 Robert Dewar - - * gnat_rm.texi: Remove mention of obsolete attributes - Max[_Interrupt]_Priority, which have never been implemented - (or at the very least were removed long ago if they ever were - implemented. Add documentation of Max[_Interrupt]_Priority - constants in package System. - * ttypes.ads: Document actual handling of package System, - rather than a historical fantasy version. Remove mention of - non-existent attributes Max[_Interrupt]_Priority. - -2014-07-18 Pascal Obry - - * a-witeio.adb (Put): No 16-bit character output when text - translation is disabled. - * i-cstrea.ads: Code clean up. - -2014-07-18 Robert Dewar - - * gnat_rm.texi: Document that Wchar_T_Size and Word_Size are - static attributes. - -2014-07-18 Arnaud Charlet - - * a-witeio.adb, initialize.c: Update comments. Minor clean ups. - -2014-07-18 Pascal Obry - - * adaint.c: Do not include wchar.h on VxWorks. - * mingw32.h: Remove obsolete definition. - -2014-07-18 Pascal Obry - - * a-textio.adb, a-witeio.adb, a-ztexio.adb: Use C_Streams Default_Text. - * i-cstrea.ads (Content_Encoding): Moved here, add convention C. - * s-ficobl.ads (Content_Encoding): Moved to C_Streams. - * s-fileio.adb (Open): Adjust to use Content_Encoding from C_Streams. - -2014-07-18 Pascal Obry - - * a-textio.adb: Rename Is_Text_File to Text_Encoding. - * a-ztexio.adb: Likewise. - * a-witeio.adb: Likewise. - (Open): Pass file's translation mode to set_text_mode. - * s-ficobl.ads (Content_Encoding): New type. - (Text_Content_Encoding): New subtype. - (AFCB): Rename Is_Text_File to Text_Encoding. - * s-fileio.adb (Open): Handles new text_translation - values. Remove Is_Text_File which is equivalent to Text_Encoding - in Text_Content_Encoding. - * adaint.h (__gnat_set_mode): New routine. - * sysdep.c (__gnat_set_wide_text_mode): Removed. - (__gnat_set_mode): New routine. - -2014-07-18 Arnaud Charlet - - * gcc-interface/decl.c, gcc-interface/trans.c, - gcc-interface/utils.c (Is_Packed_Array_Type): Renamed - Is_Packed_Array_Impl_Type. - -2014-07-18 Gary Dismukes - - * sem_util.adb: Minor typo correction. - -2014-07-18 Ben Brosgol - - * gnat_rm.texi: Complete previous change. - -2014-07-18 Pascal Obry - - * s-fileio.adb: Minor style fix. - -2014-07-18 Ed Schonberg - - * sem_ch13.adb (Analyze_Aspect_Specifications): Detect improper - specification of stream attributes for subtypes that are not - first subtypes, to prevent malformed rep_item chains in the case - of such illegal specifications for discriminated private subtypes. - (Check_Overloaded_Name): Verify that the name is an entity name - before other checks. - -2014-07-18 Pascal Obry - - * adaint.c (__gnat_fputwc) Do not disable on cross-build. - -2014-07-18 Robert Dewar - - * sem_prag.adb, sem_attr.adb, - sem_aggr.adb, sinfo.ads, sem_eval.ads: Minor reformatting. - -2014-07-18 Pascal Obry - - * sysdep.c (__gnat_wide_text_translation_required): Removed from here. - * initialize.c (__gnat_wide_text_translation_required): Defined here. - -2014-07-18 Pascal Obry - - * adaint.c (__gnat_fputwc): New routine. - * s-crtl.ads (fputwc): Now imported as __gnat_fputwc. - -2014-07-18 Hristian Kirtchev - - * einfo.adb: Flag 270 is now used as Stores_Attribute_Old_Prefix. - (Set_Stores_Attribute_Old_Prefix): New routine. - (Stores_Attribute_Old_Prefix): New routine. - (Write_Entity_Flags): - Output flag Stores_Attribute_Old_Prefix. - * einfo.ads Add new flag Stores_Attribute_Old_Prefix along with - comment on usage. - (Set_Stores_Attribute_Old_Prefix): New routine - along with pragma Inline. - (Stores_Attribute_Old_Prefix): New - routine along with pragma Inline. - * exp_attr.adb (Expand_N_Attribute_Reference): Mark the generated - constant which captures the result of attribute 'Old's prefix. - * sem_util.adb (In_Assertion_Expression_Pragma): Recognize a - relocated expression which acted as a prefix of attribute 'Old. - -2014-07-18 Bob Duff - - * s-spsufi.adb (Finalize_And_Deallocate): Set Subpool.Owner to - null before dispatching to Deallocate_Subpool. - * s-stposu.ads (Default_Subpool_For_Pool): Change mode of - parameter of Default_Subpool_For_Pool to 'in out'. - * s-stposu.adb (Set_Pool_Of_Subpool): Use raise expression. Add - a message to the raise. - * sem_util.adb: Minor reformatting. - -2014-07-18 Robert Dewar - - * sem_util.adb (Check_Expression_Against_Static_Predicate): - Mark expression as non-static if it fails static predicate check, - and issue additional warning. - -2014-07-18 Pascal Obry - - * a-witeio.adb (Put): Control translation based on - wide_text_translation_required. - * adaint.c (CurrentCCSEncoding): New variable. - * initialize.c (__gnat_initialize): On Windows initialize - CurrentCCSEncoding based on values in GNAT_CCS_ENCODING - environment variable. - * mingw32.h (CurrentCCSEncoding): New external. - (__gnat_wide_text_translation_required): Likewise. - * sysdep.c (wide_text_translation_required): New variable. - (__gnat_set_wide_text_mode): Set mode based on CurrentCCSEncoding. - -2014-07-18 Hristian Kirtchev - - * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Remove global - variable Refined_States. Add global variable Matched_Items. - (Check_Dependency_Clause): Account for dependency - clauses utilizing states with visible null refinements. - (Is_Null_Refined_State): New routine. - (Match_Items): Record each successfully matched item of pragma Depends. - (Record_Item): New routine. - -2014-07-18 Ed Schonberg - - * sem_attr.adb (Analyze_Attribute, case 'Update): Set - Do_Range_Check flag on a dynamic index expression used in a - component association in the argument of Update. - -2014-07-18 Gary Dismukes - - * einfo.ads, sem_eval.ads, sem_ch13.adb: Minor reformatting. - -2014-07-18 Hristian Kirtchev - - * exp_ch6.adb (Expand_Simple_Function_Return): Redo the marking - of enclosing blocks, loops and the enclosing function using a - parent-based traversal. - * exp_util.adb (Wrap_Statements_In_Block): Suppress the secondary - stack reclamation if the iterator loop contains a return statement - that uses the stack. - * sem_ch5.adb (Analyze_Loop_Statement): There is no need to - patch up the scope stack as the secondary stack management now - takes into account the enclosing function of the iterator loop. - -2014-07-18 Robert Dewar - - * sem_ch3.adb, g-memdum.ads, i-cstrea.ads: Minor reformatting. - -2014-07-18 Robert Dewar - - * einfo.adb (Has_Static_Predicate): New function. - (Set_Has_Static_Predicate): New procedure. - * einfo.ads (Has_Static_Predicate): New flag. - * sem_ch13.adb (Is_Predicate_Static): New function - (Build_Predicate_Functions): Use Is_Predicate_Static to reorganize - (Add_Call): Minor change in Sloc of generated expression - (Add_Predicates): Remove setting of Static_Pred, no longer used. - * sem_ch4.adb (Has_Static_Predicate): Removed this function, - replace by use of the entity flag Has_Static_Predicate_Aspect. - * sem_eval.adb (Eval_Static_Predicate_Check): Check real case - and issue warning that predicate is not checked for now. - * sem_eval.ads (Eval_Static_Predicate_Check): Fix comments in - spec. - * sem_util.adb (Check_Expression_Against_Static_Predicate): - Carry out check for any case where there is a static predicate, - and output appropriate message. - * sinfo.ads: Minor comment corrections. - -2014-07-18 Ed Schonberg - - * exp_ch3.adb (Expand_Freeze_Record_Type): If the type is derived - from an untagged private type whose full view is tagged, the type - is marked tagged for layout reasons, but it has no dispatch table, - so Set_All_DT_Position must not be called. - * exp_ch13.adb: If the freeze node is for a type internal to a - record declaration, as is the case for a class-wide subtype - of a parent component, the relevant scope is the scope of the - enclosing record. - -2014-07-18 Thomas Quinot - - * g-memdum.adb, g-memdum.ads: Code clean ups. - -2014-07-18 Hristian Kirtchev - - * sem_prag.adb (Check_Dependency_Clause): - Update the comment on usage. Reimplement the mechanism which - attempts to match a single clause of Depends against one or - more clauses of Refined_Depends. - (Input_Match): Removed. - (Inputs_Match): Removed. - (Is_Self_Referential): Removed. - (Normalize_Clause): Update the call to Split_Multiple_Outputs. - (Normalize_Outputs): Rename variable Split to New_Claue and update - all its occurrences. - (Report_Extra_Clauses): Update the comment on usage. - (Split_Multiple_Outputs): Renamed to Normalize_Outputs. - -2014-07-18 Gary Dismukes - - * i-cstrea.ads: Minor reformatting. - -2014-07-18 Hristian Kirtchev - - * exp_util.adb (Wrap_Statements_In_Block): Propagate both - secondary stack-related flags to the generated block. - * sem_ch5.adb (Analyze_Loop_Statement): Update the scope chain - once the loop is relocated in a block. - -2014-07-18 Robert Dewar - - * repinfo.ads: Add documentation on handling of back annotation - for dynamic case. - -2014-07-18 Ed Schonberg - - * sinfo.ads, sinfo.adb (Incomplete_View): New semantic attribute - of full type declaration, denotes previous declaration for - incomplete view of the type. - * sem_ch3.adb (Analyze_Full_Type_Declaration): Set Incomplete_View - of declaration if one is present. - (Replace_Type): When constructing the signature of an inherited - operation, handle properly the case where the operation has a - formal whose type is an incomplete view. - * sem_util.adb (Collect_Primitive_Operations): Handle properly - the case of an operation declared after an incomplete declaration - for a type T and before the full declaration of T. - -2014-07-18 Pascal Obry - - * i-cstrea.ads: Add documentation for set_wide_text_mode. - -2014-07-18 Robert Dewar - - * a-witeio.adb: Minor code reorganization. - * i-cstrea.ads: Add comment. - -2014-07-18 Thomas Quinot - - * s-oscons-tmplt.c (NAME_MAX): Minor cleaup and comment - clarifications. - -2014-07-18 Robert Dewar - - * g-memdum.adb, g-memdum.ads, exp_strm.adb: Minor reformatting. - -2014-07-18 Pascal Obry - - * s-crtl.ads, i-cstrea.ads (fputwc): New routine. - * a-witeio.adb (Put): On platforms where there is translation - done by the OS output the raw text. - (New_Line): Use Put above to properly handle the LM wide characters. - -2014-07-18 Thomas Quinot - - * g-memdum.adb, g-memdum.ads (Dump): New parameter Prefix, defaulted - to Absolute_Address. - -2014-07-18 Eric Botcazou - - * opt.ads (Suppress_Back_Annotation): Remove as unused. - * fe.h (Back_Annotate_Rep_Info): Likewise. - (Global_Discard_Names): Likewise. - -2014-07-18 Robert Dewar - - * sem_ch13.adb (Is_Type_Ref): Check that type name is not - parenthesized. - -2014-07-18 Vincent Celier - - * s-osinte-vms.ads: Fix style errors. - -2014-07-18 Thomas Quinot - - * s-oscons-tmplt.c (_POSIX_SOURCE): Define in order to get - NAME_MAX and PATH_MAX. - -2014-07-18 Bob Duff - - * exp_strm.adb (Build_Record_Or_Elementary_Input_Function, - Build_Record_Or_Elementary_Output_Procedure): For Input and - Output attributes, do not read/write the discriminants if they - have default values; that will be done by Read/Write. - -2014-07-18 Robert Dewar - - * sem_aggr.adb, exp_ch5.adb, sem_ch3.adb, layout.adb, sem_type.adb, - exp_util.adb, exp_attr.adb, einfo.adb, einfo.ads, exp_pakd.adb, - checks.adb, exp_pakd.ads, freeze.adb, sem_util.adb, exp_dbug.adb, - exp_dbug.ads, exp_ch4.adb, sem_ch8.adb, exp_aggr.adb, sem_eval.adb, - sem_ch13.adb: Change name Packed_Array_Type to Packed_Array_Impl_Type. - -2014-07-18 Robert Dewar - - * lib-writ.adb, makeutl.adb, ali.ads: Minor reformatting. - -2014-07-18 Vincent Celier - - * lib-writ.ads: Update documentation about the D lines. - -2014-07-18 Ed Schonberg - - * sem_ch13.adb (Replace_Type_References_Generic): Use type entity - as a parameter, rather than its Chars field, in order to locate - freeze node of type. If the predicate or invariant has references - to types other than the one to which the contract applies, these - types must be frozen, and the corresponding predicate functions - created, before that freeze node. - -2014-07-18 Robert Dewar - - * freeze.adb, einfo.ads, einfo.adb: Minor code reorganization. - * par_sco.adb: Minor reformatting. - -2014-07-18 Gary Dismukes - - * exp_ch4.adb (Real_Range_Check): Turn off - the Do_Range_Check flag on the conversion's current Expression - argument rather than on the originally captured Operand node, - as Expression may reflect a rewriting (as in conversions to a - fixed-point type). - -2014-07-18 Vincent Celier - - * ali.adb (Scan_ALI): Set Sdep_Record.Unit_Name, when the unit - is not a subunit. - * ali.ads (Sdep_Record): New component Unit_Name. - * lib-writ.adb (Write_ALI): Write the unit name in D lines. - * makeutl.adb (Check_Source_Info_In_ALI): Return False if a - dependent unit is in a project and the source file name is not - one of its sources. - -2014-07-18 Bob Duff - - * s-addima.ads: Minor: add comment. - -2014-07-18 Thomas Quinot - - * freeze.adb (Check_Component_Storage_Order): Fix enforcement - of nesting rules for composites with different SSOs. - -2014-07-18 Thomas Quinot - - * par_sco.adb (Is_Logical_Operator): An If_Expression is not - a proper logical operator. - (Has_Decision): An If_Expression indicates the presence of a decision - although it is not a logical operator. - -2014-07-18 Robert Dewar - - * gnat_ugn.texi: Remove note that -gnatR not allowed with -gnatc. - * switch-c.adb: Remove prohibition of -gnatR and -gnatc together. - -2014-07-18 Eric Botcazou - - * sem_ch13.adb (Kill_Rep_Clause): Clear Comes_From_Source flag - on the null statement. - -2014-07-18 Thomas Quinot - - * adaint.c: Minor comment rewording. - * socket.c: Define macros _REENTRANT and _THREAD_SAFE so that - use of errno in this file is thread safe. - -2014-07-18 Arnaud Charlet - - * gnat_ugn.texi: Doc clarification. - * sem_ch13.adb (Kill_Rep_Clause): Use Replace not Rewrite. - * sem_ch13.ads: Minor comment update. - -2014-07-18 Robert Dewar - - * repinfo.ads: Minor comment fix. - -2014-07-18 Robert Dewar - - * par-prag.adb: Add dummy entry for Default_Scalar_Storage_Order. - * sem_prag.adb: Add dummy implementation of - Default_Scalar_Storage_Order. - * snames.ads-tmpl: Add dummy entry for - Default_Scalar_Storage_Order pragma. - -2014-07-18 Robert Dewar - - * opt.adb (Tree_Read): Read Address_Is_Private, - Ignore_Rep_Clauses, Ignore_Style_Check_Pragmas, Multiple_Unit_Index. - (Tree_Write): Corresponding writes - * opt.ads: Minor comment reformatting and fixes. - * tree_io.ads: Increment ASIS_Version_Number. - -2014-07-18 Robert Dewar - - * sem_attr.adb, s-os_lib.ads, prj-tree.adb: Minor reformatting. - * types.h: Fix typo. - -2014-07-18 Robert Dewar - - * freeze.adb (Check_Address_Clause): Use Kill_Rep_Clause (no - functional change). - * gnat_ugn.texi: Document that -gnatI removes rep clauses from - ASIS trees. - * sem_ch13.adb (Kill_Rep_Clause): New procedure - (Analyze_Attribute_Definition_Clause): Use - Kill_Rep_Clause. This is just a cleanup, no functional effect. - (Analyze_Enumeration_Representation_Clause): - Use Kill_Rep_Clause. This means that enum rep - clauses are now properly removed from -gnatct trees. - (Analyze_Record_Representation_Clause): Same change. - * sem_ch13.ads (Kill_Rep_Clause): New procedure. - -2014-07-18 Pascal Obry - - * s-os_lib.ads, s-os_lib.adb (GM_Time_Of): New routine to create an - OS_Time from time parts. - * adaint.h, adaint.c (__gnat_to_os_time): New routine. - -2014-07-18 Ed Schonberg - - * sem_ch4.adb (Try_Container_Indexing): Refine previous patch for - indexing over containers that are derived types: check whether - signature of found operation has the correct first parameter - before retrieving directly a primitive operation. - -2014-07-18 Ed Schonberg - - * sem_attr.adb (Analyze_Attribute, case 'Update): Set - Do_Range_Check flag on dynamic bounds of a range used in a - component association in the argument of Update. - -2014-07-18 Thomas Quinot - - * adaint.c: #define _REENTRANT and _THREAD_SAFE in order for - accesses to errno(3) to be thread safe. - -2014-07-18 Vincent Celier - - * prj-tree.adb (Imported_Or_Extended_Project_Of): For each non - limited imported project that is an extending project, return - a project being extended if it has the expected name. - -2014-07-18 Pascal Obry - - * s-os_lib.ads, s-os_lib.adb (Set_File_Last_Modify_Time_Stamp): New - routine to set the last modification time stamp for the given file. - * gnatchop.adb (File_Time_Stamp): Removed. - (Write_Unit): Use - Set_File_Last_Modify_Time_Stamp instead of ad-hoc implementation. - -2014-07-18 Ed Schonberg - - * sem_aggr.adb (Aggregate_Constraint_Checks): Moved to sem_util. - * sem_util.ads, sem_util.adb (Aggregate_Constraint_Checks): - Moved here, so it can be shared with the resolution of 'Update, - whose argument shares some features with aggregates. - * sem_attr.adb (Resolve_Attribute, case 'Update): Apply - Aggregate_Constraint_Checks with the expression of each - association, so that the Do_Range_Check flag is set when needed. - -2014-07-18 Ed Schonberg - - * sem_ch4.adb (Try_Container_Indexing): If the container - type is a derived type, the value of the inherited aspect is - the Reference operation declared for the parent type. However, - Reference is also a primitive operation of the new type, and - the inherited operation has a different signature. We retrieve - the right one from the list of primitive operations of the - derived type. - -2014-07-18 Vincent Celier - - * debug.adb: Update comment. - -2014-07-18 Hristian Kirtchev - - * exp_util.adb (Needs_Finalization): There is no reason why a - C type should not benefit from finalization actions. - -2014-07-18 Thomas Quinot - - * s-oscons-tmplt.c (NAME_MAX): Fix definition for Solaris - (FILENAME_MAX): Remove unneeded definition. - -2014-07-18 Robert Dewar - - * exp_attr.adb, debug.adb: Update comments. - -2014-07-18 Vincent Celier - - * par-ch4.adb (Simple_Expression): Add missing style check - for binary adding operators. - (Term): Add missing style check for multiplying operators. - -2014-07-18 Robert Dewar - - * impunit.adb: Minor comment correction. - * widechar.adb, s-wchcon.ads: Minor comment corrections. - -2014-07-18 Robert Dewar - - * sem_ch13.adb (Build_Discrete_Static_Predicate): New name - for Build_Static_Predicate (Build_Predicate_Functions): - Don't try to build discrete predicate for real type. - (Build_Predicate_Functions): Report attempt to use - Static_Predicate function on real type as unimplemented. - * sem_util.adb (Check_Expression_Against_Static_Predicate): - Add guard to prevent blow up on predicate for real type. - -2014-07-18 Ed Schonberg - - * einfo.adb (Set_Static_Predicate): Simplify assertion to handle - properly static predicate on enumeration types and modular types - (not subtypes). - -2014-07-18 Pierre-Marie Derodat - - * scos.ads (SCO_Unit_Table_Entry): Add a field to keep track of - the corresponding source file index. - * get_scos.ads (Get_SCOs): Add a default value for it. - * par_sco.adb (SCO_Record): Fill the corresponding value. - * scos.h: New. - -2014-07-18 Vincent Celier - - * a-strunb-shared.adb, s-auxdec.ads, s-rannum.adb, atree.ads, - urealp.adb, vms_data.ads, lib.ads, s-auxdec-vms_64.ads: Minor - reformatting. - * gnat_ugn.texi: Add documentation for new gnatmem switch -t. - -2014-07-18 Thomas Quinot - - * g-sercom.ads (Set): document possible data loss. - -2014-07-18 Ed Schonberg - - * exp_attr.adb (Expand_N_Attribute_Reference, cases Input, - Output, Read, Write): If the restriction No_Streams is active, - replace each occurrence of a stream attribute by an explicit - Raise statement. - -2014-07-18 Robert Dewar - - * par_sco.adb, a-reatim.ads, exp_attr.adb, sem_util.adb: Minor - reformatting. - -2014-07-18 Robert Dewar - - * einfo.ads, einfo.adb (Has_Out_Or_In_Out_Parameter): New flag and - function. - (Set_Has_Out_Or_In_Out_Parameter): New procedure. - * sem_ch6.adb (Set_Formal_Mode): Set Has_Out_Or_In_Out_Parameter flag. - * sem_res.adb (Resolve_Call): Error if call of Ada 2012 function - with OUT or IN OUT from earlier Ada mode (e.g. Ada 2005) - -2014-07-18 Robert Dewar - - * bcheck.adb (Check_Consistent_Restrictions): - Remove obsolete code checking for violation of - No_Standard_Allocators_After_Elaboration (main program) - * bindgen.adb (Gen_Adainit): Handle - No_Standard_Allocators_After_Elaboration - (Gen_Output_File_Ada): ditto. - * exp_ch4.adb (Expand_N_Allocator): Handle - No_Standard_Allocators_After_Elaboration. - * Makefile.rtl: Add entry for s-elaall - * rtsfind.ads: Add entry for Check_Standard_Allocator. - * s-elaall.ads, s-elaall.adb: New files. - * sem_ch4.adb (Analyze_Allocator): Handle - No_Standard_Allocators_After_Elaboration. - -2014-07-18 Robert Dewar - - * lib.adb, lib.ads, lib-writ.adb, lib-writ.ads, ali.adb, - ali.ads, lib-load.adb: Remove Lib.Has_Allocator and all uses. - Remove AB parameter from ali files and all uses. - Remove Allocator_In_Body and all uses. - -2014-07-18 Robert Dewar - - * g-expect-vms.adb: Add comment. - -2014-07-18 Thomas Quinot - - * par_sco.adb (Is_Logical_Operation): return True for - N_If_Expression. - -2014-07-18 Ed Schonberg - - * sem_attr.adb (Resolve_Attribute, case 'Update): Do full - analysis and resolution of each choice in the associations within - the argument of Update, because they may be variable names. - -2014-07-18 Hristian Kirtchev - - * exp_attr.adb (Expand_Loop_Entry_Attribute): Insert any condition - actions before the generated if statement. - -2014-07-18 Hristian Kirtchev - - * gnat_ugn.texi Enhance the documentation of - switches -gnateA and -gnateV. - -2014-07-18 Ed Schonberg - - * sem_util.adb (Build_Default_Subtype): Add missing condition - so that code matches description: use the full view of the base - only if the base is private and the subtype is not. - -2014-07-17 Gary Dismukes - - * exp_disp.adb: Minor reformatting. - * exp_disp.adb: Minor code reorganization. - -2014-07-17 Thomas Quinot - - * gnat_rm.texi, freeze.adb (Check_Component_Storage_Order): Do not - require an explicit SSO attribute definition clause on a composite type - just because one of its components has one. - -2014-07-17 Robert Dewar - - * sem_attr.adb (Analyze_Attribute, case Loop_Entry): Rewrite - attribute out of existence if the enclosing pragma is ignored. - * sem_util.adb: Minor reformatting. - -2014-07-17 Ed Schonberg - - * exp_aggr.adb (Expand_Array_Aggregate): Handle properly an - array aggregate expanded into assignments when it appears as a - local declaration in an inlined body. - -2014-07-17 Doug Rupp - - * init.c [__ANDROID__]: Modify for ZCX. - * exp_aggr.adb: Minor reformatting - * sigtramp-armvxw.c, sigtramp-ppcvxw.c: Update comments. - -2014-07-17 Robert Dewar - - * a-strunb-shared.ads, a-stwiun-shared.ads, a-stzunb-shared.ads, - exp_ch7.adb, g-pehage.ads, g-socket.ads, gnat_ugn.texi, gnat_ugx.texi, - scng.adb: Remove incorrect usage "allow to" and "allows to". - -2014-07-17 Robert Dewar - - * exp_dist.adb: Minor reformatting. - -2014-07-17 Bob Duff - - * gnat_ugn.texi: Improve documentation of Unrestricted_Access. - -2014-07-17 Robert Dewar - - * sem_ch13.adb (Build_Invariant_Procedure): Add variable Nam - (Add_Invariants): Set Nam to Name_Type_Invariant if from aspect. - -2014-07-17 Thomas Quinot - - * exp_pakd.adb (Create_Packed_Array_Type.Install_PAT): For a - non-bit-packed array, propagate Reverse_Storage_Order to the - packed array type. - -2014-07-17 Javier Miranda - - * exp_disp.adb: Fix comment. - * exp_pakd.adb: Minor reformatting. - -2014-07-17 Robert Dewar - - * bindgen.adb (Gen_Elab_Calls): Skip reference to elab - entity if none exists (Gen_Elab_Calls): Complain if clash with - No_Multiple_Elaboration. - * s-rident.ads, restrict.ads: Add restriction No_Multiple_Elaboration. - * sem_util.adb (Build_Elaboration_Entity): Skip building entity - if not needed. - * gnat_rm.texi: Document restriction No_Multiple_Elaboration. - * sem_ch4.adb: Minor comment updates. - -2014-07-17 Ed Schonberg - - * exp_ch9.adb (Buid_Protected_Subprogram_Call): Preserve type - of function call for later use when shared passive objects - are involved. - -2014-07-17 Hristian Kirtchev - - * par-ch13.adb (Get_Aspect_Specifications): - Catch a case where the argument of SPARK aspect Refined_State - is not properly parenthesized. - -2014-07-17 Hristian Kirtchev - - * exp_ch6.adb (Expand_Ctrl_Function_Call): Do not extend - the lifetime of a reference to an Ada 2012 container element. - (Is_Element_Reference): New routine. - -2014-07-17 Robert Dewar - - * ali.ads: Minor comment fix. - * lib-writ.adb: Minor reformatting. - -2014-07-17 Ed Schonberg - - * sem_ch10.adb (Analyze_Proper_Body): When analyzing a subunit - in ASIS mode, load another subunit only if it a subunit of the - current one, not a sibling that has been reached through the - analysis of an ancestor. This allows the construction of the - ASIS tree for the subunit even when sibling subunits have errors. - -2014-07-17 Hristian Kirtchev - - * sem_ch3.adb (Analyze_Declarations): Remove the guard which - prevents the analysis of various contracts when the associated - construct is erroneous. - * sem_util.adb (Save_SPARK_Mode_And_Set): Do not query the - SPARK_Pragma of an illegal or a partially decorated construct. - -2014-07-17 Robert Dewar - - * s-imguns.ads: Minor reformatting. - -2014-07-17 Hristian Kirtchev - - * exp_ch7.adb (Build_Finalization_Master): Move all local - variables to the proper code section. When looking for an existing - finalization master, inspect the ultimate ancestor type of the - full view. - * sem_util.ads, sem_util.adb (Root_Type_Of_Full_View): New routine. - -2014-07-17 Robert Dewar - - * aspects.ads, aspects.adb: Add entries for aspect Annotate. - * gnat_rm.texi: Document Entity argument for pragma Annotate and - Annotate aspect. - * sem_ch13.adb (Analyze_Aspect_Specification): Add processing - for Annotate aspect. - * sem_prag.adb (Analyze_Pragma, case Annotate): Allow optional - Entity argument at end. - * sinfo.ads (N_Aspect_Specification): Add note on Annotate aspect. - -2014-07-17 Tristan Gingold - - * s-imguns.ads: Fix minor typo. - -2014-07-17 Thomas Quinot - - * sprint.adb: Minor reformatting. - -2014-07-17 Robert Dewar - - * sprint.adb (Write_Itype): Print proper header for string - literal subtype. - -2014-07-17 Steve Baird - - * sinfo.ads, sem_scil.ads: Improve comments, minor reformatting. - -2014-07-17 Vincent Celier - - * gnatbind.adb: Change in message "try ... for more information". - -2014-07-17 Robert Dewar - - * sprint.adb: Code clean up. - -2014-07-17 Hristian Kirtchev - - * exp_ch7.adb (Find_Last_Init): Relocate local variables to - the relevant code section. Add new local constant Obj_Id. When - a limited controlled object is initialized by a function call, - the build-in-place object access function call acts as the last - initialization statement. - * exp_util.adb (Is_Object_Access_BIP_Func_Call): New routine. - (Is_Secondary_Stack_BIP_Func_Call): Code reformatting. - * exp_util.ads (Is_Object_Access_BIP_Func_Call): New routine. - -2014-07-17 Ed Schonberg - - * sem_ch8.adb (Analyze_Generic_Renaming): For generic subprograms, - propagate intrinsic flag to renamed entity, to allow e.g. renaming - of Unchecked_Conversion. - * sem_ch3.adb (Analyze_Declarations): Do not analyze contracts - if the declaration has errors. - -2014-07-17 Ed Schonberg - - * a-rbtgbk.adb: a-rbtgbk.adb (Generic_Insert_Post): Check whether - container is busy before checking whether capacity allows for - a further insertion. Insertion in a busy container that is full - raises Program_Error rather than Capacity_Error. Previous to that - patch which exception was raised varied among container types. - -2014-07-17 Robert Dewar - - * g-comlin.ads, g-comlin.adb: Minor clean up. - -2014-07-17 Bob Duff - - * gnat_ugn.texi: Update gnatpp doc. - -2014-07-17 Robert Dewar - - * gnat_rm.texi: Document new restriction No_Long_Long_Integers. - * exp_ch4.adb (Make_Array_Comparison_Op): Add note that we - could do this by actually expanding a real generic. - * a-tags.ads: Add comments about performance. - * sprint.adb (Sprint_Node_Actual, case N_Object_Declaration): - Print Etype of defining identifier, rather than the object - definition. More information. - -2014-07-17 Thomas Quinot - - * exp_dist.adb: Minor documentation clarification. - -2014-07-17 Hristian Kirtchev - - * exp_util.adb (Is_Aliased): Revert previous change. - -2014-07-17 Vincent Celier - - * g-comlin.adb (Try_Help): New procedure. - (Getopt): Use new procedure Try_Help. - * g-comlin.ads (Try_Help): New procedure. - -2014-07-17 Bob Duff - - * gnat_ugn.texi: Minor update. - -2014-07-17 Robert Dewar - - * gnat_rm.texi: Improve documentation of Unrestricted_Access. - * sinfo.ads: Document restriction on aggregates (must expand to - assignments if one or more assignments needs expansion, e.g. for - controlled types). - * sem_ch13.adb: All warning messages regarding bit order should - be info: messages. - * gnat_ugn.texi: Minor correction of missing @ on @code - -2014-07-17 Robert Dewar - - * restrict.ads (Implementation_Restriction): Add No_Long_Long_Integer. - * s-rident.ads (Partition_Boolean_Restrictions): Add - No_Long_Long_Integer. - * sem_ch3.adb (Modular_Type_Declaration): Size must be <= - Long_Integer'Size if restriction No_Long_Long_Integer is active. - (Signed_Integer_Type_Declaration): Do not allow Long_Long_Integer - as the implicit base type for a signed integer type declaration - if restriction No_Long_Long_Integer is active. - * sem_util.ads, sem_util.adb (Set_Entity_With_Checks): Include check for - No_Long_Long_Integer. - -2014-07-17 Robert Dewar - - * sem_ch3.adb, a-ztexio.ads, exp_imgv.adb, casing.adb, casing.ads, - einfo.ads, checks.adb, sem_ch12.adb, a-textio.ads, freeze.adb, - repinfo.adb, exp_ch6.adb, sem_ch4.adb, a-witeio.ads, sem_ch8.adb, - sem_warn.adb, exp_aggr.adb, exp_dist.adb, par-tchk.adb, s-fatgen.adb, - treepr.adb, lib-xref.adb: Remove the word kludge from ada sources. - -2014-07-17 Robert Dewar - - * debug.adb: Remove -gnatdQ. - * exp_disp.adb: Remove -gnatdQ. - * a-ztenio.ads, a-wtinio.ads, a-wtmoio.ads, a-ztcoau.ads, a-tiinio.ads, - a-wtfiio.ads, a-timoio.ads, sem_ch12.adb, a-tifiio.ads, a-ztinio.ads, - rtsfind.adb, rtsfind.ads, a-ztmoio.ads, a-wtdeio.ads, a-ztfiio.ads, - a-tideio.ads, a-wtflio.ads, a-ztdeio.ads, sem_ch8.adb, a-tiflio.ads, - sprint.adb, a-ztflio.ads, snames.ads-tmpl, a-wtenio.ads, - a-tienio.ads: Rename Text_IO_Kludge to Text_IO_Special_Unit. - -2014-07-17 Robert Dewar - - * back_end.adb: Minor reformatting and comment additions. - * checks.ads, checks.adb (Duplicated_Tag_Checks_Suppressed): New - function. - * exp_disp.adb (Make_DT): Use Duplicated_Tag_Checks_Suppressed. - (Make_VM_TSD): Use Duplicated_Tag_Checks_Suppressed. - * gnat_rm.texi: Document new check Duplicated_Tag_Checks_Suppressed. - * gnat_ugn.texi: Additional documentation for Duplicated_Tag_Check. - * snames.ads-tmpl (Duplicated_Tag_Checks_Suppressed): New check. - * types.ads (Duplicated_Tag_Checks_Suppressed): New check. - -2014-07-17 Robert Dewar - - * gnat_rm.texi: Minor comment updates. - -2014-07-17 Ed Schonberg - - * sem_util.adb (Make_Explicit_Dereference): If the expression - being dereferenced is a generalized indexing, reset the overloaded - flag on the generalized indexing call, consistent with the - resetting of the flag on the original indexed component. - -2014-07-17 Robert Dewar - - * gnat_ugn.texi: Document advise not to mix -gnatV? and - optimization. - -2014-07-17 Robert Dewar - - * checks.adb (Insert_Valid_Check): Don't insist on a name - for the prefix when we make calls to Force_Evaluation and - Duplicate_Subexpr_No_Checks. - * exp_util.adb (Is_Volatile_Reference): Handle all cases properly - (Remove_Side_Effects): Handle all volatile references right - (Side_Effect_Free): Volatile reference is never side effect free - * sinfo.ads (N_Attribute_Reference): Add comments explaining - that in the tree, the prefix can be a general expression. - -2014-07-17 Hristian Kirtchev - - * sem_ch6.adb (Analyze_Subprogram_Body_Contract, - Analyze_Subprogram_Contract): Add comments on SPARK_Mode save/restore. - * sem_ch7.adb (Analyze_Package_Body_Contract, - Analyze_Package_Contract): Add comments on SPARK_Mode save/restore. - -2014-07-17 Robert Dewar - - * exp_ch7.ads, exp_util.ads: Document Insert_Action_After, - Store_After_Actions_In_Scope. - -2014-07-17 Robert Dewar - - * sem_aux.ads: Minor comment addition. - -2014-07-17 Ed Schonberg - - * sem_res.adb (Make_Call_Into_Operator): If the call is already - a rewriting of an operator node, there are no actuals to be - propagated from original node to rewritten node when in ASIS mode. - -2014-07-17 Hristian Kirtchev - - * sem_ch6.adb (Analyze_Subprogram_Body_Contract, - Analyze_Subprogram_Contract): Add new local variable Mode. Save - and restore the SPARK mode of the related construct in a - stack-like fashion. - * sem_ch7.adb (Analyze_Package_Body_Contract, - Analyze_Package_Contract): Add new local variable Mode. Save and - restore the SPARK mode of the related construct in a stack-like fashion. - * sem_util.adb Remove with and use clause for Opt. - (Restore_SPARK_Mode): New routine. - (Save_SPARK_Mode_And_Set): New routine. - * sem_util.ads Add with and use clause for Opt. - (Restore_SPARK_Mode): New routine. - (Save_SPARK_Mode_And_Set): New routine. - -2014-07-17 Hristian Kirtchev - - * exp_util.adb (Is_Aliased): Transient objects - within an expression with actions cannot be considered aliased. - -2014-07-17 Thomas Quinot - - * sem.ads (Scope_Stack_Entry): Reorganize storage of action lists; - introduce a new list (cleanup actions) for each (transient) scope. - * sinfo.ads, sinfo.adb (Cleanup_Actions): New attribute for - N_Block_Statement - * exp_ch7.ads (Store_Cleanup_Actions_In_Scope): New subprogram. - * exp_ch7.adb (Store_Actions_In_Scope): New subprogram, common - processing for Store_xxx_Actions_In_Scope. - (Build_Cleanup_Statements): Allow for a list of additional - cleanup statements to be passed by the caller. - (Expand_Cleanup_Actions): Take custom cleanup actions associated - with an N_Block_Statement into account. - (Insert_Actions_In_Scope_Around): Account for Scope_Stack_Entry - reorganization (refactoring only, no behaviour change). - (Make_Transient_Block): Add assertion to ensure that the current - scope is indeed a block (namely, the entity for the transient - block being constructed syntactically, which has already been - established as a scope). If cleanup actions are present in the - transient scope, transfer them now to the transient block. - * exp_ch6.adb (Expand_Protected_Subprogram_Call): Freeze the - called function while it is still present as the name in a call - in the tree. This may not be the case later on if the call is - rewritten into a transient block. - * exp_smem.adb (Add_Shared_Var_Lock_Procs): The post-actions - inserted after calling a protected operation on a shared passive - protected must be performed in a block finalizer, not just - inserted in the tree, so that they are executed even in case of - a normal (RETURN) or abnormal (exception) transfer of control - outside of the current scope. - * exp_smem.ads (Add_Shared_Var_Lock_Procs): Update documentation - * sem_ch8.adb, expander.adb, exp_ch11.adb: Adjust for - Scope_Stack_Entry reorganization. - -2014-07-17 Thomas Quinot - - * exp_disp.adb (Make_DT, Make_VM_TSD): Do not omit Check_TSD - call for types that do not have an explicit attribute definition - clause for External_Tag, as their default tag may clash with an - explicit tag defined for some other type. - -2014-07-17 Hristian Kirtchev - - * exp_util.adb (Is_Controlled_Function_Call): Recognize a - controlled function call with multiple actual parameters that - appears in Object.Operation form. - -2014-07-17 Thomas Quinot - - * einfo.ads, einfo.adb (Has_External_Tag_Rep_Clause): Remove - entity flag. - * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case - External_Tag): No need to set entity flag. - * sem_aux.ads, sem_aux.adb (Has_External_Tag_Rep_Clause): - Reimplement correctly in terms of Has_Rep_Item. - -2014-07-17 Thomas Quinot - - * exp_ch7.adb (Establish_Transient_Scope.Find_Node_To_Be_Wrapped): - Start examining the tree at the node passed to - Establish_Transient_Scope (not its parent). - * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): - The access type for the variable storing the reference to - the call must be declared and frozen prior to establishing a - transient scope. - * exp_ch9.adb: Minor reformatting. - -2014-07-17 Pascal Obry - - * s-os_lib.ads: Minor comment update. - -2014-07-17 Tristan Gingold - - * sysdep.c: Add ATTRIBUTE_UNUSED to avoid warnings. Fix some - indentation. - * socket.c: Remove #warning to avoid warning. - * expect.c: Indent some preprocessor directives to clarify - nested if. Do not use wait.h on PikeOS. Add ATTRIBUTE_UNUSED - to remove warnings. - * env.c: Fix indentation. Port to PikeOS. - * gsocket.h: Port to PikeOS. Remove #warning. - * terminals.c: Port to PikeOS. Fix indentation of the stubs. - Add ATTRIBUTE_UNUSED to stubs arguments. Fix return statement - of stubbed __gnat_setup_parent_communication. - * adaint.c: Port to PikeOS. Reindent some preprocessor - directives to clarify nested if. Fix indentation. Add missing - ATTRIBUTE_UNUSED. - -2014-07-17 Robert Dewar - - * sem_attr.adb: Minor reformatting. - -2014-07-17 Robert Dewar - - * exp_ch7.adb, exp_ch7.ads, sinfo.ads: Minor reformatting. - -2014-07-17 Ed Schonberg - - * sem_case.adb (Check_Choice_Set): If the case expression is the - expression in a predicate, do not recheck coverage against itself, - to prevent spurious errors. - * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Indicate that - expression comes from an aspect specification, to prevent spurious - errors when expression is a case expression in a predicate. - -2014-07-17 Pascal Obry - - * adaint.c, adaint.h (__gnat_set_executable): Add mode parameter. - * s-os_lib.ads, s-os_lib.adb (Set_Executable): Add Mode parameter. - -2014-07-17 Vincent Celier - - * gnatchop.adb, make.adb, gnatbind.adb, clean.adb, gprep.adb, - gnatxref.adb, gnatls.adb, gnatfind.adb, gnatname.adb: Do not output - the usage for an erroneous invocation of a gnat tool. - -2014-07-16 Vincent Celier - - * gnatls.adb: Get the target parameters only if -nostdinc was - not specified. - -2014-07-16 Ed Schonberg - - * checks.adb (Insert_Valid_Check): If the expression is a packed - component of a modular type of the right size the data is always - valid. This os particularly useful if the component is part of - a volatile variable. - -2014-07-16 Robert Dewar - - * gnat_rm.texi, sinfo.ads, freeze.adb, exp_aggr.adb: Minor reformatting - -2014-07-16 Thomas Quinot - - * exp_ch7.ads: Minor documentation fix. - -2014-07-16 Ed Schonberg - - * sem_ch3.adb (Find_Type_Name): Diagnose properly - a private extension completion that is an interface definition - with an interface list. - -2014-07-16 Arnaud Charlet - - * gnatls.adb (Gnatls): Code clean ups. - -2014-07-16 Thomas Quinot - - * sinfo.ads, sinfo.adb (N_Compound_Statement): New node kind. - * sem.adb (Analyze): Handle N_Compound_Statement. - * sprint.adb (Sprint_Node_Actual): Ditto. - * sem_ch5.ads, sem_ch5.adb (Analyze_Compound_Statement): New - procedure to handle N_Compound_Statement. - * exp_aggr.adb (Collect_Initialization_Statements): - Use a proper compound statement node, instead of a bogus - expression-with-actions with a NULL statement as its expression, - to wrap collected initialization statements. - * freeze.ads, freeze.adb - (Explode_Initialization_Compound_Statement): New public procedure, - lifted from Freeze_Entity. - (Freeze_Entity): When freezing - an object with captured initialization statements and without - delayed freezing, explode compount statement. - * sem_ch4.adb (Analyze_Expression_With_Actions): Remove special - case that used to handle bogus EWAs with NULL statement as - the expression. - * exp_ch13.adb (Expand_N_Freeze_Entity): For an object with - delayed freezing and captured initialization statements, explode - compound statement. - -2014-07-16 Gary Dismukes - - * g-rewdat.adb, g-rewdat.ads: Minor reformatting. - -2014-07-16 Doug Rupp - - * s-interr-hwint.adb: Casing error on parameter. - -2014-07-16 Pascal Obry - - * Makefile.rtl: Add g-rewdat.o dependencies in - GNATRTL_NONTASKING_OBJS. - -2014-07-16 Ed Schonberg - - * sem_case.adb: Code clean up. - -2014-07-16 Vincent Celier - - * make.adb: Do not read gnat.adc when gnatmake is invoked - with -gnatA. - -2014-07-16 Pascal Obry - - * gnat_rm.texi, impunit.adb, g-rewdat.adb, g-rewdat.ads: Initial - implementation of GNAT.Rewrite_Data. - -2014-07-16 Vincent Celier - - * gnatls.adb (Normalize): New function. - (Gnatls): Get the target parameters. On targets other than VMS, - normalize the path names in the source search path, the object search - path and the project search path. - -2014-07-16 Ed Schonberg - - * sem_case.adb: Avoid self-checking of case expressions in - dynamic predicates. - -2014-07-16 Robert Dewar - - * gnat_rm.texi: Document effect of Suppress_Initialization on tags and - discriminants. - -2014-07-16 Eric Botcazou - - * switch-b.adb (Scan_Binder_Switches): Add missing guard. - -2014-07-16 Ben Brosgol - - * gnat_ugn.texi: Fix typo. - -2014-07-16 Ed Schonberg - - * exp_ch4.adb (Expand_N_Case_Expression): Do not expand case - expression if it is the specification of a subtype predicate: - it will be expanded when the return statement is analyzed, or - when a static predicate is transformed into a static expression - for evaluation by the front-end. - * sem_ch13.adb (Get_RList): If the expression for a static - predicate is a case expression, extract the alternatives of the - branches with a True value to create the required statically - evaluable expression. - -2014-07-16 Thomas Quinot - - * exp_prag.adb (Expand_Pragma_Check): Use the location of the - expression, not the location of the aspect, for all generated - code, so that in particular the call to raise_assert_failure - gets the sloc of the associated condition. - * exp_ch6.adb - (Expand_Subprogram_Contract.Build_Postconditions_Procedure): - Set an explicit End_Label on the handled sequence of statements - for the _Postconditions procedure so that the implicit return - statement does not erroneously get associated with code generated - for the last condition in postconditions. - -2014-07-16 Thomas Quinot - - * ug_words: Fix name of VMS synonym for -gnatw.z (SIZE_ALIGNMENT, - not SIZE_ALIGN) and -gnatw.Z (NOSIZE_ALIGNMENT, not NOSIZE_ALIGN). - * vms_data.ads: Add missing spaces in VMS synonyms for -gnatw.z / - -gnatw.Z. - -2014-07-16 Robert Dewar - - * sem_ch3.adb, sem_prag.adb, sem_util.adb, sem_res.adb, sem_ch13.adb: - Minor code reorganization (use Is_Access_Type, not in Access_Kind). - * exp_ch3.adb: Minor code reorganization, use Is_Access_Type, - not in Access_Kind. - * par-ch4.adb (At_Start_Of_Attribute): New function - (P_Simple_Expression): Better msg for bad attribute prefix. - * scans.ads: Minor reformatting. - -2014-07-16 Ed Schonberg - - * sem_attr.adb (Resolve_Attribute, case 'Update): If choice is a - static constant, check that in belongs to the corresponding index - subtype, to produce the proer warning when expansion is disabled. - -2014-07-16 Robert Dewar - - * freeze.adb (Freeze_Entity): Warn on incompatible size/alignment. - * gnat_ugn.texi: Document -gnatw.z and -gnatw.Z. - * ug_words: VMS synonyms (WARNINGS=[NO]SIZE_ALIGN) for -gnatw.z/-gnatw.Z - * usage.adb: Add lines for -gnatw.z/-gnatw.Z. - * vms_data.ads: VMS synonyms (WARNINGS=[NO]SIZE_ALIGN) for - -gnatw.z/-gnatw.Z - * warnsw.adb: Set Warn_On_Size_Alignment appropriately. - * warnsw.ads (Warn_On_Size_Alignment): New flag Minor - reformatting. - -2014-07-16 Hristian Kirtchev - - * exp_ch7.adb (Process_Declarations): Reinstate the check on - a hook object to ensure that the related transient declaration - is finalizable. - * exp_util.adb (Is_Aliased): Do not consider expresison with - actions as a special context. - (Requires_Cleanup_Actions): Reinstate the check on a hook object to - ensure that the related transient declaration is finalizable. - -2014-07-16 Robert Dewar - - * checks.ads, checks.adb (Allocation_Checks_Suppressed): New function. - * snames.ads-tmpl: Add Allocation_Check to list of check names. - * types.ads: Add Allocation_Check to list of check names. - -2014-07-16 Thomas Quinot - - * sem_util.adb (Enter_Name): replace bogus test for presence of - Corresponding_Remote_Type with correct test on Ekind. - * sem_res.adb (Valid_Conversion): ditto; also clarify validity - of calls to Corresponding_ Remote_Type (documentation fix). - -2014-07-16 Robert Dewar - - * gnat_rm.texi: Document illegal case of Unrestricted_Access. - * sem_attr.adb (Analyze_Access_Attribute): Set_Non_Aliased_Prefix - where it applies. - (Resolve_Attribute, case Access): Flag illegal Unrestricted_Access use. - * sinfo.ads, sinfo.adb (Non_Aliased_Prefix): New flag. - -2014-07-16 Robert Dewar - - * gnat_ugn.texi: Document binder switch -Ra. - * gnatbind.adb (List_Closure_Display): Implement -Ra switch - (List_Closure_All). - * opt.ads (List_Closure_All): New switch. - * switch-b.adb (Scan_Binder_Switches): Recognize -Ra to set - List_Closure_All. - -2014-07-16 Ben Brosgol - - * gnat_rm.texi: Minor edits, to make case consistent in names - of types and fields. - -2014-07-16 Robert Dewar - - * gnat_rm.texi: Document erroneous mixing of thin pointers and - unrestricted access - * gnat_ugn.texi: Add note on size of access types about thin - pointers and the use of attribute Unrestricted_Access. - -2014-07-16 Ed Schonberg - - * a-cbdlli.ads, a-cbdlli.adb, a-cbhama.ads, a-cbhama.adb, - * a-cbhase.ads, a-cbhase.adb, a-cborma.ads, a-cborma.adb, - * a-cborse.ads, a-cborse.adb, a-cobove.ads a-cobove.adb: Add Control - machinery to detect tampering on bounded vectors. - -2014-07-16 Robert Dewar - - * gnat_rm.texi: Document that leading/trailing asterisks are - now implied for the pattern match string for pragma Warnings - and Warning_As_Error. - * sem_prag.adb (Acquire_Warning_Match_String): New procedure. - (Analyze_Pragma, case Warning_As_Error): Call - Acquire_Warning_Match_String. - (Analyze_Pragma, case Warnings): Call Acquire_Warning_Match_String. - -2014-07-16 Bob Duff - - * gnat_ugn.texi: Document need for project file - for --incremental switch for gnat2xml. - -2014-07-16 Robert Dewar - - * gnat_rm.texi: Fix example of non-packable components in packed - records section. - -2014-07-16 Robert Dewar - - * s-tpoben.adb, s-tasren.adb, s-interr.adb, s-interr-hwint.adb, - s-shasto.adb, s-interr-vms.adb, s-interr-sigaction.adb: Avoid use of - upper case in exception messages. - -2014-07-16 Robert Dewar - - * snames.ads-tmpl, sem_attr.adb, exp_attr.adb: Same_Storage attribute - is renamed Has_Same_Storage. - * gnat_rm.texi: Document missing SPARK pragmas and attributes. - * sem_prag.adb: Minor comment fix (use LOCAL_NAME in syntax - descriptions). - -2014-07-16 Robert Dewar - - * exp_util.adb, sem_attr.adb, exp_ch4.adb, a-cohase.ads, - a-coinho-shared.adb, a-coinho-shared.ads: Minor reformatting. - -2014-07-16 Robert Dewar - - * gnat_ugn.texi: Add note that integrated - preprocessing cannot be applied to configuration pragma files. - -2014-07-16 Yannick Moy - - * sem_attr.adb (Analyze_Attribute/cases Pred - and Succ): Always enable range check on fixed-point types if - not suppressed for the type. - -2014-07-16 Hristian Kirtchev - - * sem_util.adb (State_Has_Enabled_Property): - Account for an external property denoted by an others choice. - -2014-07-16 Hristian Kirtchev - - * exp_ch4.ads, exp_ch4.adb (Find_Hook_Context): Relocated to Exp_Util. - * exp_ch7.adb (Process_Declarations): There is no need to check - that a transient object being hooked is controlled as it would - not have been hooked in the first place. - * exp_ch9.adb Remove with and use clause for Exp_Ch4. - * exp_util.adb (Find_Hook_Context): Relocated from Exp_Ch4. - (Is_Aliased): A renaming of a transient controlled object is - not considered aliasing when it occurs within an expression - with actions. - (Requires_Cleanup_Actions): There is no need to - check that a transient object being hooked is controlled as it - would not have been hooked in the first place. - * exp_util.ads (Find_Hook_Context): Relocated from Exp_Ch4. - -2014-07-16 Hristian Kirtchev - - * sem_ch13.adb (Insert_After_SPARK_Mode): Moved to - the outer level of routine Analyze_Aspect_Specifications. Ensure - that the corresponding pragmas of aspects Initial_Condition and - Initializes are inserted after pragma SPARK_Mode. - -2014-07-16 Ed Schonberg - - * sem_attr.adb (Analyze_Attribute, case 'Update): Handle - properly a choice list with more than one choice, where each - is an aggregate denoting a sequence of array indices for a - multidimentional array. For SPARK use. - -2014-07-16 Vadim Godunko - - * a-coinho-shared.adb (Adjust): Create - copy of internal shared object and element when source container - is locked. - (Copy): Likewise. - (Query_Element): Likewise. - (Update_Element): Likewise. - (Constant_Reference): Likewise. Raise Constraint_Error on attempt - to get reference for empty holder. - (Reference): Likewise. - -2014-07-16 Thomas Quinot - - * exp_ch4.adb (Find_Hook_Context): New subprogram, extracted - from Process_Transient_Oject. - * exp_ch4.ads: Ditto. - * exp_ch9.adb (Build_Class_Wide_Master): Insert the _master - declaration as an action on the topmost enclosing expression, - not on a possibly conditional subexpreession. - -2014-07-16 Vadim Godunko - - * a-coinho.adb, a-coinho-shared.adb, a-coinho.ads, a-coinho-shared.ads: - Fix parameter mode of Update_Element. - -2014-07-16 Robert Dewar - - * a-coinho.adb, a-coinho-shared.adb, a-coinho-shared.ads: Minor - reformatting. - -2014-07-16 Ed Schonberg - - * a-cohase.ads: Type Iterator must be controlled, so that the - tampering bit is properly set through an iteration. - * a-cohase.adb: Add Finalize operation for type Iterator. - -2014-07-16 Ed Schonberg - - * a-coinho-shared.adb, a-coinho-shared.ads: Proper structures for - tampering checks. - -2014-07-16 Ed Schonberg - - * a-coinho-shared.adb: Fix spurious accessibility check. - -2014-06-15 Jan Hubicka - - * gcc-interface/utils.c (process_attributes): Use set_decl_tls_model. - -2014-06-14 Bernd Edlinger - - PR ada/61505 - * gnat_rm.texi: Fix errors with makeinfo 5.1. - -2014-06-14 Arnaud Charlet - - PR ada/61505 - * gnat_rm.texi: Attempt to fix error with makeinfo 5.1. - -2014-06-13 Yannick Moy - - * exp_attr.adb: Fix typo in comment. - * gnat1drv.adb (Adjust_Global_Switches): Force float overflow - checking in GNATprove_Mode. - -2014-06-13 Ed Schonberg - - * a-coinho-shared.adb, a-coinho-shared.ads: Update shared version. - -2014-06-13 Robert Dewar - - * sem_ch3.adb, sem_ch9.adb, a-coinho.adb, a-coinho.ads: Minor - reformatting. - -2014-06-13 Hristian Kirtchev - - * sem_prag.adb (Analyze_Pragma): Add local - variable Missing_Parentheses. Emit an error when a state - declaration with options appears without parentheses. Add a - guard to prevent a bogus error when a state declaration may be - interpreted as an option if a previous declaration with options - was not parenthesized. - -2014-06-13 Robert Dewar - - * checks.adb: Validate_Alignment_Check_Warnings: New procedure - (Apply_Address_Clause_Check): Make Aligment_Warnings table entry. - * checks.ads (Alignment_Warnings_Record): New type. - (Alignment_Warnings): New table - (Validate_Alignment_Check_Warnings): New procedure. - * errout.adb (Delete_Warning_And_Continuations): New procedure - (Error_Msg_Internal): Set Warning_Msg (Delete_Warning): Handle - Warnings_Treated_As_Errors (Finalize): Minor reformatting - * errout.ads (Warning_Msg): New variable - (Delete_Warning_And_Continuations): New procedure - * erroutc.adb (Delete_Msg): Handle Warnings_Treated_As_Errors count. - * gnat1drv.adb (Post_Compilation_Validation_Checks): New procedure. - -2014-06-13 Ed Schonberg - - * a-coinho.adb, a-coinho.ads: Add Reference machinery. - -2014-06-13 Hristian Kirtchev - - * errout.adb (SPARK_Msg_N): New routine. - (SPARK_Msg_NE): New routine. - * errout.ads Add a section on SPARK-related error routines. - (SPARK_Msg_N): New routine. - (SPARK_Msg_NE): New routine. - * sem_ch13.adb (Analyze_Aspect_Specifications): Ensure that - pragma Abstract_State is always inserted after SPARK_Mode. - (Insert_After_SPARK_Mode): New routine. - * sem_prag.adb (Analyze_Abstract_State, - Analyze_Constituent, Analyze_External_Property, - Analyze_External_Property_In_Decl_Part, Analyze_Global_Item, - Analyze_Global_List, Analyze_Initialization_Item, - Analyze_Initialization_Item_With_Inputs, Analyze_Input_Item, - Analyze_Input_List, Analyze_Input_Output, Analyze_Part_Of, - Analyze_Pragma, Analyze_Refined_Depends_In_Decl_Part, - Analyze_Refined_Global_In_Decl_Part, - Analyze_Refined_State_In_Decl_Part, Analyze_Refinement_Clause, - Check_Aspect_Specification_Order, Check_Constituent_Usage, - Check_Declaration_Order, Check_Dependency_Clause, - Check_Duplicate_Mode, Check_Duplicate_Option, - Check_Duplicate_Property, Check_External_Properties, - Check_External_Property, Check_Function_Return, - Check_Matching_Constituent, Check_Matching_State, - Check_Mode_Restriction_In_Enclosing_Context, - Check_Mode_Restriction_In_Function, Check_Refined_Global_Item, - Check_State_And_Constituent_Use, Create_Or_Modify_Clause, - Has_Extra_Parentheses, Inconsistent_Mode_Error, - Match_Error, Propagate_Part_Of, Report_Extra_Clauses, - Report_Extra_Constituents_In_List, Report_Extra_Inputs, - Report_Unrefined_States, Report_Unused_Constituents, - Report_Unused_States, Role_Error, Usage_Error): - Convert Error_Msg_XXX calls to SPARK_Msg_XXX calls - to report semantic errors only when SPARK_Mode is on. - (Analyze_Depends_In_Decl_Part): Do not check the syntax of - pragma Depends explicitly, this is now done by the analysis. - (Analyze_Global_In_Decl_List): Do not check the syntax of - pragma Global explicitly, this is now done by the analysis. - (Analyze_Initializes_In_Decl_Part): Do not check the syntax of - pragma Initializes explicitly, this is now done by the analysis. - (Analyze_Part_Of): Do not check the syntax of the encapsulating - state, this is now done by the analysis. - (Analyze_Pragma): Do - not check the syntax of a state declaration, this is now done - by the analysis. - (Analyze_Refined_Depends_In_Decl_Part): Do not - check the syntax of pragma Refined_Depends explicitly, this is now - done by the analysis. - (Analyze_Refined_Global_In_Decl_Part): Do - not check the syntax of pragma Refined_Global explicitly, this is - now done by the analysis. - (Analyze_Refined_State_In_Decl_Part): - Do not check the syntax of pragma Refined_State explicitly, this - is now done by the analysis. - (Check_Dependence_List_Syntax): Removed. - (Check_Global_List_Syntax): Removed. - (Check_Initialization_List_Syntax): Removed. - (Check_Item_Syntax): Removed. - (Check_Missing_Part_Of): Do not consider items from an instance. - (Check_Refinement_List_Syntax): Removed. - (Check_State_Declaration_Syntax): Removed. - (Collect_Global_List): Do not raise Program_Error when the input is - malformed. - (Process_Global_List): Do not raise Program_Error when the input - is malformed. - * sem_ch13.adb: Minor reformatting. - -2014-06-13 Ed Schonberg - - * sem_ch3.adb (Find_Type_Name): Diagnose a private type completion - that is an interface definition with an interface list. - (Process_Full_View): Move error message on missmatched interfaces - between views to the declaration of full view, for clarity. - * sem_ch9.adb (Check_Interfaces): Move error message to full view, - for clarity. - -2014-06-13 Robert Dewar - - * exp_attr.adb (Expand_N_Attribute_Reference, case Pred/Succ): Change - reason to Overflow. - -2014-06-13 Robert Dewar - - * makeutl.adb: Minor reformatting. - -2014-06-13 Gail Schenker - - * debug.adb, sem_eval.adb (Why_Not_Static): Remove temporary code and - associated flag (d.z), no longer needed. - -2014-06-13 Ed Schonberg - - * sem_ch13.adb (Analyze_Aspect_Specifications): For Import and - Export aspects, do not check whether a corresponding Convention - aspect has been specified. Convention is optional in Ada2012, - and defaults to Convention_Ada. - -2014-06-13 Eric Botcazou - - * checks.adb (Apply_Address_Clause_Check): Only issue the new - warning if the propagation warning is issued. - -2014-06-13 Thomas Quinot - - * exp_ch4.adb: Minor reformatting. - -2014-06-13 Robert Dewar - - * exp_attr.adb (Expand_N_Attribute_Reference, case Pred): - Handle float range check case (Expand_N_Attribute_Reference, - case Succ): Handle float range check case. - * sem_attr.adb (Analyze_Attribute, case Pred/Succ): Handle float - range check case. - -2014-06-13 Vincent Celier - - * makeutl.ads (Compute_Builder_Switches): Change name of - parameter Root_Environment to Env. - * prj-conf.adb (Check_Switches): Call Locate_Runtime with the - Env parameter of procedure Get_Or_Create_Configuration_File. - (Locate_Runtime): Call Find_Rts_In_Path with the Project_Path - of new parameter Env. - * prj-conf.ads (Locate_Runtime): New parameter Env of type - Prj.Tree.Environment. - -2014-06-13 Robert Dewar - - * gnat_rm.texi: Minor comment clarification for Check_Float_Overflow. - -2014-06-13 Robert Dewar - - * exp_attr.adb, exp_ch9.adb, lib-writ.adb, g-comlin.adb: Minor - reformatting. - * sem_attr.adb: Minor code reformatting and simplification. - * checks.adb: Fix minor typo. - -2014-06-13 Emmanuel Briot - - * g-comlin.adb (Get_Argument): fix expansion - of command line arguments (e.g. "*.adb") when using a custom - parser. The parser was not passed to the recursive call, and - thus we were trying to do the expansion on the default command - line parser. - -2014-06-13 Thomas Quinot - - * exp_ch9.adb: Minor reformatting. - -2014-06-13 Ed Schonberg - - * exp_attr.adb (Expand_N_Attribute_Reference, case 'Old): - To determine whether the attribute should be expanded, examine - whether the enclosing postcondition pragma is to be checked, - rather than using the internal flag Assertions_Enabled. - -2014-06-13 Ben Brosgol - - * gnat_rm.texi: Minor fixes. - * gnat_ugn.texi: Added a missing "@itemize". - -2014-06-13 Robert Dewar - - * debug.adb: Remove -gnatd.1 flag documentation. - * layout.adb (Layout_Type): Remove special handling of size - for anonymous access type. - * sem_ch3.adb (Replace_Type): Remove special handling of size - for anonymous access type. - -2014-06-13 Robert Dewar - - * debug.adb: Document debug flag -gnatd.1. - * layout.adb (Layout_Type): Size change for anonymous access - types under -gnatd.1. - * sem_ch3.adb (Replace_Type): Size change for anonymous access - types under -gnatd.1. - -2014-06-13 Robert Dewar - - * layout.adb (Layout_Type): Anonymous access types designating - unconstrained arrays are always thin pointers. - * sem_ch3.adb (Replace_Type): Anonymous access types designating - unconstrained arrays are always thin pointers. - -2014-06-13 Ed Schonberg - - * sem_attr.adb (Analyze_Attribute): Use Check_Parameterless_Call - to resolve the prefix of an attribute that is an entity name - and may be a parameterless call. Minor code reorganization. - -2014-06-13 Robert Dewar - - * lib.ads, lib.adb, lib-writ.adb, lib-load.adb (Is_Compiler_Unit): - Removed. - * opt.ads (Compiler_Unit): New flag. - * par-ch5.adb (Test_Statement_Required): Call Check_Compiler_Unit - for null statement sequence (not allowed in compiler unit). - * par-prag.adb (Prag): Handle Compiler_Unit[_Warning] during - parsing. - * restrict.ads, restrict.adb (Check_Compiler_Unit): New version and new - calling sequence. - * sem_ch11.adb, sem_ch3.adb, sem_ch4.adb: New calling sequence for - Check_Compiler_Unit. - * sem_ch6.adb (Analyze_Extended_Return_Statement): Call - Check_Compiler_Unit (this construct is not allowed in compiler - units). - * sem_prag.adb (Analyze_Pragma, case Compiler_Unit[_Warning]): - Set Opt.Compiler_Unit. - -2014-06-13 Geert Bosch - - * gnat_rm.texi, s-tasinf-solaris.ads, sem_prag.adb, gnat_ugn.texi, - s-tasinf-mingw.ads, s-tasinf.ads, s-tasinf-linux.ads, - s-tasinf-vxworks.ads: Make Task_Info pragma and package obsolescent. - -2014-06-13 Robert Dewar - - * s-tasini.adb, s-tarest.adb, s-taprob.adb: Minor reformatting. - -2014-06-13 Hristian Kirtchev - - * freeze.adb (Freeze_Entity): Remove the check concerning volatile - types in SPARK as it is poorly placed and poorly formulated. The - check was flagging ALL volatile entities as illegal in SPARK. - * sem_prag.adb (Process_Atomic_Shared_Volatile): Flag volatile - types as illegal in SPARK. - -2014-06-13 Robert Dewar - - * sem_cat.adb: Minor reformatting. - -2014-06-13 Yannick Moy - - * sem_prag.adb (Analyze_Pragma/Post_Class): Fix typo. - -2014-06-13 Arnaud Charlet - - * gnat_rm.texi: Add detail on SPARK_05 restriction. - -2014-06-13 Bob Duff - - * s-solita.adb (Get_Sec_Stack_Addr, Init_Tasking_Soft_Links): - Add assertions requiring the secondary stack to be initialized. - * s-solita.ads (Init_Tasking_Soft_Links): Comment. - * s-taprob.adb, s-tarest.adb, s-tasini.adb (elab code): Make sure the - secondary stack is initialized before calling Init_Tasking_Soft_Links, - by adding pragmas Elaborate_Body. - -2014-06-13 Thomas Quinot - - * sem_ch13.adb (Analyze_Stream_TSS_Definition): Remove temporary - kludge disabling new legality check. - -2014-06-13 Hristian Kirtchev - - * freeze.adb (Freeze_Record_Type): Remove checks related to SPARK - volatile types. - (Freeze_Type): Volatile types are now illegal in SPARK. - -2014-06-13 Robert Dewar - - * aspects.ads, aspects.adb: Add aspect Thread_Local_Storage. - * gnat_rm.texi: Document aspect Thread_Local_Storage. - -2014-06-13 Ed Schonberg - - * sem_cat.adb (Validate_Static_Object_Name): A constant whose - value is a temporary that renames an aggregate is legal in a - preelaborated unit. Illegalities, if any will be detected in - the aggregate components. - -2014-06-13 Ed Schonberg - - * einfo.ads: Minor reformatting an comment expansion. - -2014-06-13 Robert Dewar - - * back_end.ads, back_end.adb: Make_Id, Make_SC, Set_RND are moved to - Tbuild. - * tbuild.ads, tbuild.adb: Make_Id, Make_SC, Set_RND are moved here from - Back_End. - * gnat1drv.adb: Make_Id, Make_SC, Set_RND are moved to Tbuild - * sem_warn.adb: Minor reformatting. - -2014-06-13 Doug Rupp - - * adaint.c (__gnat_open_new_temp) [VMS]: Open binary - files with rfm=udf. - -2014-06-13 Yannick Moy - - * sem_warn.adb (Check_Unset_References): Take - case of Refined_Post into account in Within_Postcondition check. - -2014-06-13 Hristian Kirtchev - - * freeze.adb (Freeze_Record_Type): Volatile types are not allowed in - SPARK. - -2014-06-13 Yannick Moy - - * sem_ch13.adb (Analyze_Aspect_Specifications/Aspect_Import, - Aspect_Export): Consider that variables may be set outside the program. - -2014-06-13 Robert Dewar - - * back_end.adb (Make_Id): New function. - (Make_SC): New function. - (Set_RND): New procedure. - * back_end.ads (Make_Id): New function. - (Make_SC): New function. - (Set_RND): New procedure. - * einfo.ads: Minor comment updates. - * frontend.adb: Move Atree.Initialize call to Gnat1drv. - * gnat1drv.adb (Gnat1drv): New calling sequence for - Get_Target_Parameters. - (Gnat1drv): Move Atree.Initialize here from Frontend. - * targparm.adb (Get_Target_Parameters): New calling - sequence (Get_Target_Parameters): Handle pragma Restriction - (No_Dependence,..) - * targparm.ads (Get_Target_Parameters): New calling sequence. - -2014-06-13 Gary Dismukes - - * sem_prag.adb (Process_Import_Or_Interface): Exit the homonym - loop if the pragma does not come from source, so that an implicit - pragma Import only applies to the first declaration, avoiding - possible conflicts with earlier explicit and implicit declarations - due to multiple Provide_Shift_Operators pragmas. - (Set_Imported): Remove previous fix that bypassed pragma duplication - error. - * gnat_rm.texi: Change 'equivalent' to 'similar' in description - of Provide_Shift_Operators. - -2014-06-12 Jan Hubicka - - * gcc-interface/utils.c (process_attributes) : Pass - string pointer directly to set_decl_section_name. - -2014-06-11 Robert Dewar - - * sem_ch13.adb: Minor reformatting. - -2014-06-11 Hristian Kirtchev - - * sem_prag.adb (Check_Clause_Syntax): Add new - local variable Outputs. Account for the case where multiple - output items appear as an aggregate. - -2014-06-11 Robert Dewar - - * sem_warn.adb (Output_Obsolescent_Entity_Warnings): Tag warning - with ?j? not ??. - -2014-06-11 Ed Schonberg - - * einfo.ads: Minor reformatting. - -2014-06-11 Hristian Kirtchev - - * a-cbdlli.adb, a-cdlili.adb, a-cidlli.adb, a-crdlli.adb (Insert): Add - new variable First_Node. Update the position after all insertions have - taken place to First_Node. - -2014-06-11 Robert Dewar - - * debug.adb: Remove debug flag -gnatd.1, no longer needed. - * layout.adb (Layout_Type): Remove test of -gnatd.1. - -2014-06-11 Robert Dewar - - * sem_ch13.adb: Minor reformatting. - -2014-06-11 Hristian Kirtchev - - * sem_prag.adb (Check_Clause_Syntax): Add new - local variable Outputs. Account for the case where multiple - output items appear as an aggregate. - -2014-06-11 Robert Dewar - - * sem_warn.adb (Output_Obsolescent_Entity_Warnings): Tag warning - with ?j? not ??. - -2014-06-11 Ed Schonberg - - * einfo.ads: Minor reformatting. - -2014-06-11 Hristian Kirtchev - - * a-cbdlli.adb, a-cdlili.adb, a-cidlli.adb, a-crdlli.adb (Insert): Add - new variable First_Node. Update the position after all insertions have - taken place to First_Node. - -2014-06-11 Robert Dewar - - * debug.adb: Remove debug flag -gnatd.1, no longer needed. - * layout.adb (Layout_Type): Remove test of -gnatd.1. - -2014-06-11 Thomas Quinot - - * freeze.ads: Minor reformatting. - * checks.adb (Determine_Range): Do not attempt to determine - the range of a deferred constant whose full view has not been - seen yet. - * sem_res.adb (Resolve): Remove undesirable guard against - resolving expressions from expression functions. - -2014-06-11 Robert Dewar - - * debug.adb (Debug_Flag_Dot_1): Set to enable fix for anonymous - access types. - * layout.adb (Layout_Type): Make anonymous access types for - subprogram formal types and return types always thin. For now - only enabled if -gnatd.1 set. - -2014-06-11 Ed Schonberg - - * sem_ch13.adb (Analyze_Stream_TSS_Definition): Apply legality - rule for stream attributes of interface types (RM 13.13.2 (38/3)): - subprogram must be a null procedure. - -2014-06-11 Hristian Kirtchev - - * sem_prag.adb (Analyze_Input_Item): Allow formal - parameters to appear as input_items in an initialization_list - of pragma Initializes. Encapsulation now applies to states and - variables only (as it should). Add RM references to key errors. - * sem_prag.adb (Set_Imported): Suppress errors - about preceding Imports when the pragma does not come from source, - which can happen through use of pragma Provide_Shift_Operators. - -2014-06-11 Thomas Quinot - - * sem_ch3.adb: Minor reformatting. - * einfo.ads (Full_View): Minor comment update. - -2014-06-11 Robert Dewar - - * einfo.adb (Is_Independent): New flag. - * einfo.ads (Is_Independent): New flag. - (Has_Independent_Components): Clean up and fix comments. - * sem_prag.adb (Fix_Error): Deal with changing argument - [of] to entity [for]. - (Analyze_Pragma, case Independent): Set Is_Independent flag - (Analyze_Pragma, case Independent_Components): Set Is_Independent flag - in all components of specified record. - -2014-06-11 Thomas Quinot - - * sem_ch12.adb (Analyze_Formal_Decimal_Fixed_Point_Type): - Set proper Etype on bounds of dummy type created for analysis - of the generic. - -2014-06-11 Robert Dewar - - * debug.adb: Minor comment fix (add missing section of dot - numeric flags). - -2014-06-11 Robert Dewar - - * gnat_rm.texi, switch-c.adb, sem_prag.adb, a-tgdico.ads, par-prag.adb, - opt.ads, a-finali.ads, snames.ads-tmpl: Remove all traces of - pragma/aspects Pure_05 Pure_12 Preelaborate_05. - * errout.adb (Output_Messages): Avoid duplicate output for - library level instance. - * sem_elab.adb (Is_Call_Of_Generic_Formal): Moved to outer level - (Check_Elab_Call): Add call to Is_Call_Of_Generic_Formal - * exp_ch4.adb (Expand_N_Op_Expon): New interface for Exp_Modular. - * s-expmod.ads, s-expmod.adb (Exp_Modular): Change interface to - accomodate largest modulus value. - * gnat_ugn.texi: Minor updates. - -2014-06-11 Ed Schonberg - - * sem_ch12.adb (Instantiate_Package_Body): Do not attempt to - load body of generic package or its parent, if body is optional - and the unit does not require a body. - -2014-06-11 Robert Dewar - - * gnat_rm.texi: Document System.Unsigned_Types. - * impunit.adb: System.Unsigned_Types (s-unstyp.ads) is user accessible. - * s-unstyp.ads: Update comments (this is now user available unit). - -2014-06-11 Robert Dewar - - * make.adb, sem_res.adb: Minor reformatting. - -2014-06-11 Thomas Quinot - - * a-astaco.ads, a-tags.ads, s-excdeb.ads, a-tgdico.ads, a-stmaco.ads, - a-except-2005.ads, s-except.ads, a-taside.ads, a-dynpri.ads, - a-chahan.ads, a-sytaco.ads, s-stalib.ads, a-strmap.ads: Change pragmas - Preelaborate_05 to just Preelaborate in runtime units, and similarly - change Pure_05 to just Pure. - -2014-06-11 Ed Schonberg - - * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Do not attempt - analysis if error has been posted on subprogram body. - -2014-06-11 Ed Schonberg - - * sem_ch13.adb (Analyze_Stream_TSS_Definition): Apply legality - rule given in RM 13.1 (8/1) for operational attributes to stream - attributes: the attribute must apply to a first subtype. Fixes - missing errors in ACATS test bdd2004. - -2014-06-11 Robert Dewar - - * exp_ch3.adb (Build_Record_Init_Proc): Don't build for variant - record type if restriction No_Implicit_Conditionals is active. - (Expand_N_Object_Declaration): Don't allow default initialization - for variant record type if restriction No_Implicit_Condition is active. - (Build_Variant_Record_Equality): Don't build for variant - record type if restriction No_Implicit_Conditionals is active. - * exp_ch4.adb (Expand_N_Op_Eq): Error if variant records with - No_Implicit_Conditionals. - * sem_aux.ads, sem_aux.adb (Has_Variant_Part): New function. - -2014-06-11 Ramon Fernandez - - * i-cstrin.ads: Update comments. - -2014-06-11 Ed Schonberg - - * sem_res.adb (Resolve_Selected_Component): Handle properly a - selected component whose prefix is overloaded, when none of the - interpretations matches the expected type. - -2014-06-11 Bob Duff - - * make.adb (Wait_For_Available_Slot): Give a more - informative error message; if the ALI file is not found, print - the full path of what it's looking for. - -2014-06-11 Sergey Rybin - - * gnat_ugn.texi, vms_data.ads: add description of gnatstub -W - option to specify the result file encoding. - -2014-06-11 Robert Dewar - - * errout.ads, sem_ch12.adb: Minor reformatting. - * debug.adb, erroutc.adb: Remove -gnatd.q debug switch. - * lib-xref.adb: Minor reformatting. - * restrict.adb: Minor code reorganization (put routines in - alpha order). - -2014-06-11 Yannick Moy - - * einfo.ads: Minor typo in comment - -2014-06-11 Ed Schonberg - - * sinfo.ads, sinfo.adb: New attribute Uninitialized_Variable, for - formal private types and private type extensions, to indicate - variable in a generic unit whose uninitialized use suggest that - actual type should be fully initialized. - Needs_Initialized_Actual: removed, functionaity replaced by - the above. - * lib-xref.adb (Generate_Reference): Generate a reference for - variables of a formal type when the unit is not the main unit, - to enable appropriate warnings in an instance. - * sem_ch12.adb (Check_Ininialized_Type): Improve warning on use - of variable in a generic unit that suggests that actual type - should be full initialized. - * sem_warn.adb; (May_Need_Initialized_Actual): Make into procedure - and do not emot warning, which now only appears in an instance. - -2014-06-11 Eric Botcazou - - * gnat_ugn.texi: Fix minor typo. - -2014-06-11 Hristian Kirtchev - - * sem_ch3.adb Add with and use clause for Sem_Ch10. - (Analyze_Declarations): Code reformatting. Analyze the contract - of a subprogram body stub at the end of the declarative region. - * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Spec_Id is - now a variable. Do not process the body if its contract is not - available. Account for subprogram body stubs when extracting - the corresponding spec. - * sem_ch6.ads (Analyze_Subprogram_Contract): Update the comment - on usage. - * sem_ch10.ads, sem_ch10.adb (Analyze_Subprogram_Body_Stub_Contract): - New routine. - * sem_prag.adb (Analyze_Depends_In_Decl_Part): - Account for subprogram body stubs when extracting the - corresponding spec. - (Analyze_Global_In_Decl_List): - Account for subprogram body stubs when extracting the - corresponding spec. - (Analyze_Refined_Depends_In_Decl_Part): - Use Find_Related_Subprogram_Or_Body to retrieve the declaration - of the related body. Spec_Is now a variable. Account for - subprogram body stubs when extracting the corresponding spec. - (Analyze_Refined_Global_In_Decl_Part): Use - Find_Related_Subprogram_Or_Body to retrieve the declaration - of the related body. Spec_Is now a variable. Account for - subprogram body stubs when extracting the corresponding spec. - (Collect_Subprogram_Inputs_Output): Account for subprogram body - stubs when extracting the corresponding spec. - -2014-06-11 Vincent Celier - - * gnatcmd.adb (Process_Link): Do not invoke gnatlink with - -lgnarl or -lgnat. - -2014-06-11 Robert Dewar - - * debug.adb: Add debug flag -gnatd.q. - * erroutc.adb (Prescan_Message): Bomb if untagged warning with - -gnatd.q set. - * styleg.adb (Check_Xtra_Parens): Message should be a style - message. - * sem_aggr.adb, sem_ch3.adb, exp_ch9.adb, checks.adb, sem_prag.adb, - par-endh.adb, eval_fat.adb, freeze.adb, sem_util.adb, sem_attr.adb, - sem_elab.adb, sem_ch6.adb, sem_warn.adb, sem_cat.adb, - sem_ch13.adb, lib-xref.adb: Add remaining warning tags. - -2014-06-11 Ben Brosgol - - * gnat_rm.texi: Revised chapter on Implementation Defined - Characteristics. - -2014-06-11 Geert Bosch - - * s-exctab.adb: avoid race conditions in exception registration. - -2014-06-11 Robert Dewar - - * errout.adb (Warn_Insertion): New function. - (Error_Msg): Use Warn_Insertion and Prescan_Message. - (Error_Msg_Internal): Set Info field of error object. - (Error_Msg_NEL): Use Prescan_Message. - (Set_Msg_Text): Don't store info: at start of message. - (Skip_Msg_Insertion_Warning): New name for Set_Msg_Insertion_Warning. - (Skip_Msg_Insertion_Warning): Now just skips warning insertion. - * errout.ads: Document new ?$? and >$> insertion sequences - Document use of "(style)" and "info: " - * erroutc.adb (dmsg): Print several missing fields - (Get_Warning_Tag): Handle -gnatel case (?$?) (Output_Msg_Text): - Deal with new tagging of info messages - * erroutc.ads: Is_Info_Msg: New global (Error_Msg_Object): - Add field Info (Prescan_Message): New procedure, this procedure - replaces the old Test_Style_Warning_Serious_Unconditional_Msg - * errutil.adb, exp_util.adb, par-ch7.adb, sem_ch13.adb, sem_ch7.adb, - sem_elab.adb: Follow new rules for info message (info belongs - only at the start of a message, and only in the first message, - not in any of the continuations). - * gnat_ugn.texi: Document full set of warning tags. - -2014-06-11 Gary Dismukes - - * sem_util.adb: Minor typo fix. - -2014-06-11 Ed Schonberg - - * sem_warn.adb (Check_References): Do not emit spurious warnings - on uninitialzed variable of a formal private type if variable - is not read. - -2014-06-09 Jan Hubicka - - * gcc-interface/utils.c (process_attributes) : Use - set_decl_section_name accessor. - -2014-05-22 Thomas Schwinge - - * gcc-interface/utils.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6) - (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8) - (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes. - -2014-05-21 Robert Dewar - - * layout.adb: Minor reformatting. - * sem_prag.adb (Analyze_Pragma, case Inspection_Point): Call - dummy procedure ip. - -2014-05-21 Robert Dewar - - * restrict.ads (Implementation_Restriction): Add entry for - No_Fixed_IO. - * rtsfind.ads: Add entries for Fixed_IO and Decimal_IO in - Ada.[Wide_[Wide_]Text_IO. - * s-rident.ads (Restriction_Id): Add entry for No_Fixed_IO. - * sem_attr.adb (Analyze_Attribute): Disallow fixed point types - for Img, Image, Value, Wide_Image, Wide_Value, Wide_Wide_Image, - Wide_Wide_Value if restriction No_Fixed_IO is set. - * sem_util.adb (Set_Entity_Checks): Check restriction No_Fixed_IO. - -2014-05-21 Robert Dewar - - * gnatcmd.adb: Minor error msg changes (no upper case letter - at start). - * sem_ch12.adb, sem_ch5.adb, sem_res.adb, sem_util.adb: Minor - reformatting. - -2014-05-21 Robert Dewar - - * debug.adb: Debug flag -gnatd.G inhibits static elab tracing - via generic formals. - * sem_elab.adb (Is_Call_Of_Generic_Formal): Return False if - -gnatd.G is set. - -2014-05-21 Thomas Quinot - - * exp_pakd.adb (Revert_Storage_Order): Renamed from Byte_Swap to - more accurately describe that this subprogram needs to come into - play also in cases where no byte swapping is involved, because - it also takes care of some required shifts (left-justification - of values). - -2014-05-21 Thomas Quinot - - * freeze.adb (Check_Component_Storage_Order): Indicate whether - a Scalar_Storage_Order attribute definition is present for the - component's type. - (Freeze_Record_Type): Suppress junk warnings - about purportedly junk Bit_Order / Scalar_Storage_Order attribute - definitions. - -2014-05-21 Robert Dewar - - * sem_ch8.adb (Analyze_Subprogram_Renaming): Put back call - to Kill_Elaboration_Checks. - -2014-05-21 Gary Dismukes - - * layout.adb (Assoc_Add): Suppress the optimization of the (E - - C1) + C2 case, when the expression type is unsigned and C1 < - C2, to avoid creating a negative literal when folding. - -2014-05-21 Hristian Kirtchev - - * freeze.adb (Freeze_Record_Type): Update the use of - Is_SPARK_Volatile. - * sem_ch3.adb (Analyze_Object_Contract): Update the use of - Is_SPARK_Volatile. - (Process_Discriminants): Update the use of Is_SPARK_Volatile. - * sem_ch5.adb (Analyze_Iterator_Specification): Update the use - of Is_SPARK_Volatile. - (Analyze_Loop_Parameter_Specification): - Update the use of Is_SPARK_Volatile. - * sem_ch6.adb (Process_Formals): Catch an illegal use of an IN - formal parameter when its type is volatile. - * sem_prag.adb (Analyze_Global_Item): Update the use of - Is_SPARK_Volatile. - * sem_res.adb (Resolve_Entity_Name): Correct the guard which - determines whether an entity is a volatile source SPARK object. - * sem_util.adb (Has_Enabled_Property): Accout for external - properties being set on objects other than abstract states - and variables. An example would be a formal parameter. - (Is_SPARK_Volatile): New routine. - (Is_SPARK_Volatile_Object): - Remove the entity-specific tests. Call routine Is_SPARK_Volatile - when checking entities and/or types. - * sem_util.ads (Is_SPARK_Volatile): New routine. - -2014-05-21 Robert Dewar - - * sem_warn.adb: Minor fix to warning messages (use ?? instead - of ?). - -2014-05-21 Vincent Celier - - * gnatcmd.adb (GNATCmd): For platforms other than VMS, recognize - switch --version and --help. - -2014-05-21 Robert Dewar - - * sem_elab.adb (Is_Call_Of_Generic_Formal): New function. - -2014-05-21 Ed Schonberg - - * sem_ch5.adb (Analyze_Iterator_Specification): Set type of - iterator variable when the domain of iteration is a formal - container and this is an element iterator. - -2014-05-21 Bob Duff - - * sem_ch12.adb: Minor reformatting. - -2014-05-21 Robert Dewar - - * sinfo.ads, sem_ch12.adb, sem_warn.adb: Minor reformatting. - -2014-05-21 Robert Dewar - - * sem_elab.adb: Minor reformatting. - * s-taprop.ads: Minor comment fix. - * sem_ch8.adb (Analyze_Subprogram_Renaming): Remove call to - Kill_Elaboration_Checks. - * errout.adb, erroutc.adb: Minor reformatting. - -2014-05-21 Thomas Quinot - - * exp_pakd.adb (Byte_Swap): Handle the case of a sub-byte - component. No byte swapping occurs, but this procedure also takes - care of appropriately justifying the argument. - -2014-05-21 Hristian Kirtchev - - * sem_ch6.adb: sem_ch6.adb (Analyze_Aspects_On_Body_Or_Stub): - New routine. - (Analyze_Subprogram_Body_Helper): Move the - analysis of aspect specifications and the processing of the - subprogram body contract after inlining has taken place. - (Diagnose_Misplaced_Aspect_Specifications): Removed. - -2014-05-21 Javier Miranda - - * sem_ch3.adb (Build_Derived_Record_Type): Revert previous change. - -2014-05-21 Robert Dewar - - * sem_eval.ads, sem_eval.adb (Why_Not_Static): Messages are not - continuations any more. - -2014-05-21 Ed Schonberg - - * sinfo.ads, sinfo.adb: New flag Needs_Initialized_Actual, - present in formal_Private_Definitions and on private extension - declarations of a formal derived type. Set when the use of the - formal type in a generic suggests that the actual should be a - fully initialized type. - * sem_warn.adb (May_Need_Initialized_Actual): new subprogram - to indicate that an entity of a generic type has default - initialization, and that the corresponing actual type in any - subsequent instantiation should be fully initialized. - * sem_ch12.adb (Check_Initialized_Type): new subprogram, - to emit a warning if the actual for a generic type on which - Needs_Initialized_Actual is set is not a fully initialized type. - -2014-05-21 Robert Dewar - - * sem_elab.adb, prj-dect.adb: Minor reformatting. - -2014-05-21 Robert Dewar - - * erroutc.ads: Minor comment addition. - -2014-05-21 Robert Dewar - - * errout.ads: Add documentation for use of >*> tag. - * restrict.adb: Make sure we use >*> tag for restriction warnings. - -2014-05-21 Gary Dismukes - - * debug.adb: Add case of illegal overriding_indicator for a - protected subprogram body to description of -gnatd.E switch. - * sem_ch6.adb (Verify_Overriding_Indicator): Issue error message - for cases of giving overriding_indicators on protected subprogram - bodies, but change this to a warning if -gnatd.E is enabled. No - longer give a style warning about missing indicators on protected - subprogram bodies. - -2014-05-21 Robert Dewar - - * prj.ads, sem_ch12.adb, prj.adb, exp_pakd.adb, - sem_elab.ads: Minor reformatting. - * erroutc.adb, erroutc.ads (Warning_Specifically_Suppressed): Make Tag - parameter optional. - -2014-05-21 Pascal Obry - - * prj-dect.adb: Allow package Install in aggregate project. - -2014-05-21 Robert Dewar - - * sem_ch13.adb (Analyze_Aspect_Specifications): - Insert_Delayed_Pragma is now used for the case of Attach_Handler. - * sem_prag.adb: Minor comment improvements. - -2014-05-21 Ed Schonberg - - * sem_ch12.adb (Install_Body): When checking whether freezing of - instantiation must be delayed, verify that the common enclosing - subprogram to generic and instance is in fact an overloadable - entity. - -2014-05-21 Vincent Celier - - * makeutl.adb (Mains.Complete_Mains.Do_Complete): Look for all - mains with the same name and fail if there is more than one. - * prj.ads, prj.adb (Find_All_Sources): New function - -2014-05-21 Robert Dewar - - * sem_ch13.adb: Minor reformatting. - * lib-xref-spark_specific.adb, sem_util.adb: Minor reformatting. - * sem_prag.adb: Minor error message improvement. - -2014-05-21 Yannick Moy - - * lib-xref-spark_specific.adb, lib-xref.ads, lib-xref.adb - (Enclosing_Subprogram_Or_Package): Only return a library-level - package. - -2014-05-21 Javier Miranda - - * sem_ch3.adb (Build_Derived_Record_Type): Initialize Parent_Base - to the full view of the parent type when processing a derived type - which is the full view of a private type not defined in a generic - unit which is derived from a private type with discriminants - whose full view is a non-tagged record type. - -2014-05-21 Javier Miranda - - * exp_ch4.adb (Expand_Allocator_Expression.Apply_Accessibility_Check): - Complete previous patch. - -2014-05-21 Thomas Quinot - - PR ada/9535 - * g-socket.adb (Read and Write for Datagram_Socket_Stream_Type): - Provide a behaviour more consistent with underlying datagram - socket: do not attempt to loop over Send_Socket/Receive_Socket - iterating along the buffer. - -2014-05-21 Hristian Kirtchev - - * freeze.adb (Freeze_Record_Type): Ensure that a discriminated - or a tagged type is not labelled as volatile. Ensure that a - non-volatile type has no volatile components. - * sem_ch3.adb (Analyze_Object_Contract): Add local constant - Obj_Typ. Code reformatting. Ensure that a discriminated or - tagged object is not labelled as volatile. - * sem_prag.adb (Process_Atomic_Shared_Volatile): Ensure that - pragma Volatile applies to a full type declaration or an object - declaration when SPARK mode is on. - -2014-05-21 Sergey Rybin - - * gnat_ugn.texi: For ASIS tools, reword the paragraph about - providing options needed for compiling the argument source for - the situation when a project file can be used as a tool parameter. - -2014-05-21 Gary Dismukes - - * gnat_rm.texi: Minor typo fix. - -2014-05-21 Robert Dewar - - * stand.adb (Tree_Read): Read missing entities. - (Tree_Write): Write missing entities. - -2014-05-21 Ben Brosgol - - * gnat_ugn.texi: Wordsmithing edits to Coupling Metrics Control - section in gnatmetric chapter. - -2014-05-21 Robert Dewar - - * exp_ch6.adb (Expand_Actuals): Spec moved here, since not used - outside Exp_Ch6 (Expand_Actuals): Deal with proper insertion of - post-call copy write back (see detailed comment in code). - * exp_ch6.ads (Expand_Actuals): Moved to body, not used outside - Exp_Ch6. - * tbuild.ads: Minor reformatting. - -2014-05-21 Robert Dewar - - * stand.ads: Add warning about adding new entities and - Tree_Read/Tree_Write. - -2014-05-21 Robert Dewar - - * sem_util.adb (Set_Entity_With_Checks): Don't complain about - references to restricted entities within the units in which they - are declared. - -2014-05-21 Robert Dewar - - * gnat1drv.adb (Check_Bad_Body): Use Source_File_Is_Body to - simplify the needed test, and also deal with failure to catch - situations with non-standard names. - * sinput-l.ads, sinput-l.adb (Source_File_Is_No_Body): New function - (Source_File_Is_Subunit): Removed, no longer used. - -2014-05-21 Javier Miranda - - * exp_ch4.adb - (Expand_Allocator_Expression.Apply_Accessibility_Check): for a - renaming of an access to interface object there is no need to - generate extra code to reference the tag. - -2014-05-21 Robert Dewar - - * errout.adb, erroutc.adb, erroutc.ads: Allow warning tag in pragma - Warnings (Off, string). - -2014-05-21 Robert Dewar - - * osint.adb: Fix three error messages to say invalid instead - of erroneous. - * par-ch4.adb, exp_aggr.adb, sem_attr.adb, sem_aux.adb, sem_ch3.adb, - sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_dim.adb, sem_res.adb, - sem_util.adb, sem_util.ads: Fix incorrect use of erroneous in comments. - -2014-05-21 Ed Schonberg - - * freeze.adb, sem_ch13.adb, sem_ch13.ads, sem_ch9.adb, - sem_ch9.ads: Move discriminant manipulation routines for analysis of - aspect specifications from sem_ch9 to sem_ch13, where they belong. - -2014-05-21 Robert Dewar - - * gnat_ugn.texi: Clearly document -gnatw.g (GNAT warnings). - Clearly document -gnatyg (GNAT style switches). - * usage.adb: Add line line for -gnatw.g (GNAT warnings) More - detail for line for -gnatyg (GNAT style switches) -gnatw.d/D is - available for VMS after all. - * warnsw.adb: Reorganize to eliminate duplicated code - (Restore_Warnings): Add a couple of missing entries - (Save_Warnings): Add a couple of missing entries. - * warnsw.ads: Add missing entries to Warning_Record (not clear - what the impact is). - -2014-05-21 Robert Dewar - - * errout.adb (Set_Msg_Insertion_Warning): Handle ?*? (restriction - warning) case. - * errout.ads: Document ?*? (restriction warning) insertion. - * erroutc.adb (Get_Warning_Tag): Deal with ?*? (restriction - warning) case. - * erroutc.ads: Document use of * for restriction warning tag. - * restrict.adb (Restriction_Msg): Tag with ?*? instead of ??. - -2014-05-21 Ed Schonberg - - * sem_ch9.adb (Push_Scope_And_Install_Discriminants): Do not - make discriminants immediately visible when analyzing an aspect - of a subtype declaration. - (Uninstall_Discriminants): Do not apply to the entity in a - subtype declaration. - -2014-05-21 Ed Schonberg - - * sem_util.adb: Code clean up. - -2014-05-21 Eric Botcazou - - * gnat_ugn.texi: Document -Werror. - -2014-05-21 Bob Duff - - * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): - This was returning False if the Object is a constant view. Fix - it to return True in that case, because it might be a view of - a variable. - (Has_Discriminant_Dependent_Constraint): Fix latent - bug; this function was crashing when passed a discriminant. - -2014-05-21 Robert Dewar - - * gnat_ugn.texi: Remove misplaced section that is now obsolete. - * s-arit64.adb: Minor code reorganization. - * sem_prag.adb: Minor comment fix (remove erroneous use of the - term erroneous). - -2014-05-21 Robert Dewar - - * g-table.adb, g-dyntab.adb (Reallocate): Fix possible overflow in - computing new table size. - -2014-05-21 Robert Dewar - - * einfo.ads: Minor reformatting. - * ceinfo.adb: Deal with slight format change of einfo.ads. - -2014-05-21 Ed Schonberg - - * sem_prag.adb (Analyze_Part_Of): Further work on the proper - implementation of the SPARK 2014 rule concerning private child - units (LRM 7.2.6). - -2014-05-21 Vincent Celier - - * makeusg.adb: Add switch -d to usage. - -2014-05-21 Ed Schonberg - - * sem_util.adb (Find_Actual): If an actual that is the prefix - of an enclosing prefixed call has been rewritten, use Nkind - and Sloc to identify the corresponding formal, when handling - deferred references. - -2014-05-21 Robert Dewar - - * debug.adb: Document -gnatd.z switch. - * sem_eval.adb (Why_Non_Static): Test -gnatd.z switch. - -2014-05-21 Robert Dewar - - * einfo.ads (Can_Never_Be_Null): Minor comment update. - * sem_prag.adb (Check_Arg_Is_Task_Dispatching_Policy): Minor - error message change. - * s-arit64.adb ("abs"): New function. Use expression functions - for the simple conversions and arithmetic. - -2014-05-18 Eric Botcazou - - * gcc-interface/trans.c (Subprogram_Body_to_gnu): Rework comment and - set function_start_locus. - -2014-05-18 Eric Botcazou - - * utils.c (gnat_write_global_declarations): Adjust the flags put on - dummy_global. - -2014-05-18 Eric Botcazou - - * gcc-interface/decl.c (change_qualified_type): New static function. - (gnat_to_gnu_entity): Use it throughout to add qualifiers on types. - : Set TYPE_VOLATILE on the array type directly. - : Likewise. - Do not set flags on an UNCONSTRAINED_ARRAY_TYPE directly. - (gnat_to_gnu_component_type): Likewise. - (gnat_to_gnu_param): Likewise. - -2014-05-18 Eric Botcazou - - * fe.h (Set_Present_Expr): Move around. - (End_Location): New macro. - * gcc-interface/trans.c (Case_Statement_to_gnu): Use End_Location. - -2014-05-18 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity): Use Underlying_Type in - lieu of more verbose construct. - * gcc-interface/trans.c (Call_to_gnu): Likewise. - (gnat_to_gnu): Likewise. Remove obsolete code. - -2014-05-18 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not - consider that regular packed arrays can never be superflat. - -2014-05-17 Trevor Saunders - - * gcc-interface/ada-tree.h: Remove usage of variable_size gty - annotation. - * gcc-interface/decl.c (annotate_value): Adjust. - * gcc-interface/trans.c (Attribute_to_gnu): Likewise. - (push_range_check_info): Likewise. - (Loop_Statement_to_gnu): Likewise. - (Subprogram_Body_to_gnu): Likewise. - (Compilation_Unit_to_gnu): Likewise. - (start_stmt_group): Likewise. - * gcc-interface/utils.c (init_gnat_utils): Likewise. - (gnat_pushlevel): Likewise. - (maybe_pad_type): Likewise. - -2014-05-14 Eric Botcazou - - * seh_init.c: Fix copyright year. - -2014-05-14 Bernd Edlinger - - * seh_init.c (__gnat_map_SEH): Compile also when __CYGWIN__ and __SEH__ - are defined. Move include windows.h before system.h. - * s-oscons-tmplt.c (DTR_CONTROL_ENABLE, RTS_CONTROL_ENABLE): Compile - also when __CYGWIN__ is defined. Include windef.h before winbase.h. - -2014-05-14 Richard Sandiford - - * gcc-interface/decl.c (gnat_to_gnu_entity): Convert integer_one_node - to the appropriate type. - * gcc-interface/trans.c (gnat_to_gnu): Likewise. - (pos_to_constructor): Likewise. - -2014-05-13 Eric Botcazou - - * gcc-interface/decl.c (annotate_value): Fix thinko in latest change. - -2014-05-06 Kenneth Zadeck - Mike Stump - Richard Sandiford - - * gcc-interface/cuintp.c (UI_From_gnu): Use wide-int interfaces. - * gcc-interface/decl.c (gnat_to_gnu_entity): Use TYPE_SIGN. - (annotate_value): Use wide-int interfaces. - * gcc-interface/utils.c (get_nonnull_operand): Use tree_fits_uhwi_p. - -2014-04-28 Richard Henderson - - * gcc-interface/Makefile.in: Support aarch64-linux. - -2014-04-28 Eric Botcazou - - * exp_dbug.ads (Get_External_Name): Add 'False' default to Has_Suffix, - add 'Suffix' parameter and adjust comment. - (Get_External_Name_With_Suffix): Delete. - * exp_dbug.adb (Get_External_Name_With_Suffix): Merge into... - (Get_External_Name): ...here. Add 'False' default to Has_Suffix, add - 'Suffix' parameter. - (Get_Encoded_Name): Remove 2nd argument in call to Get_External_Name. - Call Get_External_Name instead of Get_External_Name_With_Suffix. - (Get_Secondary_DT_External_Name): Likewise. - * exp_cg.adb (Write_Call_Info): Likewise. - * exp_disp.adb (Export_DT): Likewise. - (Import_DT): Likewise. - * comperr.ads (Compiler_Abort): Remove Code parameter and add From_GCC - parameter with False default. - * comperr.adb (Compiler_Abort): Likewise. Adjust accordingly. - * types.h (Fat_Pointer): Rename into... - (String_Pointer): ...this. Add comment on interfacing rules. - * fe.h (Compiler_Abort): Adjust for above renaming. - (Error_Msg_N): Likewise. - (Error_Msg_NE): Likewise. - (Get_External_Name): Likewise. Add third parameter. - (Get_External_Name_With_Suffix): Delete. - * gcc-interface/decl.c (STDCALL_PREFIX): Define. - (create_concat_name): Adjust call to Get_External_Name, remove call to - Get_External_Name_With_Suffix, use STDCALL_PREFIX, adjust for renaming. - * gcc-interface/trans.c (post_error): Likewise. - (post_error_ne): Likewise. - * gcc-interface/misc.c (internal_error_function): Likewise. - -2014-04-28 Richard Biener - - PR middle-end/60092 - * gcc-interface/utils.c: Define flag_isoc11. - -2014-04-26 Eric Botcazou - - * gnatvsn.ads (Library_Version): Bump to 4.10. - -2014-04-23 Eric Botcazou - - Revert - 2014-04-22 Richard Henderson - - * gcc-interface/Makefile.in: Support aarch64-linux. - - 2014-04-22 Eric Botcazou - - * fe.h (Compiler_Abort): Replace Fat_Pointer with String_Pointer. - (Error_Msg_N): Likewise. - (Error_Msg_NE): Likewise. - (Get_External_Name_With_Suffix): Likewise. - * types.h (Fat_Pointer): Delete. - (String_Pointer): New type. - (DECLARE_STRING_POINTER): New macro. - * gcc-interface/decl.c (create_concat_name): Adjust. - * gcc-interface/trans.c (post_error): Likewise. - (post_error_ne): Likewise. - * gcc-interface/misc.c (internal_error_function): Likewise. - -2014-04-22 Richard Henderson - - * gcc-interface/Makefile.in: Support aarch64-linux. - - * init.c [__linux__] (HAVE_GNAT_ALTERNATE_STACK): New define. - (__gnat_alternate_stack): Enable for all linux except ia64. - -2014-04-22 Eric Botcazou - - * fe.h (Compiler_Abort): Replace Fat_Pointer with String_Pointer. - (Error_Msg_N): Likewise. - (Error_Msg_NE): Likewise. - (Get_External_Name_With_Suffix): Likewise. - * types.h (Fat_Pointer): Delete. - (String_Pointer): New type. - (DECLARE_STRING_POINTER): New macro. - * gcc-interface/decl.c (create_concat_name): Adjust. - * gcc-interface/trans.c (post_error): Likewise. - (post_error_ne): Likewise. - * gcc-interface/misc.c (internal_error_function): Likewise. - -2014-04-15 Eric Botcazou - Pierre-Marie de Rodat - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Create a mere - scalar constant instead of a reference for renaming of scalar literal. - Do not create a new object for constant renaming except for a function - call. Make sure a VAR_DECL is created for the renaming pointer. - * gcc-interface/trans.c (constant_decl_with_initializer_p): New. - (fold_constant_decl_in_expr): New function. - (Identifier_to_gnu): Use constant_decl_with_initializer_p. - For a constant renaming, try to fold a constant DECL in the result. - (lvalue_required_p) : Always return 1. - (Identifier_to_gnu): Reference the renamed object of constant renaming - pointers directly. - * gcc-interface/utils.c (invalidate_global_renaming_pointers): Do not - invalidate constant renaming pointers. - -2014-04-15 Eric Botcazou - - * gcc-interface/utils.c (type_for_vector_element_p): New predicate. - (build_vector_type_for_size): New function. - (build_vector_type_for_array): Likewise. - (unchecked_convert): Build an intermediate vector type to convert - from a generic array type to a vector type. - (handle_vector_size_attribute): Reimplement. - (handle_vector_type_attribute): Likewise. - -2014-04-15 Eric Botcazou - - * gcc-interface/decl.c (prepend_one_attribute_pragma): Call - Is_OK_Static_Expression in lieu of Is_Static_Expression to - detect valid arguments. - -2014-04-15 Eric Botcazou - - * gcc-interface/trans.c (gnat_gimplify_stmt): Propagate loop hints. - -2014-04-14 Paolo Carlini - - * gcc-interface/decl.c (gnat_to_gnu_entity): Use TYPE_IDENTIFIER. - (components_to_record): Likewise. - * gcc-interface/utils.c (make_aligning_type): Likewise. - (maybe_pad_type): Likewise. - (finish_record_type): Likewise. - (rest_of_record_type_compilation): Likewise. - -2014-04-14 Eric Botcazou - - * snames.ads-tmpl (Name_Ivdep): New pragma-related name. - * sem_prag.adb (Analyze_Pragma) : Add support - for Ivdep hint. - * gnat_rm.texi (Implementation Defined Pragmas): Document new Ivdep - hint for Loop_Optimize. - * gnat_ugn.texi (Vectorization of loops): Mention new Ivdep hint. - * gcc-interface/trans.c (Pragma_to_gnu) : Deal - with new Ivdep hint. - * gcc-interface/ada-tree.h (LOOP_STMT_IVDEP): New macro. - * gcc-interface/trans.c (Pragma_to_gnu) : Deal - with new Ivdep hint. - (gnat_gimplify_stmt) : Propagate loop hints. - -2014-04-14 Eric Botcazou - Robert Dewar - - * opt.ads (Suppress_Back_Annotation): Remove as unused. - * fe.h (Back_Annotate_Rep_Info): Likewise. - (Global_Discard_Names): Likewise. - (List_Representation_Info): Declare. - * types.h (Uint_Minus_1): Likewise. - * repinfo.ads: Document back-annotation change. - * gcc-interface/gigi.h (init_gnat_decl): Declare. - (destroy_gnat_decl): Likewise. - * gcc-interface/decl.c (annotate_value): Do not create the cache of - annotated values here but... - : Only inline the call if -gnatR3 is specified or we are - in ASIS mode. - (init_gnat_decl): ...here instead. New function. - (destroy_gnat_decl): Likewise. - * gcc-interface/trans.c (gigi): Call {init|destroy}_gnat_decl. - * gcc-interface/utils.c (init_gnat_utils): Minor reformatting. - -2014-04-14 Eric Botcazou - - * gcc-interface/decl.c (create_field_decl_from): Finalize non-constant - offset for the field, if any. - -2014-04-09 Eric Botcazou - Svante Signell - - PR ada/54040 - PR ada/59346 - * s-osinte-x32.adb: New file. - * s-linux.ads (Time): New section. - * s-linux-alpha.ads (Time): Likewise. - * s-linux-android.ads (Time: Likewise. - * s-linux-hppa.ads (Time): Likewise. - * s-linux-mipsel.ads (Time): Likewise. - * s-linux-sparc.ads (Time): Likewise. - * s-linux-x32.ads (Time): Likewise. - * s-osprim-x32.ads (timespec): Adjust. - (Clock): Likewise. - (To_Timespec): Likewise. - * s-osinte-linux.ads (Time): Define local subtypes for those defined - in System.Linux. - * s-taprop-linux.adb (Monotonic_Clock): Do not define timeval. - * s-osinte-hpux.ads (timespec): Revert POSIX breakage. - * s-osinte-kfreebsd-gnu.ads (timespec): Likewise. - * s-osinte-solaris-posix.ads (timespec): Likewise. - * s-osinte-posix.adb (To_Timespec): Likewise. - * gcc-interface/Makefile.in (x32/Linux): Use s-osinte-x32.adb. - -2014-04-08 Eric Botcazou - - PR ada/60411 - * gcc-interface/Makefile.in (arm% linux-android): Switch to EHABI. - * s-linux-android.ads: New file. - * s-intman-android.adb: Likewise. - * s-osinte-android.ads: Adjust. - * sigtramp-armdroid.c: Likewise. - * sigtramp.h: Add Android support. - -2014-04-07 Eric Botcazou - - * gcc-interface/Makefile.in (alpha-vms): Add missing line. - -2014-03-30 Eric Botcazou - - PR ada/60703 - * system-linux-alpha.ads: Adjust for Ada 2005. - * system-linux-mips.ads: Likewise. - * system-linux-mips64el.ads: Likewise. - * system-linux-mipsel.ads: Likewise. - * system-linux-s390.ads: Likewise. - * system-linux-s390x.ads: Likewise. - * system-linux-sparc.ads: Likewise. - * system-linux-sparcv9.ads: Likewise. - * system-rtems.ads: Likewise. - * system-vxworks-arm.ads: Likewise. - -2014-03-16 Andreas Schwab - - PR ada/39172 - * gcc-interface/Makefile.in (target_cpu_default): Revert - 2013-10-11 change. - -2014-03-13 Eric Botcazou - - PR ada/51483 - * cstand.adb (Register_Float_Type): Add 'precision' parameter and use - it to set the RM size. Use directly 'size' for the Esize. - (Create_Back_End_Float_Types): Adjust call to above. - * get_targ.ads (Register_Type_Proc): Add 'precision' parameter. - * set_targ.ads (FPT_Mode_Entry): Add 'precision' component. - (Write_Target_Dependent_Values): Adjust comment. - * set_targ.adb (Register_Float_Type): Add 'precision' parameter and - deal with it. - (Write_Target_Dependent_Values): Write the precision in lieu of size. - (Initialization): Read the precision in lieu of size and compute the - size from the precision and the alignment. - * gcc-interface/gigi.h (enumerate_modes): Add integer parameter. - * gcc-interface/misc.c (enumerate_modes): Likewise. Do not register - types for vector modes, pass the size in addition to the precision. - -2014-03-10 Eric Botcazou - - * gcc-interface/Make-lang.in (ADA_DEPFILES): Fix typo. - -2014-03-07 Doug Rupp - - PR ada/60411 - * system-linux-armel.ads (Backend_Overflow_Checks): Set to True. - (Support_64_Bit_Divides): Removed, no longer used. - (ZCX_By_Default): Enabled. - -2014-02-25 Doug Rupp - - * gcc-interface/Makefile.in (arm-linux): - (EH_MECHANISM): Use ARM unwinder (-arm) - (LIBGNAT_TARGET_PAIRS: Override defaults with a-exexpr-gcc.adb and - s-excmac-arm.ads. - (EXTRA_LIBGNAT_OBJS): Add raise-gcc.o - (EXTRA_GNATRTL_NONTASKING_OBJS): Add g-cppexc.o s-excmac.o. - (arm-wrs-vxworks): Add EH_MECHANISM=-gcc for kernel mode. - (EXTRA_LIBGNAT_OBJS): Add sigtramp-armvxw.o - Add dependencies for sigtramp-armvxw.o. - -2014-02-25 Eric Botcazou - - * gcc-interface/trans.c (Pragma_to_gnu): Deal with Warning_As_Error. - -2014-02-25 Robert Dewar - - * rtsfind.adb (Is_RTE): Protect against entity with no scope - field (previously this call blew up on the Standard entity). - * sem_attr.adb (Analyze_Attribute, case Access): Remove - test for No_Abort_Statements, this is now handled in - Set_Entity_With_Checks. - * exp_ch6.adb, sem_ch10.adb, sem_ch4.adb, sem_ch8.adb, sem_res.adb: - Change name Set_Entity_With_Style_Check => Set_Entity_With_Checks. - * sem_util.ads, sem_util.adb: Change name Set_Entity_With_Style_Check => - Set_Entity_With_Checks. - (Set_Entity_With_Checks): Add checks for No_Dynamic_Attachment, - Add checks for No_Abort_Statements. - -2014-02-25 Robert Dewar - - * exp_ch9.adb (Expand_Entry_Barrier): Add comment that call to - Check_Restriction is OK. - -2014-02-25 Ed Schonberg - - * sem_ch3.adb (Process_Full_View): Better error message when - the full view of a private type without discriminants is an - unconstrained type. - * sem_ch7.adb (Uninstall_Declarations): Ditto. - -2014-02-25 Eric Botcazou - - * sigtramp-armvxw.c: Also restore r0. - -2014-02-25 Robert Dewar - - * errout.adb (Error_Msg_Internal): Warning_Msg_Char set - unconditionally (Set_Msg_Insertion_Warning): Warning_Msg_Char - set unconditionally. - * erroutc.adb (Get_Warning_Tag): Does not give a leading space - any more (Output_Msg_Text): Rewritten with new convention on - output of warnings that are treated as errors. - * erroutc.ads (Error_Msg_Object): Warn_Chr is always set even - if Warn is False. - * gnat_rm.texi: Updates to documentation on pragma - Warning_As_Error. - * warnsw.adb (Set_Dot_Warning_Switch): -gnatw.e should not - set Warning_Doc_Switch. - * lib-writ.ads: Add documentation note on ALI file generation - for C. - * exp_ch6.adb (Expand_Call): Remove check for No_Abort_Statements - (belongs in Sem). - * sem_attr.adb (Resolve_Attribute, case Access): - Abort_Task'Access violates the No_Abort_Statements restriction. - * sem_res.adb (Resolve_Call): Check restriction - No_Abort_Statements for call to Abort_Task or a renaming of it. - -2014-02-25 Robert Dewar - - * sem_ch3.adb (Array_Type_Declaration): Check for case of using - type name as index. - * lib.ads: Minor reformatting. - * einfo.ads: Minor reformatting. - -2014-02-25 Doug Rupp - - * sem_mech.adb (Set_Mechanisms): For convention Fortran on VMS - use Short_Descriptor(S) as the argument passing mechanism. - -2014-02-25 Eric Botcazou - - * sigtramp-ppcvxw.c (CFI_COMMON_REGS): Also include r0. - -2014-02-25 Robert Dewar - - * atree.ads (Warnings_Treated_As_Errors): New variable. - * errout.adb (Error_Msg_Internal): Set Warn_Err flag in - error object (Initialize): Initialize Warnings_As_Errors_Count - (Write_Error_Summary): Include count of warnings treated as errors. - * erroutc.adb (Warning_Treated_As_Error): New function. - (Matches): Function moved to outer level of package. - * erroutc.ads (Error_Msg_Object): Add Warn_Err flag. - (Warning_Treated_As_Error): New function. - * gnat_rm.texi: Document pragma Treat_Warning_As_Error. - * opt.adb: Add handling of Warnings_As_Errors_Count[_Config]. - * opt.ads (Config_Switches_Type): Add entry for - Warnings_As_Errors_Count. - (Warnings_As_Errors_Count): New variable. - (Warnings_As_Errors): New array. - * par-prag.adb: Add dummy entry for Warning_As_Error. - * sem_prag.adb (Analyze_Pragma): Implement new pragma - Warning_As_Error. - * snames.ads-tmpl: Add entries for Warning_As_Error pragma. - -2014-02-25 Eric Botcazou - - * sigtramp.h: Fix minor inaccuracy. - -2014-02-25 Ben Brosgol - - * gnat_ugn.texi: Added description of kill command. - -2014-02-25 Robert Dewar - - * gnat_rm.texi (Address_Clauses): Add a section discussing the - problem of address clauses causing unexpected initialization, - including the effect of Initialize_Scalars. - -2014-02-25 Robert Dewar - - * errout.adb: Various changes for better msgs for anonmous access - subprogram types. - * erroutc.ads, erroutc.adb (Buffer_Ends_With): Version with character - argument. - (Buffer_Remove): Version with character argument. - * sem_attr.adb (Resolve_Attribute, case Access): Better handling - of mismatching conventions for access-to-subprogram case. - * sem_prag.adb (Set_Convention_From_Pragma): Deal with anonymous - access types in record. - * sem_util.ads, sem_util.adb (Set_Convention): Handle anonymous access - types, including in records. - -2014-02-25 Doug Rupp - - * sigtramp-ppcvxw.c, sigtramp.h, sigtramp-armvxw.c: Comment - enhancements and corrections. - -2014-02-25 Robert Dewar - - * gnat_rm.texi: New section "Conventions and Anonymous Access Types" - -2014-02-25 Robert Dewar - - * gnat_rm.texi: First set of documentation additions for - predefined RM units. - * checks.adb: Minor reformatting. - * sem_elab.adb (Check_Task_Activation): Minor fix to error - message. - * sem_util.adb: Minor reformatting. - -2014-02-25 Arnaud Charlet - - * usage.adb (Usage): Add help on -gnateC. - * switch-c.adb (Scan_Front_End_Switches): Add handling of -gnateC. - * opt.ads (Generate_CodePeer_Messages): New flag. - * gnat_ugn.texi: Document new switch -gnateC. - -2014-02-25 Ben Brosgol - - * gnat_rm.texi: Corrected minor typos in Implementation Defined - Aspects. - * opt.ads: Minor reformatting. - -2014-02-25 Robert Dewar - - * binde.adb: Change messages to mention -gnatel instead of -gnatwl. - * gnat_ugn.texi: Update documentation of -gnatwl Add documentation - of -gnatel/-gnateL. - * opt.ads (Warn_Info_Messages): New flag. - * sem_elab.adb: Use Elab_Warnings, Elab_Info_Messages to control - messages. - * sem_prag.adb: Use Elab_Warnings, Elab_Info_Messages to control - messages. - * switch-m.ad, switch-c.adb: Recognize new -gnatel/EL switches. - * usage.adb: Add documentation of -gnatel/-gnateL Update - documentation of -gnatwl/-gnatwL. - * warnsw.adb: New handling of Elab_Warnings, Elab_Info_Messages - * warnsw.ads (Elab_Info_Messages): New field in Warning_Record - -2014-02-25 Robert Dewar - - * einfo.ads, einfo.adb (Has_Shift_Operator): New flag. - * gnat_rm.texi: Document pragma Provide_Shift_Operators. - * interfac.ads: Minor code reorganization (add pragma - Compiler_Unit_Warning). - * par-prag.adb: Add dummy entry for Provide_Shift_Operators. - * sem_ch3.adb (Build_Derived_Numeric_Type): Copy - Has_Shift_Operator flag. - * sem_intr.adb (Check_Intrinsic_Subprogram): Make sure - Check_Shift is always called (Check_Shift): Set Has_Shift_Operator. - * sem_prag.adb: Implement pragma Provide_Shift_Operators. - * snames.ads-tmpl: Add entries for pragma Provide_Shift_Operators - Add entry for Name_Amount. - * checks.adb (Selected_Range_Checks): When checking for a null - range, make sure we use the base type, and not the subtype for - deciding a range is null. - * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Check - for suspicious loop bound which is outside the range of the - loop subtype. - * gnat_ugn.texi: Add documentation section "Determining the - Chosen Elaboration Order" - * sem_ch13.adb (UC_Entry): Add field Act_Unit - (Validate_Unchecked_Conversion): Store Act_Unit - (Validate_Unchecked_Conversions): Test Warnings_Off in Act_Unit - * treepr.adb: Minor reformatting. - -2014-02-25 Arnaud Charlet - - * usage.adb: Minor: fix typo. - -2014-02-25 Robert Dewar - - * lib.ads, s-bitops.adb, s-bitops.ads, s-conca5.adb, gnat_rm.texi, - s-conca5.ads, s-conca7.adb, s-conca7.ads, s-crc32.adb, s-crc32.ads, - s-conca9.adb, s-conca9.ads, g-dyntab.adb, s-crtl.ads, g-dyntab.ads, - s-excdeb.adb, s-addope.adb, s-addope.ads, s-carun8.adb, s-carun8.ads, - g-htable.adb, g-htable.ads, g-hesora.adb, g-hesora.ads, s-conca2.adb, - s-conca2.ads, a-comlin.adb, a-chlat1.ads, a-comlin.ads, errout.ads, - a-except.adb, s-conca4.adb, a-except.ads, s-conca4.ads, s-conca6.adb, - s-conca6.ads, g-spchge.adb, g-spchge.ads, g-u3spch.adb, g-u3spch.ads, - a-strhas.ads, restrict.adb, aspects.adb, aspects.ads, s-conca8.adb, - s-conca8.ads, back_end.adb, par-prag.adb, g-byorma.adb, g-byorma.ads, - a-elchha.adb, a-elchha.ads, g-speche.adb, g-speche.ads, s-casuti.adb, - s-assert.adb, s-casuti.ads, s-assert.ads, a-clrefi.adb, a-clrefi.ads, - s-conca3.adb, s-conca3.ads, a-ioexce.ads: Implement pragma - Compiler_Unit_Warning, change Compiler_Unit everywhere to - Compiler_Unit_Warning. - -2014-02-25 Sergey Rybin - - * sem_prag.adb (Analyze_Depends_In_Decl_Part): Do not normalize - in ASIS mode aggregates that are used as aspect definitions. - -2014-02-25 Robert Dewar - - * exp_ch7.adb, sem_util.adb, sem_util.ads, exp_ch6.adb: Minor - reformatting. - -2014-02-25 Ed Schonberg - - * freeze.adb (Freeze_Entity): If the return type of a function - is a limited view, and the non-limited view has not been seen yet, - defer freezing to some later point. - -2014-02-25 Robert Dewar - - * sem_ch3.adb: Minor reformatting. - -2014-02-25 Robert Dewar - - * s-excdeb.ads, s-except.ads, s-exctab.adb, s-exctab.ads, s-finmas.ads, - s-htable.adb, s-htable.ads, s-imenne.adb, s-imenne.ads, s-imgenu.adb, - s-imgenu.ads, s-mastop.adb, s-mastop.ads, s-memory-vms_64.adb, - s-memory-vms_64.ads, s-memory.adb, s-memory.ads, s-os_lib.adb, - s-os_lib.ads, s-parame.adb, s-parame.ads, s-purexc.ads, s-restri.adb, - s-restri.ads, s-rident.ads, s-secsta.adb, s-secsta.ads, s-soflin.adb, - s-soflin.ads, s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads, - s-sopco5.adb, s-sopco5.ads, s-spsufi.ads, s-stache.adb, s-stache.ads, - s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads, s-strcom.adb, - s-strcom.ads, s-strhas.adb, s-string.adb, s-string.ads, s-strops.adb, - s-strops.ads, s-ststop.adb, s-ststop.ads, s-traceb.adb, s-traceb.ads, - s-traent.adb, s-traent.ads, s-unstyp.ads, s-utf_32.adb, s-utf_32.ads, - s-wchcnv.adb, s-wchcnv.ads, s-wchcon.adb, s-wchcon.ads, s-wchjis.adb, - s-wchjis.ads, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_prag.adb, - snames.ads-tmpl: Change Compiler_Unit everywhere to - Compiler_Unit_Warning. - -2014-02-25 Hristian Kirtchev - - * exp_ch6.adb (Add_Or_Save_Precondition): New routine. - (Collect_Body_Postconditions_In_Decls): New routine. - (Collect_Body_Postconditions_Of_Kind): Factor out code. Handle - postcondition aspects or pragmas that appear on a subprogram - body stub. - (Collect_Spec_Preconditions): Factor out code. Handle - precondition aspects or pragmas that appear on a subprogram - body stub. - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The analysis of - aspects that apply to a subprogram body stub is no longer delayed, - the aspects are analyzed on the spot. - (SPARK_Aspect_Error): - Aspects that apply to a subprogram declaration cannot appear in - a subunit. - * sem_ch10.adb Remove with and use clause for Sem_Ch13. - (Analyze_Proper_Body): Add local variable Comp_Unit. Unum - is now a local variable. Code cleanup. Analysis related to - the aspects of a subprogram body stub is now carried out by - Analyze_Subprogram_Body_Helper. Do not propagate the aspects - and/or pragmas of a subprogram body stub to the proper body - as this is no longer needed. Do not analyze the aspects of a - subprogram stub when the corresponding source unit is missing. - (Analyze_Protected_Body_Stub): Flag the illegal use of aspects - on a stub. - (Analyze_Task_Body_Stub): Flag the illegal use of - aspects on a stub. - (Optional_Subunit): Add local variable Unum. - * sem_ch13.adb (Insert_Delayed_Pragma): Do not analyze a generated - pragma when it applies to a subprogram body stub. - * sem_prag.adb (Analyze_Pragma): Pragmas Contract_Cases, - Depends and Global can now apply to a subprogram body stub as - long as it acts as its own spec. - (Analyze_Refined_Pragma): - Code reformatting. Refinement pragmas cannot apply to a subunit. - -2014-02-25 Hristian Kirtchev - - * einfo.ads Update the usage of flag - Uses_Sec_Stack. Uses_Sec_Stack now applies to E_Loop entities. - * exp_ch5.adb (Expand_Iterator_Loop): The temporary for a cursor - now starts with the letter 'C'. This makes reading expanded - code easier. - * exp_ch7.adb (Establish_Transient_Scope): Add local variable - Iter_Loop. Signal that an Ada 2012 iterator loop requires - secondary stack management when creating a transient scope for - an element reference. - * exp_util.adb (Process_Statements_For_Controlled_Objects): - When wrapping the statements of a loop, pass the E_Loop entity - to the wrapping machinery. - (Wrap_Statements_In_Block): Add - formal parameter Scop along with comment on usage. Add local - variables Block_Id, Block_Nod and Iter_Loop. Mark the generated - block as requiring secondary stack management when the block is - created inside an Ada 2012 iterator loop. This ensures that any - reference objects are reclaimed on each iteration of the loop. - * sem_ch5.adb (Analyze_Loop_Statement): Mark the generated block - tasked with the handling of container iterators as requiring - secondary stack management. This ensures that iterators are - reclaimed when the loop terminates or is exited in any fashion. - * sem_util.adb (Add_Block_Identifier): New routine. - (Find_Enclosing_Iterator_Loop): New routine. - * sem_util.ads (Add_Block_Identifier): New routine. - (Find_Enclosing_Iterator_Loop): New routine. - -2014-02-25 Robert Dewar - - * sinfo.ads: Minor reformatting. - -2014-02-25 Tristan Gingold - - * s-expllu.ads, s-expuns.ads, s-expmod.ads: Minor comment fix. - -2014-02-25 Pascal Obry - - * sinput-l.adb, osint.adb, osint.ads: Add Prep_Suffix to factorize code. - -2014-02-25 Tristan Gingold - - * sem_ch10.adb: Minor comment fix. - -2014-02-25 Bob Duff - - * s-tasdeb.adb: Misc cleanup of this package, - including printing addresses in hexadecimal. - (Write): Fix minor bug when taking 'Address of an empty string. - -2014-02-25 Ed Schonberg - - * sem_prag.adb (Analyze_Part_Of): Reject state refinement in a - public child unit when it does not refer to the abstract state - of a public ancestor. - -2014-02-25 Yannick Moy - - * sem_prag.adb (Analyze_Pragma/Pragma_Validity_Checks): Ignore pragma - Validity_Checks in GNATprove and CodePeer modes. - -2014-02-25 Pascal Obry - - * prj-attr.adb, projects.texi, snames.ads-tmpl: Add package Install's - Artifacts attribute. - -2014-02-25 Yannick Moy - - * sem_prag.adb: Minor reformatting to get consistent messages. - -2014-02-25 Robert Dewar - - * checks.adb: Minor reformatting. - * sinfo.ads (Do_Range_Check): Document that this flag is never - passed to the back end. - -2014-02-25 Yannick Moy - - * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem_attr.adb, - sem_ch6.adb: Remove useless references to SPARK RM in error messages. - -2014-02-25 Hristian Kirtchev - - * sem_res.adb (Appears_In_Check): New routine. - (Resolve_Entity_Name): Remove local variables Prev and - Usage_OK. Par is now a constant. Remove the parent chain traversal - as the placement of a volatile object with enabled property - Async_Writers and/or Effective_Reads must appear immediately - within a legal construct. - -2014-02-25 Hristian Kirtchev - - * checks.adb (Apply_Selected_Range_Checks): - Alphabetize local constants and variables. Add comments. - Always insert a range check that requires runtime evaluation into - the tree. - -2014-02-25 Robert Dewar - - * sem_attr.adb, sem_ch6.adb, par-ch3.adb: Minor reformatting. - -2014-02-25 Bob Duff - - * s-tassta.adb (Finalize_Global_Tasks): Limit the number of loop - iterations while waiting for independent tasks to terminate; - if an independent task does not terminate, we do not want to - hang here. In that case, the thread will be terminated when the - process exits. - * s-taprop-linux.adb (Abort_Task): Fix Assert to allow for ESRCH. - -2014-02-25 Ed Schonberg - - * sem_prag.adb (Check_SPARK_Aspect_For_ASIS): New subprogram, - used to perform pre-analysis of the expression for SPARK - aspects that have a non-standard syntax, such as GLobal and - Initializes. The procedure applies to the original expression - in an aspect specification, prior to the analysis of the - corresponding pragma, in order to provide semantic information - for ASIS navigation purposes. - (Analyze_Global_In_Decl_List, Analyze_Initializes_In_Decl_Part): - Call new subprogram. - -2014-02-25 Yannick Moy - - * sem_prag.adb: Remove obsolete reference to SPARK RM in error message. - -2014-02-25 Doug Rupp - - * init.c (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Enable for ARM. - (__gnat_adjust_context_for_raise): Bump the PC by 2. - -2014-02-25 Ed Schonberg - - * par-ch3.adb (P_Basic_Declarative_Items): In the case of a - misplaced IS, add a statement sequence to improper body only if - one has not been parsed already. - -2014-02-25 Ed Schonberg - - * sem_attr.adb (Analyze_Attribute, case 'Update): Check for - mismatch when multidimensional array is updated with a single - index. - -2014-02-25 Yannick Moy - - * sem_ch3.adb, sem_ch5.adb, sem_prag.adb, sem_attr.adb, errout.ads, - sem_ch6.adb: Mark most references to SPARK RM in error messages - for removal. - -2014-02-24 Ed Schonberg - - * par-ch3.adb (P_Basic_Declarative_Items): If an improper body - appears in a list of basic declarations, complete the tree with - an empty statement list, to prevent cascaded errors and crashes - if semantic analysis is attempted. - -2014-02-24 Thomas Quinot - - * g-sercom-mingw.adb (Open): Fix incorrect test for error return - value. - * erroutc.adb: Minor reformatting. - -2014-02-24 Hristian Kirtchev - - * sem_prag.adb (Check_Clause_Syntax): Account - for a solitary input item in a dependency list. - -2014-02-24 Yannick Moy - - * gnat1drv.adb (Adjust_Global_Switches): Do not - use validity checks at all in GNATprove_Mode. - -2014-02-24 Robert Dewar - - * g-sercom-mingw.adb, g-sercom-linux.adb, sem_prag.adb, freeze.adb, - atree.adb, atree.ads: Minor reformatting. - -2014-02-24 Hristian Kirtchev - - * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Do not enforce - global and dependence refinement when SPARK_Mode is off. - * sem_ch7.adb (Analyze_Package_Body_Contract): Do not enforce - state refinement when SPARK_Mode is off. - * sem_ch13.adb (Analyze_Aspect_Specifications): Add local - variable Decl. Insert the generated pragma for Refined_State - after a potential pragma SPARK_Mode. - * sem_prag.adb (Analyze_Depends_In_Decl_Part): Add local - constant Deps. Remove local variable Expr. Check the syntax - of pragma Depends when SPARK_Mode is off. Factor out the - processing for extra parenthesis around individual clauses. - (Analyze_Global_In_Decl_List): Items is now a constant. Check - the syntax of pragma Global when SPARK_Mode is off. - (Analyze_Initializes_In_Decl_Part): Check the syntax of pragma - Initializes when SPARK_Mode is off. - (Analyze_Part_Of): Check - the syntax of the encapsulating state when SPARK_Mode is off. - (Analyze_Pragma): Check the syntax of pragma Abstract_State when - SPARK_Mode is off. Move the declaration order check with respect - to pragma Initializes to the end of the processing. Do not verify - the declaration order for pragma Initial_Condition when SPARK_Mode - is off. Do not complain about a useless package refinement when - SPARK_Mode is off. - (Analyze_Refined_Depends_In_Decl_Part): Refs - is now a constant. Check the syntax of pragma Refined_Depends - when SPARK_Mode is off. - (Analyze_Refined_Global_In_Decl_Part): - Check the syntax of pragma Refined_Global when SPARK_Mode is off. - (Analyze_Refined_State_In_Decl_Part): Check the syntax of pragma - Refined_State when SPARK_Mode is off. - (Check_Dependence_List_Syntax): New routine. - (Check_Global_List_Syntax): New routine. - (Check_Initialization_List_Syntax): New routine. - (Check_Item_Syntax): New routine. - (Check_State_Declaration_Syntax): New routine. - (Check_Refinement_List_Syntax): New routine. - (Has_Extra_Parentheses): Moved to the top level of Sem_Prag. - -2014-02-24 Robert Dewar - - * a-tags.adb, s-os_lib.adb: Minor reformatting. - -2014-02-24 Thomas Quinot - - * g-sercom-mingw.adb, g-sercom-linux.adb (Raise_Error): Include - strerror message, not just numeric errno value. - -2014-02-24 Doug Rupp - - * raise-gcc.c (exception_class_eq): Make endian neutral. - -2014-02-24 Ed Schonberg - - * atree.ads, atree,adb (Copy_Separate_Tree): Remove Syntax_Only - flag, and reset Etype and Analyzed attributes unconditionally - when copying a tree that may be partly analyzed. - * freeze.adb: Change calls to Copy_Separate_Tree accordingly. - * sem_ch6.adb (Check_Inline_Pragma): If the Inline pragma appears - within a subprogram body and applies to it, remove it from the - body before making a copy of it, to prevent spurious errors when - analyzing the copied body. - -2014-02-24 Thomas Quinot - - * s-os_lib.adb (Errno_Message): Do not depend on Integer'Image. - * s-oscons-tmplt.c: On VxWorks, include adaint.h only after - vxWorks.h has been included. Also ensure that file attributes - related definitions are output even in cases where socket support - is not enabled. - * a-tags.adb: Code clean up. - * Make-generated.in (OSCONS_CPP, OSCONS_EXTRACT): Use -iquote - instead of -I to add the main ada source directory to the header - search path, in order to avoid conflict between our own "types.h" - and VxWork's . - -2014-02-24 Robert Dewar - - * atree.ads, atree.adb (Copy_Separate_Tree): Add Syntax_Only parameter. - * debug.adb: Remove documentation of -gnatd.X, no longer used. - * freeze.adb (Wrap_Imported_Subprogram): Fixed and activated. - -2014-02-24 Bob Duff - - * gnat_ugn.texi: Improve documentation of gnatpp. - -2014-02-24 Thomas Quinot - - * g-stheme.adb, g-socthi-vms.adb, g-socthi-vms.ads, - g-socthi-vxworks.adb, g-socthi-vxworks.ads, g-stseme.adb, - g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi.adb, - g-socthi.ads, g-socket.adb (Host_Error_Message): Return a string, not - a chars_ptr, because on Windows this is a renaming of - Socket_Error_Message. - -2014-02-24 Robert Dewar - - * a-direct.adb, sem_ch5.adb, a-cfdlli.adb, a-cfhase.adb, a-tags.adb, - s-filatt.ads, a-cforma.adb, sem_ch6.adb, g-socthi-mingw.adb, - a-cfhama.adb, a-cforse.adb, a-cofove.adb: Minor reformatting and code - reorganization. - -2014-02-24 Thomas Quinot - - * Make-generated.in (OSCONS_CPP, OSCONS_EXTRACT): Make sure - that the source directory containing s-oscons-tmplt.c is on the - include path, so that all internal header files are available. - -2014-02-24 Ed Schonberg - - * sem_ch5.adb (Analyze_Loop_Parameter_Specification): If the - domain of iteration is an attribute reference 'Old, this is an - Ada 2012 iterator and the loop must be rewritten as such. - -2014-02-24 Thomas Quinot - - * s-fileio.adb (Errno_Message): Remove, use shared version from - s-os_lib instead. - * s-crtrun.ads, Makefile.rtl: Remove now unused unit. - * g-stseme (Socket_Error_Message): Reimplement in terms of new - s-os_lib function. - * g-socthi.ads, g-socthi.adb: Change profile of - Socket_Error_Message to return String to allow the above. - * g-socket.adb, g-socthi-mingw.adb, g-socthi-mingw.ads, - * g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb, - * g-socthi-vxworks.ads: Update to account for the above profile - change. - * a-tags.adb: Use strlen builtin binding provided by s-crtl. - * s-crtl.ads (strncpy): New procedure. - * s-os_lib.adb (Copy_Attributes): Import just once (strncpy): - Use import from s-crtl. - * a-envvar.adb, osint.adb: Use imports of C runtime functions - from s-crtl instead of re-importing locally. - -2014-02-24 Hristian Kirtchev - - * sem_prag.adb (Analyze_Global_Item): Emit the - variable related checks concerning volatile objects only when - SPARK_Mode is on. - -2014-02-24 Robert Dewar - - * sem_ch5.adb (Analyze_Iterator_Specification): use - Error_Msg_Ada_2012_Feature. - -2014-02-24 Jose Ruiz - - * s-rident.ads (Profile_Info): For Ravenscar, the restrictions - No_Local_Timing_Events and No_Specific_Termination_Handlers - must be set, according to the Ravenscar profile definition - in D.13(6/3). - -2014-02-24 Ed Schonberg - - * sem_ch6.adb (Analyze_Expression_Function): If this is a - completion, freeze return type and its designated type if needed. - -2014-02-24 Thomas Quinot - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case - 'Address): When moving initialization statements to a freeze - entity, keep them under a single node (i.e. do not unwrap - expressions with actions), and set the Initialization_Statements - attribute again so that processing of a later pragma Import can - still remove them. - -2014-02-24 Claire Dross - - * a-cfdlli.adb, a-cfdlli.ads, a-cfhama.adb, a-cfhama.ads, - a-cfhase.adb, a-cfhase.ads, a-cforma.adb, a-cforma.ads, - a-cforse.adb, a-cforse.ads, a-cofove.adb, a-cofove.ads: Rename - Left/Right to First_To_Previous/Current_To_Last. - -2014-02-24 Thomas Quinot - - * adaint.h (struct file_attributes): New component "error" - (__gnat_error_attributes): Accessor for the above. - * adaint.c (__gnat_error_attributes): New subprogram - (__gnat_stat): Fix returned value (expect errno value) - (__gnat_stat_to_attr): Add management of error component (set to - stat errno value, except for missing files where it is set to 0, - and exists is set to 0). - * osint.ads (File_Attributes_Size): Update per change above, - also clarify documentation. - * s-filatt.ads: New file, binding to file attributes related - functions. - * Makefile.rtl (s-filatt): New runtime unit. - * s-crtl.ads (strlen): Expose binding to GCC builtin (falls back - to library function if not available on target). - * s-os_lib.ads, s-os_lib.adb (Errno_Message): New subprogram. - * s-oscons-tmplt.c (SIZEOF_struct_file_attributes, - SIZEOF_struct_dirent_alloc): New constants. - * Make-generated.in (s-oscons.ads): Now requires adaint.h. - * a-direct.adb (Fetch_Next_Entry): Fix incorrect buffer sizes. - Perform appropriate error checking if stat fails (do not just - ignore existing files if stat fails) - * gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Update - dependencies. - -2014-02-24 Hristian Kirtchev - - * sem_prag.adb (Analyze_Global_Item): Move the check concerning - the use of volatile objects as global items in a function to - the variable related checks section. - * sem_util.adb (Async_Readers_Enabled): Directly call - Has_Enabled_Property. - (Async_Writers_Enabled): Directly call Has_Enabled_Property. - (Effective_Reads_Enabled): Directly call Has_Enabled_Property. - (Effective_Writes_Enabled): Directly call Has_Enabled_Property. - (Has_Enabled_Property): Rename formal parameter State_Id to Item_Id. - Update the comment on usage. State_Has_Enabled_Property how handles - the original logic of the routine. Add processing for variables. - (State_Has_Enabled_Property): New routine. - (Variable_Has_Enabled_Property): New routine. - -2014-02-24 Robert Dewar - - * sinfo.ads, sem_ch12.adb, sem_res.adb, sem_ch4.adb, par-ch12.adb: - Minor reformatting. - * atree.ads, atree.adb (Node35): New function. - (Set_Node35): New procedure. - * debug.adb: Define new debug flag -gnatd.X. - * einfo.ads, einfo.adb (Import_Pragma): New field. - * freeze.adb (Wrap_Imported_Procedure): New procedure (not - really active yet, has to be activated with -gnatd.X. - * sem_prag.adb (Set_Imported): Set new Import_Pragma - field (Set_Imported): Don't set Is_Public (see - Freeze.Wrap_Imported_Subprogram) - * par-ch3.adb (P_Component_List): Handle unexpected null component. - -2014-02-24 Yannick Moy - - * sem_ch3.adb: Correct reference to SPARK RM in error messages. - * gnat_rm.texi: Correct documentation of attribute Update. - -2014-02-24 Ed Schonberg - - * sem_ch5.adb (Analyze_Iterator_Specification): Reject container - iterator in older versions of Ada. - -2014-02-24 Gary Dismukes - - * sem_ch5.adb, sem_aux.ads, sem_ch12.adb, gnat_ugn.texi, par.adb, - par-ch12.adb: Change spelling 'parametrization' to 'parameterization'. - -2014-02-24 Ed Schonberg - - * sinfo.ads, sinfo.adb: New attribute Generalized_Indexing, for - indexed_components that are instances of Ada 2012 container - indexing operations. Analysis and resolution of such nodes - is performed on the attribute, and the original source is - preserved for ASIS operations. If expansion is enabled, the - indexed component is replaced by the value of this attribute, - which is in a call to an Indexing aspect, in most case wrapped - in a dereference operation. - * sem_ch4.adb (Analyze_Indexed_Component): Create - Generalized_Indexing attribute when appropriate. - (Analyze_Call): If prefix is not overloadable and has an indexing - aspect, transform into an indexed component so it can be analyzed - as a potential container indexing. - (Analyze_Expression): If node is an indexed component with a - Generalized_ Indexing, do not re-analyze. - * sem_res.adb (Resolve_Generalized_Indexing): Complete resolution - of an indexed_component that has been transformed into a container - indexing operation. - (Resolve_Indexed_Component): Call the above when required. - (Resolve): Do not insert an explicit dereference operation on - an indexed_component whose type has an implicit dereference: - the operation is inserted when resolving the related - Generalized_Indexing. - -2014-02-24 Olivier Ramonat - - * gnat_rm.texi, gnat_ugn.texi: Replace Ada Compiler by Ada Development - Environment. - -2014-02-24 Hristian Kirtchev - - * sem_prag.adb (Check_Constituent_Usage): Remove leading spaces in - error messages. - (Inconsistent_Mode_Error): Remove leading spaces in error messages. - Merge the expected and available mode errors. - (Report_Unused_Constituents): Remove leading spaces in error messages. - (Report_Unused_States): Remove leading spaces in error messages. - -2014-02-24 Thomas Quinot - - * par_sco.adb (Traverse_One): Refine categorization of statement - SCOs. - -2014-02-24 Robert Dewar - - * aspects.ads, aspects.adb: Remove aspects Ada_2005 and Ada_2012, - Pure_05, Pure_12 and Preelaborate_05. - * gnat_rm.texi: Update accordingly. - * sem_prag.adb: Document one argument form of Ada_05/Ada_2005 - pragmas Document one argument form of Ada_12/Ada_2012 pragmas - Recognize one argument form of these pragmas only in GNAT mode - (-gnatg). - -2014-02-24 Ed Schonberg - - * s-dimmks.ads: Replace symbol for temperature, previously the - Greek letter Theta, by the ASCII @ sign. - * s-diflio.ads: ditto. - -2014-02-24 Robert Dewar - - * exp_ch4.adb: Minor code reorganization (use OR for boolean - variables). - * sem_ch3.adb, sem_prag.adb, freeze.adb: Minor reformatting. - -2014-02-24 Ben Brosgol - - * gnat_ugn.texi, projects.texi: Added the necessary conditionalization - so that references to gnatmem and ASIS tools do not appear in the FSF - edition of the GNAT User's Guide. - -2014-02-24 Yannick Moy - - * freeze.adb (Freeze_Entity): Do not issue warning - for pre/post being ignored on imported subprogram in GNATprove - mode. - -2014-02-24 Robert Dewar - - * exp_ch5.adb, sem_ch5.adb, sem_type.adb, sem_res.adb, sem_attr.adb, - stand.ads, sem_eval.adb: Minor reformatting. - -2014-02-24 Yannick Moy - - * sem_prag.adb: Minor rewording in error message. - -2014-02-24 Johannes Kanig - - * exp_util.adb (Expand_Subtype_From_Expr): Do not expand subtypes in - GNATprove_mode, gnat2why doesn't need nor use these types. - -2014-02-24 Gary Dismukes - - * exp_ch4.adb (Expand_N_Op_Expon): On the AAMP - target, in the case of signed integer exponentiation that uses a - run-time routine, always select the Exp_* versions, since overflow - checking is automatically done by AAMP arithmetic instructions. - -2014-02-24 Hristian Kirtchev - - * sem_ch13.adb (Analyze_Aspect_Specifications): - When the related context is a package instace, insert pragma - Abstract_State after all internally-generated renamings related - to the instance "header". - -2014-02-24 Ed Schonberg - - * sem_ch3.adb (Analyze_Declarations): Analyze Contract of abstract - subprograms. - * sem_disp.adb (Check_Dispatching_Context): A non-dispatching - call to an abstract subprogram is legal if it appears in a - pre/postcondition of another abstract operation. - -2014-02-24 Sergey Rybin - - * gnat_ugn.texi: Misc updates. - -2014-02-24 Hristian Kirtchev - - * exp_prag.adb (Expand_Old): Set the type of the generated temporary. - -2014-02-24 Gary Dismukes - - * layout.adb (Layout_Variant_Record): Instantiate - Generic_Check_Choices and call Check_Choices before calling - Build_Discr_Checking_Funcs, since we need Others_Discrete_Choices - set to prevent generating incorrect discriminant-checking - functions for 'others' variants (functions that unconditionally - return True rather than accounting for the values covered by the - 'others' choice). - * sem_eval.ads (Subtypes_Statically_Compatible): Add formal - Formal_Derived_Matching. - (Subtypes_Statically_Match): Add formal Formal_Derived_Matching. - * sem_eval.adb (Subtypes_Statically_Compatible): Pass new - Formal_Derived_Matching formal to Subtypes_Statically_Match. - (Subtypes_Statically_Match): Suppress the Object_Size matching - test in the case where Formal_Derived_Matching is True. - * sem_ch12.adb (Validate_Derived_Type_Instance): Pass - True for Formal_Derived_Matching_Formal on the call to - Subtypes_Statically_Compatible. - -2014-02-23 Eric Botcazou - - * gcc-interface/Make-lang.in (ADA_TOOLS_FLAGS_TO_PASS): Robustify. - -2014-02-23 Eric Botcazou - - * gcc-interface/utils2.c (build_simple_component_ref): Fix formatting. - Look through a conversion between original and packable version to get - the base object. - (build_component_ref): Rework comment and fix formatting. - -2014-02-20 Sergey Rybin - - * gnat_ugn.texi, vms_data.ads (gnatelim): Add description of - project-specific options. - -2014-02-20 Ed Schonberg - - * a-cbdlli.adb (Insert): When capacity exceeded, raise Capacity_Error, - not Constraint_Error. - * a-cbmutr.adb (Append_Child, Insert_Child, Prepend_Child): Ditto. - * sem_ch5.adb: Code clean up. - -2014-02-20 Hristian Kirtchev - - * sem_prag.adb (Usage_Error): Remove local - constant Typ. Remove the specialized diagnostics for unconstrained - or tagged items as those are not part of the explicit input set - of the related subprogram and should not be flagged. - -2014-02-20 Ed Schonberg - - * sem_attr.adb: Add guard to preserve all errors. - -2014-02-20 Vincent Celier - - * switch-m.adb (Normalize_Compiler_Switches): Take into account - switches that are recorded in ALI files: -gnateA, -gnateE, - -gnateF, -gnateinn, -gnateu, -gnateV and -gnateY. - -2014-02-20 Ed Schonberg - - * sem_ch5.adb (Analyze_Iterator_Specification): Check legality - of an element iterator form over a formal container with an - Iterable aspect. - * exp_ch5.adb (Build_Formal_Container_Iteration): Utility - to create declaration and loop statements for both forms of - container iterators. - (Expand_Formal_Container_Element_Iterator): New procedure - to handle loops of the form "for E of C" when C is a formal - container. - (Expand_Formal_Container_Iterator): Code cleanup. - -2014-02-20 Hristian Kirtchev - - * sem_prag.adb (Add_Item_To_Name_Buffer): New routine. - (Analyze_Contract_Case): Remove the use of - "may". Replace "aspect Contract_Cases" to avoid categorization - of aspect vs pragma. - (Analyze_External_Property_In_Decl_Part): Remove the use of "formal". - (Analyze_Global_Item): Remove - the use of "formal", specify the subprogram. Split the - error message about a state with visible refinement into - two. Remove the use of "global" from "volatile global item". - (Analyze_Initialization_Item): Ensure that the SPARK RM reference - is on one line. - (Analyze_Input_Output): Update the call to - Check_Mode. Specify the duplicated item. Reword the error - message concerning an input of a null output list. Use "\" - for error message continuation. - (Analyze_Part_Of): Remove - the use of "may". Use "\" for error message continuation. - (Analyze_Refined_Depends_In_Decl_Part): Update the error - message concerning a useless refinement to match the format - of Refined_Global. - (Analyze_Refined_Global_In_Decl_Part): Reword the error message - concerning a useless refinement. - (Analyze_Refinement_Clause): Use "\" for error message continuation. - (Check_Constituent_Usage): Use "\" for error message continuation. - (Check_Dependency_Clause): Use "\" for error message continuation. - (Check_Matching_Constituent): Use "\" for error message continuation. - (Check_Missing_Part_Of): Use "\" for error message continuation. - (Check_Mode): Renamed to - Check_Role. Update the comment on usage. Redo the error reporting - to use Role_Error. - (Check_Mode_Restriction_In_Enclosing_Context): Use "\" for error - message continuation. - (Find_Mode): Renamed to Find_Role. Update the parameter profile along - with comment on usage. Update all occurrences of Is_Input and Is_Output. - (Inconsistent_Mode_Error): Use "\" for error message continuation. - (Input_Match): Use "\" for error message continuation. - (Role_Error): New routine. - (Set_Convention_From_Pragma): Use "\" for error message continuation. - (Usage_Error): Add local variable Error_Msg. Build specialized error - message showcasing the offending item kind. Redo the diagnostics for - unconstrained types. - -2014-02-20 Ed Schonberg - - * exp_util.adb (Is_Iterated_Container): Use high-level primitives - to determine whether a type is a container type, rather than - examining only its type declaration, so that subtypes and derived - types are handled properly. - -2014-02-20 Sergey Rybin - - * gnat_ugn.texi: gnatmetric: add description of project-specific - options. - -2014-02-20 Ed Schonberg - - * sem_attr.adb (Analyze_Attribute, case 'Update): Verify that - all choices in an association for a record type have the same - type, as is done for record aggregates. - -2014-02-20 Robert Dewar - - * a-cborma.adb, a-cbhama.adb, a-cbdlli.adb, a-cbmutr.adb: Use pragma - Unmodified rather than Warnings (Off). Make comments - uniform in the four affected units. - -2014-02-20 Robert Dewar - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case - Object_Size): For non-scalar types allow any value that is a - multiple of 8. - * gnat_rm.texi: Document Object_Size for composites more clearly. - -2014-02-20 Yannick Moy - - * sem_util.ads, sem_util.adb (Default_Initialization): Remove function. - -2014-02-20 Ed Schonberg - - * stand.ads: Raise_Type: new predefined entity, used as the type - of a Raise_Expression prior to resolution. - * cstand.adb: Build entity for Raise_Type. - * sem_ch11.adb (Analyze_Raise_Expression): use Raise_Type as the - initial type of the node. - * sem_type.adb (Covers): Raise_Type is compatible with all - other types. - * sem_res.adb (Resolve): Remove special handling of Any_Type on - Raise_Expression nodes. - (Resolve_Raise_Expression): Signal ambiguity if the type of the - context is still Raise_Type. - -2014-02-20 Robert Dewar - - * sem_ch12.adb (Validate_Access_Type_Instance): Add message if - mismatching predicates. - * sem_ch6.adb (Check_Conformance): Give better messages on - predicate mismatch. - * sem_eval.adb (Predicates_Match): Move to spec. - * sem_eval.ads (Predicates_Match): Moved here from body. - -2014-02-20 Ed Schonberg - - * a-cbmutr.adb: Use default value in Insert_Child. - -2014-02-20 Vincent Celier - - * gnatcmd.adb, make.adb, prj-makr.adb, clean.adb: Call - Stringt.Initialize in all project aware tools. - -2014-02-20 Doug Rupp - - * gnat_ugn.texi: Document gnatbind -X option. - * vms_data.ads: Minor warnings documentation reformatting. - -2014-02-20 Ed Schonberg - - * exp_ch3.adb (Expand_Freeze_Array_Type): Only create invariant - procedure for a base type. - -2014-02-20 Robert Dewar - - * sem_ch4.adb (Analyze_Case_Expression): Get type from first - expression with type info. - * sem_ch13.adb: Minor reformatting. - * sem_eval.adb (Subtypes_Statically_Match): Make sure we return - False if predicates do not match on the two types. - -2014-02-20 Arnaud Charlet - - * sem_prag.adb (Analyze_Pragma [pragma Attach_Handler]): - In Relaxed_RM_Semantics mode, allow any static integer value, - for compatibility with other compilers. - -2014-02-20 Vincent Celier - - * errutil.adb (Initialize): Properly initialize entry in table - Warnings when warnings are suppressed. - -2014-02-20 Robert Dewar - - * s-os_lib.ads: Add warning about non-portability of Rename_File. - * sem_util.ads, sem_util.adb (Is_Junk_Name): New function. - * sem_warn.adb: Use Is_Junk_Name to suppress some warnings. - * gnat_ugn.texi: Document no warnings on junk variable names. - * layout.adb: Minor code reorganization (use Ekind_In). - * stringt.adb: Move initialization of Null_String_Id to Initialize - routine. - -2014-02-20 Ed Schonberg - - * sem_ch13.adb: Initialize optional Element_Id. - -2014-02-20 Robert Dewar - - * s-os_lib.ads (Rename_File): Minor commment addition. - -2014-02-20 Thomas Quinot - - * einfo.ads: Minor reformatting. - -2014-02-20 Hristian Kirtchev - - * aspects.adb (Exchange_Aspects): New routine. - * aspects.ads (Exchange_Aspects): New routine. - * atree.adb (Rewrite): Do not check whether the save node has - aspects as it never will, instead check the node about to be clobbered. - * einfo.adb (Write_Field25_Name): Abstract_States can appear in - entities of generic packages. - * sem_ch6.adb (Analyze_Expression_Function): Fix the parent - pointer of an aspect specification list after rewriting takes place. - * sem_ch7.adb (Analyze_Package_Body_Helper): Swap the aspect - specifications of the generic template and the copy used for analysis. - * sem_ch12.adb (Analyze_Generic_Package_Declaration): Swap - the aspect specifications of the generic template and the - copy used for analysis. - (Analyze_Package_Instantiation): Propagate the aspect specifications - from the generic template to the instantiation. - (Build_Instance_Compilation_Unit_Nodes): Propagate the aspect - specifications from the generic template to the instantiation. - * sem_ch13.adb (Analyze_Aspect_Specifications): Handle aspects - Abstract_State, Initializes and Initial_Condition when they - apply to a package instantiation. - -2014-02-20 Robert Dewar - - * stringt.adb: Add call to Initialize in package initialization. - -2014-02-20 Robert Dewar - - * a-crbtgk.adb, a-cihama.adb, a-coinve.adb, a-ciorse.adb, a-crbtgo.adb, - a-cidlli.adb, a-cimutr.adb, a-cihase.adb, a-cohama.adb, a-coorse.adb, - a-chtgke.adb, a-chtgop.adb, a-comutr.adb, a-ciorma.adb, a-cobove.adb, - a-convec.adb, a-cohase.adb, a-chtgbk.adb, a-chtgbo.adb: Minor - reformatting. - -2014-02-20 Bob Duff - - * s-os_lib.ads: Minor: Remove incorrect comment. - -2014-02-20 Robert Dewar - - * sem_elab.adb (Check_Elab_Assign): Clearer warning message. - -2014-02-20 Ed Schonberg - - * a-cborma.adb (Assign): When creating a node without a specified - element, insert an uninitialized element in the map, because - the instance may provide an element type with a default - initialization, e.g a scalar with a Default_Value aspect. - * a-cbhama.adb (Assign_Key): Remove useless Allocate procedure. - (Insert): In the version without explicit element, provide an - uninitialized element, as above. - * a-cbdlli.adb (Append): In the version without explicit element, - provide an uninitalized element, as above. - (Allocate): Remove unused version. - -2014-02-20 Robert Dewar - - * sem_elab.adb: Minor code reorganization (use Nkind_In). - * stringt.adb: Remove temporary pragma Warnings (Off). - * stringt.ads: Add pragma Elaborate_Body to ensure initialization - of Null_String_Id. - -2014-02-20 Matthew Heaney - - * a-chtgbk.adb (Replace): Use correct offset when calculating bucket - index. - -2014-02-20 Ed Schonberg - - * sem_ch5.adb (Analyze_Iterator_Specification): Initialize - properly the cursor type for subsequent volatile testing in SPARK - mode, when domain is a formal container with an Iterabe aspect. - -2014-02-20 Robert Dewar - - * errout.adb (Set_Warnings_Mode_Off): Add Reason argument. - (Set_Specific_Warning_Off): Add Reason argument. - * errout.ads (Set_Warnings_Mode_Off): Add Reason argument. - (Set_Specific_Warning_Off): Add Reason argument. - * erroutc.adb (Warnings_Entry): Add Reason field - (Specific_Warning_Entry): Add Reason field. - (Warnings_Suppressed): return String_Id for Reason. - (Warning_Specifically_Suppressed): return String_Id for Reason. - * erroutc.ads (Warnings_Entry): Add Reason field. - (Specific_Warning_Entry): Add Reason field. - (Set_Specific_Warning_Off): Add Reason argument. - (Set_Warnings_Mode_Off): Add Reason argument. - (Warnings_Suppressed): return String_Id for Reason. - (Warning_Specifically_Suppressed): return String_Id for Reason. - * errutil.adb (Warnings_Suppressed): returns String_Id for Reason - (Warning_Specifically_Suppressed): returns String_Id for Reason - * gnat_rm.texi: Document that Warning parameter is string literal - or a concatenation of string literals. - * par-prag.adb: New handling for Reason argument. - * sem_prag.adb (Analyze_Pragma, case Warning): New handling - for Reason argument. - * sem_util.ads, sem_util.adb (Get_Reason_String): New procedure. - * sem_warn.ads (Warnings_Off_Entry): Add reason field. - * stringt.adb: Set Null_String_Id. - * stringt.ads (Null_String_Id): New constant. - -2014-02-20 Robert Dewar - - * einfo.ads: Minor comment addition: Etype of package is - Standard_Void_Type. - * checks.adb, exp_aggr.adb, exp_atag.adb, exp_attr.adb, exp_ch13.adb, - exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, - exp_ch7.adb, exp_ch9.adb, exp_dbug.adb, exp_disp.adb, exp_imgv.adb, - exp_intr.adb, exp_prag.adb, exp_sel.adb, exp_strm.adb, exp_util.adb, - freeze.adb, rtsfind.adb, sem_aggr.adb, sem_attr.adb, sem_ch10.adb, - sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, - sem_ch6.adb, sem_ch8.adb, sem_dim.adb, sem_prag.adb, sem_res.adb, - sem_util.adb, tbuild.adb, tbuild.ads: Remove New_Reference_To. - Replace all calls with calls to New_Occurrence_Of. - -2014-02-20 Robert Dewar - - * par-util.adb (Ignore, case of right paren): Make this a - serious error. - -2014-02-19 Robert Dewar - - * sem_ch5.adb, sem_prag.adb, sem_attr.adb: Minor reformatting. - * debug.adb: Remove -gnatd.X switch, no longer used. - * styleg.adb (Check_Then): Remove check of -gnatd.X, check is - now always made. - -2014-02-19 Bob Duff - - * g-socket.ads: Minor: Correct some comments. - -2014-02-19 Ed Schonberg - - * sem_ch5.adb: Inhibit iterator rewriting in ASIS mode. - -2014-02-19 Arnaud Charlet - - * sem_ch13.adb (Analyze_Aspect_Specifications): Do not generate - an error on out of range priorities if Relaxed_RM_Semantics. - * sem_prag.adb (Analyze_Pragma): Ditto. - -2014-02-19 Bob Duff - - * sem_attr.adb (Resolve_Attribute): Detect the case of F'Access - where F denotes the renaming of an enumeration literal, and - issue a specialized error message. - -2014-02-19 Matthew Heaney - - * a-chtgop.ads (Checked_Index): New operation. - (Next): Changed mode of hash table. - * a-chtgop.adb (Adjust, Delete_Node_Sans_Free): Detect tampering - (Generic_Read, Reserve_Capacity): Ditto. - (Generic_Equal): Detect tampering. - (Next): Changed mode of hash table, detect tampering. - * a-chtgke.ads (Checked_Index, Checked_Equivalent_Keys): New - operation. - (Find): Changed mode of hash table. - * a-chtgke.adb (Checked_Equivalent_Keys): New operation - (Delete_Key_Sans_Free, Generic_Conditional_Insert): Detect - tampering. - (Find): Changed mode of hash table, check for tampering. - (Generic_Replace_Element): Check for tampering. - * a-chtgbk.ads (Checked_Index, Checked_Equivalent_Keys): New operation. - * a-chtgbk.adb (Checked_Index, Checked_Equivalent_Keys): New - operation (Delete_Key_Sans_Free, Generic_Conditional_Insert): - Detect tampering. - (Find, Generic_Replace_Element): Check for tampering. - * a-chtgbo.ads (Checked_Index): New operation. - * a-chtgbo.adb (Checked_Index): New operation - (Delete_Node_Sans_Free, Generic_Equal): Detect tampering. - (Generic_Read, Next): Ditto. - * a-cohase.adb, a-cihase.adb (Is_In): Changed mode of hash - table (Difference, Intersection): Use variable view of - source, detect tampering (Find, Is_Subset, Overlap): Use - variable view of container (Symmetric_Difference, Union): - Detect tampering (Vet): Use Checked_Index to detect tampering - (Constant_Reference, Element, Find): Use variable view of - container. - (Update_Element_Preserving_Key): Detect tampering. - * a-cbhase.adb (Difference, Find, Is_In): Use variable view - of container. - (Is_Subset): Ditto. - (Equivalent_Sets, Overlap): Use Node's Next component. - (Vet): Use Checked_Index to detect tampering. - (Constant_Reference, Element, Find): Use variable view of container. - (Update_Element_Preserving_Key): Detect tampering. - * a-cohama.adb, a-cihama.adb, a-cbhama.adb (Constant_Reference, - Element, Find): Use variable view of container. - (Reference): Rename hash table component. - (Vet): Use Checked_Index to detect tampering. - -2014-02-19 Arnaud Charlet - - * adabkend.adb (Scan_Compiler_Arguments): Add missing handling - of -nostdinc. - -2014-02-19 Thomas Quinot - - * tbuild.adb (New_Occurrence_Of, New_Rerefence_To): Guard - against calls without Def_Id. - -2014-02-19 Claire Dross - - * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads, - a-cofove.ads: Add global annotations to subprograms. - -2014-02-19 Hristian Kirtchev - - * sem_prag.adb (Analyze_Initial_Condition_In_Decl_Part): Remove - constants Errors, Pack_Id and Pack_Init. Remove variable Vars. - Initial_Condition no longer requires the presence of pragma - Initialized. Do not try to diagnose whether all variables mentioned in - pragma Initializes also appear in Initial_Condition. - (Collect_Variables): Removed. - (Match_Variable): Removed. - (Match_Variables): Removed. - (Report_Unused_Variables): Removed. - -2014-02-19 Thomas Quinot - - * gnat_rm.texi (pragma Stream_Convert): Minor rewording. - -2014-02-19 Robert Dewar - - * sem_util.adb, sem_util.ads, prj-conf.adb, s-os_lib.adb: Minor - reformatting. - -2014-02-19 Vincent Celier - - * prj-part.adb (Parse_Single_Project): Use the fully resolved - project path, with all symbolic links resolved, to check if the - same project is imported with a different unresolved path. - * prj-tree.ads (Project_Name_And_Node): Component Canonical_Path - changed to Resolved_Path to reflect that all symbolic links - are resolved. - -2014-02-19 Ed Schonberg - - * sem_util.ads, sem_util.adb (Get_Cursor_Type): Moved to sem_util - from sem_ch13, for use elsewhere. - * sem_ch13.adb (Get_Cursor_Type): Moved to sem_util. - * sem_ch5.adb (Analyze_Iterator_Specification): Set properly the - cursor type on the loop variable when the iteration is over o - formal container. - -2014-02-19 Vincent Celier - - * prj-conf.adb (Add_Default_GNAT_Naming_Scheme): Add declaration - for an empty Target (Check_Target): Never fail when an empty - target is declared in the configuration project. - -2014-02-19 Ed Schonberg - - * sem_prag.adb (Check_Arg_Is_Local_Name): Argument is local if - the pragma comes fron a predicate aspect and the context is a - record declaration within the scope that declares the type. - -2014-02-19 Robert Dewar - - * gnat_rm.texi: Minor clarifications. - * expander.adb, sem_aggr.adb: Add comments. - -2014-02-19 Ed Schonberg - - * sem_prag.adb (Check_Arg_Is_Local_Name): For an aspect that - applies to a subprogram body, the name is the current scope, - rather than being declared in the current scope. - (Analyze_Pragma, case No_Return): Handle properly a No_Return - aspect applied to a subprogram body. - -2014-02-19 Ed Schonberg - - * sem_ch13.adb (Resolve_Iterable_Operation): Improve resolution - of overloaded subprograms, and fix bug in handling of primitive - operation Element. - -2014-02-19 Pascal Obry - - * s-os_lib.adb: Minor reformatting. - -2014-02-19 Yannick Moy - - * expander.adb (Expand): Do nothing inside generics. - * sem_aggr.adb (Aggregate_Constraint_Checks): Do nothing inside - generics. - -2014-02-19 Yannick Moy - - * exp_ch2.adb: Remove useless 'with' of unit Uintp. - -2014-02-19 Robert Dewar - - * sem_ch3.adb, style.adb, sem_prag.adb, sem_ch13.adb: Minor reformatting - * a-sequio.adb: Remove useless pragma Extensions_Allowed (no - longer needed). - -2014-02-19 Claire Dross - - * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, - a-cforse.ads, a-cofove.ads: Add Iterable aspect to formal containers. - -2014-02-19 Hristian Kirtchev - - * sem_ch3.adb (Analyze_Declarations): Analyze - a package contract at the end of the private declarations (if - applicable), otherwise analyze it and the end of the visible - declarations. - -2014-02-19 Ed Schonberg - - * style.adb (Missing_Overriding): If subprogram is an - instantiation, place warning on the instance node itself, - without mention of the original generic. Do not emit message - if explicit Ada version is older than the introduction of the - overriding indicator. - -2014-02-19 Yannick Moy - - * gnat_rm.texi: Doc clarifications. - -2014-02-19 Yannick Moy - - * exp_util.adb (Remove_Side_Effects): Do not remove side-effects - inside a generic. - -2014-02-19 Ed Schonberg - - * sem_ch13.adb (Get_Cursor_Type): Obtain cursor type from - specified First primitive, rather than by name. - (Validate_Iterable_Aspect, Resolve_Iterable_Operation): Use it, - and extend error checking for missing primitives and incorrect - signatures. - -2014-02-19 Ed Schonberg - - * sem_ch3.adb (Check_Pragma_Implemented): Detect additional - errors when a Synchronization aspect on an overriding protected - operation does not match the given aspect on the overridden - operation of an ancestor interface. - -2014-02-19 Hristian Kirtchev - - * sem_prag.adb (Check_Loop_Pragma_Grouping): New routine. - (Check_Loop_Pragma_Placement): Update - comment on usage. Remove local variables Orig_Stmt and - Within_Same_Sequence. Check that the current Loop_Invariant or - Loop_Variant pragma is grouped together with other such pragmas. - (Is_Loop_Pragma): New routine. - (Prev_In_Loop): Removed. - -2014-02-19 Robert Dewar - - * par-ch6.adb (P_Return): For extended return, end column lines - up with RETURN. - * par.adb: Minor documentation clarification. - -2014-02-19 Yannick Moy - - * sem_prag.adb (Check_Loop_Pragma_Placement): Add check - that Loop_Invariant and Loop_Variant appear consecutively. - * gnat_rm.texi Update documentation of Loop_Invariant and - Loop_Variant pragmas. - -2014-02-19 Robert Dewar - - * debug.adb: Document -gnatd.X. - * par-ch5.adb (P_If_Statement): Always check THEN, even if not - first token - (Check_Then_Column): Ditto. - * styleg.adb (Check_Then): Allow THEN on line after IF. - (Check_Then): Check THEN placement under control of -gnatd.X - * styleg.ads (Check_Then): Now called even if THEN is not first - token on line. - * stylesw.ads (Style_Check_If_Then_Layout): Document new - relaxed rules. - * gnat_ugn.texi: For -gnatyi, THEN can now be on line after IF. - -2014-02-19 Robert Dewar - - * a-cfhama.adb, a-cfhase.adb, a-cforse.adb, a-cofove.adb, a-ngcefu.adb, - a-teioed.adb, a-wtedit.adb, a-ztedit.adb, exp_ch5.adb, inline.adb, - prj-pp.adb, prj-tree.adb, sem_ch12.adb, sem_ch8.adb, - vms_conv.adb: Fix bad layout of IF statements - -2014-02-19 Robert Dewar - - * exp_util.adb (Side_Effect_Free): Scalar if expressions can be SEF. - -2014-02-19 Robert Dewar - - * exp_util.adb: Update comments. - -2014-02-19 Doug Rupp - - * bindgen.adb (Gen_Adainit) [VMS] New global Float_Format. - * init.c (__gl_float_format): [VMS] New global. - (__gnat_set_features): Call FP_CONTROL to set FPSR for the float - representation in effect. - -2014-02-19 Hristian Kirtchev - - * exp_ch6.adb Add with and use clause for Exp_Prag. - (Expand_Contract_Cases): Relocated to Exp_Prag. - * exp_ch6.ads (Expand_Contract_Cases): Relocated to Exp_Prag. - * exp_prag.adb Add with and use clauses for Checks and Validsw. - (Expand_Contract_Cases): Relocated from Exp_Ch6. Update the - structure of the expanded code to showcase the evaluation of - attribute 'Old prefixes. Add local variable Old_Evals. Expand - any attribute 'Old references found within a consequence. Add - circuitry to evaluate the prefixes of attribute 'Old that - belong to a selected consequence. - (Expand_Old_In_Consequence): New routine. - * exp_prag.ads (Expand_Contract_Cases): Relocated from Exp_Ch6. - * sem_attr.adb (Check_Use_In_Contract_Cases): Warn that a - potentially unevaluated prefix is always evaluated. - -2014-02-19 Robert Dewar - - * exp_attr.adb (Expand_Min_Max_Attribute): Use Insert_Declaration - (Expand_Min_Max_Attribute): Use Matching_Standard_Type. - * exp_ch4.adb (Expand_N_Expression_With_Actions): Remove special - handling for the case of Modify_Tree_For_C, this approach did - not work. - * exp_util.adb (Matching_Standard_Type): New function - (Side_Effect_Free): New top level functions (from - Remove_Side_Effects). - * exp_util.ads (Side_Effect_Free): New top level functions - (moved from body). - * sinfo.ads: Minor comment updates. - -2014-02-19 Ed Schonberg - - * exp_ch6.adb (Expand_Simple_Function_Return): If return - type is unconstrained and uses the secondary stack, mark the - enclosing function accordingly, to ensure that the value is not - prematurely removed. - -2014-02-19 Hristian Kirtchev - - * par.adb Alphabetize the routines in Par.Sync. - (Resync_Past_Malformed_Aspect): New routine. - * par-ch13.adb (Get_Aspect_Specifications): Alphabetize local - variables. Code and comment reformatting. Detect missing - parentheses on aspects [Refined_]Global and [Refined_]Depends - with a non-null definition. - * par-sync.adb: Alphabetize all routines in this separate unit. - (Resync_Past_Malformed_Aspect): New routine. - -2014-02-19 Robert Dewar - - * sem_eval.ads, sem_eval.adb (Subtypes_Statically_Match): Return False - if Esize values do not match. - -2014-02-19 Yannick Moy - - * sinfo.ads: Minor comment update. - -2014-02-19 Hristian Kirtchev - - * atree.ads: Minor reformatting (change Entity_Info to Einfo). - -2014-02-19 Thomas Quinot - - * exp_ch7.adb (Find_Node_To_Be_Wrapped): An assignment statement - that has the No_Ctrl_Actions flag is a suitable node to be - wrapped if the assigned expression has no finalization actions. - * sem_eval.adb (Eval_Entity_Name): For a compile time known - boolean value, mark the corresponding condition SCO as constant. - -2014-02-19 Robert Dewar - - * exp_util.adb: Minor reformatting. - * exp_util.ads (Matching_Standard_Type): New function. - * exp_ch7.adb: Minor reformatting. - -2014-02-19 Ed Schonberg - - * sem_ch13.adb (Get_Cursor_Type): Use scope of iterable type - to find declaration for Cursor, to handle properly the case of - a discriminated iterable type. - -2014-02-19 Vincent Celier - - * gnatcmd.adb (GNATCmd): Always replace the object dirs of - imported library projects with the library ALI dirs, when setting - the object paths. - * prj-env.ads (Ada_Objects_Path): Correct comments about - argument Including_Libraries. - -2014-02-19 Gary Dismukes - - * gnat_rm.texi: Minor spelling fixes. - -2014-02-19 Doug Rupp - - * init.c: Remove unneeded code. - * fe.h (Float_Format): New macro - * gcc-interface/trans.c (gigi): On VMS, set vms_float_format. - -2014-02-19 Hristian Kirtchev - - * sem_prag.adb (Check_Refined_Global_Item): - A state or variable acts as a constituent only it is part of an - encapsulating state and the state has visible refinement. - -2014-02-19 Ed Schonberg - - * sem_ch6.adb (Analyze_Subprogram_Contract): Do not warn on a - postcondition for a function when the expression does not mention - 'Result but the function has in-out parameters. - -2014-02-19 Robert Dewar - - * gnat_rm.texi: Add documentation on Value_Size forcing biased - representation. - -2014-02-19 Hristian Kirtchev - - * lib-xref.ads Remove the small table of letter and symbol usage as we - already have one. - -2014-02-19 Hristian Kirtchev - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Emit specific error - messages depending on the offending misplaced aspect specifications. - (Diagnose_Misplaced_Aspect_Specifications): New routine. - -2014-02-19 Ed Schonberg - - * sem_ch13.adb (Get_Cursor): Utility to retrieve cursor type - for iterable aspect primitives. - (Resolve_Iterable_Operation): Use expected signature of iterable - aspect to resolve primitive when overloading is present. - (Validate_Iterable_Aspect, Analyze_Aspects_At_Freeze_Point): use it. - (Check_Signature): Removed. - -2014-02-19 Yannick Moy - - * sem_ch10.adb (Analyze_Proper_Body): Issue error on missing - subunit in GNATprove_Mode. - * sinfo.ads (GNATprove_Mode): Document error issued in GNATprove_Mode. - -2014-02-19 Hristian Kirtchev - - * lib-xref.ads Alphabetize the contents of table - Xref_Entity_Letters. Add an entry in table Xref_Entity_Letters - for E_Abstract_State. List all letters and symbols in use. - * sem_prag.adb (Analyze_Abstract_State): Update all calls - to Create_Abstract_State to reflect the new signature. - (Create_Abstract_State): Change subprogram profile and update - the comment on usage. Use the proper location of the state - declaration when creating a new abstract state entity. Do not - generate an external name, but simply reuse the name coming from - the state declaration. - -2014-02-19 Robert Dewar - - * exp_ch4.adb (Expand_N_Expression_With_Actions): Make sure - declarations get properly inserted in Modify_Tree_For_C mode. - * sinfo.ads: Minor comment addition. - -2014-02-19 Robert Dewar - - * par-ch9.adb, exp_ch5.adb, sem_ch5.adb, exp_attr.adb, sem_util.adb, - sem_util.ads, sem_ch13.adb, sem_ch13.ads: Minor reformatting. - -2014-02-19 Ed Schonberg - - * style.adb (Missing_Overriding): Warning does not apply in - language versions prior to Ada 2005. - * snames.ads-tmpl: Add Name_Iterable and Attribute_Iterable. - * sem_attr.adb: Add Attribute_Iterable where needed. - * exp_attr.adb: ditto. - * exp_ch5.adb (Expand_Formal_Container_Loop): New procedure to - handle loops and quantified expressions over types that have an - iterable aspect. Called from Expand_Iterator_Loop. - * sem_ch5.adb (Analyze_Iterator_Specification): Recognize types - with Iterable aspect. - * sem_ch13.adb (Validate_Iterable_Aspect): Verify that the - subprograms specified in the Iterable aspect have the proper - signature involving container and cursor. - (Check_Aspect_At_Freeze_Point): Analyze value of iterable aspect. - * sem_ch13.ads (Validate_Iterable_Aspect): New subprogram. - * sem_util.ads, sem_util.adb (Get_Iterable_Type_Primitive): - New procedure to retrieve one of the primitives First, Last, - or Has_Element, from the value of the iterable aspect of a - formal container. - (Is_Container_Element): Predicate to recognize expressions - that denote an element of one of the predefined containers, - for possible optimization. This subprogram is not currently - used, pending ARG discussions on the legality of the proposed - optimization. Worth preserving for eventual use. - (Is_Iterator): Recognize formal container types. - * aspects.ads, aspects.adb: Add Aspect_Iterable where needed. - -2014-02-19 Robert Dewar - - * exp_attr.adb (Expand_Min_Max_Attribute): New procedure - (Expand_N_Attribute_Reference): Use this procedure for Min and Max. - * exp_ch4.adb (Expand_N_Expression_With_Actions): Remove object - declarations from list of actions. - * output.ads, output.adb (Delete_Last_Char): New procedure. - * sinfo.ads: Document handling of Mod and expression with actions - in Modify_Tree_For_C mode. - -2014-02-19 Ed Schonberg - - * par-ch9.adb (P_Task): Add a null statement to produce a - well-formed task body when due to a previous syntax error the - statement list is empty. - -2014-02-19 Hristian Kirtchev - - * sem_prag.adb (Check_Dependency_Clause): Account - for the case where a state with a non-null refinement matches a - null output list. Comment reformatting. - (Inputs_Match): Copy a solitary input to avoid an assertion failure - when trying to match the same input in multiple clauses. - -2014-02-19 Gary Dismukes - - * sem_attr.adb: Minor typo fix. - -2014-02-18 Robert Dewar - - * cstand.adb (Build_Signed_Integer_Type): Minor change of formal - from Int to Nat (Build_Unsigned_Integer_Type): New procedure - (Create_Standard): Create new unsigned types. - * exp_ch4.adb (Expand_N_Op_Mod): Expand mod in Modify_Tree_For_C - mode (Expand_N_Reference): Removed, problematic and not needed - for now. - * exp_ch4.ads (Expand_N_Reference): Removed, problematic and - not needed for now. - * exp_util.ads, exp_util.adb (Power_Of_Two): New function. - * expander.adb: Remove call to Expand_N_Reference (problematic, - and not needed now). - * sem_aux.ads, sem_aux.adb (Corresponding_Unsigned_Type): New function. - * stand.adb: Read and write unsigned type entities. - * stand.ads: Add new unsigned types. - -2014-02-18 Hristian Kirtchev - - * sem_ch4.adb (Analyze_Call): Do not mark a function call - as being inside an assertion expression as the flag is now removed. - (Check_Ghost_Subprogram_Call): Do not query the - In_Assertion_Expression flag as it is now removed, instead use - a predicate function. - * sem_elab.adb (Check_Internal_Call_Continue): Do not query the - In_Assertion_Expression flag as it is now removed, instead use - a predicate function. - * sem_prag.ads: Add new table Assertion_Expression_Pragma. - * sem_util.adb Add with and use clause for Sem_Prag. - (In_Assertion_Expression_Pragma): New routine. - * sem_util.ads (In_Assertion_Expression_Pragma): New routine. - * sinfo.adb (In_Assertion_Expression): Removed. - (Set_In_Assertion_Expression): Removed. - * sinfo.ads Remove flag In_Assertion_Expression along with its - use in nodes. - (In_Assertion_Expression): Removed along with - pragma Inline. (Set_In_Assertion_Expression): Removed along - with pragma Inline. - -2014-02-18 Sergey Rybin - - * gnat_ugn.texi: gnatpp section: add note that '-j' cannot be - used together with '-r', '-rf' or '-rnb' options. - -2014-02-18 Hristian Kirtchev - - * sem_attr.adb (Analyze_Attribute): Comment - and code reformatting. Use separate routines to check the - legality of attribute 'Old in certain pragmas. Verify - the use of 'Old, 'Result and locally declared entities - within the prefix of 'Old. - (Check_References_In_Prefix): New routine. - (Check_Use_In_Contract_Cases): New routine. - (Check_Use_In_Test_Case): New routine. - -2014-02-18 Vincent Celier - - * sem_aux.adb (Is_By_Reference_Type): For each components of - a record type, check also if the component is volatile as it - may have an aspect that makes it volatile. If it is, then the - record type is a by reference type. - -2014-02-18 Robert Dewar - - * exp_attr.adb: Minor reformatting. - * exp_ch4.ads, exp_ch4.adb (Expand_N_Reference): New procedure. - * exp_util.adb (Remove_Side_Effects): Add conditional expressions - as another case where we don't generate N_Reference nodes for - primitive types. - * expander.adb (Expand): Add call to Expand_N_Reference. - -2014-02-06 Hristian Kirtchev - - * sem_prag.adb (Analyze_Refined_Pragma): Remove - local variable Pack_Spec. Refinement pragmas may now apply to - bodies of both visible and private subprograms. - -2014-02-06 Robert Dewar - - * exp_attr.adb (Expand_Loop_Entry_Attribute): - Minor change (Attr => N) (Expand_Pred_Succ): New name - Expand_Pred_Succ_Attribute (Expand_N_Attribute_Reference, case - Max): Expand into if expression if Modify_Tree_For_C mode. - (Expand_N_Attribute_Reference, case Min): ditto - * sinfo.ads: Modify_Tree_For_C takes care of expanding Min and - Max attributes. - -2014-02-06 Ed Schonberg - - * sem_ch3.adb (Analyze_Object_Declaration): Do not generate - predicate check if this is an internal declaration with - No_Initialization set, as for an expanded aggregate component. - -2014-02-06 Doug Rupp - - * init.c (__gnat_default_resignal_p) [VMS]: Test for and resignal - conditions with severity of "SUCCESS" or "INFORMATIONAL". - -2014-02-06 Yannick Moy - - * sem_prag.adb (Analyze_Pragma): Analyze pragma - Debug rewritten node before rewriting it as a null statement in - GNATprove mode. - -2014-02-06 Robert Dewar - - * sem_attr.adb (Min_Max): New procedure. - (Max_Alignment_For_Allocation_Max_Size_In_Storage_Elements): New - procedure. - -2014-02-06 Sergey Rybin - - * gnat_ugn.texi, vms_data.ads: Add documentation of '-t' option for - gnatmetric/gnatpp. - -2014-02-06 Hristian Kirtchev - - * sem_prag.adb (Analyze_Abstract_State): Update - all calls to Create_Abstract_State to pass the proper state - "declaration". - (Create_Abstract_State): Add new formal parameter - State_Decl along with comment on usage. Establish a link between - the abstract state entity and the state declaration. - -2014-02-06 Robert Dewar - - * sem_attr.adb (Analyze_Attribute, case Max): Check for improper - comparison of unordered enumeration type. - (Analyze_Attribute, case Max): Check for improper comparison of - unordered enumeration type. - * sem_res.adb (Bad_Unordered_Enumeration_Reference): Moved to - sem_util.adb. - * sem_util.ads, sem_util.adb (Bad_Unordered_Enumeration_Reference): - Moved here from Sem_Res. - -2014-02-06 Robert Dewar - - * sem_ch3.adb, sem_prag.adb, sem_res.adb, lib-xref.adb: Minor - reformatting. - -2014-02-06 Hristian Kirtchev - - * sem_ch6.adb (Process_Formals): Error message reformatting. - -2014-02-06 Hristian Kirtchev - - * sem_ch3.adb (Handle_Late_Controlled_Primitive): Add local - variable Spec. Do not inherit the null indicator from the - subprogram body when generating the spec. - -2014-02-06 Robert Dewar - - * casing.adb (Determine_Casing): Consider SPARK_Mode to be - mixed case. - -2014-02-06 Ed Schonberg - - * exp_ch6.adb (Is_Build_In_Place_Function): Predicate is false - when the function has a foreign convention, but not if only the - limited return type has such a convention. - -2014-02-06 Hristian Kirtchev - - * sem_ch3.adb (Handle_Late_Controlled_Primitive): Remove local - variable Spec. Comment reformatting. Use Copy_Separate_Tree - rather than New_Copy_Tree when building the corresponding - subprogram declaration. - -2014-02-06 Hristian Kirtchev - - * sem_prag.adb (Analyze_Global_Item): Remove - the mode-related checks on abstract states with enabled external - properties. - (Property_Error): Removed. - -2014-02-06 Javier Miranda - - * lib-xref.adb (Generate_Reference): When - generating the reference to the first private entity take care - of handling swapped entities. - -2014-02-06 Sergey Rybin - - * gnat_ugn.texi, vms_data.ads: Add documentation of -j option for - gnatmetric. - -2014-02-06 Robert Dewar - - * exp_ch4.adb (Expand_N_Shift_Left): Handle shift counts greater - than the word size when operating in Modify_Tree_For_C mode. - * sinfo.ads: Add documentation section on Modify_Tree_For_C mode. - -2014-02-06 Robert Dewar - - * erroutc.adb (Warning_Specifically_Suppressed.Matches): - compare is case insensitive. - * gnat_rm.texi: Document that string compare for Warnings Off - is now case insensitive. - -2014-02-06 Eric Botcazou - - * gnat_rm.texi: Small wording tweak. - -2014-02-06 Pascal Obry - - * prj-attr.adb, projects.texi, snames.ads-tmpl: Add Included_Patterns - and Included_Artifact_Patterns attribute definitions. - -2014-02-06 Yannick Moy - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set - SPARK_Mode pragma component for all subprograms, including stubs. - -2014-02-06 Hristian Kirtchev - - * sem_ch10.adb (Analyze_Package_Body_Stub): Maintain - the configuration options of the enclosing context in a - stack-like fasion. - (Analyze_Subprogram_Body_Stub): Maintain the - configuration options of the enclosing context in a stack-like - fashion. - -2014-02-06 Robert Dewar - - * debug.adb: -gnatd.u sets Modify_Tree_For C - * exp_ch4.adb (Expand_N_Op_Rotate_Left): Expand out - if Modify_Tree_For_C (Expand_N_Op_Rotate_Right): ditto. - (Expand_N_Op_Arithmetic_Right_Shift): ditto. - * exp_intr.adb (Expand_Shift): Call expander so we do - Modify_Tree_For_C expansions. - * gnat1drv.adb (Adjust_Global_Switches): Set Modify_Tree_For_C - if -gnatd.u set. - -2014-02-06 Fedor Rybin - - * prj-proc.ads (Tree_Loaded_Callback): new type Callback used - after the phase 1 of the processing of each aggregated project - to get access to project trees of aggregated projects. - (Process_Project_Tree_Phase_1): new parameter On_New_Tree_Loaded - If specified, On_New_Tree_Loaded is called after each aggregated - project has been processed succesfully. - (Process): new parameter On_New_Tree_Loaded. - * prj-proc.adb (Process_Aggregated_Projects): On_New_Tree_Loaded - callback added after processing of each aggregated project. - (Recursive_Process): new parameter On_New_Tree_Loaded. - (Process): new parameter On_New_Tree_Loaded. - (Process_Project_Tree_Phase_1): new parameter On_New_Tree_Loaded. - * prj-conf.ads (Parse_Project_And_Apply_Config): new parameter - On_New_Tree_Loaded. - * prj-conf.adb (Parse_Project_And_Apply_Config): new parameter - On_New_Tree_Loaded. - -2014-02-06 Bob Duff - - * gnat_ugn.texi: Implement --insert-blank-lines and - --preserve-blank-lines switches. - -2014-02-06 Sergey Rybin - - * gnat_ugn.texi, vms_data.ads: Add documentation of -j option for - gnatelim. - -2014-02-06 Eric Botcazou - - * gnat_rm.texi (Pragma Optimize_Alignment): Document the effect - of the pragma on individual objects. - -2014-02-06 Hristian Kirtchev - - * einfo.adb Node29 is now used as BIP_Initialization_Call. - (BIP_Initialization_Call): New routine. - (Set_BIP_Initialization_Call): New routine. - (Write_Field29_Name): Add an entry for constants and variables. - * einfo.ads Add new attribute BIP_Initialization_Call and update - its usage in nodes. - (BIP_Initialization_Call): New routine along with pragma Inline. - (Set_BIP_Initialization_Call): New routine along with pragma Inline. - * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): - Add local declaration Res_Decl. Capture the build-in-place - initialization call when the related object declaration has - created a transient block. - * exp_ch7.adb (Process_Transient_Objects): Add local variable - Fin_Insrt. Recognize a scenario where an object declaration acts - as a transient context and is initialized by a build-in-place - function call. - -2014-02-06 Pascal Obry - - * prj-util.adb (For_Interface_Sources): Fix handling of required - bodies for aggregate libs. - -2014-02-06 Robert Dewar - - * nlists.ads: Minor comment clarifications. - -2014-02-06 Robert Dewar - - * gnat1drv.adb (Adjust_Global_Switches): Set Modify_Tree_For_C - if gnatd.V set. - * opt.ads (Modify_Tree_For_C): New flag. - * output.ads, output.adb (Last_Char): New function. - -2014-02-06 Pascal Obry - - * projects.texi, prj-env.adb (Initialize_Default_Project_Path): Add - share/gpr for cross-builds. - -2014-02-06 Robert Dewar - - * exp_util.ads, checks.adb, sem_prag.adb, prj-util.adb, sem_ch13.adb: - Minor reformatting and code clean ups. - -2014-02-06 Pascal Obry - - * prj-util.adb (For_Interface_Sources): Skip non compilable languages. - * prj.ads: Minor typo fix in comment. - -2014-02-06 Hristian Kirtchev - - * sem_prag.adb (Analyze_Depends_In_Decl_Part): Add - local variable Expr. Flag clauses with extra parenthesis as this - is not allowed by the syntax of the pragma. Code reformatting. - -2014-02-06 Hristian Kirtchev - - * exp_attr.adb (Expand_N_Attribute_Reference): Alphabetize - variables. Rename variabme Tnn to Temp. Do not create a temporary - if assertions are disabled. Find enclosing routine _Postconditions - and insert the temporary that captures the value of the prefix - before the routine. - * exp_ch6.adb (Build_Postconditions_Procedure): - Insert the generated _Postconditions routine - before the first source declaration of the related - subprogram. - (Insert_After_Last_Declaration): Removed. - (Insert_Before_First_Source_Declaration): New routine. - -2014-02-06 Ed Schonberg - - * exp_util.adb, exp_util.ads (Within_Internal_Subprogram): - Utility to determine whether current expansion is for the body - of a predefined primitive operation. - (Make_Predicate_Check): Use Within_Internal_Subpgram - * checks.adb (Apply_Predicate_Check): Use - Within_Internal_Subprogram - * sem_ch13.adb (Freeze_Entity_Checks): Ditto. - -2014-02-06 Pascal Obry - - * prj.ads, prj-util.adb: Minor reformatting. - -2014-02-06 Ed Schonberg - - * exp_ch6.adb (Expand_Subprogram_Contract, Append_Enabled_Item): - Take into account the Split_PPC flag to ensure that conjuncts - in a composite postcondition aspect are tested in source order. - -2014-02-06 Hristian Kirtchev - - * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Flag illegal - use of SPARK_Mode. - * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Flag - illegal use of SPARK_Mode. - (Instantiate_Subprogram_Body): Flag illegal use of SPARK_Mode. - * sem_prag.adb (Analyze_Pragma): Code reformatting. - * sem_util.adb Add with and use clause for Aspects. - (Check_SPARK_Mode_In_Generic): New routine. - * sem_util.ads (Check_SPARK_Mode_In_Generic): New routine. - -2014-02-06 Thomas Quinot - - * a-calend.adb (Formatting_Operations.Split): Ensure that - Time_Error is raised for invalid time values. - -2014-02-06 Arnaud Charlet - - * sem_prag.adb (Analyze_Pragma): Rewrite as a null statement - in GNATprove_Mode. - -2014-02-06 Robert Dewar - - * einfo.ads, einfo.adb (Is_Discriminant_Check_Function): New flag. - * exp_ch3.adb (Build_Dcheck_Function): Set - Is_Discriminant_Check_Function. - -2014-02-06 Hristian Kirtchev - - * exp_ch7.adb (Is_Subprogram_Call): Inspect - the original tree in certain cases where a construct has been - factored out and replaced by a reference to a temporary. - -2014-02-06 Ed Schonberg - - * sem_ch3.adb (Process_Full_View): Fix typo in the order of - parameters when propagating predicate function to full view. - (Find_Type_Of_Object): Freeze base type of object type to catch - premature use of discriminated private type without a full view. - -2014-02-06 Robert Dewar - - * sprint.adb: Minor reformatting. - -2014-02-06 Hristian Kirtchev - - * exp_ch4.adb (Process_Transient_Object): Add local variable - Temp_Ins. When the transient object is initialized by an - aggregate, the hook must capture the object after the last - component assignment takes place. - * exp_ch7.adb (Detect_Subprogram_Call): Expose the subprogram to - routine Is_Subprogram_Call. - (Is_Subprogram_Call): Inspect an - aggregate that has been heavily expanded for subprogram calls. - (Process_Transient_Objects): Add local variables Expr, Ptr_Id - and Temp_Ins. Remove the nested declare block and adjust the - indentation. When the transient object is initialized by an - aggregate, the hook must capture the object after the last - component assignment takes place. - -2014-02-06 Hristian Kirtchev - - * sem_prag.adb (Analyze_Global_Item): Detect illegal uses of - external states with enabled properties that do not match the - global mode. - (Property_Error): New routine. - * sem_res.adb (Property_Error): New routine. - (Resolve_Actuals): Detect illegal uses of external variables with - enabled properties in procedure calls that do not match the mode of - the corresponding formal parameter. - -2014-02-06 Hristian Kirtchev - - * sem_util.adb (Has_Enabled_Property): Rename - formal parameter Prop_Nam to Property. Update the comment on usage - and all occurrences in the body. Add local variable Prop_Nam. When - inspecting a property with an expression, the property name - appears as the first choice of the component association. - -2014-02-04 Robert Dewar - - * exp_ch5.adb, einfo.ads, freeze.adb, sem_ch8.adb: Minor reformatting. - -2014-02-04 Gary Dismukes - - * sem_aggr.adb: Change "runtime" to "run time" in warning message, - for consistency with other messages. - -2014-02-04 Ed Schonberg - - * exp_ch5.adb (Expand_Iterator_Loop): For a container element - iterator, indicate that the element is a constant if the container - type does not have a variable indexing aspect. - * sem_ch8.adb (Analyze_Object_Renaming): If the entity is already - marked as constant, do not reset its Ekind, to ensure that - container elements in an element loop are not modified if the - container (e.g. a hashed set) only has a constant indexing aspect. - -2014-02-04 Arnaud Charlet - - * g-souinf.ads: Subprograms in this unit are actually not pure. - * freeze.adb (Freeze_Subprogram): Do not reset Is_Pure for Intrinsics. - * einfo.ads (Is_Pure): Update doc to match implementation. - -2014-02-04 Gary Dismukes - - * exp_ch13.adb: Minor spelling fix. - -2014-02-04 Robert Dewar - - * opt.ads: Minor comment update. - -2014-02-04 Robert Dewar - - * exp_ch4.adb (Expand_N_Expression_With_Actions): Use Rewrite - instead of Replace. - -2014-02-04 Ed Schonberg - - * sem_aggr.adb (Resolve_Array_Aggregate): Suppress warnings - on null expressions if component type is non-null, when the - corresponding association covers an empty range of index values. - -2014-02-04 Robert Dewar - - * sinfo.ads: Further comments on N_Expression_With_Actions node. - -2014-02-04 Hristian Kirtchev - - * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Remove global - variables Out_Items and Ref_Global. Remove local constant - Body_Id along with dummy variables D1, D2, D3, D4, D5, D6, D7 - and D8. Remove the useless collection of global items as this - was a leftover from an earlier version of the routine. Move - several routines out to avoid deep nesting and indentation. - (Inputs_Match): Add formal parameter Dep_Clause. Rename formal - parameter Do_Checks to Post_Errors. Update the comment on usage. - (Is_Matching_Input): Renamed to Input_Match. Add formal parameters - Ref_Inputs and Do_Checks. Rename formal parameter Do_Checks - to Post_Errors. Update the comment on usage. Account for the - case where a self referential state may have a null input_list. - (Is_Self_Referential): New routine. - -2014-02-04 Ed Schonberg - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the - entity renames an expression, as in the case of an object of - an unconstrained type initialized by a function call, defer the - rewriting of the expression to the expander. - * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case - 'Alignment): If the entity renames an expression, introduce - temporary to capture value, and rewrite original declaration to - use temporary. - -2014-02-04 Gary Dismukes - - * g-comlin.adb: Minor typo fix. - -2014-02-04 Ed Schonberg - - * freeze.adb (Freeze_All): Types derived from a formal - access_to_classwide type do not have a finalization master. - -2014-02-04 Robert Dewar - - * sprint.adb: Minor reformatting. - -2014-02-04 Robert Dewar - - * exp_ch4.adb (Expand_N_Expression_With_Actions): Eliminate - cases where Actions is a null list. - * sinfo.ads (N_Expression_With_Actions): Actions can be - temporarily empty during semantic analysis, but must be non-empty - in the final expanded tree. - -2014-01-31 Robert Dewar - - * exp_ch9.adb: Minor reformatting. - -2014-01-31 Emmanuel Briot - - * g-comlin.adb (Set_Command_Line): Take the switches - configuration from the Command_Line_Config. - -2014-01-31 Hristian Kirtchev - - * sem_prag.adb (Analyze_Refinement_Clause): Guard against a malformed - refinement clause. - -2014-01-31 Vincent Celier - - * projects.texi: Add more documentation about others used as an - index in indexed attributes. - -2014-01-31 Robert Dewar - - * gnat_ugn.texi: Minor update. - * gnat_rm.texi: Add example to Restriction_Warnings documentation. - * exp_util.adb: Minor reformatting. - -2014-01-31 Ed Schonberg - - * exp_ch9.adb (Expand_Entry_Barrier): Warn if the barrier - depends on data that is not private to the protected object, - and potentially modifiable in unsynchronized fashion. - -2014-01-31 Yannick Moy - - * erroutc.adb (Validate_Specific_Warnings): Remove special case for - GNATprove_Mode. - -2014-01-31 Robert Dewar - - * prj-attr.ads (First_Attribute_Of): Returns Empty_Attribute - for Unknown_Package. - * sem_ch6.adb, sem_attr.adb: Minor comment addition. - -2014-01-31 Hristian Kirtchev - - * exp_util.adb (Build_Allocate_Deallocate_Proc): Rewrite - the logic that generates a runtime check to determine the - controlled status of the object about to be allocated or - deallocated. Class-wide types now always use a runtime check - even if they appear as generic actuals. - (Find_Object): Detect - a special case that involves interface class-wide types because - the object appears as a complex expression. - -2014-01-31 Ed Schonberg - - * sem_ch6.adb (Process_Formals): In Ada2012 mode, place - subprogram with an incomplete untagged formals on the list of - private dependents, to verify that the type is properly completed - in the private part. - * sem_attr.adb: Code clean up. - -2014-01-31 Robert Dewar - - * exp_ch6.adb: Minor reformatting. - -2014-01-31 Vincent Celier - - * prj-attr.adb (First_Attribute_Of): Return Unknown_Attribute - when Pkg is unknown. - -2014-01-31 Hristian Kirtchev - - * sem_res.adb (Resolve_Entity_Name): Comment - reformatting. Allow volatile objects in various generated checks. - -2014-01-31 Ed Schonberg - - * sem_attr.adb (Analyze_Attribute, case 'Update): For a record - component association, set the etype of the identifier, for - SPARK use. - -2014-01-31 Ed Schonberg - - * exp_ch6.adb (Has_Visibility_Of_Subprogram): If type is not - declared in a package, not checks can apply to the subprogram. - -2014-01-31 Robert Dewar - - * erroutc.adb (Validate_Specific_Warnings): Warnings are - controlled -gnatw.W. - * gnat_ugn.texi: Document new warnings controlled by -gnatw.w. - * opt.ads (Warn_On_Warnings_Off): Now controls more cases. - -2014-01-31 Arnaud Charlet - - * exp_disp.adb: Update comments. - -2014-01-31 Yannick Moy - - * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration, - Save_Global_References): Guard access to expression in aspect. - -2014-01-31 Yannick Moy - - * sem_prag.adb (Analyze_Pragma/Pragma_SPARK_Mode): - Issue an error when the pragma is applied to a generic unit, - a generic declaration, or inside a generic. - -2014-01-31 Yannick Moy - - * sem_ch8.adb (Analyze_Subprogram_Renaming): Set SPARK_Mode on renaming - entity. - -2014-01-31 Robert Dewar - - * exp_ch9.adb, s-tassta.adb, s-tposen.adb, s-tposen.ads: Minor - reformatting. - -2014-01-31 Tristan Gingold - - * exp_disp.adb: Add a historic note. - -2014-01-31 Robert Dewar - - * sem_warn.adb (Warn_On_Useless_Assignments): Add call to - Process_Deferred_References. - -2014-01-31 Yannick Moy - - * erroutc.adb (Validate_Specific_Warnings): Do not issue a message for - ineffective pragma Warnings(Off) in GNATprove_Mode. - -2014-01-31 Bob Duff - - * s-taskin.ads: Minor comment fix. - * s-tassta.adb (Abort_Dependents): Don't abort all dependents; - just direct dependents. If this is actually an abort, each task - will take care of aborting its dependents, so all dependents will - get aborted, as before. However, when this is called the second - time from Vulnerable_Complete_Master "for convenience" (i.e. to - kill off tasks waiting at terminate alternatives), aborting - indirect dependents is wrong, because it causes some unrelated - tasks to get aborted. - -2014-01-31 Robert Dewar - - * sem_ch4.adb: Minor reformatting. - -2014-01-31 Robert Dewar - - * exp_ch2.adb: New calling sequence for Is_LHS. - * frontend.adb: Add call to Process_Deferred_References. - * lib-xref.ads, lib-xref.adb (Process_Deferred_References): New. - (Deferred_References): New table. - * sem_ch8.adb (Find_Direct_Name): Make deferred reference table - entries. - (Find_Expanded_Name): Ditto. - * sem_res.adb: New calling sequence for Is_LHS. - * sem_util.ads, sem_util.adb (Is_LHS): New calling sequence. - * sem_warn.adb: Call Process_Deferred_References before issuing - warnings. - -2014-01-31 Tristan Gingold - - * exp_util.adb (Corresponding_Runtime_Package): Restrict the - use of System_Tasking_Protected_Objects_Single_Entry. - * exp_ch9.adb (Build_Simple_Entry_Call): Remove Mode parameter - of Protected_Single_Entry_Call. - (Expand_N_Timed_Entry_Call): Remove single_entry case. - * exp_disp.adb (Make_Disp_Asynchronous_Select_Body): Remove - single_entry case. - (Make_Disp_Timed_Select_Body): Likewise. - * rtsfind.ads (RE_Timed_Protected_Single_Entry_Call): Remove. - * s-tposen.adb (Send_Program_Error, PO_Do_Or_Queue): Remove - Self_Id parameter. - (Wakeup_Entry_Caller): Remove Self_ID and New_State parameters. - (Wait_For_Completion_With_Timeout): Remove. - (Protected_Single_Entry_Call): Remove Mode parameter - (always Simple_Call). - (Service_Entry): Remove Self_Id constant (not used anymore). - (Timed_Protected_Single_Entry_Call): Remove. - * s-tposen.ads (Timed_Protected_Single_Entry_Call): Remove. - (Protected_Single_Entry_Call): Remove Mode parameter. - -2014-01-29 Hristian Kirtchev - - * einfo.adb (Get_Pragma): Handle the retrieval of pragma Refined_Post. - * einfo.ads (Get_Pragma): Update the comment on special pragmas - handled by this routine. - * sem_prag.adb (Analyze_Pragma): Add a legal pragma Refined_Post - to the contract of the related subprogram body. - * sem_util.adb (Add_Contract_Item): Handle the insertion of - pragma Refined_Post into the contract of a subprogram body. - * sinfo.ads Update the documentation of node N_Contract. - * sem_res.adb (Resolve_Entity_Name): Add a guard - to detect abstract states and variables only when checking the - SPARK 2014 rules concerning volatile object placement. - -2014-01-29 Ed Schonberg - - * sem_ch4.adb (Find_Equality_Types, Try_One_Interp): within an instance, - null is compatible with any access type. - -2014-01-29 Hristian Kirtchev - - * sem_util.adb (Find_Placement_In_State_Space): Assume that the default - placement is not in a package. - -2014-01-29 Hristian Kirtchev - - * sem_util.adb (Has_Enabled_Property): Compare the character field of - the sole property. - -2014-01-29 Robert Dewar - - * sem_intr.adb, a-ztexio.ads, sinfo.ads, sem_res.adb, gnatlink.adb, - vms_conv.adb, a-except.ads, a-except-2005.ads, a-teioed.adb, - sem_warn.ads, treepr.ads, erroutc.ads, a-excach.adb: Minor reformatting. - -2014-01-29 Robert Dewar - - * sem_util.ads, sem_util.adb (In_Pragma_Expression): New function. - * sem_warn.adb (Check_References): Suppress warnings if inside - Initial_Condition pragma. - -2014-01-29 Hristian Kirtchev - - * sem_prag.adb (Check_Missing_Part_Of): List all values of - State_Space_Kind for readability reasons. Do not emit an error on - a private item when the enclosing package lacks aspect/pragma - Abstract_State. Do not emit an error on a private package - instantiation when the corresponding generic template lacks - visible state. - (Has_Visible_State): New routine. - * sem_util.adb (Find_Placement_In_State_Space): The visible - declarations of any kind of child units in general act as proper - placement location. - -2014-01-29 Robert Dewar - - * a-except-2005.adb, a-except.adb, a-excpol-abort.adb, a-exstat.adb, - ali.adb, a-numaux.ads, a-numaux-darwin.ads, a-numaux-libc-x86.ads, - a-numaux-vms.ads, a-numaux-vxworks.ads, a-numaux-x86.ads, aspects.ads, - a-taside.adb, a-teioed.adb, a-textio.adb, a-textio.ads, atree.adb, - atree.ads, a-witeio.adb, a-witeio.ads, a-wtedit.adb, a-ztedit.adb, - a-ztexio.adb, bcheck.adb, binde.adb, checks.adb, comperr.adb, - cstand.adb, debug_a.adb, einfo.ads, errout.adb, erroutc.adb, - eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb, exp_ch3.adb, - exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb, exp_dbug.adb, - exp_disp.adb, exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_util.adb, - freeze.adb, frontend.adb, g-comlin.ads, g-mbdira.adb, gnat1drv.adb, - gprep.adb, g-spipat.adb, i-cpp.ads, i-vxwork.ads, i-vxwork-x86.ads, - krunch.ads, layout.adb, lib-load.adb, lib-writ.adb, lib-writ.ads, - live.adb, namet.ads, osint.adb, osint-c.adb, output.ads, par.adb, - par-ch10.adb, par-ch13.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb, - par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-prag.adb, - par-sync.adb, par-tchk.adb, par-util.adb, prj.adb, repinfo.adb, - rtsfind.adb, s-arit64.adb, s-asthan-vms-alpha.adb, - s-asthan-vms-ia64.adb, s-bignum.adb, scans.adb, scng.adb, s-dimmks.ads, - sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_cat.adb, sem_ch10.adb, - sem_ch12.adb, sem_ch13.adb, sem_ch13.ads, sem_ch3.adb, sem_ch4.adb, - sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, sem_disp.adb, sem_elab.adb, - sem_elim.adb, sem_eval.adb, sem_intr.adb, sem_prag.adb, sem_res.adb, - sem_type.adb, sem_util.adb, sem_warn.adb, set_targ.adb, s-fatgen.adb, - s-fatgen.ads, s-fileio.adb, s-imgcha.adb, s-imgrea.adb, sinfo.ads, - sinput-c.adb, snames.ads-tmpl, s-os_lib.adb, sprint.adb, - s-regpat.adb, s-secsta.adb, s-stalib.ads, - s-stchop.adb, s-stoele.ads, stand.ads, s-taprop-solaris.adb, - s-tasdeb-vms.adb, s-tasini.adb, s-tassta.adb, s-valdec.adb, - s-valuti.adb, s-wchjis.adb, s-wchwts.adb, system.ads, system-vms_64.ads, - system-vms-ia64.ads, treepr.adb, types.ads, uintp.adb, uname.adb, - urealp.adb, usage.adb, vxaddr2line.adb: Minor reformatting. - -2014-01-29 Robert Dewar - - * expander.adb: Minor reformatting. - -2014-01-29 Javier Miranda - - * exp_ch3.adb (Predefined_Primitive_Bodies): Adding documentation to - previous patch. - -2014-01-29 Javier Miranda - - * exp_ch3.adb (Predefined_Primitive_Bodies): Complete the code - that checks if an interface types defines the predefined "=" - function because the compiler was erroneously not generating the - predefined "=" primitive as soon as the name of some interface - primitive is "=" (formals were not checked). - -2014-01-29 Ed Schonberg - - * expander.adb (Expander): In GNATprove mode, do not process - transient scopes: they are in general not created in this mode, - and an attempt to examine them will lead to constraint errors when - processing configuration pragmas that have analyzable expressions. - -2014-01-29 Vincent Celier - - * clean.adb (Gnatclean): Fail if main project is an aggregate - project or if there is an aggregate library project in the - project tree. - * gnatcmd.adb: Fail if the main project is an aggregate project - or if there is an aggegate library project in the project tree. - * make.adb (Initialize): : Fail if main project is an aggregate - project or if there is an aggregate library project in the - project tree. - * makeutl.ads (Aggregate_Libraries_In): New Boolean function. - * prj-makr.adb (Initialize): Fail if the main project is an - aggregate project or an aggregate library project. - -2014-01-29 Vincent Celier - - * prj-part.adb (Check_Import_Aggregate): New procedure - to check if an imported project is an aggregate project. - (Parse_Single_Project): Call Check_Import_Aggregate - * projects.texi: Document that aggregate projects cannot be - extended or imported. - -2014-01-29 Robert Dewar - - * exp_ch9.adb, sem_ch7.ads, s-regexp.adb, sem_ch13.adb: Minor - reformatting and code clean up. - * gnat_ugn.texi: Add documentation section on Atomic Variables - and Optimization. - -2014-01-29 Hristian Kirtchev - - * einfo.adb Flag264 is now unused. - (Has_Body_References): Removed. - (Set_Has_Body_References): Removed. - (Write_Entity_Flags): Remove the output for flag Has_Body_References. - * einfo.ads Update the comment on usage of attribute - Body_References. Remove attribute Has_Body_References and its - usage in nodes. - (Has_Body_References): Removed along with pragma Inline. - (Set_Has_Body_References): Removed along with pragma Inline. - * sem_prag.adb (Analyze_Global_Item): Move the call to - Record_Possible_Body_Reference in the state related checks - section. Add a comment intended function. - (Analyze_Input_Output): Move the call to Record_Possible_Body_Reference - in the state related checks section. Add a comment intended function. - (Analyze_Refinement_Clause): Cleanup the illegal body reference - reporting. Add a comment on timing of error reporting. - (Record_Possible_Body_Reference): Reimplement the routine. - -2014-01-29 Vincent Celier - - * makeutl.adb (Mains.Find_File_Add_Extension): Only look for specs for - unit-based languages. - (Mains.Complete_Mains.Do_Complete): Use the source file project - tree when calling Find_File_Add_Extension. Use the correct - project name when reporting an error. - -2014-01-29 Hristian Kirtchev - - * aspects.adb Add an entry for aspect Part_Of in table - Canonical_Aspect. - * aspects.ads Add an entry for aspect Part_Of in tables Aspect_Id, - Aspect_Argument, Aspect_Names and Aspect_Delay. - * atree.h Define Elist9. - * atree.adb (Elist9): New routine. - (Set_Elist9): New routine. - * atree.ads (Elist9): New routine. - (Set_Elist9): New routine. - * einfo.adb Add Part_Of_Constituents and Encapsulating_State to - the list of node usage. Remove Refined_State from the list of - node usage. - (Encapsulating_State): New routine. - (Get_Pragma): - Handle pragma Part_Of; (Part_Of_Constituents): New routine. - (Refined_State): Removed. - (Set_Encapsulating_State): New routine. - (Set_Part_Of_Constituents): New routine. - (Set_Refined_State): Removed. - (Write_Field9_Name): Add an entry - for Part_Of_Constituents (Write_Field10_Name): Add an entry for - Encapsulating_State. Remove the entry for Refined_State. - * einfo.ads Add new attributes Encapsulating_State - and Part_Of_Constituents alond with their usage in - entities. Remove attribute Refined_State along with its - usage in entities. - (Encapsulating_State): New routine and - pragma Inline. (Get_Pragma): Update the comment on usage. - (Part_Of_Constituents): New routine and pragma Inline. - (Refined_State): Removed along with pragma Inline. - (Set_Encapsulating_State): New routine and pragma Inline. - (Set_Part_Of_Constituents): New routine and pragma Inline. - (Set_Refined_State): Removed along with pragma Inline. - * par-prag.adb Pragma Part_Of does not need any special processing - by the parser. - * sem_ch3.adb (Analyze_Declarations): Remove local variables - Body_Id and Prag. Call separate routines to analyze the - contract of a package [body]. - (Analyze_Object_Contract): - Update the comment on usage. Remove local variables - Items and Nam. Use Get_Pragma rather than traversing the - classification list. Verify whether the lack of indicator - Part_Of agrees with the placement of the variable in state space. - (Analyze_Object_Declaration): Initialize the encapsulating state - of a variable. (Requires_State_Refinement): Moved to sem_util. - * sem_ch7.adb (Analyze_Package_Body_Contract): New routine. - (Analyze_Package_Contract): New routine. - * sem_ch7.ads (Analyze_Package_Body_Contract): New routine. - (Analyze_Package_Contract): New routine. - * sem_ch10.adb (Decorate_State): Initialize the encapsulating - state and Part_Of constituents. - * sem_ch13.adb (Analyze_Aspect_Specifications): - Add processing for aspect Part_Of. Update all - calls to Decorate_Delayed_Aspect_And_Pragma. - (Check_Aspect_At_Freeze_Point): Aspect Part_Of does - not need any special processing at freeze time. - (Decorate_Delayed_Aspect_And_Pragma): Renamed to - Decorate_Aspect_And_Pragma. Add formal parameter Delayed and - update the associated comment. - * sem_prag.adb Add an entry for pragma Part_Of in table Sig_Flags. - (Analyze_Abstract_State): Add new global variable State_Id. Remove - local constants Errors and Loc. Remove local variables Is_Null - and State_Nam. Create the entity of the abstract state on the - spot, before all remaining checks are performed. Verify that a - missing Part_Of option agrees with the placement of the abstract - state within the state space. - (Analyze_Depends_In_Decl_Part): - Add new global variables Constits_Seen and States_Seen. Check - that a state and a corresponding constituent do not appear - in pragma [Refined_]Depends. - (Analyze_Global_In_Decl_Part): - Add new global variables Constits_Seen and States_Seen. Check - that a state and a corresponding constituent do not appear - in pragma [Refined_]Global. - (Analyze_Global_Item): - Remove the now obsolete code that deals with Part_Of. - Add the entity of the global item to the list of processed - items. (Analyze_Initializes_In_Decl_Part): Add new global - variables Constits_Seen and States_Seen. Check that a state - and a corresponding constituent do not appear in pragma - Initializes. - (Analyze_Initialization_Item): Add the entity - of the initialization item to the list of processed items. - (Analyze_Input_Item): Add the entity of the initialization - item to the list of processed items. - (Analyze_Input_Output): - Remove the now obsolete code that deals with Part_Of. Add the - entity of the input/output to the list of processed items. - (Analyze_Part_Of): New routine. - (Analyze_Part_Of_Option): Remove - local constant Par_State. Add local constant Encaps and local - variables Encaps_Id and Legal. Use Analyze_Part of to analyze - the option. Turn the related state into a Part_Of constituent - if the option is legal. - (Analyze_Pragma): Add processing - for pragma Part_Of. - (Analyze_Refined_State_In_Decl_Part): - Remove global constants Pack_Body and Spec_Id. Remove - global variables Abstr_States and Hidden_States. Add new - global variables Available_States, Body_Id, Body_States and - Spec_Id. Add new local constant Body_Decl. Reimplement the - logic that extracts the states available for refinement from - the related package and the body hidden states of the said - package. - (Analyze_Refinement_Clause): Add local variable Part_Of_Constits. - (Check_Applicable_Policy): Alphabetize body. - (Check_Dependency_Clause): Replace Refined_State - with Encapsulating_State. - (Check_Matching_Constituent): - Reimplement the logic that determines whether an item is a valid - / invalid constituent of the current refined state. Return when - a construct does not denote a valid abstract state. Extract the - list of Part_Of constituents for further analysis. Check that all - Part_Of constituents of a state have been used in its refinement. - (Check_Matching_State): Update the comment on usage. Operate - on the list of available states. - (Check_Missing_Part_Of): New routine. - (Check_Refined_Global_Item): Replace Refined_State - with Encapsulating_State. - (Check_State_And_Constituent_Use): New routine. - (Create_Abstract_State): New routine. - (Is_Matching_Input): Replace Refined_State with Encapsulating_State. - (Is_Part_Of): Removed. - (Collect_Body_States): New routine. - (Collect_Constituent): Replace Refined_State with Encapsulating_State. - (Collect_Hidden_States): Removed. - (Report_Unrefined_States): Change the profile of the procedure along - with the comment on usage. - (Report_Unused_Constituents): New routine. - (Report_Unused_Hidden_States): Removed. - (Report_Unused_States): New routine. - * sem_prag.ads (Check_Missing_Part_Of): New routine. - * sem_util.adb (Add_Contract_Item): Pragma Part_Of can now - appear in the classification pragmas of a package instantiation - or a variable. - (Find_Placement_In_State_Space): New routine. - (Is_Child): Removed. - (Is_Child_Or_Sibling): Remove formal - parameter Private_Child. Remove the private child checks. - (Requires_State_Refinement): Moved from sem_ch3. - * sem_util.ads Add new type State_Space_Kind along with - comment on its usage and values. - (Add_Contract_Item): Update the comment on usage. - (Find_Body_Discriminal): Alphabetize spec. - (Find_Placement_In_State_Space): New routine. - (Is_Child_Or_Sibling): Remove formal parameter Private_Child - and update the comment on usage. - (Requires_State_Refinement): Moved from sem_ch3. - * sinfo.ads: Update the documentation of N_Contract. - * snames.ads-tmpl The predefined name for Part_Of is now used - to denote a pragma. Add Pragma_Id for Part_Of. - -2014-01-29 Emmanuel Briot - - * s-regexp.adb (Create_Secondary_Table): Automatically grow the state - machine as needed. - (Dump): New subprogram. - -2014-01-29 Tristan Gingold - - * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Add - Expand_Entry_Declaration to factorize code. - -2014-01-29 Ed Schonberg - - * checks.adb: minor clarification. - * sem_ch7.adb (Declare_Inherited_Private_Subprograms): Limit - search for primitive operations to the entities that immediately - follow the type declaration. - -2014-01-29 Tristan Gingold - - * exp_ch9.adb (Build_Protected_Entry): Do not call - Complete_Entry_Body anymore. - * rtsfind.ads (RE_Complete_Single_Entry_Body): Remove. - * s-tposen.ads, s-tposen.adb (Complete_Single_Entry_Body): Remove. - -2014-01-29 Pierre-Marie Derodat - - * s-os_lib.adb, s-os_lib.ads (Normalize_Pathname): Return an empty - string when the Name input bigger than allowed. Adapt the function - specification. - -2014-01-29 Ed Schonberg - - * checks.adb (Install_Null_Excluding_Check): Do not emit warning - if expression is within a case_expression of if_expression. - -2014-01-29 Robert Dewar - - * exp_ch9.adb, inline.ads: Minor reformatting. - -2014-01-29 Tristan Gingold - - * exp_ch9.adb (Is_Exception_Safe): Return true if no exceptions. - -2014-01-29 Yannick Moy - - * inline.ads (Pending_Body_Info): Add SPARK_Mode and - SPARK_Mode_Pragma components to be able to analyze generic - instance. - * sem_ch12.adb (Analyze_Package_Instantiation, - Inline_Instance_Body, Need_Subprogram_Instance_Body, - Load_Parent_Of_Generic): Pass in SPARK_Mode from instantiation - for future analysis of the instance. - (Instantiate_Package_Body, - Instantiate_Subprogram_Body, Set_Instance_Inv): Set SPARK_Mode - from instantiation to analyze the instance. - -2014-01-29 Robert Dewar - - * sem_ch7.adb, sem_prag.adb, sem_ch4.adb, sem_ch6.adb: Minor code - reorganization. - -2014-01-29 Yannick Moy - - * gnat_rm.texi: Update description of SPARK_Mode pragma. - -2014-01-29 Tristan Gingold - - * exp_ch9.adb (Expand_N_Protected_Body): Remove Num_Entries. - -2014-01-29 Thomas Quinot - - * sem_ch4.adb (Find_Component_In_Instance): Update comment. - -2014-01-29 Ed Schonberg - - * exp_util.adb (Build_Task_Image_Prefix): Indicate that the - resulting string is an internal entity. and thus requires no - initialization. This is relevant when Initialize_ Scalars is - enabled, because the resultant spurious initialization may lead to - secondary stack anomalies that produce a mangled name for a task. - -2014-01-29 Yannick Moy - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): SPARK_Mode - not inherited from spec anymore. Check consistency - rules after processing of declarations. - * sem_ch7.adb (Analyze_Package_Body_Helper): SPARK_Mode not inherited - from spec anymore. Check consistency rules after processing of - declarations. - (Analyze_Package_Declaration): Set SPARK_Mode only for non-generic - packages. - * sem_prag.adb (Analyze_Pragma/Pragma_SPARK_Mode): Implement new - consistency rules. - -2014-01-27 Robert Dewar - - * sem_res.adb (Resolve_Comparison_Op): Add type name/location - to unordered msg. - (Resolve_Range): Add type name/location to unordered msg. - -2014-01-27 Claire Dross - - * a-cofove.adb/s (Copy): Add precondition so that Copy (Source, - Capacity) is only called with Capacity >= Length (Source) and - Capacity in Capacity_Range. - * a-cfdlli.adb/s, a-cfhase.adb/s, a-cfhama.adb/s, a-cforse.adb/s, - a-cforma.adb/s (Copy): Add precondition so that Copy (Source, Capacity) - is only called with Capacity >= Source.Capacity. Raise Capacity_Error - in the code is this is not the case. - -2014-01-27 Thomas Quinot - - * sem_ch4.adb (Analyze_Selected_Component): Fix handling of - selected component in an instance where the component of the - actual is not visibile at instantiation. - -2014-01-27 Ed Schonberg - - * sem_ch6.adb: sem_ch6.adb (Set_Actual_Subtypes): If the type - has a dynamic predicate, generate freeze node for Actual_Subtype - at once, because the declaration of the corresponding predicate - function will make reference to it. - -2014-01-27 Tristan Gingold - - * exp_ch7.adb, exp_ch9.adb: Adjust comments. - -2014-01-27 Robert Dewar - - * exp_ch4.adb (Expand_N_Op_Expon): Remove unsigned type test - for 2**X optimization. - -2014-01-27 Ed Schonberg - - * a-suenst.adb: strings.utf_encoding.strings (Decode): Check - explicitly whether value is in range of Character, because the - library is typically compiled with range checks disabled, and - we cannot rely on the implicit check on the argument of 'Val. - -2014-01-27 Vincent Celier - - * a-ciorma.adb, a-cihama.adb (Assign): Copy the Source to the Target, - not the Target to itself. - -2014-01-27 Robert Dewar - - * vms_conv.ads, ali.adb, sem_ch6.ads, opt.ads, vms_cmds.ads: Minor - changes to avoid incorrect use of unordered enum types. - -2014-01-27 Thomas Quinot - - * sem_ch4.adb: Minor reformatting. - -2014-01-27 Robert Dewar - - * scn.adb (Check_End_Of_Line): Removed. - (Error_Long_Line): Removed. - (Determine_License): Use versions of above routines from Scanner. - * scng.adb (Check_End_Of_Line): Moved to spec. - (Error_Long_Line): Removed, no longer used. - * scng.ads (Check_End_Of_Line): Moved here from body. - -2014-01-27 Tristan Gingold - - * exp_ch7.adb (Build_Cleanup_Statements): Call - Build_Protected_Subprogram_Call_Cleanup to insert the cleanup - for protected body. - * exp_ch9.adb (Build_Protected_Subprogram_Body): Likewise. - Remove Service_Name variable. - (Build_Protected_SUbprogam_Call_Cleanup): New procedure that - factorize code from the above subprograms. - * exp_ch9.ads (Build_Protected_Subprogram_Call_Cleanup): New procedure. - -2014-01-27 Hristian Kirtchev - - * einfo.adb (Has_Option): Reimplemented. - * sem_prag.adb (Analyze_Refinement_Clause): Add global - variables AR_Constit, AW_Constit, ER_Constit, EW_Constit, - External_Constit_Seen and State. Add local variables Body_Ref, - Body_Ref_Elmt and Extra_State. Reimplement part of the logic to - avoid a cumbersome while pool. Verify the legality of an external - state and relevant properties. - (Check_External_Property): New routine. - (Check_Matching_State): Remove parameter profile - and update comment on usage. - (Collect_Constituent): Store the - relevant external property of a constituent. - * sem_util.adb (Async_Readers_Enabled): Update the call to - Has_Enabled_Property. - (Async_Writers_Enabled): Update the call to Has_Enabled_Property. - (Effective_Reads_Enabled): Update the call to Has_Enabled_Property. - (Effective_Writes_Enabled): Update the call to Has_Enabled_Property. - (Has_Enabled_Property): Rename formal parameter Extern to State_Id. - Update comment on usage. Reimplement the logic to recognize the various - formats of properties. - -2014-01-27 Ed Schonberg - - * par-ch5.adb: Minor reformatting. - -2014-01-27 Tristan Gingold - - * s-tposen.ads: Harmonize style and comments. - -2014-01-27 Vincent Celier - - * projects.texi: Document that shared library projects, by - default, cannot import projects that are not shared library - projects. - -2014-01-27 Robert Dewar - - * sem_ch8.adb (Find_Selected_Component): Use Replace instead - of Rewrite. - -2014-01-27 Ed Schonberg - - * a-suenco.adb, a-suenst.adb (Decode): Raise encoding error if - any other exception is raised. - (Convert): If both Input_Scheme and Output_Scheme are UTF_8 it is - still necessary to perform a conversion in order to remove overlong - encodings. - -2014-01-27 Robert Dewar - - * exp_smem.adb: Minor reformatting. - -2014-01-27 Thomas Quinot - - * a-calfor.ads: Fix incorrect reference to operator "-" in comment. - -2014-01-27 Ed Schonberg - - * sem_res.adb (Make_Call_Into_Operator): In ASIS mode, relocate - nodes for operands to the original node for the call, to preserve - Original_Node pointers within the resolved operands, given that - they may have been rewritten as well. Previous approach copied - the operands into a new tree and lost those pointers. - -2014-01-27 Claire Dross - - - * a-cofove.adb, a-cofove.ads: Add Strict_Equal function to the API. - -2014-01-27 Ed Schonberg - - * sem_util.adb (Check_Internal_Protected_Use): A call through - an anonymous access parameter of the current protected function - is not a potential modification of the current object. - -2014-01-27 Ed Schonberg - - * a-cobove.adb (Reserve_Capacity): Procedure raises - Capacity_Error, not Constraint_Error, when request cannot be - satisfied. - -2014-01-27 Vincent Celier - - * a-coorma.adb, a-cohama.adb (Assign): Copy the Source to the Target, - not the Target to itself. - -2014-01-27 Ed Schonberg - - * exp_ch4.adb (Expand_Concatenate): If the target of the - concatenation is a library-level entity, always use the off-line - version of concatenation, regardless of optimization level. This - is space-efficient, and prevents linking problems when some - units are compiled with different optimization levels. - -2014-01-27 Ed Schonberg - - * sem_ch5.adb: Code clean up. - -2014-01-27 Ed Schonberg - - * par-ch5.adb (P_Iterator_Specification): Improve error recovery - when an array or container iterator includes a subtype indication, - which is only legal in an element iterator. - -2014-01-27 Thomas Quinot - - * exp_ch7.adb: Minor reformatting. - -2014-01-27 Robert Dewar - - * opt.adb (SPARK_Mode): Default for library units is None rather - than Off. - * opt.ads: Remove AUTO from SPARK_Mode_Type SPARK_Mode_Type is - no longer ordered. - * sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Remove AUTO - possibility. - * snames.ads-tmpl (Name_Auto): Removed, no longer used. - -2014-01-27 Robert Dewar - - * par-ch5.adb (P_Sequence_Of_Statements): Make entry in - Suspicious_Labels table if we have identifier; followed by loop - or block. - * par-endh.adb (Evaluate_End_Entry): Search Suspicious_Labels table. - * par.adb (Suspicious_Labels): New table. - -2014-01-27 Robert Dewar - - * exp_aggr.adb (Check_Bounds): Reason is range check, not - length check. - -2014-01-27 Yannick Moy - - * get_spark_xrefs.adb (Get_SPARK_Xrefs): Accept new type 'c' for - reference. - * lib-xref-spark_specific.adb (Is_Global_Constant): Remove useless - function now. - (Add_SPARK_Xrefs): Include references to constants. - * spark_xrefs.ads Document new character 'c' for references to - constants. - -2014-01-27 Thomas Quinot - - * exp_smem.adb (Add_Write_After): For a function call, insert write as - an after action in a transient scope. - -2014-01-27 Thomas Quinot - - * exp_smem.adb (Expand_Shared_Passive_Variable): For a reference - to a shared variable as an OUT formal in a call to an init proc, - the 'Read call must be emitted after, not before, the call. - -2014-01-27 Robert Dewar - - * gnat_rm.texi: Remove mention of AUTO mode for SPARK_Mode pragma. - -2014-01-27 Robert Dewar - - * a-wichha.adb (Character_Set_Version): Change to output proper - value. - -2014-01-27 Hristian Kirtchev - - * einfo.adb (Is_Input_Only_State): Removed. - (Is_Non_Volatile_State): Removed. - (Is_Output_State): Removed. - * einfo.ads (Is_Input_Only_State): Remove attribute and - subprogram. Update related entity. - (Is_Non_Volatile_State): - Remove attribute and subprogram. Update related entity. - (Is_Output_State): Removed attribute and subprogram. Update - related entity. - * exp_ch6.adb (Expand_Subprogram_Contract): Update comment on - generated code. - * sem_ch3.adb (Analyze_Declarations): Analyze the contract of - an object, not just variables. - (Analyze_Object_Contract): New routine. - (Analyze_Variable_Contract): Removed. - (Process_Discriminants): Detect an illegal use of volatile - discriminant in SPARK mode. - * sem_ch5.adb (Analyze_Iterator_Specification): - Detect an illegal use of volatile loop variable. - (Analyze_Loop_Parameter_Specification): Detect an illegal use - of volatile loop variable. - * sem_ch6.adb (Process_Formals): Update the volatile object - detection. Detect an illegal formal of mode IN OUT or OUT in - SPARK mode. Enhance the error messages with references. - * sem_ch12.adb (Instantiate_Object): Update the volatile object - detection. Enhance the error messages with references. - * sem_prag.adb (Analyze_Abstract_State): Enhance the error - messages with references. - (Analyze_Contract_Case): Enhance the error messages with references. - (Analyze_External_Property): Call Check_Duplicate_Property to process - an external property. - (Analyze_External_Property_In_Decl_Part): New routine. - (Analyze_External_State_In_Decl_Part): Removed. - (Analyze_Global_Item): Detect an illegal - use of a volatile constant. Detect an illegal use - of a variable with enabled Effective_Reads. Enhance - the error messages with references. Remove obsolete - checks concerning Input_Only and Output_Only states. - (Analyze_Initialization_Item): Enhance the error messages - with references. - (Analyze_Initializes_In_Decl_Part): Do not - collect the states and variables when the initialization list - is null. - (Analyze_Input_Item): Enhance the error messages with references. - (Analyze_Input_Output): Enhance the error messages with references. - (Analyze_Pragma): Enhance the error messages with references. - (Analyze_Refinement_Clause): Code reformatting. - (Analyze_Refined_Depends_In_Decl_Part): - Rename global variable Global to Reg_Global and update all - occurrences. Add local variables D7 and D8. Update the error - messages with references. Update the call to Collect_Global_Items. - (Analyze_Refined_Global_In_Decl_Part): Add local variables - Has_Proof_In_State, Proof_In_Constits and Proof_In_Items. Update - the call to Collect_Global_Items. Account for a Proof_In state - in null / useless refinement checks. Verify the coverage of - Proof_In states. - (Check_Dependency_Clause): Remove local variable - Out_Constits. Remove the retrieval and removal of constituents - for an Output_Only state. Remove the reporting of unused - Output_Only state constituents. - (Check_Duplicate_Mode): Enhance - the error message with a reference. - (Check_Duplicate_Property): New routine. - (Check_Duplicate_Option): Enhance the error message with a reference. - (Check_External_Properties): Enhance the error message with a reference. - (Check_Function_Return): Enhance the error message with a reference. - (Check_In_Out_States): Update - comment on usage. Add a specialized error message for Proof_In - constituents. Enhance the error message with a reference. - (Check_Input_States): Update comment on usage. Account for - possible Proof_In constituents. Enhance the error message - with a areference. - (Check_Matching_Constituent): Enhance the error message with a - reference. - (Check_Matching_State): Enchance the error message with a reference. - (Check_Mode): Add local variable From_Global. Update the call to - Find_Mode. Emit more precise error messages concerning extra items - (Check_Mode_Restriction_In_Enclosing_Context): Consider - pragma Refined_Global. Enhance the error message with a - reference. - (Check_Mode_Restriction_In_Function): Enhance the error message with - a reference. - (Check_Output_States): Update comment on usage. Add local variable - Posted. Account for possible Proof_In constituents. Produce a detailed - list of missing constituents. - (Check_Proof_In_States): New routine. - (Check_Refined_Global_Item): Handle Proof_In - constituents. Enchance the error message with a reference. - (Collect_Global_Items): Add formal parameters Proof_In_Items - and Has_Proof_In_State. Update the comment on usage. Account - for Proof_In items. - (Create_Or_Modify_Clause): Enchance - the error message with a reference. - (Find_Mode): Add - formal parameter From_Global. Update the comment on usage. - Detect when the mode is governed by pragma [Refined_]Global. - (Output_Constituents): Removed. - (Report_Extra_Constituents): - Report extra Proof_In constituents. - (Report_Unused_Constituents): Removed. - (Usage_Error): Code reformatting. Enhance the error - messages with reference. - * sem_prag.ads (Analyze_External_Property_In_Decl_Part): New routine. - (Analyze_External_State_In_Decl_Part): Removed. - * sem_res.adb (Resolve_Actuals): Update the volatile object - detection. Enhance the error message with a reference. - (Resolve_Entity_Name): Update the volatile object - detection. Enhance the error message with a reference. - * sem_util.adb (Is_Refined_State): Add a guard to avoid a crash. - (Is_SPARK_Volatile_Object): New routine. - (Has_Volatile_Component): New routine. - * sem_util.ads (Is_Delegate): Alphabetized. - (Is_SPARK_Volatile_Object): New routine. - (Has_Volatile_Component): New routine. - * snames.ads-tmpl: Remove names Name_Input_Only and Name_Output_Only. - -2014-01-27 Ed Schonberg - - * sem_attr.adb: Resolve fully prefix of 'Update. - -2014-01-27 Ben Brosgol - - * gnat_rm.texi: Minor clarifications. - -2014-01-27 Robert Dewar - - * sem_elab.adb (Check_Internal_Call_Continue): Avoid complaining - about call that is generated as part of an Initial_Condition - check. - * sem_prag.adb: Minor spelling correction. - -2014-01-27 Robert Dewar - - * sem_prag.adb (Set_Convention_From_Pragma): Check that - convention Ghost can only apply to functions. - * einfo.ads, einfo.adb (Is_Ghost_Subprogram): Add clarifying comment. - -2014-01-27 Robert Dewar - - * gnat_ugn.texi: Add Short_Enums to documentation of - -gnatet/-gnateT. - -2014-01-27 Robert Dewar - - * sem_prag.adb (Analyze_Input_Item): Correct check for input - item in same package. - * sem_util.ads, sem_util.adb (Within_Scope): New function. - -2014-01-26 Arnaud Charlet - - * a-intnam-lynxos.ads, mlib-tgt-specific-lynxos.adb, - s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb, - s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, - system-lynxos-ppc.ads, system-lynxos-x86.ads: Removed, no longer - maintained. - -2014-01-25 Eric Botcazou - - * gcc-interface/Makefile.in: Fix oversight. - -2014-01-25 Eric Botcazou - - * gcc-interface/utils.c (convert_to_fat_pointer): Un-obfuscate the - conversion from a thin pointer with a shifted value. - * gcc-interface/utils2.c (gnat_build_constructor): Propagate the - read-only flag from the values onto the result. - (gnat_invariant_expr): Accept read-only CONSTRUCTORs. - -2014-01-25 Tristan Gingold - - * gcc-interface/decl.c (gnat_to_gnu_entity): Always build a variable - for E_Variable with a pragma Linker_Section. - -2014-01-25 Robert Dewar - - * gcc-interface/decl.c (gnat_to_gnu_param): Make sure an Out parameter - with Default_Value aspect is passed in by copy. - -2014-01-24 Eric Botcazou - - * set_targ.adb: Set Short_Enums. - * gcc-interface/lang.opt (fshort-enums): New option. - * gcc-interface/misc.c (gnat_handle_option): Handle it. - (gnat_post_options): Do not modify the global settings. - -2014-01-24 Robert Dewar - - * g-rannum.ads, g-rannum.adb (Random_Ordinary_Fixed): New generic - function. - (Random_Decimal_Fixed): New generic function. - * s-rannum.ads: Minor comment clarifications. - -2014-01-24 Robert Dewar - - * back_end.adb: Remove Short_Enums handling (handled in - Ttypes/Get_Targ now) Minor added comments. - * freeze.adb: Change name Short_Enums_On_Target to - Target_Short_Enums. - * get_targ.ads, get_targ.adb (Get_Short_Enums): New function. - * opt.ads: Minor comment updates. - * sem_ch13.adb: Change name Short_Enums_On_Target to - Target_Short_Enums. - * set_targ.adb: Set Short_Enums from gcc back end. - * set_targ.ads (Short_Enums): New variable. - * targparm.ads, targparm.adb: Remove Short_Enums entries (handled in - Ttypes/Get_Targ now). - * ttypes.ads (Target_Short_Enums): New constant boolean switch - -2014-01-24 Pascal Obry - - * g-sercom-mingw.adb: Fix serial port name for port number > 10. - -2014-01-24 Gary Dismukes - - * exp_disp.adb (Expand_Dispatching_Call): Call Unqualify on Param when - comparing it with Ctrl_Arg, since Ctrl_Arg may have had qualification - stripped off. - -2014-01-24 Robert Dewar - - * sinfo.ads, make.adb, prj-env.adb: Minor reformatting. - -2014-01-24 Vincent Celier - - * prj.adb (Add_Aggregated_Project): Do not add a project in - the list if it is already there. - -2014-01-24 Yannick Moy - - * lib-xref-spark_specific.adb (Enclosing_Subprogram_Or_Package): - Correct the search for a subrogram declaration to which a pragma is - attached. - -2014-01-24 Bob Duff - - * gnat_ugn.texi: Document --decimal-grouping and - --based-grouping switches in gnatpp. - -2014-01-24 Ed Schonberg - - * sinfo.ads: Documentation update. - -2014-01-24 Ed Schonberg - - * sem_ch3.adb (Constant_Redeclaration): New declaration is - illegal if previous one has an initial expression that is an - aggregate expanded into assignments. - -2014-01-24 Ed Schonberg - - * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Small - code reorganization to remove spurious warning on a loop with - an array element iterator that has a null range. - -2014-01-24 Vincent Celier - - * make.adb (Binding_Phase): When setting the Ada paths, use - the library ALI dir, not the object dir in libraries. - -2014-01-24 Yannick Moy - - * sinfo.ads: Add documentation of check flag fields. - -2014-01-24 Ed Schonberg - - * sem_res.adb (Resolve_Actuals): If an actual is a view - conversion of a discriminated object, and the formal type is - discriminated and constrained, apply a discriminant check to - the object itself. - -2014-01-24 Robert Dewar - - * prj.adb, prj-env.adb, back_end.adb: Add comment, minor code clean ups. - -2014-01-24 Ed Schonberg - - * sem_ch3.adb (Analyze_Declarations): At the end of an - appropriate declarative part, call Freeze_All from the first - declaration in the scope, not from the first unfrozen one. This - is necessary to apply visibility checks to entities with delayed - aspects. Otherwise, in the presence of instantiations and cleanups - that they may generate, the delayed aspects may be analyzed too - late and produce spurious visibility errors. - * sem_attr.adb: Place etype on range. - * sem_ch6.adb: Documentation expression functions. - -2014-01-24 Robert Dewar - - * exp_ch7.adb: Minor change of Indices to Indexes (preferred - terminology in compiler). - -2014-01-24 Robert Dewar - - * scans.ads: Remove Tok_Raise from Sterm, Eterm, After_SM - categories, now that Ada 95 supports raise expressions. - -2014-01-24 Robert Dewar - - * freeze.adb (Freeze_Enumeration_Type): Use new target parameter - Short_Enums_On_Target. - * sem_ch13.adb (Set_Enum_Esize): Take Short_Enums_On_Target - into account. - * targparm.ads, targparm.adb: Add new target parameter Short_Enums. - -2014-01-24 Ed Schonberg - - * sem_ch5.adb (Analyze_Iterator_Specification): If subtype - indication is given explicity, check that it matches the array - component type or the container element type of the domain - of iteration. - -2014-01-24 Tristan Gingold - - * back_end.adb (Scan_Compiler_Arguments): Set Short_Enums_On_Target. - * gcc-interface/misc.c (flag_short_enums): Declare. - (gnat_post_options): Set it. - -2014-01-24 Vincent Celier - - * prj-env.adb (Ada_Objects_Path): Use Ada_Objects_Path_No_Libs - to cache the result when Including_Libraries is False. - * prj-env.ads (Ada_Objects_Path): Update documentation - * prj.adb (Free (Project_Id)): Also free Ada_Objects_Path_No_Libs - (Get_Object_Directory): Return the Library_Ali_Dir only when - when Including_Libraries is True. - * prj.ads (Get_Object_Directory): Fix and complete documentation - (Project_Data): New component Ada_Objects_Path_No_Libs - -2014-01-24 Robert Dewar - - * checks.adb (Expr_Known_Valid): Result of fpt operator never - considered valid. - -2014-01-24 Eric Botcazou - - * back_end.adb: Minor fix in comment. - -2014-01-24 Javier Miranda - - * sem_ch3.adb (Check_Abstract_Overriding): Code reestructuration - required to report the error in case of task types. - -2014-01-24 Ed Schonberg - - * sem_attr.adb: Additional index checking. - -2014-01-24 Ed Schonberg - - * sem_attr.adb (Analyze_Attribute, case 'Update): Analyze - expressions in each component association, and for records note - the entity in each association choice, for subsequent resolution. - (Resolve_Attribute, case 'Update): Complete resolution of - expressions in each component association. - -2014-01-24 Robert Dewar - - * sem.adb (Sem): Avoid premature reference to Current_Sem_Unit - (this was causing Is_Main_Unit_Or_Main_Unit_Spec to be set wrong, - leading to wrong handling of SPARK_Mode for library units). - -2014-01-24 Robert Dewar - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set SPARK_Mode - on generic instances (do not consider them to be internally - generated) - -2014-01-24 Doug Rupp - - * s-osinte-android.ads (pthread_sigmask): Import sigprocmask - vice pthread_sigmask. - -2014-01-24 Vincent Celier - - * prj.adb (Debug_Output (Str, Str2)): Output if verbosity is - not default. - -2014-01-24 Vincent Celier - - * prj-ext.adb (Add): Do not output anything when Silent is True, - whatever the verbosity. When Source is From_External_Attribute, - set the corresponding environment variable if it is not already set. - * prj-ext.ads (Add): New Boolean parameter Silent, defaulted - to False - * prj-proc.adb (Process_Expression_For_Associative_Array): - For attribute External, call Prj.Ext.Add with Silent set to - True for the child environment, to avoid useless output in non - default verbosity. - -2014-01-24 Ed Schonberg - - * sem_res.adb (Set_Slice_Subtype): Handle properly a discrete - range given by a subtype indication, and force evaluation of - the bounds, as for a simple range. - * exp_util.adb (Evaluate_Slice_Bounds): Utility to force evaluation - of bounds of slice for various kinds of discrete ranges. - (Evaluate_Name, Evaluate_Subtype_From_Expr): use - Evaluate_Slice_Bounds. - -2014-01-24 Bob Duff - - * s-taskin.ads (Activator): Make this Atomic, because - Activation_Is_Complete reads it, and that can be called - from any task. Previously, this component was only - modified by the activator before activation, and by - Self after activation. - * a-taside.ads, a-taside.adb (Environment_Task, - Activation_Is_Complete): Implement these missing functions. - -2014-01-24 Doug Rupp - - * init.c: Add a handler section for Android. - -2014-01-24 Arnaud Charlet - - * i-cexten.ads (Unsigned_33..64, Unsigned_33..64): New types. - -2014-01-24 Ed Schonberg - - * sem_ch4.adb (Operator_Check): If one operand is a - Raise_Expression, set its type to that of the other operand. - * sem_res.adb (Resolve_Raise_Expression): new procedure. - (Resolve_Actuals): For an actual that is a Raise_Expression, - set the type to that of the formal. - * sem_type.adb (Find_Unique_Type): If one of the operands is a - Raise_Expression, return type of the other operand. - -2014-01-24 Ed Schonberg - - * sem_aggr.adb (Resolve_Record_Aggregate): If a scalar - component of the record has a type with a default aspect, and - the corresponding aggregate component is initiaized with a box, - use the default value in the rewritten aggregate. - -2014-01-24 Tristan Gingold - - * s-interr.ads, s-interr.adb, s-interr-hwint.adb, s-interr-vms.adb, - s-interr-sigaction.adb, - s-interr-dummy.adb (Install_Restricted_Handlers): Add Prio parameter. - * exp_ch9.adb (Make_Initialize_Protection): Add Prio parameter - to the call to Install_Restricted_Handlers. - -2014-01-24 Emmanuel Briot - - * prj-nmsc.adb (Check_File): Add protection when the source is - not fully initialized. - -2014-01-24 Ed Schonberg - - * sem_util.adb (Is_Post_State): In a postcondition, a selected - component that denotes an implicit dereference is a reference - to the post state of the subprogram. - -2014-01-24 Robert Dewar - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): SPARK_Mode OFF - for generated subprograms. - (Analyze_Subprogram_Specification): Ditto. - -2014-01-24 Vincent Celier - - * prj-dect.adb (Check_Attribute_Allowed): Detect more forbidden - attributes in package Builder of aggregate and aggregate library - projects. - * prj-nmsc.adb (Process_Naming_Scheme.Check.Check_Aggregate): - Remove procedure (Process_Naming_Scheme.Check.Check_Aggregated): - Remove parameters. Change error message from "... externally - build library ..." to "... externally built project ...". - (Process_Naming_Scheme.Check): Do not do any check in aggregate - project, as attribute Library_Dir and Library_Name have already - been detected as forbidden. - -2014-01-24 Vincent Celier - - * prj-env.adb (Find_Project): If cached project path is not in - project directory, look in current directory first and use cached - project path only if project is not found in project directory. - -2014-01-24 Robert Dewar - - * sem_util.adb, lib-xref.adb: Correct false positive warnings. - -2014-01-24 Vincent Celier - - * projects.texi: Document that aggregate projects are only - supported by gprbuild, but not by gnatmake. Document that the - only attribute Switches in package Binder of aggregate projects - will be ignored if its index is not others. Document that - attribute Global_Config_File is allowed in package Binder of - aggregate projects. - -2014-01-24 Robert Dewar - - * sem_prag.adb: Minor code reorganization. - * sem_util.adb: Minor fix of potential latent bug in Is_LHS. - -2014-01-24 Pascal Obry - - * prj-attr.adb, projects.texi, snames.ads-tmpl: Add Excluded_Patterns - attribute definition. - -2014-01-24 Vincent Celier - - * makeutl.adb (Queue.Insert_No_Roots): In gprbuild, do not put - in the Queue the same source (same path, same multi-source index) - from the same project file, to avoid compiling several times - the same source. - -2014-01-24 Eric Botcazou - - * einfo.ads (First_Rep_Item): Remove obsolete stuff. - (Has_Gigi_Rep_Item): Likewise. - * sem_prag.adb (Analyze_Pragma) : Do not set - Has_Gigi_Rep_Item for objects. - * gcc-interface/decl.c (prepend_one_attribute_to): Rename into... - (prepend_one_attribute): ...this. - (prepend_one_attribute_pragma): New function extracted from... - (prepend_attributes): ...here. Swap the parameters for consistency. - (gnat_to_gnu_entity): Adjust calls to prepend_one_attribute_to and to - prepend_attributes. - : Deal with a pragma Linker_Section on a constant - or variable. : Deal with a pragma Linker_Section - on a subprogram. - (get_minimal_subprog_decl): Adjust calls to prepend_one_attribute_to. - -2014-01-24 Vincent Celier - - * opt.ads: Minor comment update. - -2014-01-24 Robert Dewar - - * sem_prag.adb (Analyze_Input_Output): Add missing error check - for junk operand. - * sem_util.adb (Is_Refined_State): Add defense against junk - tree from error. - -2014-01-24 Pascal Obry - - * projects.texi: Removes Build_Slaves attribute documentation. - -2014-01-23 Robert Dewar - - * opt.adb (Register_Opt_Config_Switches): Save SPARK_Mode_Pragma - setting. - -2014-01-23 Ed Schonberg - - * sem_util.adb (Is_Potentially_Unevaluated): Predicate only - applies to expressions that come from source. - * sem_attr.adb (Analyze_Attribute, case 'Old): Improve error - message. - (Analyze_Attribute, case 'Loop_Entry): Apply SPARK 2014 legality - rule regarding potentially unevaluated expressions, to prefix - of attribute. - -2014-01-23 Ed Schonberg - - * exp_util.adb (Make_Invqriant_Call): If type of expression is - a private extension, get invariant from base type. - -2014-01-23 Robert Dewar - - * sem_util.adb, sem_attr.adb: Minor reformatting. - -2014-01-23 Robert Dewar - - * opt.adb (Save_Opt_Config_Switches): Save SPARK_Mode_Pragma - (Restore_Opt_Config_Switches): Restore SPARK_Mode_Pragma. - * sem.adb (Semantics): Remove save/restore of - SPARK_Mode[_Pragma]. Not needed since already done in - Save/Restore_Opt_Config_Switches. - -2014-01-23 Robert Dewar - - * gnat_rm.texi, einfo.adb, einfo.ads, sem_prag.adb, gnat_ugn.texi, - freeze.adb, repinfo.adb, aspects.adb, aspects.ads, sem_ch13.adb: - Linker_Section enhancements. - -2014-01-23 Tristan Gingold - - * gnat_rm.texi: Minor editing. - -2014-01-23 Robert Dewar - - * opt.adb (Set_Opt_Config_Switches): Reset SPARK mode for - with'ed internal units. - * sem.adb (Semantics): Save and restore SPARK_Mode[_Pragma]. - -2014-01-23 Javier Miranda - - * lib-xref.adb (Generate_Reference): As part of processing the - "end-of-spec" reference generate an extra reference to the first - private entity of the package. - * xr_tabls.adb (Add_Reference): No action needed for the extra - 'E' reference associated; similar to the processing of the - 'e' reference. - -2014-01-23 Bob Duff - - * gnat_ugn.texi: Change "--&pp off" to "--!pp off". - -2014-01-23 Ed Schonberg - - * sem_util.ads, sem_util.adb (Is_Potentially_Unevaluated): new - predicate to implement rule given in 6.1.1 (20/3). - * sem_attr.adb (Analyze_Attribute, case 'Old): Reject prefix of - 'Old in a postcondition, if it is potentially unevaluated and - it is not an entity name. - -2014-01-23 Bob Duff - - * gnat_ugn.texi: Document the new "--&pp off" feature of gnatpp. - -2014-01-23 Robert Dewar - - * gnatlink.adb (Gnatlink): Fix problem of generating bad name - msg on VMS. - -2014-01-23 Bob Duff - - * g-dynhta.ads: Minor comment fix. - -2014-01-23 Yannick Moy - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Inherit SPARK_Mode - from spec on body only when not already inherited on spec. Set - SPARK_Mode from context on body without previous spec. * - * sem_prag.adb (Analyze_Pragma): Check placement of pragma on - library-level entities. Correct retrieval of entity from - declaration, for cases where the declaration is not a unit. - * sem_ch12.adb (Instantiate_Object): Avoid - calling Is_Volatile_Object on an empty node. - -2014-01-23 Robert Dewar - - * gnatlink.adb (Gnatlink): Check for suspicious executable file - names on windows. - -2014-01-23 Robert Dewar - - * a-ngelfu.ads: Remove bad uses of AND which should be AND THEN. - * sem_res.adb (Check_No_Direct_Boolean_Operators): Don't give - style errors in instances. - * g-dynhta.ads (Static_HTable): Comment updates. - -2014-01-23 Vincent Celier - - * prj-conf.adb (Get_Or_Create_Configuration_File): Do not attempt - to find a configuration project file when Config_File_Name is - No_Configuration_File. - * prj-conf.ads (No_Configuration_File): New constant String. - * prj-pars.adb (Parse): Call Get_Or_Create_Configuration_File - with Config_File_Name set to No_Configuration_File, so that - no existing configuration project file will be used, and the - configuration project will be only created in memory when - Add_Default_GNAT_Naming_Scheme is called. - * projects.texi: Minor reformatting. - -2014-01-23 Vincent Celier - - * prj-conf.adb (Get_Or_Create_Configuration_File): Never parse - a config project file if On_Load_Config is not null. - * prj-pars.adb: Minor comment changes. - -2014-01-23 Ed Schonberg - - * lib-xref.adb (Output_References): Output progenitors of - synchronized tagged types, for source navigation. - -2014-01-23 Robert Dewar - - * exp_util.adb, sinfo.adb, sinfo.ads, sem.adb, sem_res.adb, - expander.adb, exp_ch11.adb, exp_ch11.ads, sem_ch11.adb, sem_ch11.ads, - sprint.adb, sprint.ads: Remove unused node N_Subprogram_Info. - -2014-01-23 Emmanuel Briot - - * prj-conf.adb (Get_Or_Create_Configuration_File): call - On_Load_Config later. - -2014-01-23 Hristian Kirtchev - - * sem_ch3.adb (Analyze_Declarations): Do not - generate the spec of the late primitive in ASIS mode. Add two - comments to explain the special cases when the expansion is - not performed. - -2014-01-23 Robert Dewar - - * sem_util.adb (Note_Possible_Modification): Fix error of - misbehaving for implicit dereference cases in -gnatc mode. - -2014-01-23 Emmanuel Briot - - * prj-pars.adb: Minor reformatting. - -2014-01-22 Ed Schonberg - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): A subprogram - body generated for an expression function within a protected body - needs a set of renaming declarations if the expression function - comes from source. - -2014-01-22 Ed Schonberg - - * lib-xref.adb (Get_Type_Reference): In semantics-only mode, - list interface progenitor of a tagged concurrent type, for better - source navigation. - -2014-01-22 Robert Dewar - - * lib.adb (In_Extended_Main_Code_Unit): Return False for - Standard_Location. - (In_Extended_Main_Source_Unit): Return False for Standard_Location. - * lib.ads (In_Extended_Main_Code_Unit): Add documentation on - treatment of Slocs No_Location and Standard_Location. - * restrict.adb (Check_Restriction_No_Dependence): Explicitly - check for entity with Standard_Location Sloc, rather than relying - on Lib routines to do that. - * sem_res.adb (Resolve_Call): Implement SPARK_05 restriction - that a call cannot occur before a later occuring body within - the same unit. - -2014-01-22 Thomas Quinot - - * rtsfind.adb: Update comment. - -2014-01-22 Hristian Kirtchev - - * sem_aux.ads, sem_aux.adb (Is_Body): New routine. - * sem_ch3.adb (Analyze_Declarations): Add local variable - Body_Seen. Generate the spec of a late controlled - primitive body that is about to freeze its related type. - (Handle_Late_Controlled_Primitive): New routine. - -2014-01-22 Robert Dewar - - * a-stream.adb: Minor reformatting. - -2014-01-22 Ed Schonberg - - * sem_ch8.adb (From_Actual_Package): Introduce a recursive - sub-procedure Declared_In_Actual to handle properly the visibility - of actuals in actual packages, that are themselves actuals to a - actual package of the current instance. This mimics properly the - visibility of formals of formal packages declared with a box, - within the corresponding generic unit. - -2014-01-22 Robert Dewar - - * checks.adb: Do not assume that a volatile variable is valid. - -2014-01-22 Thomas Quinot - - * g-catiio.ads (Image, Value): Clarify that these functions - operate in the local time zone. Minor documentation update. - -2014-01-22 Thomas Quinot - - * csets.adb, csets.ads, opt.ads: Minor documentation fixes. - -2014-01-22 Robert Dewar - - * sem_aux.adb, sem_aux.ads, sem_ch3.adb (Has_Unconstrained_Elements): - Moved to sem_aux.adb. - -2014-01-22 Robert Dewar - - * vms_data.ads: Minor reformatting. - -2014-01-22 Robert Dewar - - * debug.adb: Document messages affected by -gnatd.E including - the new ones that relate to late definition of equality. - * sem_ch6.adb (Check_Untagged_Equality): In Ada 2012 mode, if - debug flag -gnatd.E is set, then generate warnings rather than - errors. - (Check_Untagged_Equality): In earlier versions of Ada, - generate warnings if Warn_On_Ada_2012_Incompatibility flag is set. - -2014-01-22 Robert Dewar - - * sem_prag.adb (Usage_Error): Output additional messages for - unconstrained OUT parameters lacking an input dependency. - -2014-01-22 Robert Dewar - - * sem_ch4.adb: Minor reformatting. - -2014-01-22 Robert Dewar - - * restrict.ads: Minor reformatting. - * sem_res.adb (Resolve_Call): Check for SPARK_05 restriction that - forbids a call from within a subprogram to the same subprogram. - -2014-01-22 Thomas Quinot - - * a-stream.ads (Read_SEA, Write_SEA): New subprograms, optimized - stream attributes for Stream_Element_Array. - * a-stream.adb (Read_SEA, Write_SEA): Bodies for the above. - * rtsfind.adb (Check_CRT): Do not reject a reference to an entity - defined in the current scope. - -2014-01-22 Robert Dewar - - * debug.adb, exp_ch4.adb, erroutc.adb: Minor reformatting. - -2014-01-22 Thomas Quinot - - * sem_ch7.adb, sem_ch8.adb, exp_ch3.adb: Minor reformatting. - -2014-01-22 Thomas Quinot - - * sem_ch3.adb (Analyze_Object_Declaration): For a constant - declaration initialized with a function call, whose type - has variable size, need to remove side effects so that the - initialization expression becomes a dereference of a temporary - reference to the function result. - -2014-01-22 Yannick Moy - - * errout.adb (Initialize): Remove trick to add dummy entry - in Warnings table. - * erroutc.adb (Set_Warnings_Mode_Off, - Set_Warnings_Mode_On): Do nothing if warnings are suppressed by - command line switch. - * opt.ads (Warning_Mode): Document behavior - wrt pragma Warnings, in normal mode and in GNATprove_Mode. - -2014-01-22 Robert Dewar - - * sem_ch3.adb, errout.adb, erroutc.adb: Minor reformatting. - -2014-01-22 Robert Dewar - - * sem_ch13.adb (Check_Pool_Size_Clash): New procedure - (Analyze_Attribute_Definition_Clause, case Storage_Pool): call - Check_Pool_Size_Clash (Analyze_Attribute_Definition_Clause, - case Storage_Size): call Check_Pool_Size_Clash. - -2014-01-22 Robert Dewar - - * sem_ch3.adb, exp_util.adb, sem_dim.adb, sem_elab.adb, sem_ch8.adb, - sem_eval.ads: Minor reformatting. - -2014-01-22 Thomas Quinot - - * sem_eval.adb (Compile_Time_Known_Bounds): Return False for - Any_Composite to prevent cascaded errors. - -2014-01-22 Yannick Moy - - * errout.adb (Initialize): Do not insert special entry in Warnings - table in GNATprove_Mode. - * erroutc.adb (Set_Warnings_Mode_On): Add info in Warnings table in - GNATprove_Mode. - * gnat1drv.adb (Adjust_Global_Switches): Do not suppress frontend - warnings anymore. - -2014-01-22 Robert Dewar - - * sem_prag.adb (Analyze_Initializes_In_Decl_Part): Handle null - initializes case. - -2014-01-22 Robert Dewar - - * snames.ads-tmpl: Update header. - -2014-01-22 Thomas Quinot - - * exp_util.adb (Insert_Actions): When inserting actions on a - short circuit operator that has already been analyzed, do not park - actions in node; instead introduce an N_Expression_With_Actions - and insert actions immediately. - Add guard for unexpected case of climbing up through statement - in Actions list of an N_Expression_With_Actions. - * sem_elab.adb (Insert_Elab_Check): Remove complex - specialized circuitry for the case where the context is already - analyzed, as it is not needed and introduces irregularities in - finalization. Instead rely on the above change to Insert_Actions - to ensure that late insertion on short circuit operators works - as expected. - -2014-01-22 Ed Schonberg - - * sem_ch4.adb (Operator_Check): Improve error message when an - operand of concatenation is an access type. - -2014-01-22 Thomas Quinot - - * sem_dim.adb (Analyze_Dimension_Identifier): Add guard against - cascaded error. - -2014-01-22 Ed Schonberg - - * sem_ch8.adb (Find_Selected_Component): Handle properly the case - of an expanded name in a proper body, whose prefix is a package - in the context of the proper body, when there is a homonym of - the package declared in the parent unit. - -2014-01-22 Robert Dewar - - * sem_warn.adb (Check_Use_Clause): Don't give no entities used - msg if errors found. - (Check_One_Unit): Same change. - -2014-01-22 Robert Dewar - - * ug_words: Add missing/wrong entries for VMS warning switches. - * sem_prag.adb (Check_Duplicate_Pragma): Avoid flagging parent type. - -2014-01-22 Jerome Guitton - - * mlib-tgt-specific-vxworks.adb (Get_Target_Suffix): Replace xscale by - arm. - -2014-01-22 Robert Dewar - - * gnat_rm.texi, gnat_ugn.texi: Document passive task optimization - -2014-01-22 Eric Botcazou - - * gcc-interface/Makefile.in: Minor fixes. - -2014-01-21 Robert Dewar - - * par-ch4.adb (P_If_Expression): Rewritten to improve error recovery. - * par-ch5.adb (P_Condition): New version with expression prescanned. - * par.adb (P_Condition): New version with expression prescanned. - -2014-01-21 Robert Dewar - - * gnat_rm.texi: Document that Allow_Integer_Address is ignored - if Address is not a private type. - * sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address): - Ignore pragma if System.Address is not a private type. - -2014-01-21 Arnaud Charlet - - * namet.ads (Name_Len): Initialize to 0 to avoid accessing an - uninitialized value. - -2014-01-21 Thomas Quinot - - * gnat_rm.texi (Scalar_Storage_Order): Update documentation. - -2014-01-21 Ed Schonberg - - * sem_ch12.adb (Set_Instance_Env): In Ada 2012 mode, preserve - the value of Assertions_Enabled flag when compiling an instance of - an internal unit. This facilitates the use of pre/postconditions - in generic internal units, such as the new elementary function - libraries. - -2014-01-21 Robert Dewar - - * exp_aggr.adb: Minor reformatting. - * sem_attr.adb: Minor reformatting. - * sem_res.adb: Minor comment addition. - * einfo.adb: Minor comment updates. - * freeze.adb: Minor reformatting and code reorganization. - -2014-01-21 Ed Schonberg - - * par-ch4.adb (P_If_Expression): Handle more gracefully an - elsif clause that does not have an else part. - -2014-01-21 Robert Dewar - - * checks.adb, sem_util.ads, sem_ch4.adb: Minor reformatting. - * gcc-interface/Makefile.in: clean up target pairs. - -2014-01-21 Pascal Obry - - * projects.texi: Minor typo fix. - -2014-01-21 Thomas Quinot - - * freeze.adb (Check_Component_Storage_Order): If a record type - has an explicit Scalar_Storage_Order attribute definition clause, - reject any component that itself is of a composite type and does - not have one. - -2014-01-21 Ed Schonberg - - * sem_ch10.adb (Generate_Parent_Reference): Make public so it - can be used to generate proper cross-reference information for - the parent units of proper bodies. - -2014-01-21 Thomas Quinot - - * exp_pakd.adb (Expand_Packed_Element_Set, - Expand_Packed_Element_Reference): No byte swapping required in - the front-end for the case of a reverse storage order array, - as this is now handled uniformly in the back-end. However we - still need to swap back an extracted element if it is itself a - nested composite with reverse storage order. - -2014-01-21 Hristian Kirtchev - - * sem_prag.adb (Analyze_External_Property): Add processing for "others". - (Analyze_Pragma): Update the grammar of pragma Abstract_State to - include "others". - -2014-01-21 Arnaud Charlet - - * gnat_ugn.texi: Minor updates. - -2014-01-21 Thomas Quinot - - * exp_pakd.adb: Update comment, minor reformatting. - -2014-01-21 Hristian Kirtchev - - * sem_ch3.adb (Analyze_Variable_Contract): Trigger the volatile - object check when SPARK_Mode is on. - * sem_ch6.adb (Process_Formals): Trigger the volatile object - check when SPARK_Mode is on. - * sem_ch12.adb (Instantiate_Object): Trigger the volatile object - check when SPARK_Mode is on. - * sem_ch13.adb (Analyze_Aspect_Specifications): Insert the - corresponding pragma of aspect SPARK_Mode in the visible - declarations of a package declaration. - * sem_prag.adb (Analyze_Pragma): Trigger the volatile object - check when SPARK_Mode is on. - * sem_res.adb (Resolve_Actuals): Trigger the volatile object - check when SPARK_Mode is on. - (Resolve_Entity_Name): Trigger - the volatile object check when SPARK_Mode is on. - -2014-01-21 Robert Dewar - - * sem_ch3.adb, sem_prag.adb, sem_prag.ads, sem_ch12.adb, sem_res.adb, - sem_ch6.adb, a-except-2005.adb: Minor reformatting. - -2014-01-21 Ed Schonberg - - * exp_ch3.adb (Expand_N_Object_Declaration): When a class-wide - object is declared, it is rewritten as a renaming of an dynamic - expression that wraps the initial value. The renaming declaration - is first given an internal name, to prevent collisions with the - entity already declared, and then the name is modified to reflect - the original one. the modification of the name must preserve - the source location of the original, to prevent spurious errors - when compiling with style checks if the declaration involves - more than one entity. - -2014-01-21 Hristian Kirtchev - - * aspects.adb Add entries for Async_Readers, Async_Writers, - Effective_Reads and Effective_Writes in table Canonical_Aspect. - * aspects.ads Add entries for Async_Readers, Async_Writers, - Effective_Reads and Effective_Writes in tables Aspect_Id, - Aspect_Names, Aspect_Delay and Implementation_Defined_Aspect. - * atree.adb (Ekind_In): New version with 8 parameters. - (Node34): New routine. - (Set_Node34): New routine. - * atree.ads (Ekind_In): New version with 8 parameters. - (Node34): New routine. - (Set_Node34): New routine. - * einfo.adb Contract is now Node34. - (Contract): Update the assertion and node usage. - (Get_Pragma): Include pragmas Async_Readers, Async_Writers, - Effective_Reads and Effective_Writes. - (Set_Contract): Update the assertion and node usage. - (Write_Field24_Name): Remove the output for a contract. - (Write_Field34_Name): Add output for a contract. - * einfo.ads Contract is now Node34. Update the comment on - attribute usage and related node structures. - (Get_Pragma): Update the comment on usage. - * par-prag.adb (Prag): Pragmas Async_Readers, Async_Writers, - Effective_Reads and Effective_Writes do not require special - processing by the parser. - * sem_ch3.adb (Analyze_Variable_Contract): New routine. - (Analyze_Declarations): Analyze the contract of a variable at - the end of the declarative region. - (Analyze_Object_Declaration): Create a contract for a variable. - * sem_ch6.adb (Analyze_Subprogram_Contract): Update the retrieval - of classification pragmas. - (Process_Formals): Detect an illegal - use of a volatile object as a formal in a function. - * sem_ch12.adb (Instantiate_Object): Detect an illegal use of - a volatile object as an actual in generic instantiation. - * sem_prag.adb Add entries for Async_Readers, Async_Writers, - Effective_Reads and Effective_Writes in table Sig_Flags. - (Analyze_External_State_In_Decl_Part): New routine. - (Analyze_Global_Item): Detect an illegal use of a volatile object - as a global item of a function. - (Analyze_Pragma): Reimplement - pragma Abstract_State. Add support for pragmas Async_Readers, - Async_Writers, Effective_Reads and Effective_Writes. - (Check_External_Properties): New routine. - * sem_prag.ads (Analyze_External_State_In_Decl_Part): New routine. - (Check_External_Properties): New routine. - * sem_res.adb (Resolve_Actuals): Detect an illegal use of a - volatile object as an actual in a call. - (Resolve_Entity_Name): - Add local variables Par, Prev and Usage_OK. Detect illegal - contexts of volatile objects. - * sem_util.adb (Add_Contract_Item): Add support for - pragmas associated with the contract of a variable. - (Async_Readers_Enabled): New routine. - (Async_Writers_Enabled): New routine. - (Effective_Reads_Enabled): New routine. - (Effective_Writes_Enabled): New routine. - (Has_Enabled_Property): - New routine. - (Is_Unchecked_Conversion_Instance): New routine. - (Is_Volatile_Object): Add support for entities that may denote - a volatile object. - * sem_util.ads (Add_Contract_Item): Update the - comment on usage. - (Async_Readers_Enabled): New routine. - (Async_Writers_Enabled): New routine. - (Effective_Reads_Enabled): New routine. - (Effective_Writes_Enabled): New routine. - (Is_Unchecked_Conversion_Instance): New routine. - * sinfo.ads Update the comment on the structure of N_Contract. - * snames.ads-tmpl Add predefined names for Async_Readers, - Async_Writers, Effective_Reads and Effective_Writes. Add - pragma ids for Async_Readers, Async_Writers, Effective_Reads - and Effective_Writes. - -2014-01-21 Robert Dewar - - * exp_ch4.adb (Eval_Op_Expon): Use CRT_Safe_Compile_Time_Known_Value - * sem_eval.adb (Compile_Time_Known_Value): Remove special - handling of CRT mode (CRT_Safe_Compile_Time_Known_Value): New - function (Eval_Op_Expon): Add CRT_Safe in call to Test_Foldable - (Test_Foldable): Add CRT_Safe parameter - * sem_eval.ads (Compile_Time_Known_Value): Remove special - handling of CRT mode. - (CRT_Safe_Compile_Time_Known_Value): New function. - -2014-01-21 Robert Dewar - - * sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Fix problem - with pragma or aspect that applies to package spec or subprogram - spec. - -2014-01-21 Robert Dewar - - * exp_aggr.adb: Minor reformatting. - -2014-01-21 Johannes Kanig - - * gnat1drv.adb (Gnat1drv) remove obsolete reference to -gnatd.H. - -2014-01-21 Bob Duff - - * gnat_ugn.texi: Document the "checks" attribute in gnat2xml. - -2014-01-21 Steve Baird - - * gnat_rm.texi: Improve description of SPARK_Mode pragma. - -2014-01-21 Vincent Celier - - * prj-part.adb (Parse_Single_Project): Accept to extend a project - if it has only be imported by an project being extended. When a - project that has only been imported by a project being extended - is imported by another project that is not being extended, - reset the previous indication, so that it will be an error if - this project is extended later. - * prj-tree.adb (Create_Project): Include component From_Extended - in table Projects_HT - * prj-tree.ads (Project_Name_And_Node): New Boolean component - From_Extended - -2014-01-21 Robert Dewar - - * atree.ads, atree.adb: Add Node33 and Set_Node33. - * einfo.ads, einfo.adb (SPARK_Pragma): New field (SPARK_Aux_Pragma): - New field (SPARK_Pragma_Inherited): New flag - (SPARK_Aux_Pragma_Inherited): New flag (SPARK_Mode_Pragmas): - Removed. - * lib.ads, lib.adb: Remove SPARK_Mode_Pragma, no longer used. - * opt.ads (SPARK_Mode_Pragma): New global variable. - * sem.ads: Add Save_SPARK_Mode_Pragma field to Scope_Stack_Entry. - * sem_ch3.adb: Use new SPARK_Mode data structures. - * sem_ch6.adb: Set SPARK_Mode fields in subprogram specs and bodies. - * sem_ch7.adb: Set SPARK_Mode fields in package spec and body entities. - * sem_ch8.adb (Push_Scope): Save SPARK_Mode_Pragma. - (Pop_Scope): Restore SPARK_Mode_Pragma. - * sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Rewrite for - new data structures. - -2014-01-21 Arnaud Charlet - - * back_end.adb: Undo previous change, not needed. Minor reformatting. - -2014-01-21 Thomas Quinot - - * exp_ch5.adb: Fix comment. - * switch-c.adb: Minor comment update. - * exp_ch3.adb: Minor reformatting. - -2014-01-21 Arnaud Charlet - - * back_end.adb (Scan_Compiler_Arguments): Do not store object - filename in gnatprove mode. - -2014-01-21 Thomas Quinot - - * sinfo.ads (No_Ctrl_Actions): Clarify documentation (flag also - suppresses usage of primitive _assign for tagged types). - * exp_aggr.adb (Build_Array_Aggr_Code.Gen_Assign): Set - No_Ctrl_Actions for a tagged type that does not require - finalization, as we want to disable usage of _assign (which - may cause undesirable discriminant checks on an uninitialized, - invalid target). - -2014-01-21 Ed Schonberg - - * sem_prag.adb: Reject invariant'class on completion. - -2014-01-21 Javier Miranda - - * exp_ch3.adb (Build_Init_Procedure): For - derivations of interfaces, do not move the the initialization - of the _parent field since such assignment is not generated. - -2014-01-21 Ed Schonberg - - * sem_res.adb (Rewrite_Renamed_Operator): Do not replace entity - with the operator it renames if we are within an expression of - a pre/postcondition, because the expression will be reanalyzed - at a later point, and the analysis of the renaming may affect - the visibility of the operator when in an instance. - -2014-01-21 Robert Dewar - - * sinfo.ads, sinfo.adb: Change Do_Discriminant_Check to use new Flag1. - Add this flag to type conversion nodes and assignment nodes. - * treepr.adb: Deal properly with Flag 1,2,3. - * treeprs.adt: Minor comment update. - -2014-01-21 Robert Dewar - - * sem_eval.adb (Compile_Time_Known_Value): Add Ignore_CRT - parameter. - * sem_eval.ads (Compile_Time_Known_Value): Add Ignore_CRT - parameter, completely rewrite spec. - -2014-01-21 Ed Schonberg - - * sem_ch10.adb (Install_Withed_Unit): If the unit is a subprogram - instance that is inlined, it may have been rewritten as a wrapper - package. In that case the unit that must be made visible is the - related instance of the package. - -2014-01-21 Arnaud Charlet - - * exp_ch9.adb (Expand_N_Selective_Accept.Add_Accept): Refine - previous change in codepeer mode. - -2014-01-21 Arnaud Charlet - - * exp_ch9.adb (Expand_N_Selective_Accept.Add_Accept): Always add - call to Abort_Undefer, as expected by the runtime. - * s-tasren.adb (Local_Complete_Rendezvous): Replace - Defer_Abort_Nestable by Defer_Abort, since we do not expect abort to be - deferred at this point. Update comments. - -2014-01-21 Thomas Quinot - - * exp_ch4.adb, exp_ch5.adb, checks.adb: Minor reformatting. - -2014-01-21 Arnaud Charlet - - * switch-c.adb, usage.adb, gnat_ugn.texi: Mark -gnates as internal, - remove from doc. - -2014-01-21 Robert Dewar - - * switch-c.adb, usage.adb, atree.adb, atree.ads: Minor reformatting. - -2014-01-21 Thomas Quinot - - * atree.adb, atree.ads (Num_Extension_Nodes): Switch to Node_Id, since - this is value is used in Node_Id arithmetic operations. - (Copy_Node, Exchange_Entities): Use loops indexed by Num_Extension_Nodes - instead of hard-coded unrolled code. - -2014-01-21 Yannick Moy - - * gnat1drv.adb: Minor code cleanup, removing useless code. - -2014-01-21 Arnaud Charlet - - * opt.ads (SPARK_Switches_File_Name): New. - * switch-c.adb (Scan_Front_End_Switches): Add handling of -gnates=xxx * - * usage.adb (Usage): Document -gnates, in gnatprove mode only. - * gnat_ugn.texi: Document -gnates. - -2014-01-21 Yannick Moy - - * errout.adb (Special_Msg_Delete): Update comment. Remove - special case for GNATprove which should not ignore mismatch - in sizes for representation clauses. - * sem_prag.adb (Analyze_Pragma): Remove special case for GNATprove - which should not ignore pragma Pack. - -2014-01-21 Ed Schonberg - - * sem_ch4.adb: Code clean up. - -2014-01-21 Steve Baird - - * gnat_rm.texi: Improve GNAT RM description of SPARK_Mode pragma. - -2014-01-21 Robert Dewar - - * gcc-interface/gigi.h: Get Flags array address. - * gcc-interface/trans.c: Acquire Flags array address. - * atree.adb: Add support for Flags array and Flag0,1,2,3. - * atree.ads: Add support for Flags array and Flag0,1,2,3. - * atree.h: Add support for Flags array and Flag0,1,2,3. - * back_end.adb: Pass Flags array address to gigi. - -2014-01-21 Ed Schonberg - - * sem_ch8.adb (Attribute_Renaming): Transfer original attribute - reference to generated body so that legality checks on stream - attributes are properly applied. If type is tagged and already - frozen, insert generated body at the point of the renaming - declaration. - -2014-01-21 Ed Schonberg - - * sem_ch12.adb: Code clean up. - * sem_ch8.adb: Minor reformatting - -2014-01-20 Robert Dewar - - * checks.adb: Check SPARK_Mode instead of GNATProve_Mode for - converting warnings on inevitable exceptions to errors. - * exp_ch4.adb: Check SPARK_Mode instead of GNATProve_Mode for - converting warnings on inevitable exceptions to errors. - * opt.adb (SPARK_Mode_Config): Handled like other config flags - * opt.ads (SPARK_Mode_Type): Moved here from types (renamed from - SPARK_Mode_Id) (SPARK_Mode_Type): Add pragma Ordered, remove - SPARK_ from names (SPARK_Mode): New flag (SPARK_Mode_Config): - New flag (Config_Switches_Type): Add SPARK_Mode field - * sem.adb: Minor code reorganization (remove unnecessary with) - * sem.ads (Scope_Stack_Entry): Add Save_SPARK_Mode field - * sem_aggr.adb: Check SPARK_Mode instead of GNATProve_Mode for - converting warnings on inevitable exceptions to errors. - * sem_attr.adb: Check SPARK_Mode instead of GNATProve_Mode for - converting warnings on inevitable exceptions to errors. - * sem_ch3.adb: Check SPARK_Mode instead of GNATProve_Mode for - converting warnings on inevitable exceptions to errors. - * sem_ch4.adb: Check SPARK_Mode instead of GNATProve_Mode for - converting warnings on inevitable exceptions to errors. - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Reset SPARK_Mode - from spec if needed - * sem_ch7.adb (Analyze_Package_Body_Helper): Reset SPARK_Mode - from spec if needed - * sem_ch8.adb (Push_Scope): Save SPARK_Mode (Pop_Scope): - Restore SPARK_Mode - * sem_elab.adb: Check SPARK_Mode instead of GNATProve_Mode for - converting warnings on inevitable exceptions to errors. - * sem_prag.adb (Get_SPARK_Mode_From_Pragma): New function - (Get_SPARK_Mode_Id): Removed (Get_SPARK_Mode_Type): New name - of Get_SPARK_Mode_Id - * sem_prag.ads (Get_SPARK_Mode_From_Pragma): New function - * sem_res.adb: Check SPARK_Mode instead of GNATProve_Mode for - converting warnings on inevitable exceptions to errors. - * sem_util.adb: Check SPARK_Mode instead of GNATProve_Mode for - converting warnings on inevitable exceptions to errors. - * types.ads (SPARK_Mode_Id): Moved to opt.ads and renamed - SPARK_Mode_Type - -2014-01-20 Ed Schonberg - - * sem_ch13.adb: Add semantic information to rewritten type - reference. - -2014-01-20 Ed Schonberg - - * exp_ch5.adb (Expand_N_Assignment_Statement): If both sides - are of a type with unknown discriminants, convert both to the - underlying view of the type, so that the proper constraint check - can be applied to the right-hand side. - -2014-01-20 Robert Dewar - - * atree.adb (Copy_Node): Fix failure to copy last component - (Exchange_Entities): Fix failure to exchange last entity - -2014-01-20 Ed Schonberg - - * sem_ch12.adb: Code clean up. - -2014-01-20 Robert Dewar - - * gnat_rm.texi, sem_ch4.adb: Minor reformatting. - -2014-01-20 Ed Schonberg - - * sem_ch4.adb (Analyze_Quantified_Expression): If after - pre-analysis the loop parameter specification has been - rewritten as a iterator specification, propagate the change to - the quantified expression, for ASIS navigtion needs. - -2014-01-20 Vincent Celier - - * par-ch10.adb: Minor error message change: escape [ and ]. - -2014-01-20 Robert Dewar - - * checks.adb: Make warnings on exceptions into errors in GNATprove mode. - * errout.adb: Implement [ and ] insertion characters. - * errout.ads: Document new [ and ] insertion characters. - * sem_ch12.adb, restrict.adb, frontend.adb, exp_ch7.adb: Minor - addition of ??? comment. - * lib-xref.adb, exp_util.adb, gnat1drv.adb: Minor reformatting - * exp_ch4.adb, sem_ch3.adb, sem_ch4.adb, sem_ch6.adb, sem_elab.adb, - sem_eval.adb, sem_res.adb, sem_util.adb, sem_attr.adb, sem_aggr.adb: - Make warnings on exceptions into errors in GNATprove mode. - * sem_dim.adb: Minor reformatting throughout Quote [ and ] - in error messages. - -2014-01-20 Ed Schonberg - - * sem_ch13.adb: Code clean up. - -2014-01-20 Robert Dewar - - * errout.ads, errout.adb: Implement >? >x? >X? sequences in error - messages. - * sem_ch6.adb (Check_Statement_Sequence): Missing return is an - error in GNATprove mode. - -2014-01-20 Ed Schonberg - - * par-ch4.adb (Is_Parameterless_Attribute): The Ada2012 attribute - reference 'Old takes no parameters, and thus can appear as a - prefix of a slice. - -2014-01-20 Eric Botcazou - - * exp_aggr.adb: Fix minor typos. - -2014-01-20 Ed Schonberg - - * sem_attr.adb (Analyze_Attribute, case 'Constrained): In an - instance the attribute is legal, and its value is determined - statically if the type has no discriminants. This choice is - more useful than rechecking the legality rule in the instance, - is consistent with older usage, and is also consistent with all - existing tests. - -2014-01-20 Arnaud Charlet - - * sem_cat.adb (Validate_Static_Object_Name): Change error into - warning in Relaxed_Semantic_Mode. - -2014-01-20 Ed Schonberg - - * sem_attr.adb: Code and comments cleanup. - -2014-01-20 Yannick Moy - - * debug.adb Free debug flags -gnatd.D, -gnatd.G and -gnatd.V * - * errout.adb (Compilation_Errors): Remove special handling in - GNATprove mode. - * gnat1drv.adb (Adjust_Global_Switches): Remove handling of the - removed debug flags. - * gnat_rm.texi: Initial documentation for Abstract_State, Depends, - Global, Initial_Condition, Initializes and Refined_State pragmas and - aspects. - * opt.ads (Frame_Condition_Mode, Formal_Extensions, - SPARK_Strict_Mode): Remove global flags. - * sem_ch3.adb (Analyze_Object_Declaration): Check of no hidden state - always performed now, on packages declaring a null state. - (Signed_Integer_Type_Declaration): Remove ill-designed attempt - at providing pedantic mode for bounds of integer types. - * sem_ch4.adb (Analyze_Quantified_Expression): Warning on suspicious - "some" quantified expression now issued under control of -gnatw.t, - like the other warning on unused bound variable. - * sem_prag.adb (Check_Precondition_Postcondition): Remove useless test - on removed flag. - (Analyze_Pragma): Remove tests for SPARK 2014 - pragmas, not officially allowed by GNAT. - -2014-01-20 Hristian Kirtchev - - * sem_prag.adb (Analyze_Pragma): Ensure that - the sole argument of pragmas Abstract_State, Contract_Cases, - Depends, Global and Initializes in in aggregate form. - (Analyze_Refined_Pragma): Ensure that the sole argument of - pragmas Refined_Depends, Refined_Global and Refined_State is in - aggregate form. - (Ensure_Aggregate_Form): New routine. - -2014-01-20 Doug Rupp - - * sem_attr.adb (Analyze_Attribute): case - Attribute_Constrained => treat all prefixes as legal for Declib - compatibility. - -2014-01-20 Hristian Kirtchev - - * sem_prag.adb (Check_Mode): Reimplement the routine. - (Find_Mode): New routine. - -2014-01-20 Robert Dewar - - * sem_ch4.adb (Operator_Check): Handle additional - Allow_Integer_Address cases. - -2014-01-20 Robert Dewar - - * gnat_rm.texi (Allow_Integer_Address): Remove note about not - allowed if address is non-private, no longer true. - * sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address): - Remove check for address being private, causes difficulty when - pragma used in gnat.adc file and is not needed, since we guard - this in Address_Integer_Convert_OK. - * exp_ch7.adb: Minor reformatting. - * sem_ch4.adb: Handle operator operands in Allow_Integer_Address mode. - -2014-01-20 Robert Dewar - - * checks.adb (Apply_Range_Check): Remove gnatprove special - casing of exponentiation. - * sem_res.adb (Resolve_Op_Expon): Apply range check to right - operand for integer case to check range against Natural. - -2014-01-20 Robert Dewar - - * s-tataat.adb: Minor reformatting. - -2014-01-20 Robert Dewar - - * einfo.adb (Is_Descendent_Of_Address): Now applies to all - entities, and also fix documentation to remove mention of visible - integer type, since this is not what the implementation does. - * einfo.ads (Is_Descendent_Of_Address): Now applies to all - entities, and also fix documentation to remove mention of visible - integer type, since this is not what the implementation does. - * gnat_rm.texi: Minor clarification of Allow_Integer_Address - function. - * sem_ch4.adb (Analyze_One_Call): Handle Allow_Integer_Address - case for parameter type check. - * sem_res.adb (Resolve): Use new function - Address_Integer_Convert_OK. - * sem_type.adb: Minor code reorganization (use Ekind_In) Minor - reformatting throughout. - * sem_util.adb (Address_Integer_Convert_OK): New function. - * sem_util.ads: Minor reformatting (put specs in alpha order) - (Address_Integer_Convert_OK): New function. - -2014-01-20 Thomas Quinot - - * exp_ch7.adb (Wrap_Transient_Expression): - Insertion extra conditional expression only if - Opt.Suppress_Control_Flow_Optimizations is set. - -2014-01-20 Arnaud Charlet - - * s-tataat.adb (Initialize_Attributes): Abort might already be - deferred in Create_Task. - -2014-01-20 Hristian Kirtchev - - * checks.adb (Apply_Scalar_Range_Check): Flag - the exponent as requiring a range check when the expression is - an exponentiation. - -2014-01-20 Fedor Rybin - - * gnat_ugn.texi: Documenting --passed-tests option for gnattest. - -2014-01-20 Hristian Kirtchev - - * sem_util.adb (Default_Initialization): New routine. - * sem_util.ads: Add new type Default_Initialization_Kind. - (Default_Initialization): New routine. - -2014-01-20 Hristian Kirtchev - - * sem_prag.adb (Check_Mode): Correct all error - message logic dealing with in/in out parameters that may appear - as inputs or have a self reference. - -2014-01-20 Robert Dewar - - * exp_ch9.adb, checks.adb, exp_intr.adb: Minor reformatting. - * sem_res.adb (Resolve): Fix error causing infinite loop for - integer used as address. Allow addresses as integers. - -2014-01-20 Arnaud Charlet - - * s-osinte-linux.ads (struct_sigaction): Fix rep clause. - -2014-01-20 Bob Duff - - * par-ch8.adb (P_Use_Type_Clause): Detect syntax - error when "use all" is not followed by "type". - -2014-01-20 Bob Duff - - * exp_intr.adb (Expand_Unc_Deallocation): Remove warning on abort - followed by free. - -2014-01-20 Ed Schonberg - - * checks.adb (Apply_Address_Clause_Check): If there is an - alignment check on the expression in an address clause, and there - is no local exception propagation, add an additional explanatory - message to clarify the cause of previous warning. - -2014-01-20 Robert Dewar - - * exp_ch7.adb: Minor reformatting. - * opt.ads: Minor comment updates. - * sem.adb: Minor name change Is_Main_Unit => - Is_Main_Unit_Or_Main_Unit_Spec. - * sem_ch6.adb: Minor reformatting and code reorganization. - -2014-01-20 Bob Duff - - * gnat_ugn.texi: Update gnatpp switches. - -2014-01-20 Thomas Quinot - - * exp_ch9.adb: Minor comment edit. - -2014-01-20 Robert Dewar - - * gnat_rm.texi: Document that Allow_Integer_Address is permitted - only if System.Address is a private type. - * opt.ads (Allow_Integer_Address): No longer set by -gnates. - * sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address): - Allowed only if type System.Address is private, since otherwise - it makes no sense. - * sem_res.adb: Fix failure to properly Analyze unchecked - conversions that were introduced by Allow_Integer_Address. - * switch-c.adb: Remove -gnates switch. - * usage.adb: Remove -gnates switch. - * gnat_ugn.texi: Remove documentation of -gnates flag. - -2014-01-20 Ed Schonberg - - * sem_ch6.adb (Analyze_Expression_Function): Pre-analyze and - resolve expression to perform proper name capture. - -2014-01-20 Ed Schonberg - - * sem.adb (Semantics): When saving/restoring configuration - switches, the spec of a pre- defined unit that is the main unit - must be treated as a predefined unit as well. - -2014-01-20 Thomas Quinot - - * exp_ch7.adb (Wrap_Transient_Expression): For a Boolean - expression, insert an extra conditional expression when saving - the value of the expression, for the benefit of control flow - graph based coverage analysis. - * exp_ch3.adb: Minor reformatting. - -2014-01-20 Robert Dewar - - * gnat1drv.adb: Set Allow_Integer_Address in relaxed semantics mode. - * gnat_rm.texi: Document pragma Allow_Integer_Address. - * gnat_ugn.texi: Document pragma Allow_Integer_Address, -gnates. - * opt.ads: New flag Allow_Integer_Address. - * par-prag.adb: Dummy entry for pragma Allow_Integer_Address. - * sem_ch5.adb: Minor reformatting. - * sem_prag.adb: Implement pragma Allow_Integer_Address. - * sem_res.adb (Resolve): Allow integer address value if - switch set. - * sem_util.adb: Minor reformatting. - * snames.ads-tmpl: Add entry for pragma Allow_Integer_Address. - * switch-c.adb: Recognize flag -gnates. - * usage.adb: Document flag -gnates. - -2014-01-20 Thomas Quinot - - * s-tadeca.adb: Fix minor typos in comment. - -2014-01-20 Pascal Obry - - * s-win32.ads (FreeLibrary): New import. - -2014-01-20 Robert Dewar - - * sem_res.adb, sem_cat.adb: Minor reformatting. - * sem_ch11.adb (Analyze_Raise_Statement): Only give warning about - assigning to OUT parameters for the current subprogram scope. - * exp_ch4.adb: Minor reformatting. - -2014-01-20 Ed Schonberg - - * exp_ch4.adb (Process_Transient_Object, - Find_Enclosing_Contexts): If the top-level if-expression that - generated the transient object is an actual in a call, the proper - Hook_Context is a construct enclosing the call. - * einfo.ads: Indicate that Related_Expression is used to link a - loop variable to the container expression over which the loop - takes place. - (Analyze_Iterator_Specification): Set the Related_Expression of - the loop variable in a container element iterator. - (Note_Possible_Modification): If the variable is the loop - variable in a container element iterator, indicate that the - enclosing container is also modified. - -2014-01-20 Hristian Kirtchev - - * aspects.adb (Move_Or_Merge_Aspects): Reimplemented. - -2014-01-20 Robert Dewar - - * s-taasde.ads, gnat_ugn.texi, s-tadeca.adb, sem_res.adb, s-tadeca.ads: - Minor reformatting and code clean up. - -2014-01-20 Arnaud Charlet - - * sem_cat.adb (Validate_Object_Declaration): Relax semantics - of objects of private type if Relaxed_RM_Semantics. - -2014-01-20 Claire Dross - - * a-cofove.ads (Vector): Capacity discriminant - should be in range of the index. - -2014-01-20 Thomas Quinot - - * a-caldel.ads(To_Duration), s-taasde.ads(Time_Enqueue): - Clarify specs s-tadeca.adb(Enqueue_Calendar): Compensate for - possible difference between epoch of Ada.Calendar clock and Ada - real-time/tasking clock. - * s-taprop-posix.adb: Minor comment fix. - -2014-01-20 Doug Rupp - - * sysdep.c [vxworks]: Remove Vxworks version noise for RTP. - -2014-01-20 Hristian Kirtchev - - * exp_attr.adb (Expand_N_Attribute_Reference): Generate validity - checks on the prefix of attribute 'Old. - * sem_ch3.adb (Process_Range_Expr_In_Decl): Suppress the - generation of validity checks on a range that belongs to the - iteration scheme of a quantified expression. - * sem_ch5.adb (One_Bound): Suppress the generation of validity - checks on a bound that belongs to the iteration scheme of a - quantified expression, generate the check in all other cases. - -2014-01-20 Bob Duff - - * gnat_ugn.texi: Enable --pp-new by default. Minor reorganization. - -2014-01-20 Ed Schonberg - - * sem_res.adb (Resolve): When compiling a predefined unit, ignore - interpretations that do not come from other predefined units, - to prevent spurious ambiguities in the presence of user-defined - operators in the context of (an instance of) a predefined unit. - -2014-01-20 Robert Dewar - - * gnat_rm.texi: Document that Loop_Variant is included in - Statement_Assertions. - * sem_prag.adb (Check_Kind): Add Loop_Variant to - Statement_Assertions (Check_Applicable_Policy): Add Loop_Variant - to Statement_Assertions. - -2014-01-20 Doug Rupp - - * sysdep.c (__gnat_is_file_not_found_error) [vxworks6]: Add case - for errno ENOENT from RTP on NFS mounted file system. - -2014-01-20 Ed Schonberg - - * sem_util.adb (Check_Function_Writable_Actuals): 1) Do not - examine code that does not come from source. The check does not - apply to code generated for constraint checks, and such code may - generate spurious error messages when compiled with expansion - disabled (as in a generic unit) because side effects may not - have been removed. - 2) Make error messages more explicit: indicate the component - of the construct whose value is indeterminate because of a - call to a function with in-out parameter in another component, - when there is no mandated order of execution between the two - components (actuals, aggregate components, alternatives). - -2014-01-20 Robert Dewar - - * gnat_rm.texi: Minor cleanup. - -2014-01-20 Hristian Kirtchev - - * sem_attr.adb (Analyze_Attribute): Attributes 'Old and 'Result - can now apply to a refined postcondition. - * sem_ch6.adb (Analyze_Subprogram_Contract): Remove local - variable Result_Seen. Add variables Case_Prag, Post_Prag, - Seen_In_Case and Seen_In_Post. Update the mechanism that detects - whether postconditions and/or constract-cases mention attribute - 'Result and introduce a post-state when applied to functions. - (Check_Result_And_Post_State): Removed. - * sem_prag.adb (Analyze_Pragma): Add local variable - Result_Seen. Verify that the expression of pragma Refined_Post - mentions attribute 'Result and introduces a post-state. - * sem_util.ads, sem_util.adb (Check_Result_And_Post_State): New routine. - -2014-01-20 Hristian Kirtchev - - * exp_ch7.adb (Is_Subprogram_Call): New routine. - (Process_Transient_Objects): Make variable Must_Hook global with - respect to all locally declared subprograms. Search the context - for at least one subprogram call. - (Requires_Hooking): Removed. - -2014-01-20 Claire Dross - - * a-cfdlli.ads a-cfhama.ads a-cfhase.ads a-cforma.ads - * a-cforse.ads a-cofove.ads: Add pragma Annotate (GNATprove, - External_Axiomatization); - -2014-01-20 Robert Dewar - - * sem_attr.adb (Analyze_Attribute, case Loop_Entry): Allow - Loop_Entry in Assert, Assert_And_Cut, and Assume pragmas. - * sem_prag.adb (Analyze_Pragma, case Assert[_And_Cut], Assume): - Allow Loop_Entry to be used in these pragmas if they appear in - an appropriate context. - (Placement_Error): Specialize error - message for pragma Assert[_And_Cut] or pragma Assume containing - Loop_Entry attribute. - * a-exexpr-gcc.adb, sinput.adb: Minor reformatting. - * s-excmac-arm.ads, s-except.ads, s-excmac-gcc.ads: Minor reformatting - and code clean ups. - -2014-01-20 Robert Dewar - - * gnat1drv.adb: Minor comment update. - -2014-01-20 Tristan Gingold - - * raise-gcc.c (PERSONALITY_FUNCTION/arm): Remove unused - variables, comment out unused code. - * a-exexpr-gcc.adb: Move declarations to s-excmac-gcc.ads - * s-excmac-gcc.ads: New file, extracted from a-exexpr-gcc.adb - * s-excmac-arm.ads: New file. - -2014-01-20 Hristian Kirtchev - - * exp_ch4.adb (Expand_N_Slice): Remove constant D and variables - Drange and Index_Typ. Remove the circuitry which creates a - range check to compare the index type of the array against the - discrete_range. - * sem_res.adb (Resolve_Slice): Add local variable Dexpr. Update - the circuitry which creates a range check to handle a - discrete_range denoted by a subtype indication. - -2014-01-20 Pierre-Marie Derodat - - * sinput.adb, sinput.ads (Sloc_Range): Traverse the tree of original - nodes to get the original sloc range. - -2014-01-20 Hristian Kirtchev - - * sem_prag.adb (Analyze_Pragma): Use Defining_Entity to obtain the - entity of a [library level] package. - -2014-01-20 Tristan Gingold - - * raise-gcc.c (exception_class_eq): New function. - (is_handled_by): Use it to compare exception classes. - (PERSONALITY_STORAGE): Define. (continue_unwind): New function to - be called to return URC_CONTINUE_UNWIND. - (personality_body): New function, extracted from PERSONALITY_ROUTINE. - (PERSONALITY_ROUTINE): Add an implementation for the ARM unwinder. - -2014-01-20 Robert Dewar - - * opt.ads: Minor comment update. - -2014-01-20 Hristian Kirtchev - - * exp_ch4.adb (Expand_N_Slice): Relocate some variables and - constants to the "Local variables" area. Add new constant D. Add - new variables Drange and Index_Typ. Rename Pfx to Rep and Ptp - to Pref_Typ and update all occurrences. Add circuitry to extract - the discrete_range and the index type and build a range check. - -2014-01-20 Arnaud Charlet - - * gnat1drv.adb (Adjust_Global_Switches): Enable - Treat_Categorization_Errors_As_Warnings when Relaxed_RM_Semantics - is set. - -2014-01-20 Thomas Quinot - - * sem_ch5.adb, sem_ch4.adb: Minor reformatting. - -2014-01-20 Hristian Kirtchev - - * sem_ch13.adb (Analyze_Aspect_Specifications): - When aspect SPARK_Mode appears on a package body, insert the - generated pragma at the top of the body declarations. - -2014-01-20 Robert Dewar - - * sem_aggr.adb, exp_prag.adb, sem_aux.adb, sinfo.ads, sem_ch10.adb, - checks.adb, sem_prag.adb, sem_ch12.adb, freeze.adb, g-arrspl.adb, - expander.adb, gnat1drv.adb, exp_ch4.adb, sem_ch6.adb, - sem_ch8.adb, exp_dist.adb: Minor reformatting. - -2014-01-20 Yannick Moy - - * gnat1drv.adb (Gnat1drv): Call Write_ALI with Object=True in GNATprove - mode. - -2014-01-20 Pascal Obry - - * g-arrspl.ads (Slice_Set): New definition (will use a copy on - write scheme). - * g-arrspl.adb: Adapt all routine to this new implementation. - (Set): Copy the Slice_Set definition before reusing it. - -2014-01-20 Arnaud Charlet - - * sem_prag.adb (Process_Import_Or_Interface): In - Relaxed_RM_Semantics, support old Ada 83 style of pragma Import. - (Analyze_Pragma): Ditto for pragma Export. - * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Handle old pragma - Import style. - -2014-01-20 Hristian Kirtchev - - * einfo.ads: E_Abstract_State is now part of the entities that - can be overloaded. Update type Overloadable_Kind to reflect the - inclusion of abstract states. - * sem_ch6.adb (New_Overloaded_Entity): A function can now - overload an abstract state. - * sem_prag.adb (Analyze_Constituent): Handle the overloading - of states by functions. Use Entity_Of to obtain the entity of - a constituent. (Analyze_Global_Item): Handle the overloading of - states by functions. - (Analyze_Initialization_Item): Handle the - overloading of states by functions. Use Entity_Of to obtain the - entity of an item. - (Analyze_Input_Item): Handle the overloading - of states by functions. Use Entity_Of to obtain the entity of an item. - (Analyze_Input_Output): Handle the overloading of states by functions. - (Analyze_Refinement_Clause): Handle the overloading - of states by functions. Use Entity_Of to obtain the entity of an item. - (Appears_In): Use Entity_Of to obtain the entity of an element. - (Check_Usage): Use Entity_Of to obtain the entity of - an item. Add a guard to prevent a crash due to a previous error. - (Resolve_State): New routine. - -2014-01-20 Yannick Moy - - * spark_xrefs.ads, debug.adb, gnat1drv.adb, errout.adb, errout.ads, - opt.ads: Minor comments updates. - -2014-01-20 Hristian Kirtchev - - * einfo.adb (Non_Limited_View): Applies to abstract states. - (Set_From_Limited_With): Applies to abstract states. - (Set_Non_Limited_View): Applies to abstract states. - (Write_Field17): Output the non-limited view of an abstract state. - * einfo.ads: Update the comment on usage and occurrences in - nodes for attributes From_Limited_With and Non_Limited_View. - * sem_aux.adb (Available_View): This routine can now handle - abstract states. - * sem_aux.ads (Available_View): This routine can now handle - abstract states. Update the comment on usage. - * sem_ch8.adb (Find_Expanded_Name): Handle abstract views - of states and variables. - (In_Pragmas_Depends_Or_Global): New routine. - * sem_ch10.adb (Build_Limited_Views): Implement - abstract (limited) views of variables and states. - (Build_Shadow_Entity): This routine is now a procedure. Add - formal parameter Shadow. Update the comment on usage. Add - context-specific decoration for states and variables. - (Decorate_State): New routine. (Decorate_Variable): New routine. - (Find_And_Process_States): New routine. - (Process_Declarations): Renamed to Process_Declarations_And_States. - (Process_Declarations_And_States): Add formal parameters - Pack and Create_Abstract_Views. Update the comment on usage. - (Process_States): New routine. - * sem_prag.adb (Check_Dependency_Clause): Handle abstract - views of states and variables. Match the abstract view of a state - against its corresponding non-abstract view. - (Is_Matching_Input): - Handle abstract views of states and variables. Match the abstract - view of a state against its corresponding non-abstract view. - (Process_Global_Item): Handle abstract views of states and - variables. - -2014-01-20 Bob Duff - - * sem_ch10.adb (Expand_With_Clause): Don't - recurse on the prefix if the current with-ed name refers to a - package that renames its own parent, eg "package P.Q renames P;". - -2014-01-20 Yannick Moy - - * exp_spark.adb (Expand_SPARK_Call): Remove procedure. - * opt.adb, opt.ads (Full_Expander_Active): Remove function. - * checks.adb, exp_ch6.adb, exp_ch9.adb, exp_disp.adb, sem_aggr.adb, - * sem_ch10.adb, sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, - * sem_disp.adb, sem_res.adb Replace Full_Expander_Active by - Expander_Active. - -2014-01-20 Yannick Moy - - * sinfo.ads Update documentation of GNATprove mode. - -2014-01-20 Yannick Moy - - * adabkend.adb, ali-util.adb, errout.adb, exp_ch7.adb, - * exp_dbug.adb, freeze.adb, lib-xref.adb, restrict.adb, - * sem_attr.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, - * sem_prag.adb, sem_res.adb, sem_util.adb Rename SPARK_Mode into - GNATprove_Mode. - * sem_ch13.adb: Remove blank. - * exp_spark.adb, exp_spark.ads (Expand_SPARK_Call): Only replace - subprograms by alias for renamings, not for inherited primitive - operations. - * exp_util.adb (Expand_Subtype_From_Expr): Apply the expansion - in GNATprove mode. - (Remove_Side_Effects): Apply the removal in - GNATprove mode, for the full analysis of expressions. - * expander.adb (Expand): Call the light SPARK expansion in GNATprove - mode. - (Expander_Mode_Restore, Expander_Mode_Save_And_Set): Ignore - save/restore actions for Expander_Active flag in GNATprove mode, - similar to what is done in ASIS mode. - * frontend.adb (Frontend): Generic bodies are instantiated in - GNATprove mode. - * gnat1drv.adb (Adjust_Global_Switches): Set operating - mode to Check_Semantics in GNATprove mode, although a light - expansion is still performed. - (Gnat1drv): Set Back_End_Mode to - Declarations_Only in GNATprove mode, and later on special case - the GNATprove mode to continue analysis anyway. - * lib-writ.adb (Write_ALI): Always generate ALI files in - GNATprove mode. - * opt.adb, opt.ads (Full_Expander_Active): Make it equivalent to - Expander_Active. - (SPARK_Mode): Renamed as GNATprove_Mode. - * sem_aggr.adb (Aggregate_Constraint_Checks): Add checks in the - tree in GNATprove_Mode. - * sem_ch12.adb (Analyze_Package_Instantiation): Always instantiate - body in GNATprove mode. - (Need_Subprogram_Instance_Body): Always instantiate body in GNATprove - mode. - * sem_ch3.adb (Constrain_Index, Process_Range_Expr_In_Decl): - Make sure side effects are removed in GNATprove mode. - -2014-01-20 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Robustify tests - for aliased objects with an unconstrained nominal subtype. - * gcc-interface/trans.c (Call_to_gnu): Likewise. - (gnat_to_gnu) : Robustify test for private type. - : Remove useless code. - (Exception_Handler_to_gnu_zcx): Minor tweaks. - -2014-01-20 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : - Tidy up. For a subtype with discriminants and variant part, if a - variant is statically selected and the fields all have a constant - position, put them in order of increasing position. Likewise if - no variant part but representation clause is present. - * gcc-interface/utils.c (make_packable_type): Robustify. - (maybe_pad_type): Use local variable and tidy up condition. If no - alignment is specified, use the original one. - (create_type_stub_decl): Minor tweak. - (convert) : Fix typo. - : Deal with padding types around the same type. - Do not punt on missing fields. - (unchecked_convert): Call finish_record_type to lay out the special - record types made for conversions from/to problematic integer types. - Bump the alignment of CONSTRUCTORs before converting them to a more - aligned type. - -2014-01-20 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Remove - obsolete code for type_annotate_only mode, simplify code and slightly - improve wording of comments. - -2014-01-12 Eric Botcazou - - PR ada/59772 - * gcc-interface/cuintp.c (build_cst_from_int): Use 32-bit integer type - as intermediate type. - (UI_To_gnu): Likewise. - -2014-01-03 Eric Botcazou - - * gnatvsn.ads (Current_Year): Bump to 2014. - -2014-01-02 Tobias Burnus - - * gnat_ugn.texi: Bump @copying's copyright year. -Copyright (C) 2014 Free Software Foundation, Inc. +Copyright (C) 2015 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff --git a/gcc/ada/ChangeLog-2014 b/gcc/ada/ChangeLog-2014 new file mode 100644 index 00000000000..3d0c8d3846f --- /dev/null +++ b/gcc/ada/ChangeLog-2014 @@ -0,0 +1,15969 @@ +2014-12-22 Eric Botcazou + + * gcc-interface/trans.c (Attribute_to_gnu) : If the + type is a floating-point type, implement the semantics of the C99 + f{min,max} routines with regard to NaNs. + (gnat_to_gnu): Call builtin_decl_implicit. + * gcc-interface/utils2.c (compare_arrays): Adjust comments. + +2014-12-22 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_field): Post the error message + for parent overlapping on the position instead of on the first bit. + For a field that needs strict alignment, issue the error for the + position first and, for the size, issue an error if it is too large + only for the atomic and aliased cases. Issue a specific error if + the size is not a multiple of a byte in the volatile and the strict + alignment cases. + +2014-12-22 Eric Botcazou + + * gcc-interface/decl.c (check_ok_for_atomic): Rename into... + (check_ok_for_atomic_type): ...this. When checking the mode, also + check that the type is sufficient aligned. Remove useless code and + tidy up implementation. + (gnat_to_gnu_entity): Adjust to above renaming. + (gnat_to_gnu_component_type): Likewise. + (gnat_to_gnu_field): Likewise. + +2014-12-17 Pierre-Marie de Rodat + + * gcc-interface/misc.c (gnat_get_array_descr_info): New. Use it for + the get_array_descr_info lang-hook. Use it to tune the DWARF output + for array types. + +2014-11-24 Eric Botcazou + + * gcc-interface/Makefile.in (Cygwin/Mingw): Fix previous change. + +2014-11-24 Eric Botcazou + + * gcc-interface/trans.c (build_return_expr): Use INIT_EXPR instead of + MODIFY_EXPR to assign to the return object. + (finalize_nrv_r): Adjust to above change. + (finalize_nrv_unc_r): Likewise. + +2014-11-24 Eric Botcazou + + * gcc-interface/trans.c (push_range_check_info): Replace early test + with assertion. + (Raise_Error_to_gnu): Do not call push_range_check_info if the loop + stack is empty. + * gcc-interface/utils.c (convert_to_fat_pointer): Fix formatting. + * gcc-interface/utils2.c (gnat_invariant_expr): Deal with padded types + and revert latest change. + +2014-11-22 Eric Botcazou + + * gcc-interface/trans.c (Call_to_gnu): Strip unchecked conversions on + actuals of In parameters if the destination type is an unconstrained + composite type. + +2014-11-22 Eric Botcazou + + * gcc-interface/trans.c (gnat_gimplify_expr): Add 'type' variable. + : Deal with unconstrained array types and use 'type'. + : Use 'type'. + : Likewise. + +2014-11-20 Trevor Saunders + + * gcc-interface/decl.c (annotate_value_cache): Replace htab with + hash_table. + (annotate_value): Adjust. + (init_gnat_decl): Likewise. + (destroy_gnat_decl): Likewise. + * gcc-interface/utils.c (pad_type_hash_table): Replace htab with + hash_table. + (init_gnat_utils): Adjust. + (destroy_gnat_utils): Likewise. + (lookup_and_insert_pad_type): Likewise. + +2014-11-20 Arnaud Charlet + + PR ada/63931 + * gnatvsn.ads (Library_Version): Switch to "5". + +2014-11-20 Thomas Quinot + + * freeze.adb (Freeze_Entity): Do not reset Is_True_Constant + for aliased constant objects. + +2014-11-20 Robert Dewar + + * exp_util.adb (Following_Address_Clause): Use new Name_Table + boolean flag set by parser to avoid the search if there is no + address clause anywhere for the name. + * namet.adb (Name_Enter): Initialize Boolean_Info flag + (Name_Find): ditto (Reinitialize): ditto (Get_Name_Table_Boolean): + New function (Set_Name_Table_Boolean): New procedure + * namet.ads: Add and document new Boolean field in name table + (Get_Name_Table_Boolean): New function. + (Set_Name_Table_Boolean): New procedure. + * par-ch13.adb (P_Representation_Clause): Set Name_Table boolean + flag for an identifier name if we detect an address clause or + use-at clause for the identifier. + * sem_ch3.adb (Analyze_Object_Declaration): Remove comment about + Following_Address_Clause since this function is now optimized + and is not a performance concern. + * sem_prag.adb (Analyze_Pragma, case Elaborate): In SPARK + mode, pragma Elaborate is now allowed, but does not suppress + elaboration checking. + +2014-11-20 Jerome Lambourg + + * gcc-interface/Makefile.in: Add some support for VxWorks7. + +2014-11-20 Thomas Quinot + + * sem_ch13.adb, freeze.adb: Minor reformatting. + * gnat_rm.texi: Minor editing. + +2014-11-20 Robert Dewar + + * sem_prag.adb (Analyze_Pragma): Minor reformatting. + (Process_Suppress_Unsuppress): Ignore suppress Elaboration_Check + in SPARK. + +2014-11-20 Bob Duff + + * gnat_rm.texi: Correction to documentation of + 'Unrestricted_Access in case of access to unconstrained array. + * a-cofove.adb (Capacity): Fix bug -- was always + returning Capacity_Range'Last. + (Is_Sorted): Fix bug -- was always returning True, because + Container.Last = Last. That test isn't even needed, because the + loop will go around zero times in that case, so deleted that + test rather than fixing it. + (Reverse_Elements): Make sure to use the correct array bounds. + +2014-11-20 Ed Schonberg + + * sem_ch12.adb (Analyze_Associations): In GNATProve mode, build + wrappers for functions and operators that are actuals only if + expander is enabled. Wrappers play no role within a generic unit. + +2014-11-20 Hristian Kirtchev + + * sem_util.adb (Policy_In_Effect): Use the + configuration level assertion flag. + +2014-11-20 Arnaud Charlet + + * s-parame-ae653.ads: Update comments. + +2014-11-20 Robert Dewar + + * types.ads, einfo.ads: Minor reformatting. + * sem_elab.adb (Check_A_Call): Add guard for reference to Alias + for variable case. + +2014-11-20 Bob Duff + + * a-cofove.adb (Elems,Elemsc): Use access-to-constrained arrays + instead of access-to-unconstrained, because the latter doesn't + work with 'Unrestricted_Access when the result is returned from + a function. + * a-cofove.ads (Vector): Move the discriminant-dependent array + after the other components for efficiency. Otherwise the compiler + will generate a lot of code to calculate the offset of the other + components every time they're accessed. + +2014-11-20 Olivier Hainque + + * opt.ads: Fix comment on Generate_SCO_Instance_Table wrt when + it is set to true. + +2014-11-20 Ed Schonberg + + * exp_ch3.adb (Expand_N_Object_Declaration): Handle properly + a type invariant check on an object with default initialization + and an address clause. + +2014-11-20 Robert Dewar + + * sem_elab.adb (Check_A_Call): Handle variable ref case in + SPARK (Check_Elab_Call): ditto (Find_Elab_Reference): ditto + (Get_Referenced_Ent): ditto. + * sem_elab.ads: Comment fixes to account for the fact that we + now deal with variable references in SPARK mode. + * sem_res.adb (Resolve_Entity_Name): In SPARK_Mode Call + Check_Elab_Call for variable. + +2014-11-20 Yannick Moy + + * a-cofove.ads (Copy): Fix precondition, which should allow + Capacity = 0. + (First_To_Previous, Current_To_Last): Add necessary preconditions. + +2014-11-20 Hristian Kirtchev + + * exp_ch3.adb (Build_Initialization_Call): Reimplement the + circuitry which extraacts the [underlying] full view of a + private type to handle a case where the private type acts as a + generic actual. + * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Inherit the + loop label form the original loop regardless of whether it came + from source. + * sem_attr.adb (Analyze_Attribute): When taking 'Access of an + expression function with a generated body that has not been + analyzed yet, analyze the body to freeze the expression. + * sem_util.adb (Set_Public_Status_Of): New routine. + (Transfer_Entities): Handle the case where a private type with + an internally generated full view is being transfered and update + its full view. + +2014-11-20 Vincent Celier + + * prj-nmsc.adb (Check_Object): If a unit is in a multi-source + file, its object file is never the same as any other unit. + +2014-11-20 Bob Duff + + * s-taskin.adb (Initialize_ATCB): Take into + account the fact that the domain of the activator can be null + if we're initializing a foreign task. + +2014-11-20 Robert Dewar + + * sem_ch12.adb: Minor reformatting. + +2014-11-20 Jerome Lambourg + + * s-osinte-vxworks.ads: Add comments. Minor reformatting. + +2014-11-20 Yannick Moy + + * sem_prag.adb, sem_elab.adb: Minor rewording of error message in + SPARK mode, for consistency. + +2014-11-20 Vasiliy Fofanov + + * gnat_ugn.texi: New section on gnattest stubbing. Minor + reformatting. + +2014-11-20 Jerome Lambourg + + * s-taprop-vxworks.adb (Create_Task): Fix thread comparison. + Minor reformatting. + +2014-11-20 Robert Dewar + + * s-tassta.adb, exp_aggr.adb, s-taskin.adb, exp_strm.adb: Minor + reformatting. + * comperr.adb (Compiler_Abort): New wording for bug box. + * par-ch13.adb: Minor reformatting. + * par-ch3.adb (P_Identifier_Declarations): Handle aspect + specifications given before initialization expression in object + declaration cleanly. + * gnat1drv.adb (Adjust_Global_Switches): Make sure static + elaboration mode is set if we are operating in SPARK mode. + * sem_ch12.adb (Analyze_Package_Instantiation): Make + sure static elab mode is set if we are in SPARK mode. + (Analyze_Subprogram_Instantiation): ditto. + (Set_Instance_Env): ditto. + * sem_elab.adb (Check_A_Call): In SPARK mode, we require + Elaborate_All in the case of a call during elaboration to a + subprogram in another unit. + +2014-11-20 Ed Schonberg + + * inline.adb (Can_Split_Unconstrained_Function, + Build_Procedure): Copy parameter type rather than creating + reference to the entity, to capture class-wide reference, whose + name is not retrieved by visibility. + +2014-11-20 Arnaud Charlet + + * s-taspri-solaris.ads: Replace 64 by long_long_integer'size. + +2014-11-20 Olivier Hainque + + * init.c (__gnat_map_signal for VxWorks): Use a common mapping + scheme for VxWorks version >= 6, instead of falling back to the + vx5 scheme for versions > 6. + +2014-11-20 Ed Schonberg + + * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Use + base type when constructing subtype indication for constrained + target object. + +2014-11-20 Jose Ruiz + + * projects.texi: Minor spelling fix. + +2014-11-20 Bob Duff + + * gnat_ugn.texi: Add doc for --split-line-before-op switch in gnatpp. + +2014-11-20 Vincent Celier + + * prj-attr.adb (Register_New_Package): Allow the registration + of an already unknown package and make it known. + +2014-11-20 Trevor Saunders + + * gcc-interface/decl.c, gcc-interface/utils.c: replace htab with + hash_table. + +2014-11-20 Robert Dewar + + * sem_prag.adb (Analyze_Pragma, case Elaborate): Forbid pragma + Elaborate in SPARK mode. + +2014-11-20 Bob Duff + + * s-taskin.adb, s-tassta.adb (Initialize_ATCB): If Domain + is null, then initialize T.Common.Domain to that of the + activating task (not the parent task!), as required by RM-D.16.1. + T.Common.Domain should never be null; so Assert. Remove similar + code from Create_Task in s-tassta.adb. + * s-mudido-affinity.adb: Remove checks for Domain = null, + because it can't be null. + * s-taskin.ads, s-taspri-dummy.ads, s-taspri-mingw.ads, + s-taspri-posix.ads, s-taspri-posix-noaltstack.ads, + s-taspri-solaris.ads, s-taspri-vxworks.ads: Mark limited types as + explicitly limited for clarity. + +2014-11-20 Ed Schonberg + + * exp_aggr.adb (Init_Hidden_Discriminants): Code clean up. + +2014-11-20 Robert Dewar + + * errout.adb (Error_Msg): Don't suppress continuation msgs for + run-time files. + * sem_prag.adb (Analyze_Pragma, case Elaborate): Forbid pragma + Elaborate in SPARK mode. + +2014-11-20 Yannick Moy + + * gnat_rm.texi: Update GNAT RM with rule about expressions in + Update attribute. + +2014-11-20 Thomas Quinot + + * g-socket.adb (To_Host_Entry): Guard against case of a + non-AF_INET entry. + +2014-11-20 Vadim Godunko + + * a-strunb-shared.adb (To_Unbounded_String): Use shared empty + object to construct return value when source string is empty or + requested length is zero. + * a-stwiun-shared.adb (To_Unbounded_Wide_String): Likewise. + * a-stzunb-shared.adb (To_Unbounded_Wide_Wide_String): Likewise. + +2014-11-20 Yannick Moy + + * a-cfhase.adb, a-cfinve.adb, a-cforma.adb, a-cfhama.adb, a-cforse.adb, + a-cofove.adb: Skip CodePeer analysis on body of all formal containers. + +2014-11-20 Arnaud Charlet + + * adaint.c: Fix typo. + * exp_util.adb (Make_Subtype_From_Expr): Complete previous change, + generate constant values. + * sem_eval.adb (Decompose_Expr): Fix latent bug leading to a wrong + evaluation to '0' of some unknown values. + +2014-11-20 Robert Dewar + + * repinfo.adb (List_Record_Info): Do not list discriminant in + unchecked union. + * sem_ch13.adb (Has_Good_Profile): Minor reformatting + (Analyze_Stream_TSS_Definition): Minor reformatting + (Analyze_Record_Representation_Clause): Do not issue warning + for missing rep clause for discriminant in unchecked union. + +2014-11-20 Vadim Godunko + + * a-strunb-shared.adb, a-stwiun-shared.adb, a-stzunb-shared.adb + ("&") Use already computed value of data length to call allocation + subprogram. + +2014-11-20 Ed Schonberg + + * exp_ch6.adb (Expand_Call, Inlined_Subprogram): Do not suppress + debugging information for a call to a predefined unit, if the + call comes from source and the unit is in the Ada hierarchy. + +2014-11-20 Bob Duff + + * s-mudido.ads: Update signature of Create and Get_Last_CPU. Add + CPU_Set, another Create, and Get_CPU_Set. + * s-mudido.adb: Corresponding changes to the spec. New + operations just raise an exception. Also minor cleanup: use + raise_expressions. + * s-mudido-affinity.adb: Implementations of new operations from + * s-mudido.ads, for the platforms that actually support processor + affinity. The new Create (which takes a set) now does all the + work; the old Create (which takes a range) now just calls the + new one. Change error messages to reflect the fact that it's an + arbitrary set, not just a range. + +2014-11-20 Robert Dewar + + * exp_attr.adb: Minor reformatting. + +2014-11-20 Hristian Kirtchev + + * exp_util.adb (Make_Subtype_From_Expr): Capture the bounds of + all index constracts when the expression is of an array type. + +2014-11-20 Bob Duff + + * s-taskin.ads: Minor comment improvements. + +2014-11-20 Bob Duff + + * exp_ch9.adb: Minor comment fixes. + * s-taskin.adb (Initialize): Small simplification: pass System_Domain + to Initialize_ATCB instead of passing null and then setting the Domain + to System_Domain. This requires moving the creation of System_Domain + earlier. + * s-taprop-linux.adb (Set_Task_Affinity): Only call CPU_SET for + processors that have a True in the Domain. This is necessary if the + Domain is not all-True values. + +2014-11-20 Ed Schonberg + + * sem_ch13.adb (Has_Good_Profile): a) An stream attribute + for the class-wide type of an interface type is not a primitive + operation and is not subject to the restrictions of 13.13. (38/3). + b) A stream operation for an interface type must be a null + procedure, and it cannot be a function. + +2014-11-20 Bob Duff + + * exp_attr.adb (Attribute_Max_Size_In_Storage_Elements): + Eliminate 'Class references from the tree, because gigi crashes on + 'Class. Also, don't check Nkind (Attr) -- it is known to be + N_Attribute_Reference. Assert that instead. + +2014-11-20 Bob Duff + + * debug.adb: Minor comment fix. + +2014-11-20 Arnaud Charlet + + * a-ciorma.adb: Minor update: move pragma Annotate up. + * a-cfdlli.adb: Skip codepeer analysis on this body. + +2014-11-20 Robert Dewar + + * sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All): + Allow use of this pragma with generic unit (package or subprogram). + * gnat_rm.texi: Clarify that pragma No_Elaboration_Code_All can + be applied to generics. + +2014-11-20 Ed Schonberg + + * sem_aggr.adb (Valid_Limited_Ancestor): Ancestor part of + extension aggregate can itself be an extension aggregate, as + well as a call that is rewritten as a reference. + +2014-11-20 Eric Botcazou + + * inline.adb (Add_Inlined_Subprogram): Insert all programs + generated as a body or whose declaration was provided along with + the body. + +2014-11-20 Javier Miranda + + * sem.adb (Semantics): Disable expansion if we are compiling a + separate unit under configurable runtime. By default separate + units are compiled with expansion disabled but under configurable + runtime we enable the expansion to get error messages about + missing entities. + +2014-11-20 Robert Dewar + + * sem_ch13.adb: Minor reformatting. + * exp_util.adb (Following_Address_Clause): Handle case of + package private part. + +2014-11-20 Arnaud Charlet + + * a-cdlili.adb, a-cihama.adb, a-coinve.adb, a-cusyqu.adb, a-ciorse.adb, + a-coorma.adb, a-cborma.adb, a-cidlli.adb, a-cimutr.adb, a-ciormu.adb, + a-cbprqu.adb, a-cihase.adb, a-cohama.adb, a-coorse.adb, a-coboho.adb, + a-cuprqu.adb, a-cbhama.adb, a-rbtgbo.adb, a-cborse.adb, a-comutr.adb, + a-ciorma.adb, a-cobove.adb, a-coormu.adb, a-convec.adb, a-cohase.adb, + a-coinho.adb, a-coinho-shared.adb, a-cbdlli.adb, a-cbsyqu.adb, + a-cbmutr.adb, a-cbhase.adb: Add pragma Annotate to prevent codepeer + from analyzing these bodies. + +2014-11-20 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not apply + inlining expansion if function build in place, i.e. has a limited + return type. + +2014-11-20 Hristian Kirtchev + + * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Add + variables Body_Id, Body_Inputs, Body_Outputs, Spec_Inputs, + Spec_Outputs. Synthesize the inputs and outputs of the subprogram + when pragma [Refined_]Global is missing and perform legality + checks on output states with visible refinement. + (Appears_In): Update the comment on usage. + (Check_Output_States): New routine. + (Collect_Dependency_Clause): New routine. + (Collect_Global_Items): Relocated to + Analyze_Refined_Global_In_Decl_Part. + (Collect_Subprogram_Inputs_Outputs): Add new formal parameters + Synthesize and Depends_Seen. The routine can now synthesize inputs + and outputs from pragma [Refined_]Depends. + (Normalize_Clause): Update the comment on usage. The routine no longer + performs normalization of outputs. + (Normalize_Clauses): Normalize both inputs and outputs. + (Normalize_Output): Relocated to Normalize_Clauses. + * sem_prag.ads (Collect_Subprogram_Inputs_Outputs): Add new + formal parameters Synthesize and Depends_Seen and update the + comment on usage. + +2014-11-20 Vincent Celier + + PR ada/47500 + * back_end.adb (Scan_Back_End_Switches): Skip switch -G and + its argument. + +2014-11-20 Ed Schonberg + + * sem_ch13.adb (Reset_Loop_Variable): New subsidiary procedure + in Build_Predicate_Functions, to handle properly quantified + expressions in dynamic predicates. + +2014-11-20 Robert Dewar + + * gnatcmd.adb, sem_ch6.adb, exp_dist.adb: Minor reformatting. + * sem_util.adb (Bad_Unordered_Enumeration_Reference): Suppress + warning (return False) for generic type. + +2014-11-20 Hristian Kirtchev + + * sem_res.adb (Appears_In_Check): Removed. + (Is_OK_Volatile_Context): Rewrite the checks which verify that + an effectively volatile object subject to enabled properties + Async_Writers or Effective_Reads appears in a suitable context to + properly recognize a procedure call. + (Within_Check): New routine. + (Within_Procedure_Call): New routine. + +2014-11-20 Ed Schonberg + + * sem_ch6.adb: Improve better error message. + +2014-11-20 Thomas Quinot + + * freeze.adb, sem_ch13.adb: Minor editing. + +2014-11-20 Vincent Celier + + * gnatcmd.adb: Remove any special processing for the ASIS tools + (gnatpp, gnatmetric, gnatcheck, gnatelim and gnatstup) and simply + invoke the tool with the provided switches and arguments. + +2014-11-20 Ed Schonberg + + * sem_ch6.adb (Analyze_Expression_Function): Reject declaration + of expression function with identical profile as previous + expression function. + +2014-11-20 Thomas Quinot + + * sem_ch13.adb: Complete previous change. + * exp_dist.adb, exp_dist.ads: Rework PolyORB/DSA arguments processing + circuitry to correctly handle the case of non-private limited + unconstrained formals. + +2014-11-20 Robert Dewar + + * freeze.adb, exp_dbug.adb, sem_ch13.adb: Minor reformatting. + +2014-11-20 Thomas Quinot + + * einfo.ads: Fix minor typo in comment. + +2014-11-20 Robert Dewar + + * inline.adb, sem_util.adb: Minor reformatting. + +2014-11-20 Pierre-Marie Derodat + + * uintp.h (UI_Eq): Declare. + * urealp.h (Norm_Den): Declare. + (Norm_Num): Declare. + * exp_dbug.adb (Is_Handled_Scale_Factor): New. + (Get_Encoded_Name): Do not output ___XF GNAT encodings + for fixed-point types when these can be handled by GCC's DWARF + back-end. + +2014-11-20 Thomas Quinot + + * sem_ch13.db (Inherit_Aspects_At_Freeze_Point): Inherit parent + SSO even if set through a pragma Default_Scalar_Storage_Order. + * freeze.adb (Set_SSO_From_Default): For a type extension, + do not let the default SSO override the parent SSO. + * gnat_rm.texi: document the above + +2014-11-20 Robert Dewar + + * a-stream.ads, a-reatim.ads, a-calend.ads, sinfo.ads, s-crtl.ads, + interfac.ads, s-taskin.ads: Minor reformatting. + +2014-11-20 Hristian Kirtchev + + * sem_prag.adb (Analyze_Pragma): Extensions_Visible can now + apply to an expression function. + * sem_util.adb (Extensions_Visible_Status): Add special processing + for expression functions. + +2014-11-20 Hristian Kirtchev + + * inline.adb (Build_Body_To_Inline): Remove meaningless aspects + and pragmas. + (Generate_Subprogram_Body): Remove meaningless aspects and pragmas. + (Remove_Aspects_And_Pragmas): New routine. + (Remove_Pragmas): Removed. + * namet.ads, namet.adb (Nam_In): New versions of the routine. + +2014-11-20 Thomas Quinot + + * sem_util.adb: Minor reformatting. + +2014-11-20 Robert Dewar + + * sem_prag.adb (Analyze_Pragma, case Linker_Section): Detect + duplicate Linker_Section. + +2014-11-20 Ed Schonberg + + * exp_ch4.adb: Add guard for build-in-place boolean op. + +2014-11-20 Yannick Moy + + * checks.adb (Apply_Scalar_Range_Check): In GNATprove mode, + put a range check when an empty range is used, instead of an + error message. + * sinfo.ads Update comment on GNATprove mode. + +2014-11-20 Arnaud Charlet + + * a-stream.ads, s-osinte-linux.ads, a-reatim.ads, a-calend.ads, + s-crtl.ads, interfac.ads, s-taskin.ads: Replace uses of 2 ** 63 and + 2 ** 64 by references to Long_Long_Integer instead, to allow these + units to be analyzed by codepeer or spark when using a target + configuration file with long_long_size set to 32. + +2014-11-20 Hristian Kirtchev + + * sem_util.adb (Extensions_Visible_Status): Modify the logic to account + for non-SPARK code. + (Object_Access_Level): In ASIS mode, recognize + a selected component with an implicit dereference so that it + yields the same value with and without expansion. + +2014-11-20 Ed Schonberg + + * sem_prag.adb (Analyze_Pragma, case Implemented): In ASIS + (compile-only) mode, use original type declaration to determine + whether protected type implements an interface. + +2014-11-20 Yannick Moy + + * a-cfdlli.adb, a-cfdlli.ads, a-cfinve.adb, a-cfinve.ads, + * a-cofove.adb, a-cofove.ads: Mark spec as SPARK_Mode, and private + part/body as SPARK_Mode Off. + * a-cfhama.adb, a-cfhama.ads, a-cfhase.adb, a-cfhase.ads, + * a-cforma.adb, a-cforma.ads, a-cforse.adb, a-cforse.ads: Use + aspect instead of pragma for uniformity. + +2014-11-20 Hristian Kirtchev + + * sem_util.adb (Is_EVF_Expression): Include + attributes 'Loop_Entry, 'Old and 'Update to the logic. + +2014-11-20 Bob Duff + + * sem_res.adb (Make_Call_Into_Operator): Don't + call Left_Opnd in the case of unary operators, because they only + have Right. + +2014-11-20 Pascal Obry + + * initialize.c (ProcListCS): New extern variable (critical section). + (ProcListEvt): New extern variable (handle). + (__gnat_initialize)[Win32]: Initialize the ProcListCS critical + section object and the ProcListEvt event. + * final.c (__gnat_finalize)[Win32]: Properly finalize the + ProcListCS critical section and the ProcListEvt event. + * adaint.c (ProcListEvt): New Win32 event handle. + (EnterCS): New routine to enter the critical section when dealing with + child processes chain list. + (LeaveCS): As above to exit from the critical section. + (SignalListChanged): Routine to signal that the chain process list has + been updated. + (add_handle): Use EnterCS/LeaveCS, also call SignalListChanged when the + handle has been added. + (__gnat_win32_remove_handle): Use EnterCS/LeaveCS, + also call SignalListChanged if the handle has been found and removed. + (remove_handle): Routine removed, implementation merged with the above. + (win32_wait): Use EnterCS/LeaveCS for the critical section. Properly + copy the PID list locally to ensure that even if the list is updated + the local copy remains valid. Add into the hl (handle list) the + ProcListEvt handle. This handle is used to signal that a change has + been made into the process chain list. This is to ensure that a waiting + call can be resumed to take into account new processes. We also make + sure that if the handle was not found into the list we start over + the wait call. Indeed another concurrent call to win32_wait() + could already have handled this process. + +2014-11-20 Ed Schonberg + + * sem_res.adb (Resolve_Actuals): The legality rule concerning + the use of class-wide actuals for a non-controlling formal are + not rechecked in an instance. + +2014-11-20 Pascal Obry + + * g-dirope.ads: Minor typo fix. + +2014-11-20 Hristian Kirtchev + + * exp_attr.adb (Expand_N_Attribute_Reference, + Expand_Update_Attribute): Preserve the tag of a prefix by offering + a specific view of the class-wide version of the prefix. + +2014-11-20 Javier Miranda + + * sem_ch6.adb (Analyze_Function_Return): For functions returning + an access to an interface add an implicit conversion to the target + type to force the displacement of the pointer to the object to + reference the secondary dispatch table. + (Check_Anonymous_Return): Skip internally built functions which handle + the case of null access when locating the master of a task. + * sem_res.adb (Valid_Conversion): Return true for internally + generated conversions of access to interface types added to force + the displacement of the pointer to reference the corresponding + dispatch table. + +2014-11-20 Pascal Obry + + * adaint.c (add_handle): realloc with a size of +100. + +2014-11-20 Ed Schonberg + + * sem_res.adb (Make_Call_Into_Operator): In ASIS mode, propagate + back the resolved operands to the original call node, taking + into account that the original call may have named associations. + +2014-11-20 Hristian Kirtchev + + * inline.adb (Has_Some_Contract): Change the + guard to test the Ekind of the entity rather than the Analyzed + flag. This handles partially analyzed contexts. + +2014-11-20 Ed Schonberg + + * sem_ch8.adb (Analyze_Object_Renaming): In Ada 83 mode, do + not reject the renaming of a function result if the renaming + does not come for source. + +2014-11-20 Robert Dewar + + * exp_util.ads: Minor addition of ??? clause. + +2014-11-20 Ed Schonberg + + * sem_util.adb (Is_Variable): For an Ada 2012 implicit + dereference introduced for an indexing opertion, check that the + type of the corresponding access discriminant is not an access + to constant. + +2014-11-20 Hristian Kirtchev + + * sem_ch6.adb (Find_Corresponding_Spec): Inherit + the ghostness of the matching spec, the same way convention + is inherited. + +2014-11-20 Eric Botcazou + + * sem_ch3.adb (Analyze_Object_Declaration): Swap a couple of + tests in a condition so Following_Address_Clause is invoked + only if need be. + * exp_util.ads (Following_Address_Clause): Add small note. + +2014-11-20 Pascal Obry + + * adaint.c (remove_handle): New local routine without a lock. + (win32_wait): fix the critical section to properly protect needed + code, use new remove_handle. + (__gnat_win32_remove_handle): refactor code with remove_handle. + +2014-11-20 Eric Botcazou + + * inline.adb (Analyze_Inlined_Bodies): Iterate between loading + of the inlined bodies and instantiation of the generic bodies + until no more bodies need to be loaded. + +2014-11-20 Vincent Celier + + * prj.adb, prj.ads, prj-conf.adb: Minor change of procedure name: + Update_Ignore_Missing_With becomes Set_Ignore_Missing_With. + +2014-11-20 Robert Dewar + + * exp_ch7.adb, sem_ch5.adb, sem_ch7.adb, sem_util.adb, + sem_ch6.adb: Minor reformatting. + +2014-11-20 Javier Miranda + + * exp_ch4.adb (Expand_N_Type_Conversion): Add missing implicit + conversion to force the displacement of the pointer to the object + to reference the secondary dispatch table. + +2014-11-11 Simon Wright + + PR ada/42978 + * mlib-utl.adb (ar): Output the options passed to ranlib. + +2014-11-07 Arnaud Charlet + + * debug.adb, snames.adb-tmpl (Is_Keyword_Name): Consider 'overriding' + a keyword in Ada 95 mode when -gnatd.D is used. + * gnat_ugn.texi: Document -gnatd.D. + +2014-11-07 Vasiliy Fofanov + + * gnatls.adb: Lower severity of the program's return value in + some common cases. + +2014-11-07 Ed Schonberg + + * sem_ch10.adb (Decorate_Type): The limited view of a tagged + type has an empty list of primitive operations. + +2014-11-07 Hristian Kirtchev + + * sem_ch3.adb (Analyze_Object_Declaration): Update references to SPARK + RM. + (Process_Full_View): Update references to SPARK RM. + * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Update references + to SPARK RM. + (Analyze_Subprogram_Body_Helper): Update references + to SPARK RM. + * sem_ch7.adb (Analyze_Package_Body_Helper): Update references + to SPARK RM. + * sem_prag.adb (Check_Ghost_Constituent): Update references to + SPARK RM. + * sem_res.adb (Check_Ghost_Policy): Update references to SPARK RM. + (Resolve_Actuals): Ensure that the actual parameter of a Ghost + subprogram whose formal is of mode IN OUT or OUT is Ghost. + * sem_util.adb (Check_Ghost_Completion): Update references to + SPARK RM. + +2014-11-07 Ed Schonberg + + * exp_ch7.adb (Make_Final_Call): If type of designated object is + derived from that of the formal of the Deep_Finalize procedure, + add an unchecked conversion to prevent spurious type error. + +2014-11-07 Robert Dewar + + * table.adb, inline.adb, einfo.adb, gnat1drv.adb, exp_ch13.adb, + exp_fixd.adb, prj-conf.adb, exp_strm.adb, a-cofove.adb, exp_ch3.ads: + Minor reformatting. + +2014-11-07 Robert Dewar + + * sem_ch12.adb, sem_ch13.adb, prj-tree.adb: Minor reformatting. + +2014-11-07 Hristian Kirtchev + + * einfo.adb (Set_Is_Checked_Ghost_Entity, + Set_Is_Ignored_Ghost_Entity): Add exceptions to the assertion + check. + * sem_ch6.adb (Check_Conformance): Consider only + source subprograms when checking for Ghost conformance. + * sem_prag.adb (Analyze_Pragma): Handle the case + where pragma Ghost applies to a stand alone subprogram body that + acts as a compilation unit. + * sem_res.adb: Minor reformatting (merge if statements). + +2014-11-07 Ed Schonberg + + * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): + Check whether underlying type is constrained before generating + the object declaration for the result object of the function. + +2014-11-07 Robert Dewar + + * freeze.adb: Code clean up. + +2014-11-07 Yannick Moy + + * a-cfdlli.ads, a-cfhama.ads, a-cfhase.ads, a-cfinve.ads, + * a-cforma.ads, a-cforse.ads, a-cofove.ads: Mark First_To_Previous, + Current_To_Last and Strict_Equal as Ghost. + +2014-11-07 Ed Schonberg + + * sem_ch3.adb: Code clean up. + +2014-11-07 Hristian Kirtchev + + * freeze.adb (Freeze_Entity): Issue an error regardless of the + SPARK_Mode when a ghost type is effectively volatile. + * sem_ch3.adb (Analyze_Object_Contract): Decouple the checks + related to Ghost from SPARK_Mode. + * sem_res.adb (Check_Ghost_Policy): Issue an error regardless + of the SPARK_Mode when the Ghost policies do not match. + * sem_util.adb (Check_Ghost_Completion): Issue an error regardless + of the SPARK_Mode when the Ghost policies do not match. + +2014-11-07 Ed Schonberg + + * sem_ch5.adb (Analyze_Iterator_Specification): return if name + in iterator does not have any usable aspect for iteration. + +2014-11-07 Ed Schonberg + + * sem_ch6.adb (Analyze_Null_Procedure): Reject a null procedure + that there is a previous null procedure in scope with a matching + profile. + +2014-11-07 Hristian Kirtchev + + * atree.adb (Copy_Separate_Tree): Copy the aspect specifications. + * inline.adb (Has_Some_Contract): Do the check only when the + related entity has been analyzed. + +2014-11-07 Ed Schonberg + + * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Integer): + If the restriction No_Floating_Point is in effect, and the + operands have the same type, introduce a temporary to hold + the fixed point result, to prevent the use of floating-point + operations at run-time. + +2014-11-07 Robert Dewar + + * freeze.adb (Check_Address_Clause): Minor reformatting + (Find_Constant): Minor reformatting. + (Freeze_Array_Type): Modify check for packed declarations. + (Freeze_Entity): Minor reformatting. + +2014-11-05 Eric Botcazou + + * gnatvsn.ads (Library_Version): Bump to 5.0. + +2014-11-05 Eric Botcazou + + * gcc-interface/trans.c (Subprogram_Body_to_gnu): For a function with + copy-in/copy-out parameters and which returns by invisible reference, + do not create the variable for the return value; instead, manually + generate the indirect copy out statements on exit. + (gnat_to_gnu) : Adjust accordingly and build + a simple indirect assignment for the return value. + +2014-11-05 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : For a + derived untagged type that renames discriminants, be prepared for + a type derived from a private discriminated type when changing the + type of the stored discriminants. + +2014-11-05 Eric Botcazou + + * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): Set + the SLOC of the node on the call to set_jmpbuf_address_soft emitted + on block entry with SJLJ. + +2014-11-05 Eric Botcazou + + * gcc-interface/utils.c (create_subprog_decl): Move code dealing with + conflicting inlining status of nested subprograms to... + * gcc-interface/trans.c (check_inlining_for_nested_subprog): ...here. + (Attribute_to_gnu) : Call it. + (Call_to_gnu): Likewise. + (Subprogram_Body_to_gnu): Drop the body if it is an inlined external + function that has been marked uninlinable. + +2014-10-31 Hristian Kirtchev + + * aspects.adb Add an entry for aspect Ghost in table + Canonical_Aspect. + * aspects.ads Add an entry for aspect Ghost in tables + Aspect_Argument, Aspect_Delay, Aspect_Id, Aspect_Names and + Implementation_Defined_Aspect. + * einfo.adb: Flags 277 and 278 are now in use. + (Is_Checked_Ghost_Entity): New routine. + (Is_Ghost_Entity): Removed. + (Is_Ghost_Subprogram): Removed. + (Is_Ignored_Ghost_Entity): New routine. + (Set_Is_Checked_Ghost_Entity): New routine. + (Set_Is_Ignored_Ghost_Entity): New routine. + (Write_Entity_Flags): Output flags Is_Checked_Ghost_Entity and + Is_Ignored_Ghost_Entity. + * einfo.ads: Add new flags Is_Checked_Ghost_Entity + and Is_Ignored_Ghost_Entity along with usage in nodes. + (Is_Checked_Ghost_Entity): New routine and pragma Inline. + (Is_Ghost_Entity): Removed along with synthesized flag + description and usage in nodes. + (Is_Ghost_Subprogram): Removed along with synthesized flag description + and usage in nodes. + (Is_Ignored_Ghost_Entity): New routine and pragma Inline. + (Set_Is_Checked_Ghost_Entity): New routine and pragma Inline. + (Set_Is_Ignored_Ghost_Entity): New routine and pragma Inline. + * freeze.adb (Freeze_Entity): A Ghost type cannot be effectively + volatile. + * par-prag.adb Pragma Ghost does not need special handling by + the parser. + * repinfo.adb (List_Mechanisms): Remove the entry for convention Ghost. + * sem_attr.adb (Analyze_Access_Attribute): Remove obsolete check. + * sem_ch3.adb (Analyze_Full_Type_Declaration): Mark + the type as Ghost when its enclosing context is Ghost. + (Analyze_Incomplete_Type_Decl): Mark the type as Ghost when + its enclosing context is Ghost. + (Analyze_Number_Declaration): Mark the number as Ghost when its + enclosing context is Ghost. + (Analyze_Object_Declaration): Mark the object as Ghost when its + enclosing context is Ghost. Verify the Ghost policy between + initial declaration and completion of a deferred constant. + (Analyze_Object_Contract): A Ghost variable cannot be effectively + volatile, imported or exported. + (Build_Derived_Record_Type): Mark a type extension as Ghost when it + implements a Ghost interface. + (Build_Record_Type): Inherit volatility and "ghostness" from + the parent type. + (Check_Completion): A Ghost entity declared + in a non-Ghost package does not require completion in a body. + (Implements_Ghost_Interface): New routine. + (Process_Full_View): Inherit "ghostness" from the partial view. Verify + the Ghost policy between the partial and full views. Verify the + completion of a Ghost type extension. + * sem_ch4.adb (Check_Ghost_Subprogram_Call): Removed. + * sem_ch5.adb (Analyze_Assignment): Analyze the left hand side first. + * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Mark + the subprogram as Ghost when its enclosing context is Ghost. + (Analyze_Generic_Subprogram_Body): Mark the generic body as Ghost + when its enclosing context is Ghost. Verify the Ghost policy + between the spec and body. + (Analyze_Subprogram_Body_Helper): Mark the body as Ghost when its + enclosing context is Ghost. Verify the Ghost policy between the spec + and body. + (Check_Conformance): A Ghost subprogram profile and a non-Ghost + subprogram profile are not subtype conformant. + (Convention_Of): Removed. + * sem_ch7.adb (Analyze_Package_Body_Helper): Inherit the + "ghostness" from the spec. Verify the Ghost policy between + the spec and body. + (Analyze_Private_Type_Declaration): Mark the type as Ghost when its + enclosing context is Ghost. + (Requires_Completion_In_Body): New routine. + (Unit_Requires_Body): Use Requires_Completion_In_Body. + (Unit_Requires_Body_Info): Rename formal parameter P to Pack_Id, update + comment on usage and all uses of P in the body. Use + Requires_Completion_In_Body. + * sem_ch7.ads (Unit_Requires_Body): Rename formal parameter P + to Pack_Id, update comment on usage and all uses of P in the body. + * sem_ch8.adb (Analyze_Exception_Renaming): Inherit the "ghostness" + from the renamed excention. + (Analyze_Generic_Renaming): Inherit the "ghostness" from the + renamed generic subprogram. + (Analyze_Object_Renaming): Inherit the "ghostness" from the renamed + object. + (Analyze_Package_Renaming): Inherit the "ghostness" from the + renamed package. + (Analyze_Subprogram_Renaming): Inherit the "ghostness" from the + renamed subprogram. + * sem_ch11.adb (Analyze_Exception_Declaration): Mark an exception + as Ghost when its enclosing context is Ghost. + * sem_ch12.adb (Analyze_Generic_Package_Declaration, + Analyze_Generic_Subprogram_Declaration): Mark an exception as + Ghost when its enclosing context is Ghost. + (Preanalyze_Actuals): Remove obsolete check. + * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing + for aspect Ghost. + (Check_Aspect_At_Freeze_Point): Aspects + Depends and Global do no need special checking at freeze point. + (Insert_After_SPARK_Mode): Update comment on usage. + * sem_mech.adb (Set_Mechanisms): Remove the entry for convention Ghost. + * sem_prag.adb Add an entry for pragma Ghost in table Sig_Flags. + (Analyze_Abstract_State): Update the grammar of the pragma. Add + formal parameter Pack_Id along with comment on usage. Mark an + abstract state as Ghost when its enclosing context is Ghost. Add + processing for option Ghost. + (Analyze_Constituent): Verify + that a Ghost abstract state is refined by Ghost constituents. + (Analyze_Pragma): "Ghost" is now a valid policy. Add checks + related to the use and placement of Check_Policy Ghost. Add + processing for pragma Ghost. + (Check_Ghost_Constituent): New routine. + (Is_Valid_Assertion_Kind): "Ghost" is now a valid assertion. + (Process_Convention): Remove obsolete check. + (Set_Convention_From_Pragma): Remove the processing for convention + Ghost. + * sem_res.adb (Check_Ghost_Context): New routine. + (Resolve_Call): Verify that a reference to a Ghost entity appears in a + suitable context. Verify the Ghost polity between point of declaration + and point of use. + (Resolve_Entity_Name): Verify that a reference to + a Ghost entity appears in a suitable context. Verify the Ghost + polity between point of declaration and point of use. + * sem_util.adb (Check_Ghost_Completion): New routine. + (Check_Ghost_Derivation): New routine. + (Incomplete_Or_Partial_View): New routine. + (Incomplete_Or_Private_View): Removed. + (Is_Ghost_Entity): New routine. + (Is_Ghost_Statement_Or_Pragma): New routine. + (Is_Subject_To_Ghost): New routine. + (Policy_In_Effect): New routine. + (Set_Is_Ghost_Entity): New routine. + (Within_Ghost_Scope): New routine. + * sem_util.ads (Check_Ghost_Completion): New routine. + (Check_Ghost_Derivation): New routine. + (Incomplete_Or_Partial_View): New routine. + (Incomplete_Or_Private_View): Removed. + (Is_Ghost_Entity): New routine. + (Is_Ghost_Statement_Or_Pragma): New routine. + (Is_Subject_To_Ghost): New routine. + (Policy_In_Effect): New routine. + (Set_Is_Ghost_Entity): New routine. + (Within_Ghost_Scope): New routine. + * snames.adb-tmpl (Get_Convention_Id): Remove the entry for + convention Ghost. + (Get_Convention_Name): Remove the entry for convention Ghost. + * snames.ads-tmpl Remove the convention id for Ghost. Add a + pragma id for Ghost. + +2014-10-31 Sergey Rybin + + * gnat_ugn.texi: Add description of --RTS option for ASIS tools. + +2014-10-31 Olivier Hainque + + * gcc-interface/Makefile.in (arm-vxworks): Update target pairs. + +2014-10-31 Vincent Celier + + * prj-part.adb (Parse_Single_Project): Call Set_Display_Name_Of. + * prj-proc.adb (Recursive_Process): Call Display_Name_Of to + get the project Display_Name. + * prj-tree.adb (Display_Name_Of): New function + (Set_Display_Name_Of): New procedure. + (Create_Project): Call Set_Display_Name_Of. + * prj-tree.ads (Display_Name_Of): New function. + (Set_Display_Name_Of): New procedure. + (Project_Node_Record): New component Display_Name. + (Project_Name_And_Node): Remove component Display_Name. + * prj-conf.adb (Parse_Project_And_Apply_Config): Use the full + Config_File_Path as the Config_File_Name, not just its simple + name. + +2014-10-31 Thomas Quinot + + * get_scos.adb: Minor reformatting. + +2014-10-31 Ed Schonberg + + * exp_ch5.adb (Expand_Formal_Container_Loop): Create block to + capture declaration for cursor to prevent spurious errors when + several formal iterators that use the same cursoe name appear + in the same context. + +2014-10-31 Vincent Celier + + * prj-proc.adb (Recursive_Process): Make sure that the project + display name is never No_Name. + +2014-10-31 Ed Schonberg + + * sem_attr.adb (Analyze_Access_Attribute): Do not emit error + message if reference does not come from source, as in the case + for the controlling argument of a dispatching call. Error is + diagnosed when call is resolved. + * sem_ch4.adb (Complete_Object_Operation); Fix incorrect RM + reference in error message. + * sem_res.adb (Check_Prefixed_Call): ditto. + +2014-10-31 Yannick Moy + + * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): Do not + suppress checks when pragma Restrictions (No_Exception) is used in + CodePeer or GNATprove mode. + +2014-10-31 Yannick Moy + + * gnat1drv.adb (Adjust_Global_Switches): Explicitly mark language + checks as not suppressed in GNATprove mode. + +2014-10-31 Ed Schonberg + + * sem_elab.adb (Check_Elab_Call): Nothing to check if call is + being pre-analyzed. + * sem_ch3.adb (Complete_Private_Subtype): If all rep items of full + view are those of the base, use rep_item chain of partial view, + which may include aspects. + * sem_cat.adb (Is_non_Remote_Access_Type): Use underlying type + of base type, to handle properly declared subtypes. + +2014-10-31 Ed Schonberg + + * sem_ch12.adb (Analyze_Generic_Package_Declaration): If there + is a default storage pool, add a corresponding aspect to the + generic unit, to be used at the point of instantiation. + (Analyze_Package_Instantiation): If generic unit has aspect + specifications, propagate them to instance. If instance has a + Default_Storage_Pool aspect, make sure that it overrides the + one that may be inherited from the generic. + +2014-10-31 Vincent Celier + + * prj-attr.adb: Minor removal of attributes of package Linker + that have never been used and never been documented. + * projects.texi: Add documentation for attribute Runtime. + * prj-nmsc.adb (Check_Configuration): Do not report a warning + for unknown compilers when the project is externally built. + +2014-10-31 Vasiliy Fofanov + + * prj-conf.adb (Do_Autoconf): Refactor the code so that empty + Normalized_Pathname doesn't inhibit the custom Selected_Target + value. + * prj-conf.adb (Parse_Project_And_Apply_Config): Make sure that + Automatically_Generated is correctly set after the first call + to Process_Project_And_Apply_Config and not modified after the + second call, if any. + +2014-10-31 Yannick Moy + + * Makefile.rtl, gnat_rm.texi, impunit.adb: Add mention of new library + files. + * a-cfinve.adb, a-cfinve.ads: New unit for formal indefinite + vectors, suitable for use in client SPARK code, also more + efficient than the standard vectors. + * a-coboho.adb, a-coboho.ads New unit for bounded holders, that + are used to define formal indefinite vectors in terms of formal + definite ones. + * a-cofove.adb, a-cofove.ads: Simplification of the API of formal + definite vectors, similar to the API of the new indefinite ones. A + new formal parameter of the generic unit called Bounded allows + to define growable vectors that use dynamic allocation. + +2014-10-31 Vincent Celier + + * prj-conf.adb (Look_For_Project_Paths): New procedure + (Parse_Project_And_Apply_Config): Initially, parse the project + files ignoring missing withs. If there are missing withs, extend + the project path with directories rooted at the compiler roots, + including directories rooted at the runtime roots, if there are + non default runtimes, in the PATH orser. + * prj-env.adb (Initialize_Default_Project_Path): Do not add + any directory from the prefix if the target is "-". + * prj-part.adb (Parse): Initialize the tables, as Parse may be + call several times by gprbuild. + * prj.adb (Update_Ignore_Missing_With): New procedure. + +2014-10-31 Ed Schonberg + + * sem_aux.adb (First_Stored_Discriminant, + Has_Completely_Hidden_Discriminant): When scanning the list of + discriminants to locate possibly hidden (inherited) discriminants, + ignore itypes that may appear in the entity list, when an access + discriminants is constrained by an access attribute reference. + +2014-10-31 Javier Miranda + + * freeze.adb (Freeze_Record_Type): Add missing + check to verify that all the primitives of an interface type + are abstract or null procedures. + +2014-10-31 Vincent Celier + + * s-os_lib.adb, s-os_lib.ads: New function Non_Blocking_Spawn that + redirects standard output and standard error to two different files. + +2014-10-31 Bob Duff + + * makeutl.ads: Minor comment fix. + +2014-10-31 Arnaud Charlet + + * system-linux-x86_64.ads, system-mingw-x86_64.ads (Word_Size, + Memory_Size): Use Standard'Word_Size so that the value can be changed + via a target configuration file. + +2014-10-31 Eric Botcazou + + * exp_ch4.adb: Minor tweak. + +2014-10-31 Eric Botcazou + + * sem_ch12.adb (Analyze_Package_Instantiation): Do not inline with + back-end inlining. + (Must_Inline_Subp): Delete. + * sem_util.ads, sem_util.adb (Must_Inline): Likewise. + +2014-10-31 Ed Schonberg + + * freeze.adb (Freeze_Entity): A default_pool does not apply to + internal access types generated for 'access references. + * sem_prag (Analyze_Pragma, case Default_Pool): If the name is + not null it must designate a variable. + +2014-10-31 Eric Botcazou + + * inline.adb: Minor reformatting. + +2014-10-31 Ed Schonberg + + * sem_ch3.adb (Build_Derived_Private_Type): If the derived + type has access discriminants, create itype references for their + anonymous types, so that they are elaborated before the generated + bodies for the primitive operations of the type. + +2014-10-31 Tristan Gingold + + * prj-conf.adb (Locate_Runtime): Remove procedure. + +2014-10-31 Eric Botcazou + + * inline.adb (Has_Excluded_Declaration): With back-end inlining, + only return true for nested packages. + (Cannot_Inline): Issue errors/warnings whatever the optimization level + for back-end inlining and remove assertion. + +2014-10-31 Sergey Rybin + + * table.adb (Tree_Read, Tree_Write): Use parentheses to specify + the desired order of '*' and '/' operations to avoid overflow. + +2014-10-31 Eric Botcazou + + * exp_ch6.adb (Do_Inline): Remove unreachable code. + (Do_Inline_Always): Likewise. + +2014-10-31 Vincent Celier + + * prj-nmsc.adb (Check_Stand_Alone_Library): Change error message + when library has no Ada interfaces and Library_Standalone is + declared. + +2014-10-31 Arnaud Charlet + + * sem_ch13.adb (Check_Constant_Address_Clause): Disable checks + on address clauses in CodePeer mode. + +2014-10-31 Javier Miranda + + * inline.adb (Expand_Inlined_Call): Do not skip + inlining of calls to subprogram renamings. + +2014-10-31 Hristian Kirtchev + + * sem_res.adb (Resolve_Entity_Name): Account for + the case where the immediate parent of a reference to an entity + is a parameter association. + +2014-10-31 Eric Botcazou + + * inline.adb (Check_And_Split_Unconstrained_Function): Do not + test for the presence of nested subprograms. + +2014-10-31 Ed Schonberg + + * aspects.ads, aspects.adb: Add aspect Default_Storage_Pool. + * sem_ch13.adb (Analyze_One_Aspect): Generate pragma for aspect + Default_Storage_Pool. + +2014-10-31 Eric Botcazou + + * sem_ch6.adb: Remove obsolete comment. + +2014-10-31 Olivier Hainque + + * g-allein.ads: bind vec_sld for pixels to 8hi vsldoi instead + of 4si, as pixels are short. + +2014-10-31 Ed Schonberg + + * sem_res.adb (Resolve_Call): Do not reject a call to a protected + operation in the spec of a protected type, when the call appears + in a pre/postcondition for another protected operation. + +2014-10-31 Tristan Gingold + + * prj-conf.adb: Locate_Runtime: Always search the runtime in + project path. + +2014-10-31 Eric Botcazou + + * inline.adb (Check_Package_Body_For_Inlining): Adjust previous + change to use correct idiom for back-end inlining. + +2014-10-31 Ed Schonberg + + * freeze.adb (Freeze_Record_Type): Do not check component size + if its type is generic. + +2014-10-31 Bob Duff + + * gnat_rm.texi: Fix documentation w.r.t -gnatw.w. + +2014-10-31 Ed Schonberg + + * sem_ch4.adb (Try_Container_Indexing): Use Check_Implicit_Dereference. + * sem_util.adb (Check_Implicit_Dereference): a) Handle generalized + indexing as well as function calls. b) If the context is a + selected component and whe are in an instance, remove entity from + selector name to force resolution of the node, so that explicit + dereferences can be generated in the instance if they were in + the generic unit. + +2014-10-31 Eric Botcazou + + * inline.adb (Back_End_Cannot_Inline): Delete. + (Add_Inlined_Subprogram): Do not call it. + +2014-10-31 Ed Schonberg + + * exp_ch3.ads (Make_Tag_Assignment): New function, used to + re-initialize the tag in a tagged object declaration with + initial value. + * exp_ch3.adb (Expand_N_Object_Declaration): Use + Make_Tag_Assignment to simplify code for a tagged object + declaration. + * exp_ch13.adb (Expand_Freeze_Entity): Analyze freeze actions + for the freeze node of an object. + * freeze.adb (Check_Address_Clause): Use Make_Tag_Assignment when + needed to extend Freeze_Actions for a tagged object declaration. + +2014-10-31 Eric Botcazou + + * gnat_ugn.texi: Further minor improvement to -flto entry. + +2014-10-31 Gary Dismukes + + * g-dynhta.adb, g-dynhta.ads: Minor typo fixes and reformatting. + +2014-10-30 Ed Schonberg + + * exp_ch3.adb (Expand_N_Object_Declaration): Code cleanup. + +2014-10-30 Ed Schonberg + + * sem_ch5.adb (Analyze_Iterator_Specification): If a subtype + indication is provided, check properly that it covers the element + type of of the container type. + +2014-10-30 Hristian Kirtchev + + * g-dynhta.ads, g-dynhta.adb: Add the implementation of a load facto + -based hash table. + +2014-10-30 Ed Schonberg + + * exp_util.ads, exp_util.adb (Following_Address_Clause): Modify + Has_Following_Address_Clause so that it returns the address + clause if present, rather than a boolean value. + * sem_ch3.adb (Analyze_Object_Declaration): use + Following_Address_Clause. + * exp_ch3.adb (Expand_N_Object_Declaration): When a tagged object + is initialized, insert tag assignment after object is frozen, + which may be after an address clause that follows the declaration. + +2014-10-30 Tristan Gingold + + * system-darwin-x86.ads, system-linux-s390x.ads, system-linux-alpha.ads, + system-vxworks-arm.ads, system-freebsd-x86_64.ads, + system-linux-hppa.ads, system-linux-s390.ads, + system-solaris-sparcv9.ads, system-mingw.ads, system-linux-ia64.ads, + system-vxworks-sparcv9.ads, system-linux-ppc.ads, system-aix64.ads, + system-linux-sh4.ads, system-solaris-x86.ads, system-linux-x86_64.ads, + system-linux-x86.ads, system-vxworks-ppc.ads, system-hpux.ads, + system-linux-armel.ads, system-darwin-ppc.ads, system-solaris-sparc.ads, + system-vxworks-m68k.ads, system-hpux-ia64.ads, system.ads, + system-solaris-x86_64.ads, system-mingw-x86_64.ads, + system-vxworks-mips.ads, system-linux-sparc.ads, system-freebsd-x86.ads, + system-aix.ads, system-darwin-x86_64.ads, system-vxworks-x86.ads: Add + pragma No_Elaboration_Code_All. + +2014-10-30 Eric Botcazou + + * gnat_ugn.texi: Minor improvement to -flto entry. + +2014-10-30 Hristian Kirtchev + + * sem_util.adb (Inherit_Subprogram_Contract): + Add a guard to protect against enumeration literal overriding. + * sem_ch3.adb, sem_ch4.adb, sem_res.adb, sem_util.adb: + Minor reformatting (add SPARK RM references). + +2014-10-30 Robert Dewar + + * exp_dbug.adb, opt.ads: Minor reformatting. + +2014-10-30 Yannick Moy + + * inline.adb (Has_Single_Return_In_GNATprove_Mode): + Return False when return statement is inside one or more blocks. + +2014-10-30 Hristian Kirtchev + + * exp_ch7.adb (Is_Subprogram_Call): Account for the case where an + object declaration initialized by a function call that returns + an unconstrained result may be rewritted as a renaming of the + secondary stack result. + +2014-10-30 Hristian Kirtchev + + * aspects.adb: Add an entry for aspect Extensions_Visible in + table Canonical_Aspect. + * aspects.ads: Add entry for aspect Extensions_Visible in + tables Aspect_Argument, Aspect_Delay, Aspect_Id, Aspect_Names, + Implementation_Defined_Aspect. + * einfo.adb (Get_Pragma): Include pragma Extensions_Visible in + the list of contract pragmas. + * par-prag.adb Pragma Extensions_Visible does not require special + processing from the parser. + * sem_ch3.adb (Analyze_Object_Declaration): Prevent an + implicit class-wide conversion of a formal parameter + of a specific tagged type whose related subprogram is + subject to pragma Extensions_Visible with value "False". + (Check_Abstract_Overriding): Add various overriding checks + related to pragma Extensions_Visible. + (Derive_Subprogram): + A subprogram subject to pragma Extensions_Visible with value + False requires overriding if the subprogram has at least one + controlling OUT parameter. + (Is_EVF_Procedure): New routine. + * sem_ch4.adb (Analyze_Type_Conversion): A formal parameter of + a specific tagged type whose related subprogram is subject to + pragma Extensions_Visible with value "False" cannot appear in + a class-wide conversion. + * sem_ch6.adb (Analyze_Subprogram_Contract): Remove + the assertion to account for pragma Extensions_Visible. + (Check_Overriding_Indicator): An overriding subprogram + inherits the contact of the overridden subprogram. + (New_Overloaded_Entity): An overriding subprogram inherits the + contact of the overridden subprogram. + * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing + for aspect Extensions_Visible. + (Check_Aspect_At_Freeze_Point): Aspect Extensions_Visible does not + require special processing at the freeze point. + * sem_prag.adb Add an entry for pragma Extensions_Visible in + table Sig_Flags. + (Analyze_Pragma): Ensure that various SPARK + pragmas lack identifiers in their arguments. Add processing for + pragma Extensions_Visible. + (Chain_CTC): Code reformatting. + * sem_res.adb (Resolve_Actuals): A formal parameter of a + specific tagged type whose related subprogram is subject to + pragma Extensions_Visible with value "False" cannot act as an + actual in a subprogram with value "True". + * sem_util.adb (Add_Classification): New routine. + (Add_Contract_Item): Account for pragma Extensions_Visible. Code + reformatting. + (Add_Contract_Test_Case): New routine. + (Add_Pre_Post_Condition): New routine. + (Extensions_Visible_Status): New routine. + (Inherit_Subprogram_Contract): New routine. + (Is_EVF_Expression): New routine. + (Is_Specific_Tagged_Type): New routine. + * sem_util.ads Add type Extensions_Visible_Mode and document all values. + (Add_Contract_Item): Add pragma Extensions_Visible to the + comment on usage. + (Inherit_Subprogram_Contract): New routine. + (Is_EVF_Expression): New routine. + (Is_Specific_Tagged_Type): New routine. + * sinfo.adb (Is_Inherited): New routine. + (Set_Is_Inherited): New routine. + * sinfo.ads Add flag Is_Inherited along with its usage in + nodes. + (Is_Inherited): New routine along with pragma Inline. + (Set_Is_Inherited): New routine along with pragma Inline. + * snames.ads-tmpl: Add predefined name "Extensions_Visible" + and a new Pragma_Id for the pragma. + +2014-10-30 Vincent Celier + + * prj-proc.adb (Process_Case_Construction): Do not look for + the ultimate extending project for a case variable. + +2014-10-30 Pierre-Marie Derodat + + * exp_dbug.adb, opt.ads (GNAT_Encodings): Import from C. Define + enumerators. + (gnat_encodings): Define a dummy variable for the AAMP back-end. + (Get_Encoded_Name): When -fgnat-encodings=all|gdb, encode names + for all discrete types whose bounds do not match size and do so + only for biased types when -fgnat-encodings=minimal. + * gcc-interface/decl.c (gnat_to_gnu_entity): Do not create ___XA + parallel types when array bounds are constant while the lower bound is + not 1. Also stop generating them because the bound type is + larger than sizetype. + * gcc-interface/misc.c (gnat_encodings): New. + +2014-10-30 Thomas Quinot + + * opt.adb (Set_Opt_Config_Switches): For an internal unit, + always reset Default_SSO to ' '. + +2014-10-30 Thomas Quinot + + * freeze.adb (Freeze_Record_Type): Set SSO from default before + checking SSO consistency. + +2014-10-30 Javier Miranda + + * inline.adb (Check_Package_Body_For_Inlining): + Cleanup this subprogram to implement exactly the behavior + documented in the spec. + +2014-10-30 Hristian Kirtchev + + * a-comutr.adb, a-cimutr.adb (Insert_Child): Add new variable First. + Update the position after all insertions have taken place. + +2014-10-30 Ed Schonberg + + * sem_prag.adb (Analyze_Pragma, case License): Do not perform + analysis of pragma arguments when in CodePeer mode, pragma has + different format on other compilers. + +2014-10-30 Thomas Quinot + + * s-os_lib.adb: Minor reformatting. + +2014-10-29 Richard Sandiford + + * gcc-interface/decl.c, gcc-interface/gigi.h, gcc-interface/misc.c, + gcc-interface/trans.c, gcc-interface/utils.c, gcc-interface/utils2.c: + Remove redundant enum from machine_mode. + +2014-10-28 Andrew MacLeod + + * gcc-interface/trans.c: Adjust include files. + * gcc-interface/utils.c: Ditto. + +2014-10-27 Eric Botcazou + + * gcc-interface/utils.c (create_subprog_decl): Adjust condition. + +2014-10-27 Eric Botcazou + + * gcc-interface/misc.c (gnat_init_options_struct): Parameterize errno + support here instead of... + Do not set flag_delete_dead_exceptions to 1 unconditionally. + (gnat_init_gcc_eh): Set flag_delete_dead_exceptions to 1. + (gnat_init_gcc_fp): ...here. + +2014-10-27 Eric Botcazou + + * gcc-interface/trans.c (gnat_to_gnu) : Minor tweaks. + +2014-10-27 Eric Botcazou + + * gcc-interface/utils.c (create_var_decl_1): For a variable declared + in the unit, set TREE_PUBLIC only if it has static storage duration. + +2014-10-27 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Apply special treatment + of derived packed array types to constrained subtypes only. + +2014-10-27 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Remove + superfluous computation for the max size. + : Likewise. Make sure that the max size calculation + does not overflow at compile time. + +2014-10-23 Ed Schonberg + + * sem_eval.adb (Check_Non_Static_Context): Do not set + Is_Machine_Number on a literal of a fixed-point type. + +2014-10-23 Robert Dewar + + * mlib-prj.adb, sem_ch4.adb, exp_ch3.adb: Minor reformatting. + +2014-10-23 Pierre-Marie Derodat + + * exp_dbug.ads: Update ___XA parallel type specification. + +2014-10-23 Hristian Kirtchev + + * sem_ch3.adb (Copy_Array_Subtype_Attributes): Inherit the rep + chain of the source type. + * sem_ch13.adb (Analyze_Aspect_Specifications): Minor + reformatting of an error message. + * sem_util.adb (Inherit_Rep_Item_Chain): Do not inherit a rep + chain that has been inherited already. + +2014-10-23 Ed Schonberg + + * sem_ch6.adb (Analyze_Expression_Function): Simplify analysis + in generic context, and generate body in this case as well, + to simplify ASIS traversals on the construct. + +2014-10-23 Ed Schonberg + + * sem_ch4.adb (Complete_Object_Operation): Indicate that the + scope of the operation (s) is referenced, to prevent spurious + warnings about unused units. + +2014-10-23 Johannes Kanig + + * errout.adb (Error_Msg_Internal): Copy check flag, increment + check msg count. + * erroutc.adb (Delete_Msg) adjust check msg count. + (Output_Msg_Text) handle check msg case (do nothing). + (Prescan_Message) recognize check messages with severity prefixes. + * errutil.adb (Error_Msg) handle check flag, adjust counter. + +2014-10-23 Ed Schonberg + + * sem_eval.adb (Subtypes_Statically_Match): For a generic actual + type, check for the presence of discriminants in its parent type, + against the presence of discriminants in the context type. + +2014-10-23 Tristan Gingold + + * adaint.c: __gnat_get_file_names_case_sensitive: Default is + true on arm-darwin. + +2014-10-23 Arnaud Charlet + + * pprint.adb (Expression_Image): Add handling of quantifiers. + +2014-10-23 Ed Schonberg + + * exp_pakd.adb (Expand_Packed_Element_Reference): If the + prefix is a source entity, generate a reference to it before + transformation, because rewritten node might not generate a + proper reference, leading to spurious warnings. + +2014-10-23 Tristan Gingold + + * init.c: Fix thinko in previous patch. + +2014-10-23 Hristian Kirtchev + + * sem_ch3.adb (Decimal_Fixed_Point_Type_Declaration): + Inherit the rep chain of the implicit base type. + (Floating_Point_Type_Declaration): Inherit the rep chain of the + implicit base type. + (Ordinary_Fixed_Point_Type_Declaration): Inherit the rep chain of the + implicit base type. + (Signed_Integer_Type_Declaration): Inherit the rep chain of the + implicit base type. + * sem_util.ads, sem_util.adb (Inherit_Rep_Item_Chain): New routine. + +2014-10-23 Pascal Obry + + * g-regist.adb, g-regist.ads: Add support for reading 32bit or 64bit + view of the registry. + +2014-10-23 Ed Schonberg + + * exp_ch3.adb (Expand_N_Object_Declaration): If type is abstract, + return without expanding expression, to prevent subsequent crash. + * freeze.adb: better error message for illegal declaration. + +2014-10-23 Hristian Kirtchev + + * sysdep.c (__gnat_localtime_tzoff): Properly delimit the + substring which represents the time zone on VxWorks. + +2014-10-23 Vincent Celier + + * gnatls.adb: If --RTS= was not used, check if there is a default + runtime. If there is none, in verbose mode, indicate that the + default runtime is not available and show only the current + directory in the source and the object search paths. + +2014-10-23 Ed Schonberg + + * sem_ch6.adb (Process_Formals): A thunk procedure with a + parameter of a limited view does not need a freeze node. + +2014-10-23 Hristian Kirtchev + + * sem_ch7.adb (Analyze_Package_Body_Helper): + The logic which hides local entities from external + visibility is now contained in routine Hide_Public_Entities. + (Hide_Public_Entities): New routine. Object and subprogram + renamings are now hidden from external visibility the same way + objects are. + +2014-10-23 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute): The prefix of attribute Elaborated + does not require freezing, in particular if it denotes a generic + function. + +2014-10-23 Yannick Moy + + * sem_prag.adb (Analyze_Pragma/Pragma_Inline & Pragma_Inline_Always): + Disable analysis in GNATprove mode. + +2014-10-23 Arnaud Charlet + + * mlib-prj.adb: Remove obsolete references to libdecgnat (VMS only). + +2014-10-23 Arnaud Charlet + + * gnat1drv.adb (Adjust_Global_Switches): Ignore style check + pragmas in codepeer mode. + +2014-10-23 Gary Dismukes + + * gnat_rm.texi: Minor syntax fix for pragma Annotate (missing ','). + +2014-10-23 Hristian Kirtchev + + * sem_ch12.adb (Inline_Instance_Body): Alphabetize + local variables and constants. Add constants Save_SM and Save_SMP + to capture SPARK_Mode-related attributes. Compile the inlined + body with the SPARK_Mode of the enclosing context. + +2014-10-23 Hristian Kirtchev + + * sinfo.adb (Elaboration_Boolean): Removed. + (Set_Elaboration_Boolean): Removed. + * sinfo.ads Remove attribute Elaboration_Boolean along with its + occurrence in nodes. + (Elaboration_Boolean): Removed along with pragma Inline. + (Set_Elaboration_Boolean): Removed along with pragma Inline. + +2014-10-23 Ed Schonberg + + * sem_ch3.adb (Constant_Redeclaration): Make error message more + explicit on a deferred constant whose object_definition is an + anonymous array. + +2014-10-23 Vincent Celier + + * gnatls.adb: Never call Targparm.Get_Target_Parameters. + +2014-10-23 Ed Schonberg + + * sem_ch6.adb (Analyze_Expression_Function): In a generic + context do not create a body, and only pre-analyze the expression, + which may include incomplete views. + +2014-10-23 Robert Dewar + + * sem_type.adb: Minor code reorganization (use Nkind_In, Ekind_In). + * sem_ch3.adb: Minor reformatting. + +2014-10-23 Ed Schonberg + + * sem_ch12.adb (Analyze_Associations): If an actual for a formal + object is a call to a parameterless expression function, add + the function to the list of actuals to freeze. + * freeze.adb (Check_Expression_Function): Create freeze nodes of + outer types that may be references in the body of the expression. + +2014-10-23 Hristian Kirtchev + + * exp_util.ads, checks.ads: Minor comment reformatting. + +2014-10-23 Javier Miranda + + * sem_eval (Test_In_Range): Disable removal of range_check for + VM targets. + +2014-10-23 Robert Dewar + + * erroutc.adb (Validate_Specific_Warnings): Fix test for -W + messages, which got disabled when we unconditionally added an + asterisk at the start of the string. + +2014-10-23 Vincent Celier + + * gnatls.adb: Ensure that "gnatls -l" works even when there is + no default runtime. + +2014-10-23 Eric Botcazou + + * sem_ch3.adb (Build_Derived_Private_Type): When the parent is + untagged and has discriminants, build the implicit full view after + building the derived type. Capture original declaration and type + here instead of... + (Copy_And_Build): ...here. + * sem_type.adb (Full_View_Covers): Handle the Underlying_Full_View. + +2014-10-23 Hristian Kirtchev + + * checks.adb (Ensure_Valid): Update the subprogram + profile. Propagate the contex attributes to Insert_Valid_Check. + (Insert_Valid_Check): Update the subprogram profile. Propagate + the attributes of the context to Duplicate_Subexpr_No_Checks. + (Validity_Check_Range): Update the subprogram profile. Propagate + the context attribute to Ensure_Valid. + * checks.ads (Ensure_Valid): Update the subprogram profile + along with the comment on usage. + (Insert_Valid_Check): Update the subprogram profile along with the + comment on usage. + (Validity_Check_Range): Update the subprogram profile along with + the comment on usage. + * exp_util.adb (Build_Temporary): New routine. + (Duplicate_Subexpr_No_Checks): Update the subprogram + profile. Propagate the attributes of the context to Remove_Side_Effects. + (Remove_Side_Effects): Update the subprogram profile. Update all calls + to Make_Temporary to invoke Build_Temporary. + * exp_util.ads (Duplicate_Subexpr_No_Checks): Update + the subprogram profile along with the comment on usage. + (Remove_Side_Effects): Update the subprogram profile along with + the comment on usage. + * sem_ch3.adb (Process_Range_Expr_In_Decl): Pass the subtype + to the validity check machinery. Explain the reason for this + propagation. + +2014-10-23 Robert Dewar + + * a-strsea.adb: Minor reformatting. + +2014-10-23 Thomas Quinot + + * bcheck.adb (Check_Consistent_SSO_Default): Exclude internal + units from consistency check. + * gnat_rm.texi (Default_Scalar_Storage_Order): Document that + consistency check excludes run-time units. + +2014-10-23 Ed Schonberg + + * a-strsea.adb (Find_Token): Enable constraint checking in this + procedure, so that even when compiling with checks suppressed, as is + the case for the run-time, an exception is raised in this routine when + the input meets the conditions described in RM 2005 A.4.3 (68/1). + +2014-10-20 Eric Botcazou + + * sem_ch3.adb (Build_Derived_Private_Type): When the parent + is untagged and has discriminants, build the implicit full + view even if the derived type is a completion, and make it + the Underlying_Full_View of the type. + (Copy_And_Build): Fix Is_Completion actual parameter in the calls to + Build_Derived_Type. + (Build_Derived_Record_Type): Likewise. + +2014-10-20 Ed Schonberg + + * sem_ch13.adb: Add guard to convention setting. + +2014-10-20 Robert Dewar + + * sem_ch3.adb, prj-proc.adb, prj-proc.ads, prj-conf.adb: Minor + reformatting. + +2014-10-20 Robert Dewar + + * par-prag.adb (Add_List_Pragma_Entry): New procedure. + * par.adb (P_Pragma): Document requirement to handle multiple calls. + +2014-10-20 Robert Dewar + + * sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All): + Fix error of bad inheritance of this pragma from with'ed unit. + +2014-10-20 Ed Schonberg + + * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): For a subtype, + inherit convention from parent type, because the subtype may + have been declared on a partial view, prior to the pragma on + the parent. + +2014-10-20 Olivier Hainque + Tristan Gingold + + * gcc-interface/Makefile.in: Handle arm-darwin and VxWorks 7. + Misc clean ups. + +2014-10-20 Nicolas Roche + + * gcc-interface/Make-lang.in: ensure that automatically generated + dependency are referencing generated gnatvsn rather than original + one. + +2014-10-20 Gary Dismukes + + * gnat_ugn.texi: Minor reformatting. + * sem_ch3.adb: Minor reformatting. + +2014-10-20 Vincent Celier + + * prj-attr.adb: New project level attribute Runtime. + * prj-conf.adb (Get_Project_Runtimes): New procedure to get + the attributes Runtime declared in the main project, to use + in auto-configuration. + (Get_Or_Create_Configuration_File): Call Get_Project_Runtimes. + * prj-proc.adb (Runtime_Defaults): New table to store + the default values of attributes Runtime (). + (Set_Default_Runtime_For): New procedure to store the default + value of a Runtime () in table Runtime_Defaults. + (Expression): Use the value stored in table Runtime_Defaults as + the default for Runtime (). + * prj-proc.ads (Set_Default_Runtime_For): New procedure. + * prj.ads (Attribute_Default_Value): New enumerated value + Runtime_Value. + +2014-10-20 Ed Schonberg + + * sem_ch3.adb (Analyze_Object_Declaration): If the type is + an unconstrained unchecked_union type, rewrite declaration + as a renaming to prevent attempt to retrieve non- existent + discriminants from expression. + +2014-10-20 Ed Schonberg + + * gnat_ugn.texi: Minor reformatting. + +2014-10-20 Tristan Gingold + + * init.c (__gnat_is_stack_guard): Don't use mach_vm_region_recurse on + arm-darwin. + * raise-gcc.c: Add ATTRIBUTE_UNUSED to remove warnings for + unused arguments. + +2014-10-20 Hristian Kirtchev + + * sem_attr.adb (Analyze_Attribute): Replace + variables CS and PS with Proc_Id and Subp_Id to better illustrate + their purpose. Account for the case where _Postconditions + has not been generated yet and the context is aspect/pragma + Refined_Post. In that scenario the expected prefix of attribute + 'Result is the current scope. + +2014-10-20 Robert Dewar + + * par-ch4.adb (P_Expression): Handle extraneous comma/semicolon + in middle of expression with logical operators. + +2014-10-20 Robert Dewar + + * par-ch13.adb (Possible_Misspelled_Aspect): New function. + +2014-10-20 Steve Baird + + * pprint.adb: Improve Expression_Image function. + +2014-10-20 Robert Dewar + + * gnat_rm.texi: Document No_Tagged_Streams pragma and aspect. + * snames.ads-tmpl: Add entry for pragma No_Tagged_Streams. + * aspects.ads, aspects.adb: Add aspect No_Tagged_Streams. + * einfo.adb (No_Tagged_Streams_Pragma): New field. + * einfo.ads: Minor reformatting (reorder entries). + (No_Tagged_Streams_Pragma): New field. + * exp_ch3.adb: Minor comment update. + * opt.ads (No_Tagged_Streams): New variable. + * par-prag.adb: Add dummy entry for pragma No_Tagged_Streams. + * sem.ads (Save_No_Tagged_Streams): New field in scope record. + * sem_attr.adb (Check_Stream_Attribute): Check stream ops + prohibited by No_Tagged_Streams. + * sem_ch3.adb (Analyze_Full_Type_Declaration): Set + No_Tagged_Streams_Pragma. + (Analyze_Subtype_Declaration): ditto. + (Build_Derived_Record_Type): ditto. + (Record_Type_Declaration): ditto. + * sem_ch8.adb (Pop_Scope): Restore No_Tagged_Streams. + (Push_Scope): Save No_Tagged_Streams. + * sem_prag.adb (Analyze_Pragma, case No_Tagged_Streams): Implement new + pragma. + +2014-10-20 Robert Dewar + + * sem_ch3.adb, prj-proc.adb, sem_ch4.adb, prj-env.adb, lib.ads, + sem_ch13.adb: Minor reformatting. + +2014-10-20 Javier Miranda + + * exp_ch3.adb (Expand_N_Object_Declaration): Expand the + declaration of a class-wide limited object containing an + initializing expression into a renaming declaration. Required to + avoid passing such declaration to the backend and also to avoid + generating an extra copy. + +2014-10-20 Eric Botcazou + + * inline.adb (List_Inlining_Info): Minor tweaks. + (Add_Inlined_Body): Inline the enclosing package + if it is not internally generated, even if it doesn't come + from source. + +2014-10-20 Ed Schonberg + + * sem_ch4.adb (Process_Function_Call): If the first actual + denotes a discrete type, the mode must be interpreted as a slice + of an array returned by a parameterless call. + +2014-10-20 Vasiliy Fofanov + + * prj-env.ads, prj-env.adb (Get_Runtime_Path): No longer inhibit + searching for runtime referenced by a simple name on a project path. + +2014-10-20 Olivier Hainque + + * vxworks-x86-link.spec: New file. + * system-vxworks-x86.ads: Add pragma Linker_Options to link with + vxworks-x86-link.spec. + +2014-10-20 Vincent Celier + + * opt.ads (Origin_Of_Target): New type. + (Target_Origin): New variable. + * prj-conf.adb (Parse_Project_And_Apply_Config): Record + Target_Value and Target_Origin. If target was not specified + on the command line with --target=, check if attribute Target + is declared in the main project. If it is and it is not the + native target, parse again the projects so that 'Target get + the new value. Fail if the target has changed again. Invoke + Process_Project_And_Apply_Config with Do_Phase_1 set to False + is Process_Project_Tree_Phase_1 has already been invoked. + * prj-conf.ads (Process_Project_And_Apply_Config): New Boolean + parameter Do_Phase_1, defaulted to True. + * prj-proc.adb (Expression): Check the special values and + defaults for attribute Target. + +2014-10-20 Ed Schonberg + + * sem_ch3.adb (Handle_Late_Controlled_Primitive): Do not analyze + the subprogram spec of the body in full, because it will be + reanalyzed when the declaration itself is analyzed; otherwise. a + formal may end up duplicated in the list of formals leading to + spurious conformance errors with an existing declaration. + +2014-10-20 Ed Schonberg + + * sem_ch13.adb: Improve error recovery on illegal aspect. + +2014-10-20 Arnaud Charlet + + * set_targ.adb (Write_Target_Dependent_Values, Write_Line): + Fix calling C APIs with no trailing NUL char by calling better + wrappers instead. + +2014-10-20 Tristan Gingold + + * gnat_ugn.texi: Document that gdb users must be in group + _developer on mac os. + +2014-10-20 Arnaud Charlet + + * a-tgdico.ads: Fix typo. + +2014-10-20 Ed Schonberg + + * exp_aggr.adb (Convert_To_Assignments): Do not create a + transient scope for a component whose type requires it, if the + context is an initialization procedure, because the target of + the assignment must be visible outside of the block. + +2014-10-20 Tristan Gingold + + * tracebak.c: Define PC_ADJUST for arm-darwin. + * env.c: Remove darwin specific code. + * raise-gcc.c (__gnat_Unwind_ForcedUnwind): Error on arm-darwin. + +2014-10-20 Ed Schonberg + + * sem_ch3.adb (Analyze_Full_Type_Declaration): If previous view + is incomplete rather than private, and full type declaration + has aspects, analyze aspects on the full view rather than + the incomplete view, to prevent freezing anomalies with the + class-wide type. + +2014-10-17 Robert Dewar + + * exp_ch9.adb (Expand_N_Task_Body): Add defense against + previous errors. + * freeze.adb (Freeze_Entity): Add defense against checking null + scope for generic. + * restrict.adb (Tasking_Allowed): Add test for No_Run_Time mode. + * sem_ch13.adb (Freeze_Entity_Checks): Add defense against + previous errors. + * sem_ch9.adb (Analyze_Task_Type_Declaration): Give error if + in No_Run_Time mode. + +2014-10-17 Robert Dewar + + * prj-makr.adb: Minor reformatting. + +2014-10-17 Robert Dewar + + * gnatcmd.adb, make.adb, prj-part.adb, gnatlink.adb, prj-nmsc.adb, + prj-conf.adb, prj-env.adb: Use Is_Directory_Separator where possible. + +2014-10-17 Ed Schonberg + + * exp_prag.adb (Undo_Initialization): If Initialize_Scalars + is enabled, code will be generated for some composite types + to initialize an object after its declaration. If there is + a subsequent Import pragma for the object, that code must be + removed as specified byw the semantics of the pragma, and to + prevent out-of-order elaboration issues in the back-end. + +2014-10-17 Hristian Kirtchev + + * exp_ch4.adb (Expand_N_Op_Concat): Keep concatenation operator + wrapping mechanism under debug flag -gnatd.h. + * debug.adb: Claim debug switch -gnatd.h. + +2014-10-17 Doug Rupp + + * gcc-interface/Makefile.in: Enable the socket runtime bits + for Android. + +2014-10-17 Ed Schonberg + + * sem_ch13.adb (Add_Invariants, Replace_Type_References): Do + not perform the replacement on the expression for an inherited + class-wide invariant if in ASIS_Mode and the type reference is + already the prefix of a 'Class attribute reference: the expression + has already been preanalyzed and the replacement performed when + first encountered on the declaration of the parent type. + +2014-10-17 Robert Dewar + + * sem_ch5.adb, sem_ch7.adb, prj-nmsc.adb, sem_ch13.adb, exp_ch3.adb: + Minor reformatting. + +2014-10-17 Ed Schonberg + + * exp_ch3.adb (Build_Component_Invariant_Call): Retrieve Invariant + subprogram from base type. + * sem_ch7.adb (Analyze_Package_Specification): Build invariant + subprogram for private type, not any of its subtypes. + * sem_ch13.adb (Build_Invariant_Procedure_Declaration): Set type + of procedure entity, because a call to it may be generated in + a client unit before the corresponding subprogram declaration + is analyzed. + +2014-10-17 Vincent Celier + + * prj-nmsc.adb (Get_Directories): Do not create directories + when a project is abstract. + +2014-10-17 Ed Schonberg + + * sem_ch5.adb (Analyze_Iterator_Specification): If the domain + of iteration is given by an expression that is not an array type, + verify that its type implements an iterator iterface. + +2014-10-17 Robert Dewar + + * sem_attr.adb (Eval_Attribute): Ensure that attribute + reference is not marked as being a static expression if the + prefix evaluation raises CE. + +2014-10-17 Robert Dewar + + * exp_pakd.adb: Move bit packed entity tables to spec. + * exp_pakd.ads: Move bit packed entity tables here from body. + * freeze.adb (Freeze_Array_Type): Check that packed array type + is supported. + * rtsfind.adb (PRE_Id_Table): New table (Entity_Not_Defined): + Specialize messages using PRE_Id_Table. + * uintp.ads, uintp.adb (UI_Image): New functional form. + +2014-10-17 Robert Dewar + + * aspects.ads, aspects.adb: Add Suppress_Initialization aspect. + * einfo.ads, einfo.adb (Suppress_Initialization): Now applies to + E_Variable. + * exp_ch3.adb (Default_Initialize_Object): Handle + Suppress_Initialization. + * exp_prag.adb (Expand_Pragma_Suppress_Initialization): New + procedure (Expand_N_Pragma): Handle Suppress_Initialization + (Expand_Pragma_Import_Or_Interface): Use Undo_Initialization + (Undo_Initialization): New procedure. + * sem_prag.adb (Analyze_Pragma, case Suppress_Initialization): + This is now allowed for E_Variable case. + * gnat_rm.texi: Document new aspect Suppress_Initialization + Suppress_Initialization aspect/pragma can apply to variable. + * einfo.ads: Minor reformatting. + +2014-10-17 Arnaud Charlet + + * spark_xrefs.ads: Add documentation pointer to Flow_Computed_Globals. + +2014-10-17 Robert Dewar + + * cstand.adb (Create_Standard): Mark Short_Integer as + implementation defined. + * sem_util.adb (Set_Entity_With_Checks): Avoid blow up for + compiler built with assertions for No_Implementation_Identifiers test. + +2014-10-17 Robert Dewar + + * aspects.ads: Documentation fix, aspect Lock_Free does have a + corresponding pragma. + * gnat_rm.texi: Document implementation defined boolean aspects + as boolean. + +2014-10-17 Ed Schonberg + + * sem_ch13.adb (Add_Invariants): For a class-wide type invariant, + preserve semantic information on the invariant expression + (typically a function call) because it may be inherited by a + type extension in a different unit, and it cannot be resolved + by visibility elsewhere because it may refer to local entities. + +2014-10-17 Robert Dewar + + * gnat_rm.texi: Document that string literal can be used for + pragma Warnings when operating in Ada 83 mode. + +2014-10-17 Ed Schonberg + + * freeze.adb (Find_Aggregate_Component_Desig_Type): New + subsidiary function to Freeze_ Expression, used to determine + whether an aggregate for an array of access types also freezes the + designated type, when some aggregate components are allocators. + +2014-10-17 Ed Schonberg + + * a-strsea.adb (Find_Token): AI05-031 indicates that the + procedure must raise Index_Error when Source is not empty and + the From parameter is not within the range of the Source string. + +2014-10-17 Robert Dewar + + * sem_prag.adb (Is_Static_String_Expression): Allow string + literal in Ada 83 mode. + +2014-10-17 Vincent Celier + + * prj-conf.adb (Get_Config_Switches): In CodePeer mode, do + not take into account any compiler command from package IDE. + +2014-10-17 Ed Schonberg + + * sem_ch12.adb (Build_Function_Wrapper): The formals of the + wrapper must have the same identifiers as those of the formal + subprogram, because calls within the generic may use named + associations. + +2014-10-17 Robert Dewar + + * sem_ch3.adb, a-strsea.adb: Minor reformatting. + * par-ch6.adb (P_Subprogram): Fix bad handling of null procedures. + +2014-10-17 Ed Schonberg + + * sem_ch3.adb (Build_Derived_Enumeration_Type): Propagate aspect + specfications from original type declaration to declaration of + implicit base, because original node is rewritten as a subtype + declaration on which type aspects do not belong. + +2014-10-17 Hristian Kirtchev + + * sem_ch3.adb (Propagate_Default_Init_Cond_Attributes): A derived type + inherits the attributes related to pragma Default_Initial_Condition + from its parent type. + +2014-10-17 Ed Schonberg + + * a-strsea.adb (Index - versions with a From parameter): + According to AI05-056, the Index functions with a From parameter + return 0 if the source is an empty string. + +2014-10-17 Hristian Kirtchev + + * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Disable + the consistency checks in ASIS mode. + +2014-10-17 Arnaud Charlet + + * s-expmod.ads: Minor typo fix. + +2014-10-17 Robert Dewar + + * sem_util.adb: Minor reformatting. + +2014-10-17 Ed Schonberg + + * sem_ch12.adb (Build_Function_Wrapper): Build wrappers for + actuals that are defaulted subprograms of the formal subprogram + declaration. + +2014-10-17 Robert Dewar + + * exp_ch4.adb (Expand_N_Op_Eq): Make sure we deal with the + implementation base type. + * sinfo.ads: Add a note for N_Op_Eq and N_Op_Ne that record + operands are always expanded out into component comparisons. + +2014-10-17 Robert Dewar + + * s-vallli.adb: Minor comment correction. + * s-valuti.ads: Minor comment reformatting. + +2014-10-17 Robert Dewar + + * gnat_rm.texi: Document System.Atomic_Counters. + * impunit.adb: Add System.Atomic_Counters (s-atocou.ads) to the + list of user- accessible units added as children of System. + * s-atocou.ads: Update comment. + +2014-10-17 Arnaud Charlet + + * s-expmod.ads: Add comments. + +2014-10-17 Hristian Kirtchev + + * sem_ch3.adb (Build_Derived_Record_Type): Remove the propagation + of all attributes related to pragma Default_Initial_Condition. + (Build_Derived_Type): Propagation of all attributes related + to pragma Default_Initial_Condition. + (Process_Full_View): Account for the case where the full view derives + from another private type and propagate the attributes related + to pragma Default_Initial_Condition to the private view. + (Propagate_Default_Init_Cond_Attributes): New routine. + * sem_util.adb: Alphabetize various routines. + (Build_Default_Init_Cond_Call): Use an unchecked type conversion + when calling the default initial condition procedure of a private type. + (Build_Default_Init_Cond_Procedure_Declaration): Prevent + the generation of multiple default initial condition procedures. + +2014-10-17 Robert Dewar + + * prj-conf.adb: Revert previous change. + +2014-10-17 Robert Dewar + + * lib-writ.ads, s-valdec.ads: Minor reformatting. + +2014-10-17 Ed Schonberg + + * sem_ch12.adb: Additional work on function wrappers. + +2014-10-17 Eric Botcazou + + * exp_util.adb (Possible_Bit_Aligned_Component): Also recurse + on the renamed object of renamings. + +2014-10-17 Vincent Celier + + * prj-conf.adb (Parse_Project_And_Apply_Config): In CodePeer + mode, always use the native target. + +2014-10-16 Andrew MacLeod + + * gcc-interface/misc.c: Adjust include files. + +2014-10-13 Eric Botcazou + Alan Modra + + PR ada/63225 + * uintp.adb (Vector_To_Uint): Move from here to... + * uintp.ads (UI_Vector): Make public. + (Vector_To_Uint): ...here. + +2014-10-10 Robert Dewar + + * freeze.adb, sem_attr.adb: Minor reformatting. + +2014-10-10 Johannes Kanig + + * a-cfdlli.ads, a-cfhama.ads, a-cfhase.ads, a-cforma.ads, + a-cforse.ads, a-cofove.ads: add "Default_Initial_Condition" + to container type. + +2014-10-10 Vincent Celier + + * prj-conf.adb (Do_Autoconf): In Codepeer mode, do not try to get + any configuration switches from the project file. + +2014-10-10 Ed Schonberg + + * sem_ch12.adb (Build_Wrapper): Renamed as Build_Operator_Wrapper. + (Build_Function_Wrapper): New function, to construct a wrapper + function for actuals that are functions with an arbitrary + number of parameters. Used in GNATProve mode to simplify proof + propagation in instantiations. + +2014-10-10 Robert Dewar + + * freeze.adb, gnat1drv.adb, sem_ch13.adb: Minor reformatting and + code clean up. + +2014-10-10 Hristian Kirtchev + + * sem_res.adb (Is_OK_Volatile_Context): Allow + a volatile object reference to appear as the expression of a + type conversion. + +2014-10-10 Ed Schonberg + + * sem_ch13.adb (Analyze_Aspect_Specifications, Library_Unit_Aspects): + Aspect specification is legal on a local instantiation of a + library-level generic unit. + +2014-10-10 Gary Dismukes + + * gnat1drv.adb (Adjust_Global_Switches): Set Front_End_Inlining + if inlining has been enabled via -gnatn and the target is not GCC. + +2014-10-10 Ed Schonberg + + * freeze.adb (Freeze_Entity): Freezing a subprogram does + not always freeze its profile. In particular, an attribute + reference that takes the access type does not freeze the types + of the formals. + +2014-10-10 Robert Dewar + + * errout.adb (Adjust_Name_Case): New procedure. + (Set_Msg_Node): Use Adjust_Name_Case. + * errout.ads (Adjust_Name_Case): New procedure. + * exp_intr.adb (Add_Source_Info): Minor code reorganization + (use Ekind_In). + (Write_Entity_Name): Use Errout.Adjust_Name_Case. + * sem_prag.adb (Is_Non_Significant_Pragma_Reference): Review + and fix up entries in Sig_Flags, and correct logical errors in + function itself. + * sprint.adb (Sprint_Node_Actual): Properly print string for + raise statement. + +2014-10-10 Ed Schonberg + + * sem_ch3.adb (Analyze_Object_Declaration): For an object of an + anonymous array type with delayed aspects, defer freezing of + type until object itself is frozen. + * freeze.adb (Freeze_Entity): When freezing an object of an + anonymous array type with delayed aspects, remove freeze node of + object after freezing type, to prevent out-of-order elaboration + in the back-end. The initialization call for the object has + already been constructed when expanding the object declaration. + +2014-10-10 Robert Dewar + + * exp_intr.adb (Write_Entity_Name): Moved to outer level + (Write_Entity_Name): Properly handle operator names + (Expand_Source_Info): New procedure. + * exp_intr.ads (Add_Source_Info): New procedure. + +2014-10-10 Robert Dewar + + * butil.ads: Minor reformatting. + * sem_ch5.adb: Code clean up. + +2014-10-10 Robert Dewar + + * exp_ch11.adb (Expand_N_Raise_Statement): Handle + Prefix_Exception_Messages. + * opt.adb: Handle new flags Prefix_Exception_Message[_Config]. + * opt.ads: New flags Prefix_Exception_Message[_Config]. + * par-prag.adb: New dummy entry for pragma Prefix_Exception_Messages. + * snames.ads-tmpl: Add entries for new pragma Prefix_Exception_Messages. + * sem_prag.adb: Implement new pragma Prefix_Exception_Messages + * gnat_rm.texi: Document pragma Prefix_Exception_Messages. + +2014-10-10 Gary Dismukes + + * sinfo.ads, gnat_ugn.texi, a-except.adb, a-except-2005.adb, + raise-gcc.c Spelling changes (prolog => prologue, epilog => epilogue). + +2014-10-10 Ed Schonberg + + * sem_ch5.adb (Is_Wrapped_In_Block): Handle properly blocks that + contain pragmas generated for loop invariants and type predicates. + Clarify use of this subprogram. + +2014-10-10 Yannick Moy + + * sem_prag.adb (Analyze_Global_Item): Accept formal objects in Global + contracts. + * errout.adb, errout.ads (SPARK_Msg_NE): Issue error unless + SPARK_Mode is Off. + +2014-10-10 Vadim Godunko + + * a-stwima.adb (To_Sequence): Compute size of result array. + +2014-10-10 Javier Miranda + + * gnat_ugn.texi (Interfacing with C++ at the Class Level): Update the + sources of the example to avoid a warning when the Ada files are + automatically generated by the binding generator. + +2014-10-10 Ed Schonberg + + * sem_attr.adb (Resolve_Attribute, case 'Update): Set + Do_Range_Check on the expression of a record component + association when needed, as is done for array components, when + the corresponding type is a scalar type. + +2014-10-10 Gary Dismukes + + * a-coinho-shared.adb: Minor typo fix. + * prj-env.ads: Minor reformatting. + +2014-10-10 Hristian Kirtchev + + * sem_res.adb (Resolve_String_Literal): Do not + generate a string literal subtype for the default expression of + a formal parameter in GNATprove mode. + +2014-10-10 Yannick Moy + + * errout.adb (SPARK_Msg_N): Issue error unless SPARK_Mode is Off. + +2014-10-10 Ed Schonberg + + * exp_ch5.adb (Expand_Formal_Container_Element_Loop): Analyze + declaration for loop parameter before rest of loop, and set + entity kind to prevent assignments to it in the user code. + * sem_ch3.adb (Analyze_Object_Contract): No contracts apply to the + loop parameter in an element iteration over o formal container. + +2014-10-10 Robert Dewar + + * gnat_ugn.texi: Document use of user-level routines to handle + e.g. col major arrays. + +2014-10-10 Doug Rupp + + * s-osinte-android.adb: Fix misspelling. + * gsocket.h: Tweak the Android quirks. + +2014-10-10 Robert Dewar + + * errout.ads (SPARK_Msg_N): Fix spec to match change in body. + +2014-10-10 Robert Dewar + + * sem_ch13.adb: Minor code reorganization. + +2014-10-10 Pat Rogers + + * gnat_rm.texi: Text now indicates pragma No_Run_Time is not + for users. + +2014-10-10 Vadim Godunko + + * a-coinho-shared.adb: Add minor comment. + * a-stzmap.adb (To_Sequence): Compute size of result array. + +2014-10-10 Javier Miranda + + * exp_ch3.adb (Build_Init_Procedure): Complete the condition of an + if-stmt to match its current documentation. + +2014-10-10 Robert Dewar + + * sem_ch7.adb, einfo.adb, einfo.ads, sem_prag.adb, sem_ch12.adb, + freeze.adb, sem_util.adb, sem_res.adb, exp_ch6.adb, exp_ch13.adb, + sem_ch6.adb, sem_cat.adb, sem_disp.adb + (Is_Subprogram_Or_Generic_Subprogram): New primitive. Use this primitive + throughout where appropriate. + +2014-10-10 Bob Duff + + * a-coinho-shared.ads: Minor reformatting. + * s-traceb.adb: Minor clean up. + +2014-10-10 Robert Dewar + + * ali.adb (Scan_ALI): Read and process new GP flag on ALI P line. + * ali.ads (GNATprove_Mode): New component in ALI table. + (GNATprove_Mode_Specified): New global. + * gnatbind.adb (Gnatbind): Give fatal error if any file compiled + in GNATProve mode. + * lib-writ.ads, lib-writ.adb (GP): New flag on P line for + GNATProve_Mode. + +2014-10-10 Javier Miranda + + * exp_ch3.adb (Build_Init_Procedure): Adding assertion. + (Build_Init_Statement): Ensure that statements + associated with the parent components are located at the beginning + of the returned list of statements. + +2014-10-10 Ed Schonberg + + * sem_ch13.adb (Inherit_Aspects_At_Freeze_Node): If the full + view of a private type T that has a type invariant is a scalar + or constrained array type, the base type created for the full + view has the same type invariant. + +2014-10-10 Robert Dewar + + * exp_util.ads, sem_ch12.adb, exp_util.adb, i-fortra.ads: Minor code + reorganization. + +2014-09-22 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust comment. + * gcc-interface/utils.c (gnat_write_global_declarations): Fix typo. + +2014-09-15 Jakub Jelinek + + * gcc-interface/Make-lang.in (check_acats_numbers0, + check_acats_numbers1, check_acats_numbers2, check_acats_numbers3, + check_acats_numbers4, check_acats_numbers5, check_acats_numbers6, + check_acats_numbers, check_acats_subdirs): New variables. + (check_acats_targets): Use $(check_acats_subdirs). + (check-acats, check-acats%): Rewritten so that for parallelized + testing each job runs all the chapters files, with + GCC_RUNTEST_PARALLELIZE_DIR set in environment. Prepare the support + directory sequentially and share it. + (check-acats-subtargets): Always print just check-acats. + +2014-08-25 Martin Liska + + * gcc-interface/utils.c (rest_of_subprog_body_compilation): Adjust to + new cgraph interface. + (gnat_write_global_declarations): Likewise. + +2014-08-13 Sylvestre Ledru + + * 9drpc.adb: Fix a typo + * s-interr.ads: Likewise + * s-taskin.ads: Likewise + * s-traces.ads: Likewise + * sysdep.c: Likewise + +2014-08-12 Joel Sherrill + + * socket.c: For RTEMS, use correct prototype of gethostbyname_r(). + * gsocket.h Add include of on RTEMS. + +2014-08-11 Joel Sherrill + + * s-osinte-rtems.adb: Correct formatting of line in license block. + +2014-08-04 Claire Dross + + * exp_util.adb (Get_First_Parent_With_Ext_Axioms_For_Entity): + For an instance, look at the scope before the generic parent. + +2014-08-04 Yannick Moy + + * lib-writ.ads: Update comments. + * sem_disp.ads, sem_disp.adb (Inherited_Subprograms): Add + parameters to filter inherited subprograms. + +2014-08-04 Robert Dewar + + * gnat_rm.texi: Add section on use of address clause for memory + mapped I/O. + +2014-08-04 Ed Schonberg + + * sem_ch3.adb (Analyze_Subtype_Declaration): A subtype, in + particular the subtype created for a generic actual, inherits + invariant information from the base type. + +2014-08-04 Robert Dewar + + * aspects.ads, aspects.adb: Add entries for aspect Obsolescent. + * gnat_rm.texi: Add documentation for aspect Obsolescent. + * sem_ch13.adb (Analyze_Aspect_Specifications): Implement aspect + Obsolescent. + (Check_Aspect_At_Freeze_Point): Add dummy entry for pragma Obsolescent. + * s-osprim-mingw.adb: Minor reformatting. + * sem_res.adb (Is_Atomic_Ref_With_Address): New function + (Resolve_Indexed_Component): Rework warnings for non-atomic access + (Resolve_Selected_Component): Add warnings for non-atomic access. + +2014-08-04 Doug Rupp + + * g-calend.adb (timeval_to_duration, duration_to_timeval): Change sec + formal to long_long. + * g-calend.ads (timeval): Bump up size to accomodate sec type. + * s-taprop-linux.adb (timeval_to_duration): Change sec formal to + long_long + * s-osprim-posix.adb (timeval): Bump up size to accomodate + new sec type. + (timeval_to_duration): Change sec formal to Long_Long_Integer + * s-osinte-darwin.adb (timeval): Bump up + size to accomodate new sec type. + (timeval_to_duration): Change sec formal to long_long + * s-osinte-android.adb: Likewise. + * cal.c (__gnat_timeal_to_duration, __gnat_duration_to_timeval): Change + sec formal from long to long long. + +2014-08-04 Robert Dewar + + * sem_res.adb (Resolve_Qualified_Expression): Make sure + Do_Range_Check flag gets set. + +2014-08-04 Robert Dewar + + * einfo.ads, einfo.adb (Is_Standard_String_Type): New function. + * exp_ch3.adb (Build_Array_Init_Proc): Use + Is_Standard_String_Type. + (Expand_Freeze_Array_Type): ditto. + (Get_Simple_Init_Val): ditto. + (Needs_Simple_Initialization): ditto. + * sem_eval.adb (Eval_String_Literal): Use Is_Standard_String_Type. + * sem_warn.adb (Is_Suspicious_Type): Use Is_Standard_String_Type. + +2014-08-04 Pascal Obry + + * adaint.c (__gnat_try_lock): Use _tcscpy and _tcscat instead of + _stprintf which insert garbage into the wfull_path buffer. + +2014-08-04 Arnaud Charlet + + * cal.c: Remove old VMS/nucleus code. Remove obsolete vxworks + code. + * fe.h: Minor reformatting. + +2014-08-04 Rainer Orth + + * cstreams.c: (_LARGEFILE_SOURCE): Guard definition. + +2014-08-04 Robert Dewar + + * par-ch13.adb (Get_Aspect_Specifications): Improve error + recovery, fixing a -gnatQ bomb. + +2014-08-04 Yannick Moy + + * sem_ch3.adb (Analyze_Object_Declaration): In GNATprove mode, + do not generate two Itypes with the same name for an array + definition. + * sinfo.ads: Expand doc on GNATprove mode. + +2014-08-04 Hristian Kirtchev + + * exp_ch3.adb (Expand_Freeze_Record_Type): Set the finalization + master and storage pool attributes on the root type of an + anonymous access type. + * exp_ch4.adb (Expand_N_Allocator): Set the finalization master + and storage pool attributes on the root type of an anonymous + access type. + +2014-08-04 Arnaud Charlet + + * exp_ch3.adb: Minor reformatting. + * tb-alvms.c, tb-alvxw.c, tb-ivms.c: Removed. + * tracebak.c: Remove use of above files. + * gcc-interface/Makefile.in: Update dependencies. + +2014-08-04 Pierre-Marie Derodat + + * gcc-interface/utils.c (gnat_set_type_context): Also set the + context for parallel types' TYPE_STUB_DECL. Do not change + anything if the context is already set for them. + (gnat_pushdecl): Update the comment for calls to + gnat_set_type_context to mention parallel types. + (add_parallel_type): When adding a context-less parallel type to + a type that has a context, propagate the context from the latter + type to the former. + (process_deferred_decl_context): Call gnat_set_type_context + rather than manually setting the type context. + (build_unc_object_type): Call gnat_set_type_context on the + template type. + +2014-08-04 Ed Schonberg + + * exp_ch5.adb (Expand_N_Case_Statement): If a choice is a + subtype indication and the case statement has only two choices, + replace subtype indication with its range, because the resulting + membership test cannot have a subtype indication as an operand. + +2014-08-04 Arnaud Charlet + + * exp_ch3.adb: Update comments, minor reformatting. + +2014-08-04 Hristian Kirtchev + + * sem_ch3.adb (Analyze_Declarations): Explain why the bodies of + the default initial condition procedures are build here. + * sem_util.adb (Build_Default_Init_Cond_Procedure): Wrap the + analyzed argument of pragma Default_Initial_Condition in some + dummy code as GNATprove mode disables assertions, but still + needs to see the argument. + +2014-08-04 Robert Dewar + + * exp_ch6.adb, sem_util.adb: Minor reformatting. + +2014-08-04 Olivier Hainque + + * a-comutr.ads: Set Root_Node_Type'Alignment to + Standard'Maximum_Alignment, so that it is at least as large as + the max default for Tree_Node_Type'Alignment. + +2014-08-04 Hristian Kirtchev + + * exp_ch3.adb (Freeze_Type): Remove the generation and inheritance + of the default initial condition procedure [body]. + * sem_ch3.adb (Analyze_Declarations): Create the bodies of + all default initial condition procedures at the end of private + declaration analysis. + * sem_util.adb (Build_Default_Init_Cond_Procedure_Bodies): New + routine. + (Build_Default_Init_Cond_Procedure_Body): Merged in the + processing of routine Build_Default_Init_Cond_Procedure_Bodies. + * sem_util.ads (Build_Default_Init_Cond_Procedure_Bodies): + New routine. + (Build_Default_Init_Cond_Procedure_Body): Removed. + +2014-08-04 Ed Schonberg + + * sem_elab.adb (Check_Elab_Call): Do not check a call to a + postcondtion. + * exp_ch6.adb (Expand_Call): Clarify handling of inserted + postcondition call. + +2014-08-04 Hristian Kirtchev + + * sem_prag.adb (Analyze_Pragma): Ensure that an + internally generated spec for a stand alone body is recognized + as a proper context for pragma SPARK_Mode. + +2014-08-04 Robert Dewar + + * erroutc.adb (Delete_Msg): Do not decrement Warnings_Treated_As_Errors. + +2014-08-04 Arnaud Charlet + + * adabkend.adb (Scan_Back_End_Switches): Ignore extra -o + when -gnatO has already been specified, for compatibility + with gcc driver. + (Scan_Compiler_Args): Do not call Set_Output_Object_File_Name in + codepeer mode. + * g-expect.ads: Fix typo. + +2014-08-04 Thomas Quinot + + * exp_ch4.adb (Insert_Dereference_Action): the actual Size + must account for the bounds template if the designated type is + an unconstrained array. + +2014-08-04 Hristian Kirtchev + + * a-cfhama.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb Add + SPARK_Mode in the body. + * sem_ch7.adb (Analyze_Package_Body_Helper): Restore the original + way to verify the consistency of SPARK_Mode between a spec and + a body. + * sem_ch12.adb (Analyze_Package_Instantiation): Remove the call + to Set_Ignore_Pragma_SPARK_Mode. Set flag Ignore_Pragma_SPARK_Mode + manually. + (Analyze_Subprogram_Instantiation): Remove the call to + Set_Ignore_Pragma_SPARK_Mode. Set flag Ignore_Pragma_SPARK_Mode + manually. + * sem_prag.adb (Analyze_Pragma): Remove local variable + Inst_Id. SPARK_Mode can no longer be applied to a package or + subprogram instantiation. + * sem_util.adb, sem_util.ads (Set_Ignore_Pragma_SPARK_Mode): + Removed. + +2014-08-04 Robert Dewar + + * sem_prag.adb, osint.adb, osint.ads: Minor reformatting. + +2014-08-04 Yannick Moy + + * sem_ch3.adb (Derive_Type_Declaration, + Process_Discriminants): Remove SPARK-specific legality checks. + +2014-08-04 Thomas Quinot + + * g-sechas.ads, g-sechas.adb (HMAC_Initial_Context): New subprogram. + * gnat_rm.texi (GNAT.MD5/SHA1/SHA224/SHA256/SHA512): Document support + for HMAC. + +2014-08-04 Hristian Kirtchev + + * sem_ch7.adb (Analyze_Package_Body_Helper): When verifying the + compatibility of SPARK_Mode between a spec and a body, use the + SPARK_Mode of the public part. + * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Use + the already available routine to exchange the aspects between + the template and its copy. Analyze the aspects of copy to + ensure that the corresponding pragmas perform their semantic + effects. The partial analysis of aspects is no longer needed. + (Analyze_Package_Instantiation): Save and restore the SPARK_Mode + of the context. + (Analyze_Subprogram_Instantiation): Save and restore the SPARK_Mode of + the context. + * sem_prag.adb (Analyze_Pragma): Do not bypass a subprogram + instantiation which does not come from source. + +2014-08-04 Hristian Kirtchev + + * a-cfhama.ads, a-cfhase.ads, a-cforma.ads, a-cforse.ads Add + SPARK_Mode pragmas to the public and private part of the unit. + * sem_ch3.adb (Derive_Type_Declaration): Ensure that a derived + type cannot have discriminants if the parent type already has + discriminants. + (Process_Discriminants): Ensure that the type of a discriminant is + discrete. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The check on + SPARK_Mode compatibility between a spec and a body can now be + safely performed while processing a generic. + * sem_ch7.adb (Analyze_Package_Body_Helper): The check on + SPARK_Mode compatibility between a spec and a body can now be + safely performed while processing a generic. + * sem_prag.adb (Analyze_Pragma): Pragma SPARK_Mode can now be + safely analyzed when processing a generic. + +2014-08-04 Nicolas Roche + + * g-dirope.adb: Minor reformating. + +2014-08-04 Robert Dewar + + * sem_ch6.adb: Minor reformatting. + +2014-08-04 Ed Schonberg + + * sem_prag.adb (Analyze_Pragma, case Assert and related pragmas): + Before normalizing these pragmas into a pragma Check, preanalyze + the optional Message argument, (which is subsequently copied) + so that it has the proper semantic information for ASIS use. + * sem_case.adb: Initialize flag earlier. + * osint.adb, osint.ads (Find_File): Add parameter Full_Name, used when + the full source path of a configuration file is requested. + (Read_Source_File): Use Full_Name parameter.. + +2014-08-04 Hristian Kirtchev + + * opt.ads Alphabetize various global flags. New flag + Ignore_Pragma_SPARK_Mode along with a comment on usage. + * sem_ch6.adb (Analyze_Generic_Subprogram_Body): + Pragma SPARK_Mode is now allowed in generic units. + (Analyze_Subprogram_Body_Helper): Do not verify the compatibility + between the SPARK_Mode of a spec and that of a body when inside + a generic. + * sem_ch7.adb (Analyze_Package_Body_Helper): Do not verify the + compatibility between the SPARK_Mode of a spec and that of a + body when inside a generic. + * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): + Pragma SPARK_Mode is now allowed in generic units. + (Analyze_Package_Instantiation): Save and restore the value of + flag Ignore_ Pragma_SPARK_Mode in a stack-like fasion. Set + the governing SPARK_Mode before analyzing the instance. + (Analyze_Subprogram_Instantiation): Save and restore the value + of flag Ignore_ Pragma_SPARK_Mode in a stack-like fasion. Set + the governing SPARK_Mode before analyzing the instance. + * sem_ch13.adb (Analyze_Aspect_Specifications): Emulate the + placement of a source pragma when inserting the generated pragma + for aspect SPARK_Mode. + * sem_prag.adb (Analyze_Pragma): Reimplement the handling of + pragma SPARK_Mode to allow for generics and their respective + instantiations. + * sem_util.ads, sem_util.adb (Check_SPARK_Mode_In_Generic): Removed. + (Set_Ignore_Pragma_SPARK_Mode): New routine. + +2014-08-04 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Deal with + renaming discriminants in tagged types first. + * gcc-interface/trans.c (gnat_to_gnu) : Test + the underlying type of the prefix. + (Pragma_to_gnu, case Pragma_Warning): Ignore Reason => "..." + (process_freeze_entity): Reset the nodes of all the view of a type, + if any. + +2014-08-04 Doug Rupp + Olivier Hainque + + * gcc-interface/Makefile.in (x86 VxWorks): Add filter-out for vxworks7 + and remove incorrect EH_MECHANISM macros. + Add sigtramp.h to EXTRA_LIBGNAT_SRCS when we add sigtramp-vxworks.o to + EXTRA_LIBGNAT_OBJS. + +2014-08-04 Robert Dewar + + * exp_attr.adb (Expand_N_Attribute_Reference): Make sure prefix + of constructed 'Valid attribute in -gnatVa mode does not appear + to come from source. + * sem_attr.adb (Analyze_Access_Attribute): Don't set + Never_Set_In_Source for non-source reference. + * sem_util.adb: Minor reformatting. + * sem_warn.adb (Check_References): Don't check Address_Taken, + not necessary, see comment. + +2014-08-04 Robert Dewar + + * sem_util.adb, sem_case.adb: Minor reformatting. + +2014-08-04 Ed Schonberg + + * exp_ch9.adb (Extract_Entry): If the synchronized object is a + limited view, replace with non-limited view, which is available + at the point of an entry call. + +2014-08-04 Ed Schonberg + + * exp_ch6.adb (Expand_Call): If the call is to a function in + a run-time unit that is marked Inline_Always, we must suppress + debugging information on it, so that the code that is eventually + inlined will not affect debugging of the user program. + +2014-08-04 Robert Dewar + + * inline.adb, einfo.ads, s-tassta.adb, s-tarest.adb: Minor comment + fixes. + +2014-08-04 Ed Schonberg + + * sem_prag.adb (Process_Import_Or_Interface): Handle properly + an aspect Import that specifies a False value. + +2014-08-04 Robert Dewar + + * gnat_rm.texi: Add section on aspect Invariant'Class. + +2014-08-04 Ed Schonberg + + * sem_case.adb (Check_Choice_Set): New flag Predicate_Error, + for better control of cascaded error messages when some choice + in a case statement over a predicated type violates the given + static predicate. + +2014-08-04 Hristian Kirtchev + + * sem_ch3.adb (Build_Derived_Type): Modify the + inheritance of the rep chain to ensure that a non-tagged type's + items are not clobbered during the inheritance. + +2014-08-04 Robert Dewar + + * sem_ch3.adb, einfo.ads: Minor reformatting. + +2014-08-04 Yannick Moy + + * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Fix + detection of subprograms that cannot be inlined in GNATprove mode. + +2014-08-04 Ed Schonberg + + * einfo.adb: Add guard to Returns_Limited_View. + +2014-08-04 Jose Ruiz + + * s-tassta.adb, s-tarest.adb (Task_Wrapper): Force maximum alignment of + the secondary stack to respect the alignments of the returned objects. + +2014-08-04 Ed Schonberg + + * einfo.ads, einfo.adb (Returns_Limited_View): New flag defined + on function entities whose return type is a limited view. + * freeze.adb (Freeze_Entity): Use Returns_Limited_View to determine + where to place the freeze node for a function that returns the + limited view of a type, when the function is called and frozen + in a different unit. + +2014-08-04 Eric Botcazou + + * sem_ch3.adb (Build_Derived_Private_Type): Minor code + refactoring. + +2014-08-04 Robert Dewar + + * gnat_ugn.texi: Clarify documentation on assertions. + +2014-08-04 Ed Schonberg + + * sem_aggr.adb (Resolve_Record_Aggregate, Get_Value): Warn + if a component association has a box initialization when the + component type has no default initialization, either through an + initial value, an aspect, or an implicit initialization procedure. + +2014-08-04 Ed Schonberg + + * freeze.adb: Code clean up. + +2014-08-04 Thomas Quinot + + * sem_ch5.adb: Minor reformatting. + +2014-08-04 Ed Schonberg + + * freeze.adb (Late_Freeze_Subprogram): Following AI05-151, + a function can return a limited view of a type declared + elsewhere. In that case the function cannot be frozen at the end + of its enclosing package. If its first use is in a different unit, + it cannot be frozen there, but if the call is legal the full view + of the return type is available and the subprogram can now be + frozen. However the freeze node cannot be inserted at the point + of call, but rather must go in the package holding the function, + so that the backend can process it in the proper context. + +2014-08-04 Robert Dewar + + * exp_ch5.adb, sem_ch5.adb, einfo.ads: Minor reformatting. + +2014-08-04 Arnaud Charlet + + * sem_ch4.adb (Operator_Check): Refine previous change. + +2014-08-04 Arnaud Charlet + + * sem_scil.ads: Improve comments. + * sem_ch4.adb (Analyze_Equality_Op): Add support for + Allow_Integer_Address (equality between Address and Integer). + +2014-08-04 Yannick Moy + + * a-cfhama.adb, a-cforse.adb: Minor fixes to avoid using prefix + notation on untagged objects. + * sem.ads: Update comment. + * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do + not inline subprograms declared in the visible part of a package. + +2014-08-04 Ed Schonberg + + * exp_ch5.adb: minor reformatting. + * einfo.ads, einfo.adb (Is_Processed_Transient): Applies to loop + parameters. + +2014-08-04 Thomas Quinot + + * s-fatgen.adb: Minor reformatting. + +2014-08-04 Arnaud Charlet + + * exp_util.adb (Is_Possibly_Unaligned_Object): Always return + False on .NET. + +2014-08-04 Ed Schonberg + + * sem_ch5.adb (Analyze_Loop_Statement): Set properly the kind of + the loop parameter for element iterators over containers and + arrays, so that improper uses of it are detected in the loop + body when expansion is disabled. + * exp_ch5.adb (Expand_Iterator_Loop): The entity kind of the + generated cursor is that of the analyzed loop parameter. + +2014-08-04 Hristian Kirtchev + + * exp_ch3.adb (Build_CPP_Init_Procedure): Remove + Flag_Decl. Do not analyze the declaration of the flag as it is + not part of the tree yet, instead add it to the freeze actions + of the C++ type. + +2014-08-04 Robert Dewar + + * checks.adb (Apply_Scalar_Range_Check): Make sure we handle + case of OUT and IN OUT parameter correctly (where Source_Typ is + set), we were missing one case where a check must be applied. + +2014-08-04 Hristian Kirtchev + + * sem_ch8.adb (Build_Class_Wide_Wrapper): Update the comment on + the generated code. Instead of hiding the renaming and using the + wrapper as the proper association, have the subprogram renaming + alias the wrapper. + (Build_Spec): The entity of the wrapper is + now derived from the entity of the related primitive. + +2014-08-04 Emmanuel Briot + + * s-regpat.adb: s-regpat.adb (Parse): fix incorrect link when + using non-capturing groups. + +2014-08-04 Ed Schonberg + + * inline.adb (Build_Body_To_Inline): Remove Unmodified and + related pragmas before copying the original body, to prevent + spurious errors when the pragmas apply to formals that will not + appear in the inlined body. + +2014-08-04 Robert Dewar + + * exp_prag.adb, sem_ch7.adb, einfo.adb, sem_prag.adb, sem_util.adb, + exp_ch3.adb: Minor reformatting. + +2014-08-04 Robert Dewar + + * prj-strt.adb, prj-strt.ads, sem_attr.adb: Minor reformatting. + +2014-08-04 Hristian Kirtchev + + * aspects.adb Add an entry in table Canonical_Aspect for + Default_Initial_Condition. + * aspects.ads Add an entry in tables Aspect_Id, Aspect_Argument, + Aspect_Names and Aspect_Delay for Default_Initial_Condition. + * einfo.adb Flag3 is now Has_Default_Init_Cond. Flag132 + is now Is_Default_Init_Cond_ Procedure. Flag133 is now + Has_Inherited_Default_Init_Cond. + (Default_Init_Cond_Procedure): New routine. + (Has_Default_Init_Cond): New routine. + (Has_Inherited_Default_Init_Cond): New routine. + (Is_Default_Init_Cond_Procedure): New routine. + (Set_Default_Init_Cond_Procedure): New routine. + (Set_Has_Default_Init_Cond): New routine. + (Set_Has_Inherited_Default_Init_Cond): New routine. + (Set_Is_Default_Init_Cond_Procedure): New routine. + (Write_Entity_Flags): Output all the new flags. + * einfo.ads New attributes Default_Init_Cond_Procedure, + Has_Inherited_Default_Init_Cond and Is_Default_Init_Cond_Procedure + along with usage in nodes. + (Default_Init_Cond_Procedure): New routine. + (Has_Default_Init_Cond): New routine and pragma Inline. + (Has_Inherited_Default_Init_Cond): New routine and + pragma Inline. + (Is_Default_Init_Cond_Procedure): New routine and + pragma Inline. + (Set_Default_Init_Cond_Procedure): New routine. + (Set_Has_Default_Init_Cond): New routine and pragma Inline. + (Set_Has_Inherited_Default_Init_Cond): New routine and pragma Inline. + (Set_Is_Default_Init_Cond_Procedure): New routine and pragma Inline. + * exp_ch3.adb (Expand_N_Object_Declaration): New constant + Next_N. Generate a call to the default initial condition procedure + if the object's type is subject to the pragma. (Freeze_Type): + Generate the body of the default initial condition procedure or + inherit the spec from a parent type. + * exp_ch7.adb Add with and use clause for Exp_Prag. + (Expand_Pragma_Initial_Condition): Removed. + * exp_prag.ads, exp_prag.adb (Expand_Pragma_Initial_Condition): New + routine. + * par-prag.adb (Prag): Pragma Default_Initial_Condition does + not need special treatment by the parser. + * sem_ch3.adb (Build_Derived_Record_Type): Propagate the + attributes related to pragma Default_Initial_Condition to the + derived type. + (Process_Full_View): Propagate the attributes + related to pragma Default_Initial_Condition to the full view. + * sem_ch7.adb (Analyze_Package_Specification): Build the + declaration of the default initial condition procedure for all + types that qualify or inherit the one from the parent type. + * sem_ch13.adb (Analyze_Aspect_Specifications): + Add processing for aspect Default_Initial_Condition. + (Check_Aspect_At_Freeze_Point): Aspect + Default_Initial_Condition does not require delayed analysis. + (Replace_Type_References_Generic): Moved to spec. + * sem_ch13.ads (Replace_Type_References_Generic): Moved from body. + * sem_prag.adb Add an entry in table Sif_Glags for + Default_Initial_Condition. + (Analyze_Pragma): Pragma + Default_Initial_Condition is now part of assertion + policy. Add processing for pragma Default_Initial_Condition. + (Is_Valid_Assertion_Kind): Pragma Default_Initial_Condition is + now recognized as a proper assertion policy. + * sem_util.ads, sem_util.adb (Build_Default_Init_Cond_Call): New + routine. + (Build_Default_Init_Cond_Procedure_Body): New routine. + (Build_Default_Init_Cond_Procedure_Declaration): New routine. + (Inherit_Default_Init_Cond_Procedure): New routine. + * snames.ads-tmpl Add new predefined name and pragma id for + Default_Initial_Condition. + +2014-08-04 Vincent Celier + + * prj-dect.adb (Parse_Case_Construction): It is no longer + an error if the variable for a case construction is not + typed, only if the variable value is not a single string. Call + Parse_Choice_List and End_Case_Construction with the new parameter + to indicate that the variable is typed. + * prj-strt.adb (End_Case_Construction): Only check the labels + if the variable is typed. If the variable is not typed, + issue a warning when there is no "when others" allternative. + (Parse_Choice_List): Manage the labels only if the variable + is typed. + * prj-strt.ads (End_Case_Construction): New Boolean parameter + String_Type. + (Parse_Choice_List): Ditto. + +2014-08-04 Ed Schonberg + + * sem_ch5.adb: Additional fix to Check_Predicate_Use. + +2014-08-04 Vincent Celier + + * projects.texi: Update documentation of case constructions with + variables that are not typed. + +2014-08-04 Ed Schonberg + + * sem_ch8.adb (Build_Class_Wide_Wrapper): If the operator carries + an Eliminated pragma, indicate that the wrapper is also to be + eliminated, to prevent spurious errors when using gnatelim on + programs that include box-initialization of equality operators + (consequence of AI05-071).. + +2014-08-04 Robert Dewar + + * checks.adb (Activate_Overflow_Check): Handle floating-point + case correctly. + * checks.ads (Activate_Overflow_Check): Clarify handling of + floating-point cases. + * exp_util.adb (Check_Float_Op_Overflow): Reset Do_Overflow_Check + flag if we generate an explicit overflow check (for + Check_Float_Overflow mode). + +2014-08-04 Robert Dewar + + * prj-proc.adb, prj-part.adb, prj-strt.adb, prj.adb, prj.ads, + prj-attr.adb, prj-attr.ads: Minor reformatting. + +2014-08-04 Yannick Moy + + * expander.adb (Expand): Always perform special + expansion in GNATprove mode, even when doing pre-analysis. + +2014-08-04 Thomas Quinot + + * repinfo.adb (List_Scalar_Storage_Order): List bit order if + not default. Also list bit order if SSO is specified. Do not + assume that bit order is always equal to scalar storage order. + +2014-08-04 Thomas Quinot + + * freeze.adb (Set_SSO_From_Default): Do not set scalar storage + order to reverse SSO for a type that has an explicit native + Bit_Order. + +2014-08-04 Doug Rupp + + * cal.c: Macro check for VxWorks7. + * init.c (getpid): Likewise. + * mkdir.c (__gnat_mkdir): Likewise. + * sysdep.c (__gnat_is_file_not_found_error): Likewise. + +2014-08-04 Gary Dismukes + + * exp_ch3.adb (Expand_N_Object_Declaration): Inhibit generation + of an invariant check in the case where No_Initialization is set, + since the object is uninitialized. + +2014-08-04 Thomas Quinot + + * snames.ads-tmpl (Default_Scalar_Storage_Order): Now an attribute + name, in addition to a pragma name. + * snames.adb-tmpl (Get_Pragma_Id, Is_Configuration_Pragma_Name, + Is_Pragma_Name): Adjust accordingly. + * sem_attr.ads, sem_attr.adb, exp_attr.adb + (Attribute_Default_Scalar_Storage_Order): Add handling of new + attribute. + * gnat_rm.texi: Document the above. + +2014-08-04 Arnaud Charlet + + * exp_util.adb (Check_Float_Op_Overflow): No-op in codepeer + mode for now, to revert to previous behavior. + * checks.adb: Revert previous change, no longer needed. + +2014-08-04 Robert Dewar + + * gnat1drv.adb (Adjust_Global_Switches): Don't set + Check_Float_Overflow if Machine_Oveflows_On_Target is True. + * sem_prag.adb (Analyze_Pragma, case Check_Float_Overflow): Don't + set Check_Float_Overflow if Machine_Oveflows_On_Target is True. + * switch-c.adb (Scan_Front_End_Switches): Don't set + Check_Float_Overflow if Machine_Oveflows_On_Target is True. + +2014-08-04 Vincent Celier + + * prj-attr.adb: Add new default indications for + attributes Object_Dir, Exec_Dir, Source_Dirs and Target. + (Attribute_Default_Of): New function (Initialize): Set the + default for those attributes that have one specified. + * prj-attr.ads (Attribute_Data): New component Default. + * prj-proc.adb (Expression): Take into account the new defaults + for attributes Object_Dir, Exec_Dir and Source_Dirs. + * prj-strt.adb (Attribute_Reference): Set the default for + the attribute. + * prj-tree.ads, prj-tree.adb (Default_Of): New function. + (Set_Default_Of): New procedure. + * prj.adb (The_Dot_String): New global Name_Id variable, + initialized in procedure Initialize. + (Dot_String): New function + (Initialize): Initialize The_Dot_String. + (Reset): Create the string list Shared.Dot_String_List. + * prj.ads (Attribute_Default_Value): New enumeration type. + (Project_Qualifier): Change enumeration value Dry to Abstract_Project. + (Dot_String): New function. + (Shared_Project_Tree_Data): New string list component Dot_String_List. + * projects.texi: Document new defaults for attribute Object_Dir, + Exec_Dir and Source_Dirs. + +2014-08-04 Robert Dewar + + * sem_ch12.adb: Minor reformatting. + +2014-08-04 Arnaud Charlet + + * exp_util.adb, checks.adb (Check_Float_Op_Overflow): Add special + expansion in CodePeer_Mode. + (Selected_Range_Checks): Add handling of overflow checks in + CodePeer_Mode. + +2014-08-04 Robert Dewar + + * exp_attr.adb (Expand_N_Attribute_Reference, case Pred): + Remove special test for Float'First, no longer required. + (Expand_N_Attribute_Reference, case Succ): Remove special test + for Float'First, no longer required. + * s-fatgen.adb (Pred): return infinity unchanged. + (Succ): ditto. + +2014-08-04 Claire Dross + + * sem_ch12.adb (Analyze_Associations): Defaults should only be + used if there is no explicit match. + * exp_util.adb (Get_First_Parent_With_Ext_Axioms_For_Entity): + Also check for pragma external_axiomatization on generic units. + +2014-08-04 Robert Dewar + + * checks.adb (Activate_Overflow_Check): Remove + Check_Float_Overflow processing. + (Apply_Scalar_Range_Check): Ditto. + (Generate_Range_Check): Ditto. + * exp_ch4.adb (Expand_N_Op_Add): Add call to + Check_Float_Op_Overflow. + (Expand_N_Op_Divide): ditto. + (Expand_N_Op_Multiply): ditto. + (Expand_N_Op_Subtract): ditto. + * exp_util.ads, exp_util.adb (Check_Float_Op_Overflow): New procedure. + * sem_attr.adb (Analyze_Attribute, case Pred): Make sure + Do_Range_Check is set for floating-point case in -gnatc or + GNATprove mode. + (Analyze_Attribute, case Succ): Make sure + Do_Range_Check is set for floating-point case in -gnatc or + GNATprove mode. + * sem_res.adb (Resolve_Type_Conversion): Make sure Do_Range_Check + flag is set for real to integer conversion in GNATprove or + -gnatc mode. + +2014-08-04 Gary Dismukes + + * sem_ch13.adb (Analyze_Aspect_Specifications): Resolve + the expression of an Import or Export aspect as type Boolean + and require it to be static. Add ??? comment. Also, set the + Is_Exported flag when appropriate. + +2014-08-04 Robert Dewar + + * exp_ch4.adb: Minor reformatting. + * exp_attr.adb: Minor reformatting. + +2014-08-04 Thomas Quinot + + * s-fatgen.ads, s-fatgen.adb (S, P): New visible type declarations + (Unaligned_Valid): Remove now unused subprogram. + * exp_attr.adb (Expand_N_Attribute_Reference, case + Attribute_Valid): If the prefix is in reverse SSO or potentially + unaligned, copy it using a byte copy operation to a temporary + variable. + * einfo.adb: Minor comment fix. + +2014-08-04 Hristian Kirtchev + + * freeze.adb (Freeze_Entity): Do not freeze formal subprograms. + +2014-08-04 Robert Dewar + + * s-imgrea.adb (Image_Floating_Point): Don't add space before +Inf. + * s-fatgen.adb (Pred): Handle Float'First. + (Succ): Handle Float'Last. + +2014-08-04 Ed Schonberg + + * sem_util.adb (Is_Potentially_Unevaluated): If the original + node of a parent node in the tree is a short-circuit operation, + the node is potentially unevaluated. + +2014-08-04 Robert Dewar + + * sem_res.adb (Resolve_Type_Conversion): Set Do_Range_Check on + conversion from a real type to an integer type. + +2014-08-04 Yannick Moy + + * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, sem_ch7.adb, sem_ch9.adb, + sem_ch12.adb, sem_util.adb, sem_util.ads, sem_res.adb, sem_attr.adb, + exp_ch6.adb, sem_ch4.adb, restrict.adb, restrict.ads, sem_ch6.adb, + sem_ch8.adb, sem_ch11.adb: Update some subprogram names to refer to + SPARK_05 instead of SPARK. + +2014-08-04 Robert Dewar + + * sem.ads: Minor reformatting. + * sem_ch13.adb (Analyze_Aspect_External_Or_Link_Name): Minor + reformatting. + (Analyze_Aspect_Specifications, case Convention): Put External_Name + before Link_Name when constructing pragma. + +2014-08-04 Yannick Moy + + * sem.adb, sem.ads (In_Default_Expr): Global flag that is set + to True during analysis of a default component expression. + (Semantics): Save and restore In_Default_Expr around analysis. + * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration): + Call new wrapper Preanalyze_Default_Expression. + (Preanalyze_Default_Expression): New wrapper on + Preanalyze_Spec_Expression which sets and restores In_Default_Expr. + * sem_res.adb (Resolve_Call): Mark calls inside default + expressions as not inlined in GNATprove mode. + +2014-08-04 Robert Dewar + + * exp_ch4.adb: Minor reformatting. + +2014-08-04 Olivier Hainque + + * link.c: remove const on __gnat_objlist_file_supported for AIX + +2014-08-04 Robert Dewar + + * sem_util.ads: Minor addition of comment. + +2014-08-04 Vincent Celier + + * prj-dect.adb (Check_Package_Allowed): Allow package IDE in + all projects, including aggregate and aggregate library projects. + +2014-08-04 Yannick Moy + + * back_end.adb (Call_Back_End): Do not call gigi in GNATprove mode. + +2014-08-04 Robert Dewar + + * sem_eval.adb (Test_In_Range): Always in range for + Is_Known_Valid target type, where input type has smaller or + equal size and does not have biased rep. + +2014-08-04 Ed Schonberg + + * sem_attr.adb (Eval_Attribute): Constrained is not treated as + a static attribute, and the Static flag must not be set on it + during resolution. It may be constant-folded during expansion, + but if expansion is disabled it is not a static expression. + +2014-08-04 Hristian Kirtchev + + * sem_ch8.adb (Build_Class_Wide_Wrapper): Mark the primitive as + referenced once resolution has taken place. + +2014-08-04 Gary Dismukes + + * exp_ch4.adb (Expand_N_Type_Conversion): Don't + compare access levels in the case where the target type is the + anonymous type of an access discriminant, since the level of + such types is defined based on context. Add comment. + +2014-08-04 Hristian Kirtchev + + * sem_ch8.adb (Build_Class_Wide_Wrapper): Handle various special + cases related to equality. Remove the special processing + for dispatching abstract subprograms as it is not needed. + (Interpretation_Error): Add a specialized error message for + predefined operators. + (Is_Intrinsic_Equality): New routine. + (Is_Suitable_Candidate): New routine. + +2014-08-04 Gary Dismukes + + * checks.adb: Minor comment reformatting. + +2014-08-04 Ed Schonberg + + * restrict.adb (Check_Restriction): For checked max_parameter + restrictions reset Violated flag, so that subsequent violations + are properly detected. + +2014-08-04 Robert Dewar + + * sem_ch3.adb (Check_Initialization): Fix bad test of GNATprove + mode. + (Process_Discriminants): Fix bad test of GNATprove mode + +2014-08-04 Hristian Kirtchev + + * sem_ch12.adb (Instantiate_Formal_Subprogram): + Move variable to their own section. Propagate the source + location of a formal parameter to the corresponding formal of + the subprogram renaming declaration. Code reformatting. + +2014-08-04 Arnaud Charlet + + * g-trasym-vms-ia64.adb, g-trasym-vms-alpha.adb: Removed. + +2014-08-04 Ed Schonberg + + * exp_aggr.adb (Expand_Array_Aggregate): Do not attempt expansion + if error already detected. We may reach this point in spite of + previous errors when compiling with -gnatq, to force all possible + errors (this is the usual ACATS mode). + +2014-08-04 Gary Dismukes + + * checks.adb (Generate_Range_Check): For the case of converting + a base type with a larger range to a smaller target subtype, only + use unchecked conversions of bounds in the range check followed + by conversion in the case where both types are discrete. In other + cases, convert to the target base type and save in a temporary + followed by the range check. + (Convert_And_Check_Range): New procedure factoring code to save + conversion to a temporary followed by a range check (called two + places in Generate_Range_Check). + * exp_ch4.adb (Expand_N_Type_Conversion): Relax previous + check-in, to generate range checks for conversions between + any floating-point types rather than limiting it to matching + base types. + +2014-08-02 Trevor Saunders + + * gcc-interface/trans.c: Use hash_set instead of pointer_set. + +2014-08-01 Ed Schonberg + + * restrict.adb (Update_Restrictions): For restrictions with a + maximum parameter (e.g. number of protected entries in Ravenscar) + do not compute the maximum of the violation over several objects, + because the restriction is per-object. + (Check_Restriction): After possible message, reset the value + of of a checked max_parameter restriction to zero, to prevent + cascaded errors. + * sem_ch3.adb (Build_Derived_Private_Type): Use base of parent + (sub)type to determine whether derived type should be on the + list of private dependents of a type whose full view may become + visible subsequently. + +2014-08-01 Olivier Hainque + + * gcc-interface/Make-lang.in (ADA_TOOLS_FLAGS_TO_PASS, native): use + $(CXX) instead of ../../xg++ to feed CXX. + (CXX_LFLAGS): Remove. Now unused as the proper flags + are expected to be included in the CXX variable. + +2014-08-01 Pierre-Marie Derodat + + * gcc-interface/decl.c (elaborate_expression_1): Return the new + variable when debug info is needed and the expression is not + constant. Tag as external only new variables that are global. + (gnat_to_gnu_entity): Call it after the GNU declaration is saved. + * gcc-interface/trans.c (Attribute_to_gnu): Do not cache + attributes for IN array parameters when their actual subtype + needs debug info. + (Compilation_Unit_to_gnu): Call it to process all remaining nodes. + * gcc-interface/gigi.h (process_deferred_decl_context): New. + * gcc-interface/utils.c (gnat_write_global_declarations): Do not + emit debug info for ignored global declarations. + (struct deferred_decl_context_node, + add_deferred_decl_context, add_deferred_type_context, + compute_deferred_decl_context, defer_or_set_type_context, + deferred_decl_context_queue, get_debug_scope, + get_global_context, process_deferred_decl_context): New. + (gnat_pushdecl): Re-implement the DECL_CONTEXT and TYPE_CONTEXT + computation machinery to rely on the GNAT Scope attribute. + +2014-08-01 Eric Botcazou + + * gcc-interface/utils2.c (build_simple_component_ref): Add guard. + +2014-08-01 Robert Dewar + + * sem_ch8.adb, opt.ads Minor comment updates. + +2014-08-01 Hristian Kirtchev + + * exp_intr.adb (Expand_Unc_Deallocation): Request a renaming + from the side effects removal machinery. + * exp_util.adb (Duplicate_Subexpr): Add formal parameter + Renaming_Req. Update the nested call to Remove_Side_Effects. + (Duplicate_Subexpr_No_Checks): Add formal parameter + Renaming_Req. Update the nested call to Remove_Side_Effects. + (Duplicate_Subexpr_Move_Checks): Add formal parameter + Renaming_Req. Update the nested call to Remove_Side_Effects. + (Remove_Side_Effects): Add formal parameter Renaming_Req. Generate + an object renaming declaration when the caller requests it. + * exp_util.ads (Duplicate_Subexpr): Add formal + parameter Renaming_Req. Update comment on usage. + (Duplicate_Subexpr_No_Checks): Add formal parameter Renaming_Req. + (Duplicate_Subexpr_Move_Checks): Add formal parameter + Renaming_Req. + +2014-08-01 Bob Duff + + * gnat_ugn.texi: Minor updates. + +2014-08-01 Robert Dewar + + * atree.adb: Minor reformatting. + +2014-08-01 Ed Schonberg + + * exp_aggr.adb (Init_Hidden_Discriminants): If some ancestor is a + private extension, get stored constraint, if any, from full view. + +2014-08-01 Robert Dewar + + * opt.ads (No_Elab_Code_All_Pragma): New global variable. + * sem_ch10.adb (Check_No_Elab_Code_All): New procedure + (Analyze_Compilation_Unit): Call Check_No_Elab_Code_All + (Analyze_Subunit_Context): Call Check_No_Elab_Code_All. + * sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All): + Remove code for checking with's, now in sem_ch10.adb, set + Opt.No_Elab_Code_All_Pragma. + +2014-08-01 Eric Botcazou + + * sem_ch3.adb (Copy_And_Build): Copy the declaration for + access types as well and adjust the subtype mark if there are + no constraints. + +2014-08-01 Robert Dewar + + * sem_eval.adb (Test_In_Range): Return Unknown if error posted. + +2014-08-01 Robert Dewar + + * sem_ch3.adb, einfo.ads, exp_ch4.adb: Code clean ups. + +2014-08-01 Eric Botcazou + + * einfo.ads (Has_Private_Ancestor): Remove obsolete usage. + * exp_ch4.adb (Expand_Composite_Equality): Add conversion + of the actuals in the case of untagged record types too. + * sem_ch3.adb (Build_Full_Derivation): New procedure to create the + full derivation of a derived private type, extracted from... + (Copy_And_Build): In the case of record types and most + enumeration types, copy the original declaration. Build the + full derivation according to the approach extracted from... + (Build_Derived_Private_Type): ...here. Call Build_Full_Derivation + to create the full derivation in all existing cases and also + create it in the no-discriminants/discriminants case instead of + deriving directly from the full view. + (Is_Visible_Component): Remove obsolete code. + * sem_aggr.adb (Resolve_Record_Aggregate): Likewise. + +2014-08-01 Arnaud Charlet + + * fe.h (GNAT_Mode): New. + * gcc-interface/decl.c (gnat_to_gnu_entity): Do not error out on + reverse SSO in GNAT mode. + +2014-08-01 Thomas Quinot + + * freeze.adb: Minor reformatting. + +2014-08-01 Thomas Quinot + + * exp_ch3.adb (Default_Initialize_Object): Do not generate + default initialization for an imported object. + +2014-08-01 Olivier Hainque + + * seh_init.c (__gnat_map_SEH): Cast argument of IsBadCodePtr + to the expected FARPROC type instead of void *. + * adaint.c (f2t): Expect __time64_t * as second argument, in line with + other datastructures. + (__gnat_file_time_name_attr): Adjust accordingly. + (__gnat_check_OWNER_ACL): Declare pSD as PSECURITY_DESCRIPTOR, + in line with uses. + (__gnat_check_OWNER_ACL): Declare AccessMode + parameter as ACCESS_MODE instead of DWORD, in line with callers + and uses. + (__gnat_set_executable): Add ATTRIBUTE_UNUSED on mode, + unused on win32. Correct cast of "args" on call to spawnvp. + (add_handle): Cast realloc calls into their destination types. + (win32_wait): Remove declaration and initialization of unused variable. + (__gnat_locate_exec_on_path): Cast alloca calls + into their destination types. + * initialize.c (append_arg, __gnat_initialize): Cast xmalloc calls into + their destination types. + +2014-08-01 Gary Dismukes + + * exp_ch4.adb (Expand_N_Type_Conversion): Expand + range checks for conversions between floating-point subtypes + when the target and source types are the same. + +2014-08-01 Robert Dewar + + * exp_aggr.adb: Minor reformatting. + +2014-08-01 Eric Botcazou + + * sem_ch13.adb (Check_Indexing_Functions): Initialize + Indexing_Found. + +2014-08-01 Arnaud Charlet + + * gnat1drv.adb (Gnat1drv): In gnatprove mode, we now write the + ALI file before we call the backend (so that gnat2why can append + to it). + +2014-08-01 Thomas Quinot + + * exp_pakd.adb (Expand_Bit_Packed_Element_Set, + Expand_Packed_Element_Reference): Pass additional Rev_SSO + parameter indicating whether the packed array type has reverse + scalar storage order to the s-pack* Set/Get routines. + * s-pack*.ad* (Get, Set, GetU, SetU): New formal Rev_SSO + indicating reverse scalar storage order. + +2014-08-01 Robert Dewar + + * sem_ch3.adb (Check_Initialization): Set Do_Range_Check + for initial component value in -gnatc or GNATprove mode. + (Process_Discriminants): Same fix for default discriminant values. + * sem_eval.adb (Test_In_Range): Improve accuracy of results by + checking subtypes. + +2014-08-01 Robert Dewar + + * sinfo.ads: Minor comment clarification. + +2014-08-01 Hristian Kirtchev + + * sem_ch13.adb (Analyze_Aspect_Specifications): Code + reformatting. Store the generated pragma Import in the related + subprogram as routine Wrap_Imported_Subprogram will need it later. + * sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): An item of + a private type with discriminants is considered to fall in the + category of unconstrained or tagged items. + +2014-08-01 Arnaud charlet + + * s-os_lib.adb (Open_Append): New functions to open a file for + appending. This binds to the already existing (but not used) + __gnat_open_append. + * osint.ads, osint.adb (Open_File_To_Append_And_Check): New procedure + to open a file for appending. + * osint-c.ads, osint-c.adb (Open_Output_Library_Info): New procedure + to open the ALI file for appending. + +2014-08-01 Robert Dewar + + * sem_ch8.adb: Minor reformatting. + +2014-08-01 Yannick Moy + + * sem_ch13.adb (Insert_Pragma): Add special case for precondition + pragmas from aspects, which need to be inserted in proper order. + +2014-08-01 Ed Schonberg + + * exp_aggr.adb (Expand_Record_Aggregate, Init_Hidden_Discriminants): + Handle properly a type extension that constrains a discriminated + derived type that renames other discriminants of an ancestor. + +2014-08-01 Thomas Quinot + + * s-pack06.adb, s-pack10.adb, s-pack03.ads, s-pack12.adb, s-pack14.ads, + s-pack25.adb: Fix minor inconsistencies and typos. + +2014-08-01 Hristian Kirtchev + + * sem_ch8.adb (Analyze_Subprogram_Renaming): Alphabetize + globals and move certain variables to the "local + variable" section. Call Build_Class_Wide_Wrapper when + renaming a default actual subprogram with a class-wide actual. + (Build_Class_Wide_Wrapper): New routine. + (Check_Class_Wide_Actual): Removed. + (Find_Renamed_Entity): Code reformatting. + (Has_Class_Wide_Actual): Alphabetize. Change the + logic of the predicate as the renamed name may not necessarely + denote the correct subprogram. + +2014-08-01 Eric Botcazou + + * sem_ch7.adb: Fix minor oversight in condition. + +2014-08-01 Bob Duff + + * projects.texi: Minor documentation improvements. + +2014-08-01 Robert Dewar + + * aspects.ads, aspects.adb: Add aspect No_Elaboration_Code_All. + * gnat_rm.texi: Document No_Elaboration_Code_All pragma and aspect. + * lib-load.adb: Initialize No_Elab_Code_All field. + * lib-writ.adb: Initialize No_Elab_Code_All. + * lib.ads, lib.adb: New field No_Elab_Code_All. + * par-prag.adb: Add dummy entry for pragma No_Elaboration_Code_All. + * restrict.ads, restrict.adb: Restriction No_Elaboration_Code_All no + longer exists. + * sem_ch10.adb (Analyze_Context): Processing for + No_Elaboration_Code_All removed. + (Generate_Parent_References): Moved to Sem_Util. + * sem_prag.adb: Add processing for pragma No_Elaboration_Code_All. + * sem_util.ads, sem_util.adb (Get_Parent_Entity): Moved here from + Sem_Ch10. + * snames.ads-tmpl: Add entry for pragma No_Elaboration_Code_All. + * targparm.adb: Minor comment updates Add comments on ignoring + pragma No_Elaboration_Code_All. + +2014-08-01 Nicolas Roche + + * adaint.c (__gnat_set_close_on_exec): Ensure that + we can unset "close_on_exec" flag. + +2014-08-01 Ed Schonberg + + * exp_ch9.adb (Build_Wrapper_Spec, Replicate_Formals): When building + the parameter specs of the wrapper program for a primitive operation + of a synchronized type that implements an interface, copy the + null_exclusion indicator as well. + +2014-08-01 Robert Dewar + + * sem_eval.ads: Minor reformatting. + +2014-08-01 Eric Botcazou + + * exp_ch3.adb (Build_Initialization_Call): Call Underlying_Type + to go down the chain of private derivations. + * freeze.adb (Freeze_Entity): Fix typo in comment. + +2014-08-01 Ed Schonberg + + * sem_ch3.adb (Access_Type_Declaration): If designated type is + a limited view, create a master entity (as is already done for + class-wide types) in case the full view designates a type that + contains tasks. + * sem_ch8.adb (Find_Selected_Component): If prefix is a dereference + and the designated type is a limited view, use the non-limited + view if available. + +2014-08-01 Eric Botcazou + + * gcc-interface/ada-tree.h (DECL_BY_DESCRIPTOR_P): Delete. + (DECL_FUNCTION_STUB): Likewise. + (SET_DECL_FUNCTION_STUB): Likewise. + (DECL_PARM_ALT_TYPE): Likewise. + (SET_DECL_PARM_ALT_TYPE): Likewise. + (TYPE_VAX_FLOATING_POINT_P): Delete. + (TYPE_DIGITS_VALUE): Likewise. + (SET_TYPE_DIGITS_VALUE): Likewise. + * gcc-interface/gigi.h (standard_datatypes): Remove ADT_malloc32_decl. + (malloc32_decl): Delete. + (build_vms_descriptor): Likewise. + (build_vms_descriptor32): Likewise. + (fill_vms_descriptor): Likewise. + (convert_vms_descriptor): Likewise. + (TARGET_ABI_OPEN_VMS): Likewise. + (TARGET_MALLOC64): Likewise. + * gcc-interface/decl.c (add_parallel_type_for_packed_array): New. + (gnat_to_gnu_entity): Call it to add the original type as a parallel + type to the implementation type of a packed array type. + : Remove now obsolete kludge. + : Delete obsolete comment. + : Small tweak. + : Remove support for stub subprograms, as well as + for the descriptor passing mechanism. + (gnat_to_gnu_param): Likewise. + * gcc-interface/misc.c (gnat_init_gcc_fp): Remove special case. + (gnat_print_type): Adjust. + * gcc-interface/trans.c (gigi): Remove obsolete initializations. + (vms_builtin_establish_handler_decl): Delete. + (gnat_vms_condition_handler_decl): Likewise. + (establish_gnat_vms_condition_handler): Likewise. + (build_function_stub): Likewise. + (Subprogram_Body_to_gnu): Do not call above functions. + (Call_to_gnu): Remove support for the descriptor passing mechanism. + * gcc-interface/utils.c (make_descriptor_field): Delete. + (build_vms_descriptor32): Likewise. + (build_vms_descriptor): Likewise. + (fill_vms_descriptor): Likewise. + (convert_vms_descriptor64): Likewise. + (convert_vms_descriptor32): Likewise. + (convert_vms_descriptor): Likewise. + * gcc-interface/utils.c (unchecked_convert): Likewise. + * gcc-interface/utils2.c (maybe_wrap_malloc): Remove obsolete stuff. + +2014-08-01 Eric Botcazou + + * gcc-interface/trans.c (gigi): Use gnat_to_gnu_type for the exception + type and get_unpadded_type for the longest FP type. + (Attribute_to_gnu) : Compare the precision of the types. + (convert_with_check): Adjust formatting and remove FIXME. + +2014-08-01 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : + Do not convert the RM bounds to the base type. + (E_Floating_Point_Subtype): Likewise. + (E_Array_Subtype): Convert the bounds to the base type. + * gcc-interface/trans.c (get_type_length): New function. + (Attribute_to_gnu) : Call it. + : Likewise. + (Loop_Statement_to_gnu): Convert the bounds to the base type. + (gnat_to_gnu) : Likewise. + * gcc-interface/utils.c (make_type_from_size): Do not convert the RM + bounds to the base type. + (create_range_type): Likewise. + (convert): Convert the bounds to the base type for biased types. + * gcc-interface/utils2.c (compare_arrays): Convert the bounds to the + base type. + +2014-08-01 Eric Botcazou + + * gcc-interface/trans.c (gnat_to_gnu) : Remove + incorrect implicit type derivation. + * gcc-interface/utils.c (max_size) : Convert the bounds + to the base type. + +2014-08-01 Hristian Kirtchev + + * sem_attr.adb (Analyze_Attribute): Preanalyze and resolve the + prefix of attribute Loop_Entry. + * sem_prag.adb (Analyze_Pragma): Verify the placement of pragma + Loop_Variant with respect to an enclosing loop (if any). + (Contains_Loop_Entry): Update the parameter profile and all + calls to this routine. + * sem_res.adb (Resolve_Call): Code reformatting. Do not ask + for the corresponding body before determining the nature of the + ultimate alias's declarative node. + +2014-08-01 Robert Dewar + + * gnat1drv.adb, sem_ch4.adb: Minor reformatting. + +2014-08-01 Robert Dewar + + * sem_eval.adb (Rewrite_In_Raise_CE): Don't try to reuse inner + constraint error node since it is a list member. + +2014-08-01 Robert Dewar + + * sem_warn.adb: Minor reformatting. + +2014-08-01 Eric Botcazou + + * einfo.adb (Underlying_Type): Return the underlying full view + of a private type if present. + * freeze.adb (Freeze_Entity): + Build a single freeze node for partial, full and underlying full + views, if any. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Add a + missing guard before the access to the Underlying_Full_View. + * gcc-interface/trans.c (process_freeze_entity): Deal with underlying + full view if present. + * gcc-interface/utils.c (make_dummy_type): Avoid superfluous work. + +2014-08-01 Ed Schonberg + + * sem_res.adb (Resolve_Entry_Call): When an entry has + preconditions, the entry call is wrapped in a procedure call + that incorporates the precondition checks. To prevent a double + expansion, with possible duplication of extra formals, that + procedure call must only be pre-analyzed and resolved. Expansion + takes place upon return to the caller Resolve_Call. + +2014-08-01 Hristian Kirtchev + + * sem_res.adb (Resolve_Call): Do not perform + GNATprove-specific inlining while within a generic. + +2014-08-01 Ed Schonberg + + * sem_ch4.adb (Analyze_Case_Expression): Handle properly a + case expression with incompatible alternatives, when the first + alternative is overloaded. + +2014-08-01 Ed Schonberg + + * sem_res.adb (Check_Parameterless_Call): Use Relocate_Node + to create the name of the parameterless call, rather than + New_Copy, to preserve the tree structure when the name is a + complex expression, e.g. a selected component that denotes a + protected operation, whose prefix is itself a selected component. + +2014-08-01 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Use + Unit_Declaration_Node to retrieve body when inlining, to handle + properly subprogram child units. + +2014-08-01 Robert Dewar + + * sem_attr.adb: Minor reformatting. + +2014-08-01 Vincent Celier + + * debug.adb: Minor documentation addition for -dn switch. + +2014-08-01 Robert Dewar + + * sem_aggr.adb, exp_ch9.adb, sem_prag.adb, sem_util.adb, + sem_attr.adb, sem_eval.ads, sem_cat.adb, sem_ch13.adb: Improve + documentation of Is_Static_Expression vs Is_OK_Static_Expression. + In several places, use the Is_OK version as suggested by the spec. + +2014-08-01 Vincent Celier + + * gnatcmd.adb: Revert last change which was not correct. + +2014-08-01 Hristian Kirtchev + + * freeze.adb (Find_Constant): Ensure that the constant being + inspected is still an object declaration (i.e. not a renaming). + +2014-08-01 Ed Schonberg + + * sem_ch5.adb (Analyze_Loop_Parameter_Specification): a) + An attribute_reference to Loop_Entry denotes an iterator + specification: its prefix is an object, as is the case for 'Old. + b) If the domain of iteration is an expression whose type has + the Iterable aspect defined, this is an iterator specification. + +2014-08-01 Robert Dewar + + * gnatcmd.adb: Minor reformatting. + +2014-08-01 Robert Dewar + + * atree.ads (Info_Messages): New counter. + * err_vars.ads: Minor comment update. + * errout.adb (Delete_Warning_And_Continuations): Deal + with new Info_Messages counter. + (Error_Msg_Internal): ditto. + (Delete_Warning): ditto. + (Initialize): ditto. + (Write_Error_Summary): ditto. + (Output_Messages): ditto. + (To_Be_Removed): ditto. + * erroutc.adb (Delete_Msg): Deal with Info_Messages counter. + (Compilation_Errors): ditto. + * errutil.adb (Error_Msg): Deal with Info_Messages counter. + (Finalize): ditto. + (Initialize): ditto. + * sem_prag.adb (Analyze_Pragma): Minor comment addition. + * gnat_ugn.texi: Document that -gnatwe does not affect info + messages. + +2014-08-01 Robert Dewar + + * debug.adb: Document debug switch -gnatd.Z. + * sem.adb (Semantics): Force expansion on in no or configurable + run time mode. + +2014-08-01 Ed Schonberg + + * sem_ch5.adb (Analyze_Loop_Parameter_Specification): An + unchecked conversion denotes an iterator specification. Such a + conversion will be inserted in the context of an inlined call + when needed, and its argument is always an object. + +2014-08-01 Robert Dewar + + * make.adb, makeutl.ads: Minor reformatting. + * debug.adb, opt.ads: Clarify documentation of Front_End_Inlining and + Back_End_Inlining. + +2014-08-01 Tristan Gingold + + * gnatcmd.adb (GNATCmd): Set AAMP_On_Target using command name. + +2014-08-01 Javier Miranda + + * gnat1drv.adb (Adjust_Global_Switches): Reverse meaning of + -gnatd.z. + * debug.adb: Updating documentation. + * exp_ch6.adb (Expand_Call): Remove assertion. + +2014-08-01 Robert Dewar + + * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, sem_util.adb, + sem_res.adb: Minor reformatting. + +2014-08-01 Vincent Celier + + * make.adb (Initialize): Set Keep_Temporary_Files to True when + -dn is specified. + * makeusg.adb: Add line for new switch --keep-temp-files. + * makeutl.ads (Keep_Temp_Files_Option): New constant String. + * opt.ads (Keep_Temporary_Files): Document that it is also used + by gnatmake and gprbuild. + * switch-m.adb: Recognize new switch --keep-temp-files. + +2014-08-01 Tristan Gingold + + * sem_ch9.adb (Analyze_Task_Type_Declaration): Move code from ... + * exp_ch9.adb (Make_Task_Create_Call): ... here. + +2014-08-01 Vincent Celier + + * gnat1drv.adb: Do not try to get the target parameters when + invoked with -gnats. + +2014-08-01 Hristian Kirtchev + + * exp_ch7.adb (Find_Last_Init): Nothing to do for an object + declaration subject to No_Initialization. + +2014-08-01 Ed Schonberg + + * sem_aggr.adb (Resolve_Array_Aggregate): Reject choice that + is a subtype with dynamic predicates, or a non-static subtype + with predicates. + * sem_ch3.adb (Analyze_Number_Declaration): Reject qualified + expression if subtype has a dynamic predicate. + (Constrain_Index): Reject subtype indication if subtype mark + has predicates. + (Inerit_Predicate_Flags): Inherit Has_Predicates as well. + (Make_Index): If index is a subtype indication, itype inhereits + predicate flags for subsequent testing. + * sem_ch5.adb (Analyze_Loop_Parameter_Specification): New + procedure Check_Predicate_Use, to reject illegal uses of domains + of iteration that have dynamic predicates. + * sem_res.adb (Resolve_Slice): Reject slices given by a subtype + indication to which a predicate applies. + * sem_util.adb (Bad_Predicated_Subtype_Use): Add guard to + prevent cascaded errors when subtype is invalid. + +2014-08-01 Robert Dewar + + * sem_ch10.adb: Minor reformatting. + +2014-08-01 Ed Schonberg + + * sem_ch6.adb (Same_Generic_Actual): Make function symmetric, + because either type may be a subtype of the other. + +2014-08-01 Vincent Celier + + * makeusg.adb: Add documentation for debug switch -dn. + +2014-08-01 Ed Schonberg + + * sem_dim.adb (Process_Minus, Process_Divide): Label dimension + expression with standard operator and type, for pretty-printing + use, when in ASIS_Mode. When generating code dimensional analysis + is not involved and dimension expressions are handled statically, + and other operators are resolved in the usual way. + +2014-08-01 Ed Schonberg + + * sem_ch3.adb (Build_Derived_Record_Type): Remove setting of + Parent_Subtype in ASIS mode, leads to several failures. + * sem_ch4.adb (Analyze_Selected_Component): In an instance, + if the prefix is a type extension, check whether component is + declared in the parent type, possibly in a parent unit. Needed + in ASIS mode when Parent_Subtype is not set. + +2014-08-01 Robert Dewar + + * sem_prag.adb: Minor reformatting. + * s-regpat.adb: Minor reformatting. + * sem_ch3.adb (Analyze_Object_Declaration): Do not set + Treat_As_Volatile on constants. + +2014-08-01 Tristan Gingold + + * exp_ch9.adb (Make_Task_Create_Call): Improve error message. + +2014-08-01 Ed Schonberg + + * sem_ch10.adb (Analyze_Compilation_Unit): Do not place a + warning on a with_clause created for the renaming of a parent + unit in an explicit with_clause. + +2014-08-01 Ed Schonberg + + * sem_ch13.adb (Analyze_Aspect_Specifications, case Aspect_Import): + Set Is_Imported flag at once, to simplify subsequent legality + checks. Reject the aspect on an object whose declaration has an + explicit initial value. + * sem_prag.adb (Process_Import_Or_Interface): Use original node + to check legality of an initial value for an imported entity. + Set Is_Imported flag in case of error to prevent cascaded errors. + Do not set the Is_Imported flag if the pragma comes from an + aspect, because it is already done when analyzing the aspect. + +2014-08-01 Emmanuel Briot + + * g-regpat.adb (Parse): Add support for non-capturing parenthesis. + +2014-08-01 Robert Dewar + + * sem_ch7.adb, einfo.adb, einfo.ads, sem_ch13.adb: Minor change of + identifier name. + +2014-08-01 Hristian Kirtchev + + * sem_ch3.adb (Analyze_Object_Contract): Enable the volatility + checks when the related variable comes from source. + * sem_res.adb (Resolve_Actuals): Enable the volatility checks + when the related actual parameter comes from source. Update comment. + * freeze.adb (Freeze_Record_Type): Do not freeze the designated + type of an array of pointers when the designated type is + class-wide and its root type is the record being currently frozen. + +2014-08-01 Ed Schonberg + + * sem_ch5.adb (Analyze_Iterator_Specification): Preserve Ekind + of renaming declaration created for domain of iteration. + * sem_aggr.adb (Resolve_Array_Aggregate): Better placement + for error messages on aggregates whose index subtypes have + predicates. The new placement avoids posting messages on previous + subtype declarations rather than on the aggregate itself. + * sem_disp.adb (Is_Inherited_Public_Operation): New predicate for + Add_Dispatching_Operation, to handle properly the overriding of + the predefined operations on controlled types, when the partial + view of a type is not visibly controlled. + +2014-08-01 Ben Brosgol + + * gnat_ugn.texi: Add tutorial on portable fixed-point types as an + appendix. + +2014-08-01 Hristian Kirtchev + + * einfo.adb (Is_Hidden_Non_Overridden_Subprogram): Remove the + assertion check as the attribute is defined for all entities. + (Set_Is_Hidden_Non_Overridden_Subprogram): Remove the assertion + check as the attribute is defined for all entities. + * einfo.ads Update the documentation of attribute + Is_Hidden_Non_Overridden_Subprogram. + * sem_ch7.adb (Install_Package_Entity): No need to check the + entity kind of the Id. + * sem_ch13.adb (Hide_Matching_Homograph): Update the comment on + usage. Ensure that the homographs are of the same entity kind + and not fully conformant. + (Hide_Non_Overridden_Subprograms): Update the comment on usage. + +2014-08-01 Robert Dewar + + * inline.adb: Minor code reorganization. + * sem_ch12.adb, s-tasdeb.ads: Minor reformatting. + +2014-08-01 Robert Dewar + + * inline.adb, s-os_lib.ads: Minor reformatting. + +2014-08-01 Arnaud Charlet + + * s-tasdeb.ads, s-tasdeb.adb (Master_Hook, Master_Completed_Hook): New. + * s-tassta.adb (Task_Wrapper, Vulnerable_Complete_Master): Call new + hooks. + +2014-08-01 Yannick Moy + + * inline.adb (Cannot_Inline): Issue info message instead of + warning for subprograms not inlined in GNATprove mode. + * sem_res.adb (Resolve_Call): Take body into account for deciding + whether subprogram can be inlined in GNATprove mode or not. + +2014-08-01 Claire Dross + + * exp_util.ads (Get_First_Parent_With_Ext_Axioms_For_Entity): Renaming + of Get_First_Parent_With_External_Axiomatization_For_Entity for + shorter. + * sem_ch12.adb (Analyze_Associations): Only call Build_Wrapper + for parameters of packages with external axiomatization. + +2014-08-01 Robert Dewar + + * sem_res.adb: Minor comment addition. + +2014-08-01 Arnaud Charlet + + * s-crtl.ads, i-cstrea.ads, adaint.c, adaint.h, osint.adb, + s-fileio.adb (__gnat_fopen, __gnat_freopen): Remove vms_form parameter, + no longer used. + * s-os_lib.ads: Minor reformatting. + +2014-08-01 Arnaud Charlet + + * exp_attr.adb (Is_Inline_Floating_Point_Attribute): Restore more + completely previous code since only GCC back-ends are prepared + to handle e.g. 'Machine attribute. + * targparm.adb, targparm.ads: Remove remaining refs and + handling of OpenVMS_On_Target, VAX_Float_On_Target and + RTX_RTSS_Kernel_Module_On_Target. + * hostparm.ads (OpenVMS, Max_Debug_Name_Length): Removed, + no longer used. + +2014-08-01 Robert Dewar + + * exp_dist.adb, exp_attr.adb: Minor reformatting. + * sem_ch3.adb, mlib-tgt-specific-hpux.adb, a-direct.ads, + a-synbar-posix.adb, exp_ch9.adb, sem_ch10.adb, sem_prag.adb, + sem_ch12.adb, sem.ads, sem_res.adb, s-exctra.adb, s-soflin.ads, + g-alveop.ads, sem_ch8.adb, vxaddr2line.adb, sem_cat.ads: Remove + improper use of shall. + +2014-08-01 Robert Dewar + + * sem_aggr.adb, exp_atag.adb, layout.adb, nlists.adb, nlists.ads, + exp_attr.adb, exp_ch9.adb, par-ch12.adb, exp_aggr.adb, + exp_ch3.adb: Minor reformatting & code reorganization. + +2014-08-01 Robert Dewar + + * gnat_rm.texi: Remove VMS specific rules for pragma Ident. + * Makefile.rtl, adaint.c, gnat_rm.texi, s-asthan.adb, s-asthan.ads, + s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads, + s-po32gl.adb, s-po32gl.ads, s-vaflop.adb, s-vaflop.ads, s-vmexta.adb, + s-vmexta.ads, sem_vfpt.adb, sem_vfpt.ads, socket.c: Remove VMS specific + code. + * gcc-interface/decl.c, gcc-interface/Makefile.in, + gcc-interface/Make-lang.in: Ditto. Also remove refs to rTX. + +2014-08-01 Pascal Obry + + * s-os_lib.ads: Rename File_Size to Large_File_Size. + +2014-08-01 Robert Dewar + + * a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads, + a-numaux-darwin.adb, a-numaux-darwin.ads, a-numaux.ads, + a-numaux-libc-x86.ads: Fix bad package header comments. + * elists.ads, elists.adb (Append_New_Elmt): New procedure. + * gnat_rm.texi, a-calend.adb, gnatcmd.adb, einfo.adb, einfo.ads, + checks.adb, sem_prag.adb, sem_prag.ads, rtsfind.ads, freeze.adb, + sem_util.adb, sem_attr.adb, exp_dbug.adb, exp_dbug.ads, gnat1drv.adb, + targparm.adb, targparm.ads, exp_ch6.adb, switch-b.adb, s-shasto.ads, + stand.ads, s-auxdec.ads, opt.adb, opt.ads, mlib-tgt.ads, s-fatgen.adb, + s-fatgen.ads, system.ads, snames.ads-tmpl, s-stalib.ads, + s-os_lib.adb: Remove VMS-specific code. + +2014-08-01 Arnaud Charlet + + * exp_attr.adb (Is_Inline_Floating_Point_Attribute): Revert to + previous state in CodePeer_Mode. + +2014-08-01 Robert Dewar + + * hostparm.ads: Put back definition of OpenVMS as False to aid + the transition process. + * sem_ch7.adb: Minor reformatting. + * prj-env.adb: Minor code fix. + * gnat_rm.texi: Complete previous change. + * sem_ch3.adb: Minor reformatting. + * sem_ch6.adb: Minor reformatting. + * sem_elab.adb: Minor reformatting. + * exp_strm.adb: Complete previous change. + +2014-08-01 Vincent Celier + + * sem_warn.adb (Warn_On_Unreferenced_Entity): Do not issue a + warning when a constant is unreferenced and its type has pragma + Unreferenced_Objects. + +2014-08-01 Hristian Kirtchev + + * einfo.adb: Flag2 is now known as + Is_Hidden_Non_Overridden_Subprogram. + (Is_Hidden_Non_Overridden_Subprogram): New routine. + (Set_Is_Hidden_Non_Overridden_Subprogram): New routine. + (Write_Entity_Fields): Output Flag2. + * einfo.ads: New attribute Is_Hidden_Non_Overridden_Subprogram + along with occurrences in entities. + (Is_Hidden_Non_Overridden_Subprogram): New routine and pragma Inline. + (Set_Is_Hidden_Non_Overridden_Subprogram): New routine + and pragma Inline. + * sem_ch7.adb (Install_Package_Entity): Do not enter implicitly + declared non-overriden homographs into visibility. + * sem_ch13.adb (Freeze_Entity_Checks): Hide all + implicitly declared non-overriden homographs. + (Hide_Non_Overridden_Subprograms): New routine. + +2014-08-01 Robert Dewar + + * snames.ads-tmpl, s-os_lib.adb, s-os_lib.ads, s-fileio.adb: Remove + VMS-specific code. + * prj-conf.adb: Minor reformatting. + * xr_tabls.adb (Read_File): Restore code which was enabled on + non VMS platforms before. + * prj-env.adb (Initialize_Default_Project_Path): Ditto. + * sem_ch5.adb: Minor reformatting. + * lib-writ.adb, lib-writ.ads, bindgen.adb, sem_vfpt.adb, + sem_vfpt.ads, ali.adb, ali.ads, opt.ads, bcheck.adb, exp_strm.adb: + Remove VMS-specific code. + +2014-08-01 Vincent Celier + + * make.adb (Await_Compile): Remove loop that was only needed + for VMS. + +2014-08-01 Robert Dewar + + * a-calcon.ads, a-direct.adb, a-dirval-mingw.adb, a-dirval.adb, + a-dirval.ads, a-except-2005.adb, a-excpol-abort.adb, + a-numaux-darwin.ads, a-numaux.ads, bindgen.adb, bindusg.adb, + einfo.adb, einfo.ads, err_vars.ads, errout.ads, errutil.adb, + exp_ch3.adb, exp_ch4.adb, exp_ch7.adb, exp_ch7.ads, fname-uf.adb, + fname.adb, fname.ads, freeze.adb, g-debpoo.adb, g-dirope.ads, + g-excact.ads, g-expect.ads, g-socket.adb, g-socket.ads, g-sothco.ads, + g-traceb.ads, gnat_rm.texi, gnatlink.adb, gnatls.adb, i-cstrea.adb, + krunch.adb, krunch.ads, layout.adb, lib-util.adb, make.adb, + mlib.adb, osint-b.adb, osint-b.ads, osint-c.adb, osint.adb, + osint.ads, output.ads, par.adb, prj-conf.adb, prj-env.adb, + prj-makr.adb, prj-nmsc.adb, prj.adb, prj.ads, repinfo.adb, rtsfind.adb, + rtsfind.ads, s-excmac-gcc.ads, s-fatgen.adb, s-mastop.ads, + s-parame-ae653.ads, s-parame-hpux.ads, s-parame-vxworks.ads, + s-parame.ads, s-soflin.ads, s-stoele.adb, s-tasini.adb, + s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-mingw.ads, + s-taspri-posix-noaltstack.ads, s-taspri-posix.ads, + s-taspri-solaris.ads, s-taspri-vxworks.ads, s-trasym.ads, + sem_ch12.adb, sem_ch4.adb, sem_eval.adb, sem_intr.adb, sem_mech.adb, + sem_mech.ads, sem_prag.adb, sem_res.adb, sem_util.adb, sem_util.ads, + sinfo.adb, sinfo.ads, sinput-c.adb, symbols.ads, targparm.adb, + treepr.adb, types.ads, xr_tabls.adb, xr_tabls.ads: Remove VMS + specific code and comments. + +2014-08-01 Ed Schonberg + + * sem_ch5.adb (Analyze_Iterator_Specification): New procedure + Check_Reverse_Iteration, to verify the legality of the Reverse + indicator on various container types, and to detect illegal + reverse iterations on containers that only supoort forward + iteration. + +2014-08-01 Vincent Celier + + * gnatcmd.adb: Remove the VMS specific stuff. Integrate in + procedure GNATCmd the relevant declarations from packages VMS_Cmds + and VMS_Conv. + * gnatcmd.ads: Update comments to remove any trace of VMS + +2014-08-01 Ed Schonberg + + * sem_ch12.adb: sem_ch12.adb (Build_Wrapper): Capture entity for + defaulted actual that is an operator, before building wrapper + for it in GNATprove mode. Restrict construction of wrapper to + actuals that are operators. + +2014-08-01 Vincent Celier + + * vms_conv.adb, vms_conv.ads, vms_data.ads, vms_cmds.ads: Remove VMS + specific packages no longer needed. + +2014-08-01 Pascal Obry + + * s-os_lib.ads (System.CRTL): Move with clause to body. + (File_Size): New type. + (File_Length64): Use it. + (File_Length): Restore previous spec returning a Long_Integer. + * s-os_lib.adb (System.CRTL): Move with clause here. + +2014-08-01 Vincent Celier + + * mlib-prj.adb: Update comments to remove any mention of VMS. + +2014-08-01 Arnaud Charlet + + * ug_words, xgnatugn.adb, gcc-interface/Make-lang.in: Remove + xgnatugn.adb and ug_words. + +2014-08-01 Eric Botcazou + + * exp_attr.adb (Expand_N_Attribute_Reference): Check whether + expansion can be avoid for Machine, Model and Rounding. + (Is_Inline_Floating_Point_Attribute): Return true for Machine + & Model, as well as Rounding if wrapped in a conversion to an + integer type. + * sem_res.adb (Simplify_Type_Conversion): Deal with Rounding as well. + * gcc-interface/gigi.h (fp_arith_may_widen): Declare. + * gcc-interface/utils.c (fp_arith_may_widen): New global variable. + * gcc-interface/misc.c (enumerate_modes): Compute it. + * gcc-interface/trans.c (FP_ARITH_MAY_WIDEN): Delete. + (lvalue_required_for_attribute_p): Deal with Descriptor_Size, + Machine and Model. + (Attribute_to_gnu) : New case. + ): Likewise. + (convert_with_check): Test + fp_arith_may_widen variable. + +2014-08-01 Pascal Obry + + * adaint.h (GNAT_FOPEN): New definition for Windows. + (GNAT_OPEN): Likewise. + (GNAT_STAT): Likewise. + (GNAT_FSTAT): Likewise. + (GNAT_LSTAT): Likewise. + (GNAT_STRUCT_STAT): Likewise. + * adaint.c (__gnat_stat): Fix computation of file size for + Windows. + +2014-08-01 Vincent Celier + + * Makefile.rtl: Minor comment update. + +2014-08-01 Vincent Celier + + * Make-generated.in: Remove dependencies for vms-help. + +2014-08-01 Gary Dismukes + + * makeutl.ads, opt.ads: Minor grammar fixes. + * makeutl.adb: Minor code reorganization. + +2014-08-01 Arnaud Charlet + + * gcc-interface/Makefile.in, gcc-interface/Make-lang.in, + gnatsym.adb: Remove gnatsym (VMS only tool). + +2014-08-01 Ben Brosgol + + * gnat_ugn.texi, projects.texi, xgnatugn.adb: Removed all VMS + conditionalization from gnat_ugn.texi and projects.texi, and updated + (considerably simplified) xgnatugn.adb, to be removed soon. + +2014-08-01 Vincent Celier + + * debug.adb: Remove doc for gnatmake/gprbuild switch -ds. + * make.adb (List_Bad_Compilations): Use Opt.No_Exit_Message + instead of Debug.Debug_Flag_S. + * makeutl.adb (Finish_Program, Fail_Program): Use Opt flag + No_Exit_Message instead of Debug.Debug_Flag_S to suppress exit + error messages. + * makeutl.ads (No_Exit_Message_Option): New constant string + for switch --no-exit-message. + * opt.ads (No_Exit_Message): New Boolean flag, defaulted to False. + * switch-m.adb (Scan_Make_Switches): Recognize new switch + --no-exit-message. + +2014-08-01 Arnaud Charlet + + * exp_vfpt.adb, exp_vfpt.ads: Removed, no longer used. + * gcc-interface/Make-lang.in: Remove exp_vfpt.o + +2014-08-01 Javier Miranda + + * inline.ads (Inlined_Calls, Backend_Calls, + Backend_Inlined_Subps, Backend_Not_Inlined_Subps): Declarations + moved to inline.adb (Cannot_Inline): Update documentation. + (Check_And_Build_Body_To_Inline): Renamed. + (List_Inlining_Info): Subprogram moved here from package exp_ch6. + * inline.adb (Check_Inlining_Restrictions): New local variable. + (Inlined_Calls, Backend_Calls, Backend_Inlined_Subps, + Backend_Not_Inlined_Subps): Declarations moved here + from inline.ads (Number_Of_Statements): Removed. + (Remove_Pragmas): Avoid duplicated version of this subprogram. + (Build_Body_To_Inline): Code cleanup. + (Build_Body_To_Inline.Has_Excluded_Statament): Removed. + (Check_And_Build_Body_To_Inline): Renamed. Code cleanup. + (Check_Body_To_Inline): Removed. + (Generate_Body_To_Inline): Renamed as Generate_Subprogram_Body. + (Has_Excluded_Declaration): No action if not + Check_Inlining_Restrictions. + (Has_Excluded_Statement): No action if not Check_Inlining_Restrictions. + (Initialize): Initialize the lists of inlined calls and subprograms. + (List_Inlining_Info): Subprogram moved here from package exp_ch6. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Update call + to Check_And_Build_Body_To_Inline since it has been renamed as + Check_And_Split_Unconstrained_Function + * exp_ch6.ad[sb] (List_Inlining_Info): Subprogram moved to + package inline. + * gnat1drv.adb Update call to Inline.List_Inlining_Info. + +2014-08-01 Vincent Celier + + * debug.adb: Add documentation for new debug switch -ds. + * make.adb (List_Bad_Compilations): Do not issue any message + when switch -ds is specified. + * makeutl.adb (Fail_Program): Do not issue any message when + -ds is specified. + (Finish_Program): Ditto. + +2014-08-01 Robert Dewar + + * s-exnint.adb, s-exnint.ads, s-wwdwch.ads, s-carsi8.ads, + s-casi32.ads, indepsw.adb, a-timoau.ads, s-explli.adb, s-explli.ads, + s-casi16.ads, s-powtab.ads, g-wistsp.ads, a-ztmoau.adb, + indepsw-gnu.adb, s-imgllb.ads, types.adb, gnat.ads, s-proinf.adb, + indepsw-aix.adb, s-caun64.ads, s-imgllw.ads, s-traces-default.adb, + s-vxwork-x86.ads, s-expllu.adb, s-exnlli.adb, s-exnlli.ads, + s-traces.adb, widechar.ads, stand.adb, s-expint.adb, + s-tratas-default.adb, s-expint.ads, s-geveop.ads, s-caun32.ads, + s-expuns.adb, s-mantis.adb, s-mantis.ads, s-caun16.ads, s-tasinf.adb, + s-memcop.ads, s-dsaser.ads, s-imgbiu.ads, a-szmzco.ads, g-strspl.ads, + s-casi64.ads, g-zstspl.ads, indepsw-mingw.adb, tree_io.adb, + s-boarop.ads, uname.ads, s-fore.adb, s-fore.ads, g-timsta.adb, + g-timsta.ads, s-assert.adb, s-vector.ads, s-tratas.adb, + s-tratas.ads: Minor fix to copyright notices. + +2014-08-01 Eric Botcazou + + * sinfo.ads: Remove long obsolete comment. +2014-08-01 Ed Schonberg + + * sem_util.adb: Add guard to setting of No_Predicate_On_Actual. + * sem_ch3.adb: Minor reformatting. + +2014-08-01 Pascal Obry + + * cstreams.c: Only enable large file support on know supported + platforms. Add missing defines/includes. + +2014-08-01 Ed Schonberg + + * einfo.ads, einfo.adb New flags No_Predicate_On_Actual and + No_Dynamic_Predicate_On_Actual, to enforce the generic contract + on generic units that contain constructs that forbid subtypes + with predicates. + * sem_ch3.adb (Analyze_Subtype_Declaration, Process_Subtype): + Inherit flags indicating the presence of predicates in subtype + declarations with and without constraints. + (Inherit_Predicate_Flags): Utility for the above. + * sem_util.adb (Bad_Predicated_Subtype_Use): In a generic context, + indicate that the actual cannot have predicates, and preserve + warning. In an instance, report error if actual has predicates + and the construct appears in a package declaration. + * sem_ch12.adb (Diagnose_Predicated_Actual): Report error + for an actual with predicates, if the corresponding formal + carries No_Predicate_On_Actual or (in the case of a loop) + No_Dynamic_Predicate_On_Actual. + * sem_ch13.adb (Build_Predicate_Functions); Do not build a + Static_Predicate function if the type is non-static (in the + presence of previous errors), + * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Set flag + No_Dynamic_Predicate_On_Actual in a generic context, to enforce + generic contract on actuals that cannot have predicates. + +2014-08-01 Pascal Obry + + * a-direct.adb (C_Size): Returns an int64. + * osint.adb (System.CRTL): New with clause. + (File_Length.Internal): Returns an int64. + * s-os_lib.ads (File_Length): Returns an int64. + +2014-08-01 Robert Dewar + + * gnatchop.adb, gnatcmd.adb, make.adb, mlib-prj.adb, bindgen.adb, + mlib.ads, butil.adb, clean.adb, binde.adb, gnatls.adb, gnatname.adb, + osint.adb, krunch.adb: Minor reformatting. + +2014-08-01 Robert Dewar + + * inline.adb, inline.ads, fe.h, einfo.adb, einfo.ads, sem_util.adb, + sem_util.ads, exp_ch4.adb, exp_ch11.adb, exp_ch6.adb, cstand.adb, + sem_mech.adb, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb, snames.ads-tmpl: + Remove VMS-specific code. + * gcc-interface/decl.c, gcc-interface/trans.c: Ditto. + +2014-08-01 Arnaud Charlet + + * binde.adb, bindgen.adb, butil.adb, clean.adb, gnatbind.adb, + gnatchop.adb, gnatcmd.adb, gnatls.adb, gnatname.adb, krunch.adb, + make.adb, makeutl.adb, memtrack.adb, mlib-prj.adb, mlib.adb, + mlib.ads, tempdir.adb: Remove VMS handling. + +2014-08-01 Pascal Obry + + * adaint.h, adaint.c (__gnat_file_length): Returns an __int64. + (__gnat_named_file_length): Likewise. + (__gnat_file_length_attr): Likewise. + * a-direct.adb (C_Size): Use size_t as returned type. + * osint.adb (File_Length): Adjust spec for Internal routine + (returns size_t). + * s-os_lib.adb (File_Length): Now returns a CRTL.size_t. + (System.CRTL): With claused moved to spec. + * s-os_lib.ads (System.CRTL): With clause moved to here. + +2014-08-01 Pascal Obry + + * adaint.h, adaint.c (__gnat_open): Added. + * s-crtl.ads (open): Import __gnat_open for large file support. + +2014-08-01 Robert Dewar + + * sem_case.adb (Dup_Choice): Improve message for integer constants. + +2014-08-01 Arnaud Charlet + + * gnatlink.adb: Remove special handling of VMS, RTX and JVM. + +2014-08-01 Pascal Obry + + * adaint.h (GNAT_OPEN): Defines as open64 where supported. + * adaint.c (GNAT_OPEN): Uses new macro where needed. + +2014-07-31 Eric Botcazou + + * gcc-interface/utils.c (lookup_and_insert_pad_type): New function + extracted from... + (maybe_pad_type): ...here. Call it to canonicalize the pad type. + * gcc-interface/gigi.h: Update comment. + +2014-07-31 Javier Miranda + + * debug.adb Remove documentation of -gnatd.k (no longer needed). + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Code cleanup. + * inline.ads (Backend_Inlined_Subps): New + Elist. (Backend_Not_Inlined_Subps): New Elist. + (Has_Excluded_Declaration): Declaration previously located in + * inline.adb (Has_Excluded_Statement): Declaration previously + located in inline.adb + * inline.adb (Has_Single_Return): Moved out of + Build_Body_To_Inline to avoid having duplicated code. + (Number_Of_Statements): New subprogram. + (Register_Backend_Inlined_Subprogram): New subprogram. + (Register_Backend_Not_Inlined_Subprogram): New subprogram. + (Add_Inlined_Subprogram): Register backend inlined subprograms and + also register subprograms that cannot be inlined by the backend. + (Has_Excluded_Declaration): Moved out of Build_Body_To_Inline + to avoid having duplicated code. Replace occurrences of + Debug_Flag_Dot_K by Back_End_Inlining. + * sem_res.adb (Resolve_Call): Code cleanup. + * exp_ch6.adb (Expand_Call): Complete previous patch. Replace + occurrence of Debug_Flag_Dot_K by Back_End_Inlining. + (List_Inlining_Info): Add listing of subprograms passed to the + backend and listing of subprograms that cannot be inlined by + the backend. + * sem_ch12.adb, sem_ch3.adb Replace occurrences of + Debug_Flag_Dot_K by Back_End_Inlining. + +2014-07-31 Robert Dewar + + * nlists.ads: Minor code fix (remove unwise Inline for + List_Length). + +2014-07-31 Arnaud Charlet + + * einfo.adb: Remove VMS specific code. + * exp_attr.adb: Remove VAX specific code. + * set_targ.adb: Remove handling of VAX_Float. + * sem_vfpt.adb: Remove references to Vax_Native. + * sem_attr.adb (Is_VAX_Float): Remove ref to VAX_Native. + +2014-07-31 Robert Dewar + + * sem_ch4.adb: Minor reformatting. + +2014-07-31 Arnaud Charlet + + * gcc-interface/trans.c, gcc-interface/misc.c: Remove references + to VMS. Misc clean ups. + * gcc-interface/Makefile.in (gnatlib-shared-vms): Remove. + +2014-07-31 Robert Dewar + + * cstand.adb, einfo.adb, einfo.ads, errout.adb, exp_attr.adb, + exp_prag.adb, frontend.adb, interfac.ads, + par-prag.adb, s-auxdec.ads, s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, + s-fvaffl.ads, s-fvagfl.ads, s-vaflop.ads, sem_attr.adb, sem_attr.ads, + sem_ch13.adb, sem_ch3.adb, sem_ch8.adb, sem_prag.adb, snames.adb-tmpl, + snames.ads-tmpl: Remove obsolete VMS-specific code. + +2014-07-31 Robert Dewar + + * sem_ch3.adb, sem_ch13.adb: Minor reformatting. + +2014-07-31 Arnaud Charlet + + * a-intnam-linux.ads: Minor: update obsolete comments. + * s-taasde.adb: Minor: fix comment header. + +2014-07-31 Arnaud Charlet + + * s-auxdec-vms-ia64.adb, s-parame-vms-alpha.ads, s-asthan-vms-alpha.adb, + s-tpopde-vms.adb, s-mastop-vms.adb, s-tpopde-vms.ads, s-taprop-vms.adb, + mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads, s-inmaop-vms.adb, + g-enblsp-vms-alpha.adb, s-ransee-vms.adb, s-osprim-vms.adb, + s-osprim-vms.ads, g-socthi-vms.adb, g-socthi-vms.ads, system-vms_64.ads, + s-osinte-vms.adb, s-osinte-vms.ads, g-eacodu-vms.adb, + s-vaflop-vms-alpha.adb, s-parame-vms-ia64.ads, a-dirval-vms.adb, + a-caldel-vms.adb, mlib-tgt-specific-vms-alpha.adb, s-tasdeb-vms.adb, + symbols-vms.adb, a-intnam-vms.ads, g-expect-vms.adb, + symbols-processing-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb, + s-traent-vms.adb, s-traent-vms.ads, i-cstrea-vms.adb, a-numaux-vms.ads, + symbols-processing-vms-ia64.adb, s-interr-vms.adb, s-memory-vms_64.adb, + s-memory-vms_64.ads, g-enblsp-vms-ia64.adb, s-taspri-vms.ads, + s-auxdec-vms_64.ads, s-intman-vms.adb, s-intman-vms.ads, + s-tpopsp-vms.adb, s-asthan-vms-ia64.adb, a-calend-vms.adb, + a-calend-vms.ads, system-vms-ia64.ads, s-auxdec-vms-alpha.adb: Removed. + * namet.h (Is_Non_Ada_Error): Remove. + +2014-07-31 Robert Dewar + + * exp_util.adb, lib-writ.adb, sem_ch12.adb, s-direio.adb: Minor + reformatting. + +2014-07-31 Hristian Kirtchev + + * exp_attr.adb (Expand_Loop_Entry_Attribute): Update the comment + which demonstrates the expansion of while loops subject to + attribute 'Loop_Entry. The condition of a while loop along with + related condition actions is now wrapped in a function. Instead + of repeating the condition, the expansion now calls the function. + +2014-07-31 Ed Schonberg + + * sem_case.adb (Check_Against_Predicate): Correct off-by-one + error when reporting of missing values in a case statement for + a type with a static predicate. + (Check_Choices): Reject a choice given by a subtype to which a + Dynamic_Predicate applies. + * sem_ch3.adb (Analyze_Subtype_Declaration): Inherit + Has_Dynamic_Predicate_Aspect flag from parent. + +2014-07-31 Ed Schonberg + + * sem_ch13.adb (Analyze_Aspect_Specifications): A predicate + cannot apply to a subtype of an incomplete type. + (Is_Static_Choice): Treat an Others_Clause as static. The + staticness of the expression and of the range are checked + elsewhere. + +2014-07-31 Pascal Obry + + * adaint.h (__gnat_ftell64): Added. + (__gnat_fseek64): Added. + (__int64): Added. + * cstreams.c (__int64): Removed. + +2014-07-31 Pascal Obry + + * a-stream.ads (Stream_Element_Offset): Now a signed 64bit type. + * i-cstrea.ads, s-crtl.ads (fseek64): Offset is always a 64bit value. + (ftell64): Always returns a 64bit value. + * cstreams.c (int64): New definition. + (_FILE_OFFSET_BITS): Set to 64 to enable 64bit offset support. + (__gnat_ftell64): Always returns a 64bit value. The implemenation now + uses ftello() on UNIX. + (__gnat_fseek64): Offset is always a 64bit value. The + implementation now uses fseeko() on UNIX. + * a-ststio.adb, s-direio.adb (Set_Position): Simplify code, + always use fseek64 to set the offset. + (Size): Simplify code, always use fseek64/ftell64. + * s-direio.ads (Count): Now an int64. + * g-socket.ads (Vector_Element): Adjust definition for Length + to be a size_t. This matches the C definition and avoid using + a 64bit integer on 32bit platforms now that Count is always 64bit. + * g-socthi-mingw.adb (Ada.Streams): Removed as not used anymore. + (C_Recvmsg): Change some conversion to account for change in + Vector_Element. + (C_Sendmsg): Likewise. + +2014-07-31 Robert Dewar + + * cstand.adb (Create_Standard): Remove handling of -gnatdm flag. + * debug.adb: Remove documentation of -gnatdm flag. + * gnat1drv.adb (Adjust_Global_Switches): Remove handling of + -gnatdm flag. + +2014-07-31 Arnaud Charlet + + * lib-writ.adb (Write_Unit_Information): Fix case where U = + No_Unit. + +2014-07-31 Claire Dross + + * exp_util.adb, exp_util.ads + (Get_First_Parent_With_External_Axiomatization_For_Entity): + New routine to find the first parent of an entity with + a pragma Annotate (GNATprove, External_Axiomatization). + (Has_Annotate_Pragma_For_External_Axiomatization): New function + to check if a package has a pragma Annotate (GNATprove, + External_Axiomatization). + * einfo.ads, einfo.adb (Is_Generic_Actual_Subprogram): New + flag on the entity for the declaration created for a formal + subprogram in an instance. This is a renaming declaration, + or in GNATprove_Mode the declaration of an expression function + that captures the axiomatization of the actual. + * sem_ch6.adb (Analyze_Expression_Function): For a + Generic_Actual_Subprogram, place body immediately after the + declaration because it may be used in a subsequent declaration + in the instance. + * sem_ch12.adb (Build_Wrapper): Add code to handle instances where + the actual is a function, not an operator. Handle functions with + one and two parameters and binary and unary operators. + +2014-07-31 Pascal Obry + + * cstreams.c (__gnat_is_regular_file_fd): Removed. + * adaint.c (__gnat_is_regular_file_fd): Added. + +2014-07-31 Robert Dewar + + * exp_strm.adb: Minor reformatting. + +2014-07-31 Ed Schonberg + + * sem_ch12.adb (Build_Wrapper): New procedure, subsidiary to + Analyze_Associations, to create a wrapper around operators that + are actuals to formal subprograms. This is done in GNATProve + mode in order to propagate the contracts of the operators to + the body of the instance. + +2014-07-31 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case 'Old): The reference is + legal if within an aspect specification for a generic subprogram. + +2014-07-31 Javier Miranda + + * gnat1drv.adb (Back_End_Inlining): Set to false if + Suppress_All_Inlining is set. + * debug.adb: Adding documentation for -gnatd.z. + * inline.adb (Add_Inlined_Body): Extend the -gnatn2 + processing to -gnatn1 for calls to Inline_Always routines. + (Add_Inlined_Subprogram): Remove previous patch. + +2014-07-31 Ed Schonberg + + * sem_ch13.adb (Check_One_Function): Apply properly the static + semantic rules for indexing aspects and the functions they denote. + +2014-07-31 Javier Miranda + + * debug.adb: Complete documentation of -gnatd.z. + +2014-07-31 Bob Duff + + * gnat_ugn.texi: Minor doc fixes. + +2014-07-31 Robert Dewar + + * sem_aggr.adb (Resolve_Array_Aggregate): Fix posting of missing + index value. + +2014-07-31 Tristan Gingold + + * s-unstyp.ads (Packed_Byte): Make this type universal aliasing. + (Packed_Bytes1): Make component aliased. + +2014-07-31 Robert Dewar + + * s-unstyp.ads, s-fileio.adb: Minor reformatting. + +2014-07-31 Robert Dewar + + * inline.adb, gnat1drv.adb, exp_ch6.adb, s-fileio.adb: Minor + reformatting. + +2014-07-31 Eric Botcazou + + * gcc-interface/utils2.c ((build_binary_op): Don't set TREE_THIS_NOTRAP + on array references here, now done more selectively in trans.c. + +2014-07-31 Doug Rupp + + * gcc-interface/misc.c (gnat_init_gcc_fp(): Set flag_errno_math to 0. + +2014-07-31 Hristian Kirtchev + + * sem_util.adb (Is_Effectively_Volatile): New routine. + +2014-07-31 Fedor Rybin + + * gnat_ugn.texi: Document --test-duration option for gnattest. + +2014-07-31 Javier Miranda + Eric Botcazou + + * opt.ads (Back_End_Inlining): New variable which controls + activation of inlining by back-end expansion. + * gnat1drv.adb (Adjust_Global_Switches): Initialize Back_End_Inlining + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not build + the body to be inlined by the frontend if Back_End_Inlining + is enabled. + * exp_ch6.adb (Register_Backend_Call): Moved to inline.adb. + (Expand_Call): If backend inlining is enabled let the backend to + handle inlined subprograms. + * inline.ads (Register_Backend_Call): Moved here from exp_ch6 + * inline.adb (Register_Backend_Call): Moved here from exp_ch6. + (Add_Inlined_Subprogram): Add subprograms when Back_End_Inlining is set. + (Must_Inline): Do not return Inline_Call if Back_End_Inlining is + enabled. + * debug.adb Document -gnatd.z + * fe.h Import Back_End_Inlining variable. + * gcc-interface/utils.c (create_subprog_decl): If Back_End_Inlining is + enabled then declare attribute "always inline" + * gcc-interface/decl.c, gcc-interface/trans.c, + gcc-interface/gigi.h: Add handling of Inline_Always pragma. + +2014-07-31 Robert Dewar + + * a-ngelfu.ads: Minor comment fix. + +2014-07-31 Hristian Kirtchev + + * freeze.adb (Freeze_Record_Type): Replace all calls to + Is_SPARK_Volatile with Is_Effectively_Volatile and update + related comments. + * sem_ch3.adb (Analyze_Object_Contract, Process_Discriminants): + Replace all calls to Is_SPARK_Volatile with + Is_Effectively_Volatile and update related comments. + * sem_ch5.adb (Analyze_Iterator_Specification, + Analyze_Loop_Parameter_Specification): Replace all calls to + Is_SPARK_Volatile with Is_Effectively_Volatile and update + related comments. + * sem_ch6.adb (Process_Formals): Replace all calls to + Is_SPARK_Volatile with Is_Effectively_Volatile and update + related comments. + * sem_ch12.adb (Instantiate_Object): Replace the call to + Is_SPARK_Volatile_Object with Is_Effectively_Volatile_Object + and update related comment. + * sem_prag.adb (Analyze_External_Property_In_Decl_Part, + Analyze_Global_Item): Replace all calls to Is_SPARK_Volatile + with Is_Effectively_Volatile and update related comments. + * sem_res.adb (Resolve_Actuals, Resolve_Entity_Name): Replace + all calls to Is_SPARK_Volatile with Is_Effectively_Volatile and + update related comments. + * sem_util.adb (Has_Enabled_Property, + Variable_Has_Enabled_Property): Replace all calls + to Is_SPARK_Volatile with Is_Effectively_Volatile and + update related comments. + (Is_Effectively_Volatile): New routine. + (Is_Effectively_Volatile_Object): New routine. + (Is_SPARK_Volatile): Removed. + (Is_SPARK_Volatile_Object): Removed. + * sem_util.ads (Is_Effectively_Volatile): New routine. + (Is_Effectively_Volatile_Object): New routine. + (Is_SPARK_Volatile): Removed. + (Is_SPARK_Volatile_Object): Removed. + +2014-07-31 Pascal Obry + + * s-fileio.adb (Open): Make sure a shared file gets inserted into + the global list atomically. This ensures that the file descriptor + won't be freed because another tasks is closing the file. + +2014-07-31 Robert Dewar + + * sem_ch3.adb (Process_Range_Expr_In_Decl): Add comments on + generation of _FIRST and _LAST variables even in GNATprove_Mode. + * gnat_ugn.texi: Minor editing. + * sem_prag.adb (Ensure_Aggregate_Form): Make sure generated + aggregate is marked Comes_From_Source if argument is CFS. + +2014-07-31 Pascal Obry + + * s-fileio.adb: Remove obsolete comment. + +2014-07-31 Vincent Celier + + * a-strbou.ads ("=" (Bounded_String, Bounded_String): Add + overriding keyword before function to avoid error when compiler + is called with -gnatyO (check overriding indicators). + +2014-07-31 Tucker Taft + + * gnat_ugn.texi: Add a paragraph pointing the reader + to the "plugins" example. + +2014-07-31 Hristian Kirtchev + + * freeze.adb (Freeze_Expression): Document the + purpose of the parent chain traversal. + +2014-07-31 Robert Dewar + + * checks.ads, checks.adb (Activate_Overflow_Check): Do not set flag for + unconstrained fpt ops. + +2014-07-31 Pascal Obry + + * s-fileio.adb (Open): Make sure a shared file gets inserted into + the global list atomically. This ensures that the file descriptor + won't be freed because another tasks is closing the file. + +2014-07-31 Vincent Celier + + * projects.texi: Minor spelling error fix. + +2014-07-31 Robert Dewar + + * gnat_rm.texi: Document No_Elaboration_Code_All restriction. + * lib-writ.adb, lib-load.adb: Initialize No_Elab_Code field in unit + information. + * lib.ads, lib.adb (No_Elab_Code): New field in unit information. + * restrict.adb (Process_Restriction_Synonyms): Add handling + of No_Elaboration_Code_All. + * restrict.ads (Process_Restriction_Synonyms): Now handles + No_Elaboration_Code_All. + * sem_ch10.adb (Analyze_Context): Enforce transitive with for + No_Elaboration_Code_All. + * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): + Handle setting of No_Elab_Code in unit information. Handle + No_Elaboration_Code_All. + * snames.ads-tmpl (Name_No_Elaboration_Code): New name for + pragma processing. + (Name_No_Elaboration_Code_All): New name for pragma processing. + +2014-07-31 Eric Botcazou + + * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Reject array + types with a null range and use the Esize of the component + instead of its RM_Size to identify appropriate values. + +2014-07-31 Hristian Kirtchev + + * freeze.adb Add with and use clause for Aspects. + (Freeze_Expression): Emit an error when a volatile constant lacks + Boolean aspect Import. + (Has_Boolean_Aspect_Import): New routine. + +2014-07-31 Gary Dismukes + + * exp_util.adb: Minor reformatting. + +2014-07-31 Vincent Celier + + * errutil.adb (Error_Msg): Make sure that all components of + the error message object are initialized. + +2014-07-31 Ed Schonberg + + * sem_ch4.adb (Try_Container_Indexing): If the container type is + class-wide, use specific type to locate iteration primitives. + * sem_ch13.adb (Check_Indexing_Functions): Add legality checks for + rules in RM 4.1.6 (Illegal_Indexing): New diagnostic procedure. + Minor error message reformating. + * exp_ch5.adb (Expand_Iterator_Loop): Handle properly Iterator + aspect for a derived type. + +2014-07-31 Robert Dewar + + * debug.adb: Document debug flag d.X. + +2014-07-31 Ed Schonberg + + * sem_util.ads (Find_Specific_Type): Moved here from exp_disp.adb. + * sem_util.adb (Find_Specific_Type): If type is untagged private, + retrieve full view so that primitive operations can be located. + * exp_disp.adb Move Find_Specific_Type to sem_util. + * exp_ch4.adb (Expand_N_Op_Eq): If operands are class-wide, use + Find_Specific_Type to locate primitive equality. + * exp_util.adb (Make_CW_Equivalent_Type): A class_wide equivalent + type does not require initialization. + * exp_attr.adb (Compile_Stream_Body_In_Scope): Within an instance + body all visibility is established, and the enclosing package + declarations must not be installed. + +2014-07-31 Yannick Moy + + * sem_parg.adb, sem_prag.ads (Collect_Subprogram_Inputs_Outputs): + Make subprogram public. + +2014-07-31 Ed Schonberg + + * exp_ch9.adb (Expand_N_Protected_Type_Declaration): New + predicate Discriminated_Size, to distinguish between private + components that depend on discriminants from those whose size + depends on some other non-static expression. + +2014-07-31 Nicolas Setton + + * g-exptty.adb (Close): Fix binding to Waitpid: use the + tty version. + +2014-07-31 Ed Schonberg + + * sem_ch3.adb (Make_Index): Reject properly the use of 'Length + in a discrete range, when 'range was probably intended. + +2014-07-31 Robert Dewar + + * sem_warn.adb, sem_warn.ads (Has_Junk_Name): Moved from body to spec. + +2014-07-31 Robert Dewar + + * frontend.adb: Minor reformatting. + * sem.adb: Minor reformatting. + * sem_ch6.adb (Analyze_Null_Procedure): Set proper sloc for + identifiers on rewrite. + * par.adb: Minor comment updates. + * a-ngelfu.adb (Cos): Minor simplification. + * par-ch13.adb (Get_Aspect_Specifications): Improve messages + and recovery for bad aspect. + * exp_ch3.adb: Code clean up. + * sem_util.ads: Minor comment correction. + * sem_ch13.adb (Check_Array_Type): Properly handle large types. + * sem_ch3.adb: Code clean up. + * binderr.ads: Minor comment correction. + +2014-07-31 Ed Schonberg + + * exp_disp.adb (Expand_Interface_Conversion): A call whose + prefix is a static conversion to an interface type that is not + class-wide is not dispatching. + +2014-07-31 Robert Dewar + + * inline.adb, s-traceb.adb, s-traceb-hpux.adb, memtrack.adb, + s-traceb-mastop.adb: Minor reformatting. + +2014-07-31 Ed Schonberg + + * exp_ch3.adb (Expand_Record_Extension): In ASIS_Mode perform + expansion, to handle properly visibility of selected components + in instance bodies. + +2014-07-31 Robert Dewar + + * par-ch13.adb (Get_Aspect_Specifications): Set Inside_Depends. + * par-ch2.adb (P_Pragma): Set Inside_Depends. + * par-ch4.adb (P_Simple_Expression): Pass Inside_Depends to + Check_Unary_Plus_Or_Minus. + * scans.ads (Inside_Depends): New flag. + * scng.adb (Scan): Pass Inside_Depends to Check_Arrow. + * style.ads: Add Inside_Depends parameter to Check_Arrow Add + Inside_Depends parameter to Check_Unary_Plus_Or_Minus. + * styleg.adb (Check_Arrow): Handle Inside_Depends case. + (Check_Unary_Plus_Or_Minus): Handle Inside_Depends case. + * styleg.ads: Add Inside_Depends parameter to Check_Arrow Add. + Inside_Depends parameter to Check_Unary_Plus_Or_Minus. + +2014-07-31 Javier Miranda + + * s-vaflop.adb Move the body of function T_To_G before + T_To_D. Required for frontend inlining. + * inline.adb (Has_Excluded_Contract): New subprogram used to + check if a subprogram inlined by the frontend has contracts + which cannot be inlined. + +2014-07-31 Bob Duff + + * s-traceb.adb, s-traceb-hpux.adb, s-traceb-mastop.adb: + (Call_Chain): Add 1 to number of frames to skip, to account for + the fact that there's one more frame on the stack. + * gcc-interface/Makefile.in (s-traceb.o): Adjust rules. + +2014-07-31 Robert Dewar + + * checks.adb (Enable_Overflow_Check): More precise setting of + Do_Overflow_Check flag for division. + +2014-07-31 Eric Botcazou + + * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Reject packed + array types with implementation type. + +2014-07-31 Hristian Kirtchev + + * sem_ch10.adb (Process_State): Remove local variable Name. Add + local variable Decl. Partially declare an abstract state by + generating an entity and storing it in the state declaration. + * sem_prag.adb (Create_Abstract_State): Fully declare a + semi-declared abstract state. + +2014-07-31 Robert Dewar + + * prj-nmsc.adb: Minor reformatting. + +2014-07-31 Bob Duff + + * s-tasdeb.adb (System.Tasking.Debug): Remove + all usage of the secondary stack from this package. + +2014-07-31 Hristian Kirtchev + + * freeze.adb (Freeze_Expression): Update the loop in charge + of finding a proper insertion place for freeze nodes to handle + N_Expression_With_Actions nodes. + +2014-07-31 Robert Dewar + + * sem_util.adb, a-ngelfu.ads, prj-nmsc.adb, prj-conf.adb: Minor + reformatting. + +2014-07-31 Pascal Obry + + * prj-nmsc.adb: Minor reformatting. + +2014-07-31 Ed Schonberg + + * sem_util.adb (Has_Preelaborable_Initialization): Check that + type is tagged before checking whether a user-defined Initialize + procedure is present. + +2014-07-31 Gary Dismukes + + * a-ngelfu.ads (Sqrt): Augment postcondition. + +2014-07-31 Pascal Obry + + * prj-nmsc.adb (Check_Library_Attributes): An aggegate library + directory and ALI directory must be different than all object + and library directories of aggregated projects. + +2014-07-31 Vincent Celier + + * prj-pars.adb, prj-conf.ads, prj-conf.adb (Locate_Runtime): Move spec + to package body, as it is not called from outside. Remove argument + Project_Tree, no longer used. When runtime cannot be found, + call Raise_Invalid_Config instead of failing the program. + +2014-07-31 Robert Dewar + + * bindgen.adb (Gen_Output_File_Ada): Generate pragma Suppress + (Overflow_Check). + * gnatlink.adb (Process_Args): Remove generation of -gnato0, + no longer needed. + +2014-07-31 Robert Dewar + + * gnat_ugn.texi: Document new switch -gnato0. + * sem_ch3.ads: Minor reformatting. + * gnatlink.adb (Process_Args): Compile bind file with -gnato0 + (we do not want overflow checks when incrementing elaboration + counters). + * einfo.ads: Minor reformatting. + +2014-07-31 Robert Dewar + + * exp_ch5.adb, freeze.adb, exp_ch3.adb: Minor comment correction. + * s-arit64.adb: Minor reformatting. + +2014-07-31 Robert Dewar + + * gnat1drv.adb (Adjust_Global_Switches): Default for overflow + checking is enabled except in GNAT_Mode. + * switch-c.adb (Scan_Front_End_Switches): Implement -gnato0 + (suppress overflow checks). + +2014-07-31 Ed Schonberg + + * exp_ch3.adb (Expand_Freeze_Record_Type): Do not build an + invariant procedure for an internally generated subtype that is + created for an object of a class-wide type. + +2014-07-31 Vincent Celier + + * prj-nmsc.adb, errutil.adb: Make code similar to Errout. + +2014-07-31 Gary Dismukes + + * gnat_rm.texi, sem_aux.ads, einfo.ads, sem_util.ads, sem_ch6.adb, + exp_disp.adb: Minor reformatting. + +2014-07-31 Robert Dewar + + * exp_ch5.adb, sem_ch3.adb, exp_ch7.adb, exp_util.adb, exp_ch9.adb, + sem_ch7.adb, checks.adb, s-exctra.adb, exp_ch6.adb, exp_disp.adb, + exp_dist.adb, sem_ch13.adb, exp_strm.adb, exp_ch3.adb: Minor + reformatting. + +2014-07-31 Robert Dewar + + * sem_ch13.adb: Minor reformatting. + +2014-07-31 Ed Schonberg + + * exp_ch3.adb (Build_Invariant_Checks): If the enclosing record + is an unchecked_union, warn that invariants will not be checked + on components that have them. + +2014-07-31 Robert Dewar + + * freeze.adb (Freeze_Entity): Check for error of + Type_Invariant'Class applied to a untagged type. + * sem_ch6.adb (Analyze_Null_Procedure): Unconditionally rewrite + as null body, so that we perform error checks even if expansion + is off. + +2014-07-31 Ed Schonberg + + * sem_ch13.adb (Build_Invariant_Procedure): If body of procedure + is already present, nothing to do. + * exp_ch3.adb (Build_Component_Invariant_Call): For an access + component, check whether the access type has an invariant before + checking the designated type. + (Build_Record_Invariant_Proc): Change suffix of generated + name to prevent ambiguity when record type has invariants + in addition to those of components, and two subprograms are + constructed. Consistent with handling of array types. + (Insert_Component_Invariant_Checks): Build invariant procedure + body when one has not been created yet, in the case of composite + types that are completions and whose full declarations carry + invariants. + +2014-07-30 Thomas Quinot + + * gnat_rm.texi: Minor doc fixes. + +2014-07-30 Robert Dewar + + * a-rbtgbo.adb, sem_ch13.adb: Minor reformatting. + +2014-07-30 Vincent Celier + + * errutil.adb (Set_Msg_Text): Process tilde ('~'): no processing + of error message. + * prj-nmsc.adb (Locate_Directory): Use a tilde ('~') in the + message to report that a directory cannot be created, to avoid + processing of the directory path that may contains special + insertion characters. + +2014-07-30 Ed Schonberg + + * a-crdlli.ads: Place declaration of Empty_List after full type + declaration for Curosr, to prevent freezing error. + +2014-07-30 Robert Dewar + + * get_targ.adb: Minor code reorganization. + * prj-proc.adb, prj-proc.ads, get_targ.ads, sem_ch6.adb: Minor + reformatting. + +2014-07-30 Ed Schonberg + + * a-cbhase.adb: a-cbhase.adb (Insert): Raise Constraint_Error, + not Program_Error, when attempting to remove an element not in + the set. This is the given semantics for all set containers. + +2014-07-30 Ed Schonberg + + * a-rbtgbo.adb (Delete_Node_Sans_Free): If + element is not present in tree return rather than violating + an assertion. Constraint_Error will be raised in the caller if + element is not in the container. + +2014-07-30 Arnaud Charlet + + * set_targ.adb (Read_Target_Dependent_Values): New subprogram. + (elab body): Add provision for default target config file. + * get_targ.ads, get_targ.adb (Get_Back_End_Config_File): New subprogram. + +2014-07-30 Ed Schonberg + + * a-cbhase.adb (Delete): Raise Constraint_Error, not Program_Error, + when attempting to remove an element not in the set. This is + the given semantics for all set containers. + * a-cborse.adb (Delete): Attempt removal first, to check for + tampering, before checking whether this is an attempt to + delete a non-existing element, and in fthe latter case raise + Constraint_Error. + +2014-07-30 Vincent Celier + + * prj-proc.adb (Recursive_Process): Do not create a new + Project_Id if the project is already in the list of projects of + the tree. + +2014-07-30 Ed Schonberg + + * sem_ch6.adb (Analyze_Function_Return): Reject a return expression + whose type is an incomplete formal type. + (Analyze_Return_Type): Reject a return type that is an untagged + imcomplete formal type. + (Process_Formals): Reject a formal parameter whose type is an + untagged formal incomplete type. + * sem_res.adb (Resolve_Actuals): Reject an actual whose type is + an untagged formal incomplete type. + +2014-07-30 Robert Dewar + + * gnat_ugn.texi: Minor spelling correction. + * makeutl.adb: Minor code reorganization. + * exp_ch4.adb, exp_aggr.adb, exp_ch3.adb: Minor reformatting. + +2014-07-30 Robert Dewar + + * einfo.ads (Has_Unchecked_Union): Document that this is used + to check for illegal Valid_Scalars attribute references. + * exp_attr.adb (Build_Record_VS_Func): New function + (Expand_N_Attribute_Reference, case Valid_Scalars): Call this + function. + * gnat_rm.texi: Document 'Valid_Scalars cannot be applied to + Unchecked_Union Add note on 'Valid_Scalars generating a lot + of code. + * sem_attr.adb (Analyze_Attribute, case Valid_Scalars): Give + error on attempt to apply Valid_Scalars to Unchecked_Union type. + +2014-07-30 Steve Baird + + * exp_ch4.adb (Expand_N_Indexed_Component): Disable optimized handling + of A(I..J)(K) in CodePeer_Mode. + +2014-07-30 Ben Brosgol + + * gnat_ugn.texi: Fix typo. + +2014-07-30 Thomas Quinot + + * lib-writ.ads: document format change. + +2014-07-30 Pascal Obry + + * prj-util.adb (For_Interface_Sources): Do not + include sources from withed externally built projects. + +2014-07-30 Robert Dewar + + * lib.adb: Minor reformatting. + * prj-util.adb: Minor reformatting. + +2014-07-30 Ed Schonberg + + * exp_aggr.adb (Build_Record_Aggr_Code): For an array component + that depends on discriminants, and which is given by an others + clause, create an explicit subtype with the discriminant values + of the enclosing aggregate, because the backend cannot otherwise + retrieve the actual bounds of the array. + +2014-07-30 Fedor Rybin + + * gnat_ugn.texi: Improve gnattest documentation. + +2014-07-30 Pascal Obry + + * makeutl.adb (Insert_Project_Sources): Properly handle sources + that are aggregated. We want to include sources not only part + of libraries but also if part of an aggregated project from an + aggregate library. + * prj.adb (For_Project_And_Aggregated_Context): Properly check + state of root project. + +2014-07-30 Thomas Quinot + + * lib-load.ads: Minor reformatting. + * sinfo.ads (Library_Unit): Update comment. + * lib.ads (Notes): Simplify. The Unit component in Notes_Entry + is redundant. Instead used the pragma Node_Id directly as the + element type. + +2014-07-30 Thomas Quinot + + * lib.adb (Store_Note): Store only notes that do not come from + an instance, and that are in the extended main source unit. + * lib-writ (Write_Unit_Information): Annotations from subunits + must be emitted along with those for the main unit, and they + must carry a specific file name. + * ali.ads (Notes_Record): Use a File_Name_Type instead of a + Unit_Id for the source file containing the pragma, as in the + case of annotations from subunits we might not have a readily + available unit id. + * ali.adb (Scan_ALI): Account for above change in data structure. + +2014-07-30 Vincent Celier + + * makeutl.adb (Insert_Project_Sources): When the library project + is an aggregate Stand-Alone Library, insert in the queue the + Ada interface units, with Closure set to True; + +2014-07-30 Eric Botcazou + + * sem_util.adb: Fix minor typo. + * makeutl.adb: Minor reformatting. + +2014-07-30 Robert Dewar + + * exp_ch7.adb, checks.adb, makeutl.adb, makeutl.ads: Minor reformatting. + +2014-07-30 Yannick Moy + + * checks.ads: Fix typo in comment. + +2014-07-30 Pierre-Marie Derodat + + * sem_util.adb (Set_Debug_Info_Needed): For scalar types, recurse on + entities that materialize range bounds, if any. + +2014-07-30 Vincent Celier + + * projects.texi: Minor spelling fix. + +2014-07-30 Hristian Kirtchev + + * checks.adb (Make_Bignum_Block): Use the new secondary stack + build routines to manage the mark. + * exp_ch7.adb (Create_Finalizer, Expand_Cleanup_Actions): + Use the new secodary stack build routines to manage the mark. + (Insert_Actions_In_Scope_Around): Add new formal parameter + Manage_SS along with comment on its usage. Code and comment + reformatting. Mark and release the secondary stack when the + context warrants it. + (Make_Transient_Block): Update the call + to Insert_Actions_In_Scope_Around to account for parameter Manage_SS. + (Wrap_Transient_Declaration): Remove local variable + Uses_SS. Ensure that the secondary stack is marked and released + when the related object declaration appears in a library level + package or package body. Code and comment reformatting. + * exp_util.ads, exp_util.adb (Build_SS_Mark_Call): New routine. + (Build_SS_Release_Call): New routine. + +2014-07-30 Steve Baird + + * exp_attr.adb: Revert previous change, not needed after all. + +2014-07-30 Vincent Celier + + * makeutl.adb (Queue.Insert_Project_Sources): Insert with + Closure => True for interfaces of Stand-Alone Libraries. + * makeutl.ads (Source_Info (Format => Gprbuild)): Add new + Boolean component Closure, defaulted to False. + +2014-07-30 Yannick Moy + + * sem_res.adb: Fix typo in error message. + +2014-07-30 Robert Dewar + + * sem_ch3.adb (Process_Range_Expr_In_Decl): Use _FIRST/_LAST + as name suffixes rather than L/H for subtype bounds. + * tbuild.ads: Minor comment improvements and fixes + (Make_External_Name): Document that suffix can start with an + underscore. + +2014-07-30 Bob Duff + + * gnat_ugn.texi: Document --rep-clauses switch. + +2014-07-30 Ed Schonberg + + * sem_ch13.adb (Analyze_Aspect_Specifications): Default_Value and + Default_Component_Value can only be specified for scalar type or + arrays of scalar types respectively. This legality check must + be performed at the point the aspect is analyzed, in order to + reject aspect specifications that apply to a partial view. + +2014-07-30 Thomas Quinot + + * freeze.adb: Minor reformatting. + +2014-07-30 Robert Dewar + + * exp_attr.adb (Expand_Attribute, case First/Last): Don't expand in + codepeer mode. + +2014-07-30 Ed Schonberg + + * freeze.adb (Check_Expression_Function): At the freeze point + of an expression function, verify that the expression in the + function does not contain references to any deferred constants + that have no completion yet. + (Freeze_Expression, Freeze_Before): call + Check_Expression_Function. + * a-ciorse.ads: Add Reference_Control_Type to detect tampering. + * a-ciorse.adb: Add Adjust and Finalize routines for + Reference_Control_Type. Use it in the construction of Reference + and Constant_Reference values. + +2014-07-30 Robert Dewar + + * exp_aggr.adb: Update comments. + * a-chtgbo.adb, a-chtgbo.ads, a-cbhase.adb, a-cbhase.ads: Minor + reformatting. + +2014-07-30 Robert Dewar + + * cstand.adb (New_Standard_Entity): New version takes name + string to call Make_Name. + (Create_Standard): Use this routine to set name before setting other + fields. + +2014-07-30 Robert Dewar + + * exp_attr.adb (Expand_Attribute, case First): Rewrite simple + entity reference. + (Expand_Attribute, case Last): Ditto. + * exp_ch3.adb (Constrain_Index): New calling sequence for + Process_Range_Expr_In_Decl. + (Expand_N_Object_Declaration): Avoid setting Is_Known_Valid in one + problematical case. + * sem_ch3.adb (Constrain_Index): New calling sequence for + Process_Range_Expr_In_Decl. + (Set_Scalar_Range_For_Subtype): ditto. + (Process_Range_Expr_In_Decl): Create constants to hold bounds for + subtype. + * sem_ch3.ads (Process_Range_Expr_In_Decl): Add Subtyp parameter. + * sem_eval.adb (Compile_Time_Compare): Make sure we use base + types if we are not assuming no invalid values. + +2014-07-30 Robert Dewar + + * clean.adb: Minor reformatting. + * opt.ads: Minor fix to incorrect comment. + +2014-07-30 Ed Schonberg + + * a-chtgbo.ads, a-chtgbo.adb (Delete_Node_At_Index): New + subprogram, used by bounded hashed sets, to delete a node at + a given index, whose element may have been improperly updated + through a Reference_Preserving key. + * a-cbhase.ads: Add Reference_Control_Type to package Generic_Keys. + * a-cbhase.adb: Add Adjust and Finalize routines for + Reference_Control_Type. + (Delete, Insert): Raise Program_Error, not Constraint_Error, + when operation is illegal. + (Reference_Preserving_Key): Build aggregate for Reference_Control_Type + * a-cmbutr.ads: Add Reference_Control_Type to detect tampering. Add + private with_clause for Ada.Finalization. + * a-cbmutr.adb: Add Adjust and Finalize routines for + Reference_Control_Type. Use it in the construction of Reference + and Constant_Reference values. + +2014-07-30 Robert Dewar + + * sem_ch3.adb, sem_ch3.ads: Minor code reorganization. + +2014-07-30 Pascal Obry + + * clean.adb (Clean_Project): Properly check for directory + existence before trying to enter it. + +2014-07-30 Robert Dewar + + * sem_ch3.ads, prj.ads, prj-nmsc.adb: Minor reformatting. + +2014-07-30 Robert Dewar + + * par-ch5.adb (P_Sequence_Of_Statements): Properly handle + missing semicolon after name. + +2014-07-30 Pascal Obry + + * prj.ads (Gprinstall_Flags): New constant. + * prj-nmsc.adb (Check_Library_Attributes): Do not fails for + missing library dir if Directories_Must_Exist_In_Projects + is false. + +2014-07-30 Bob Duff + + * a-except-2005.adb, a-except.adb: Remove obsolete comments. + * s-traceb.ads: Updagte comments. + +2014-07-30 Robert Dewar + + * checks.adb, a-cihase.adb, a-cihase.ads, a-chtgop.adb, a-chtgop.ads, + a-except.adb, a-except-2005.adb, a-cborse.adb, a-cborse.ads, + a-exexda.adb, a-elchha.adb, exp_aggr.adb, a-cohase.adb: Minor + reformatting. + +2014-07-30 Ed Schonberg + + * a-chtgop.ads, a-chtgop.adb (Delete_Node_At_Index): New + subprogram, used by all versions of hashed sets, to delete a node + whose element has been improperly updated through a Reference_ + Preserving key. + * a-cohase.adb: Remove Delete_Node, use new common procedure + Delete_Node_At_Index. + * a-cihase.ads: Add Reference_Control_Type to package Generic_Keys. + * a-cihase.adb: Add Adjust and Finalize routines for + Reference_Control_Type. + (Reference_Preserving_Key): Build aggregate for + Reference_Control_Type + +2014-07-30 Yannick Moy + + * checks.adb, checks.ads (Determine_Range_R): New procedure to + determine the possible range of a floating-point expression. + +2014-07-30 Ed Schonberg + + * a-cborse.ads: Add Reference_Control_Type to package Generic_Keys. + * a-cborse.adb: Add Adjust and Finalize routines for + Reference_Control_Type. + (Reference_Preserving_Key): Build aggregate for + Reference_Control_Type. + (Delete): Check for tampering, and raise Program_Error (not + Constraint_Error) when attempting to delete an element not in + the set. + (Insert): Ditto. + +2014-07-30 Bob Duff + + * a-elchha.adb, a-except-2005.adb, a-except.adb, a-exexda.adb, + * a-exextr.adb, a-exstat.adb, exp_intr.ads, s-tassta.adb: + Exception_Information is used to produce useful debugging + information for the programmer. However, it was also used to + implement the stream attributes for type Exception_Occurrence. The + latter requires a stable and portable interface, which meant + that we couldn't include a symbolic traceback. A separate set of + routines was used to provide symbolic tracebacks under program + control (i.e. not automatically). The goal of this ticket is + to provide such automatic tracebacks, so the change here is to + split the two functionalities: Exception_Information gives the + maximally useful information for debugging (i.e. it now includes + a symbolic traceback when a decorator is set, and it can be + improved freely in the future without disturbing streaming). + Untailored_Exception_Information always uses hexadecimal addresses + in the traceback, has a stable and portable output, and is now + used for streaming. + +2014-07-30 Eric Botcazou + + * exp_aggr.adb (Expand_Array_Aggregate): Add missing test + on the target of the assignment to find out whether it + can be directly done by the back-end. + * exp_util.adb (Is_Possibly_Unaligned_Slice): Remove obscure test. + +2014-07-30 Robert Dewar + + * inline.adb, a-coorse.adb, a-coorse.ads, a-cohase.adb, a-cohase.ads, + a-tasatt.adb: Minor reformatting. + +2014-07-30 Robert Dewar + + * exp_ch4.adb: Minor reformatting. + +2014-07-30 Ed Schonberg + + * a-coorse.adb, a-coorse.ads (Generic_Keys): Add a + Reference_Control_Type to generic package, to keep additional + information for Reference_Types that manipulate keys. Add Adjust and + Finalize procedures for this type. + (Finalize): When finalizing a reference_preserving_key, verify + that the key of the new value is equivalent to the key of the + original element, raise Program_Error otherwise. + (Insert): Detect tampering. + (Reference_Preserving_Key): Build proper Reference_Control_Type, + and update Busy and Lock bits to detect tampering. + * a-cohase.ads: Keep with-clause private. + +2014-07-30 Hristian Kirtchev + + * exp_ch4.adb (Expand_N_Op_Eq): Emit a warning when the operands + of an equality are of an Unchecked_Union type and lack inferable + discriminants. + +2014-07-30 Bob Duff + + * g-exctra.adb, g-exctra.ads, s-exctra.adb, s-exctra.ads, Makefile.rtl, + g-trasym.adb, g-trasym.ads, s-trasym.adb, s-trasym.ads: Move + GNAT.Traceback.Symbolic and GNAT.Exception_Traces into the System + hierarchy (System.Traceback.Symbolic and System.Exception_Traces), so + we can call them from the runtimes. Leave renamings in place under GNAT. + +2014-07-30 Yannick Moy + + * inline.adb (Check_And_Build_Body_To_Inline): Include code for + inlining in GNATprove mode. + +2014-07-30 Ed Schonberg + + * a-cohase.adb, a-cohase.ads (Generic_Keys): Add a + Reference_Control_Type to generic package, to keep additional + information for Reference_Types that manipulate keys. Add Adjust and + Finalize procedures for this type. + (Delete_Node): New procedure called when finalizing a + Reference_Control_Type, to remove a node whose element has been + improperly updated through a Reference. + (Insert): Detect tampering. + (Reference_Preserving_Key): Build proper Reference_Control_Type, + and update Busy and Lock bits to detect tampering. + +2014-07-30 Bob Duff + + * exp_intr.ads: Minor comment fix. + +2014-07-30 Gary Dismukes + + * exp_prag.adb, a-tags.ads: Minor typo fixes. + +2014-07-30 Bob Duff + + * a-excach.adb, a-excach-cert.adb, a-except-2005.ads, + a-except.ads, g-traceb.adb, memtrack.adb, + s-traceb.adb, s-traceb.ads, s-traceb-hpux.adb, s-traceb-mastop.adb: + Cleanup: Make the three versions of System.Traceback.Call_Chain + have the same interface. Use an array for the Traceback parameter + instead of an Address. This will enable reduction in code + duplication. + +2014-07-30 Pat Rogers + + * gnat_ugn.texi: Corrected minor textual error in description + of switch -gnatwl. + +2014-07-30 Bob Duff + + * Makefile.rtl: Sort file names. + +2014-07-30 Arnaud Charlet + + * a-tasatt.adb: Complete previous change: kill spurious warning + on e.g. sparc, and make sure we only use the fast path when the + alignment is compatible. + +2014-07-30 Yannick Moy + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Mark new Spec_Id as + coming from source. + +2014-07-30 Yannick Moy + + * inline.adb (Build_Body_To_Inline): Issue more precise messages + for declarations that prevent inlining. + (Cannot_Inline): Change usual start of message to refer to contextual + analysis in GNATprove mode. + * sem_res.adb (Resolve_Call): Change usual start of message to + refer to contextual analysis in GNATprove mode, when inlining + not possible. + +2014-07-30 Robert Dewar + + * sem_res.adb, sem_ch6.adb: Minor code reorganization. + * inline.adb: Minor reformatting. + +2014-07-30 Javier Miranda + + * a-tags.ads: Add comments. + +2014-07-30 Pat Rogers + + * gnat_rm.texi: Minor word error. + +2014-07-30 Ed Schonberg + + * exp_prag.adb (Expand_Old): Insert declarationss of temporaries + created to capture the value of the prefix of 'Old at the + beginning of the current declarative part, to prevent data flow + anomalies in the postcondition procedure that will follow. + +2014-07-30 Yannick Moy + + * debug.adb: Retire debug flag -gnatdQ. + * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Check SPARK_Mode + on decl, not on body. Ignore predicate functions. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove use of + debug flag -gnatdQ. Correctly analyze SPARK_Mode on decl and + body when generating a decl for a body on which SPARK_Mode aspect + is given. + * sem_prag.adb (Analyze_Pragma|SPARK_Mode): Reorder tests for + attaching pragma to entity, to account for declaration not coming + from source. + * sem_res.adb (Resolve_Call): Issue warning and flag subprogram + as not always inlined in GNATprove mode, when called in an + assertion context. + +2014-07-30 Vincent Celier + + * debug.adb: Minor comment update. + +2014-07-30 Robert Dewar + + * s-tasuti.adb, s-tassta.adb: Minor reformatting. + * sprint.adb (Sprint_Node): Handle N_Contract case. + * exp_prag.adb: Minor reformatting. + * freeze.adb (Freeze_Entity): Check useless postcondition for + No_Return subprogram. + * sem_prag.adb: Minor reformatting. + +2014-07-30 Javier Miranda + + * a-tags.ads: Complete comments about performance. + +2014-07-30 Fedor Rybin + + * gnat_ugn.texi: Adding description for --exit-status option to + gnattest section. Fixing index entry of --passed-tests option + in gnattest section. + +2014-07-30 Javier Miranda + + * Makefile.rtl, gnat_rm.texi, i-cpp.adb, i-cpp.ads, impunit.adb, + rtsfind.ads: Remove references to package Interfaces.CPP since this + package is no longer needed. + +2014-07-30 Bob Duff + + * s-taasde.adb (Timer_Queue): Don't use a + build-in-place function call to initialize the Timer_Queue. + * s-traent.adb, s-traent.ads, s-traent-vms.adb, s-traent-vms.ads: + Turn off polling in these units, because otherwise we get + elaboration circularities with Ada.Exceptions when the -gnatP + switch is used. + * s-tassta.adb (Create_Task): Make sure independent tasks + are created with Parent = Environment_Task. This was not true, + for example, in s-interr.adb, when Interrupt_Manager does "new + Server_Task"; the Server_Task had Parent = Interrupt_Manager, + which is wrong because the master is determined by the access + type, which is at library level. + * s-tasuti.adb (Make_Independent): Avoid setting Parent; it is + now set correctly by Create_Task. + (Make_Passive): Remove the workaround for the race condition in + Make_Independent. + * frontend.adb (Frontend): Revert to previous method of detecting + temporary configuration pragma files, recognizing such files by + ".tmp" in the name. This is more general than detecting pragmas + Source_File_Name_Project, because it allows any tool to use + this naming convention, no matter the content of the file. + * gnat_ugn.texi: Document this naming convention. + +2014-07-30 Robert Dewar + + * exp_ch7.adb, s-tataat.adb, s-tataat.ads, s-parame-vms-alpha.ads, + inline.adb, s-parame-hpux.ads, exp_smem.adb, s-tasini.adb, + s-tasini.ads, s-parame-vms-ia64.ads, s-parame.ads, s-taskin.ads, + s-parame-vxworks.ads, a-tasatt.adb, a-tasatt.ads: Minor reformatting. + * a-suenco.adb (Convert): Handle overlong encodings in UTF8-UTF8 + conversion. + +2014-07-30 Ed Schonberg + + * sem_ch5.adb: Improve error recovery. + * inline.adb (Build_Body_To_Inline): Set Full_Analysis to false + before analyzing the body, so that in GNATprove mode there is + no light expansion. Whatever expansion is required by SPARK will + be performed when analysing the inlined code. + +2014-07-30 Bob Duff + + * s-tataat.adb, s-tataat.ads, a-tasatt.adb: Minor comment fixes. + +2014-07-30 Ed Schonberg + + * sem_ch5.adb (Analyze_Loop_Statement): If loop has a label, + verify that it is not hidden by an inner implicit declaration. + +2014-07-30 Thomas Quinot + + * sem.ads (Scope_Table_Entry): New component Locked_Shared_Objects. + * sem_ch8.adb (Push_Scope): Initialize Locked_Shared_Objects. + * exp_smem.adb (Add_Shared_Var_Lock_Procs): Handle the case where + the call returns an unconstrained type: in this case there is + already a transient scope, and we should not establish a new one. + * exp_ch7.adb (Insert_Actions_In_Scope_Around): New formal Clean. If + True, also insert cleanup actions in the tree. + (Wrap_Transient_Declaration): Call Insert_Actions_In_Scope_Around + with Clean set True. + +2014-07-30 Arnaud Charlet + + * s-taskin.ads (Direct_Index, Direct_Index_Range, + Direct_Attribute_Element, Direct_Attribute_Array, + Direct_Index_Vector, Direct_Attributes, Is_Defined, + Indirect_Attributes): Removed. (Atomic_Address, + Attribute_Array, Attributes): New. + * s-tasini.ads, s-tasini.adb (Proc_T, Initialize_Attributes, + Finalize_Attributes_Link, Initialize_Attributes_Link): Removed. + (Finalize_Attributes): Reimplement. + * s-tassta.adb (Create_Task): Remove call to + Initialize_Attributes_Link (Free_Task, Vulnerable_Free_Task): + Replace Finalize_Attributes_Link by Finalize_Attributes. + * a-tasatt.ads, a-tasatt.adb, s-tataat.ads, s-tataat.adb: + Reimplement from scratch, using a simpler and more efficient + implementation. + * s-tporft.adb (Register_Foreign_Thread): Remove now obsolete comment. + * s-parame.ads, s-parame-hpux.ads, + * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, + * s-parame-vxworks.ads (Max_Attribute_Count): New, replace + Default_Attribute_Count. + +2014-07-30 Olivier Hainque + + * vxworks-ppc-link.spec: New file. Extra link + instructions for ppc-vxworks. + * vxworks-crtbe-link.spec: Likewise, for ZCX related support. + * system-vxworks-ppc.ads: Adjust linker options to use spec files. + * system-vxworks-arm.ads: Likewise. + * gcc-interface/Makefile.in: Enable .spec files. + +2014-07-30 Ed Schonberg + + * sem_aggr.adb: Minor comment reformatting. + +2014-07-30 Robert Dewar + + * sem_util.ads, sem_util.adb (Is_Junk_Name): Removed. + * sem_warn.adb (Has_Junk_Name): New function + (Check_References): Use Has_Junk_Name to delete junk warnings + (Check_Unset_Reference): ditto. + (Warn_On_Unreferenced_Entity): ditto. + (Warn_On_Useless_Assignment): ditto. + +2014-07-30 Ed Schonberg + + * checks.adb (Insert_Valid_Check): Do not check for the packed + array type of a prefix that is an access type. + +2014-07-30 Ed Schonberg + + * sem_attr.adb (Eval_Attribute): Evaluate the GNAT attribute + Unconstrained_Array even if prefix is not frozen yet, as can + occur with a private subtype used as a generic actual. + +2014-07-30 Gary Dismukes + + * sem_attr.adb: Minor reformatting. + +2014-07-30 Pat Rogers + + * gnat_rm.texi: Corrected minor wording error in description + of No_Exception_Registration. + +2014-07-30 Yannick Moy + + * einfo.ads, einfo.adb: New flag Is_Inlined_Always for use in GNATprove + mode. Realphabetize two subprograms. + * inline.adb (Cannot_Inline): Use Is_Inlined_Always in GNATprove mode. + (Can_Be_Inlined_In_GNATprove_Mode): Adapt to possible Empty Body_Id. + (Check_And_Build_Body_To_Inline): Use Is_Inlined_Always in GNATprove + mode. + (Expand_Inline_Call): Use Is_Inlined_Always in GNATprove mode. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not use + Is_Inline in GNATprove mode. + (Analyze_Subprogram_Specification): + Set Is_Inlined_Always at subprogram entity creation. + * sem_res.adb (Resolve_Call): Do not deal with inlining during + pre-analysis. Issue warning on call to possibly inlined + subprogram when body not seen. + +2014-07-30 Yannick Moy + + * lib-xref.adb (Generate_Reference): Add special + case for compiler-generated formals in GNATprove mode. + +2014-07-30 Yannick Moy + + * sem_ch6.adb: Add comments. + +2014-07-30 Thomas Quinot + + * s-os_lib.ads (GM_Time_Of): Clarify documentation. + +2014-07-30 Robert Dewar + + * sem_aggr.adb, sem_res.adb: Minor reformatting. + +2014-07-30 Thomas Quinot + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case + Bit_Order): Set Reverse_Bit_Order on the base type of the + specified first subtype. + +2014-07-30 Ed Schonberg + + * inline.adb (Expand_Inlined_Call): Use a renaming declaration + to capture the value of actuals of a limited type rather than + an object declaration, to prevent spurious errors when analyzing + the inlined body. + +2014-07-30 Ed Schonberg + + * sem_ch4.adb (Analyze_Type_Conversion): Treat an inlined body + as an instance, and inhibit semantic checks on already analyzed + code to prevent spurious errors. + +2014-07-30 Arnaud Charlet + + * a-exctra.ads ("="): New function, to restore compatibility. + +2014-07-30 Pascal Obry + + * adaint.c (__gnat_to_os_time): Set isdst to -1 for the mktime + routine to use the OS dst setting. + +2014-07-30 Pat Rogers + + * gnat_ugn.texi: Minor correction to description of -gnatw.K. + +2014-07-30 Ed Schonberg + + * sem_util.adb (Wrong_Type): Disable some checks equally within + instances and within inlined bodies, to suppress spurious type + errors on already analyzed code. + * sem_aggr.adb (Check_Expr_OK_In_Limited_Aggregate): Expression + is legal in an inlined body, juts as it is in an instance body. + +2014-07-30 Ed Schonberg + + * sem_res.adb (Resolve_Unchecked_Conversion): Within an inlined + body the operand of an unchecked conversion may be a literal, in + which case its type is the target type of the conversion. This + is in contrast to conversions in other contexts, where the + operand cannot be a literal and must be resolvable independent + of the context. + +2014-07-30 Pierre-Marie Derodat + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Create a + mere scalar constant instead of a reference for a renaming of + scalar literal. + * gcc-interface/utils.c (renaming_from_generic_instantiation_p): New. + * gcc-interface/gigi.h (renaming_from_generic_instantiation_p): New. + +2014-07-30 Robert Dewar + + * s-tasuti.adb, s-tasuti.ads, einfo.ads, sem_prag.adb, s-taasde.adb, + g-socthi-vms.adb, s-taprop-mingw.adb, s-interr.adb, s-interr-hwint.adb, + g-decstr.adb, s-tasdeb-vms.adb, g-expect-vms.adb, makeutl.adb, + s-interr-vms.adb, g-socthi.adb, exp_aggr.adb, s-tasdeb.adb, + g-awk.adb, gnatls.adb, s-taspri-posix.ads, g-catiio.adb, + s-interr-sigaction.adb, s-os_lib.adb, s-fileio.adb: Minor reformatting + & code reorganization. + +2014-07-30 Bob Duff + + * s-tassta.adb, sem_util.ads: Minor reformatting. + +2014-07-30 Yannick Moy + + * inline.adb (Build_Body_To_Inline): Detect when + subprogram has multiple returns, or not a single last return + statement, in GNATprove mode. + (Cannot_Inline): Simplify logic to handle case of GNATprove + inlining first. + +2014-07-30 Ed Schonberg + + * sem_ch6.adb: Stubs are not subject to inlining. + +2014-07-30 Bob Duff + + * s-tasuti.ads, s-tasuti.adb (Make_Independent): Change this + from a procedure to a function, so that it can more easily be + called before the "begin" of a task. + * s-taasde.ads (Delay_Block): Make this type immutably limited, + so we can use a build-in-place function call to initialize + Timer_Queue in the body. + * a-rttiev.adb, s-asthan-vms-alpha.adb, s-asthan-vms-ia64.adb, + * s-interr.adb, s-interr-hwint.adb, s-interr-sigaction.adb, + * s-interr-vms.adb, s-taasde.adb: Each independent task now calls + Make_Independent before reaching its "begin", to avoid race + conditions. This causes the activating task to wait until after + Make_Independent is complete before proceeding. In addition, + we initialize data structures used by independent tasks before + activating those tasks, to avoid possible use of uninitialized data. + * s-interr.ads, s-intman.ads, s-taspri-posix.ads, s-tasdeb.ads: + Minor comment fixes. + +2014-07-30 Bob Duff + + * a-exctra.ads, s-traent-vms.ads, s-traent.ads (Tracebacks_Array): Move + the declaration of Tracebacks_Array from Ada.Exceptions.Traceback to + System.Traceback_Entries (s-traent.ads and s-traent-vms.ads). Add + subtypes renaming Tracebacks_Array in Ada.Exceptions.Traceback. + * g-debpoo.adb: Refer to Tracebacks_Array in its new home. + +2014-07-30 Arnaud Charlet + + * a-tasatt.adb: Remove old comments. + +2014-07-30 Yannick Moy + + * einfo.ads (Is_Inlined): Document new use in GNATprove mode. + * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Add comments + to explain rationale for inlining or not in GNATprove mode. + (Expand_Inlined_Call): In GNATprove mode, set Is_Inlined flag + to False when inlining is not possible. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set Is_Inlined + flag to indicate that subprogram is fully inlined. To be reversed + if inlining problem is found. + * sem_res.adb (Resolve_Call): Set Is_Inlined flag to False when + call in potentially unevaluated context. + +2014-07-30 Jose Ruiz + + * s-tarest.adb, s-tarest.ads: Fix comments. + +2014-07-30 Robert Dewar + + * exp_attr.adb, checks.adb, sem_util.adb, sem_util.ads, sem_attr.adb: + Change No_Scalar_Parts predicate to Scalar_Part_Present and + invert sense of test. This avoids the "not No_xxx" situation + which is always ugly. + +2014-07-30 Ed Schonberg + + * inline.adb (Expand_Inlined_Call): When generating code for + an internal subprogram the expansion uses the location of the + call, so that gdb can skip over it. In GNATprove mode we want to + preserve slocs of original subprogram when expanding an inlined + call, to obtain better warnings, even though subprogram appears + not to come from source if it is the inlining of a subprogram + body without a previous spec. + +2014-07-30 Eric Botcazou + + * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Reject array + types with atomic components. + +2014-07-30 Thomas Quinot + + * Make-generated.in: Remove now unnecessary targets after s-oscons + reorg. + +2014-07-30 Yannick Moy + + * sem_res.adb (Resolve_Call): Use ultimate alias + of callee when available. + +2014-07-30 Ed Schonberg + + * sem_ch6.adb (Analyze_Expression_Function): To check whether + an expression function is a completion, use the specification of + the previous declaration, not its entity, which may be internally + generated in an inlined context. + +2014-07-30 Doug Rupp + + * adaint.c (__gnat_tmp_name) [__ANDROID__]: Default to putting + temp files in /cache directory unless overridden by TMPDIR. + +2014-07-30 Jose Ruiz + + * s-tassta.adb, s-tarest.adb (Initialize, Create_Task, + Create_Restricted_Task): Remove redundant check. Number_Of_CPUs returns + type CPU, so it can never be greater than CPU_Range'Last. + +2014-07-30 Bob Duff + + * s-taskin.ads: Minor comment fix. + +2014-07-30 Thomas Quinot + + * g-socket.adb: Remove now useless WITH, USE, and USE TYPE + clauses. + +2014-07-30 Yannick Moy + + * debug.adb: Free debug flag dQ used for frontend inlining in + GNATprove mode.. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove test of + debug flag.. + +2014-07-30 Thomas Quinot + + * Make-generated.in: Remove generation of s-oscons.ads, only + generate the xoscons utility, in runtime-agnostic rules. + * gcc-interface/Makefile.in: Clean up rules. Remove VMS parts, + no longer supported. + +2014-07-30 Bob Duff + + * exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call): New + parameter Chain to be used in the allocator case. + (Make_Build_In_Place_Call_In_Allocator): If the allocated object + has tasks, wrap the code in a block that will activate them, + including the usual finalization code to kill them off in case + of exception or abort. + +2014-07-30 Robert Dewar + + * treepr.adb, treepr.ads; Reorganize documentation for new pp routines + Remove renamings (don't work for gdb). + (par): New synonym for p (avoid gdb ambiguities). + * inline.adb, sem_ch6.adb, sem_ch13.adb: Minor reformatting. + +2014-07-30 Bob Duff + + * exp_ch9.ads, sem_prag.adb, exp_ch4.adb, sem_ch13.adb: Minor comment + fixes. + * treepr.ads, treepr.adb (ppp): Make this debugging routine + accept any type covered by Union_Id. + +2014-07-30 Robert Dewar + + * sem_ch4.adb (Analyze_If_Expression): Resolve condition before + analyzing branches. + * sem_eval.adb (Out_Of_Range): Check for statically unevaluated + expression case. + +2014-07-30 Robert Dewar + + * sem_ch13.adb (Analyze_Aspect, predicate cases): Diagnose use + of predicate aspect on entity other than a type. + +2014-07-30 Ed Schonberg + + * sem_ch6.adb (Body_Has_Contract): New predicate to determine + when a subprogram body without a previous spec cannot be inlined + in GNATprove mode, because it includes aspects or pragmas that + generate a SPARK contract clause. + * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): A subprogram + instance cannot be inlined. + +2014-07-30 Robert Dewar + + * debug.adb: Document that d7 suppresses compilation time output. + * errout.adb (Write_Header): Include compilation time in + header output. + * exp_intr.adb (Expand_Intrinsic_Call): Add + Compilation_Date/Compilation_Time (Expand_Source_Info): Expand + Compilation_Date/Compilation_Time. + * g-souinf.ads (Compilation_Date): New function + (Compilation_Time): New function. + * gnat1drv.adb (Gnat1drv): Set Opt.Compilation_Time. + * gnat_rm.texi (Compilation_Date): New function + (Compilation_Time): New function. + * opt.ads (Compilation_Time): New variable. + * s-os_lib.ads, s-os_lib.adb (Current_Time_String): New function. + * sem_intr.adb (Compilation_Date): New function. + (Compilation_Time): New function. + * snames.ads-tmpl (Name_Compilation_Date): New entry. + (Name_Compilation_Time): New entry. + +2014-07-30 Yannick Moy + + * inline.adb: Add comment. + +2014-07-30 Ed Schonberg + + * par-ch4.adb (Is_Parameterless_Attribute): 'Result is a + parameterless attribute, and a postondition can mention an + indexed component or a slice whose prefix is an attribute + reference F'Result. + +2014-07-30 Robert Dewar + + * sprint.adb (Sprint_Node_Actual, case Object_Declaration): + Avoid bomb when printing package Standard. + +2014-07-30 Ed Schonberg + + * sem_elab.adb (Check_Internal_Call_Continue): If an elaboration + entity is created at this point, ensure that the name of the + flag is unique, because the subprogram may be overloaded and + other homonyms may also have elaboration flags created on the fly. + +2014-07-30 Hristian Kirtchev + + * sem_attr.adb (Analyze_Array_Component_Update): New routine. + (Analyze_Attribute): Major cleanup of attribute + 'Update. The logic is now split into two distinct routines + depending on the type of the prefix. The use of <> is now illegal + in attribute 'Update. + (Analyze_Record_Component_Update): New routine. + (Check_Component_Reference): Removed. + (Resolve_Attribute): Remove the return statement and ??? comment + following the processing for attribute 'Update. As a result, + the attribute now freezes its prefix. + +2014-07-30 Javier Miranda + + * exp_ch4.adb (Apply_Accessibility_Check): Do + not call Base_Address() in VM targets. + +2014-07-30 Yannick Moy + + * gnat1drv.adb (Adjust_Global_Switches): Set + Ineffective_Inline_Warnings to True in GNATprove mode. + * inline.adb (Cannot_Inline): Prepare new semantics for GNATprove + mode of inlining. + * opt.ads (Ineffective_Inline_Warnings): Add comment that + describes use in GNATprove mode. + * sem_prag.adb (Analyze_Pragma|SPARK_Mode): Ignore + pragma when applied to the special body created for inlining. + +2014-07-30 Robert Dewar + + * inline.adb, exp_ch4.adb, sinput.adb, sem_ch6.adb, sem_ch13.adb: + Minor reformatting. + +2014-07-30 Hristian Kirtchev + + * aspects.ads Add a comment explaining why SPARK 2014 aspects are + not delayed. Update the delay status of most SPARK 2014 aspects. + * sem_ch13.adb (Analyze_Aspect_Specifications): Update all calls + to Decorate_Aspect_And_Pragma and Insert_Delayed_Pragma to refert + to Decorate and Insert_Pragma. Add various comments concerning + the delay status of several SPARK 2014 aspects. The insertion + of Refined_State now uses routine Insert_After_SPARK_Mode. + (Decorate): New routine. + (Decorate_Aspect_And_Pragma): Removed. + (Insert_Delayed_Pragma): Removed. + (Insert_Pragma): New routine. + +2014-07-30 Ed Schonberg + + * inline.adb (Expand_Inlined_Call): In GNATprove mode, emit + only a warning, not an error on an attempt to inline a recursive + subprogram. + +2014-07-30 Robert Dewar + + * g-forstr.adb: Minor code reorganization (use J rather than I + as a variable name). + * gnat_rm.texi, sem_prag.adb, sem_util.adb, sem_ch13.adb, + g-forstr.ads: Minor reformatting. + +2014-07-30 Eric Botcazou + + * sprint.adb (Set_Debug_Sloc): Also reset the end location if + we are debugging the generated code. + +2014-07-30 Yannick Moy + + * sinput.ads, sinput.adb (Comes_From_Inlined_Body): New function that + returns True for source pointer for an inlined body. + +2014-07-30 Javier Miranda + + * exp_ch4.adb (Apply_Accessibility_Check): Add + missing calls to Base_Address(). + +2014-07-30 Ed Schonberg + + * sem_ch6.adb (Hanalyze_Subprogram_Body_Helper): In GNATprove + mode, subprogram bodies without a previous declaration are also + candidates for front-end inlining. + +2014-07-30 Hristian Kirtchev + + * aspects.ads Aspects Async_Readers, Async_Writers, + Effective_Reads and Effective_Writes do not need to be delayed. + * sem_ch13.adb (Analyze_Aspect_Specifications): Propagate the + optional Boolean expression when generating the corresponding + pragma for an external property aspect. + * sem_prag.adb (Analyze_External_Property_In_Decl_Part): Remove + local constant Obj. Add local constant Obj_Id. Reimplement the + check which ensures that the related variable is in fact volatile. + (Analyze_Pragma): Reimplement the analysis of external property pragmas. + * sem_util.adb (Is_Enabled): New routine. + (Variable_Has_Enabled_Property): Reimplement the detection of + an enabled external property. + +2014-07-30 Sergey Rybin + + * gnat_ugn.texi, vms_data.ads: gnatstub: describe generating subunits + for body stubs. + +2014-07-30 Pascal Obry + + * g-forstr.adb, g-forstr.ads: New. + * gnat_rm.texi, impunit.adb Makefile.rtl: Add new unit + GNAT.Formatted_String. + +2014-07-30 Eric Botcazou + + * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): New predicate. + (Expand_Array_Aggregate): Also enable in-place expansion for + code generated by the compiler. For an object declaration, + set the kind of the object in addition to its type. If an + in-place assignment is to be generated and it can be directly + done by the back-end, do not expand the aggregate. + * fe.h (Is_Others_Aggregate): Declare. + * gcc-interface/trans.c + (gnat_to_gnu) : Add support for an + aggregate with a single Others choice on the RHS by means of + __builtin_memset. Tidy up. + +2014-07-30 Ed Schonberg + + * gnat_rm.texi: minor reformatting. + +2014-07-30 Yannick Moy + + * sem_ch6.adb (Analyze_Subprogram_Helper_Body): Remove body to inline + in SPARK_Mode Off. + +2014-07-30 Robert Dewar + + * gnat_rm.texi: Document additional implementation-defined use + of Constrained. + +2014-07-30 Robert Dewar + + * prj-proc.adb, prj-strt.adb: Update comments. + +2014-07-30 Gary Dismukes + + * sinfo.ads, einfo.ads, checks.ads: Minor typo fix and reformatting. + +2014-07-30 Vincent Celier + + * prj-proc.adb (Imported_Or_Extended_Project_From): New Boolean + parameter No_Extending, defaulted to False. When No_Extending + is True, do not look for an extending project. + (Expression): For a variable reference that is not for the current + project, get its Id calling Imported_Or_Extended_Project_From + with No_Extending set to True. + * prj-strt.adb (Parse_Variable_Reference): If a referenced + variable is not found in the current project, check if it is + defined in one of the projects it extends. + +2014-07-30 Robert Dewar + + * sem_util.adb (Predicate_Tests_On_Arguments): Omit tests for + some additional cases of internally generated routines. + +2014-07-30 Ed Schonberg + + * sem_ch10.adb (Analyze_Proper_Body): When compiling for ASIS, + if the compilation unit is a subunit, extend optional processing + to all subunits of the current one. This allows gnatstub to + supress generation of spurious bodies. + +2014-07-30 Hristian Kirtchev + + * a-cbmutr.adb (Insert_Child): Use local variable First to keep + track of the initial element's index within the tree. + +2014-07-29 Hristian Kirtchev + + * a-cbmutr.adb (Allocate_Node): Remove the two parameter version. + (Insert_Child): Add local variable First. Capture the index of the + first node being created to ensure correct cursor construction + later on. Use the three parameter version of Allocate_Node + when creating multiple children as this method allows aspect + Default_Value to take effect (if applicable). + +2014-07-29 Eric Botcazou + + * exp_aggr.adb (Safe_Slice_Assignment): Remove. + (Expand_Array_Aggregate): For a safe slice assignment, just set + the target and use the common code path. + +2014-07-29 Robert Dewar + + * sem_util.adb, sem_util.ads, sem_res.adb, exp_ch6.adb: Invert + predicate No_Predicate_Test_On_Arguments, new name is + Predicate_Tests_On_Arguments (with the opposite sense). + +2014-07-29 Hristian Kirtchev + + * sem_attr.adb (Resolve_Attribute): Clean up the code for + attribute 'Access. Do not generate an elaboration flag for a + stand alone expression function. The expression of an expression + function is now frozen when the expression function appears as + the prefix of attribute 'Access. + * sem_ch6.adb (Analyze_Expression_Function): Remove local + variable New_Decl and update all references to it after the + rewriting has taken place. Establish the linkages between the + generated spec and body. + +2014-07-29 Robert Dewar + + * sem_prag.adb (ip, rv): Prevent from being optimized away. + * gnatls.adb (gnatls): Set E_Fatal exit status if ali file not found. + * s-imgllb.adb, s-imgllw.adb, s-imgwiu.adb, s-imgbiu.adb: Minor + reformatting. + +2014-07-29 Vincent Celier + + * prj-pp.adb: Minor comment update. + * frontend.adb: If a target dependency info file has been read + through switch -gnateT= add it to the dependencies of the source + being compiled. + +2014-07-29 Robert Dewar + + * sem_ch3.adb, prj.adb: Minor reformatting. + +2014-07-29 Vincent Celier + + * prj-pp.adb (Pretty_Print.Output_Project_File): New + procedure to output project file names between quotes without + concatenation, even if the line is too long. + (Pretty_Print): Use Output_Project_File for project being extended and + project imported. + +2014-07-29 Vincent Celier + + * gnat_ugn.texi: Document that configuration pragmas files are + added to the dependencies, unless they contain only pragmas + Source_File_Name_Project. + +2014-07-29 Robert Dewar + + * frontend.adb: Minor reformatting. + +2014-07-29 Robert Dewar + + * exp_ch6.adb (Add_Call_By_Copy_Code): Minor reformatting + (Expand_Actuals): Make sure predicate checks are properly applied + for the case of OUT or IN OUT parameters. + * sem_res.adb: Minor reformatting (Resolve_Actuals): Skip + predicate tests on arguments for Finalize + * sem_util.adb (No_Predicate_Test_On_Arguments): Returns True + if predicate tests on subprogram arguments should be skipped. + * sem_util.ads (No_Predicate_Test_On_Arguments): New function + +2014-07-29 Ed Schonberg + + * sem_ch3.adb (Analyze_Object_Declaration): If there is an address + clause for the object and the expression is an aggregate, defer + resolution and expansion of the aggregate until the freeze point + of the entity. + * sem_aggr.adb (Resolve_Aggregate): An others_clause is legal if + the parent node is an N_Reference generated during expansion. + +2014-07-29 Vincent Celier + + * prj.adb (Add_To_Buffer): Effectively double the size of the buffer. + +2014-07-29 Robert Dewar + + * frontend.adb, inline.adb, sem_util.adb, sem_res.adb, + prepcomp.ads: Minor reformatting and code clean up. + * exp_ch6.adb (Expand_Actuals): Generate predicate test + unconditionally for case of OUT or IN OUT actual (before this + was generated only for certain subcases, which is wrong, the + test is always needed). + +2014-07-29 Ed Schonberg + + * sem_ch3.adb: Move Has_Defaulted_Discriminants to sem_util. + * sem_ch4.adb (Analyze_Allocator): Defer resolution of expression + until context type is available. + * sem_res.adb (Resolve_Allocator): In the case of a qualified + expression, complete resolution of expression. + (Check_Aliased_Parameter): New procedure within Resolve_Actuals, + to apply Ada2012 checks on aliased formals, as well as + accesibility checks when the context of the call is an allocator + or a qualified expression. + * sem_util.ads, sem_util.adb (Has_Defaulted_Discriminants): + Moved here from sem_ch3. + (Object_Access_Level): Handle properly aliased formals and + aggregates. + * exp_ch6.adb (Expand_Call): Remove check on aliased parameters, + now properly performed in sem_res (Resolve_Actuals, + Check_Aliased_Parameter). + +2014-07-29 Yannick Moy + + * debug.adb Enable GNATprove inlining under debug flag -gnatdQ for now. + * inline.ads, inline.adb (Can_Be_Inlined_In_GNATprove_Mode): New + function to decide when a subprogram can be inlined in GNATprove mode. + (Check_And_Build_Body_To_Inline): Include GNATprove_Mode as a + condition for possible inlining. + * sem_ch10.adb (Analyze_Compilation_Unit): Remove special case + for Inline_Always in GNATprove mode. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Build inlined + body for subprograms in GNATprove mode, under debug flag -gnatdQ. + * sem_prag.adb Minor change in comments. + * sem_res.adb (Resolve_Call): Only perform GNATprove inlining + inside subprograms marked as SPARK_Mode On. + * sinfo.ads: Minor typo fix. + +2014-07-29 Vincent Celier + + * frontend.adb: Add dependency on gnat.adc when taken into account + and on non-temporary configuration pragmas files specified in + switches -gnatec. + * prepcomp.ads, prepcomp.adb (Add_Dependency): New procedure to add + dependencies on configuration pragmas files. + +2014-07-29 Pat Rogers + + * gnat_ugn.texi: Minor clarification to the explanation for the + GNATtest -v switch. + +2014-07-29 Robert Dewar + + * types.ads (Mechanism_Type): Change range back to -18 .. Int'Last with + documentation that explains the need for this extended range + (use by C_Pass_By_Copy). + +2014-07-29 Robert Dewar + + * gnat_rm.texi, sem_prag.adb: Minor reformatting. + +2014-07-29 Sergey Rybin + + * gnat_ugn.texi: gnatmetric: clarify documentation for cyclomatic + complexity metrics. + +2014-07-29 Thomas Quinot + + PR ada/60652 + * s-oscons-tmplt.c: For Linux, define _BSD_SOURCE in order for + CRTSCTS to be visible. + +2014-07-29 Bob Duff + + * g-trasym.adb, g-trasym.ads: Code cleanup. + +2014-07-29 Doug Rupp + + * sigtramp-vxworks.c: Minor reformatting. + +2014-07-29 Ed Schonberg + + * gnat_rm.texi: No doc needed for Ada2012 aspect + Implicit_dereference. + +2014-07-29 Robert Dewar + + * sem_attr.adb (Attribute_12): New array + (Analyze_Attribute): Check impl-defined Ada 2012 attributes. + (Check_Ada_2012_Attribute): Removed. + +2014-07-29 Doug Rupp + + * init.c (vxworks6): Call sigtramp for RTP (as well as DKM) for ARM, + PPC, and e500. + * sigtramp-vxworks.c: New file. + * sigtramp-armvxw.c, sigtramp-ppcvxw.c: removed files. + +2014-07-29 Ed Schonberg + + * lib-xref.adb (Output_Refs, Check_Type_Reference): For a + derived array type, add information about component type, which + was previously missing in ali file. + * gnat_rm.texi: Add documentation for Atomic_Always_Lock_Free. + +2014-07-29 Thomas Quinot + + * sem_ch3.adb (Constrain_Corresponding_Record): For the case + of the subtype created for a record component, do not mark + the subtype as frozen. For one thing, this is anomalous (in + particular, the base type might not itself be frozen yet); + furthermore, proper freezing of the subtype must happen in any + case. So, we just mark the subtype as requiring delayed freezing + (and we'll actually freeze it when generating the init_proc of + the enclosing record). + Also change the name of the constrained record subtype (append a + 'C' so that it is clearly different from the unconstrained record + type, "related_idV") to make debugging easier. + (Process_Full_View): When creating a full subtype for a pending + private subtype, re-establish the scope of the private subtype + so that we get proper visibility on outer discriminants. + * exp_ch3.adb (Build_Init_Statements): Freeze any component + subtype that is not frozen yet. + +2014-07-29 Vincent Celier + + * prj-proc.adb (Recursive_Process): Always initialize the + environment when the project is an aggregate project, even when + it is not the root tree. +2014-07-29 Robert Dewar + + * exp_ch5.adb, exp_ch9.adb: Minor comment additions. + * gnat_rm.texi: Complete list of implementation aspects. + * aspects.ads: Minor comment clarification. + +2014-07-29 Ed Schonberg + + * exp_ch5.adb (Expand_N_Assignment_Statement): If the target type + is a null-excluding access type, do not generate a constraint + check if Suppress_Assignment_Checks is set on assignment node. + * exp_ch9.adb (Build_Simple_Entry_Call): If actual is an out + parameter of a null-excluding access type, there is access check + on entry, so set Suppress_Assignment_Checks on generated statement + that assigns actual to parameter block. + * sinfo.ads: Document additional use of Suppress_Assignment_Checks. + +2014-07-29 Robert Dewar + + * gnat_rm.texi: Change theta to @ in documentation of aspect + Dimension_System. + +2014-07-29 Robert Dewar + + * sem_attr.adb (Uneval_Old_Msg): Flags Uneval_Old_Accept/Warn + are now on pragma. + * sem_ch13.adb (Analyze_Aspect_Specifications): Remove setting + of Uneval_Old_* + * sem_prag.adb (Analyze_Pragma): Set Uneval_Old_* flags + * sinfo.ads, sinfo.adb: Move Uneval_Old_Accept/Warn to N_Pragma node. + +2014-07-29 Javier Miranda + + * types.ads Update documentation on how to add new reason codes + for exceptions. + (RT_Exception_Code): Keep values ordered by their + reason code. Required by the .NET backend. + (RT_CE_Exceptions): Subtype declaration removed. + (RT_PE_Exceptions): Subtype declaration removed. + (RT_SE_Exceptions): Subtype declaration removed. + (Kind): New mapping table of RT_Exception_Codes. + * exp_ch11.adb (Get_RT_Exception_Entity): Updated to use the + new mapping table. + * tbuild.adb (Make_Raise_Storage_Error): Updated to use the new + mapping table. (Make_Raise_Program_Error): Updated to use the + new mapping table. + (Make_Raise_Storage_Error): Updated to use the new mapping table. + * a-except.adb Keep Rcheck_CE_xxx entities ordered according to + their reason code. + +2014-07-29 Thomas Quinot + + * gnat_rm.texi: Document internal attributes used for PolyORB/DSA + distributed stubs generation. + * exp_ch3.adb: Minor reformatting. + +2014-07-29 Yannick Moy + + * sinfo.ads: Document constraint between frontend and GNATprove. + +2014-07-29 Robert Dewar + + * a-except.adb: Minor comment clarification. + +2014-07-29 Robert Dewar + + * gnat_rm.texi: Complete list of implementation attributes. + * snames.ads-tmpl: Clean up list of impl-defined attributes. + +2014-07-29 Hristian Kirtchev + + * freeze.adb (Freeze_Record_Type): Perform various + volatility-related checks. + +2014-07-29 Robert Dewar + + * sem_ch3.adb, sem_eval.adb: Minor reformatting. + +2014-07-29 Ed Schonberg + + * sem_attr.adb: sem_attr.adb (Access_Attribute): Handle properly + the case where the attribute reference appears in a nested scope + from that of the subprogram prefix. + * sem_attr.adb: Minor reformatting. + +2014-07-29 Robert Dewar + + * gnat_ugn.texi: Clarify documentation of Initialize_Scalar + initialization options. + +2014-07-29 Robert Dewar + + * sinfo.ads: Minor comment addition. + +2014-07-29 Bob Duff + + * sem_eval.adb, sem_ch13.adb: Minor reformatting. + +2014-07-29 Doug Rupp + + * init.c: Complete previous change. + +2014-07-29 Robert Dewar + + * exp_ch4.adb (Expand_N_If_Expression): Deal with unconstrained + array case. + +2014-07-29 Ed Schonberg + + * sem_attr.adb (Access_Attribute): If the prefix is a subprogram + and the completion will appear in the same declarative part, + create elaboration flag. + * exp_util.adb (Set_Elaboration_Flag): If the subprogram body + is a completion of a declaration in the same declarative part, + and the subprogram has had its address taken, add elaboration + check inside the subprogram body, to detect elaboration errors + that may occur through indirect calls. + +2014-07-29 Doug Rupp + + * sigtramp-armvxw.c: Enhance to handle RTP trampolining. + * init.c: Remove guard on sigtramp for ARM VxWorks RTP. + +2014-07-29 Vincent Celier + + * switch-c.adb (Scan_Front_End_Switches): Do not fail when two + runtime directorie specified with two switches --RTS= designate + the same directory, even when there are no literarily the same. + +2014-07-29 Robert Dewar + + * gnat_ugn.texi: Minor documentation clarification. + * switch-c.adb: Minor reformatting. + +2014-07-29 Robert Dewar + + * sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address): + Fix incorrect RTE call which caused bomb if pragma was in + configuration pragma file. + +2014-07-29 Jerome Lambourg + + * expect.c (__gnat_expect_poll): Fix typo in previous change. + * g-expect.adb: Update comments. + +2014-07-29 Arnaud Charlet + + * s-parame-hpux.ads, s-parame-vms-ia64.ads, s-parame.ads + (Default_Attribute_Count): Bump to 16 on native platforms. + +2014-07-29 Ed Schonberg + + * sem_res.adb: Add guard to front-end inlining for SPARK. + +2014-07-29 Robert Dewar + + * sem_ch10.adb, debug.adb, sem_prag.adb, sem_res.adb, sem_ch6.adb: + Minor reformatting. + +2014-07-29 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Build body to + inline in GNATprove mode when subprogran is marked Inline_Always. + * sem_res.adb (Resolve_Call): Expand call in place in GNATProve + mode if body to inline is available. + * sem_prag.adb (Analyze_Pragma, case Inline_Always): Make pragma + effective in GNATprove mode. + * sem_ch10.adb (Analyze_Compilation_Unit): Call + Check_Package_Body_For_Inlining in GNATprove mode, so that body + containing subprograms with Inline_Always can be available before + calls to them. + +2014-07-29 Ed Schonberg + + * inline.ads, inline.adb, sem_ch10.adb: Rename Check_Body_For_Inlining + to Check_Package_Body_For_Inlining, to prevent confusion with other + inlining subprograms. + +2014-07-29 Robert Dewar + + * opt.ads: Minor comment update. + * sem_attr.adb (Uneval_Old_Msg): Deal with case of aspect, where + we want setting of Uneval_Old at time of encountering the aspect. + * sem_ch13.adb (Analyze_Aspect_Specifications): Capture setting + of Opt.Uneval_Old. + * sinfo.adb (Uneval_Old_Accept): New function (Uneval_Old_Warn): + New function (Set_Uneval_Old_Accept): New procedure. + (Set_Uneval_Old_Warn): New procedure. + * sinfo.ads: Uneval_Old_Accept: New flag Uneval_Old_Warn: New flag. + +2014-07-29 Robert Dewar + + * sinfo.ads, inline.adb, inline.ads, sem_ch6.adb: Minor reformatting. + * snames.ads-tmpl: Minor reformatting. + * xsnamest.adb (XSnamesT): Remove special casing of Name_Error + to give . Not clear why this was there, but the compiler + sources do not reference Name_Error, and this interfered with + the circuits for pragma Unevaluated_Use_Of_Old. + +2014-07-29 Hristian Kirtchev + + * sem_prag.adb (Process_Atomic_Shared_Volatile): Allow volatile + types in SPARK 2014 (again). + * sem_res.adb (Is_OK_Volatile_Context): New routine. + (Resolve_Entity_Name): Ensure that a volatile object with + enabled properties Async_Writers or Effectire_Reads appears in + a non-interfering context. + +2014-07-29 Ed Schonberg + + * sem_ch6.adb: Move Build_Body_To_Inline, + Check_And_Buid_Body_To_Inline, and Cannot_Inline to package Inline. + * exp_ch6.adb: Mode Expand_Inlined_Body to package Inline. + * inline.ads, inline.adb: Package now contains subprograms that + implement front-end inlining. No functional changes, no test + needed. + +2014-07-29 Robert Dewar + + * exp_dbug.adb, g-expect.adb, sem_elab.adb: Minor typo fix. + +2014-07-29 Ed Schonberg + + * sem_ch6.adb (Analyze_Return_Type): Reject a return type that + is a limited view when the context is a package body, because + there is no subsequent place at which the non-limited view may + become visible. + (Process_Formals): Ditto. + * sinfo.ads, par-ch3.adb: Minor reformatting. + +2014-07-29 Jerome Lambourg + + * expect.c (__gnat_expect_poll): New parameter dead_process + used to return the dead process among the array of file + descriptors. The Windows, VMS and HPUX implementations now + properly report the dead process via this parameter. Other unixes + don't need it. + * g-expect.adb (Poll): Adapt to the C profile. + (Expect_Internal): Use the new parameter to properly close the + File Descriptor. This then can be properly reported by the + function First_Dead_Process as is expected. + +2014-07-29 Robert Dewar + + * gnat_ugn.texi: Minor clarification of -gnatQ switch. + +2014-07-29 Robert Dewar + + * einfo.adb (Derived_Type_Link): New function + (Set_Derived_Type_Link): New procedure. + (Write_Field31_Name): Output Derived_Type_Link. + * einfo.ads: New field Derived_Type_Link. + * exp_ch6.adb (Expand_Call): Warn if change of representation + needed on call. + * sem_ch13.adb: Minor addition of ??? comment. + (Rep_Item_Too_Late): Warn on case that is legal but could cause an + expensive implicit conversion. + * sem_ch3.adb (Build_Derived_Type): Set Derived_Type_Link if needed. + +2014-07-29 Hristian Kirtchev + + * exp_ch3.adb (Build_Init_Procedure): Renamed Local_DF_Id + to DF_Id. Add new local variable DF_Call. Do not perform any + elaboration-related checks on the call to the partial finalization + routine within an init proc to avoid generating bogus elaboration + warnings on expansion-related code. + * sem_elab.adb (Check_A_Call): Move constant Access_Case to + the top level of the routine. Ensure that Output_Calls takes + into account flags -gnatel and -gnatwl when emitting warnings + or info messages. + (Check_Internal_Call_Continue): Update the call to Output_Calls. + (Elab_Warning): Moved to the top level of routine Check_A_Call. + (Emit): New routines. + (Output_Calls): Add new formal parameter Check_Elab_Flag along with a + comment on usage. Output all warnings or info messages only when the + caller context demands it and the proper elaboration flag is set. + +2014-07-29 Yannick Moy + + * sem_attr.adb (Analyze_Attribute/Attribute_Old): + Check rule about Old appearing in potentially unevaluated + expression everywhere, not only in Post. + +2014-07-29 Arnaud Charlet + + * sem_prag.adb: Update comment. + * a-except.adb, a-except-2005.adb: Minor editing. + +2014-07-29 Pierre-Marie Derodat + + * exp_dbug.adb (Debug_Renaming_Declaration): + Do not create renaming entities for renamings of non-packed + objects and for exceptions. + +2014-07-29 Robert Dewar + + * sem_ch3.adb, sinfo.ads, types.ads, sem_prag.adb, a-except-2005.adb, + sem_ch6.adb, par-ch3.adb: Minor reformatting. + +2014-07-29 Ed Schonberg + + * sem_ch6.adb (Check_Return_Subtype_Indication): Reject a return + subtype indication in an extended return statement when the + return value is an ancestor of the return type of the function, + and that return type is a null record extension. + +2014-07-29 Thomas Quinot + + * sem_ch13.adb (Rep_Item_Too_Late): Specialize/clarify error + message produced for the case of a type-related representation + item that is made illegal by 13.10(1). + * gnat_rm.texi (Scalar_Storage_Order): Minor change in + documentation. + +2014-07-29 Robert Dewar + + * gnat_ugn.texi: Add section on Wide_Wide_Character encodings. + * erroutc.adb (Output_Error_Msgs): Take wide characters into + account in computing position of error flags. + * sinput.adb (Get_Column_Number): Take wide characters into + account. + +2014-07-29 Ed Schonberg + + * par-ch3.adb (P_Access_Type_Definition): The subtype indication + in an access type definition can carry a null_exclusion indicator. + * sem_ch3.adb (Access_Type_Declaration): If the subtype indication + carries a null_exclusion indicator, verify that the subtype + indication denotes an access type, and create a null-excluding + subtype for it. + * sinfo.ads, sinfo.adb: New attribute Null_Excluding_Subtype, + defined on N_Access_To_Object_Definition to indicate that the + subtype indication carries a null_exclusion indicator. + +2014-07-29 Hristian Kirtchev + + * exp_ch6.adb (Add_Extra_Actual): Do not construct + the extra actual by name, generate a reference instead. + +2014-07-29 Arnaud Charlet + + * sem_prag.adb (Analyze_Pragma): Do not crash analyzing + Allow_Integer_Address if already set. + * a-except-2005.adb (Rcheck_PE_Stream_Operation_Not_Allowed): + Fix order, for consistency with Rmsg_xx declarations. + +2014-07-29 Ed Schonberg + + * sem_ch4.adb (Complete_Object_Operation): If the type of the + candidate subprogram is a limited view, use non-limited view + when available. + +2014-07-29 Robert Dewar + + * sem_ch13.adb: Minor change in RM reference. + * sem_mech.ads: Minor reformatting. + * einfo.ads: Minor comment fix. + * types.ads: Minor correction to range given for Mechanism_Type. + * exp_ch6.adb (Add_Invariant_And_Predicate_Checks): Do not + check predicate on way out for OUT or IN OUT parameters. + * par-ch3.adb (P_Constraint_Opt): Handle missing RANGE keyword + better (P_Range_Constraint): Corresponding fix. + * checks.ads: Minor comment clarification. + +2014-07-29 Gary Dismukes + + * sem_ch8.adb (Analyze_Object_Renaming): Set the Is_Volatile + and Treat_As_Volatile flags based on whether the renamed object + is a volatile object. + +2014-07-29 Olivier Hainque + + * g-debpoo.adb + (Default_Alignment): Rename as Storage_Alignment. This is not + a "default" that can be overriden. Augment comment to clarify + intent and document why we need to manage alignment padding. + (Header_Offset): Set to Header'Object_Size instead of 'Size + rounded up to Storage_Alignment. Storage_Alignment on the + allocation header is not required by our internals so was + overkill. 'Object_Size is enough to ensure proper alignment + of the header address when substracted from a storage address + aligned on Storage_Alignment. + (Minimum_Allocation): Rename as Extra_Allocation, conveying that + this is always added on top of the incoming allocation requests. + (Align): New function, to perform alignment rounding operations. + (Allocate): Add comments on the Storage_Address computation + scheme and adjust so that the alignment padding applies to that + (Storage_Address) only. + +2014-07-29 Robert Dewar + + * exp_ch3.adb (Default_Initialize_Object): Remove incorrect + pragma Unreferenced. + * cstand.adb (Create_Standard): Use E_Array_Type for standard + string types. Make sure index of Any_String/Any_Array is in a list. + * errout.adb: Minor reformatting. + +2014-07-29 Robert Dewar + + * gnat_ugn.texi: Clean up and correct documentation of warnings. + * usage.adb: Minor corrections to make sure warnings are properly + documented. + * warnsw.adb (Set_Warning_Switch): Remove redundant return statement. + (WA_Warnings): Add Warn_On_Suspicious_Modulus_Value. + +2014-07-29 Ed Schonberg + + * exp_ch3.adb (Expand_N_Object_Declaration): The dummy block + created to match internal sequence numbers between compilations + with/without abort must have its type properly set. + +2014-07-29 Robert Dewar + + * ali.adb (Initialize_ALI): Initialize SSO_Default_Specified + (Scan_ALI): Set SSO_Default in ALIs_Record (Scan_ALI): Set + SSO_Default_Specified. + * ali.ads (ALIs_Record): Add field SSO_Default + (SSO_Default_Specified): New global switch. + * bcheck.adb (Check_Consistent_SSO_Default): New procedure + (Check_Configuration_Consistency): Call this procedure + * einfo.adb (SSO_Set_High_By_Default): New + function (SSO_Set_Low_By_Default): New function + (Set_SSO_Set_High_By_Default): New procedure + (Set_SSO_Set_Low_By_Default): New procedure (Write_Entity_Flags): + List new flags + * einfo.ads (SSO_Set_Low_By_Default): New flag + (SSO_Set_High_By_Default): New flag + * freeze.adb (Set_SSO_From_Default): New procedure + (Freeze_Array_Type): Call Set_SSO_From_Default + (Freeze_Record_Type): Call Set_SSO_From_Default + * gnat_rm.texi: Document pragma Default_Scalar_Storage_Order + * lib-writ.adb (Write_ALI): Set OL/OH in P line as needed + * lib-writ.ads: Add OL/OH parameters to P line + * opt.adb: Set Default_SSO, Default_SSO_Config as appropriate + * opt.ads (Default_SSO): New global switch (Default_SSO_Config): + New global switch + * repinfo.adb (List_Scalar_Storage_Order): List SSO when it is + set by default using pragma Default_Scalar_Storage_Order. + * sem.ads (Scope_Stack_Entry): Add component Save_Default_SSO + * sem_ch13.adb (Inherit_Delayed_Rep_Aspects): + Clear SSO defaults when explicit SSO is inherited. + (Analyze_Attribute_Definition_Clause): Clear SSO defaults when + explicit SSO is specified. + (Inherit_Aspects_At_Freeze_Point): + Clear SSO default when inheriting SSO. + * sem_ch3.adb (Set_Default_SSO): New procedure + (Analyze_Private_Extension_Declaration): Set defualt SSO + (Array_Type_Declaration): ditto (Build_Derived_Array_Type): ditto + (Build_Derived_Private_Type): ditto (Build_Derived_Record_Type): + ditto (Build_Derived_Type): ditto (Make_Class_Wide_Type): ditto + (Record_Type_Declaration): ditto + * sem_ch8.adb (Pop_Scope): Restore Default_SSO (Push_Scope): + Save Default_SSO + * sem_prag.adb (Analyze_Pragma, case + Default_Scalar_Storage_Order): Set Default_SSO + +2014-07-29 Ed Schonberg + + * sem_ch6.adb (Valid_Operator_Definition): Verify that + all parameter have mode IN. This check must be done here for + subprogram instantiations that have operator names, because their + analysis does not follow the same path as that for subprogram + declarations. + +2014-07-29 Robert Dewar + + * freeze.adb (Freeze_Entity, Concurrent_Type case): Add a guard + to make sure that the Etype of a component of the corresponding + record type is present before trying to freeze it. + * sem_ch5.adb: Minor reformatting. + +2014-07-29 Robert Dewar + + * exp_attr.adb, types.ads, types.h, exp_ch11.adb, a-except.adb, + a-except-2005.adb: Add new reason code PE_Stream_Operation_Not_Allowed, + and then use it when a stream operation is used from a library generic + when the restriction (No_Streams) is active. + +2014-07-29 Thomas Quinot + + * projects.texi: Fix minor typo. + +2014-07-29 Yannick Moy + + * sem_attr.adb (Analyze_Attribute): Fix generation of warning. + +2014-07-29 Arnaud Charlet + + * sem_ch5.adb (Check_Unreachable_Code): Do not remove code in + CodePeer mode. + +2014-07-29 Hristian Kirtchev + + * exp_ch7.adb (Find_Last_Init): Add local variable + Deep_Init_Found. Check the statement immediately following the + declaration if [Deep_]Initialization was not found. + +2014-07-29 Hristian Kirtchev + + * exp_util.adb (Is_Aliased): It appears that + 'reference-d and renamed objects still play some role in Boolean + expression with actions and cannot be finalized immediately. + +2014-07-29 Ed Schonberg + + * exp_dbug.adb (Qualify_Needed): For debugging purposes, + Loop names are not part of the full qualification of entity names. + +2014-07-29 Robert Dewar + + * einfo.adb (Has_Protected): Test base type. + * sem_ch4.adb (Analyze_Allocator): Reorganize code to make sure + that we always properly check No_Protected_Type_Allocators. + +2014-07-29 Ed Schonberg + + * sem_util.ads, sem_util.adb (Defining_Entity): Now applies to + loop declarations as well. + * exp_ch5.adb (Expand_Loop_Statement): Apply Qualify_Entity_Names + to an iterator loop, because it may contain local renaming + declarations that require debugging information. + +2014-07-29 Robert Dewar + + * sem_util.ads, exp_util.adb, sem_attr.adb: Minor reformatting. + +2014-07-29 Robert Dewar + + * einfo.ads, einfo.adb (Static_Real_Or_String_Predicate): New function + (Set_Static_Real_Or_String_Predicate): New procedure + * sem_ch13.adb (Build_Predicate_Functions): Accomodate static + string predicates (Is_Predicate_Static): Handle static string + predicates. + * sem_eval.adb (Real_Or_String_Static_Predicate_Matches): + New procedure (Check_Expression_Against_Static_Predicate): + Deal with static string predicates, now fully implemented + (Eval_Relational_Op): Allow string equality/inequality as static + if not comes from source. + +2014-07-29 Robert Dewar + + * sem_aggr.adb, exp_ch5.adb, sem_ch5.adb, exp_util.adb, einfo.adb, + einfo.ads, sem_util.adb, sem_attr.adb, sem_case.adb, sem_eval.adb, + sem_eval.ads, sem_ch13.adb: General cleanup of static predicate + handling. Change name of Discrete_Predicate to + Discrete_Static_Predicate, and replace testing of the presence of this + field by testing the flag Has_Static_Expression. + +2014-07-29 Robert Dewar + + * gnat_rm.texi: Document pragma Unevaluated_Use_Of_Old. + * opt.adb: Handle Uneval_Old. + * opt.ads (Uneval_Old, Uneval_Old_Config): New variables. + * par-prag.adb: Add dummy entry for pragma Unevaluated_Use_Of_Old. + * sem.ads (Save_Uneval_Old): New field in Scope_Stack_Entry. + * sem_attr.adb (Uneval_Old_Msg): New procedure. + * sem_ch8.adb (Push_Scope): Save Uneval_Old. + (Pop_Scope): Restore Uneval_Old. + * sem_prag.adb (Analyze_Pragma, case Unevaluated_Use_Of_Old): + Implemented. + * snames.ads-tmpl: Add entries for pragma Unevaluated_Use_Of_Old + Add entries for Name_Warn, Name_Allow. + +2014-07-29 Robert Dewar + + * sem_aggr.adb (Resolve_Array_Aggregate): Change Is_Static_Range + to Is_OK_Static_Range. + * sem_attr.adb (Eval_Attribute): Make sure we properly flag + static attributes (Eval_Attribute, case Size): Handle size of + zero properly (Eval_Attribute, case Value_Size): Handle size of + zero properly. + * sem_ch13.adb: Minor reformatting. + * sem_ch3.adb (Process_Range_Expr_In_Decl): Change + Is_Static_Range to Is_OK_Static_Range. + * sem_eval.adb (Eval_Case_Expression): Total rewrite, was + wrong in several ways (Is_Static_Range): Moved here from spec + (Is_Static_Subtype): Moved here from spec Change some incorrect + Is_Static_Subtype calls to Is_OK_Static_Subtype. + * sem_eval.ads: Add comments to section on + Is_Static_Expression/Raises_Constraint_Error (Is_OK_Static_Range): + Add clarifying comments (Is_Static_Range): Moved to body + (Is_Statically_Unevaluated): New function. + * sem_util.ads, sem_util.adb (Is_Preelaborable_Expression): Change + Is_Static_Range to Is_OK_Static_Range. + * sinfo.ads: Additional commments for Is_Static_Expression noting + that clients should almost always use Is_OK_Static_Expression + instead. Many other changes throughout front end units to obey + this rule. + * tbuild.ads, tbuild.adb (New_Occurrence_Of): Set Is_Static_Expression + for enumeration literal. + * exp_ch5.adb, sem_intr.adb, sem_ch5.adb, exp_attr.adb, exp_ch9.adb, + lib-writ.adb, sem_ch9.adb, einfo.ads, checks.adb, checks.ads, + sem_prag.adb, sem_ch12.adb, freeze.adb, sem_res.adb, exp_ch4.adb, + exp_ch6.adb, sem_ch4.adb, sem_ch6.adb, exp_aggr.adb, sem_cat.adb: + Replace all occurrences of Is_Static_Expression by + Is_OK_Static_Expression. + +2014-07-29 Hristian Kirtchev + + * exp_ch4.adb (Process_Transient_Object): Remove constant + In_Cond_Expr, use its initialization expression in place. + * exp_ch7.adb (Process_Declarations): There is no need to check + that a transient object being hooked is controlled as it would + not have been hooked in the first place. + * exp_util.adb (Is_Aliased): 'Reference-d or renamed transient + objects are not considered aliased when the related context is + a Boolean expression_with_actions. + (Requires_Cleanup_Actions): There is no need to check that a transient + object being hooked is controlled as it would not have been hooked in + the first place. + +2014-07-29 Robert Dewar + + * errout.adb: Minor reformatting. + +2014-07-29 Hristian Kirtchev + + * exp_ch3.adb (Default_Initialize_Object): Add new variables + Abrt_Blk and Dummy. Generate a dummy temporary when aborts are + not allowed to ensure the symmetrical generation of symbols. + * exp_ch7.adb (Build_Object_Declarations): Remove variables A_Expr + and E_Decl. Add new variables Decl and Dummy. Generate a dummy + temporary when aborts are not allowed to ensure symmertrical + generation of symbols. + * exp_intr.adb (Expand_Unc_Deallocation): Add new variable + Dummy. Generate a dummy temporary when aborts are not allowed + to ensure symmertrical generation of symbols. + +2014-07-29 Ed Schonberg + + * exp_dbug.adb (Debug_Renaming_Declaration): For an object + renaming, indicate that the renamed entity itself needs debug + information. This is necessary if that entity is a temporary, + e.g. part of the expansion of an explicit dereference in an + iterator. + +2014-07-29 Thomas Quinot + + * errout.adb (Set_Error_Posted): When propagating flag to + an enclosing named association, also propagate to the parent + of that node, so that named and positional associations are + treated consistently. + +2014-07-29 Ed Schonberg + + * sem_attr.adb (Resolve_Attribute, case 'Update): Set + Do_Range_Check properly on array component expressions that + have a scalar type. In GNATprove mode, only checks on scalar + components must be marked by the front-end. + +2014-07-29 Ed Schonberg + + * sem_res.adb (Resolve_Type_Conversion): If the type of the + expression is a limited view, use the non-limited view when + available. + +2014-07-29 Hristian Kirtchev + + * exp_ch4.adb (Expand_N_Case_Expression): Mark the generated + case statement as coming from a conditional expression. + (Expand_N_If_Expression): Mark the generated if statement as + coming from a conditional expression. + * exp_ch5.adb (Expand_N_Case_Statement): Do not process controlled + objects found in case statement alternatives when the case + statement is actually a case expression. + (Expand_N_If_Statement): + Do not process controlled objects found in an if statement when + the if statement is actually an if expression. + * sinfo.adb (From_Conditional_Expression): New routine. + (Set_From_Conditional_Expression): New routine. + * sinfo.ads Add new semantic flag From_Conditional_Expression and + update related nodes. + (From_Conditional_Expression): New routine along with pragma Inline. + (Set_From_Conditional_Expression): New routine along with pragma Inline. + +2014-07-29 Hristian Kirtchev + + * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Remove + formal parameter Obj_Id and update the comment on usage. Renamed + Obj_Typ to Func_Typ and update all occurrences. + (Find_Last_Init): Remove formal parameter Decl and update the comment + on usage. + Remove local constants Obj_Id and Obj_Typ. Remove local variables + Init_Typ and Is_Conc. Remove the extraction of the initialization type. + (Find_Last_Init_In_Block): Remove formal parameter + Init_Typ and update the comment on usage. + (Is_Init_Call): Remove formal parameter Init_Typ and update the comment + on usage. Check whether the procedure call is an initialization + procedure of either the object type or the initialization type. + (Is_Init_Proc_Of): New routine. + (Process_Object_Declaration): Obj_Id and Obj_Typ are now global to this + routine. Add new variable Init_Typ. Add circuitry to extract the object + type as well as the initialization type. + +2014-07-29 Robert Dewar + + * sem_case.adb: Minor reformatting. + * sem_aux.ads: Minor reformatting. + +2014-07-29 Ed Schonberg + + * sinfo.adb (Set_Else_Actions, Set_Then_Actions): Set parent + pointer on these fields, even though they are semantic, because + subsequent analysis and expansion of action nades may require + exploring the tree, for example to locate a node to be wrapped + when a function with controlled result is called. + +2014-07-29 Claire Dross + + * sem_aux.adb (Get_Binary_Nkind): Use case on + Name_Id instead of an intermediate string. + (Get_Unary_Nkind): Use case on Name_Id instead of an intermediate + string. + +2014-07-29 Sergey Rybin + + * gnat_ugn.texi (gnatelim, gnatstub, gnatmetric): Add note + about processing sources with preprocessor directives. + +2014-07-24 Martin Liska + + * gcc-interface/trans.c (finalize_nrv): Adjust function call. + * gcc-interface/utils.c (rest_of_subprog_body_compilation): Likewise. + (gnat_write_global_declarations): Likewise. + +2014-07-19 David Wohlferd + + * gnat_rm.texi: Clean up for makeinfo 5.2. + +2014-07-19 David Wohlferd + + * gnat_rm.texi (Machine Code Insertions): Clean up. + +2014-07-18 Robert Dewar + + * exp_ch7.adb: Minor reformatting. + +2014-07-18 Claire Dross + + * sem_aux.ads (Get_Binary_Nkind): New function that returns + the Node_Kind value of an entity defining a binary operator. + (Get_Unary_Nkind): New function that returns the Node_Kind value + of an entity defining a unary operator. + +2014-07-18 Pascal Obry + + * sysdep.c: comment update. + * adaint.c (__gnat_fputwc): Use wchar_t on a limited set of + platforms where it is known to be supported. + +2014-07-18 Thomas Quinot + + * sem_dist.adb (Process_Remote_AST_Declaration): Need + to set Fat_Type's Ekind in order to be able to use its + Corresponding_Remote_Type attribute. + +2014-07-18 Hristian Kirtchev + + * einfo.adb Last_Aggregate_Assignment is now Node 30. + (Last_Aggregate_Assignment): Include + constants in the assertion. Update the underlying node. + (Set_Last_Aggregate_Assignment): Include constants in the + assertion. Update the underlying node. (Write_Field11_Name): + Remove the entry for Last_Aggregate_Assignment. + (Write_Field30_Name): Add an entry for Last_Aggregate_Assignment. + * einfo.ads Update the node designation and usage of attribute + Last_Aggregate_Assignment. + * exp_aggr.adb (Expand_Array_Aggregate): Store the last + assignment statement used to initialize a controlled object. + (Late_Expansion): Store the last assignment statement used to + initialize a controlled record or an array of controlled objects. + * exp_ch3.adb (Expand_N_Object_Declaration): Default + initialization of objects is now performed in a separate routine. + (Default_Initialize_Object): New routine. + * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Add formal parameter + Obj_Id. Update the comment on usage. + (Find_Last_Init): Remove formal parameter Typ. Update comment on usage. + Reimplement the logic. (Find_Last_Init_In_Block): New routine. + (Is_Init_Call): Add formal parameter Init_Typ. Update the + comment on usage. Account for the type init proc when trying + to determine whether a statement is an initialization call. + (Make_Adjust_Call): Rename formal parameter For_Parent to + Skip_Self. Update all occurrences of For_Parent. Account for + non-tagged types. Update the call to Make_Call. + (Make_Call): Rename formal parameter For_Parent to Skip_Self. Update + comment on usage. Update all occurrences of For_Parent. + (Make_Final_Call): Rename formal parameter For_Parent to + Skip_Self. Update all occurrences of For_Parent. Account + for non-tagged types. Update the call to Make_Call. + (Process_Object_Declaration): Most variables and constants are + now local to the routine. + * exp_ch7.ads (Make_Adjust_Call): Rename formal parameter + For_Parent to Skip_Self. Update the comment on usage. + (Make_Final_Call): Rename formal parameter For_Parent to + Skip_Self. Update the comment on usage. + +2014-07-18 Ed Schonberg + + * sem_ch9.adb (Analyze_Requeue): The entry being referenced + can be a procedure that is implemented by entry, and have a + formal that is a synchronized interface. It does not have to + be declared as a protected operation. + +2014-07-18 Robert Dewar + + * gnat_rm.texi: Remove mention of obsolete attributes + Max[_Interrupt]_Priority, which have never been implemented + (or at the very least were removed long ago if they ever were + implemented. Add documentation of Max[_Interrupt]_Priority + constants in package System. + * ttypes.ads: Document actual handling of package System, + rather than a historical fantasy version. Remove mention of + non-existent attributes Max[_Interrupt]_Priority. + +2014-07-18 Pascal Obry + + * a-witeio.adb (Put): No 16-bit character output when text + translation is disabled. + * i-cstrea.ads: Code clean up. + +2014-07-18 Robert Dewar + + * gnat_rm.texi: Document that Wchar_T_Size and Word_Size are + static attributes. + +2014-07-18 Arnaud Charlet + + * a-witeio.adb, initialize.c: Update comments. Minor clean ups. + +2014-07-18 Pascal Obry + + * adaint.c: Do not include wchar.h on VxWorks. + * mingw32.h: Remove obsolete definition. + +2014-07-18 Pascal Obry + + * a-textio.adb, a-witeio.adb, a-ztexio.adb: Use C_Streams Default_Text. + * i-cstrea.ads (Content_Encoding): Moved here, add convention C. + * s-ficobl.ads (Content_Encoding): Moved to C_Streams. + * s-fileio.adb (Open): Adjust to use Content_Encoding from C_Streams. + +2014-07-18 Pascal Obry + + * a-textio.adb: Rename Is_Text_File to Text_Encoding. + * a-ztexio.adb: Likewise. + * a-witeio.adb: Likewise. + (Open): Pass file's translation mode to set_text_mode. + * s-ficobl.ads (Content_Encoding): New type. + (Text_Content_Encoding): New subtype. + (AFCB): Rename Is_Text_File to Text_Encoding. + * s-fileio.adb (Open): Handles new text_translation + values. Remove Is_Text_File which is equivalent to Text_Encoding + in Text_Content_Encoding. + * adaint.h (__gnat_set_mode): New routine. + * sysdep.c (__gnat_set_wide_text_mode): Removed. + (__gnat_set_mode): New routine. + +2014-07-18 Arnaud Charlet + + * gcc-interface/decl.c, gcc-interface/trans.c, + gcc-interface/utils.c (Is_Packed_Array_Type): Renamed + Is_Packed_Array_Impl_Type. + +2014-07-18 Gary Dismukes + + * sem_util.adb: Minor typo correction. + +2014-07-18 Ben Brosgol + + * gnat_rm.texi: Complete previous change. + +2014-07-18 Pascal Obry + + * s-fileio.adb: Minor style fix. + +2014-07-18 Ed Schonberg + + * sem_ch13.adb (Analyze_Aspect_Specifications): Detect improper + specification of stream attributes for subtypes that are not + first subtypes, to prevent malformed rep_item chains in the case + of such illegal specifications for discriminated private subtypes. + (Check_Overloaded_Name): Verify that the name is an entity name + before other checks. + +2014-07-18 Pascal Obry + + * adaint.c (__gnat_fputwc) Do not disable on cross-build. + +2014-07-18 Robert Dewar + + * sem_prag.adb, sem_attr.adb, + sem_aggr.adb, sinfo.ads, sem_eval.ads: Minor reformatting. + +2014-07-18 Pascal Obry + + * sysdep.c (__gnat_wide_text_translation_required): Removed from here. + * initialize.c (__gnat_wide_text_translation_required): Defined here. + +2014-07-18 Pascal Obry + + * adaint.c (__gnat_fputwc): New routine. + * s-crtl.ads (fputwc): Now imported as __gnat_fputwc. + +2014-07-18 Hristian Kirtchev + + * einfo.adb: Flag 270 is now used as Stores_Attribute_Old_Prefix. + (Set_Stores_Attribute_Old_Prefix): New routine. + (Stores_Attribute_Old_Prefix): New routine. + (Write_Entity_Flags): + Output flag Stores_Attribute_Old_Prefix. + * einfo.ads Add new flag Stores_Attribute_Old_Prefix along with + comment on usage. + (Set_Stores_Attribute_Old_Prefix): New routine + along with pragma Inline. + (Stores_Attribute_Old_Prefix): New + routine along with pragma Inline. + * exp_attr.adb (Expand_N_Attribute_Reference): Mark the generated + constant which captures the result of attribute 'Old's prefix. + * sem_util.adb (In_Assertion_Expression_Pragma): Recognize a + relocated expression which acted as a prefix of attribute 'Old. + +2014-07-18 Bob Duff + + * s-spsufi.adb (Finalize_And_Deallocate): Set Subpool.Owner to + null before dispatching to Deallocate_Subpool. + * s-stposu.ads (Default_Subpool_For_Pool): Change mode of + parameter of Default_Subpool_For_Pool to 'in out'. + * s-stposu.adb (Set_Pool_Of_Subpool): Use raise expression. Add + a message to the raise. + * sem_util.adb: Minor reformatting. + +2014-07-18 Robert Dewar + + * sem_util.adb (Check_Expression_Against_Static_Predicate): + Mark expression as non-static if it fails static predicate check, + and issue additional warning. + +2014-07-18 Pascal Obry + + * a-witeio.adb (Put): Control translation based on + wide_text_translation_required. + * adaint.c (CurrentCCSEncoding): New variable. + * initialize.c (__gnat_initialize): On Windows initialize + CurrentCCSEncoding based on values in GNAT_CCS_ENCODING + environment variable. + * mingw32.h (CurrentCCSEncoding): New external. + (__gnat_wide_text_translation_required): Likewise. + * sysdep.c (wide_text_translation_required): New variable. + (__gnat_set_wide_text_mode): Set mode based on CurrentCCSEncoding. + +2014-07-18 Hristian Kirtchev + + * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Remove global + variable Refined_States. Add global variable Matched_Items. + (Check_Dependency_Clause): Account for dependency + clauses utilizing states with visible null refinements. + (Is_Null_Refined_State): New routine. + (Match_Items): Record each successfully matched item of pragma Depends. + (Record_Item): New routine. + +2014-07-18 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case 'Update): Set + Do_Range_Check flag on a dynamic index expression used in a + component association in the argument of Update. + +2014-07-18 Gary Dismukes + + * einfo.ads, sem_eval.ads, sem_ch13.adb: Minor reformatting. + +2014-07-18 Hristian Kirtchev + + * exp_ch6.adb (Expand_Simple_Function_Return): Redo the marking + of enclosing blocks, loops and the enclosing function using a + parent-based traversal. + * exp_util.adb (Wrap_Statements_In_Block): Suppress the secondary + stack reclamation if the iterator loop contains a return statement + that uses the stack. + * sem_ch5.adb (Analyze_Loop_Statement): There is no need to + patch up the scope stack as the secondary stack management now + takes into account the enclosing function of the iterator loop. + +2014-07-18 Robert Dewar + + * sem_ch3.adb, g-memdum.ads, i-cstrea.ads: Minor reformatting. + +2014-07-18 Robert Dewar + + * einfo.adb (Has_Static_Predicate): New function. + (Set_Has_Static_Predicate): New procedure. + * einfo.ads (Has_Static_Predicate): New flag. + * sem_ch13.adb (Is_Predicate_Static): New function + (Build_Predicate_Functions): Use Is_Predicate_Static to reorganize + (Add_Call): Minor change in Sloc of generated expression + (Add_Predicates): Remove setting of Static_Pred, no longer used. + * sem_ch4.adb (Has_Static_Predicate): Removed this function, + replace by use of the entity flag Has_Static_Predicate_Aspect. + * sem_eval.adb (Eval_Static_Predicate_Check): Check real case + and issue warning that predicate is not checked for now. + * sem_eval.ads (Eval_Static_Predicate_Check): Fix comments in + spec. + * sem_util.adb (Check_Expression_Against_Static_Predicate): + Carry out check for any case where there is a static predicate, + and output appropriate message. + * sinfo.ads: Minor comment corrections. + +2014-07-18 Ed Schonberg + + * exp_ch3.adb (Expand_Freeze_Record_Type): If the type is derived + from an untagged private type whose full view is tagged, the type + is marked tagged for layout reasons, but it has no dispatch table, + so Set_All_DT_Position must not be called. + * exp_ch13.adb: If the freeze node is for a type internal to a + record declaration, as is the case for a class-wide subtype + of a parent component, the relevant scope is the scope of the + enclosing record. + +2014-07-18 Thomas Quinot + + * g-memdum.adb, g-memdum.ads: Code clean ups. + +2014-07-18 Hristian Kirtchev + + * sem_prag.adb (Check_Dependency_Clause): + Update the comment on usage. Reimplement the mechanism which + attempts to match a single clause of Depends against one or + more clauses of Refined_Depends. + (Input_Match): Removed. + (Inputs_Match): Removed. + (Is_Self_Referential): Removed. + (Normalize_Clause): Update the call to Split_Multiple_Outputs. + (Normalize_Outputs): Rename variable Split to New_Claue and update + all its occurrences. + (Report_Extra_Clauses): Update the comment on usage. + (Split_Multiple_Outputs): Renamed to Normalize_Outputs. + +2014-07-18 Gary Dismukes + + * i-cstrea.ads: Minor reformatting. + +2014-07-18 Hristian Kirtchev + + * exp_util.adb (Wrap_Statements_In_Block): Propagate both + secondary stack-related flags to the generated block. + * sem_ch5.adb (Analyze_Loop_Statement): Update the scope chain + once the loop is relocated in a block. + +2014-07-18 Robert Dewar + + * repinfo.ads: Add documentation on handling of back annotation + for dynamic case. + +2014-07-18 Ed Schonberg + + * sinfo.ads, sinfo.adb (Incomplete_View): New semantic attribute + of full type declaration, denotes previous declaration for + incomplete view of the type. + * sem_ch3.adb (Analyze_Full_Type_Declaration): Set Incomplete_View + of declaration if one is present. + (Replace_Type): When constructing the signature of an inherited + operation, handle properly the case where the operation has a + formal whose type is an incomplete view. + * sem_util.adb (Collect_Primitive_Operations): Handle properly + the case of an operation declared after an incomplete declaration + for a type T and before the full declaration of T. + +2014-07-18 Pascal Obry + + * i-cstrea.ads: Add documentation for set_wide_text_mode. + +2014-07-18 Robert Dewar + + * a-witeio.adb: Minor code reorganization. + * i-cstrea.ads: Add comment. + +2014-07-18 Thomas Quinot + + * s-oscons-tmplt.c (NAME_MAX): Minor cleaup and comment + clarifications. + +2014-07-18 Robert Dewar + + * g-memdum.adb, g-memdum.ads, exp_strm.adb: Minor reformatting. + +2014-07-18 Pascal Obry + + * s-crtl.ads, i-cstrea.ads (fputwc): New routine. + * a-witeio.adb (Put): On platforms where there is translation + done by the OS output the raw text. + (New_Line): Use Put above to properly handle the LM wide characters. + +2014-07-18 Thomas Quinot + + * g-memdum.adb, g-memdum.ads (Dump): New parameter Prefix, defaulted + to Absolute_Address. + +2014-07-18 Eric Botcazou + + * opt.ads (Suppress_Back_Annotation): Remove as unused. + * fe.h (Back_Annotate_Rep_Info): Likewise. + (Global_Discard_Names): Likewise. + +2014-07-18 Robert Dewar + + * sem_ch13.adb (Is_Type_Ref): Check that type name is not + parenthesized. + +2014-07-18 Vincent Celier + + * s-osinte-vms.ads: Fix style errors. + +2014-07-18 Thomas Quinot + + * s-oscons-tmplt.c (_POSIX_SOURCE): Define in order to get + NAME_MAX and PATH_MAX. + +2014-07-18 Bob Duff + + * exp_strm.adb (Build_Record_Or_Elementary_Input_Function, + Build_Record_Or_Elementary_Output_Procedure): For Input and + Output attributes, do not read/write the discriminants if they + have default values; that will be done by Read/Write. + +2014-07-18 Robert Dewar + + * sem_aggr.adb, exp_ch5.adb, sem_ch3.adb, layout.adb, sem_type.adb, + exp_util.adb, exp_attr.adb, einfo.adb, einfo.ads, exp_pakd.adb, + checks.adb, exp_pakd.ads, freeze.adb, sem_util.adb, exp_dbug.adb, + exp_dbug.ads, exp_ch4.adb, sem_ch8.adb, exp_aggr.adb, sem_eval.adb, + sem_ch13.adb: Change name Packed_Array_Type to Packed_Array_Impl_Type. + +2014-07-18 Robert Dewar + + * lib-writ.adb, makeutl.adb, ali.ads: Minor reformatting. + +2014-07-18 Vincent Celier + + * lib-writ.ads: Update documentation about the D lines. + +2014-07-18 Ed Schonberg + + * sem_ch13.adb (Replace_Type_References_Generic): Use type entity + as a parameter, rather than its Chars field, in order to locate + freeze node of type. If the predicate or invariant has references + to types other than the one to which the contract applies, these + types must be frozen, and the corresponding predicate functions + created, before that freeze node. + +2014-07-18 Robert Dewar + + * freeze.adb, einfo.ads, einfo.adb: Minor code reorganization. + * par_sco.adb: Minor reformatting. + +2014-07-18 Gary Dismukes + + * exp_ch4.adb (Real_Range_Check): Turn off + the Do_Range_Check flag on the conversion's current Expression + argument rather than on the originally captured Operand node, + as Expression may reflect a rewriting (as in conversions to a + fixed-point type). + +2014-07-18 Vincent Celier + + * ali.adb (Scan_ALI): Set Sdep_Record.Unit_Name, when the unit + is not a subunit. + * ali.ads (Sdep_Record): New component Unit_Name. + * lib-writ.adb (Write_ALI): Write the unit name in D lines. + * makeutl.adb (Check_Source_Info_In_ALI): Return False if a + dependent unit is in a project and the source file name is not + one of its sources. + +2014-07-18 Bob Duff + + * s-addima.ads: Minor: add comment. + +2014-07-18 Thomas Quinot + + * freeze.adb (Check_Component_Storage_Order): Fix enforcement + of nesting rules for composites with different SSOs. + +2014-07-18 Thomas Quinot + + * par_sco.adb (Is_Logical_Operator): An If_Expression is not + a proper logical operator. + (Has_Decision): An If_Expression indicates the presence of a decision + although it is not a logical operator. + +2014-07-18 Robert Dewar + + * gnat_ugn.texi: Remove note that -gnatR not allowed with -gnatc. + * switch-c.adb: Remove prohibition of -gnatR and -gnatc together. + +2014-07-18 Eric Botcazou + + * sem_ch13.adb (Kill_Rep_Clause): Clear Comes_From_Source flag + on the null statement. + +2014-07-18 Thomas Quinot + + * adaint.c: Minor comment rewording. + * socket.c: Define macros _REENTRANT and _THREAD_SAFE so that + use of errno in this file is thread safe. + +2014-07-18 Arnaud Charlet + + * gnat_ugn.texi: Doc clarification. + * sem_ch13.adb (Kill_Rep_Clause): Use Replace not Rewrite. + * sem_ch13.ads: Minor comment update. + +2014-07-18 Robert Dewar + + * repinfo.ads: Minor comment fix. + +2014-07-18 Robert Dewar + + * par-prag.adb: Add dummy entry for Default_Scalar_Storage_Order. + * sem_prag.adb: Add dummy implementation of + Default_Scalar_Storage_Order. + * snames.ads-tmpl: Add dummy entry for + Default_Scalar_Storage_Order pragma. + +2014-07-18 Robert Dewar + + * opt.adb (Tree_Read): Read Address_Is_Private, + Ignore_Rep_Clauses, Ignore_Style_Check_Pragmas, Multiple_Unit_Index. + (Tree_Write): Corresponding writes + * opt.ads: Minor comment reformatting and fixes. + * tree_io.ads: Increment ASIS_Version_Number. + +2014-07-18 Robert Dewar + + * sem_attr.adb, s-os_lib.ads, prj-tree.adb: Minor reformatting. + * types.h: Fix typo. + +2014-07-18 Robert Dewar + + * freeze.adb (Check_Address_Clause): Use Kill_Rep_Clause (no + functional change). + * gnat_ugn.texi: Document that -gnatI removes rep clauses from + ASIS trees. + * sem_ch13.adb (Kill_Rep_Clause): New procedure + (Analyze_Attribute_Definition_Clause): Use + Kill_Rep_Clause. This is just a cleanup, no functional effect. + (Analyze_Enumeration_Representation_Clause): + Use Kill_Rep_Clause. This means that enum rep + clauses are now properly removed from -gnatct trees. + (Analyze_Record_Representation_Clause): Same change. + * sem_ch13.ads (Kill_Rep_Clause): New procedure. + +2014-07-18 Pascal Obry + + * s-os_lib.ads, s-os_lib.adb (GM_Time_Of): New routine to create an + OS_Time from time parts. + * adaint.h, adaint.c (__gnat_to_os_time): New routine. + +2014-07-18 Ed Schonberg + + * sem_ch4.adb (Try_Container_Indexing): Refine previous patch for + indexing over containers that are derived types: check whether + signature of found operation has the correct first parameter + before retrieving directly a primitive operation. + +2014-07-18 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case 'Update): Set + Do_Range_Check flag on dynamic bounds of a range used in a + component association in the argument of Update. + +2014-07-18 Thomas Quinot + + * adaint.c: #define _REENTRANT and _THREAD_SAFE in order for + accesses to errno(3) to be thread safe. + +2014-07-18 Vincent Celier + + * prj-tree.adb (Imported_Or_Extended_Project_Of): For each non + limited imported project that is an extending project, return + a project being extended if it has the expected name. + +2014-07-18 Pascal Obry + + * s-os_lib.ads, s-os_lib.adb (Set_File_Last_Modify_Time_Stamp): New + routine to set the last modification time stamp for the given file. + * gnatchop.adb (File_Time_Stamp): Removed. + (Write_Unit): Use + Set_File_Last_Modify_Time_Stamp instead of ad-hoc implementation. + +2014-07-18 Ed Schonberg + + * sem_aggr.adb (Aggregate_Constraint_Checks): Moved to sem_util. + * sem_util.ads, sem_util.adb (Aggregate_Constraint_Checks): + Moved here, so it can be shared with the resolution of 'Update, + whose argument shares some features with aggregates. + * sem_attr.adb (Resolve_Attribute, case 'Update): Apply + Aggregate_Constraint_Checks with the expression of each + association, so that the Do_Range_Check flag is set when needed. + +2014-07-18 Ed Schonberg + + * sem_ch4.adb (Try_Container_Indexing): If the container + type is a derived type, the value of the inherited aspect is + the Reference operation declared for the parent type. However, + Reference is also a primitive operation of the new type, and + the inherited operation has a different signature. We retrieve + the right one from the list of primitive operations of the + derived type. + +2014-07-18 Vincent Celier + + * debug.adb: Update comment. + +2014-07-18 Hristian Kirtchev + + * exp_util.adb (Needs_Finalization): There is no reason why a + C type should not benefit from finalization actions. + +2014-07-18 Thomas Quinot + + * s-oscons-tmplt.c (NAME_MAX): Fix definition for Solaris + (FILENAME_MAX): Remove unneeded definition. + +2014-07-18 Robert Dewar + + * exp_attr.adb, debug.adb: Update comments. + +2014-07-18 Vincent Celier + + * par-ch4.adb (Simple_Expression): Add missing style check + for binary adding operators. + (Term): Add missing style check for multiplying operators. + +2014-07-18 Robert Dewar + + * impunit.adb: Minor comment correction. + * widechar.adb, s-wchcon.ads: Minor comment corrections. + +2014-07-18 Robert Dewar + + * sem_ch13.adb (Build_Discrete_Static_Predicate): New name + for Build_Static_Predicate (Build_Predicate_Functions): + Don't try to build discrete predicate for real type. + (Build_Predicate_Functions): Report attempt to use + Static_Predicate function on real type as unimplemented. + * sem_util.adb (Check_Expression_Against_Static_Predicate): + Add guard to prevent blow up on predicate for real type. + +2014-07-18 Ed Schonberg + + * einfo.adb (Set_Static_Predicate): Simplify assertion to handle + properly static predicate on enumeration types and modular types + (not subtypes). + +2014-07-18 Pierre-Marie Derodat + + * scos.ads (SCO_Unit_Table_Entry): Add a field to keep track of + the corresponding source file index. + * get_scos.ads (Get_SCOs): Add a default value for it. + * par_sco.adb (SCO_Record): Fill the corresponding value. + * scos.h: New. + +2014-07-18 Vincent Celier + + * a-strunb-shared.adb, s-auxdec.ads, s-rannum.adb, atree.ads, + urealp.adb, vms_data.ads, lib.ads, s-auxdec-vms_64.ads: Minor + reformatting. + * gnat_ugn.texi: Add documentation for new gnatmem switch -t. + +2014-07-18 Thomas Quinot + + * g-sercom.ads (Set): document possible data loss. + +2014-07-18 Ed Schonberg + + * exp_attr.adb (Expand_N_Attribute_Reference, cases Input, + Output, Read, Write): If the restriction No_Streams is active, + replace each occurrence of a stream attribute by an explicit + Raise statement. + +2014-07-18 Robert Dewar + + * par_sco.adb, a-reatim.ads, exp_attr.adb, sem_util.adb: Minor + reformatting. + +2014-07-18 Robert Dewar + + * einfo.ads, einfo.adb (Has_Out_Or_In_Out_Parameter): New flag and + function. + (Set_Has_Out_Or_In_Out_Parameter): New procedure. + * sem_ch6.adb (Set_Formal_Mode): Set Has_Out_Or_In_Out_Parameter flag. + * sem_res.adb (Resolve_Call): Error if call of Ada 2012 function + with OUT or IN OUT from earlier Ada mode (e.g. Ada 2005) + +2014-07-18 Robert Dewar + + * bcheck.adb (Check_Consistent_Restrictions): + Remove obsolete code checking for violation of + No_Standard_Allocators_After_Elaboration (main program) + * bindgen.adb (Gen_Adainit): Handle + No_Standard_Allocators_After_Elaboration + (Gen_Output_File_Ada): ditto. + * exp_ch4.adb (Expand_N_Allocator): Handle + No_Standard_Allocators_After_Elaboration. + * Makefile.rtl: Add entry for s-elaall + * rtsfind.ads: Add entry for Check_Standard_Allocator. + * s-elaall.ads, s-elaall.adb: New files. + * sem_ch4.adb (Analyze_Allocator): Handle + No_Standard_Allocators_After_Elaboration. + +2014-07-18 Robert Dewar + + * lib.adb, lib.ads, lib-writ.adb, lib-writ.ads, ali.adb, + ali.ads, lib-load.adb: Remove Lib.Has_Allocator and all uses. + Remove AB parameter from ali files and all uses. + Remove Allocator_In_Body and all uses. + +2014-07-18 Robert Dewar + + * g-expect-vms.adb: Add comment. + +2014-07-18 Thomas Quinot + + * par_sco.adb (Is_Logical_Operation): return True for + N_If_Expression. + +2014-07-18 Ed Schonberg + + * sem_attr.adb (Resolve_Attribute, case 'Update): Do full + analysis and resolution of each choice in the associations within + the argument of Update, because they may be variable names. + +2014-07-18 Hristian Kirtchev + + * exp_attr.adb (Expand_Loop_Entry_Attribute): Insert any condition + actions before the generated if statement. + +2014-07-18 Hristian Kirtchev + + * gnat_ugn.texi Enhance the documentation of + switches -gnateA and -gnateV. + +2014-07-18 Ed Schonberg + + * sem_util.adb (Build_Default_Subtype): Add missing condition + so that code matches description: use the full view of the base + only if the base is private and the subtype is not. + +2014-07-17 Gary Dismukes + + * exp_disp.adb: Minor reformatting. + * exp_disp.adb: Minor code reorganization. + +2014-07-17 Thomas Quinot + + * gnat_rm.texi, freeze.adb (Check_Component_Storage_Order): Do not + require an explicit SSO attribute definition clause on a composite type + just because one of its components has one. + +2014-07-17 Robert Dewar + + * sem_attr.adb (Analyze_Attribute, case Loop_Entry): Rewrite + attribute out of existence if the enclosing pragma is ignored. + * sem_util.adb: Minor reformatting. + +2014-07-17 Ed Schonberg + + * exp_aggr.adb (Expand_Array_Aggregate): Handle properly an + array aggregate expanded into assignments when it appears as a + local declaration in an inlined body. + +2014-07-17 Doug Rupp + + * init.c [__ANDROID__]: Modify for ZCX. + * exp_aggr.adb: Minor reformatting + * sigtramp-armvxw.c, sigtramp-ppcvxw.c: Update comments. + +2014-07-17 Robert Dewar + + * a-strunb-shared.ads, a-stwiun-shared.ads, a-stzunb-shared.ads, + exp_ch7.adb, g-pehage.ads, g-socket.ads, gnat_ugn.texi, gnat_ugx.texi, + scng.adb: Remove incorrect usage "allow to" and "allows to". + +2014-07-17 Robert Dewar + + * exp_dist.adb: Minor reformatting. + +2014-07-17 Bob Duff + + * gnat_ugn.texi: Improve documentation of Unrestricted_Access. + +2014-07-17 Robert Dewar + + * sem_ch13.adb (Build_Invariant_Procedure): Add variable Nam + (Add_Invariants): Set Nam to Name_Type_Invariant if from aspect. + +2014-07-17 Thomas Quinot + + * exp_pakd.adb (Create_Packed_Array_Type.Install_PAT): For a + non-bit-packed array, propagate Reverse_Storage_Order to the + packed array type. + +2014-07-17 Javier Miranda + + * exp_disp.adb: Fix comment. + * exp_pakd.adb: Minor reformatting. + +2014-07-17 Robert Dewar + + * bindgen.adb (Gen_Elab_Calls): Skip reference to elab + entity if none exists (Gen_Elab_Calls): Complain if clash with + No_Multiple_Elaboration. + * s-rident.ads, restrict.ads: Add restriction No_Multiple_Elaboration. + * sem_util.adb (Build_Elaboration_Entity): Skip building entity + if not needed. + * gnat_rm.texi: Document restriction No_Multiple_Elaboration. + * sem_ch4.adb: Minor comment updates. + +2014-07-17 Ed Schonberg + + * exp_ch9.adb (Buid_Protected_Subprogram_Call): Preserve type + of function call for later use when shared passive objects + are involved. + +2014-07-17 Hristian Kirtchev + + * par-ch13.adb (Get_Aspect_Specifications): + Catch a case where the argument of SPARK aspect Refined_State + is not properly parenthesized. + +2014-07-17 Hristian Kirtchev + + * exp_ch6.adb (Expand_Ctrl_Function_Call): Do not extend + the lifetime of a reference to an Ada 2012 container element. + (Is_Element_Reference): New routine. + +2014-07-17 Robert Dewar + + * ali.ads: Minor comment fix. + * lib-writ.adb: Minor reformatting. + +2014-07-17 Ed Schonberg + + * sem_ch10.adb (Analyze_Proper_Body): When analyzing a subunit + in ASIS mode, load another subunit only if it a subunit of the + current one, not a sibling that has been reached through the + analysis of an ancestor. This allows the construction of the + ASIS tree for the subunit even when sibling subunits have errors. + +2014-07-17 Hristian Kirtchev + + * sem_ch3.adb (Analyze_Declarations): Remove the guard which + prevents the analysis of various contracts when the associated + construct is erroneous. + * sem_util.adb (Save_SPARK_Mode_And_Set): Do not query the + SPARK_Pragma of an illegal or a partially decorated construct. + +2014-07-17 Robert Dewar + + * s-imguns.ads: Minor reformatting. + +2014-07-17 Hristian Kirtchev + + * exp_ch7.adb (Build_Finalization_Master): Move all local + variables to the proper code section. When looking for an existing + finalization master, inspect the ultimate ancestor type of the + full view. + * sem_util.ads, sem_util.adb (Root_Type_Of_Full_View): New routine. + +2014-07-17 Robert Dewar + + * aspects.ads, aspects.adb: Add entries for aspect Annotate. + * gnat_rm.texi: Document Entity argument for pragma Annotate and + Annotate aspect. + * sem_ch13.adb (Analyze_Aspect_Specification): Add processing + for Annotate aspect. + * sem_prag.adb (Analyze_Pragma, case Annotate): Allow optional + Entity argument at end. + * sinfo.ads (N_Aspect_Specification): Add note on Annotate aspect. + +2014-07-17 Tristan Gingold + + * s-imguns.ads: Fix minor typo. + +2014-07-17 Thomas Quinot + + * sprint.adb: Minor reformatting. + +2014-07-17 Robert Dewar + + * sprint.adb (Write_Itype): Print proper header for string + literal subtype. + +2014-07-17 Steve Baird + + * sinfo.ads, sem_scil.ads: Improve comments, minor reformatting. + +2014-07-17 Vincent Celier + + * gnatbind.adb: Change in message "try ... for more information". + +2014-07-17 Robert Dewar + + * sprint.adb: Code clean up. + +2014-07-17 Hristian Kirtchev + + * exp_ch7.adb (Find_Last_Init): Relocate local variables to + the relevant code section. Add new local constant Obj_Id. When + a limited controlled object is initialized by a function call, + the build-in-place object access function call acts as the last + initialization statement. + * exp_util.adb (Is_Object_Access_BIP_Func_Call): New routine. + (Is_Secondary_Stack_BIP_Func_Call): Code reformatting. + * exp_util.ads (Is_Object_Access_BIP_Func_Call): New routine. + +2014-07-17 Ed Schonberg + + * sem_ch8.adb (Analyze_Generic_Renaming): For generic subprograms, + propagate intrinsic flag to renamed entity, to allow e.g. renaming + of Unchecked_Conversion. + * sem_ch3.adb (Analyze_Declarations): Do not analyze contracts + if the declaration has errors. + +2014-07-17 Ed Schonberg + + * a-rbtgbk.adb: a-rbtgbk.adb (Generic_Insert_Post): Check whether + container is busy before checking whether capacity allows for + a further insertion. Insertion in a busy container that is full + raises Program_Error rather than Capacity_Error. Previous to that + patch which exception was raised varied among container types. + +2014-07-17 Robert Dewar + + * g-comlin.ads, g-comlin.adb: Minor clean up. + +2014-07-17 Bob Duff + + * gnat_ugn.texi: Update gnatpp doc. + +2014-07-17 Robert Dewar + + * gnat_rm.texi: Document new restriction No_Long_Long_Integers. + * exp_ch4.adb (Make_Array_Comparison_Op): Add note that we + could do this by actually expanding a real generic. + * a-tags.ads: Add comments about performance. + * sprint.adb (Sprint_Node_Actual, case N_Object_Declaration): + Print Etype of defining identifier, rather than the object + definition. More information. + +2014-07-17 Thomas Quinot + + * exp_dist.adb: Minor documentation clarification. + +2014-07-17 Hristian Kirtchev + + * exp_util.adb (Is_Aliased): Revert previous change. + +2014-07-17 Vincent Celier + + * g-comlin.adb (Try_Help): New procedure. + (Getopt): Use new procedure Try_Help. + * g-comlin.ads (Try_Help): New procedure. + +2014-07-17 Bob Duff + + * gnat_ugn.texi: Minor update. + +2014-07-17 Robert Dewar + + * gnat_rm.texi: Improve documentation of Unrestricted_Access. + * sinfo.ads: Document restriction on aggregates (must expand to + assignments if one or more assignments needs expansion, e.g. for + controlled types). + * sem_ch13.adb: All warning messages regarding bit order should + be info: messages. + * gnat_ugn.texi: Minor correction of missing @ on @code + +2014-07-17 Robert Dewar + + * restrict.ads (Implementation_Restriction): Add No_Long_Long_Integer. + * s-rident.ads (Partition_Boolean_Restrictions): Add + No_Long_Long_Integer. + * sem_ch3.adb (Modular_Type_Declaration): Size must be <= + Long_Integer'Size if restriction No_Long_Long_Integer is active. + (Signed_Integer_Type_Declaration): Do not allow Long_Long_Integer + as the implicit base type for a signed integer type declaration + if restriction No_Long_Long_Integer is active. + * sem_util.ads, sem_util.adb (Set_Entity_With_Checks): Include check for + No_Long_Long_Integer. + +2014-07-17 Robert Dewar + + * sem_ch3.adb, a-ztexio.ads, exp_imgv.adb, casing.adb, casing.ads, + einfo.ads, checks.adb, sem_ch12.adb, a-textio.ads, freeze.adb, + repinfo.adb, exp_ch6.adb, sem_ch4.adb, a-witeio.ads, sem_ch8.adb, + sem_warn.adb, exp_aggr.adb, exp_dist.adb, par-tchk.adb, s-fatgen.adb, + treepr.adb, lib-xref.adb: Remove the word kludge from ada sources. + +2014-07-17 Robert Dewar + + * debug.adb: Remove -gnatdQ. + * exp_disp.adb: Remove -gnatdQ. + * a-ztenio.ads, a-wtinio.ads, a-wtmoio.ads, a-ztcoau.ads, a-tiinio.ads, + a-wtfiio.ads, a-timoio.ads, sem_ch12.adb, a-tifiio.ads, a-ztinio.ads, + rtsfind.adb, rtsfind.ads, a-ztmoio.ads, a-wtdeio.ads, a-ztfiio.ads, + a-tideio.ads, a-wtflio.ads, a-ztdeio.ads, sem_ch8.adb, a-tiflio.ads, + sprint.adb, a-ztflio.ads, snames.ads-tmpl, a-wtenio.ads, + a-tienio.ads: Rename Text_IO_Kludge to Text_IO_Special_Unit. + +2014-07-17 Robert Dewar + + * back_end.adb: Minor reformatting and comment additions. + * checks.ads, checks.adb (Duplicated_Tag_Checks_Suppressed): New + function. + * exp_disp.adb (Make_DT): Use Duplicated_Tag_Checks_Suppressed. + (Make_VM_TSD): Use Duplicated_Tag_Checks_Suppressed. + * gnat_rm.texi: Document new check Duplicated_Tag_Checks_Suppressed. + * gnat_ugn.texi: Additional documentation for Duplicated_Tag_Check. + * snames.ads-tmpl (Duplicated_Tag_Checks_Suppressed): New check. + * types.ads (Duplicated_Tag_Checks_Suppressed): New check. + +2014-07-17 Robert Dewar + + * gnat_rm.texi: Minor comment updates. + +2014-07-17 Ed Schonberg + + * sem_util.adb (Make_Explicit_Dereference): If the expression + being dereferenced is a generalized indexing, reset the overloaded + flag on the generalized indexing call, consistent with the + resetting of the flag on the original indexed component. + +2014-07-17 Robert Dewar + + * gnat_ugn.texi: Document advise not to mix -gnatV? and + optimization. + +2014-07-17 Robert Dewar + + * checks.adb (Insert_Valid_Check): Don't insist on a name + for the prefix when we make calls to Force_Evaluation and + Duplicate_Subexpr_No_Checks. + * exp_util.adb (Is_Volatile_Reference): Handle all cases properly + (Remove_Side_Effects): Handle all volatile references right + (Side_Effect_Free): Volatile reference is never side effect free + * sinfo.ads (N_Attribute_Reference): Add comments explaining + that in the tree, the prefix can be a general expression. + +2014-07-17 Hristian Kirtchev + + * sem_ch6.adb (Analyze_Subprogram_Body_Contract, + Analyze_Subprogram_Contract): Add comments on SPARK_Mode save/restore. + * sem_ch7.adb (Analyze_Package_Body_Contract, + Analyze_Package_Contract): Add comments on SPARK_Mode save/restore. + +2014-07-17 Robert Dewar + + * exp_ch7.ads, exp_util.ads: Document Insert_Action_After, + Store_After_Actions_In_Scope. + +2014-07-17 Robert Dewar + + * sem_aux.ads: Minor comment addition. + +2014-07-17 Ed Schonberg + + * sem_res.adb (Make_Call_Into_Operator): If the call is already + a rewriting of an operator node, there are no actuals to be + propagated from original node to rewritten node when in ASIS mode. + +2014-07-17 Hristian Kirtchev + + * sem_ch6.adb (Analyze_Subprogram_Body_Contract, + Analyze_Subprogram_Contract): Add new local variable Mode. Save + and restore the SPARK mode of the related construct in a + stack-like fashion. + * sem_ch7.adb (Analyze_Package_Body_Contract, + Analyze_Package_Contract): Add new local variable Mode. Save and + restore the SPARK mode of the related construct in a stack-like fashion. + * sem_util.adb Remove with and use clause for Opt. + (Restore_SPARK_Mode): New routine. + (Save_SPARK_Mode_And_Set): New routine. + * sem_util.ads Add with and use clause for Opt. + (Restore_SPARK_Mode): New routine. + (Save_SPARK_Mode_And_Set): New routine. + +2014-07-17 Hristian Kirtchev + + * exp_util.adb (Is_Aliased): Transient objects + within an expression with actions cannot be considered aliased. + +2014-07-17 Thomas Quinot + + * sem.ads (Scope_Stack_Entry): Reorganize storage of action lists; + introduce a new list (cleanup actions) for each (transient) scope. + * sinfo.ads, sinfo.adb (Cleanup_Actions): New attribute for + N_Block_Statement + * exp_ch7.ads (Store_Cleanup_Actions_In_Scope): New subprogram. + * exp_ch7.adb (Store_Actions_In_Scope): New subprogram, common + processing for Store_xxx_Actions_In_Scope. + (Build_Cleanup_Statements): Allow for a list of additional + cleanup statements to be passed by the caller. + (Expand_Cleanup_Actions): Take custom cleanup actions associated + with an N_Block_Statement into account. + (Insert_Actions_In_Scope_Around): Account for Scope_Stack_Entry + reorganization (refactoring only, no behaviour change). + (Make_Transient_Block): Add assertion to ensure that the current + scope is indeed a block (namely, the entity for the transient + block being constructed syntactically, which has already been + established as a scope). If cleanup actions are present in the + transient scope, transfer them now to the transient block. + * exp_ch6.adb (Expand_Protected_Subprogram_Call): Freeze the + called function while it is still present as the name in a call + in the tree. This may not be the case later on if the call is + rewritten into a transient block. + * exp_smem.adb (Add_Shared_Var_Lock_Procs): The post-actions + inserted after calling a protected operation on a shared passive + protected must be performed in a block finalizer, not just + inserted in the tree, so that they are executed even in case of + a normal (RETURN) or abnormal (exception) transfer of control + outside of the current scope. + * exp_smem.ads (Add_Shared_Var_Lock_Procs): Update documentation + * sem_ch8.adb, expander.adb, exp_ch11.adb: Adjust for + Scope_Stack_Entry reorganization. + +2014-07-17 Thomas Quinot + + * exp_disp.adb (Make_DT, Make_VM_TSD): Do not omit Check_TSD + call for types that do not have an explicit attribute definition + clause for External_Tag, as their default tag may clash with an + explicit tag defined for some other type. + +2014-07-17 Hristian Kirtchev + + * exp_util.adb (Is_Controlled_Function_Call): Recognize a + controlled function call with multiple actual parameters that + appears in Object.Operation form. + +2014-07-17 Thomas Quinot + + * einfo.ads, einfo.adb (Has_External_Tag_Rep_Clause): Remove + entity flag. + * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case + External_Tag): No need to set entity flag. + * sem_aux.ads, sem_aux.adb (Has_External_Tag_Rep_Clause): + Reimplement correctly in terms of Has_Rep_Item. + +2014-07-17 Thomas Quinot + + * exp_ch7.adb (Establish_Transient_Scope.Find_Node_To_Be_Wrapped): + Start examining the tree at the node passed to + Establish_Transient_Scope (not its parent). + * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): + The access type for the variable storing the reference to + the call must be declared and frozen prior to establishing a + transient scope. + * exp_ch9.adb: Minor reformatting. + +2014-07-17 Pascal Obry + + * s-os_lib.ads: Minor comment update. + +2014-07-17 Tristan Gingold + + * sysdep.c: Add ATTRIBUTE_UNUSED to avoid warnings. Fix some + indentation. + * socket.c: Remove #warning to avoid warning. + * expect.c: Indent some preprocessor directives to clarify + nested if. Do not use wait.h on PikeOS. Add ATTRIBUTE_UNUSED + to remove warnings. + * env.c: Fix indentation. Port to PikeOS. + * gsocket.h: Port to PikeOS. Remove #warning. + * terminals.c: Port to PikeOS. Fix indentation of the stubs. + Add ATTRIBUTE_UNUSED to stubs arguments. Fix return statement + of stubbed __gnat_setup_parent_communication. + * adaint.c: Port to PikeOS. Reindent some preprocessor + directives to clarify nested if. Fix indentation. Add missing + ATTRIBUTE_UNUSED. + +2014-07-17 Robert Dewar + + * sem_attr.adb: Minor reformatting. + +2014-07-17 Robert Dewar + + * exp_ch7.adb, exp_ch7.ads, sinfo.ads: Minor reformatting. + +2014-07-17 Ed Schonberg + + * sem_case.adb (Check_Choice_Set): If the case expression is the + expression in a predicate, do not recheck coverage against itself, + to prevent spurious errors. + * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Indicate that + expression comes from an aspect specification, to prevent spurious + errors when expression is a case expression in a predicate. + +2014-07-17 Pascal Obry + + * adaint.c, adaint.h (__gnat_set_executable): Add mode parameter. + * s-os_lib.ads, s-os_lib.adb (Set_Executable): Add Mode parameter. + +2014-07-17 Vincent Celier + + * gnatchop.adb, make.adb, gnatbind.adb, clean.adb, gprep.adb, + gnatxref.adb, gnatls.adb, gnatfind.adb, gnatname.adb: Do not output + the usage for an erroneous invocation of a gnat tool. + +2014-07-16 Vincent Celier + + * gnatls.adb: Get the target parameters only if -nostdinc was + not specified. + +2014-07-16 Ed Schonberg + + * checks.adb (Insert_Valid_Check): If the expression is a packed + component of a modular type of the right size the data is always + valid. This os particularly useful if the component is part of + a volatile variable. + +2014-07-16 Robert Dewar + + * gnat_rm.texi, sinfo.ads, freeze.adb, exp_aggr.adb: Minor reformatting + +2014-07-16 Thomas Quinot + + * exp_ch7.ads: Minor documentation fix. + +2014-07-16 Ed Schonberg + + * sem_ch3.adb (Find_Type_Name): Diagnose properly + a private extension completion that is an interface definition + with an interface list. + +2014-07-16 Arnaud Charlet + + * gnatls.adb (Gnatls): Code clean ups. + +2014-07-16 Thomas Quinot + + * sinfo.ads, sinfo.adb (N_Compound_Statement): New node kind. + * sem.adb (Analyze): Handle N_Compound_Statement. + * sprint.adb (Sprint_Node_Actual): Ditto. + * sem_ch5.ads, sem_ch5.adb (Analyze_Compound_Statement): New + procedure to handle N_Compound_Statement. + * exp_aggr.adb (Collect_Initialization_Statements): + Use a proper compound statement node, instead of a bogus + expression-with-actions with a NULL statement as its expression, + to wrap collected initialization statements. + * freeze.ads, freeze.adb + (Explode_Initialization_Compound_Statement): New public procedure, + lifted from Freeze_Entity. + (Freeze_Entity): When freezing + an object with captured initialization statements and without + delayed freezing, explode compount statement. + * sem_ch4.adb (Analyze_Expression_With_Actions): Remove special + case that used to handle bogus EWAs with NULL statement as + the expression. + * exp_ch13.adb (Expand_N_Freeze_Entity): For an object with + delayed freezing and captured initialization statements, explode + compound statement. + +2014-07-16 Gary Dismukes + + * g-rewdat.adb, g-rewdat.ads: Minor reformatting. + +2014-07-16 Doug Rupp + + * s-interr-hwint.adb: Casing error on parameter. + +2014-07-16 Pascal Obry + + * Makefile.rtl: Add g-rewdat.o dependencies in + GNATRTL_NONTASKING_OBJS. + +2014-07-16 Ed Schonberg + + * sem_case.adb: Code clean up. + +2014-07-16 Vincent Celier + + * make.adb: Do not read gnat.adc when gnatmake is invoked + with -gnatA. + +2014-07-16 Pascal Obry + + * gnat_rm.texi, impunit.adb, g-rewdat.adb, g-rewdat.ads: Initial + implementation of GNAT.Rewrite_Data. + +2014-07-16 Vincent Celier + + * gnatls.adb (Normalize): New function. + (Gnatls): Get the target parameters. On targets other than VMS, + normalize the path names in the source search path, the object search + path and the project search path. + +2014-07-16 Ed Schonberg + + * sem_case.adb: Avoid self-checking of case expressions in + dynamic predicates. + +2014-07-16 Robert Dewar + + * gnat_rm.texi: Document effect of Suppress_Initialization on tags and + discriminants. + +2014-07-16 Eric Botcazou + + * switch-b.adb (Scan_Binder_Switches): Add missing guard. + +2014-07-16 Ben Brosgol + + * gnat_ugn.texi: Fix typo. + +2014-07-16 Ed Schonberg + + * exp_ch4.adb (Expand_N_Case_Expression): Do not expand case + expression if it is the specification of a subtype predicate: + it will be expanded when the return statement is analyzed, or + when a static predicate is transformed into a static expression + for evaluation by the front-end. + * sem_ch13.adb (Get_RList): If the expression for a static + predicate is a case expression, extract the alternatives of the + branches with a True value to create the required statically + evaluable expression. + +2014-07-16 Thomas Quinot + + * exp_prag.adb (Expand_Pragma_Check): Use the location of the + expression, not the location of the aspect, for all generated + code, so that in particular the call to raise_assert_failure + gets the sloc of the associated condition. + * exp_ch6.adb + (Expand_Subprogram_Contract.Build_Postconditions_Procedure): + Set an explicit End_Label on the handled sequence of statements + for the _Postconditions procedure so that the implicit return + statement does not erroneously get associated with code generated + for the last condition in postconditions. + +2014-07-16 Thomas Quinot + + * ug_words: Fix name of VMS synonym for -gnatw.z (SIZE_ALIGNMENT, + not SIZE_ALIGN) and -gnatw.Z (NOSIZE_ALIGNMENT, not NOSIZE_ALIGN). + * vms_data.ads: Add missing spaces in VMS synonyms for -gnatw.z / + -gnatw.Z. + +2014-07-16 Robert Dewar + + * sem_ch3.adb, sem_prag.adb, sem_util.adb, sem_res.adb, sem_ch13.adb: + Minor code reorganization (use Is_Access_Type, not in Access_Kind). + * exp_ch3.adb: Minor code reorganization, use Is_Access_Type, + not in Access_Kind. + * par-ch4.adb (At_Start_Of_Attribute): New function + (P_Simple_Expression): Better msg for bad attribute prefix. + * scans.ads: Minor reformatting. + +2014-07-16 Ed Schonberg + + * sem_attr.adb (Resolve_Attribute, case 'Update): If choice is a + static constant, check that in belongs to the corresponding index + subtype, to produce the proer warning when expansion is disabled. + +2014-07-16 Robert Dewar + + * freeze.adb (Freeze_Entity): Warn on incompatible size/alignment. + * gnat_ugn.texi: Document -gnatw.z and -gnatw.Z. + * ug_words: VMS synonyms (WARNINGS=[NO]SIZE_ALIGN) for -gnatw.z/-gnatw.Z + * usage.adb: Add lines for -gnatw.z/-gnatw.Z. + * vms_data.ads: VMS synonyms (WARNINGS=[NO]SIZE_ALIGN) for + -gnatw.z/-gnatw.Z + * warnsw.adb: Set Warn_On_Size_Alignment appropriately. + * warnsw.ads (Warn_On_Size_Alignment): New flag Minor + reformatting. + +2014-07-16 Hristian Kirtchev + + * exp_ch7.adb (Process_Declarations): Reinstate the check on + a hook object to ensure that the related transient declaration + is finalizable. + * exp_util.adb (Is_Aliased): Do not consider expresison with + actions as a special context. + (Requires_Cleanup_Actions): Reinstate the check on a hook object to + ensure that the related transient declaration is finalizable. + +2014-07-16 Robert Dewar + + * checks.ads, checks.adb (Allocation_Checks_Suppressed): New function. + * snames.ads-tmpl: Add Allocation_Check to list of check names. + * types.ads: Add Allocation_Check to list of check names. + +2014-07-16 Thomas Quinot + + * sem_util.adb (Enter_Name): replace bogus test for presence of + Corresponding_Remote_Type with correct test on Ekind. + * sem_res.adb (Valid_Conversion): ditto; also clarify validity + of calls to Corresponding_ Remote_Type (documentation fix). + +2014-07-16 Robert Dewar + + * gnat_rm.texi: Document illegal case of Unrestricted_Access. + * sem_attr.adb (Analyze_Access_Attribute): Set_Non_Aliased_Prefix + where it applies. + (Resolve_Attribute, case Access): Flag illegal Unrestricted_Access use. + * sinfo.ads, sinfo.adb (Non_Aliased_Prefix): New flag. + +2014-07-16 Robert Dewar + + * gnat_ugn.texi: Document binder switch -Ra. + * gnatbind.adb (List_Closure_Display): Implement -Ra switch + (List_Closure_All). + * opt.ads (List_Closure_All): New switch. + * switch-b.adb (Scan_Binder_Switches): Recognize -Ra to set + List_Closure_All. + +2014-07-16 Ben Brosgol + + * gnat_rm.texi: Minor edits, to make case consistent in names + of types and fields. + +2014-07-16 Robert Dewar + + * gnat_rm.texi: Document erroneous mixing of thin pointers and + unrestricted access + * gnat_ugn.texi: Add note on size of access types about thin + pointers and the use of attribute Unrestricted_Access. + +2014-07-16 Ed Schonberg + + * a-cbdlli.ads, a-cbdlli.adb, a-cbhama.ads, a-cbhama.adb, + * a-cbhase.ads, a-cbhase.adb, a-cborma.ads, a-cborma.adb, + * a-cborse.ads, a-cborse.adb, a-cobove.ads a-cobove.adb: Add Control + machinery to detect tampering on bounded vectors. + +2014-07-16 Robert Dewar + + * gnat_rm.texi: Document that leading/trailing asterisks are + now implied for the pattern match string for pragma Warnings + and Warning_As_Error. + * sem_prag.adb (Acquire_Warning_Match_String): New procedure. + (Analyze_Pragma, case Warning_As_Error): Call + Acquire_Warning_Match_String. + (Analyze_Pragma, case Warnings): Call Acquire_Warning_Match_String. + +2014-07-16 Bob Duff + + * gnat_ugn.texi: Document need for project file + for --incremental switch for gnat2xml. + +2014-07-16 Robert Dewar + + * gnat_rm.texi: Fix example of non-packable components in packed + records section. + +2014-07-16 Robert Dewar + + * s-tpoben.adb, s-tasren.adb, s-interr.adb, s-interr-hwint.adb, + s-shasto.adb, s-interr-vms.adb, s-interr-sigaction.adb: Avoid use of + upper case in exception messages. + +2014-07-16 Robert Dewar + + * snames.ads-tmpl, sem_attr.adb, exp_attr.adb: Same_Storage attribute + is renamed Has_Same_Storage. + * gnat_rm.texi: Document missing SPARK pragmas and attributes. + * sem_prag.adb: Minor comment fix (use LOCAL_NAME in syntax + descriptions). + +2014-07-16 Robert Dewar + + * exp_util.adb, sem_attr.adb, exp_ch4.adb, a-cohase.ads, + a-coinho-shared.adb, a-coinho-shared.ads: Minor reformatting. + +2014-07-16 Robert Dewar + + * gnat_ugn.texi: Add note that integrated + preprocessing cannot be applied to configuration pragma files. + +2014-07-16 Yannick Moy + + * sem_attr.adb (Analyze_Attribute/cases Pred + and Succ): Always enable range check on fixed-point types if + not suppressed for the type. + +2014-07-16 Hristian Kirtchev + + * sem_util.adb (State_Has_Enabled_Property): + Account for an external property denoted by an others choice. + +2014-07-16 Hristian Kirtchev + + * exp_ch4.ads, exp_ch4.adb (Find_Hook_Context): Relocated to Exp_Util. + * exp_ch7.adb (Process_Declarations): There is no need to check + that a transient object being hooked is controlled as it would + not have been hooked in the first place. + * exp_ch9.adb Remove with and use clause for Exp_Ch4. + * exp_util.adb (Find_Hook_Context): Relocated from Exp_Ch4. + (Is_Aliased): A renaming of a transient controlled object is + not considered aliasing when it occurs within an expression + with actions. + (Requires_Cleanup_Actions): There is no need to + check that a transient object being hooked is controlled as it + would not have been hooked in the first place. + * exp_util.ads (Find_Hook_Context): Relocated from Exp_Ch4. + +2014-07-16 Hristian Kirtchev + + * sem_ch13.adb (Insert_After_SPARK_Mode): Moved to + the outer level of routine Analyze_Aspect_Specifications. Ensure + that the corresponding pragmas of aspects Initial_Condition and + Initializes are inserted after pragma SPARK_Mode. + +2014-07-16 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case 'Update): Handle + properly a choice list with more than one choice, where each + is an aggregate denoting a sequence of array indices for a + multidimentional array. For SPARK use. + +2014-07-16 Vadim Godunko + + * a-coinho-shared.adb (Adjust): Create + copy of internal shared object and element when source container + is locked. + (Copy): Likewise. + (Query_Element): Likewise. + (Update_Element): Likewise. + (Constant_Reference): Likewise. Raise Constraint_Error on attempt + to get reference for empty holder. + (Reference): Likewise. + +2014-07-16 Thomas Quinot + + * exp_ch4.adb (Find_Hook_Context): New subprogram, extracted + from Process_Transient_Oject. + * exp_ch4.ads: Ditto. + * exp_ch9.adb (Build_Class_Wide_Master): Insert the _master + declaration as an action on the topmost enclosing expression, + not on a possibly conditional subexpreession. + +2014-07-16 Vadim Godunko + + * a-coinho.adb, a-coinho-shared.adb, a-coinho.ads, a-coinho-shared.ads: + Fix parameter mode of Update_Element. + +2014-07-16 Robert Dewar + + * a-coinho.adb, a-coinho-shared.adb, a-coinho-shared.ads: Minor + reformatting. + +2014-07-16 Ed Schonberg + + * a-cohase.ads: Type Iterator must be controlled, so that the + tampering bit is properly set through an iteration. + * a-cohase.adb: Add Finalize operation for type Iterator. + +2014-07-16 Ed Schonberg + + * a-coinho-shared.adb, a-coinho-shared.ads: Proper structures for + tampering checks. + +2014-07-16 Ed Schonberg + + * a-coinho-shared.adb: Fix spurious accessibility check. + +2014-06-15 Jan Hubicka + + * gcc-interface/utils.c (process_attributes): Use set_decl_tls_model. + +2014-06-14 Bernd Edlinger + + PR ada/61505 + * gnat_rm.texi: Fix errors with makeinfo 5.1. + +2014-06-14 Arnaud Charlet + + PR ada/61505 + * gnat_rm.texi: Attempt to fix error with makeinfo 5.1. + +2014-06-13 Yannick Moy + + * exp_attr.adb: Fix typo in comment. + * gnat1drv.adb (Adjust_Global_Switches): Force float overflow + checking in GNATprove_Mode. + +2014-06-13 Ed Schonberg + + * a-coinho-shared.adb, a-coinho-shared.ads: Update shared version. + +2014-06-13 Robert Dewar + + * sem_ch3.adb, sem_ch9.adb, a-coinho.adb, a-coinho.ads: Minor + reformatting. + +2014-06-13 Hristian Kirtchev + + * sem_prag.adb (Analyze_Pragma): Add local + variable Missing_Parentheses. Emit an error when a state + declaration with options appears without parentheses. Add a + guard to prevent a bogus error when a state declaration may be + interpreted as an option if a previous declaration with options + was not parenthesized. + +2014-06-13 Robert Dewar + + * checks.adb: Validate_Alignment_Check_Warnings: New procedure + (Apply_Address_Clause_Check): Make Aligment_Warnings table entry. + * checks.ads (Alignment_Warnings_Record): New type. + (Alignment_Warnings): New table + (Validate_Alignment_Check_Warnings): New procedure. + * errout.adb (Delete_Warning_And_Continuations): New procedure + (Error_Msg_Internal): Set Warning_Msg (Delete_Warning): Handle + Warnings_Treated_As_Errors (Finalize): Minor reformatting + * errout.ads (Warning_Msg): New variable + (Delete_Warning_And_Continuations): New procedure + * erroutc.adb (Delete_Msg): Handle Warnings_Treated_As_Errors count. + * gnat1drv.adb (Post_Compilation_Validation_Checks): New procedure. + +2014-06-13 Ed Schonberg + + * a-coinho.adb, a-coinho.ads: Add Reference machinery. + +2014-06-13 Hristian Kirtchev + + * errout.adb (SPARK_Msg_N): New routine. + (SPARK_Msg_NE): New routine. + * errout.ads Add a section on SPARK-related error routines. + (SPARK_Msg_N): New routine. + (SPARK_Msg_NE): New routine. + * sem_ch13.adb (Analyze_Aspect_Specifications): Ensure that + pragma Abstract_State is always inserted after SPARK_Mode. + (Insert_After_SPARK_Mode): New routine. + * sem_prag.adb (Analyze_Abstract_State, + Analyze_Constituent, Analyze_External_Property, + Analyze_External_Property_In_Decl_Part, Analyze_Global_Item, + Analyze_Global_List, Analyze_Initialization_Item, + Analyze_Initialization_Item_With_Inputs, Analyze_Input_Item, + Analyze_Input_List, Analyze_Input_Output, Analyze_Part_Of, + Analyze_Pragma, Analyze_Refined_Depends_In_Decl_Part, + Analyze_Refined_Global_In_Decl_Part, + Analyze_Refined_State_In_Decl_Part, Analyze_Refinement_Clause, + Check_Aspect_Specification_Order, Check_Constituent_Usage, + Check_Declaration_Order, Check_Dependency_Clause, + Check_Duplicate_Mode, Check_Duplicate_Option, + Check_Duplicate_Property, Check_External_Properties, + Check_External_Property, Check_Function_Return, + Check_Matching_Constituent, Check_Matching_State, + Check_Mode_Restriction_In_Enclosing_Context, + Check_Mode_Restriction_In_Function, Check_Refined_Global_Item, + Check_State_And_Constituent_Use, Create_Or_Modify_Clause, + Has_Extra_Parentheses, Inconsistent_Mode_Error, + Match_Error, Propagate_Part_Of, Report_Extra_Clauses, + Report_Extra_Constituents_In_List, Report_Extra_Inputs, + Report_Unrefined_States, Report_Unused_Constituents, + Report_Unused_States, Role_Error, Usage_Error): + Convert Error_Msg_XXX calls to SPARK_Msg_XXX calls + to report semantic errors only when SPARK_Mode is on. + (Analyze_Depends_In_Decl_Part): Do not check the syntax of + pragma Depends explicitly, this is now done by the analysis. + (Analyze_Global_In_Decl_List): Do not check the syntax of + pragma Global explicitly, this is now done by the analysis. + (Analyze_Initializes_In_Decl_Part): Do not check the syntax of + pragma Initializes explicitly, this is now done by the analysis. + (Analyze_Part_Of): Do not check the syntax of the encapsulating + state, this is now done by the analysis. + (Analyze_Pragma): Do + not check the syntax of a state declaration, this is now done + by the analysis. + (Analyze_Refined_Depends_In_Decl_Part): Do not + check the syntax of pragma Refined_Depends explicitly, this is now + done by the analysis. + (Analyze_Refined_Global_In_Decl_Part): Do + not check the syntax of pragma Refined_Global explicitly, this is + now done by the analysis. + (Analyze_Refined_State_In_Decl_Part): + Do not check the syntax of pragma Refined_State explicitly, this + is now done by the analysis. + (Check_Dependence_List_Syntax): Removed. + (Check_Global_List_Syntax): Removed. + (Check_Initialization_List_Syntax): Removed. + (Check_Item_Syntax): Removed. + (Check_Missing_Part_Of): Do not consider items from an instance. + (Check_Refinement_List_Syntax): Removed. + (Check_State_Declaration_Syntax): Removed. + (Collect_Global_List): Do not raise Program_Error when the input is + malformed. + (Process_Global_List): Do not raise Program_Error when the input + is malformed. + * sem_ch13.adb: Minor reformatting. + +2014-06-13 Ed Schonberg + + * sem_ch3.adb (Find_Type_Name): Diagnose a private type completion + that is an interface definition with an interface list. + (Process_Full_View): Move error message on missmatched interfaces + between views to the declaration of full view, for clarity. + * sem_ch9.adb (Check_Interfaces): Move error message to full view, + for clarity. + +2014-06-13 Robert Dewar + + * exp_attr.adb (Expand_N_Attribute_Reference, case Pred/Succ): Change + reason to Overflow. + +2014-06-13 Robert Dewar + + * makeutl.adb: Minor reformatting. + +2014-06-13 Gail Schenker + + * debug.adb, sem_eval.adb (Why_Not_Static): Remove temporary code and + associated flag (d.z), no longer needed. + +2014-06-13 Ed Schonberg + + * sem_ch13.adb (Analyze_Aspect_Specifications): For Import and + Export aspects, do not check whether a corresponding Convention + aspect has been specified. Convention is optional in Ada2012, + and defaults to Convention_Ada. + +2014-06-13 Eric Botcazou + + * checks.adb (Apply_Address_Clause_Check): Only issue the new + warning if the propagation warning is issued. + +2014-06-13 Thomas Quinot + + * exp_ch4.adb: Minor reformatting. + +2014-06-13 Robert Dewar + + * exp_attr.adb (Expand_N_Attribute_Reference, case Pred): + Handle float range check case (Expand_N_Attribute_Reference, + case Succ): Handle float range check case. + * sem_attr.adb (Analyze_Attribute, case Pred/Succ): Handle float + range check case. + +2014-06-13 Vincent Celier + + * makeutl.ads (Compute_Builder_Switches): Change name of + parameter Root_Environment to Env. + * prj-conf.adb (Check_Switches): Call Locate_Runtime with the + Env parameter of procedure Get_Or_Create_Configuration_File. + (Locate_Runtime): Call Find_Rts_In_Path with the Project_Path + of new parameter Env. + * prj-conf.ads (Locate_Runtime): New parameter Env of type + Prj.Tree.Environment. + +2014-06-13 Robert Dewar + + * gnat_rm.texi: Minor comment clarification for Check_Float_Overflow. + +2014-06-13 Robert Dewar + + * exp_attr.adb, exp_ch9.adb, lib-writ.adb, g-comlin.adb: Minor + reformatting. + * sem_attr.adb: Minor code reformatting and simplification. + * checks.adb: Fix minor typo. + +2014-06-13 Emmanuel Briot + + * g-comlin.adb (Get_Argument): fix expansion + of command line arguments (e.g. "*.adb") when using a custom + parser. The parser was not passed to the recursive call, and + thus we were trying to do the expansion on the default command + line parser. + +2014-06-13 Thomas Quinot + + * exp_ch9.adb: Minor reformatting. + +2014-06-13 Ed Schonberg + + * exp_attr.adb (Expand_N_Attribute_Reference, case 'Old): + To determine whether the attribute should be expanded, examine + whether the enclosing postcondition pragma is to be checked, + rather than using the internal flag Assertions_Enabled. + +2014-06-13 Ben Brosgol + + * gnat_rm.texi: Minor fixes. + * gnat_ugn.texi: Added a missing "@itemize". + +2014-06-13 Robert Dewar + + * debug.adb: Remove -gnatd.1 flag documentation. + * layout.adb (Layout_Type): Remove special handling of size + for anonymous access type. + * sem_ch3.adb (Replace_Type): Remove special handling of size + for anonymous access type. + +2014-06-13 Robert Dewar + + * debug.adb: Document debug flag -gnatd.1. + * layout.adb (Layout_Type): Size change for anonymous access + types under -gnatd.1. + * sem_ch3.adb (Replace_Type): Size change for anonymous access + types under -gnatd.1. + +2014-06-13 Robert Dewar + + * layout.adb (Layout_Type): Anonymous access types designating + unconstrained arrays are always thin pointers. + * sem_ch3.adb (Replace_Type): Anonymous access types designating + unconstrained arrays are always thin pointers. + +2014-06-13 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute): Use Check_Parameterless_Call + to resolve the prefix of an attribute that is an entity name + and may be a parameterless call. Minor code reorganization. + +2014-06-13 Robert Dewar + + * lib.ads, lib.adb, lib-writ.adb, lib-load.adb (Is_Compiler_Unit): + Removed. + * opt.ads (Compiler_Unit): New flag. + * par-ch5.adb (Test_Statement_Required): Call Check_Compiler_Unit + for null statement sequence (not allowed in compiler unit). + * par-prag.adb (Prag): Handle Compiler_Unit[_Warning] during + parsing. + * restrict.ads, restrict.adb (Check_Compiler_Unit): New version and new + calling sequence. + * sem_ch11.adb, sem_ch3.adb, sem_ch4.adb: New calling sequence for + Check_Compiler_Unit. + * sem_ch6.adb (Analyze_Extended_Return_Statement): Call + Check_Compiler_Unit (this construct is not allowed in compiler + units). + * sem_prag.adb (Analyze_Pragma, case Compiler_Unit[_Warning]): + Set Opt.Compiler_Unit. + +2014-06-13 Geert Bosch + + * gnat_rm.texi, s-tasinf-solaris.ads, sem_prag.adb, gnat_ugn.texi, + s-tasinf-mingw.ads, s-tasinf.ads, s-tasinf-linux.ads, + s-tasinf-vxworks.ads: Make Task_Info pragma and package obsolescent. + +2014-06-13 Robert Dewar + + * s-tasini.adb, s-tarest.adb, s-taprob.adb: Minor reformatting. + +2014-06-13 Hristian Kirtchev + + * freeze.adb (Freeze_Entity): Remove the check concerning volatile + types in SPARK as it is poorly placed and poorly formulated. The + check was flagging ALL volatile entities as illegal in SPARK. + * sem_prag.adb (Process_Atomic_Shared_Volatile): Flag volatile + types as illegal in SPARK. + +2014-06-13 Robert Dewar + + * sem_cat.adb: Minor reformatting. + +2014-06-13 Yannick Moy + + * sem_prag.adb (Analyze_Pragma/Post_Class): Fix typo. + +2014-06-13 Arnaud Charlet + + * gnat_rm.texi: Add detail on SPARK_05 restriction. + +2014-06-13 Bob Duff + + * s-solita.adb (Get_Sec_Stack_Addr, Init_Tasking_Soft_Links): + Add assertions requiring the secondary stack to be initialized. + * s-solita.ads (Init_Tasking_Soft_Links): Comment. + * s-taprob.adb, s-tarest.adb, s-tasini.adb (elab code): Make sure the + secondary stack is initialized before calling Init_Tasking_Soft_Links, + by adding pragmas Elaborate_Body. + +2014-06-13 Thomas Quinot + + * sem_ch13.adb (Analyze_Stream_TSS_Definition): Remove temporary + kludge disabling new legality check. + +2014-06-13 Hristian Kirtchev + + * freeze.adb (Freeze_Record_Type): Remove checks related to SPARK + volatile types. + (Freeze_Type): Volatile types are now illegal in SPARK. + +2014-06-13 Robert Dewar + + * aspects.ads, aspects.adb: Add aspect Thread_Local_Storage. + * gnat_rm.texi: Document aspect Thread_Local_Storage. + +2014-06-13 Ed Schonberg + + * sem_cat.adb (Validate_Static_Object_Name): A constant whose + value is a temporary that renames an aggregate is legal in a + preelaborated unit. Illegalities, if any will be detected in + the aggregate components. + +2014-06-13 Ed Schonberg + + * einfo.ads: Minor reformatting an comment expansion. + +2014-06-13 Robert Dewar + + * back_end.ads, back_end.adb: Make_Id, Make_SC, Set_RND are moved to + Tbuild. + * tbuild.ads, tbuild.adb: Make_Id, Make_SC, Set_RND are moved here from + Back_End. + * gnat1drv.adb: Make_Id, Make_SC, Set_RND are moved to Tbuild + * sem_warn.adb: Minor reformatting. + +2014-06-13 Doug Rupp + + * adaint.c (__gnat_open_new_temp) [VMS]: Open binary + files with rfm=udf. + +2014-06-13 Yannick Moy + + * sem_warn.adb (Check_Unset_References): Take + case of Refined_Post into account in Within_Postcondition check. + +2014-06-13 Hristian Kirtchev + + * freeze.adb (Freeze_Record_Type): Volatile types are not allowed in + SPARK. + +2014-06-13 Yannick Moy + + * sem_ch13.adb (Analyze_Aspect_Specifications/Aspect_Import, + Aspect_Export): Consider that variables may be set outside the program. + +2014-06-13 Robert Dewar + + * back_end.adb (Make_Id): New function. + (Make_SC): New function. + (Set_RND): New procedure. + * back_end.ads (Make_Id): New function. + (Make_SC): New function. + (Set_RND): New procedure. + * einfo.ads: Minor comment updates. + * frontend.adb: Move Atree.Initialize call to Gnat1drv. + * gnat1drv.adb (Gnat1drv): New calling sequence for + Get_Target_Parameters. + (Gnat1drv): Move Atree.Initialize here from Frontend. + * targparm.adb (Get_Target_Parameters): New calling + sequence (Get_Target_Parameters): Handle pragma Restriction + (No_Dependence,..) + * targparm.ads (Get_Target_Parameters): New calling sequence. + +2014-06-13 Gary Dismukes + + * sem_prag.adb (Process_Import_Or_Interface): Exit the homonym + loop if the pragma does not come from source, so that an implicit + pragma Import only applies to the first declaration, avoiding + possible conflicts with earlier explicit and implicit declarations + due to multiple Provide_Shift_Operators pragmas. + (Set_Imported): Remove previous fix that bypassed pragma duplication + error. + * gnat_rm.texi: Change 'equivalent' to 'similar' in description + of Provide_Shift_Operators. + +2014-06-12 Jan Hubicka + + * gcc-interface/utils.c (process_attributes) : Pass + string pointer directly to set_decl_section_name. + +2014-06-11 Robert Dewar + + * sem_ch13.adb: Minor reformatting. + +2014-06-11 Hristian Kirtchev + + * sem_prag.adb (Check_Clause_Syntax): Add new + local variable Outputs. Account for the case where multiple + output items appear as an aggregate. + +2014-06-11 Robert Dewar + + * sem_warn.adb (Output_Obsolescent_Entity_Warnings): Tag warning + with ?j? not ??. + +2014-06-11 Ed Schonberg + + * einfo.ads: Minor reformatting. + +2014-06-11 Hristian Kirtchev + + * a-cbdlli.adb, a-cdlili.adb, a-cidlli.adb, a-crdlli.adb (Insert): Add + new variable First_Node. Update the position after all insertions have + taken place to First_Node. + +2014-06-11 Robert Dewar + + * debug.adb: Remove debug flag -gnatd.1, no longer needed. + * layout.adb (Layout_Type): Remove test of -gnatd.1. + +2014-06-11 Robert Dewar + + * sem_ch13.adb: Minor reformatting. + +2014-06-11 Hristian Kirtchev + + * sem_prag.adb (Check_Clause_Syntax): Add new + local variable Outputs. Account for the case where multiple + output items appear as an aggregate. + +2014-06-11 Robert Dewar + + * sem_warn.adb (Output_Obsolescent_Entity_Warnings): Tag warning + with ?j? not ??. + +2014-06-11 Ed Schonberg + + * einfo.ads: Minor reformatting. + +2014-06-11 Hristian Kirtchev + + * a-cbdlli.adb, a-cdlili.adb, a-cidlli.adb, a-crdlli.adb (Insert): Add + new variable First_Node. Update the position after all insertions have + taken place to First_Node. + +2014-06-11 Robert Dewar + + * debug.adb: Remove debug flag -gnatd.1, no longer needed. + * layout.adb (Layout_Type): Remove test of -gnatd.1. + +2014-06-11 Thomas Quinot + + * freeze.ads: Minor reformatting. + * checks.adb (Determine_Range): Do not attempt to determine + the range of a deferred constant whose full view has not been + seen yet. + * sem_res.adb (Resolve): Remove undesirable guard against + resolving expressions from expression functions. + +2014-06-11 Robert Dewar + + * debug.adb (Debug_Flag_Dot_1): Set to enable fix for anonymous + access types. + * layout.adb (Layout_Type): Make anonymous access types for + subprogram formal types and return types always thin. For now + only enabled if -gnatd.1 set. + +2014-06-11 Ed Schonberg + + * sem_ch13.adb (Analyze_Stream_TSS_Definition): Apply legality + rule for stream attributes of interface types (RM 13.13.2 (38/3)): + subprogram must be a null procedure. + +2014-06-11 Hristian Kirtchev + + * sem_prag.adb (Analyze_Input_Item): Allow formal + parameters to appear as input_items in an initialization_list + of pragma Initializes. Encapsulation now applies to states and + variables only (as it should). Add RM references to key errors. + * sem_prag.adb (Set_Imported): Suppress errors + about preceding Imports when the pragma does not come from source, + which can happen through use of pragma Provide_Shift_Operators. + +2014-06-11 Thomas Quinot + + * sem_ch3.adb: Minor reformatting. + * einfo.ads (Full_View): Minor comment update. + +2014-06-11 Robert Dewar + + * einfo.adb (Is_Independent): New flag. + * einfo.ads (Is_Independent): New flag. + (Has_Independent_Components): Clean up and fix comments. + * sem_prag.adb (Fix_Error): Deal with changing argument + [of] to entity [for]. + (Analyze_Pragma, case Independent): Set Is_Independent flag + (Analyze_Pragma, case Independent_Components): Set Is_Independent flag + in all components of specified record. + +2014-06-11 Thomas Quinot + + * sem_ch12.adb (Analyze_Formal_Decimal_Fixed_Point_Type): + Set proper Etype on bounds of dummy type created for analysis + of the generic. + +2014-06-11 Robert Dewar + + * debug.adb: Minor comment fix (add missing section of dot + numeric flags). + +2014-06-11 Robert Dewar + + * gnat_rm.texi, switch-c.adb, sem_prag.adb, a-tgdico.ads, par-prag.adb, + opt.ads, a-finali.ads, snames.ads-tmpl: Remove all traces of + pragma/aspects Pure_05 Pure_12 Preelaborate_05. + * errout.adb (Output_Messages): Avoid duplicate output for + library level instance. + * sem_elab.adb (Is_Call_Of_Generic_Formal): Moved to outer level + (Check_Elab_Call): Add call to Is_Call_Of_Generic_Formal + * exp_ch4.adb (Expand_N_Op_Expon): New interface for Exp_Modular. + * s-expmod.ads, s-expmod.adb (Exp_Modular): Change interface to + accomodate largest modulus value. + * gnat_ugn.texi: Minor updates. + +2014-06-11 Ed Schonberg + + * sem_ch12.adb (Instantiate_Package_Body): Do not attempt to + load body of generic package or its parent, if body is optional + and the unit does not require a body. + +2014-06-11 Robert Dewar + + * gnat_rm.texi: Document System.Unsigned_Types. + * impunit.adb: System.Unsigned_Types (s-unstyp.ads) is user accessible. + * s-unstyp.ads: Update comments (this is now user available unit). + +2014-06-11 Robert Dewar + + * make.adb, sem_res.adb: Minor reformatting. + +2014-06-11 Thomas Quinot + + * a-astaco.ads, a-tags.ads, s-excdeb.ads, a-tgdico.ads, a-stmaco.ads, + a-except-2005.ads, s-except.ads, a-taside.ads, a-dynpri.ads, + a-chahan.ads, a-sytaco.ads, s-stalib.ads, a-strmap.ads: Change pragmas + Preelaborate_05 to just Preelaborate in runtime units, and similarly + change Pure_05 to just Pure. + +2014-06-11 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Do not attempt + analysis if error has been posted on subprogram body. + +2014-06-11 Ed Schonberg + + * sem_ch13.adb (Analyze_Stream_TSS_Definition): Apply legality + rule given in RM 13.1 (8/1) for operational attributes to stream + attributes: the attribute must apply to a first subtype. Fixes + missing errors in ACATS test bdd2004. + +2014-06-11 Robert Dewar + + * exp_ch3.adb (Build_Record_Init_Proc): Don't build for variant + record type if restriction No_Implicit_Conditionals is active. + (Expand_N_Object_Declaration): Don't allow default initialization + for variant record type if restriction No_Implicit_Condition is active. + (Build_Variant_Record_Equality): Don't build for variant + record type if restriction No_Implicit_Conditionals is active. + * exp_ch4.adb (Expand_N_Op_Eq): Error if variant records with + No_Implicit_Conditionals. + * sem_aux.ads, sem_aux.adb (Has_Variant_Part): New function. + +2014-06-11 Ramon Fernandez + + * i-cstrin.ads: Update comments. + +2014-06-11 Ed Schonberg + + * sem_res.adb (Resolve_Selected_Component): Handle properly a + selected component whose prefix is overloaded, when none of the + interpretations matches the expected type. + +2014-06-11 Bob Duff + + * make.adb (Wait_For_Available_Slot): Give a more + informative error message; if the ALI file is not found, print + the full path of what it's looking for. + +2014-06-11 Sergey Rybin + + * gnat_ugn.texi, vms_data.ads: add description of gnatstub -W + option to specify the result file encoding. + +2014-06-11 Robert Dewar + + * errout.ads, sem_ch12.adb: Minor reformatting. + * debug.adb, erroutc.adb: Remove -gnatd.q debug switch. + * lib-xref.adb: Minor reformatting. + * restrict.adb: Minor code reorganization (put routines in + alpha order). + +2014-06-11 Yannick Moy + + * einfo.ads: Minor typo in comment + +2014-06-11 Ed Schonberg + + * sinfo.ads, sinfo.adb: New attribute Uninitialized_Variable, for + formal private types and private type extensions, to indicate + variable in a generic unit whose uninitialized use suggest that + actual type should be fully initialized. + Needs_Initialized_Actual: removed, functionaity replaced by + the above. + * lib-xref.adb (Generate_Reference): Generate a reference for + variables of a formal type when the unit is not the main unit, + to enable appropriate warnings in an instance. + * sem_ch12.adb (Check_Ininialized_Type): Improve warning on use + of variable in a generic unit that suggests that actual type + should be full initialized. + * sem_warn.adb; (May_Need_Initialized_Actual): Make into procedure + and do not emot warning, which now only appears in an instance. + +2014-06-11 Eric Botcazou + + * gnat_ugn.texi: Fix minor typo. + +2014-06-11 Hristian Kirtchev + + * sem_ch3.adb Add with and use clause for Sem_Ch10. + (Analyze_Declarations): Code reformatting. Analyze the contract + of a subprogram body stub at the end of the declarative region. + * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Spec_Id is + now a variable. Do not process the body if its contract is not + available. Account for subprogram body stubs when extracting + the corresponding spec. + * sem_ch6.ads (Analyze_Subprogram_Contract): Update the comment + on usage. + * sem_ch10.ads, sem_ch10.adb (Analyze_Subprogram_Body_Stub_Contract): + New routine. + * sem_prag.adb (Analyze_Depends_In_Decl_Part): + Account for subprogram body stubs when extracting the + corresponding spec. + (Analyze_Global_In_Decl_List): + Account for subprogram body stubs when extracting the + corresponding spec. + (Analyze_Refined_Depends_In_Decl_Part): + Use Find_Related_Subprogram_Or_Body to retrieve the declaration + of the related body. Spec_Is now a variable. Account for + subprogram body stubs when extracting the corresponding spec. + (Analyze_Refined_Global_In_Decl_Part): Use + Find_Related_Subprogram_Or_Body to retrieve the declaration + of the related body. Spec_Is now a variable. Account for + subprogram body stubs when extracting the corresponding spec. + (Collect_Subprogram_Inputs_Output): Account for subprogram body + stubs when extracting the corresponding spec. + +2014-06-11 Vincent Celier + + * gnatcmd.adb (Process_Link): Do not invoke gnatlink with + -lgnarl or -lgnat. + +2014-06-11 Robert Dewar + + * debug.adb: Add debug flag -gnatd.q. + * erroutc.adb (Prescan_Message): Bomb if untagged warning with + -gnatd.q set. + * styleg.adb (Check_Xtra_Parens): Message should be a style + message. + * sem_aggr.adb, sem_ch3.adb, exp_ch9.adb, checks.adb, sem_prag.adb, + par-endh.adb, eval_fat.adb, freeze.adb, sem_util.adb, sem_attr.adb, + sem_elab.adb, sem_ch6.adb, sem_warn.adb, sem_cat.adb, + sem_ch13.adb, lib-xref.adb: Add remaining warning tags. + +2014-06-11 Ben Brosgol + + * gnat_rm.texi: Revised chapter on Implementation Defined + Characteristics. + +2014-06-11 Geert Bosch + + * s-exctab.adb: avoid race conditions in exception registration. + +2014-06-11 Robert Dewar + + * errout.adb (Warn_Insertion): New function. + (Error_Msg): Use Warn_Insertion and Prescan_Message. + (Error_Msg_Internal): Set Info field of error object. + (Error_Msg_NEL): Use Prescan_Message. + (Set_Msg_Text): Don't store info: at start of message. + (Skip_Msg_Insertion_Warning): New name for Set_Msg_Insertion_Warning. + (Skip_Msg_Insertion_Warning): Now just skips warning insertion. + * errout.ads: Document new ?$? and >$> insertion sequences + Document use of "(style)" and "info: " + * erroutc.adb (dmsg): Print several missing fields + (Get_Warning_Tag): Handle -gnatel case (?$?) (Output_Msg_Text): + Deal with new tagging of info messages + * erroutc.ads: Is_Info_Msg: New global (Error_Msg_Object): + Add field Info (Prescan_Message): New procedure, this procedure + replaces the old Test_Style_Warning_Serious_Unconditional_Msg + * errutil.adb, exp_util.adb, par-ch7.adb, sem_ch13.adb, sem_ch7.adb, + sem_elab.adb: Follow new rules for info message (info belongs + only at the start of a message, and only in the first message, + not in any of the continuations). + * gnat_ugn.texi: Document full set of warning tags. + +2014-06-11 Gary Dismukes + + * sem_util.adb: Minor typo fix. + +2014-06-11 Ed Schonberg + + * sem_warn.adb (Check_References): Do not emit spurious warnings + on uninitialzed variable of a formal private type if variable + is not read. + +2014-06-09 Jan Hubicka + + * gcc-interface/utils.c (process_attributes) : Use + set_decl_section_name accessor. + +2014-05-22 Thomas Schwinge + + * gcc-interface/utils.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6) + (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8) + (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes. + +2014-05-21 Robert Dewar + + * layout.adb: Minor reformatting. + * sem_prag.adb (Analyze_Pragma, case Inspection_Point): Call + dummy procedure ip. + +2014-05-21 Robert Dewar + + * restrict.ads (Implementation_Restriction): Add entry for + No_Fixed_IO. + * rtsfind.ads: Add entries for Fixed_IO and Decimal_IO in + Ada.[Wide_[Wide_]Text_IO. + * s-rident.ads (Restriction_Id): Add entry for No_Fixed_IO. + * sem_attr.adb (Analyze_Attribute): Disallow fixed point types + for Img, Image, Value, Wide_Image, Wide_Value, Wide_Wide_Image, + Wide_Wide_Value if restriction No_Fixed_IO is set. + * sem_util.adb (Set_Entity_Checks): Check restriction No_Fixed_IO. + +2014-05-21 Robert Dewar + + * gnatcmd.adb: Minor error msg changes (no upper case letter + at start). + * sem_ch12.adb, sem_ch5.adb, sem_res.adb, sem_util.adb: Minor + reformatting. + +2014-05-21 Robert Dewar + + * debug.adb: Debug flag -gnatd.G inhibits static elab tracing + via generic formals. + * sem_elab.adb (Is_Call_Of_Generic_Formal): Return False if + -gnatd.G is set. + +2014-05-21 Thomas Quinot + + * exp_pakd.adb (Revert_Storage_Order): Renamed from Byte_Swap to + more accurately describe that this subprogram needs to come into + play also in cases where no byte swapping is involved, because + it also takes care of some required shifts (left-justification + of values). + +2014-05-21 Thomas Quinot + + * freeze.adb (Check_Component_Storage_Order): Indicate whether + a Scalar_Storage_Order attribute definition is present for the + component's type. + (Freeze_Record_Type): Suppress junk warnings + about purportedly junk Bit_Order / Scalar_Storage_Order attribute + definitions. + +2014-05-21 Robert Dewar + + * sem_ch8.adb (Analyze_Subprogram_Renaming): Put back call + to Kill_Elaboration_Checks. + +2014-05-21 Gary Dismukes + + * layout.adb (Assoc_Add): Suppress the optimization of the (E + - C1) + C2 case, when the expression type is unsigned and C1 < + C2, to avoid creating a negative literal when folding. + +2014-05-21 Hristian Kirtchev + + * freeze.adb (Freeze_Record_Type): Update the use of + Is_SPARK_Volatile. + * sem_ch3.adb (Analyze_Object_Contract): Update the use of + Is_SPARK_Volatile. + (Process_Discriminants): Update the use of Is_SPARK_Volatile. + * sem_ch5.adb (Analyze_Iterator_Specification): Update the use + of Is_SPARK_Volatile. + (Analyze_Loop_Parameter_Specification): + Update the use of Is_SPARK_Volatile. + * sem_ch6.adb (Process_Formals): Catch an illegal use of an IN + formal parameter when its type is volatile. + * sem_prag.adb (Analyze_Global_Item): Update the use of + Is_SPARK_Volatile. + * sem_res.adb (Resolve_Entity_Name): Correct the guard which + determines whether an entity is a volatile source SPARK object. + * sem_util.adb (Has_Enabled_Property): Accout for external + properties being set on objects other than abstract states + and variables. An example would be a formal parameter. + (Is_SPARK_Volatile): New routine. + (Is_SPARK_Volatile_Object): + Remove the entity-specific tests. Call routine Is_SPARK_Volatile + when checking entities and/or types. + * sem_util.ads (Is_SPARK_Volatile): New routine. + +2014-05-21 Robert Dewar + + * sem_warn.adb: Minor fix to warning messages (use ?? instead + of ?). + +2014-05-21 Vincent Celier + + * gnatcmd.adb (GNATCmd): For platforms other than VMS, recognize + switch --version and --help. + +2014-05-21 Robert Dewar + + * sem_elab.adb (Is_Call_Of_Generic_Formal): New function. + +2014-05-21 Ed Schonberg + + * sem_ch5.adb (Analyze_Iterator_Specification): Set type of + iterator variable when the domain of iteration is a formal + container and this is an element iterator. + +2014-05-21 Bob Duff + + * sem_ch12.adb: Minor reformatting. + +2014-05-21 Robert Dewar + + * sinfo.ads, sem_ch12.adb, sem_warn.adb: Minor reformatting. + +2014-05-21 Robert Dewar + + * sem_elab.adb: Minor reformatting. + * s-taprop.ads: Minor comment fix. + * sem_ch8.adb (Analyze_Subprogram_Renaming): Remove call to + Kill_Elaboration_Checks. + * errout.adb, erroutc.adb: Minor reformatting. + +2014-05-21 Thomas Quinot + + * exp_pakd.adb (Byte_Swap): Handle the case of a sub-byte + component. No byte swapping occurs, but this procedure also takes + care of appropriately justifying the argument. + +2014-05-21 Hristian Kirtchev + + * sem_ch6.adb: sem_ch6.adb (Analyze_Aspects_On_Body_Or_Stub): + New routine. + (Analyze_Subprogram_Body_Helper): Move the + analysis of aspect specifications and the processing of the + subprogram body contract after inlining has taken place. + (Diagnose_Misplaced_Aspect_Specifications): Removed. + +2014-05-21 Javier Miranda + + * sem_ch3.adb (Build_Derived_Record_Type): Revert previous change. + +2014-05-21 Robert Dewar + + * sem_eval.ads, sem_eval.adb (Why_Not_Static): Messages are not + continuations any more. + +2014-05-21 Ed Schonberg + + * sinfo.ads, sinfo.adb: New flag Needs_Initialized_Actual, + present in formal_Private_Definitions and on private extension + declarations of a formal derived type. Set when the use of the + formal type in a generic suggests that the actual should be a + fully initialized type. + * sem_warn.adb (May_Need_Initialized_Actual): new subprogram + to indicate that an entity of a generic type has default + initialization, and that the corresponing actual type in any + subsequent instantiation should be fully initialized. + * sem_ch12.adb (Check_Initialized_Type): new subprogram, + to emit a warning if the actual for a generic type on which + Needs_Initialized_Actual is set is not a fully initialized type. + +2014-05-21 Robert Dewar + + * sem_elab.adb, prj-dect.adb: Minor reformatting. + +2014-05-21 Robert Dewar + + * erroutc.ads: Minor comment addition. + +2014-05-21 Robert Dewar + + * errout.ads: Add documentation for use of >*> tag. + * restrict.adb: Make sure we use >*> tag for restriction warnings. + +2014-05-21 Gary Dismukes + + * debug.adb: Add case of illegal overriding_indicator for a + protected subprogram body to description of -gnatd.E switch. + * sem_ch6.adb (Verify_Overriding_Indicator): Issue error message + for cases of giving overriding_indicators on protected subprogram + bodies, but change this to a warning if -gnatd.E is enabled. No + longer give a style warning about missing indicators on protected + subprogram bodies. + +2014-05-21 Robert Dewar + + * prj.ads, sem_ch12.adb, prj.adb, exp_pakd.adb, + sem_elab.ads: Minor reformatting. + * erroutc.adb, erroutc.ads (Warning_Specifically_Suppressed): Make Tag + parameter optional. + +2014-05-21 Pascal Obry + + * prj-dect.adb: Allow package Install in aggregate project. + +2014-05-21 Robert Dewar + + * sem_ch13.adb (Analyze_Aspect_Specifications): + Insert_Delayed_Pragma is now used for the case of Attach_Handler. + * sem_prag.adb: Minor comment improvements. + +2014-05-21 Ed Schonberg + + * sem_ch12.adb (Install_Body): When checking whether freezing of + instantiation must be delayed, verify that the common enclosing + subprogram to generic and instance is in fact an overloadable + entity. + +2014-05-21 Vincent Celier + + * makeutl.adb (Mains.Complete_Mains.Do_Complete): Look for all + mains with the same name and fail if there is more than one. + * prj.ads, prj.adb (Find_All_Sources): New function + +2014-05-21 Robert Dewar + + * sem_ch13.adb: Minor reformatting. + * lib-xref-spark_specific.adb, sem_util.adb: Minor reformatting. + * sem_prag.adb: Minor error message improvement. + +2014-05-21 Yannick Moy + + * lib-xref-spark_specific.adb, lib-xref.ads, lib-xref.adb + (Enclosing_Subprogram_Or_Package): Only return a library-level + package. + +2014-05-21 Javier Miranda + + * sem_ch3.adb (Build_Derived_Record_Type): Initialize Parent_Base + to the full view of the parent type when processing a derived type + which is the full view of a private type not defined in a generic + unit which is derived from a private type with discriminants + whose full view is a non-tagged record type. + +2014-05-21 Javier Miranda + + * exp_ch4.adb (Expand_Allocator_Expression.Apply_Accessibility_Check): + Complete previous patch. + +2014-05-21 Thomas Quinot + + PR ada/9535 + * g-socket.adb (Read and Write for Datagram_Socket_Stream_Type): + Provide a behaviour more consistent with underlying datagram + socket: do not attempt to loop over Send_Socket/Receive_Socket + iterating along the buffer. + +2014-05-21 Hristian Kirtchev + + * freeze.adb (Freeze_Record_Type): Ensure that a discriminated + or a tagged type is not labelled as volatile. Ensure that a + non-volatile type has no volatile components. + * sem_ch3.adb (Analyze_Object_Contract): Add local constant + Obj_Typ. Code reformatting. Ensure that a discriminated or + tagged object is not labelled as volatile. + * sem_prag.adb (Process_Atomic_Shared_Volatile): Ensure that + pragma Volatile applies to a full type declaration or an object + declaration when SPARK mode is on. + +2014-05-21 Sergey Rybin + + * gnat_ugn.texi: For ASIS tools, reword the paragraph about + providing options needed for compiling the argument source for + the situation when a project file can be used as a tool parameter. + +2014-05-21 Gary Dismukes + + * gnat_rm.texi: Minor typo fix. + +2014-05-21 Robert Dewar + + * stand.adb (Tree_Read): Read missing entities. + (Tree_Write): Write missing entities. + +2014-05-21 Ben Brosgol + + * gnat_ugn.texi: Wordsmithing edits to Coupling Metrics Control + section in gnatmetric chapter. + +2014-05-21 Robert Dewar + + * exp_ch6.adb (Expand_Actuals): Spec moved here, since not used + outside Exp_Ch6 (Expand_Actuals): Deal with proper insertion of + post-call copy write back (see detailed comment in code). + * exp_ch6.ads (Expand_Actuals): Moved to body, not used outside + Exp_Ch6. + * tbuild.ads: Minor reformatting. + +2014-05-21 Robert Dewar + + * stand.ads: Add warning about adding new entities and + Tree_Read/Tree_Write. + +2014-05-21 Robert Dewar + + * sem_util.adb (Set_Entity_With_Checks): Don't complain about + references to restricted entities within the units in which they + are declared. + +2014-05-21 Robert Dewar + + * gnat1drv.adb (Check_Bad_Body): Use Source_File_Is_Body to + simplify the needed test, and also deal with failure to catch + situations with non-standard names. + * sinput-l.ads, sinput-l.adb (Source_File_Is_No_Body): New function + (Source_File_Is_Subunit): Removed, no longer used. + +2014-05-21 Javier Miranda + + * exp_ch4.adb + (Expand_Allocator_Expression.Apply_Accessibility_Check): for a + renaming of an access to interface object there is no need to + generate extra code to reference the tag. + +2014-05-21 Robert Dewar + + * errout.adb, erroutc.adb, erroutc.ads: Allow warning tag in pragma + Warnings (Off, string). + +2014-05-21 Robert Dewar + + * osint.adb: Fix three error messages to say invalid instead + of erroneous. + * par-ch4.adb, exp_aggr.adb, sem_attr.adb, sem_aux.adb, sem_ch3.adb, + sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_dim.adb, sem_res.adb, + sem_util.adb, sem_util.ads: Fix incorrect use of erroneous in comments. + +2014-05-21 Ed Schonberg + + * freeze.adb, sem_ch13.adb, sem_ch13.ads, sem_ch9.adb, + sem_ch9.ads: Move discriminant manipulation routines for analysis of + aspect specifications from sem_ch9 to sem_ch13, where they belong. + +2014-05-21 Robert Dewar + + * gnat_ugn.texi: Clearly document -gnatw.g (GNAT warnings). + Clearly document -gnatyg (GNAT style switches). + * usage.adb: Add line line for -gnatw.g (GNAT warnings) More + detail for line for -gnatyg (GNAT style switches) -gnatw.d/D is + available for VMS after all. + * warnsw.adb: Reorganize to eliminate duplicated code + (Restore_Warnings): Add a couple of missing entries + (Save_Warnings): Add a couple of missing entries. + * warnsw.ads: Add missing entries to Warning_Record (not clear + what the impact is). + +2014-05-21 Robert Dewar + + * errout.adb (Set_Msg_Insertion_Warning): Handle ?*? (restriction + warning) case. + * errout.ads: Document ?*? (restriction warning) insertion. + * erroutc.adb (Get_Warning_Tag): Deal with ?*? (restriction + warning) case. + * erroutc.ads: Document use of * for restriction warning tag. + * restrict.adb (Restriction_Msg): Tag with ?*? instead of ??. + +2014-05-21 Ed Schonberg + + * sem_ch9.adb (Push_Scope_And_Install_Discriminants): Do not + make discriminants immediately visible when analyzing an aspect + of a subtype declaration. + (Uninstall_Discriminants): Do not apply to the entity in a + subtype declaration. + +2014-05-21 Ed Schonberg + + * sem_util.adb: Code clean up. + +2014-05-21 Eric Botcazou + + * gnat_ugn.texi: Document -Werror. + +2014-05-21 Bob Duff + + * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): + This was returning False if the Object is a constant view. Fix + it to return True in that case, because it might be a view of + a variable. + (Has_Discriminant_Dependent_Constraint): Fix latent + bug; this function was crashing when passed a discriminant. + +2014-05-21 Robert Dewar + + * gnat_ugn.texi: Remove misplaced section that is now obsolete. + * s-arit64.adb: Minor code reorganization. + * sem_prag.adb: Minor comment fix (remove erroneous use of the + term erroneous). + +2014-05-21 Robert Dewar + + * g-table.adb, g-dyntab.adb (Reallocate): Fix possible overflow in + computing new table size. + +2014-05-21 Robert Dewar + + * einfo.ads: Minor reformatting. + * ceinfo.adb: Deal with slight format change of einfo.ads. + +2014-05-21 Ed Schonberg + + * sem_prag.adb (Analyze_Part_Of): Further work on the proper + implementation of the SPARK 2014 rule concerning private child + units (LRM 7.2.6). + +2014-05-21 Vincent Celier + + * makeusg.adb: Add switch -d to usage. + +2014-05-21 Ed Schonberg + + * sem_util.adb (Find_Actual): If an actual that is the prefix + of an enclosing prefixed call has been rewritten, use Nkind + and Sloc to identify the corresponding formal, when handling + deferred references. + +2014-05-21 Robert Dewar + + * debug.adb: Document -gnatd.z switch. + * sem_eval.adb (Why_Non_Static): Test -gnatd.z switch. + +2014-05-21 Robert Dewar + + * einfo.ads (Can_Never_Be_Null): Minor comment update. + * sem_prag.adb (Check_Arg_Is_Task_Dispatching_Policy): Minor + error message change. + * s-arit64.adb ("abs"): New function. Use expression functions + for the simple conversions and arithmetic. + +2014-05-18 Eric Botcazou + + * gcc-interface/trans.c (Subprogram_Body_to_gnu): Rework comment and + set function_start_locus. + +2014-05-18 Eric Botcazou + + * utils.c (gnat_write_global_declarations): Adjust the flags put on + dummy_global. + +2014-05-18 Eric Botcazou + + * gcc-interface/decl.c (change_qualified_type): New static function. + (gnat_to_gnu_entity): Use it throughout to add qualifiers on types. + : Set TYPE_VOLATILE on the array type directly. + : Likewise. + Do not set flags on an UNCONSTRAINED_ARRAY_TYPE directly. + (gnat_to_gnu_component_type): Likewise. + (gnat_to_gnu_param): Likewise. + +2014-05-18 Eric Botcazou + + * fe.h (Set_Present_Expr): Move around. + (End_Location): New macro. + * gcc-interface/trans.c (Case_Statement_to_gnu): Use End_Location. + +2014-05-18 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Use Underlying_Type in + lieu of more verbose construct. + * gcc-interface/trans.c (Call_to_gnu): Likewise. + (gnat_to_gnu): Likewise. Remove obsolete code. + +2014-05-18 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not + consider that regular packed arrays can never be superflat. + +2014-05-17 Trevor Saunders + + * gcc-interface/ada-tree.h: Remove usage of variable_size gty + annotation. + * gcc-interface/decl.c (annotate_value): Adjust. + * gcc-interface/trans.c (Attribute_to_gnu): Likewise. + (push_range_check_info): Likewise. + (Loop_Statement_to_gnu): Likewise. + (Subprogram_Body_to_gnu): Likewise. + (Compilation_Unit_to_gnu): Likewise. + (start_stmt_group): Likewise. + * gcc-interface/utils.c (init_gnat_utils): Likewise. + (gnat_pushlevel): Likewise. + (maybe_pad_type): Likewise. + +2014-05-14 Eric Botcazou + + * seh_init.c: Fix copyright year. + +2014-05-14 Bernd Edlinger + + * seh_init.c (__gnat_map_SEH): Compile also when __CYGWIN__ and __SEH__ + are defined. Move include windows.h before system.h. + * s-oscons-tmplt.c (DTR_CONTROL_ENABLE, RTS_CONTROL_ENABLE): Compile + also when __CYGWIN__ is defined. Include windef.h before winbase.h. + +2014-05-14 Richard Sandiford + + * gcc-interface/decl.c (gnat_to_gnu_entity): Convert integer_one_node + to the appropriate type. + * gcc-interface/trans.c (gnat_to_gnu): Likewise. + (pos_to_constructor): Likewise. + +2014-05-13 Eric Botcazou + + * gcc-interface/decl.c (annotate_value): Fix thinko in latest change. + +2014-05-06 Kenneth Zadeck + Mike Stump + Richard Sandiford + + * gcc-interface/cuintp.c (UI_From_gnu): Use wide-int interfaces. + * gcc-interface/decl.c (gnat_to_gnu_entity): Use TYPE_SIGN. + (annotate_value): Use wide-int interfaces. + * gcc-interface/utils.c (get_nonnull_operand): Use tree_fits_uhwi_p. + +2014-04-28 Richard Henderson + + * gcc-interface/Makefile.in: Support aarch64-linux. + +2014-04-28 Eric Botcazou + + * exp_dbug.ads (Get_External_Name): Add 'False' default to Has_Suffix, + add 'Suffix' parameter and adjust comment. + (Get_External_Name_With_Suffix): Delete. + * exp_dbug.adb (Get_External_Name_With_Suffix): Merge into... + (Get_External_Name): ...here. Add 'False' default to Has_Suffix, add + 'Suffix' parameter. + (Get_Encoded_Name): Remove 2nd argument in call to Get_External_Name. + Call Get_External_Name instead of Get_External_Name_With_Suffix. + (Get_Secondary_DT_External_Name): Likewise. + * exp_cg.adb (Write_Call_Info): Likewise. + * exp_disp.adb (Export_DT): Likewise. + (Import_DT): Likewise. + * comperr.ads (Compiler_Abort): Remove Code parameter and add From_GCC + parameter with False default. + * comperr.adb (Compiler_Abort): Likewise. Adjust accordingly. + * types.h (Fat_Pointer): Rename into... + (String_Pointer): ...this. Add comment on interfacing rules. + * fe.h (Compiler_Abort): Adjust for above renaming. + (Error_Msg_N): Likewise. + (Error_Msg_NE): Likewise. + (Get_External_Name): Likewise. Add third parameter. + (Get_External_Name_With_Suffix): Delete. + * gcc-interface/decl.c (STDCALL_PREFIX): Define. + (create_concat_name): Adjust call to Get_External_Name, remove call to + Get_External_Name_With_Suffix, use STDCALL_PREFIX, adjust for renaming. + * gcc-interface/trans.c (post_error): Likewise. + (post_error_ne): Likewise. + * gcc-interface/misc.c (internal_error_function): Likewise. + +2014-04-28 Richard Biener + + PR middle-end/60092 + * gcc-interface/utils.c: Define flag_isoc11. + +2014-04-26 Eric Botcazou + + * gnatvsn.ads (Library_Version): Bump to 4.10. + +2014-04-23 Eric Botcazou + + Revert + 2014-04-22 Richard Henderson + + * gcc-interface/Makefile.in: Support aarch64-linux. + + 2014-04-22 Eric Botcazou + + * fe.h (Compiler_Abort): Replace Fat_Pointer with String_Pointer. + (Error_Msg_N): Likewise. + (Error_Msg_NE): Likewise. + (Get_External_Name_With_Suffix): Likewise. + * types.h (Fat_Pointer): Delete. + (String_Pointer): New type. + (DECLARE_STRING_POINTER): New macro. + * gcc-interface/decl.c (create_concat_name): Adjust. + * gcc-interface/trans.c (post_error): Likewise. + (post_error_ne): Likewise. + * gcc-interface/misc.c (internal_error_function): Likewise. + +2014-04-22 Richard Henderson + + * gcc-interface/Makefile.in: Support aarch64-linux. + + * init.c [__linux__] (HAVE_GNAT_ALTERNATE_STACK): New define. + (__gnat_alternate_stack): Enable for all linux except ia64. + +2014-04-22 Eric Botcazou + + * fe.h (Compiler_Abort): Replace Fat_Pointer with String_Pointer. + (Error_Msg_N): Likewise. + (Error_Msg_NE): Likewise. + (Get_External_Name_With_Suffix): Likewise. + * types.h (Fat_Pointer): Delete. + (String_Pointer): New type. + (DECLARE_STRING_POINTER): New macro. + * gcc-interface/decl.c (create_concat_name): Adjust. + * gcc-interface/trans.c (post_error): Likewise. + (post_error_ne): Likewise. + * gcc-interface/misc.c (internal_error_function): Likewise. + +2014-04-15 Eric Botcazou + Pierre-Marie de Rodat + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Create a mere + scalar constant instead of a reference for renaming of scalar literal. + Do not create a new object for constant renaming except for a function + call. Make sure a VAR_DECL is created for the renaming pointer. + * gcc-interface/trans.c (constant_decl_with_initializer_p): New. + (fold_constant_decl_in_expr): New function. + (Identifier_to_gnu): Use constant_decl_with_initializer_p. + For a constant renaming, try to fold a constant DECL in the result. + (lvalue_required_p) : Always return 1. + (Identifier_to_gnu): Reference the renamed object of constant renaming + pointers directly. + * gcc-interface/utils.c (invalidate_global_renaming_pointers): Do not + invalidate constant renaming pointers. + +2014-04-15 Eric Botcazou + + * gcc-interface/utils.c (type_for_vector_element_p): New predicate. + (build_vector_type_for_size): New function. + (build_vector_type_for_array): Likewise. + (unchecked_convert): Build an intermediate vector type to convert + from a generic array type to a vector type. + (handle_vector_size_attribute): Reimplement. + (handle_vector_type_attribute): Likewise. + +2014-04-15 Eric Botcazou + + * gcc-interface/decl.c (prepend_one_attribute_pragma): Call + Is_OK_Static_Expression in lieu of Is_Static_Expression to + detect valid arguments. + +2014-04-15 Eric Botcazou + + * gcc-interface/trans.c (gnat_gimplify_stmt): Propagate loop hints. + +2014-04-14 Paolo Carlini + + * gcc-interface/decl.c (gnat_to_gnu_entity): Use TYPE_IDENTIFIER. + (components_to_record): Likewise. + * gcc-interface/utils.c (make_aligning_type): Likewise. + (maybe_pad_type): Likewise. + (finish_record_type): Likewise. + (rest_of_record_type_compilation): Likewise. + +2014-04-14 Eric Botcazou + + * snames.ads-tmpl (Name_Ivdep): New pragma-related name. + * sem_prag.adb (Analyze_Pragma) : Add support + for Ivdep hint. + * gnat_rm.texi (Implementation Defined Pragmas): Document new Ivdep + hint for Loop_Optimize. + * gnat_ugn.texi (Vectorization of loops): Mention new Ivdep hint. + * gcc-interface/trans.c (Pragma_to_gnu) : Deal + with new Ivdep hint. + * gcc-interface/ada-tree.h (LOOP_STMT_IVDEP): New macro. + * gcc-interface/trans.c (Pragma_to_gnu) : Deal + with new Ivdep hint. + (gnat_gimplify_stmt) : Propagate loop hints. + +2014-04-14 Eric Botcazou + Robert Dewar + + * opt.ads (Suppress_Back_Annotation): Remove as unused. + * fe.h (Back_Annotate_Rep_Info): Likewise. + (Global_Discard_Names): Likewise. + (List_Representation_Info): Declare. + * types.h (Uint_Minus_1): Likewise. + * repinfo.ads: Document back-annotation change. + * gcc-interface/gigi.h (init_gnat_decl): Declare. + (destroy_gnat_decl): Likewise. + * gcc-interface/decl.c (annotate_value): Do not create the cache of + annotated values here but... + : Only inline the call if -gnatR3 is specified or we are + in ASIS mode. + (init_gnat_decl): ...here instead. New function. + (destroy_gnat_decl): Likewise. + * gcc-interface/trans.c (gigi): Call {init|destroy}_gnat_decl. + * gcc-interface/utils.c (init_gnat_utils): Minor reformatting. + +2014-04-14 Eric Botcazou + + * gcc-interface/decl.c (create_field_decl_from): Finalize non-constant + offset for the field, if any. + +2014-04-09 Eric Botcazou + Svante Signell + + PR ada/54040 + PR ada/59346 + * s-osinte-x32.adb: New file. + * s-linux.ads (Time): New section. + * s-linux-alpha.ads (Time): Likewise. + * s-linux-android.ads (Time: Likewise. + * s-linux-hppa.ads (Time): Likewise. + * s-linux-mipsel.ads (Time): Likewise. + * s-linux-sparc.ads (Time): Likewise. + * s-linux-x32.ads (Time): Likewise. + * s-osprim-x32.ads (timespec): Adjust. + (Clock): Likewise. + (To_Timespec): Likewise. + * s-osinte-linux.ads (Time): Define local subtypes for those defined + in System.Linux. + * s-taprop-linux.adb (Monotonic_Clock): Do not define timeval. + * s-osinte-hpux.ads (timespec): Revert POSIX breakage. + * s-osinte-kfreebsd-gnu.ads (timespec): Likewise. + * s-osinte-solaris-posix.ads (timespec): Likewise. + * s-osinte-posix.adb (To_Timespec): Likewise. + * gcc-interface/Makefile.in (x32/Linux): Use s-osinte-x32.adb. + +2014-04-08 Eric Botcazou + + PR ada/60411 + * gcc-interface/Makefile.in (arm% linux-android): Switch to EHABI. + * s-linux-android.ads: New file. + * s-intman-android.adb: Likewise. + * s-osinte-android.ads: Adjust. + * sigtramp-armdroid.c: Likewise. + * sigtramp.h: Add Android support. + +2014-04-07 Eric Botcazou + + * gcc-interface/Makefile.in (alpha-vms): Add missing line. + +2014-03-30 Eric Botcazou + + PR ada/60703 + * system-linux-alpha.ads: Adjust for Ada 2005. + * system-linux-mips.ads: Likewise. + * system-linux-mips64el.ads: Likewise. + * system-linux-mipsel.ads: Likewise. + * system-linux-s390.ads: Likewise. + * system-linux-s390x.ads: Likewise. + * system-linux-sparc.ads: Likewise. + * system-linux-sparcv9.ads: Likewise. + * system-rtems.ads: Likewise. + * system-vxworks-arm.ads: Likewise. + +2014-03-16 Andreas Schwab + + PR ada/39172 + * gcc-interface/Makefile.in (target_cpu_default): Revert + 2013-10-11 change. + +2014-03-13 Eric Botcazou + + PR ada/51483 + * cstand.adb (Register_Float_Type): Add 'precision' parameter and use + it to set the RM size. Use directly 'size' for the Esize. + (Create_Back_End_Float_Types): Adjust call to above. + * get_targ.ads (Register_Type_Proc): Add 'precision' parameter. + * set_targ.ads (FPT_Mode_Entry): Add 'precision' component. + (Write_Target_Dependent_Values): Adjust comment. + * set_targ.adb (Register_Float_Type): Add 'precision' parameter and + deal with it. + (Write_Target_Dependent_Values): Write the precision in lieu of size. + (Initialization): Read the precision in lieu of size and compute the + size from the precision and the alignment. + * gcc-interface/gigi.h (enumerate_modes): Add integer parameter. + * gcc-interface/misc.c (enumerate_modes): Likewise. Do not register + types for vector modes, pass the size in addition to the precision. + +2014-03-10 Eric Botcazou + + * gcc-interface/Make-lang.in (ADA_DEPFILES): Fix typo. + +2014-03-07 Doug Rupp + + PR ada/60411 + * system-linux-armel.ads (Backend_Overflow_Checks): Set to True. + (Support_64_Bit_Divides): Removed, no longer used. + (ZCX_By_Default): Enabled. + +2014-02-25 Doug Rupp + + * gcc-interface/Makefile.in (arm-linux): + (EH_MECHANISM): Use ARM unwinder (-arm) + (LIBGNAT_TARGET_PAIRS: Override defaults with a-exexpr-gcc.adb and + s-excmac-arm.ads. + (EXTRA_LIBGNAT_OBJS): Add raise-gcc.o + (EXTRA_GNATRTL_NONTASKING_OBJS): Add g-cppexc.o s-excmac.o. + (arm-wrs-vxworks): Add EH_MECHANISM=-gcc for kernel mode. + (EXTRA_LIBGNAT_OBJS): Add sigtramp-armvxw.o + Add dependencies for sigtramp-armvxw.o. + +2014-02-25 Eric Botcazou + + * gcc-interface/trans.c (Pragma_to_gnu): Deal with Warning_As_Error. + +2014-02-25 Robert Dewar + + * rtsfind.adb (Is_RTE): Protect against entity with no scope + field (previously this call blew up on the Standard entity). + * sem_attr.adb (Analyze_Attribute, case Access): Remove + test for No_Abort_Statements, this is now handled in + Set_Entity_With_Checks. + * exp_ch6.adb, sem_ch10.adb, sem_ch4.adb, sem_ch8.adb, sem_res.adb: + Change name Set_Entity_With_Style_Check => Set_Entity_With_Checks. + * sem_util.ads, sem_util.adb: Change name Set_Entity_With_Style_Check => + Set_Entity_With_Checks. + (Set_Entity_With_Checks): Add checks for No_Dynamic_Attachment, + Add checks for No_Abort_Statements. + +2014-02-25 Robert Dewar + + * exp_ch9.adb (Expand_Entry_Barrier): Add comment that call to + Check_Restriction is OK. + +2014-02-25 Ed Schonberg + + * sem_ch3.adb (Process_Full_View): Better error message when + the full view of a private type without discriminants is an + unconstrained type. + * sem_ch7.adb (Uninstall_Declarations): Ditto. + +2014-02-25 Eric Botcazou + + * sigtramp-armvxw.c: Also restore r0. + +2014-02-25 Robert Dewar + + * errout.adb (Error_Msg_Internal): Warning_Msg_Char set + unconditionally (Set_Msg_Insertion_Warning): Warning_Msg_Char + set unconditionally. + * erroutc.adb (Get_Warning_Tag): Does not give a leading space + any more (Output_Msg_Text): Rewritten with new convention on + output of warnings that are treated as errors. + * erroutc.ads (Error_Msg_Object): Warn_Chr is always set even + if Warn is False. + * gnat_rm.texi: Updates to documentation on pragma + Warning_As_Error. + * warnsw.adb (Set_Dot_Warning_Switch): -gnatw.e should not + set Warning_Doc_Switch. + * lib-writ.ads: Add documentation note on ALI file generation + for C. + * exp_ch6.adb (Expand_Call): Remove check for No_Abort_Statements + (belongs in Sem). + * sem_attr.adb (Resolve_Attribute, case Access): + Abort_Task'Access violates the No_Abort_Statements restriction. + * sem_res.adb (Resolve_Call): Check restriction + No_Abort_Statements for call to Abort_Task or a renaming of it. + +2014-02-25 Robert Dewar + + * sem_ch3.adb (Array_Type_Declaration): Check for case of using + type name as index. + * lib.ads: Minor reformatting. + * einfo.ads: Minor reformatting. + +2014-02-25 Doug Rupp + + * sem_mech.adb (Set_Mechanisms): For convention Fortran on VMS + use Short_Descriptor(S) as the argument passing mechanism. + +2014-02-25 Eric Botcazou + + * sigtramp-ppcvxw.c (CFI_COMMON_REGS): Also include r0. + +2014-02-25 Robert Dewar + + * atree.ads (Warnings_Treated_As_Errors): New variable. + * errout.adb (Error_Msg_Internal): Set Warn_Err flag in + error object (Initialize): Initialize Warnings_As_Errors_Count + (Write_Error_Summary): Include count of warnings treated as errors. + * erroutc.adb (Warning_Treated_As_Error): New function. + (Matches): Function moved to outer level of package. + * erroutc.ads (Error_Msg_Object): Add Warn_Err flag. + (Warning_Treated_As_Error): New function. + * gnat_rm.texi: Document pragma Treat_Warning_As_Error. + * opt.adb: Add handling of Warnings_As_Errors_Count[_Config]. + * opt.ads (Config_Switches_Type): Add entry for + Warnings_As_Errors_Count. + (Warnings_As_Errors_Count): New variable. + (Warnings_As_Errors): New array. + * par-prag.adb: Add dummy entry for Warning_As_Error. + * sem_prag.adb (Analyze_Pragma): Implement new pragma + Warning_As_Error. + * snames.ads-tmpl: Add entries for Warning_As_Error pragma. + +2014-02-25 Eric Botcazou + + * sigtramp.h: Fix minor inaccuracy. + +2014-02-25 Ben Brosgol + + * gnat_ugn.texi: Added description of kill command. + +2014-02-25 Robert Dewar + + * gnat_rm.texi (Address_Clauses): Add a section discussing the + problem of address clauses causing unexpected initialization, + including the effect of Initialize_Scalars. + +2014-02-25 Robert Dewar + + * errout.adb: Various changes for better msgs for anonmous access + subprogram types. + * erroutc.ads, erroutc.adb (Buffer_Ends_With): Version with character + argument. + (Buffer_Remove): Version with character argument. + * sem_attr.adb (Resolve_Attribute, case Access): Better handling + of mismatching conventions for access-to-subprogram case. + * sem_prag.adb (Set_Convention_From_Pragma): Deal with anonymous + access types in record. + * sem_util.ads, sem_util.adb (Set_Convention): Handle anonymous access + types, including in records. + +2014-02-25 Doug Rupp + + * sigtramp-ppcvxw.c, sigtramp.h, sigtramp-armvxw.c: Comment + enhancements and corrections. + +2014-02-25 Robert Dewar + + * gnat_rm.texi: New section "Conventions and Anonymous Access Types" + +2014-02-25 Robert Dewar + + * gnat_rm.texi: First set of documentation additions for + predefined RM units. + * checks.adb: Minor reformatting. + * sem_elab.adb (Check_Task_Activation): Minor fix to error + message. + * sem_util.adb: Minor reformatting. + +2014-02-25 Arnaud Charlet + + * usage.adb (Usage): Add help on -gnateC. + * switch-c.adb (Scan_Front_End_Switches): Add handling of -gnateC. + * opt.ads (Generate_CodePeer_Messages): New flag. + * gnat_ugn.texi: Document new switch -gnateC. + +2014-02-25 Ben Brosgol + + * gnat_rm.texi: Corrected minor typos in Implementation Defined + Aspects. + * opt.ads: Minor reformatting. + +2014-02-25 Robert Dewar + + * binde.adb: Change messages to mention -gnatel instead of -gnatwl. + * gnat_ugn.texi: Update documentation of -gnatwl Add documentation + of -gnatel/-gnateL. + * opt.ads (Warn_Info_Messages): New flag. + * sem_elab.adb: Use Elab_Warnings, Elab_Info_Messages to control + messages. + * sem_prag.adb: Use Elab_Warnings, Elab_Info_Messages to control + messages. + * switch-m.ad, switch-c.adb: Recognize new -gnatel/EL switches. + * usage.adb: Add documentation of -gnatel/-gnateL Update + documentation of -gnatwl/-gnatwL. + * warnsw.adb: New handling of Elab_Warnings, Elab_Info_Messages + * warnsw.ads (Elab_Info_Messages): New field in Warning_Record + +2014-02-25 Robert Dewar + + * einfo.ads, einfo.adb (Has_Shift_Operator): New flag. + * gnat_rm.texi: Document pragma Provide_Shift_Operators. + * interfac.ads: Minor code reorganization (add pragma + Compiler_Unit_Warning). + * par-prag.adb: Add dummy entry for Provide_Shift_Operators. + * sem_ch3.adb (Build_Derived_Numeric_Type): Copy + Has_Shift_Operator flag. + * sem_intr.adb (Check_Intrinsic_Subprogram): Make sure + Check_Shift is always called (Check_Shift): Set Has_Shift_Operator. + * sem_prag.adb: Implement pragma Provide_Shift_Operators. + * snames.ads-tmpl: Add entries for pragma Provide_Shift_Operators + Add entry for Name_Amount. + * checks.adb (Selected_Range_Checks): When checking for a null + range, make sure we use the base type, and not the subtype for + deciding a range is null. + * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Check + for suspicious loop bound which is outside the range of the + loop subtype. + * gnat_ugn.texi: Add documentation section "Determining the + Chosen Elaboration Order" + * sem_ch13.adb (UC_Entry): Add field Act_Unit + (Validate_Unchecked_Conversion): Store Act_Unit + (Validate_Unchecked_Conversions): Test Warnings_Off in Act_Unit + * treepr.adb: Minor reformatting. + +2014-02-25 Arnaud Charlet + + * usage.adb: Minor: fix typo. + +2014-02-25 Robert Dewar + + * lib.ads, s-bitops.adb, s-bitops.ads, s-conca5.adb, gnat_rm.texi, + s-conca5.ads, s-conca7.adb, s-conca7.ads, s-crc32.adb, s-crc32.ads, + s-conca9.adb, s-conca9.ads, g-dyntab.adb, s-crtl.ads, g-dyntab.ads, + s-excdeb.adb, s-addope.adb, s-addope.ads, s-carun8.adb, s-carun8.ads, + g-htable.adb, g-htable.ads, g-hesora.adb, g-hesora.ads, s-conca2.adb, + s-conca2.ads, a-comlin.adb, a-chlat1.ads, a-comlin.ads, errout.ads, + a-except.adb, s-conca4.adb, a-except.ads, s-conca4.ads, s-conca6.adb, + s-conca6.ads, g-spchge.adb, g-spchge.ads, g-u3spch.adb, g-u3spch.ads, + a-strhas.ads, restrict.adb, aspects.adb, aspects.ads, s-conca8.adb, + s-conca8.ads, back_end.adb, par-prag.adb, g-byorma.adb, g-byorma.ads, + a-elchha.adb, a-elchha.ads, g-speche.adb, g-speche.ads, s-casuti.adb, + s-assert.adb, s-casuti.ads, s-assert.ads, a-clrefi.adb, a-clrefi.ads, + s-conca3.adb, s-conca3.ads, a-ioexce.ads: Implement pragma + Compiler_Unit_Warning, change Compiler_Unit everywhere to + Compiler_Unit_Warning. + +2014-02-25 Sergey Rybin + + * sem_prag.adb (Analyze_Depends_In_Decl_Part): Do not normalize + in ASIS mode aggregates that are used as aspect definitions. + +2014-02-25 Robert Dewar + + * exp_ch7.adb, sem_util.adb, sem_util.ads, exp_ch6.adb: Minor + reformatting. + +2014-02-25 Ed Schonberg + + * freeze.adb (Freeze_Entity): If the return type of a function + is a limited view, and the non-limited view has not been seen yet, + defer freezing to some later point. + +2014-02-25 Robert Dewar + + * sem_ch3.adb: Minor reformatting. + +2014-02-25 Robert Dewar + + * s-excdeb.ads, s-except.ads, s-exctab.adb, s-exctab.ads, s-finmas.ads, + s-htable.adb, s-htable.ads, s-imenne.adb, s-imenne.ads, s-imgenu.adb, + s-imgenu.ads, s-mastop.adb, s-mastop.ads, s-memory-vms_64.adb, + s-memory-vms_64.ads, s-memory.adb, s-memory.ads, s-os_lib.adb, + s-os_lib.ads, s-parame.adb, s-parame.ads, s-purexc.ads, s-restri.adb, + s-restri.ads, s-rident.ads, s-secsta.adb, s-secsta.ads, s-soflin.adb, + s-soflin.ads, s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads, + s-sopco5.adb, s-sopco5.ads, s-spsufi.ads, s-stache.adb, s-stache.ads, + s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads, s-strcom.adb, + s-strcom.ads, s-strhas.adb, s-string.adb, s-string.ads, s-strops.adb, + s-strops.ads, s-ststop.adb, s-ststop.ads, s-traceb.adb, s-traceb.ads, + s-traent.adb, s-traent.ads, s-unstyp.ads, s-utf_32.adb, s-utf_32.ads, + s-wchcnv.adb, s-wchcnv.ads, s-wchcon.adb, s-wchcon.ads, s-wchjis.adb, + s-wchjis.ads, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_prag.adb, + snames.ads-tmpl: Change Compiler_Unit everywhere to + Compiler_Unit_Warning. + +2014-02-25 Hristian Kirtchev + + * exp_ch6.adb (Add_Or_Save_Precondition): New routine. + (Collect_Body_Postconditions_In_Decls): New routine. + (Collect_Body_Postconditions_Of_Kind): Factor out code. Handle + postcondition aspects or pragmas that appear on a subprogram + body stub. + (Collect_Spec_Preconditions): Factor out code. Handle + precondition aspects or pragmas that appear on a subprogram + body stub. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The analysis of + aspects that apply to a subprogram body stub is no longer delayed, + the aspects are analyzed on the spot. + (SPARK_Aspect_Error): + Aspects that apply to a subprogram declaration cannot appear in + a subunit. + * sem_ch10.adb Remove with and use clause for Sem_Ch13. + (Analyze_Proper_Body): Add local variable Comp_Unit. Unum + is now a local variable. Code cleanup. Analysis related to + the aspects of a subprogram body stub is now carried out by + Analyze_Subprogram_Body_Helper. Do not propagate the aspects + and/or pragmas of a subprogram body stub to the proper body + as this is no longer needed. Do not analyze the aspects of a + subprogram stub when the corresponding source unit is missing. + (Analyze_Protected_Body_Stub): Flag the illegal use of aspects + on a stub. + (Analyze_Task_Body_Stub): Flag the illegal use of + aspects on a stub. + (Optional_Subunit): Add local variable Unum. + * sem_ch13.adb (Insert_Delayed_Pragma): Do not analyze a generated + pragma when it applies to a subprogram body stub. + * sem_prag.adb (Analyze_Pragma): Pragmas Contract_Cases, + Depends and Global can now apply to a subprogram body stub as + long as it acts as its own spec. + (Analyze_Refined_Pragma): + Code reformatting. Refinement pragmas cannot apply to a subunit. + +2014-02-25 Hristian Kirtchev + + * einfo.ads Update the usage of flag + Uses_Sec_Stack. Uses_Sec_Stack now applies to E_Loop entities. + * exp_ch5.adb (Expand_Iterator_Loop): The temporary for a cursor + now starts with the letter 'C'. This makes reading expanded + code easier. + * exp_ch7.adb (Establish_Transient_Scope): Add local variable + Iter_Loop. Signal that an Ada 2012 iterator loop requires + secondary stack management when creating a transient scope for + an element reference. + * exp_util.adb (Process_Statements_For_Controlled_Objects): + When wrapping the statements of a loop, pass the E_Loop entity + to the wrapping machinery. + (Wrap_Statements_In_Block): Add + formal parameter Scop along with comment on usage. Add local + variables Block_Id, Block_Nod and Iter_Loop. Mark the generated + block as requiring secondary stack management when the block is + created inside an Ada 2012 iterator loop. This ensures that any + reference objects are reclaimed on each iteration of the loop. + * sem_ch5.adb (Analyze_Loop_Statement): Mark the generated block + tasked with the handling of container iterators as requiring + secondary stack management. This ensures that iterators are + reclaimed when the loop terminates or is exited in any fashion. + * sem_util.adb (Add_Block_Identifier): New routine. + (Find_Enclosing_Iterator_Loop): New routine. + * sem_util.ads (Add_Block_Identifier): New routine. + (Find_Enclosing_Iterator_Loop): New routine. + +2014-02-25 Robert Dewar + + * sinfo.ads: Minor reformatting. + +2014-02-25 Tristan Gingold + + * s-expllu.ads, s-expuns.ads, s-expmod.ads: Minor comment fix. + +2014-02-25 Pascal Obry + + * sinput-l.adb, osint.adb, osint.ads: Add Prep_Suffix to factorize code. + +2014-02-25 Tristan Gingold + + * sem_ch10.adb: Minor comment fix. + +2014-02-25 Bob Duff + + * s-tasdeb.adb: Misc cleanup of this package, + including printing addresses in hexadecimal. + (Write): Fix minor bug when taking 'Address of an empty string. + +2014-02-25 Ed Schonberg + + * sem_prag.adb (Analyze_Part_Of): Reject state refinement in a + public child unit when it does not refer to the abstract state + of a public ancestor. + +2014-02-25 Yannick Moy + + * sem_prag.adb (Analyze_Pragma/Pragma_Validity_Checks): Ignore pragma + Validity_Checks in GNATprove and CodePeer modes. + +2014-02-25 Pascal Obry + + * prj-attr.adb, projects.texi, snames.ads-tmpl: Add package Install's + Artifacts attribute. + +2014-02-25 Yannick Moy + + * sem_prag.adb: Minor reformatting to get consistent messages. + +2014-02-25 Robert Dewar + + * checks.adb: Minor reformatting. + * sinfo.ads (Do_Range_Check): Document that this flag is never + passed to the back end. + +2014-02-25 Yannick Moy + + * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem_attr.adb, + sem_ch6.adb: Remove useless references to SPARK RM in error messages. + +2014-02-25 Hristian Kirtchev + + * sem_res.adb (Appears_In_Check): New routine. + (Resolve_Entity_Name): Remove local variables Prev and + Usage_OK. Par is now a constant. Remove the parent chain traversal + as the placement of a volatile object with enabled property + Async_Writers and/or Effective_Reads must appear immediately + within a legal construct. + +2014-02-25 Hristian Kirtchev + + * checks.adb (Apply_Selected_Range_Checks): + Alphabetize local constants and variables. Add comments. + Always insert a range check that requires runtime evaluation into + the tree. + +2014-02-25 Robert Dewar + + * sem_attr.adb, sem_ch6.adb, par-ch3.adb: Minor reformatting. + +2014-02-25 Bob Duff + + * s-tassta.adb (Finalize_Global_Tasks): Limit the number of loop + iterations while waiting for independent tasks to terminate; + if an independent task does not terminate, we do not want to + hang here. In that case, the thread will be terminated when the + process exits. + * s-taprop-linux.adb (Abort_Task): Fix Assert to allow for ESRCH. + +2014-02-25 Ed Schonberg + + * sem_prag.adb (Check_SPARK_Aspect_For_ASIS): New subprogram, + used to perform pre-analysis of the expression for SPARK + aspects that have a non-standard syntax, such as GLobal and + Initializes. The procedure applies to the original expression + in an aspect specification, prior to the analysis of the + corresponding pragma, in order to provide semantic information + for ASIS navigation purposes. + (Analyze_Global_In_Decl_List, Analyze_Initializes_In_Decl_Part): + Call new subprogram. + +2014-02-25 Yannick Moy + + * sem_prag.adb: Remove obsolete reference to SPARK RM in error message. + +2014-02-25 Doug Rupp + + * init.c (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Enable for ARM. + (__gnat_adjust_context_for_raise): Bump the PC by 2. + +2014-02-25 Ed Schonberg + + * par-ch3.adb (P_Basic_Declarative_Items): In the case of a + misplaced IS, add a statement sequence to improper body only if + one has not been parsed already. + +2014-02-25 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case 'Update): Check for + mismatch when multidimensional array is updated with a single + index. + +2014-02-25 Yannick Moy + + * sem_ch3.adb, sem_ch5.adb, sem_prag.adb, sem_attr.adb, errout.ads, + sem_ch6.adb: Mark most references to SPARK RM in error messages + for removal. + +2014-02-24 Ed Schonberg + + * par-ch3.adb (P_Basic_Declarative_Items): If an improper body + appears in a list of basic declarations, complete the tree with + an empty statement list, to prevent cascaded errors and crashes + if semantic analysis is attempted. + +2014-02-24 Thomas Quinot + + * g-sercom-mingw.adb (Open): Fix incorrect test for error return + value. + * erroutc.adb: Minor reformatting. + +2014-02-24 Hristian Kirtchev + + * sem_prag.adb (Check_Clause_Syntax): Account + for a solitary input item in a dependency list. + +2014-02-24 Yannick Moy + + * gnat1drv.adb (Adjust_Global_Switches): Do not + use validity checks at all in GNATprove_Mode. + +2014-02-24 Robert Dewar + + * g-sercom-mingw.adb, g-sercom-linux.adb, sem_prag.adb, freeze.adb, + atree.adb, atree.ads: Minor reformatting. + +2014-02-24 Hristian Kirtchev + + * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Do not enforce + global and dependence refinement when SPARK_Mode is off. + * sem_ch7.adb (Analyze_Package_Body_Contract): Do not enforce + state refinement when SPARK_Mode is off. + * sem_ch13.adb (Analyze_Aspect_Specifications): Add local + variable Decl. Insert the generated pragma for Refined_State + after a potential pragma SPARK_Mode. + * sem_prag.adb (Analyze_Depends_In_Decl_Part): Add local + constant Deps. Remove local variable Expr. Check the syntax + of pragma Depends when SPARK_Mode is off. Factor out the + processing for extra parenthesis around individual clauses. + (Analyze_Global_In_Decl_List): Items is now a constant. Check + the syntax of pragma Global when SPARK_Mode is off. + (Analyze_Initializes_In_Decl_Part): Check the syntax of pragma + Initializes when SPARK_Mode is off. + (Analyze_Part_Of): Check + the syntax of the encapsulating state when SPARK_Mode is off. + (Analyze_Pragma): Check the syntax of pragma Abstract_State when + SPARK_Mode is off. Move the declaration order check with respect + to pragma Initializes to the end of the processing. Do not verify + the declaration order for pragma Initial_Condition when SPARK_Mode + is off. Do not complain about a useless package refinement when + SPARK_Mode is off. + (Analyze_Refined_Depends_In_Decl_Part): Refs + is now a constant. Check the syntax of pragma Refined_Depends + when SPARK_Mode is off. + (Analyze_Refined_Global_In_Decl_Part): + Check the syntax of pragma Refined_Global when SPARK_Mode is off. + (Analyze_Refined_State_In_Decl_Part): Check the syntax of pragma + Refined_State when SPARK_Mode is off. + (Check_Dependence_List_Syntax): New routine. + (Check_Global_List_Syntax): New routine. + (Check_Initialization_List_Syntax): New routine. + (Check_Item_Syntax): New routine. + (Check_State_Declaration_Syntax): New routine. + (Check_Refinement_List_Syntax): New routine. + (Has_Extra_Parentheses): Moved to the top level of Sem_Prag. + +2014-02-24 Robert Dewar + + * a-tags.adb, s-os_lib.adb: Minor reformatting. + +2014-02-24 Thomas Quinot + + * g-sercom-mingw.adb, g-sercom-linux.adb (Raise_Error): Include + strerror message, not just numeric errno value. + +2014-02-24 Doug Rupp + + * raise-gcc.c (exception_class_eq): Make endian neutral. + +2014-02-24 Ed Schonberg + + * atree.ads, atree,adb (Copy_Separate_Tree): Remove Syntax_Only + flag, and reset Etype and Analyzed attributes unconditionally + when copying a tree that may be partly analyzed. + * freeze.adb: Change calls to Copy_Separate_Tree accordingly. + * sem_ch6.adb (Check_Inline_Pragma): If the Inline pragma appears + within a subprogram body and applies to it, remove it from the + body before making a copy of it, to prevent spurious errors when + analyzing the copied body. + +2014-02-24 Thomas Quinot + + * s-os_lib.adb (Errno_Message): Do not depend on Integer'Image. + * s-oscons-tmplt.c: On VxWorks, include adaint.h only after + vxWorks.h has been included. Also ensure that file attributes + related definitions are output even in cases where socket support + is not enabled. + * a-tags.adb: Code clean up. + * Make-generated.in (OSCONS_CPP, OSCONS_EXTRACT): Use -iquote + instead of -I to add the main ada source directory to the header + search path, in order to avoid conflict between our own "types.h" + and VxWork's . + +2014-02-24 Robert Dewar + + * atree.ads, atree.adb (Copy_Separate_Tree): Add Syntax_Only parameter. + * debug.adb: Remove documentation of -gnatd.X, no longer used. + * freeze.adb (Wrap_Imported_Subprogram): Fixed and activated. + +2014-02-24 Bob Duff + + * gnat_ugn.texi: Improve documentation of gnatpp. + +2014-02-24 Thomas Quinot + + * g-stheme.adb, g-socthi-vms.adb, g-socthi-vms.ads, + g-socthi-vxworks.adb, g-socthi-vxworks.ads, g-stseme.adb, + g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi.adb, + g-socthi.ads, g-socket.adb (Host_Error_Message): Return a string, not + a chars_ptr, because on Windows this is a renaming of + Socket_Error_Message. + +2014-02-24 Robert Dewar + + * a-direct.adb, sem_ch5.adb, a-cfdlli.adb, a-cfhase.adb, a-tags.adb, + s-filatt.ads, a-cforma.adb, sem_ch6.adb, g-socthi-mingw.adb, + a-cfhama.adb, a-cforse.adb, a-cofove.adb: Minor reformatting and code + reorganization. + +2014-02-24 Thomas Quinot + + * Make-generated.in (OSCONS_CPP, OSCONS_EXTRACT): Make sure + that the source directory containing s-oscons-tmplt.c is on the + include path, so that all internal header files are available. + +2014-02-24 Ed Schonberg + + * sem_ch5.adb (Analyze_Loop_Parameter_Specification): If the + domain of iteration is an attribute reference 'Old, this is an + Ada 2012 iterator and the loop must be rewritten as such. + +2014-02-24 Thomas Quinot + + * s-fileio.adb (Errno_Message): Remove, use shared version from + s-os_lib instead. + * s-crtrun.ads, Makefile.rtl: Remove now unused unit. + * g-stseme (Socket_Error_Message): Reimplement in terms of new + s-os_lib function. + * g-socthi.ads, g-socthi.adb: Change profile of + Socket_Error_Message to return String to allow the above. + * g-socket.adb, g-socthi-mingw.adb, g-socthi-mingw.ads, + * g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb, + * g-socthi-vxworks.ads: Update to account for the above profile + change. + * a-tags.adb: Use strlen builtin binding provided by s-crtl. + * s-crtl.ads (strncpy): New procedure. + * s-os_lib.adb (Copy_Attributes): Import just once (strncpy): + Use import from s-crtl. + * a-envvar.adb, osint.adb: Use imports of C runtime functions + from s-crtl instead of re-importing locally. + +2014-02-24 Hristian Kirtchev + + * sem_prag.adb (Analyze_Global_Item): Emit the + variable related checks concerning volatile objects only when + SPARK_Mode is on. + +2014-02-24 Robert Dewar + + * sem_ch5.adb (Analyze_Iterator_Specification): use + Error_Msg_Ada_2012_Feature. + +2014-02-24 Jose Ruiz + + * s-rident.ads (Profile_Info): For Ravenscar, the restrictions + No_Local_Timing_Events and No_Specific_Termination_Handlers + must be set, according to the Ravenscar profile definition + in D.13(6/3). + +2014-02-24 Ed Schonberg + + * sem_ch6.adb (Analyze_Expression_Function): If this is a + completion, freeze return type and its designated type if needed. + +2014-02-24 Thomas Quinot + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case + 'Address): When moving initialization statements to a freeze + entity, keep them under a single node (i.e. do not unwrap + expressions with actions), and set the Initialization_Statements + attribute again so that processing of a later pragma Import can + still remove them. + +2014-02-24 Claire Dross + + * a-cfdlli.adb, a-cfdlli.ads, a-cfhama.adb, a-cfhama.ads, + a-cfhase.adb, a-cfhase.ads, a-cforma.adb, a-cforma.ads, + a-cforse.adb, a-cforse.ads, a-cofove.adb, a-cofove.ads: Rename + Left/Right to First_To_Previous/Current_To_Last. + +2014-02-24 Thomas Quinot + + * adaint.h (struct file_attributes): New component "error" + (__gnat_error_attributes): Accessor for the above. + * adaint.c (__gnat_error_attributes): New subprogram + (__gnat_stat): Fix returned value (expect errno value) + (__gnat_stat_to_attr): Add management of error component (set to + stat errno value, except for missing files where it is set to 0, + and exists is set to 0). + * osint.ads (File_Attributes_Size): Update per change above, + also clarify documentation. + * s-filatt.ads: New file, binding to file attributes related + functions. + * Makefile.rtl (s-filatt): New runtime unit. + * s-crtl.ads (strlen): Expose binding to GCC builtin (falls back + to library function if not available on target). + * s-os_lib.ads, s-os_lib.adb (Errno_Message): New subprogram. + * s-oscons-tmplt.c (SIZEOF_struct_file_attributes, + SIZEOF_struct_dirent_alloc): New constants. + * Make-generated.in (s-oscons.ads): Now requires adaint.h. + * a-direct.adb (Fetch_Next_Entry): Fix incorrect buffer sizes. + Perform appropriate error checking if stat fails (do not just + ignore existing files if stat fails) + * gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Update + dependencies. + +2014-02-24 Hristian Kirtchev + + * sem_prag.adb (Analyze_Global_Item): Move the check concerning + the use of volatile objects as global items in a function to + the variable related checks section. + * sem_util.adb (Async_Readers_Enabled): Directly call + Has_Enabled_Property. + (Async_Writers_Enabled): Directly call Has_Enabled_Property. + (Effective_Reads_Enabled): Directly call Has_Enabled_Property. + (Effective_Writes_Enabled): Directly call Has_Enabled_Property. + (Has_Enabled_Property): Rename formal parameter State_Id to Item_Id. + Update the comment on usage. State_Has_Enabled_Property how handles + the original logic of the routine. Add processing for variables. + (State_Has_Enabled_Property): New routine. + (Variable_Has_Enabled_Property): New routine. + +2014-02-24 Robert Dewar + + * sinfo.ads, sem_ch12.adb, sem_res.adb, sem_ch4.adb, par-ch12.adb: + Minor reformatting. + * atree.ads, atree.adb (Node35): New function. + (Set_Node35): New procedure. + * debug.adb: Define new debug flag -gnatd.X. + * einfo.ads, einfo.adb (Import_Pragma): New field. + * freeze.adb (Wrap_Imported_Procedure): New procedure (not + really active yet, has to be activated with -gnatd.X. + * sem_prag.adb (Set_Imported): Set new Import_Pragma + field (Set_Imported): Don't set Is_Public (see + Freeze.Wrap_Imported_Subprogram) + * par-ch3.adb (P_Component_List): Handle unexpected null component. + +2014-02-24 Yannick Moy + + * sem_ch3.adb: Correct reference to SPARK RM in error messages. + * gnat_rm.texi: Correct documentation of attribute Update. + +2014-02-24 Ed Schonberg + + * sem_ch5.adb (Analyze_Iterator_Specification): Reject container + iterator in older versions of Ada. + +2014-02-24 Gary Dismukes + + * sem_ch5.adb, sem_aux.ads, sem_ch12.adb, gnat_ugn.texi, par.adb, + par-ch12.adb: Change spelling 'parametrization' to 'parameterization'. + +2014-02-24 Ed Schonberg + + * sinfo.ads, sinfo.adb: New attribute Generalized_Indexing, for + indexed_components that are instances of Ada 2012 container + indexing operations. Analysis and resolution of such nodes + is performed on the attribute, and the original source is + preserved for ASIS operations. If expansion is enabled, the + indexed component is replaced by the value of this attribute, + which is in a call to an Indexing aspect, in most case wrapped + in a dereference operation. + * sem_ch4.adb (Analyze_Indexed_Component): Create + Generalized_Indexing attribute when appropriate. + (Analyze_Call): If prefix is not overloadable and has an indexing + aspect, transform into an indexed component so it can be analyzed + as a potential container indexing. + (Analyze_Expression): If node is an indexed component with a + Generalized_ Indexing, do not re-analyze. + * sem_res.adb (Resolve_Generalized_Indexing): Complete resolution + of an indexed_component that has been transformed into a container + indexing operation. + (Resolve_Indexed_Component): Call the above when required. + (Resolve): Do not insert an explicit dereference operation on + an indexed_component whose type has an implicit dereference: + the operation is inserted when resolving the related + Generalized_Indexing. + +2014-02-24 Olivier Ramonat + + * gnat_rm.texi, gnat_ugn.texi: Replace Ada Compiler by Ada Development + Environment. + +2014-02-24 Hristian Kirtchev + + * sem_prag.adb (Check_Constituent_Usage): Remove leading spaces in + error messages. + (Inconsistent_Mode_Error): Remove leading spaces in error messages. + Merge the expected and available mode errors. + (Report_Unused_Constituents): Remove leading spaces in error messages. + (Report_Unused_States): Remove leading spaces in error messages. + +2014-02-24 Thomas Quinot + + * par_sco.adb (Traverse_One): Refine categorization of statement + SCOs. + +2014-02-24 Robert Dewar + + * aspects.ads, aspects.adb: Remove aspects Ada_2005 and Ada_2012, + Pure_05, Pure_12 and Preelaborate_05. + * gnat_rm.texi: Update accordingly. + * sem_prag.adb: Document one argument form of Ada_05/Ada_2005 + pragmas Document one argument form of Ada_12/Ada_2012 pragmas + Recognize one argument form of these pragmas only in GNAT mode + (-gnatg). + +2014-02-24 Ed Schonberg + + * s-dimmks.ads: Replace symbol for temperature, previously the + Greek letter Theta, by the ASCII @ sign. + * s-diflio.ads: ditto. + +2014-02-24 Robert Dewar + + * exp_ch4.adb: Minor code reorganization (use OR for boolean + variables). + * sem_ch3.adb, sem_prag.adb, freeze.adb: Minor reformatting. + +2014-02-24 Ben Brosgol + + * gnat_ugn.texi, projects.texi: Added the necessary conditionalization + so that references to gnatmem and ASIS tools do not appear in the FSF + edition of the GNAT User's Guide. + +2014-02-24 Yannick Moy + + * freeze.adb (Freeze_Entity): Do not issue warning + for pre/post being ignored on imported subprogram in GNATprove + mode. + +2014-02-24 Robert Dewar + + * exp_ch5.adb, sem_ch5.adb, sem_type.adb, sem_res.adb, sem_attr.adb, + stand.ads, sem_eval.adb: Minor reformatting. + +2014-02-24 Yannick Moy + + * sem_prag.adb: Minor rewording in error message. + +2014-02-24 Johannes Kanig + + * exp_util.adb (Expand_Subtype_From_Expr): Do not expand subtypes in + GNATprove_mode, gnat2why doesn't need nor use these types. + +2014-02-24 Gary Dismukes + + * exp_ch4.adb (Expand_N_Op_Expon): On the AAMP + target, in the case of signed integer exponentiation that uses a + run-time routine, always select the Exp_* versions, since overflow + checking is automatically done by AAMP arithmetic instructions. + +2014-02-24 Hristian Kirtchev + + * sem_ch13.adb (Analyze_Aspect_Specifications): + When the related context is a package instace, insert pragma + Abstract_State after all internally-generated renamings related + to the instance "header". + +2014-02-24 Ed Schonberg + + * sem_ch3.adb (Analyze_Declarations): Analyze Contract of abstract + subprograms. + * sem_disp.adb (Check_Dispatching_Context): A non-dispatching + call to an abstract subprogram is legal if it appears in a + pre/postcondition of another abstract operation. + +2014-02-24 Sergey Rybin + + * gnat_ugn.texi: Misc updates. + +2014-02-24 Hristian Kirtchev + + * exp_prag.adb (Expand_Old): Set the type of the generated temporary. + +2014-02-24 Gary Dismukes + + * layout.adb (Layout_Variant_Record): Instantiate + Generic_Check_Choices and call Check_Choices before calling + Build_Discr_Checking_Funcs, since we need Others_Discrete_Choices + set to prevent generating incorrect discriminant-checking + functions for 'others' variants (functions that unconditionally + return True rather than accounting for the values covered by the + 'others' choice). + * sem_eval.ads (Subtypes_Statically_Compatible): Add formal + Formal_Derived_Matching. + (Subtypes_Statically_Match): Add formal Formal_Derived_Matching. + * sem_eval.adb (Subtypes_Statically_Compatible): Pass new + Formal_Derived_Matching formal to Subtypes_Statically_Match. + (Subtypes_Statically_Match): Suppress the Object_Size matching + test in the case where Formal_Derived_Matching is True. + * sem_ch12.adb (Validate_Derived_Type_Instance): Pass + True for Formal_Derived_Matching_Formal on the call to + Subtypes_Statically_Compatible. + +2014-02-23 Eric Botcazou + + * gcc-interface/Make-lang.in (ADA_TOOLS_FLAGS_TO_PASS): Robustify. + +2014-02-23 Eric Botcazou + + * gcc-interface/utils2.c (build_simple_component_ref): Fix formatting. + Look through a conversion between original and packable version to get + the base object. + (build_component_ref): Rework comment and fix formatting. + +2014-02-20 Sergey Rybin + + * gnat_ugn.texi, vms_data.ads (gnatelim): Add description of + project-specific options. + +2014-02-20 Ed Schonberg + + * a-cbdlli.adb (Insert): When capacity exceeded, raise Capacity_Error, + not Constraint_Error. + * a-cbmutr.adb (Append_Child, Insert_Child, Prepend_Child): Ditto. + * sem_ch5.adb: Code clean up. + +2014-02-20 Hristian Kirtchev + + * sem_prag.adb (Usage_Error): Remove local + constant Typ. Remove the specialized diagnostics for unconstrained + or tagged items as those are not part of the explicit input set + of the related subprogram and should not be flagged. + +2014-02-20 Ed Schonberg + + * sem_attr.adb: Add guard to preserve all errors. + +2014-02-20 Vincent Celier + + * switch-m.adb (Normalize_Compiler_Switches): Take into account + switches that are recorded in ALI files: -gnateA, -gnateE, + -gnateF, -gnateinn, -gnateu, -gnateV and -gnateY. + +2014-02-20 Ed Schonberg + + * sem_ch5.adb (Analyze_Iterator_Specification): Check legality + of an element iterator form over a formal container with an + Iterable aspect. + * exp_ch5.adb (Build_Formal_Container_Iteration): Utility + to create declaration and loop statements for both forms of + container iterators. + (Expand_Formal_Container_Element_Iterator): New procedure + to handle loops of the form "for E of C" when C is a formal + container. + (Expand_Formal_Container_Iterator): Code cleanup. + +2014-02-20 Hristian Kirtchev + + * sem_prag.adb (Add_Item_To_Name_Buffer): New routine. + (Analyze_Contract_Case): Remove the use of + "may". Replace "aspect Contract_Cases" to avoid categorization + of aspect vs pragma. + (Analyze_External_Property_In_Decl_Part): Remove the use of "formal". + (Analyze_Global_Item): Remove + the use of "formal", specify the subprogram. Split the + error message about a state with visible refinement into + two. Remove the use of "global" from "volatile global item". + (Analyze_Initialization_Item): Ensure that the SPARK RM reference + is on one line. + (Analyze_Input_Output): Update the call to + Check_Mode. Specify the duplicated item. Reword the error + message concerning an input of a null output list. Use "\" + for error message continuation. + (Analyze_Part_Of): Remove + the use of "may". Use "\" for error message continuation. + (Analyze_Refined_Depends_In_Decl_Part): Update the error + message concerning a useless refinement to match the format + of Refined_Global. + (Analyze_Refined_Global_In_Decl_Part): Reword the error message + concerning a useless refinement. + (Analyze_Refinement_Clause): Use "\" for error message continuation. + (Check_Constituent_Usage): Use "\" for error message continuation. + (Check_Dependency_Clause): Use "\" for error message continuation. + (Check_Matching_Constituent): Use "\" for error message continuation. + (Check_Missing_Part_Of): Use "\" for error message continuation. + (Check_Mode): Renamed to + Check_Role. Update the comment on usage. Redo the error reporting + to use Role_Error. + (Check_Mode_Restriction_In_Enclosing_Context): Use "\" for error + message continuation. + (Find_Mode): Renamed to Find_Role. Update the parameter profile along + with comment on usage. Update all occurrences of Is_Input and Is_Output. + (Inconsistent_Mode_Error): Use "\" for error message continuation. + (Input_Match): Use "\" for error message continuation. + (Role_Error): New routine. + (Set_Convention_From_Pragma): Use "\" for error message continuation. + (Usage_Error): Add local variable Error_Msg. Build specialized error + message showcasing the offending item kind. Redo the diagnostics for + unconstrained types. + +2014-02-20 Ed Schonberg + + * exp_util.adb (Is_Iterated_Container): Use high-level primitives + to determine whether a type is a container type, rather than + examining only its type declaration, so that subtypes and derived + types are handled properly. + +2014-02-20 Sergey Rybin + + * gnat_ugn.texi: gnatmetric: add description of project-specific + options. + +2014-02-20 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case 'Update): Verify that + all choices in an association for a record type have the same + type, as is done for record aggregates. + +2014-02-20 Robert Dewar + + * a-cborma.adb, a-cbhama.adb, a-cbdlli.adb, a-cbmutr.adb: Use pragma + Unmodified rather than Warnings (Off). Make comments + uniform in the four affected units. + +2014-02-20 Robert Dewar + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case + Object_Size): For non-scalar types allow any value that is a + multiple of 8. + * gnat_rm.texi: Document Object_Size for composites more clearly. + +2014-02-20 Yannick Moy + + * sem_util.ads, sem_util.adb (Default_Initialization): Remove function. + +2014-02-20 Ed Schonberg + + * stand.ads: Raise_Type: new predefined entity, used as the type + of a Raise_Expression prior to resolution. + * cstand.adb: Build entity for Raise_Type. + * sem_ch11.adb (Analyze_Raise_Expression): use Raise_Type as the + initial type of the node. + * sem_type.adb (Covers): Raise_Type is compatible with all + other types. + * sem_res.adb (Resolve): Remove special handling of Any_Type on + Raise_Expression nodes. + (Resolve_Raise_Expression): Signal ambiguity if the type of the + context is still Raise_Type. + +2014-02-20 Robert Dewar + + * sem_ch12.adb (Validate_Access_Type_Instance): Add message if + mismatching predicates. + * sem_ch6.adb (Check_Conformance): Give better messages on + predicate mismatch. + * sem_eval.adb (Predicates_Match): Move to spec. + * sem_eval.ads (Predicates_Match): Moved here from body. + +2014-02-20 Ed Schonberg + + * a-cbmutr.adb: Use default value in Insert_Child. + +2014-02-20 Vincent Celier + + * gnatcmd.adb, make.adb, prj-makr.adb, clean.adb: Call + Stringt.Initialize in all project aware tools. + +2014-02-20 Doug Rupp + + * gnat_ugn.texi: Document gnatbind -X option. + * vms_data.ads: Minor warnings documentation reformatting. + +2014-02-20 Ed Schonberg + + * exp_ch3.adb (Expand_Freeze_Array_Type): Only create invariant + procedure for a base type. + +2014-02-20 Robert Dewar + + * sem_ch4.adb (Analyze_Case_Expression): Get type from first + expression with type info. + * sem_ch13.adb: Minor reformatting. + * sem_eval.adb (Subtypes_Statically_Match): Make sure we return + False if predicates do not match on the two types. + +2014-02-20 Arnaud Charlet + + * sem_prag.adb (Analyze_Pragma [pragma Attach_Handler]): + In Relaxed_RM_Semantics mode, allow any static integer value, + for compatibility with other compilers. + +2014-02-20 Vincent Celier + + * errutil.adb (Initialize): Properly initialize entry in table + Warnings when warnings are suppressed. + +2014-02-20 Robert Dewar + + * s-os_lib.ads: Add warning about non-portability of Rename_File. + * sem_util.ads, sem_util.adb (Is_Junk_Name): New function. + * sem_warn.adb: Use Is_Junk_Name to suppress some warnings. + * gnat_ugn.texi: Document no warnings on junk variable names. + * layout.adb: Minor code reorganization (use Ekind_In). + * stringt.adb: Move initialization of Null_String_Id to Initialize + routine. + +2014-02-20 Ed Schonberg + + * sem_ch13.adb: Initialize optional Element_Id. + +2014-02-20 Robert Dewar + + * s-os_lib.ads (Rename_File): Minor commment addition. + +2014-02-20 Thomas Quinot + + * einfo.ads: Minor reformatting. + +2014-02-20 Hristian Kirtchev + + * aspects.adb (Exchange_Aspects): New routine. + * aspects.ads (Exchange_Aspects): New routine. + * atree.adb (Rewrite): Do not check whether the save node has + aspects as it never will, instead check the node about to be clobbered. + * einfo.adb (Write_Field25_Name): Abstract_States can appear in + entities of generic packages. + * sem_ch6.adb (Analyze_Expression_Function): Fix the parent + pointer of an aspect specification list after rewriting takes place. + * sem_ch7.adb (Analyze_Package_Body_Helper): Swap the aspect + specifications of the generic template and the copy used for analysis. + * sem_ch12.adb (Analyze_Generic_Package_Declaration): Swap + the aspect specifications of the generic template and the + copy used for analysis. + (Analyze_Package_Instantiation): Propagate the aspect specifications + from the generic template to the instantiation. + (Build_Instance_Compilation_Unit_Nodes): Propagate the aspect + specifications from the generic template to the instantiation. + * sem_ch13.adb (Analyze_Aspect_Specifications): Handle aspects + Abstract_State, Initializes and Initial_Condition when they + apply to a package instantiation. + +2014-02-20 Robert Dewar + + * stringt.adb: Add call to Initialize in package initialization. + +2014-02-20 Robert Dewar + + * a-crbtgk.adb, a-cihama.adb, a-coinve.adb, a-ciorse.adb, a-crbtgo.adb, + a-cidlli.adb, a-cimutr.adb, a-cihase.adb, a-cohama.adb, a-coorse.adb, + a-chtgke.adb, a-chtgop.adb, a-comutr.adb, a-ciorma.adb, a-cobove.adb, + a-convec.adb, a-cohase.adb, a-chtgbk.adb, a-chtgbo.adb: Minor + reformatting. + +2014-02-20 Bob Duff + + * s-os_lib.ads: Minor: Remove incorrect comment. + +2014-02-20 Robert Dewar + + * sem_elab.adb (Check_Elab_Assign): Clearer warning message. + +2014-02-20 Ed Schonberg + + * a-cborma.adb (Assign): When creating a node without a specified + element, insert an uninitialized element in the map, because + the instance may provide an element type with a default + initialization, e.g a scalar with a Default_Value aspect. + * a-cbhama.adb (Assign_Key): Remove useless Allocate procedure. + (Insert): In the version without explicit element, provide an + uninitialized element, as above. + * a-cbdlli.adb (Append): In the version without explicit element, + provide an uninitalized element, as above. + (Allocate): Remove unused version. + +2014-02-20 Robert Dewar + + * sem_elab.adb: Minor code reorganization (use Nkind_In). + * stringt.adb: Remove temporary pragma Warnings (Off). + * stringt.ads: Add pragma Elaborate_Body to ensure initialization + of Null_String_Id. + +2014-02-20 Matthew Heaney + + * a-chtgbk.adb (Replace): Use correct offset when calculating bucket + index. + +2014-02-20 Ed Schonberg + + * sem_ch5.adb (Analyze_Iterator_Specification): Initialize + properly the cursor type for subsequent volatile testing in SPARK + mode, when domain is a formal container with an Iterabe aspect. + +2014-02-20 Robert Dewar + + * errout.adb (Set_Warnings_Mode_Off): Add Reason argument. + (Set_Specific_Warning_Off): Add Reason argument. + * errout.ads (Set_Warnings_Mode_Off): Add Reason argument. + (Set_Specific_Warning_Off): Add Reason argument. + * erroutc.adb (Warnings_Entry): Add Reason field + (Specific_Warning_Entry): Add Reason field. + (Warnings_Suppressed): return String_Id for Reason. + (Warning_Specifically_Suppressed): return String_Id for Reason. + * erroutc.ads (Warnings_Entry): Add Reason field. + (Specific_Warning_Entry): Add Reason field. + (Set_Specific_Warning_Off): Add Reason argument. + (Set_Warnings_Mode_Off): Add Reason argument. + (Warnings_Suppressed): return String_Id for Reason. + (Warning_Specifically_Suppressed): return String_Id for Reason. + * errutil.adb (Warnings_Suppressed): returns String_Id for Reason + (Warning_Specifically_Suppressed): returns String_Id for Reason + * gnat_rm.texi: Document that Warning parameter is string literal + or a concatenation of string literals. + * par-prag.adb: New handling for Reason argument. + * sem_prag.adb (Analyze_Pragma, case Warning): New handling + for Reason argument. + * sem_util.ads, sem_util.adb (Get_Reason_String): New procedure. + * sem_warn.ads (Warnings_Off_Entry): Add reason field. + * stringt.adb: Set Null_String_Id. + * stringt.ads (Null_String_Id): New constant. + +2014-02-20 Robert Dewar + + * einfo.ads: Minor comment addition: Etype of package is + Standard_Void_Type. + * checks.adb, exp_aggr.adb, exp_atag.adb, exp_attr.adb, exp_ch13.adb, + exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, + exp_ch7.adb, exp_ch9.adb, exp_dbug.adb, exp_disp.adb, exp_imgv.adb, + exp_intr.adb, exp_prag.adb, exp_sel.adb, exp_strm.adb, exp_util.adb, + freeze.adb, rtsfind.adb, sem_aggr.adb, sem_attr.adb, sem_ch10.adb, + sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, + sem_ch6.adb, sem_ch8.adb, sem_dim.adb, sem_prag.adb, sem_res.adb, + sem_util.adb, tbuild.adb, tbuild.ads: Remove New_Reference_To. + Replace all calls with calls to New_Occurrence_Of. + +2014-02-20 Robert Dewar + + * par-util.adb (Ignore, case of right paren): Make this a + serious error. + +2014-02-19 Robert Dewar + + * sem_ch5.adb, sem_prag.adb, sem_attr.adb: Minor reformatting. + * debug.adb: Remove -gnatd.X switch, no longer used. + * styleg.adb (Check_Then): Remove check of -gnatd.X, check is + now always made. + +2014-02-19 Bob Duff + + * g-socket.ads: Minor: Correct some comments. + +2014-02-19 Ed Schonberg + + * sem_ch5.adb: Inhibit iterator rewriting in ASIS mode. + +2014-02-19 Arnaud Charlet + + * sem_ch13.adb (Analyze_Aspect_Specifications): Do not generate + an error on out of range priorities if Relaxed_RM_Semantics. + * sem_prag.adb (Analyze_Pragma): Ditto. + +2014-02-19 Bob Duff + + * sem_attr.adb (Resolve_Attribute): Detect the case of F'Access + where F denotes the renaming of an enumeration literal, and + issue a specialized error message. + +2014-02-19 Matthew Heaney + + * a-chtgop.ads (Checked_Index): New operation. + (Next): Changed mode of hash table. + * a-chtgop.adb (Adjust, Delete_Node_Sans_Free): Detect tampering + (Generic_Read, Reserve_Capacity): Ditto. + (Generic_Equal): Detect tampering. + (Next): Changed mode of hash table, detect tampering. + * a-chtgke.ads (Checked_Index, Checked_Equivalent_Keys): New + operation. + (Find): Changed mode of hash table. + * a-chtgke.adb (Checked_Equivalent_Keys): New operation + (Delete_Key_Sans_Free, Generic_Conditional_Insert): Detect + tampering. + (Find): Changed mode of hash table, check for tampering. + (Generic_Replace_Element): Check for tampering. + * a-chtgbk.ads (Checked_Index, Checked_Equivalent_Keys): New operation. + * a-chtgbk.adb (Checked_Index, Checked_Equivalent_Keys): New + operation (Delete_Key_Sans_Free, Generic_Conditional_Insert): + Detect tampering. + (Find, Generic_Replace_Element): Check for tampering. + * a-chtgbo.ads (Checked_Index): New operation. + * a-chtgbo.adb (Checked_Index): New operation + (Delete_Node_Sans_Free, Generic_Equal): Detect tampering. + (Generic_Read, Next): Ditto. + * a-cohase.adb, a-cihase.adb (Is_In): Changed mode of hash + table (Difference, Intersection): Use variable view of + source, detect tampering (Find, Is_Subset, Overlap): Use + variable view of container (Symmetric_Difference, Union): + Detect tampering (Vet): Use Checked_Index to detect tampering + (Constant_Reference, Element, Find): Use variable view of + container. + (Update_Element_Preserving_Key): Detect tampering. + * a-cbhase.adb (Difference, Find, Is_In): Use variable view + of container. + (Is_Subset): Ditto. + (Equivalent_Sets, Overlap): Use Node's Next component. + (Vet): Use Checked_Index to detect tampering. + (Constant_Reference, Element, Find): Use variable view of container. + (Update_Element_Preserving_Key): Detect tampering. + * a-cohama.adb, a-cihama.adb, a-cbhama.adb (Constant_Reference, + Element, Find): Use variable view of container. + (Reference): Rename hash table component. + (Vet): Use Checked_Index to detect tampering. + +2014-02-19 Arnaud Charlet + + * adabkend.adb (Scan_Compiler_Arguments): Add missing handling + of -nostdinc. + +2014-02-19 Thomas Quinot + + * tbuild.adb (New_Occurrence_Of, New_Rerefence_To): Guard + against calls without Def_Id. + +2014-02-19 Claire Dross + + * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads, + a-cofove.ads: Add global annotations to subprograms. + +2014-02-19 Hristian Kirtchev + + * sem_prag.adb (Analyze_Initial_Condition_In_Decl_Part): Remove + constants Errors, Pack_Id and Pack_Init. Remove variable Vars. + Initial_Condition no longer requires the presence of pragma + Initialized. Do not try to diagnose whether all variables mentioned in + pragma Initializes also appear in Initial_Condition. + (Collect_Variables): Removed. + (Match_Variable): Removed. + (Match_Variables): Removed. + (Report_Unused_Variables): Removed. + +2014-02-19 Thomas Quinot + + * gnat_rm.texi (pragma Stream_Convert): Minor rewording. + +2014-02-19 Robert Dewar + + * sem_util.adb, sem_util.ads, prj-conf.adb, s-os_lib.adb: Minor + reformatting. + +2014-02-19 Vincent Celier + + * prj-part.adb (Parse_Single_Project): Use the fully resolved + project path, with all symbolic links resolved, to check if the + same project is imported with a different unresolved path. + * prj-tree.ads (Project_Name_And_Node): Component Canonical_Path + changed to Resolved_Path to reflect that all symbolic links + are resolved. + +2014-02-19 Ed Schonberg + + * sem_util.ads, sem_util.adb (Get_Cursor_Type): Moved to sem_util + from sem_ch13, for use elsewhere. + * sem_ch13.adb (Get_Cursor_Type): Moved to sem_util. + * sem_ch5.adb (Analyze_Iterator_Specification): Set properly the + cursor type on the loop variable when the iteration is over o + formal container. + +2014-02-19 Vincent Celier + + * prj-conf.adb (Add_Default_GNAT_Naming_Scheme): Add declaration + for an empty Target (Check_Target): Never fail when an empty + target is declared in the configuration project. + +2014-02-19 Ed Schonberg + + * sem_prag.adb (Check_Arg_Is_Local_Name): Argument is local if + the pragma comes fron a predicate aspect and the context is a + record declaration within the scope that declares the type. + +2014-02-19 Robert Dewar + + * gnat_rm.texi: Minor clarifications. + * expander.adb, sem_aggr.adb: Add comments. + +2014-02-19 Ed Schonberg + + * sem_prag.adb (Check_Arg_Is_Local_Name): For an aspect that + applies to a subprogram body, the name is the current scope, + rather than being declared in the current scope. + (Analyze_Pragma, case No_Return): Handle properly a No_Return + aspect applied to a subprogram body. + +2014-02-19 Ed Schonberg + + * sem_ch13.adb (Resolve_Iterable_Operation): Improve resolution + of overloaded subprograms, and fix bug in handling of primitive + operation Element. + +2014-02-19 Pascal Obry + + * s-os_lib.adb: Minor reformatting. + +2014-02-19 Yannick Moy + + * expander.adb (Expand): Do nothing inside generics. + * sem_aggr.adb (Aggregate_Constraint_Checks): Do nothing inside + generics. + +2014-02-19 Yannick Moy + + * exp_ch2.adb: Remove useless 'with' of unit Uintp. + +2014-02-19 Robert Dewar + + * sem_ch3.adb, style.adb, sem_prag.adb, sem_ch13.adb: Minor reformatting + * a-sequio.adb: Remove useless pragma Extensions_Allowed (no + longer needed). + +2014-02-19 Claire Dross + + * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, + a-cforse.ads, a-cofove.ads: Add Iterable aspect to formal containers. + +2014-02-19 Hristian Kirtchev + + * sem_ch3.adb (Analyze_Declarations): Analyze + a package contract at the end of the private declarations (if + applicable), otherwise analyze it and the end of the visible + declarations. + +2014-02-19 Ed Schonberg + + * style.adb (Missing_Overriding): If subprogram is an + instantiation, place warning on the instance node itself, + without mention of the original generic. Do not emit message + if explicit Ada version is older than the introduction of the + overriding indicator. + +2014-02-19 Yannick Moy + + * gnat_rm.texi: Doc clarifications. + +2014-02-19 Yannick Moy + + * exp_util.adb (Remove_Side_Effects): Do not remove side-effects + inside a generic. + +2014-02-19 Ed Schonberg + + * sem_ch13.adb (Get_Cursor_Type): Obtain cursor type from + specified First primitive, rather than by name. + (Validate_Iterable_Aspect, Resolve_Iterable_Operation): Use it, + and extend error checking for missing primitives and incorrect + signatures. + +2014-02-19 Ed Schonberg + + * sem_ch3.adb (Check_Pragma_Implemented): Detect additional + errors when a Synchronization aspect on an overriding protected + operation does not match the given aspect on the overridden + operation of an ancestor interface. + +2014-02-19 Hristian Kirtchev + + * sem_prag.adb (Check_Loop_Pragma_Grouping): New routine. + (Check_Loop_Pragma_Placement): Update + comment on usage. Remove local variables Orig_Stmt and + Within_Same_Sequence. Check that the current Loop_Invariant or + Loop_Variant pragma is grouped together with other such pragmas. + (Is_Loop_Pragma): New routine. + (Prev_In_Loop): Removed. + +2014-02-19 Robert Dewar + + * par-ch6.adb (P_Return): For extended return, end column lines + up with RETURN. + * par.adb: Minor documentation clarification. + +2014-02-19 Yannick Moy + + * sem_prag.adb (Check_Loop_Pragma_Placement): Add check + that Loop_Invariant and Loop_Variant appear consecutively. + * gnat_rm.texi Update documentation of Loop_Invariant and + Loop_Variant pragmas. + +2014-02-19 Robert Dewar + + * debug.adb: Document -gnatd.X. + * par-ch5.adb (P_If_Statement): Always check THEN, even if not + first token + (Check_Then_Column): Ditto. + * styleg.adb (Check_Then): Allow THEN on line after IF. + (Check_Then): Check THEN placement under control of -gnatd.X + * styleg.ads (Check_Then): Now called even if THEN is not first + token on line. + * stylesw.ads (Style_Check_If_Then_Layout): Document new + relaxed rules. + * gnat_ugn.texi: For -gnatyi, THEN can now be on line after IF. + +2014-02-19 Robert Dewar + + * a-cfhama.adb, a-cfhase.adb, a-cforse.adb, a-cofove.adb, a-ngcefu.adb, + a-teioed.adb, a-wtedit.adb, a-ztedit.adb, exp_ch5.adb, inline.adb, + prj-pp.adb, prj-tree.adb, sem_ch12.adb, sem_ch8.adb, + vms_conv.adb: Fix bad layout of IF statements + +2014-02-19 Robert Dewar + + * exp_util.adb (Side_Effect_Free): Scalar if expressions can be SEF. + +2014-02-19 Robert Dewar + + * exp_util.adb: Update comments. + +2014-02-19 Doug Rupp + + * bindgen.adb (Gen_Adainit) [VMS] New global Float_Format. + * init.c (__gl_float_format): [VMS] New global. + (__gnat_set_features): Call FP_CONTROL to set FPSR for the float + representation in effect. + +2014-02-19 Hristian Kirtchev + + * exp_ch6.adb Add with and use clause for Exp_Prag. + (Expand_Contract_Cases): Relocated to Exp_Prag. + * exp_ch6.ads (Expand_Contract_Cases): Relocated to Exp_Prag. + * exp_prag.adb Add with and use clauses for Checks and Validsw. + (Expand_Contract_Cases): Relocated from Exp_Ch6. Update the + structure of the expanded code to showcase the evaluation of + attribute 'Old prefixes. Add local variable Old_Evals. Expand + any attribute 'Old references found within a consequence. Add + circuitry to evaluate the prefixes of attribute 'Old that + belong to a selected consequence. + (Expand_Old_In_Consequence): New routine. + * exp_prag.ads (Expand_Contract_Cases): Relocated from Exp_Ch6. + * sem_attr.adb (Check_Use_In_Contract_Cases): Warn that a + potentially unevaluated prefix is always evaluated. + +2014-02-19 Robert Dewar + + * exp_attr.adb (Expand_Min_Max_Attribute): Use Insert_Declaration + (Expand_Min_Max_Attribute): Use Matching_Standard_Type. + * exp_ch4.adb (Expand_N_Expression_With_Actions): Remove special + handling for the case of Modify_Tree_For_C, this approach did + not work. + * exp_util.adb (Matching_Standard_Type): New function + (Side_Effect_Free): New top level functions (from + Remove_Side_Effects). + * exp_util.ads (Side_Effect_Free): New top level functions + (moved from body). + * sinfo.ads: Minor comment updates. + +2014-02-19 Ed Schonberg + + * exp_ch6.adb (Expand_Simple_Function_Return): If return + type is unconstrained and uses the secondary stack, mark the + enclosing function accordingly, to ensure that the value is not + prematurely removed. + +2014-02-19 Hristian Kirtchev + + * par.adb Alphabetize the routines in Par.Sync. + (Resync_Past_Malformed_Aspect): New routine. + * par-ch13.adb (Get_Aspect_Specifications): Alphabetize local + variables. Code and comment reformatting. Detect missing + parentheses on aspects [Refined_]Global and [Refined_]Depends + with a non-null definition. + * par-sync.adb: Alphabetize all routines in this separate unit. + (Resync_Past_Malformed_Aspect): New routine. + +2014-02-19 Robert Dewar + + * sem_eval.ads, sem_eval.adb (Subtypes_Statically_Match): Return False + if Esize values do not match. + +2014-02-19 Yannick Moy + + * sinfo.ads: Minor comment update. + +2014-02-19 Hristian Kirtchev + + * atree.ads: Minor reformatting (change Entity_Info to Einfo). + +2014-02-19 Thomas Quinot + + * exp_ch7.adb (Find_Node_To_Be_Wrapped): An assignment statement + that has the No_Ctrl_Actions flag is a suitable node to be + wrapped if the assigned expression has no finalization actions. + * sem_eval.adb (Eval_Entity_Name): For a compile time known + boolean value, mark the corresponding condition SCO as constant. + +2014-02-19 Robert Dewar + + * exp_util.adb: Minor reformatting. + * exp_util.ads (Matching_Standard_Type): New function. + * exp_ch7.adb: Minor reformatting. + +2014-02-19 Ed Schonberg + + * sem_ch13.adb (Get_Cursor_Type): Use scope of iterable type + to find declaration for Cursor, to handle properly the case of + a discriminated iterable type. + +2014-02-19 Vincent Celier + + * gnatcmd.adb (GNATCmd): Always replace the object dirs of + imported library projects with the library ALI dirs, when setting + the object paths. + * prj-env.ads (Ada_Objects_Path): Correct comments about + argument Including_Libraries. + +2014-02-19 Gary Dismukes + + * gnat_rm.texi: Minor spelling fixes. + +2014-02-19 Doug Rupp + + * init.c: Remove unneeded code. + * fe.h (Float_Format): New macro + * gcc-interface/trans.c (gigi): On VMS, set vms_float_format. + +2014-02-19 Hristian Kirtchev + + * sem_prag.adb (Check_Refined_Global_Item): + A state or variable acts as a constituent only it is part of an + encapsulating state and the state has visible refinement. + +2014-02-19 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Contract): Do not warn on a + postcondition for a function when the expression does not mention + 'Result but the function has in-out parameters. + +2014-02-19 Robert Dewar + + * gnat_rm.texi: Add documentation on Value_Size forcing biased + representation. + +2014-02-19 Hristian Kirtchev + + * lib-xref.ads Remove the small table of letter and symbol usage as we + already have one. + +2014-02-19 Hristian Kirtchev + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Emit specific error + messages depending on the offending misplaced aspect specifications. + (Diagnose_Misplaced_Aspect_Specifications): New routine. + +2014-02-19 Ed Schonberg + + * sem_ch13.adb (Get_Cursor): Utility to retrieve cursor type + for iterable aspect primitives. + (Resolve_Iterable_Operation): Use expected signature of iterable + aspect to resolve primitive when overloading is present. + (Validate_Iterable_Aspect, Analyze_Aspects_At_Freeze_Point): use it. + (Check_Signature): Removed. + +2014-02-19 Yannick Moy + + * sem_ch10.adb (Analyze_Proper_Body): Issue error on missing + subunit in GNATprove_Mode. + * sinfo.ads (GNATprove_Mode): Document error issued in GNATprove_Mode. + +2014-02-19 Hristian Kirtchev + + * lib-xref.ads Alphabetize the contents of table + Xref_Entity_Letters. Add an entry in table Xref_Entity_Letters + for E_Abstract_State. List all letters and symbols in use. + * sem_prag.adb (Analyze_Abstract_State): Update all calls + to Create_Abstract_State to reflect the new signature. + (Create_Abstract_State): Change subprogram profile and update + the comment on usage. Use the proper location of the state + declaration when creating a new abstract state entity. Do not + generate an external name, but simply reuse the name coming from + the state declaration. + +2014-02-19 Robert Dewar + + * exp_ch4.adb (Expand_N_Expression_With_Actions): Make sure + declarations get properly inserted in Modify_Tree_For_C mode. + * sinfo.ads: Minor comment addition. + +2014-02-19 Robert Dewar + + * par-ch9.adb, exp_ch5.adb, sem_ch5.adb, exp_attr.adb, sem_util.adb, + sem_util.ads, sem_ch13.adb, sem_ch13.ads: Minor reformatting. + +2014-02-19 Ed Schonberg + + * style.adb (Missing_Overriding): Warning does not apply in + language versions prior to Ada 2005. + * snames.ads-tmpl: Add Name_Iterable and Attribute_Iterable. + * sem_attr.adb: Add Attribute_Iterable where needed. + * exp_attr.adb: ditto. + * exp_ch5.adb (Expand_Formal_Container_Loop): New procedure to + handle loops and quantified expressions over types that have an + iterable aspect. Called from Expand_Iterator_Loop. + * sem_ch5.adb (Analyze_Iterator_Specification): Recognize types + with Iterable aspect. + * sem_ch13.adb (Validate_Iterable_Aspect): Verify that the + subprograms specified in the Iterable aspect have the proper + signature involving container and cursor. + (Check_Aspect_At_Freeze_Point): Analyze value of iterable aspect. + * sem_ch13.ads (Validate_Iterable_Aspect): New subprogram. + * sem_util.ads, sem_util.adb (Get_Iterable_Type_Primitive): + New procedure to retrieve one of the primitives First, Last, + or Has_Element, from the value of the iterable aspect of a + formal container. + (Is_Container_Element): Predicate to recognize expressions + that denote an element of one of the predefined containers, + for possible optimization. This subprogram is not currently + used, pending ARG discussions on the legality of the proposed + optimization. Worth preserving for eventual use. + (Is_Iterator): Recognize formal container types. + * aspects.ads, aspects.adb: Add Aspect_Iterable where needed. + +2014-02-19 Robert Dewar + + * exp_attr.adb (Expand_Min_Max_Attribute): New procedure + (Expand_N_Attribute_Reference): Use this procedure for Min and Max. + * exp_ch4.adb (Expand_N_Expression_With_Actions): Remove object + declarations from list of actions. + * output.ads, output.adb (Delete_Last_Char): New procedure. + * sinfo.ads: Document handling of Mod and expression with actions + in Modify_Tree_For_C mode. + +2014-02-19 Ed Schonberg + + * par-ch9.adb (P_Task): Add a null statement to produce a + well-formed task body when due to a previous syntax error the + statement list is empty. + +2014-02-19 Hristian Kirtchev + + * sem_prag.adb (Check_Dependency_Clause): Account + for the case where a state with a non-null refinement matches a + null output list. Comment reformatting. + (Inputs_Match): Copy a solitary input to avoid an assertion failure + when trying to match the same input in multiple clauses. + +2014-02-19 Gary Dismukes + + * sem_attr.adb: Minor typo fix. + +2014-02-18 Robert Dewar + + * cstand.adb (Build_Signed_Integer_Type): Minor change of formal + from Int to Nat (Build_Unsigned_Integer_Type): New procedure + (Create_Standard): Create new unsigned types. + * exp_ch4.adb (Expand_N_Op_Mod): Expand mod in Modify_Tree_For_C + mode (Expand_N_Reference): Removed, problematic and not needed + for now. + * exp_ch4.ads (Expand_N_Reference): Removed, problematic and + not needed for now. + * exp_util.ads, exp_util.adb (Power_Of_Two): New function. + * expander.adb: Remove call to Expand_N_Reference (problematic, + and not needed now). + * sem_aux.ads, sem_aux.adb (Corresponding_Unsigned_Type): New function. + * stand.adb: Read and write unsigned type entities. + * stand.ads: Add new unsigned types. + +2014-02-18 Hristian Kirtchev + + * sem_ch4.adb (Analyze_Call): Do not mark a function call + as being inside an assertion expression as the flag is now removed. + (Check_Ghost_Subprogram_Call): Do not query the + In_Assertion_Expression flag as it is now removed, instead use + a predicate function. + * sem_elab.adb (Check_Internal_Call_Continue): Do not query the + In_Assertion_Expression flag as it is now removed, instead use + a predicate function. + * sem_prag.ads: Add new table Assertion_Expression_Pragma. + * sem_util.adb Add with and use clause for Sem_Prag. + (In_Assertion_Expression_Pragma): New routine. + * sem_util.ads (In_Assertion_Expression_Pragma): New routine. + * sinfo.adb (In_Assertion_Expression): Removed. + (Set_In_Assertion_Expression): Removed. + * sinfo.ads Remove flag In_Assertion_Expression along with its + use in nodes. + (In_Assertion_Expression): Removed along with + pragma Inline. (Set_In_Assertion_Expression): Removed along + with pragma Inline. + +2014-02-18 Sergey Rybin + + * gnat_ugn.texi: gnatpp section: add note that '-j' cannot be + used together with '-r', '-rf' or '-rnb' options. + +2014-02-18 Hristian Kirtchev + + * sem_attr.adb (Analyze_Attribute): Comment + and code reformatting. Use separate routines to check the + legality of attribute 'Old in certain pragmas. Verify + the use of 'Old, 'Result and locally declared entities + within the prefix of 'Old. + (Check_References_In_Prefix): New routine. + (Check_Use_In_Contract_Cases): New routine. + (Check_Use_In_Test_Case): New routine. + +2014-02-18 Vincent Celier + + * sem_aux.adb (Is_By_Reference_Type): For each components of + a record type, check also if the component is volatile as it + may have an aspect that makes it volatile. If it is, then the + record type is a by reference type. + +2014-02-18 Robert Dewar + + * exp_attr.adb: Minor reformatting. + * exp_ch4.ads, exp_ch4.adb (Expand_N_Reference): New procedure. + * exp_util.adb (Remove_Side_Effects): Add conditional expressions + as another case where we don't generate N_Reference nodes for + primitive types. + * expander.adb (Expand): Add call to Expand_N_Reference. + +2014-02-06 Hristian Kirtchev + + * sem_prag.adb (Analyze_Refined_Pragma): Remove + local variable Pack_Spec. Refinement pragmas may now apply to + bodies of both visible and private subprograms. + +2014-02-06 Robert Dewar + + * exp_attr.adb (Expand_Loop_Entry_Attribute): + Minor change (Attr => N) (Expand_Pred_Succ): New name + Expand_Pred_Succ_Attribute (Expand_N_Attribute_Reference, case + Max): Expand into if expression if Modify_Tree_For_C mode. + (Expand_N_Attribute_Reference, case Min): ditto + * sinfo.ads: Modify_Tree_For_C takes care of expanding Min and + Max attributes. + +2014-02-06 Ed Schonberg + + * sem_ch3.adb (Analyze_Object_Declaration): Do not generate + predicate check if this is an internal declaration with + No_Initialization set, as for an expanded aggregate component. + +2014-02-06 Doug Rupp + + * init.c (__gnat_default_resignal_p) [VMS]: Test for and resignal + conditions with severity of "SUCCESS" or "INFORMATIONAL". + +2014-02-06 Yannick Moy + + * sem_prag.adb (Analyze_Pragma): Analyze pragma + Debug rewritten node before rewriting it as a null statement in + GNATprove mode. + +2014-02-06 Robert Dewar + + * sem_attr.adb (Min_Max): New procedure. + (Max_Alignment_For_Allocation_Max_Size_In_Storage_Elements): New + procedure. + +2014-02-06 Sergey Rybin + + * gnat_ugn.texi, vms_data.ads: Add documentation of '-t' option for + gnatmetric/gnatpp. + +2014-02-06 Hristian Kirtchev + + * sem_prag.adb (Analyze_Abstract_State): Update + all calls to Create_Abstract_State to pass the proper state + "declaration". + (Create_Abstract_State): Add new formal parameter + State_Decl along with comment on usage. Establish a link between + the abstract state entity and the state declaration. + +2014-02-06 Robert Dewar + + * sem_attr.adb (Analyze_Attribute, case Max): Check for improper + comparison of unordered enumeration type. + (Analyze_Attribute, case Max): Check for improper comparison of + unordered enumeration type. + * sem_res.adb (Bad_Unordered_Enumeration_Reference): Moved to + sem_util.adb. + * sem_util.ads, sem_util.adb (Bad_Unordered_Enumeration_Reference): + Moved here from Sem_Res. + +2014-02-06 Robert Dewar + + * sem_ch3.adb, sem_prag.adb, sem_res.adb, lib-xref.adb: Minor + reformatting. + +2014-02-06 Hristian Kirtchev + + * sem_ch6.adb (Process_Formals): Error message reformatting. + +2014-02-06 Hristian Kirtchev + + * sem_ch3.adb (Handle_Late_Controlled_Primitive): Add local + variable Spec. Do not inherit the null indicator from the + subprogram body when generating the spec. + +2014-02-06 Robert Dewar + + * casing.adb (Determine_Casing): Consider SPARK_Mode to be + mixed case. + +2014-02-06 Ed Schonberg + + * exp_ch6.adb (Is_Build_In_Place_Function): Predicate is false + when the function has a foreign convention, but not if only the + limited return type has such a convention. + +2014-02-06 Hristian Kirtchev + + * sem_ch3.adb (Handle_Late_Controlled_Primitive): Remove local + variable Spec. Comment reformatting. Use Copy_Separate_Tree + rather than New_Copy_Tree when building the corresponding + subprogram declaration. + +2014-02-06 Hristian Kirtchev + + * sem_prag.adb (Analyze_Global_Item): Remove + the mode-related checks on abstract states with enabled external + properties. + (Property_Error): Removed. + +2014-02-06 Javier Miranda + + * lib-xref.adb (Generate_Reference): When + generating the reference to the first private entity take care + of handling swapped entities. + +2014-02-06 Sergey Rybin + + * gnat_ugn.texi, vms_data.ads: Add documentation of -j option for + gnatmetric. + +2014-02-06 Robert Dewar + + * exp_ch4.adb (Expand_N_Shift_Left): Handle shift counts greater + than the word size when operating in Modify_Tree_For_C mode. + * sinfo.ads: Add documentation section on Modify_Tree_For_C mode. + +2014-02-06 Robert Dewar + + * erroutc.adb (Warning_Specifically_Suppressed.Matches): + compare is case insensitive. + * gnat_rm.texi: Document that string compare for Warnings Off + is now case insensitive. + +2014-02-06 Eric Botcazou + + * gnat_rm.texi: Small wording tweak. + +2014-02-06 Pascal Obry + + * prj-attr.adb, projects.texi, snames.ads-tmpl: Add Included_Patterns + and Included_Artifact_Patterns attribute definitions. + +2014-02-06 Yannick Moy + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set + SPARK_Mode pragma component for all subprograms, including stubs. + +2014-02-06 Hristian Kirtchev + + * sem_ch10.adb (Analyze_Package_Body_Stub): Maintain + the configuration options of the enclosing context in a + stack-like fasion. + (Analyze_Subprogram_Body_Stub): Maintain the + configuration options of the enclosing context in a stack-like + fashion. + +2014-02-06 Robert Dewar + + * debug.adb: -gnatd.u sets Modify_Tree_For C + * exp_ch4.adb (Expand_N_Op_Rotate_Left): Expand out + if Modify_Tree_For_C (Expand_N_Op_Rotate_Right): ditto. + (Expand_N_Op_Arithmetic_Right_Shift): ditto. + * exp_intr.adb (Expand_Shift): Call expander so we do + Modify_Tree_For_C expansions. + * gnat1drv.adb (Adjust_Global_Switches): Set Modify_Tree_For_C + if -gnatd.u set. + +2014-02-06 Fedor Rybin + + * prj-proc.ads (Tree_Loaded_Callback): new type Callback used + after the phase 1 of the processing of each aggregated project + to get access to project trees of aggregated projects. + (Process_Project_Tree_Phase_1): new parameter On_New_Tree_Loaded + If specified, On_New_Tree_Loaded is called after each aggregated + project has been processed succesfully. + (Process): new parameter On_New_Tree_Loaded. + * prj-proc.adb (Process_Aggregated_Projects): On_New_Tree_Loaded + callback added after processing of each aggregated project. + (Recursive_Process): new parameter On_New_Tree_Loaded. + (Process): new parameter On_New_Tree_Loaded. + (Process_Project_Tree_Phase_1): new parameter On_New_Tree_Loaded. + * prj-conf.ads (Parse_Project_And_Apply_Config): new parameter + On_New_Tree_Loaded. + * prj-conf.adb (Parse_Project_And_Apply_Config): new parameter + On_New_Tree_Loaded. + +2014-02-06 Bob Duff + + * gnat_ugn.texi: Implement --insert-blank-lines and + --preserve-blank-lines switches. + +2014-02-06 Sergey Rybin + + * gnat_ugn.texi, vms_data.ads: Add documentation of -j option for + gnatelim. + +2014-02-06 Eric Botcazou + + * gnat_rm.texi (Pragma Optimize_Alignment): Document the effect + of the pragma on individual objects. + +2014-02-06 Hristian Kirtchev + + * einfo.adb Node29 is now used as BIP_Initialization_Call. + (BIP_Initialization_Call): New routine. + (Set_BIP_Initialization_Call): New routine. + (Write_Field29_Name): Add an entry for constants and variables. + * einfo.ads Add new attribute BIP_Initialization_Call and update + its usage in nodes. + (BIP_Initialization_Call): New routine along with pragma Inline. + (Set_BIP_Initialization_Call): New routine along with pragma Inline. + * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): + Add local declaration Res_Decl. Capture the build-in-place + initialization call when the related object declaration has + created a transient block. + * exp_ch7.adb (Process_Transient_Objects): Add local variable + Fin_Insrt. Recognize a scenario where an object declaration acts + as a transient context and is initialized by a build-in-place + function call. + +2014-02-06 Pascal Obry + + * prj-util.adb (For_Interface_Sources): Fix handling of required + bodies for aggregate libs. + +2014-02-06 Robert Dewar + + * nlists.ads: Minor comment clarifications. + +2014-02-06 Robert Dewar + + * gnat1drv.adb (Adjust_Global_Switches): Set Modify_Tree_For_C + if gnatd.V set. + * opt.ads (Modify_Tree_For_C): New flag. + * output.ads, output.adb (Last_Char): New function. + +2014-02-06 Pascal Obry + + * projects.texi, prj-env.adb (Initialize_Default_Project_Path): Add + share/gpr for cross-builds. + +2014-02-06 Robert Dewar + + * exp_util.ads, checks.adb, sem_prag.adb, prj-util.adb, sem_ch13.adb: + Minor reformatting and code clean ups. + +2014-02-06 Pascal Obry + + * prj-util.adb (For_Interface_Sources): Skip non compilable languages. + * prj.ads: Minor typo fix in comment. + +2014-02-06 Hristian Kirtchev + + * sem_prag.adb (Analyze_Depends_In_Decl_Part): Add + local variable Expr. Flag clauses with extra parenthesis as this + is not allowed by the syntax of the pragma. Code reformatting. + +2014-02-06 Hristian Kirtchev + + * exp_attr.adb (Expand_N_Attribute_Reference): Alphabetize + variables. Rename variabme Tnn to Temp. Do not create a temporary + if assertions are disabled. Find enclosing routine _Postconditions + and insert the temporary that captures the value of the prefix + before the routine. + * exp_ch6.adb (Build_Postconditions_Procedure): + Insert the generated _Postconditions routine + before the first source declaration of the related + subprogram. + (Insert_After_Last_Declaration): Removed. + (Insert_Before_First_Source_Declaration): New routine. + +2014-02-06 Ed Schonberg + + * exp_util.adb, exp_util.ads (Within_Internal_Subprogram): + Utility to determine whether current expansion is for the body + of a predefined primitive operation. + (Make_Predicate_Check): Use Within_Internal_Subpgram + * checks.adb (Apply_Predicate_Check): Use + Within_Internal_Subprogram + * sem_ch13.adb (Freeze_Entity_Checks): Ditto. + +2014-02-06 Pascal Obry + + * prj.ads, prj-util.adb: Minor reformatting. + +2014-02-06 Ed Schonberg + + * exp_ch6.adb (Expand_Subprogram_Contract, Append_Enabled_Item): + Take into account the Split_PPC flag to ensure that conjuncts + in a composite postcondition aspect are tested in source order. + +2014-02-06 Hristian Kirtchev + + * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Flag illegal + use of SPARK_Mode. + * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Flag + illegal use of SPARK_Mode. + (Instantiate_Subprogram_Body): Flag illegal use of SPARK_Mode. + * sem_prag.adb (Analyze_Pragma): Code reformatting. + * sem_util.adb Add with and use clause for Aspects. + (Check_SPARK_Mode_In_Generic): New routine. + * sem_util.ads (Check_SPARK_Mode_In_Generic): New routine. + +2014-02-06 Thomas Quinot + + * a-calend.adb (Formatting_Operations.Split): Ensure that + Time_Error is raised for invalid time values. + +2014-02-06 Arnaud Charlet + + * sem_prag.adb (Analyze_Pragma): Rewrite as a null statement + in GNATprove_Mode. + +2014-02-06 Robert Dewar + + * einfo.ads, einfo.adb (Is_Discriminant_Check_Function): New flag. + * exp_ch3.adb (Build_Dcheck_Function): Set + Is_Discriminant_Check_Function. + +2014-02-06 Hristian Kirtchev + + * exp_ch7.adb (Is_Subprogram_Call): Inspect + the original tree in certain cases where a construct has been + factored out and replaced by a reference to a temporary. + +2014-02-06 Ed Schonberg + + * sem_ch3.adb (Process_Full_View): Fix typo in the order of + parameters when propagating predicate function to full view. + (Find_Type_Of_Object): Freeze base type of object type to catch + premature use of discriminated private type without a full view. + +2014-02-06 Robert Dewar + + * sprint.adb: Minor reformatting. + +2014-02-06 Hristian Kirtchev + + * exp_ch4.adb (Process_Transient_Object): Add local variable + Temp_Ins. When the transient object is initialized by an + aggregate, the hook must capture the object after the last + component assignment takes place. + * exp_ch7.adb (Detect_Subprogram_Call): Expose the subprogram to + routine Is_Subprogram_Call. + (Is_Subprogram_Call): Inspect an + aggregate that has been heavily expanded for subprogram calls. + (Process_Transient_Objects): Add local variables Expr, Ptr_Id + and Temp_Ins. Remove the nested declare block and adjust the + indentation. When the transient object is initialized by an + aggregate, the hook must capture the object after the last + component assignment takes place. + +2014-02-06 Hristian Kirtchev + + * sem_prag.adb (Analyze_Global_Item): Detect illegal uses of + external states with enabled properties that do not match the + global mode. + (Property_Error): New routine. + * sem_res.adb (Property_Error): New routine. + (Resolve_Actuals): Detect illegal uses of external variables with + enabled properties in procedure calls that do not match the mode of + the corresponding formal parameter. + +2014-02-06 Hristian Kirtchev + + * sem_util.adb (Has_Enabled_Property): Rename + formal parameter Prop_Nam to Property. Update the comment on usage + and all occurrences in the body. Add local variable Prop_Nam. When + inspecting a property with an expression, the property name + appears as the first choice of the component association. + +2014-02-04 Robert Dewar + + * exp_ch5.adb, einfo.ads, freeze.adb, sem_ch8.adb: Minor reformatting. + +2014-02-04 Gary Dismukes + + * sem_aggr.adb: Change "runtime" to "run time" in warning message, + for consistency with other messages. + +2014-02-04 Ed Schonberg + + * exp_ch5.adb (Expand_Iterator_Loop): For a container element + iterator, indicate that the element is a constant if the container + type does not have a variable indexing aspect. + * sem_ch8.adb (Analyze_Object_Renaming): If the entity is already + marked as constant, do not reset its Ekind, to ensure that + container elements in an element loop are not modified if the + container (e.g. a hashed set) only has a constant indexing aspect. + +2014-02-04 Arnaud Charlet + + * g-souinf.ads: Subprograms in this unit are actually not pure. + * freeze.adb (Freeze_Subprogram): Do not reset Is_Pure for Intrinsics. + * einfo.ads (Is_Pure): Update doc to match implementation. + +2014-02-04 Gary Dismukes + + * exp_ch13.adb: Minor spelling fix. + +2014-02-04 Robert Dewar + + * opt.ads: Minor comment update. + +2014-02-04 Robert Dewar + + * exp_ch4.adb (Expand_N_Expression_With_Actions): Use Rewrite + instead of Replace. + +2014-02-04 Ed Schonberg + + * sem_aggr.adb (Resolve_Array_Aggregate): Suppress warnings + on null expressions if component type is non-null, when the + corresponding association covers an empty range of index values. + +2014-02-04 Robert Dewar + + * sinfo.ads: Further comments on N_Expression_With_Actions node. + +2014-02-04 Hristian Kirtchev + + * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Remove global + variables Out_Items and Ref_Global. Remove local constant + Body_Id along with dummy variables D1, D2, D3, D4, D5, D6, D7 + and D8. Remove the useless collection of global items as this + was a leftover from an earlier version of the routine. Move + several routines out to avoid deep nesting and indentation. + (Inputs_Match): Add formal parameter Dep_Clause. Rename formal + parameter Do_Checks to Post_Errors. Update the comment on usage. + (Is_Matching_Input): Renamed to Input_Match. Add formal parameters + Ref_Inputs and Do_Checks. Rename formal parameter Do_Checks + to Post_Errors. Update the comment on usage. Account for the + case where a self referential state may have a null input_list. + (Is_Self_Referential): New routine. + +2014-02-04 Ed Schonberg + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the + entity renames an expression, as in the case of an object of + an unconstrained type initialized by a function call, defer the + rewriting of the expression to the expander. + * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case + 'Alignment): If the entity renames an expression, introduce + temporary to capture value, and rewrite original declaration to + use temporary. + +2014-02-04 Gary Dismukes + + * g-comlin.adb: Minor typo fix. + +2014-02-04 Ed Schonberg + + * freeze.adb (Freeze_All): Types derived from a formal + access_to_classwide type do not have a finalization master. + +2014-02-04 Robert Dewar + + * sprint.adb: Minor reformatting. + +2014-02-04 Robert Dewar + + * exp_ch4.adb (Expand_N_Expression_With_Actions): Eliminate + cases where Actions is a null list. + * sinfo.ads (N_Expression_With_Actions): Actions can be + temporarily empty during semantic analysis, but must be non-empty + in the final expanded tree. + +2014-01-31 Robert Dewar + + * exp_ch9.adb: Minor reformatting. + +2014-01-31 Emmanuel Briot + + * g-comlin.adb (Set_Command_Line): Take the switches + configuration from the Command_Line_Config. + +2014-01-31 Hristian Kirtchev + + * sem_prag.adb (Analyze_Refinement_Clause): Guard against a malformed + refinement clause. + +2014-01-31 Vincent Celier + + * projects.texi: Add more documentation about others used as an + index in indexed attributes. + +2014-01-31 Robert Dewar + + * gnat_ugn.texi: Minor update. + * gnat_rm.texi: Add example to Restriction_Warnings documentation. + * exp_util.adb: Minor reformatting. + +2014-01-31 Ed Schonberg + + * exp_ch9.adb (Expand_Entry_Barrier): Warn if the barrier + depends on data that is not private to the protected object, + and potentially modifiable in unsynchronized fashion. + +2014-01-31 Yannick Moy + + * erroutc.adb (Validate_Specific_Warnings): Remove special case for + GNATprove_Mode. + +2014-01-31 Robert Dewar + + * prj-attr.ads (First_Attribute_Of): Returns Empty_Attribute + for Unknown_Package. + * sem_ch6.adb, sem_attr.adb: Minor comment addition. + +2014-01-31 Hristian Kirtchev + + * exp_util.adb (Build_Allocate_Deallocate_Proc): Rewrite + the logic that generates a runtime check to determine the + controlled status of the object about to be allocated or + deallocated. Class-wide types now always use a runtime check + even if they appear as generic actuals. + (Find_Object): Detect + a special case that involves interface class-wide types because + the object appears as a complex expression. + +2014-01-31 Ed Schonberg + + * sem_ch6.adb (Process_Formals): In Ada2012 mode, place + subprogram with an incomplete untagged formals on the list of + private dependents, to verify that the type is properly completed + in the private part. + * sem_attr.adb: Code clean up. + +2014-01-31 Robert Dewar + + * exp_ch6.adb: Minor reformatting. + +2014-01-31 Vincent Celier + + * prj-attr.adb (First_Attribute_Of): Return Unknown_Attribute + when Pkg is unknown. + +2014-01-31 Hristian Kirtchev + + * sem_res.adb (Resolve_Entity_Name): Comment + reformatting. Allow volatile objects in various generated checks. + +2014-01-31 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case 'Update): For a record + component association, set the etype of the identifier, for + SPARK use. + +2014-01-31 Ed Schonberg + + * exp_ch6.adb (Has_Visibility_Of_Subprogram): If type is not + declared in a package, not checks can apply to the subprogram. + +2014-01-31 Robert Dewar + + * erroutc.adb (Validate_Specific_Warnings): Warnings are + controlled -gnatw.W. + * gnat_ugn.texi: Document new warnings controlled by -gnatw.w. + * opt.ads (Warn_On_Warnings_Off): Now controls more cases. + +2014-01-31 Arnaud Charlet + + * exp_disp.adb: Update comments. + +2014-01-31 Yannick Moy + + * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration, + Save_Global_References): Guard access to expression in aspect. + +2014-01-31 Yannick Moy + + * sem_prag.adb (Analyze_Pragma/Pragma_SPARK_Mode): + Issue an error when the pragma is applied to a generic unit, + a generic declaration, or inside a generic. + +2014-01-31 Yannick Moy + + * sem_ch8.adb (Analyze_Subprogram_Renaming): Set SPARK_Mode on renaming + entity. + +2014-01-31 Robert Dewar + + * exp_ch9.adb, s-tassta.adb, s-tposen.adb, s-tposen.ads: Minor + reformatting. + +2014-01-31 Tristan Gingold + + * exp_disp.adb: Add a historic note. + +2014-01-31 Robert Dewar + + * sem_warn.adb (Warn_On_Useless_Assignments): Add call to + Process_Deferred_References. + +2014-01-31 Yannick Moy + + * erroutc.adb (Validate_Specific_Warnings): Do not issue a message for + ineffective pragma Warnings(Off) in GNATprove_Mode. + +2014-01-31 Bob Duff + + * s-taskin.ads: Minor comment fix. + * s-tassta.adb (Abort_Dependents): Don't abort all dependents; + just direct dependents. If this is actually an abort, each task + will take care of aborting its dependents, so all dependents will + get aborted, as before. However, when this is called the second + time from Vulnerable_Complete_Master "for convenience" (i.e. to + kill off tasks waiting at terminate alternatives), aborting + indirect dependents is wrong, because it causes some unrelated + tasks to get aborted. + +2014-01-31 Robert Dewar + + * sem_ch4.adb: Minor reformatting. + +2014-01-31 Robert Dewar + + * exp_ch2.adb: New calling sequence for Is_LHS. + * frontend.adb: Add call to Process_Deferred_References. + * lib-xref.ads, lib-xref.adb (Process_Deferred_References): New. + (Deferred_References): New table. + * sem_ch8.adb (Find_Direct_Name): Make deferred reference table + entries. + (Find_Expanded_Name): Ditto. + * sem_res.adb: New calling sequence for Is_LHS. + * sem_util.ads, sem_util.adb (Is_LHS): New calling sequence. + * sem_warn.adb: Call Process_Deferred_References before issuing + warnings. + +2014-01-31 Tristan Gingold + + * exp_util.adb (Corresponding_Runtime_Package): Restrict the + use of System_Tasking_Protected_Objects_Single_Entry. + * exp_ch9.adb (Build_Simple_Entry_Call): Remove Mode parameter + of Protected_Single_Entry_Call. + (Expand_N_Timed_Entry_Call): Remove single_entry case. + * exp_disp.adb (Make_Disp_Asynchronous_Select_Body): Remove + single_entry case. + (Make_Disp_Timed_Select_Body): Likewise. + * rtsfind.ads (RE_Timed_Protected_Single_Entry_Call): Remove. + * s-tposen.adb (Send_Program_Error, PO_Do_Or_Queue): Remove + Self_Id parameter. + (Wakeup_Entry_Caller): Remove Self_ID and New_State parameters. + (Wait_For_Completion_With_Timeout): Remove. + (Protected_Single_Entry_Call): Remove Mode parameter + (always Simple_Call). + (Service_Entry): Remove Self_Id constant (not used anymore). + (Timed_Protected_Single_Entry_Call): Remove. + * s-tposen.ads (Timed_Protected_Single_Entry_Call): Remove. + (Protected_Single_Entry_Call): Remove Mode parameter. + +2014-01-29 Hristian Kirtchev + + * einfo.adb (Get_Pragma): Handle the retrieval of pragma Refined_Post. + * einfo.ads (Get_Pragma): Update the comment on special pragmas + handled by this routine. + * sem_prag.adb (Analyze_Pragma): Add a legal pragma Refined_Post + to the contract of the related subprogram body. + * sem_util.adb (Add_Contract_Item): Handle the insertion of + pragma Refined_Post into the contract of a subprogram body. + * sinfo.ads Update the documentation of node N_Contract. + * sem_res.adb (Resolve_Entity_Name): Add a guard + to detect abstract states and variables only when checking the + SPARK 2014 rules concerning volatile object placement. + +2014-01-29 Ed Schonberg + + * sem_ch4.adb (Find_Equality_Types, Try_One_Interp): within an instance, + null is compatible with any access type. + +2014-01-29 Hristian Kirtchev + + * sem_util.adb (Find_Placement_In_State_Space): Assume that the default + placement is not in a package. + +2014-01-29 Hristian Kirtchev + + * sem_util.adb (Has_Enabled_Property): Compare the character field of + the sole property. + +2014-01-29 Robert Dewar + + * sem_intr.adb, a-ztexio.ads, sinfo.ads, sem_res.adb, gnatlink.adb, + vms_conv.adb, a-except.ads, a-except-2005.ads, a-teioed.adb, + sem_warn.ads, treepr.ads, erroutc.ads, a-excach.adb: Minor reformatting. + +2014-01-29 Robert Dewar + + * sem_util.ads, sem_util.adb (In_Pragma_Expression): New function. + * sem_warn.adb (Check_References): Suppress warnings if inside + Initial_Condition pragma. + +2014-01-29 Hristian Kirtchev + + * sem_prag.adb (Check_Missing_Part_Of): List all values of + State_Space_Kind for readability reasons. Do not emit an error on + a private item when the enclosing package lacks aspect/pragma + Abstract_State. Do not emit an error on a private package + instantiation when the corresponding generic template lacks + visible state. + (Has_Visible_State): New routine. + * sem_util.adb (Find_Placement_In_State_Space): The visible + declarations of any kind of child units in general act as proper + placement location. + +2014-01-29 Robert Dewar + + * a-except-2005.adb, a-except.adb, a-excpol-abort.adb, a-exstat.adb, + ali.adb, a-numaux.ads, a-numaux-darwin.ads, a-numaux-libc-x86.ads, + a-numaux-vms.ads, a-numaux-vxworks.ads, a-numaux-x86.ads, aspects.ads, + a-taside.adb, a-teioed.adb, a-textio.adb, a-textio.ads, atree.adb, + atree.ads, a-witeio.adb, a-witeio.ads, a-wtedit.adb, a-ztedit.adb, + a-ztexio.adb, bcheck.adb, binde.adb, checks.adb, comperr.adb, + cstand.adb, debug_a.adb, einfo.ads, errout.adb, erroutc.adb, + eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb, exp_ch3.adb, + exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb, exp_dbug.adb, + exp_disp.adb, exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_util.adb, + freeze.adb, frontend.adb, g-comlin.ads, g-mbdira.adb, gnat1drv.adb, + gprep.adb, g-spipat.adb, i-cpp.ads, i-vxwork.ads, i-vxwork-x86.ads, + krunch.ads, layout.adb, lib-load.adb, lib-writ.adb, lib-writ.ads, + live.adb, namet.ads, osint.adb, osint-c.adb, output.ads, par.adb, + par-ch10.adb, par-ch13.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb, + par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-prag.adb, + par-sync.adb, par-tchk.adb, par-util.adb, prj.adb, repinfo.adb, + rtsfind.adb, s-arit64.adb, s-asthan-vms-alpha.adb, + s-asthan-vms-ia64.adb, s-bignum.adb, scans.adb, scng.adb, s-dimmks.ads, + sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_cat.adb, sem_ch10.adb, + sem_ch12.adb, sem_ch13.adb, sem_ch13.ads, sem_ch3.adb, sem_ch4.adb, + sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, sem_disp.adb, sem_elab.adb, + sem_elim.adb, sem_eval.adb, sem_intr.adb, sem_prag.adb, sem_res.adb, + sem_type.adb, sem_util.adb, sem_warn.adb, set_targ.adb, s-fatgen.adb, + s-fatgen.ads, s-fileio.adb, s-imgcha.adb, s-imgrea.adb, sinfo.ads, + sinput-c.adb, snames.ads-tmpl, s-os_lib.adb, sprint.adb, + s-regpat.adb, s-secsta.adb, s-stalib.ads, + s-stchop.adb, s-stoele.ads, stand.ads, s-taprop-solaris.adb, + s-tasdeb-vms.adb, s-tasini.adb, s-tassta.adb, s-valdec.adb, + s-valuti.adb, s-wchjis.adb, s-wchwts.adb, system.ads, system-vms_64.ads, + system-vms-ia64.ads, treepr.adb, types.ads, uintp.adb, uname.adb, + urealp.adb, usage.adb, vxaddr2line.adb: Minor reformatting. + +2014-01-29 Robert Dewar + + * expander.adb: Minor reformatting. + +2014-01-29 Javier Miranda + + * exp_ch3.adb (Predefined_Primitive_Bodies): Adding documentation to + previous patch. + +2014-01-29 Javier Miranda + + * exp_ch3.adb (Predefined_Primitive_Bodies): Complete the code + that checks if an interface types defines the predefined "=" + function because the compiler was erroneously not generating the + predefined "=" primitive as soon as the name of some interface + primitive is "=" (formals were not checked). + +2014-01-29 Ed Schonberg + + * expander.adb (Expander): In GNATprove mode, do not process + transient scopes: they are in general not created in this mode, + and an attempt to examine them will lead to constraint errors when + processing configuration pragmas that have analyzable expressions. + +2014-01-29 Vincent Celier + + * clean.adb (Gnatclean): Fail if main project is an aggregate + project or if there is an aggregate library project in the + project tree. + * gnatcmd.adb: Fail if the main project is an aggregate project + or if there is an aggegate library project in the project tree. + * make.adb (Initialize): : Fail if main project is an aggregate + project or if there is an aggregate library project in the + project tree. + * makeutl.ads (Aggregate_Libraries_In): New Boolean function. + * prj-makr.adb (Initialize): Fail if the main project is an + aggregate project or an aggregate library project. + +2014-01-29 Vincent Celier + + * prj-part.adb (Check_Import_Aggregate): New procedure + to check if an imported project is an aggregate project. + (Parse_Single_Project): Call Check_Import_Aggregate + * projects.texi: Document that aggregate projects cannot be + extended or imported. + +2014-01-29 Robert Dewar + + * exp_ch9.adb, sem_ch7.ads, s-regexp.adb, sem_ch13.adb: Minor + reformatting and code clean up. + * gnat_ugn.texi: Add documentation section on Atomic Variables + and Optimization. + +2014-01-29 Hristian Kirtchev + + * einfo.adb Flag264 is now unused. + (Has_Body_References): Removed. + (Set_Has_Body_References): Removed. + (Write_Entity_Flags): Remove the output for flag Has_Body_References. + * einfo.ads Update the comment on usage of attribute + Body_References. Remove attribute Has_Body_References and its + usage in nodes. + (Has_Body_References): Removed along with pragma Inline. + (Set_Has_Body_References): Removed along with pragma Inline. + * sem_prag.adb (Analyze_Global_Item): Move the call to + Record_Possible_Body_Reference in the state related checks + section. Add a comment intended function. + (Analyze_Input_Output): Move the call to Record_Possible_Body_Reference + in the state related checks section. Add a comment intended function. + (Analyze_Refinement_Clause): Cleanup the illegal body reference + reporting. Add a comment on timing of error reporting. + (Record_Possible_Body_Reference): Reimplement the routine. + +2014-01-29 Vincent Celier + + * makeutl.adb (Mains.Find_File_Add_Extension): Only look for specs for + unit-based languages. + (Mains.Complete_Mains.Do_Complete): Use the source file project + tree when calling Find_File_Add_Extension. Use the correct + project name when reporting an error. + +2014-01-29 Hristian Kirtchev + + * aspects.adb Add an entry for aspect Part_Of in table + Canonical_Aspect. + * aspects.ads Add an entry for aspect Part_Of in tables Aspect_Id, + Aspect_Argument, Aspect_Names and Aspect_Delay. + * atree.h Define Elist9. + * atree.adb (Elist9): New routine. + (Set_Elist9): New routine. + * atree.ads (Elist9): New routine. + (Set_Elist9): New routine. + * einfo.adb Add Part_Of_Constituents and Encapsulating_State to + the list of node usage. Remove Refined_State from the list of + node usage. + (Encapsulating_State): New routine. + (Get_Pragma): + Handle pragma Part_Of; (Part_Of_Constituents): New routine. + (Refined_State): Removed. + (Set_Encapsulating_State): New routine. + (Set_Part_Of_Constituents): New routine. + (Set_Refined_State): Removed. + (Write_Field9_Name): Add an entry + for Part_Of_Constituents (Write_Field10_Name): Add an entry for + Encapsulating_State. Remove the entry for Refined_State. + * einfo.ads Add new attributes Encapsulating_State + and Part_Of_Constituents alond with their usage in + entities. Remove attribute Refined_State along with its + usage in entities. + (Encapsulating_State): New routine and + pragma Inline. (Get_Pragma): Update the comment on usage. + (Part_Of_Constituents): New routine and pragma Inline. + (Refined_State): Removed along with pragma Inline. + (Set_Encapsulating_State): New routine and pragma Inline. + (Set_Part_Of_Constituents): New routine and pragma Inline. + (Set_Refined_State): Removed along with pragma Inline. + * par-prag.adb Pragma Part_Of does not need any special processing + by the parser. + * sem_ch3.adb (Analyze_Declarations): Remove local variables + Body_Id and Prag. Call separate routines to analyze the + contract of a package [body]. + (Analyze_Object_Contract): + Update the comment on usage. Remove local variables + Items and Nam. Use Get_Pragma rather than traversing the + classification list. Verify whether the lack of indicator + Part_Of agrees with the placement of the variable in state space. + (Analyze_Object_Declaration): Initialize the encapsulating state + of a variable. (Requires_State_Refinement): Moved to sem_util. + * sem_ch7.adb (Analyze_Package_Body_Contract): New routine. + (Analyze_Package_Contract): New routine. + * sem_ch7.ads (Analyze_Package_Body_Contract): New routine. + (Analyze_Package_Contract): New routine. + * sem_ch10.adb (Decorate_State): Initialize the encapsulating + state and Part_Of constituents. + * sem_ch13.adb (Analyze_Aspect_Specifications): + Add processing for aspect Part_Of. Update all + calls to Decorate_Delayed_Aspect_And_Pragma. + (Check_Aspect_At_Freeze_Point): Aspect Part_Of does + not need any special processing at freeze time. + (Decorate_Delayed_Aspect_And_Pragma): Renamed to + Decorate_Aspect_And_Pragma. Add formal parameter Delayed and + update the associated comment. + * sem_prag.adb Add an entry for pragma Part_Of in table Sig_Flags. + (Analyze_Abstract_State): Add new global variable State_Id. Remove + local constants Errors and Loc. Remove local variables Is_Null + and State_Nam. Create the entity of the abstract state on the + spot, before all remaining checks are performed. Verify that a + missing Part_Of option agrees with the placement of the abstract + state within the state space. + (Analyze_Depends_In_Decl_Part): + Add new global variables Constits_Seen and States_Seen. Check + that a state and a corresponding constituent do not appear + in pragma [Refined_]Depends. + (Analyze_Global_In_Decl_Part): + Add new global variables Constits_Seen and States_Seen. Check + that a state and a corresponding constituent do not appear + in pragma [Refined_]Global. + (Analyze_Global_Item): + Remove the now obsolete code that deals with Part_Of. + Add the entity of the global item to the list of processed + items. (Analyze_Initializes_In_Decl_Part): Add new global + variables Constits_Seen and States_Seen. Check that a state + and a corresponding constituent do not appear in pragma + Initializes. + (Analyze_Initialization_Item): Add the entity + of the initialization item to the list of processed items. + (Analyze_Input_Item): Add the entity of the initialization + item to the list of processed items. + (Analyze_Input_Output): + Remove the now obsolete code that deals with Part_Of. Add the + entity of the input/output to the list of processed items. + (Analyze_Part_Of): New routine. + (Analyze_Part_Of_Option): Remove + local constant Par_State. Add local constant Encaps and local + variables Encaps_Id and Legal. Use Analyze_Part of to analyze + the option. Turn the related state into a Part_Of constituent + if the option is legal. + (Analyze_Pragma): Add processing + for pragma Part_Of. + (Analyze_Refined_State_In_Decl_Part): + Remove global constants Pack_Body and Spec_Id. Remove + global variables Abstr_States and Hidden_States. Add new + global variables Available_States, Body_Id, Body_States and + Spec_Id. Add new local constant Body_Decl. Reimplement the + logic that extracts the states available for refinement from + the related package and the body hidden states of the said + package. + (Analyze_Refinement_Clause): Add local variable Part_Of_Constits. + (Check_Applicable_Policy): Alphabetize body. + (Check_Dependency_Clause): Replace Refined_State + with Encapsulating_State. + (Check_Matching_Constituent): + Reimplement the logic that determines whether an item is a valid + / invalid constituent of the current refined state. Return when + a construct does not denote a valid abstract state. Extract the + list of Part_Of constituents for further analysis. Check that all + Part_Of constituents of a state have been used in its refinement. + (Check_Matching_State): Update the comment on usage. Operate + on the list of available states. + (Check_Missing_Part_Of): New routine. + (Check_Refined_Global_Item): Replace Refined_State + with Encapsulating_State. + (Check_State_And_Constituent_Use): New routine. + (Create_Abstract_State): New routine. + (Is_Matching_Input): Replace Refined_State with Encapsulating_State. + (Is_Part_Of): Removed. + (Collect_Body_States): New routine. + (Collect_Constituent): Replace Refined_State with Encapsulating_State. + (Collect_Hidden_States): Removed. + (Report_Unrefined_States): Change the profile of the procedure along + with the comment on usage. + (Report_Unused_Constituents): New routine. + (Report_Unused_Hidden_States): Removed. + (Report_Unused_States): New routine. + * sem_prag.ads (Check_Missing_Part_Of): New routine. + * sem_util.adb (Add_Contract_Item): Pragma Part_Of can now + appear in the classification pragmas of a package instantiation + or a variable. + (Find_Placement_In_State_Space): New routine. + (Is_Child): Removed. + (Is_Child_Or_Sibling): Remove formal + parameter Private_Child. Remove the private child checks. + (Requires_State_Refinement): Moved from sem_ch3. + * sem_util.ads Add new type State_Space_Kind along with + comment on its usage and values. + (Add_Contract_Item): Update the comment on usage. + (Find_Body_Discriminal): Alphabetize spec. + (Find_Placement_In_State_Space): New routine. + (Is_Child_Or_Sibling): Remove formal parameter Private_Child + and update the comment on usage. + (Requires_State_Refinement): Moved from sem_ch3. + * sinfo.ads: Update the documentation of N_Contract. + * snames.ads-tmpl The predefined name for Part_Of is now used + to denote a pragma. Add Pragma_Id for Part_Of. + +2014-01-29 Emmanuel Briot + + * s-regexp.adb (Create_Secondary_Table): Automatically grow the state + machine as needed. + (Dump): New subprogram. + +2014-01-29 Tristan Gingold + + * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Add + Expand_Entry_Declaration to factorize code. + +2014-01-29 Ed Schonberg + + * checks.adb: minor clarification. + * sem_ch7.adb (Declare_Inherited_Private_Subprograms): Limit + search for primitive operations to the entities that immediately + follow the type declaration. + +2014-01-29 Tristan Gingold + + * exp_ch9.adb (Build_Protected_Entry): Do not call + Complete_Entry_Body anymore. + * rtsfind.ads (RE_Complete_Single_Entry_Body): Remove. + * s-tposen.ads, s-tposen.adb (Complete_Single_Entry_Body): Remove. + +2014-01-29 Pierre-Marie Derodat + + * s-os_lib.adb, s-os_lib.ads (Normalize_Pathname): Return an empty + string when the Name input bigger than allowed. Adapt the function + specification. + +2014-01-29 Ed Schonberg + + * checks.adb (Install_Null_Excluding_Check): Do not emit warning + if expression is within a case_expression of if_expression. + +2014-01-29 Robert Dewar + + * exp_ch9.adb, inline.ads: Minor reformatting. + +2014-01-29 Tristan Gingold + + * exp_ch9.adb (Is_Exception_Safe): Return true if no exceptions. + +2014-01-29 Yannick Moy + + * inline.ads (Pending_Body_Info): Add SPARK_Mode and + SPARK_Mode_Pragma components to be able to analyze generic + instance. + * sem_ch12.adb (Analyze_Package_Instantiation, + Inline_Instance_Body, Need_Subprogram_Instance_Body, + Load_Parent_Of_Generic): Pass in SPARK_Mode from instantiation + for future analysis of the instance. + (Instantiate_Package_Body, + Instantiate_Subprogram_Body, Set_Instance_Inv): Set SPARK_Mode + from instantiation to analyze the instance. + +2014-01-29 Robert Dewar + + * sem_ch7.adb, sem_prag.adb, sem_ch4.adb, sem_ch6.adb: Minor code + reorganization. + +2014-01-29 Yannick Moy + + * gnat_rm.texi: Update description of SPARK_Mode pragma. + +2014-01-29 Tristan Gingold + + * exp_ch9.adb (Expand_N_Protected_Body): Remove Num_Entries. + +2014-01-29 Thomas Quinot + + * sem_ch4.adb (Find_Component_In_Instance): Update comment. + +2014-01-29 Ed Schonberg + + * exp_util.adb (Build_Task_Image_Prefix): Indicate that the + resulting string is an internal entity. and thus requires no + initialization. This is relevant when Initialize_ Scalars is + enabled, because the resultant spurious initialization may lead to + secondary stack anomalies that produce a mangled name for a task. + +2014-01-29 Yannick Moy + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): SPARK_Mode + not inherited from spec anymore. Check consistency + rules after processing of declarations. + * sem_ch7.adb (Analyze_Package_Body_Helper): SPARK_Mode not inherited + from spec anymore. Check consistency rules after processing of + declarations. + (Analyze_Package_Declaration): Set SPARK_Mode only for non-generic + packages. + * sem_prag.adb (Analyze_Pragma/Pragma_SPARK_Mode): Implement new + consistency rules. + +2014-01-27 Robert Dewar + + * sem_res.adb (Resolve_Comparison_Op): Add type name/location + to unordered msg. + (Resolve_Range): Add type name/location to unordered msg. + +2014-01-27 Claire Dross + + * a-cofove.adb/s (Copy): Add precondition so that Copy (Source, + Capacity) is only called with Capacity >= Length (Source) and + Capacity in Capacity_Range. + * a-cfdlli.adb/s, a-cfhase.adb/s, a-cfhama.adb/s, a-cforse.adb/s, + a-cforma.adb/s (Copy): Add precondition so that Copy (Source, Capacity) + is only called with Capacity >= Source.Capacity. Raise Capacity_Error + in the code is this is not the case. + +2014-01-27 Thomas Quinot + + * sem_ch4.adb (Analyze_Selected_Component): Fix handling of + selected component in an instance where the component of the + actual is not visibile at instantiation. + +2014-01-27 Ed Schonberg + + * sem_ch6.adb: sem_ch6.adb (Set_Actual_Subtypes): If the type + has a dynamic predicate, generate freeze node for Actual_Subtype + at once, because the declaration of the corresponding predicate + function will make reference to it. + +2014-01-27 Tristan Gingold + + * exp_ch7.adb, exp_ch9.adb: Adjust comments. + +2014-01-27 Robert Dewar + + * exp_ch4.adb (Expand_N_Op_Expon): Remove unsigned type test + for 2**X optimization. + +2014-01-27 Ed Schonberg + + * a-suenst.adb: strings.utf_encoding.strings (Decode): Check + explicitly whether value is in range of Character, because the + library is typically compiled with range checks disabled, and + we cannot rely on the implicit check on the argument of 'Val. + +2014-01-27 Vincent Celier + + * a-ciorma.adb, a-cihama.adb (Assign): Copy the Source to the Target, + not the Target to itself. + +2014-01-27 Robert Dewar + + * vms_conv.ads, ali.adb, sem_ch6.ads, opt.ads, vms_cmds.ads: Minor + changes to avoid incorrect use of unordered enum types. + +2014-01-27 Thomas Quinot + + * sem_ch4.adb: Minor reformatting. + +2014-01-27 Robert Dewar + + * scn.adb (Check_End_Of_Line): Removed. + (Error_Long_Line): Removed. + (Determine_License): Use versions of above routines from Scanner. + * scng.adb (Check_End_Of_Line): Moved to spec. + (Error_Long_Line): Removed, no longer used. + * scng.ads (Check_End_Of_Line): Moved here from body. + +2014-01-27 Tristan Gingold + + * exp_ch7.adb (Build_Cleanup_Statements): Call + Build_Protected_Subprogram_Call_Cleanup to insert the cleanup + for protected body. + * exp_ch9.adb (Build_Protected_Subprogram_Body): Likewise. + Remove Service_Name variable. + (Build_Protected_SUbprogam_Call_Cleanup): New procedure that + factorize code from the above subprograms. + * exp_ch9.ads (Build_Protected_Subprogram_Call_Cleanup): New procedure. + +2014-01-27 Hristian Kirtchev + + * einfo.adb (Has_Option): Reimplemented. + * sem_prag.adb (Analyze_Refinement_Clause): Add global + variables AR_Constit, AW_Constit, ER_Constit, EW_Constit, + External_Constit_Seen and State. Add local variables Body_Ref, + Body_Ref_Elmt and Extra_State. Reimplement part of the logic to + avoid a cumbersome while pool. Verify the legality of an external + state and relevant properties. + (Check_External_Property): New routine. + (Check_Matching_State): Remove parameter profile + and update comment on usage. + (Collect_Constituent): Store the + relevant external property of a constituent. + * sem_util.adb (Async_Readers_Enabled): Update the call to + Has_Enabled_Property. + (Async_Writers_Enabled): Update the call to Has_Enabled_Property. + (Effective_Reads_Enabled): Update the call to Has_Enabled_Property. + (Effective_Writes_Enabled): Update the call to Has_Enabled_Property. + (Has_Enabled_Property): Rename formal parameter Extern to State_Id. + Update comment on usage. Reimplement the logic to recognize the various + formats of properties. + +2014-01-27 Ed Schonberg + + * par-ch5.adb: Minor reformatting. + +2014-01-27 Tristan Gingold + + * s-tposen.ads: Harmonize style and comments. + +2014-01-27 Vincent Celier + + * projects.texi: Document that shared library projects, by + default, cannot import projects that are not shared library + projects. + +2014-01-27 Robert Dewar + + * sem_ch8.adb (Find_Selected_Component): Use Replace instead + of Rewrite. + +2014-01-27 Ed Schonberg + + * a-suenco.adb, a-suenst.adb (Decode): Raise encoding error if + any other exception is raised. + (Convert): If both Input_Scheme and Output_Scheme are UTF_8 it is + still necessary to perform a conversion in order to remove overlong + encodings. + +2014-01-27 Robert Dewar + + * exp_smem.adb: Minor reformatting. + +2014-01-27 Thomas Quinot + + * a-calfor.ads: Fix incorrect reference to operator "-" in comment. + +2014-01-27 Ed Schonberg + + * sem_res.adb (Make_Call_Into_Operator): In ASIS mode, relocate + nodes for operands to the original node for the call, to preserve + Original_Node pointers within the resolved operands, given that + they may have been rewritten as well. Previous approach copied + the operands into a new tree and lost those pointers. + +2014-01-27 Claire Dross + + + * a-cofove.adb, a-cofove.ads: Add Strict_Equal function to the API. + +2014-01-27 Ed Schonberg + + * sem_util.adb (Check_Internal_Protected_Use): A call through + an anonymous access parameter of the current protected function + is not a potential modification of the current object. + +2014-01-27 Ed Schonberg + + * a-cobove.adb (Reserve_Capacity): Procedure raises + Capacity_Error, not Constraint_Error, when request cannot be + satisfied. + +2014-01-27 Vincent Celier + + * a-coorma.adb, a-cohama.adb (Assign): Copy the Source to the Target, + not the Target to itself. + +2014-01-27 Ed Schonberg + + * exp_ch4.adb (Expand_Concatenate): If the target of the + concatenation is a library-level entity, always use the off-line + version of concatenation, regardless of optimization level. This + is space-efficient, and prevents linking problems when some + units are compiled with different optimization levels. + +2014-01-27 Ed Schonberg + + * sem_ch5.adb: Code clean up. + +2014-01-27 Ed Schonberg + + * par-ch5.adb (P_Iterator_Specification): Improve error recovery + when an array or container iterator includes a subtype indication, + which is only legal in an element iterator. + +2014-01-27 Thomas Quinot + + * exp_ch7.adb: Minor reformatting. + +2014-01-27 Robert Dewar + + * opt.adb (SPARK_Mode): Default for library units is None rather + than Off. + * opt.ads: Remove AUTO from SPARK_Mode_Type SPARK_Mode_Type is + no longer ordered. + * sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Remove AUTO + possibility. + * snames.ads-tmpl (Name_Auto): Removed, no longer used. + +2014-01-27 Robert Dewar + + * par-ch5.adb (P_Sequence_Of_Statements): Make entry in + Suspicious_Labels table if we have identifier; followed by loop + or block. + * par-endh.adb (Evaluate_End_Entry): Search Suspicious_Labels table. + * par.adb (Suspicious_Labels): New table. + +2014-01-27 Robert Dewar + + * exp_aggr.adb (Check_Bounds): Reason is range check, not + length check. + +2014-01-27 Yannick Moy + + * get_spark_xrefs.adb (Get_SPARK_Xrefs): Accept new type 'c' for + reference. + * lib-xref-spark_specific.adb (Is_Global_Constant): Remove useless + function now. + (Add_SPARK_Xrefs): Include references to constants. + * spark_xrefs.ads Document new character 'c' for references to + constants. + +2014-01-27 Thomas Quinot + + * exp_smem.adb (Add_Write_After): For a function call, insert write as + an after action in a transient scope. + +2014-01-27 Thomas Quinot + + * exp_smem.adb (Expand_Shared_Passive_Variable): For a reference + to a shared variable as an OUT formal in a call to an init proc, + the 'Read call must be emitted after, not before, the call. + +2014-01-27 Robert Dewar + + * gnat_rm.texi: Remove mention of AUTO mode for SPARK_Mode pragma. + +2014-01-27 Robert Dewar + + * a-wichha.adb (Character_Set_Version): Change to output proper + value. + +2014-01-27 Hristian Kirtchev + + * einfo.adb (Is_Input_Only_State): Removed. + (Is_Non_Volatile_State): Removed. + (Is_Output_State): Removed. + * einfo.ads (Is_Input_Only_State): Remove attribute and + subprogram. Update related entity. + (Is_Non_Volatile_State): + Remove attribute and subprogram. Update related entity. + (Is_Output_State): Removed attribute and subprogram. Update + related entity. + * exp_ch6.adb (Expand_Subprogram_Contract): Update comment on + generated code. + * sem_ch3.adb (Analyze_Declarations): Analyze the contract of + an object, not just variables. + (Analyze_Object_Contract): New routine. + (Analyze_Variable_Contract): Removed. + (Process_Discriminants): Detect an illegal use of volatile + discriminant in SPARK mode. + * sem_ch5.adb (Analyze_Iterator_Specification): + Detect an illegal use of volatile loop variable. + (Analyze_Loop_Parameter_Specification): Detect an illegal use + of volatile loop variable. + * sem_ch6.adb (Process_Formals): Update the volatile object + detection. Detect an illegal formal of mode IN OUT or OUT in + SPARK mode. Enhance the error messages with references. + * sem_ch12.adb (Instantiate_Object): Update the volatile object + detection. Enhance the error messages with references. + * sem_prag.adb (Analyze_Abstract_State): Enhance the error + messages with references. + (Analyze_Contract_Case): Enhance the error messages with references. + (Analyze_External_Property): Call Check_Duplicate_Property to process + an external property. + (Analyze_External_Property_In_Decl_Part): New routine. + (Analyze_External_State_In_Decl_Part): Removed. + (Analyze_Global_Item): Detect an illegal + use of a volatile constant. Detect an illegal use + of a variable with enabled Effective_Reads. Enhance + the error messages with references. Remove obsolete + checks concerning Input_Only and Output_Only states. + (Analyze_Initialization_Item): Enhance the error messages + with references. + (Analyze_Initializes_In_Decl_Part): Do not + collect the states and variables when the initialization list + is null. + (Analyze_Input_Item): Enhance the error messages with references. + (Analyze_Input_Output): Enhance the error messages with references. + (Analyze_Pragma): Enhance the error messages with references. + (Analyze_Refinement_Clause): Code reformatting. + (Analyze_Refined_Depends_In_Decl_Part): + Rename global variable Global to Reg_Global and update all + occurrences. Add local variables D7 and D8. Update the error + messages with references. Update the call to Collect_Global_Items. + (Analyze_Refined_Global_In_Decl_Part): Add local variables + Has_Proof_In_State, Proof_In_Constits and Proof_In_Items. Update + the call to Collect_Global_Items. Account for a Proof_In state + in null / useless refinement checks. Verify the coverage of + Proof_In states. + (Check_Dependency_Clause): Remove local variable + Out_Constits. Remove the retrieval and removal of constituents + for an Output_Only state. Remove the reporting of unused + Output_Only state constituents. + (Check_Duplicate_Mode): Enhance + the error message with a reference. + (Check_Duplicate_Property): New routine. + (Check_Duplicate_Option): Enhance the error message with a reference. + (Check_External_Properties): Enhance the error message with a reference. + (Check_Function_Return): Enhance the error message with a reference. + (Check_In_Out_States): Update + comment on usage. Add a specialized error message for Proof_In + constituents. Enhance the error message with a reference. + (Check_Input_States): Update comment on usage. Account for + possible Proof_In constituents. Enhance the error message + with a areference. + (Check_Matching_Constituent): Enhance the error message with a + reference. + (Check_Matching_State): Enchance the error message with a reference. + (Check_Mode): Add local variable From_Global. Update the call to + Find_Mode. Emit more precise error messages concerning extra items + (Check_Mode_Restriction_In_Enclosing_Context): Consider + pragma Refined_Global. Enhance the error message with a + reference. + (Check_Mode_Restriction_In_Function): Enhance the error message with + a reference. + (Check_Output_States): Update comment on usage. Add local variable + Posted. Account for possible Proof_In constituents. Produce a detailed + list of missing constituents. + (Check_Proof_In_States): New routine. + (Check_Refined_Global_Item): Handle Proof_In + constituents. Enchance the error message with a reference. + (Collect_Global_Items): Add formal parameters Proof_In_Items + and Has_Proof_In_State. Update the comment on usage. Account + for Proof_In items. + (Create_Or_Modify_Clause): Enchance + the error message with a reference. + (Find_Mode): Add + formal parameter From_Global. Update the comment on usage. + Detect when the mode is governed by pragma [Refined_]Global. + (Output_Constituents): Removed. + (Report_Extra_Constituents): + Report extra Proof_In constituents. + (Report_Unused_Constituents): Removed. + (Usage_Error): Code reformatting. Enhance the error + messages with reference. + * sem_prag.ads (Analyze_External_Property_In_Decl_Part): New routine. + (Analyze_External_State_In_Decl_Part): Removed. + * sem_res.adb (Resolve_Actuals): Update the volatile object + detection. Enhance the error message with a reference. + (Resolve_Entity_Name): Update the volatile object + detection. Enhance the error message with a reference. + * sem_util.adb (Is_Refined_State): Add a guard to avoid a crash. + (Is_SPARK_Volatile_Object): New routine. + (Has_Volatile_Component): New routine. + * sem_util.ads (Is_Delegate): Alphabetized. + (Is_SPARK_Volatile_Object): New routine. + (Has_Volatile_Component): New routine. + * snames.ads-tmpl: Remove names Name_Input_Only and Name_Output_Only. + +2014-01-27 Ed Schonberg + + * sem_attr.adb: Resolve fully prefix of 'Update. + +2014-01-27 Ben Brosgol + + * gnat_rm.texi: Minor clarifications. + +2014-01-27 Robert Dewar + + * sem_elab.adb (Check_Internal_Call_Continue): Avoid complaining + about call that is generated as part of an Initial_Condition + check. + * sem_prag.adb: Minor spelling correction. + +2014-01-27 Robert Dewar + + * sem_prag.adb (Set_Convention_From_Pragma): Check that + convention Ghost can only apply to functions. + * einfo.ads, einfo.adb (Is_Ghost_Subprogram): Add clarifying comment. + +2014-01-27 Robert Dewar + + * gnat_ugn.texi: Add Short_Enums to documentation of + -gnatet/-gnateT. + +2014-01-27 Robert Dewar + + * sem_prag.adb (Analyze_Input_Item): Correct check for input + item in same package. + * sem_util.ads, sem_util.adb (Within_Scope): New function. + +2014-01-26 Arnaud Charlet + + * a-intnam-lynxos.ads, mlib-tgt-specific-lynxos.adb, + s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb, + s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, + system-lynxos-ppc.ads, system-lynxos-x86.ads: Removed, no longer + maintained. + +2014-01-25 Eric Botcazou + + * gcc-interface/Makefile.in: Fix oversight. + +2014-01-25 Eric Botcazou + + * gcc-interface/utils.c (convert_to_fat_pointer): Un-obfuscate the + conversion from a thin pointer with a shifted value. + * gcc-interface/utils2.c (gnat_build_constructor): Propagate the + read-only flag from the values onto the result. + (gnat_invariant_expr): Accept read-only CONSTRUCTORs. + +2014-01-25 Tristan Gingold + + * gcc-interface/decl.c (gnat_to_gnu_entity): Always build a variable + for E_Variable with a pragma Linker_Section. + +2014-01-25 Robert Dewar + + * gcc-interface/decl.c (gnat_to_gnu_param): Make sure an Out parameter + with Default_Value aspect is passed in by copy. + +2014-01-24 Eric Botcazou + + * set_targ.adb: Set Short_Enums. + * gcc-interface/lang.opt (fshort-enums): New option. + * gcc-interface/misc.c (gnat_handle_option): Handle it. + (gnat_post_options): Do not modify the global settings. + +2014-01-24 Robert Dewar + + * g-rannum.ads, g-rannum.adb (Random_Ordinary_Fixed): New generic + function. + (Random_Decimal_Fixed): New generic function. + * s-rannum.ads: Minor comment clarifications. + +2014-01-24 Robert Dewar + + * back_end.adb: Remove Short_Enums handling (handled in + Ttypes/Get_Targ now) Minor added comments. + * freeze.adb: Change name Short_Enums_On_Target to + Target_Short_Enums. + * get_targ.ads, get_targ.adb (Get_Short_Enums): New function. + * opt.ads: Minor comment updates. + * sem_ch13.adb: Change name Short_Enums_On_Target to + Target_Short_Enums. + * set_targ.adb: Set Short_Enums from gcc back end. + * set_targ.ads (Short_Enums): New variable. + * targparm.ads, targparm.adb: Remove Short_Enums entries (handled in + Ttypes/Get_Targ now). + * ttypes.ads (Target_Short_Enums): New constant boolean switch + +2014-01-24 Pascal Obry + + * g-sercom-mingw.adb: Fix serial port name for port number > 10. + +2014-01-24 Gary Dismukes + + * exp_disp.adb (Expand_Dispatching_Call): Call Unqualify on Param when + comparing it with Ctrl_Arg, since Ctrl_Arg may have had qualification + stripped off. + +2014-01-24 Robert Dewar + + * sinfo.ads, make.adb, prj-env.adb: Minor reformatting. + +2014-01-24 Vincent Celier + + * prj.adb (Add_Aggregated_Project): Do not add a project in + the list if it is already there. + +2014-01-24 Yannick Moy + + * lib-xref-spark_specific.adb (Enclosing_Subprogram_Or_Package): + Correct the search for a subrogram declaration to which a pragma is + attached. + +2014-01-24 Bob Duff + + * gnat_ugn.texi: Document --decimal-grouping and + --based-grouping switches in gnatpp. + +2014-01-24 Ed Schonberg + + * sinfo.ads: Documentation update. + +2014-01-24 Ed Schonberg + + * sem_ch3.adb (Constant_Redeclaration): New declaration is + illegal if previous one has an initial expression that is an + aggregate expanded into assignments. + +2014-01-24 Ed Schonberg + + * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Small + code reorganization to remove spurious warning on a loop with + an array element iterator that has a null range. + +2014-01-24 Vincent Celier + + * make.adb (Binding_Phase): When setting the Ada paths, use + the library ALI dir, not the object dir in libraries. + +2014-01-24 Yannick Moy + + * sinfo.ads: Add documentation of check flag fields. + +2014-01-24 Ed Schonberg + + * sem_res.adb (Resolve_Actuals): If an actual is a view + conversion of a discriminated object, and the formal type is + discriminated and constrained, apply a discriminant check to + the object itself. + +2014-01-24 Robert Dewar + + * prj.adb, prj-env.adb, back_end.adb: Add comment, minor code clean ups. + +2014-01-24 Ed Schonberg + + * sem_ch3.adb (Analyze_Declarations): At the end of an + appropriate declarative part, call Freeze_All from the first + declaration in the scope, not from the first unfrozen one. This + is necessary to apply visibility checks to entities with delayed + aspects. Otherwise, in the presence of instantiations and cleanups + that they may generate, the delayed aspects may be analyzed too + late and produce spurious visibility errors. + * sem_attr.adb: Place etype on range. + * sem_ch6.adb: Documentation expression functions. + +2014-01-24 Robert Dewar + + * exp_ch7.adb: Minor change of Indices to Indexes (preferred + terminology in compiler). + +2014-01-24 Robert Dewar + + * scans.ads: Remove Tok_Raise from Sterm, Eterm, After_SM + categories, now that Ada 95 supports raise expressions. + +2014-01-24 Robert Dewar + + * freeze.adb (Freeze_Enumeration_Type): Use new target parameter + Short_Enums_On_Target. + * sem_ch13.adb (Set_Enum_Esize): Take Short_Enums_On_Target + into account. + * targparm.ads, targparm.adb: Add new target parameter Short_Enums. + +2014-01-24 Ed Schonberg + + * sem_ch5.adb (Analyze_Iterator_Specification): If subtype + indication is given explicity, check that it matches the array + component type or the container element type of the domain + of iteration. + +2014-01-24 Tristan Gingold + + * back_end.adb (Scan_Compiler_Arguments): Set Short_Enums_On_Target. + * gcc-interface/misc.c (flag_short_enums): Declare. + (gnat_post_options): Set it. + +2014-01-24 Vincent Celier + + * prj-env.adb (Ada_Objects_Path): Use Ada_Objects_Path_No_Libs + to cache the result when Including_Libraries is False. + * prj-env.ads (Ada_Objects_Path): Update documentation + * prj.adb (Free (Project_Id)): Also free Ada_Objects_Path_No_Libs + (Get_Object_Directory): Return the Library_Ali_Dir only when + when Including_Libraries is True. + * prj.ads (Get_Object_Directory): Fix and complete documentation + (Project_Data): New component Ada_Objects_Path_No_Libs + +2014-01-24 Robert Dewar + + * checks.adb (Expr_Known_Valid): Result of fpt operator never + considered valid. + +2014-01-24 Eric Botcazou + + * back_end.adb: Minor fix in comment. + +2014-01-24 Javier Miranda + + * sem_ch3.adb (Check_Abstract_Overriding): Code reestructuration + required to report the error in case of task types. + +2014-01-24 Ed Schonberg + + * sem_attr.adb: Additional index checking. + +2014-01-24 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case 'Update): Analyze + expressions in each component association, and for records note + the entity in each association choice, for subsequent resolution. + (Resolve_Attribute, case 'Update): Complete resolution of + expressions in each component association. + +2014-01-24 Robert Dewar + + * sem.adb (Sem): Avoid premature reference to Current_Sem_Unit + (this was causing Is_Main_Unit_Or_Main_Unit_Spec to be set wrong, + leading to wrong handling of SPARK_Mode for library units). + +2014-01-24 Robert Dewar + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set SPARK_Mode + on generic instances (do not consider them to be internally + generated) + +2014-01-24 Doug Rupp + + * s-osinte-android.ads (pthread_sigmask): Import sigprocmask + vice pthread_sigmask. + +2014-01-24 Vincent Celier + + * prj.adb (Debug_Output (Str, Str2)): Output if verbosity is + not default. + +2014-01-24 Vincent Celier + + * prj-ext.adb (Add): Do not output anything when Silent is True, + whatever the verbosity. When Source is From_External_Attribute, + set the corresponding environment variable if it is not already set. + * prj-ext.ads (Add): New Boolean parameter Silent, defaulted + to False + * prj-proc.adb (Process_Expression_For_Associative_Array): + For attribute External, call Prj.Ext.Add with Silent set to + True for the child environment, to avoid useless output in non + default verbosity. + +2014-01-24 Ed Schonberg + + * sem_res.adb (Set_Slice_Subtype): Handle properly a discrete + range given by a subtype indication, and force evaluation of + the bounds, as for a simple range. + * exp_util.adb (Evaluate_Slice_Bounds): Utility to force evaluation + of bounds of slice for various kinds of discrete ranges. + (Evaluate_Name, Evaluate_Subtype_From_Expr): use + Evaluate_Slice_Bounds. + +2014-01-24 Bob Duff + + * s-taskin.ads (Activator): Make this Atomic, because + Activation_Is_Complete reads it, and that can be called + from any task. Previously, this component was only + modified by the activator before activation, and by + Self after activation. + * a-taside.ads, a-taside.adb (Environment_Task, + Activation_Is_Complete): Implement these missing functions. + +2014-01-24 Doug Rupp + + * init.c: Add a handler section for Android. + +2014-01-24 Arnaud Charlet + + * i-cexten.ads (Unsigned_33..64, Unsigned_33..64): New types. + +2014-01-24 Ed Schonberg + + * sem_ch4.adb (Operator_Check): If one operand is a + Raise_Expression, set its type to that of the other operand. + * sem_res.adb (Resolve_Raise_Expression): new procedure. + (Resolve_Actuals): For an actual that is a Raise_Expression, + set the type to that of the formal. + * sem_type.adb (Find_Unique_Type): If one of the operands is a + Raise_Expression, return type of the other operand. + +2014-01-24 Ed Schonberg + + * sem_aggr.adb (Resolve_Record_Aggregate): If a scalar + component of the record has a type with a default aspect, and + the corresponding aggregate component is initiaized with a box, + use the default value in the rewritten aggregate. + +2014-01-24 Tristan Gingold + + * s-interr.ads, s-interr.adb, s-interr-hwint.adb, s-interr-vms.adb, + s-interr-sigaction.adb, + s-interr-dummy.adb (Install_Restricted_Handlers): Add Prio parameter. + * exp_ch9.adb (Make_Initialize_Protection): Add Prio parameter + to the call to Install_Restricted_Handlers. + +2014-01-24 Emmanuel Briot + + * prj-nmsc.adb (Check_File): Add protection when the source is + not fully initialized. + +2014-01-24 Ed Schonberg + + * sem_util.adb (Is_Post_State): In a postcondition, a selected + component that denotes an implicit dereference is a reference + to the post state of the subprogram. + +2014-01-24 Robert Dewar + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): SPARK_Mode OFF + for generated subprograms. + (Analyze_Subprogram_Specification): Ditto. + +2014-01-24 Vincent Celier + + * prj-dect.adb (Check_Attribute_Allowed): Detect more forbidden + attributes in package Builder of aggregate and aggregate library + projects. + * prj-nmsc.adb (Process_Naming_Scheme.Check.Check_Aggregate): + Remove procedure (Process_Naming_Scheme.Check.Check_Aggregated): + Remove parameters. Change error message from "... externally + build library ..." to "... externally built project ...". + (Process_Naming_Scheme.Check): Do not do any check in aggregate + project, as attribute Library_Dir and Library_Name have already + been detected as forbidden. + +2014-01-24 Vincent Celier + + * prj-env.adb (Find_Project): If cached project path is not in + project directory, look in current directory first and use cached + project path only if project is not found in project directory. + +2014-01-24 Robert Dewar + + * sem_util.adb, lib-xref.adb: Correct false positive warnings. + +2014-01-24 Vincent Celier + + * projects.texi: Document that aggregate projects are only + supported by gprbuild, but not by gnatmake. Document that the + only attribute Switches in package Binder of aggregate projects + will be ignored if its index is not others. Document that + attribute Global_Config_File is allowed in package Binder of + aggregate projects. + +2014-01-24 Robert Dewar + + * sem_prag.adb: Minor code reorganization. + * sem_util.adb: Minor fix of potential latent bug in Is_LHS. + +2014-01-24 Pascal Obry + + * prj-attr.adb, projects.texi, snames.ads-tmpl: Add Excluded_Patterns + attribute definition. + +2014-01-24 Vincent Celier + + * makeutl.adb (Queue.Insert_No_Roots): In gprbuild, do not put + in the Queue the same source (same path, same multi-source index) + from the same project file, to avoid compiling several times + the same source. + +2014-01-24 Eric Botcazou + + * einfo.ads (First_Rep_Item): Remove obsolete stuff. + (Has_Gigi_Rep_Item): Likewise. + * sem_prag.adb (Analyze_Pragma) : Do not set + Has_Gigi_Rep_Item for objects. + * gcc-interface/decl.c (prepend_one_attribute_to): Rename into... + (prepend_one_attribute): ...this. + (prepend_one_attribute_pragma): New function extracted from... + (prepend_attributes): ...here. Swap the parameters for consistency. + (gnat_to_gnu_entity): Adjust calls to prepend_one_attribute_to and to + prepend_attributes. + : Deal with a pragma Linker_Section on a constant + or variable. : Deal with a pragma Linker_Section + on a subprogram. + (get_minimal_subprog_decl): Adjust calls to prepend_one_attribute_to. + +2014-01-24 Vincent Celier + + * opt.ads: Minor comment update. + +2014-01-24 Robert Dewar + + * sem_prag.adb (Analyze_Input_Output): Add missing error check + for junk operand. + * sem_util.adb (Is_Refined_State): Add defense against junk + tree from error. + +2014-01-24 Pascal Obry + + * projects.texi: Removes Build_Slaves attribute documentation. + +2014-01-23 Robert Dewar + + * opt.adb (Register_Opt_Config_Switches): Save SPARK_Mode_Pragma + setting. + +2014-01-23 Ed Schonberg + + * sem_util.adb (Is_Potentially_Unevaluated): Predicate only + applies to expressions that come from source. + * sem_attr.adb (Analyze_Attribute, case 'Old): Improve error + message. + (Analyze_Attribute, case 'Loop_Entry): Apply SPARK 2014 legality + rule regarding potentially unevaluated expressions, to prefix + of attribute. + +2014-01-23 Ed Schonberg + + * exp_util.adb (Make_Invqriant_Call): If type of expression is + a private extension, get invariant from base type. + +2014-01-23 Robert Dewar + + * sem_util.adb, sem_attr.adb: Minor reformatting. + +2014-01-23 Robert Dewar + + * opt.adb (Save_Opt_Config_Switches): Save SPARK_Mode_Pragma + (Restore_Opt_Config_Switches): Restore SPARK_Mode_Pragma. + * sem.adb (Semantics): Remove save/restore of + SPARK_Mode[_Pragma]. Not needed since already done in + Save/Restore_Opt_Config_Switches. + +2014-01-23 Robert Dewar + + * gnat_rm.texi, einfo.adb, einfo.ads, sem_prag.adb, gnat_ugn.texi, + freeze.adb, repinfo.adb, aspects.adb, aspects.ads, sem_ch13.adb: + Linker_Section enhancements. + +2014-01-23 Tristan Gingold + + * gnat_rm.texi: Minor editing. + +2014-01-23 Robert Dewar + + * opt.adb (Set_Opt_Config_Switches): Reset SPARK mode for + with'ed internal units. + * sem.adb (Semantics): Save and restore SPARK_Mode[_Pragma]. + +2014-01-23 Javier Miranda + + * lib-xref.adb (Generate_Reference): As part of processing the + "end-of-spec" reference generate an extra reference to the first + private entity of the package. + * xr_tabls.adb (Add_Reference): No action needed for the extra + 'E' reference associated; similar to the processing of the + 'e' reference. + +2014-01-23 Bob Duff + + * gnat_ugn.texi: Change "--&pp off" to "--!pp off". + +2014-01-23 Ed Schonberg + + * sem_util.ads, sem_util.adb (Is_Potentially_Unevaluated): new + predicate to implement rule given in 6.1.1 (20/3). + * sem_attr.adb (Analyze_Attribute, case 'Old): Reject prefix of + 'Old in a postcondition, if it is potentially unevaluated and + it is not an entity name. + +2014-01-23 Bob Duff + + * gnat_ugn.texi: Document the new "--&pp off" feature of gnatpp. + +2014-01-23 Robert Dewar + + * gnatlink.adb (Gnatlink): Fix problem of generating bad name + msg on VMS. + +2014-01-23 Bob Duff + + * g-dynhta.ads: Minor comment fix. + +2014-01-23 Yannick Moy + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Inherit SPARK_Mode + from spec on body only when not already inherited on spec. Set + SPARK_Mode from context on body without previous spec. * + * sem_prag.adb (Analyze_Pragma): Check placement of pragma on + library-level entities. Correct retrieval of entity from + declaration, for cases where the declaration is not a unit. + * sem_ch12.adb (Instantiate_Object): Avoid + calling Is_Volatile_Object on an empty node. + +2014-01-23 Robert Dewar + + * gnatlink.adb (Gnatlink): Check for suspicious executable file + names on windows. + +2014-01-23 Robert Dewar + + * a-ngelfu.ads: Remove bad uses of AND which should be AND THEN. + * sem_res.adb (Check_No_Direct_Boolean_Operators): Don't give + style errors in instances. + * g-dynhta.ads (Static_HTable): Comment updates. + +2014-01-23 Vincent Celier + + * prj-conf.adb (Get_Or_Create_Configuration_File): Do not attempt + to find a configuration project file when Config_File_Name is + No_Configuration_File. + * prj-conf.ads (No_Configuration_File): New constant String. + * prj-pars.adb (Parse): Call Get_Or_Create_Configuration_File + with Config_File_Name set to No_Configuration_File, so that + no existing configuration project file will be used, and the + configuration project will be only created in memory when + Add_Default_GNAT_Naming_Scheme is called. + * projects.texi: Minor reformatting. + +2014-01-23 Vincent Celier + + * prj-conf.adb (Get_Or_Create_Configuration_File): Never parse + a config project file if On_Load_Config is not null. + * prj-pars.adb: Minor comment changes. + +2014-01-23 Ed Schonberg + + * lib-xref.adb (Output_References): Output progenitors of + synchronized tagged types, for source navigation. + +2014-01-23 Robert Dewar + + * exp_util.adb, sinfo.adb, sinfo.ads, sem.adb, sem_res.adb, + expander.adb, exp_ch11.adb, exp_ch11.ads, sem_ch11.adb, sem_ch11.ads, + sprint.adb, sprint.ads: Remove unused node N_Subprogram_Info. + +2014-01-23 Emmanuel Briot + + * prj-conf.adb (Get_Or_Create_Configuration_File): call + On_Load_Config later. + +2014-01-23 Hristian Kirtchev + + * sem_ch3.adb (Analyze_Declarations): Do not + generate the spec of the late primitive in ASIS mode. Add two + comments to explain the special cases when the expansion is + not performed. + +2014-01-23 Robert Dewar + + * sem_util.adb (Note_Possible_Modification): Fix error of + misbehaving for implicit dereference cases in -gnatc mode. + +2014-01-23 Emmanuel Briot + + * prj-pars.adb: Minor reformatting. + +2014-01-22 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): A subprogram + body generated for an expression function within a protected body + needs a set of renaming declarations if the expression function + comes from source. + +2014-01-22 Ed Schonberg + + * lib-xref.adb (Get_Type_Reference): In semantics-only mode, + list interface progenitor of a tagged concurrent type, for better + source navigation. + +2014-01-22 Robert Dewar + + * lib.adb (In_Extended_Main_Code_Unit): Return False for + Standard_Location. + (In_Extended_Main_Source_Unit): Return False for Standard_Location. + * lib.ads (In_Extended_Main_Code_Unit): Add documentation on + treatment of Slocs No_Location and Standard_Location. + * restrict.adb (Check_Restriction_No_Dependence): Explicitly + check for entity with Standard_Location Sloc, rather than relying + on Lib routines to do that. + * sem_res.adb (Resolve_Call): Implement SPARK_05 restriction + that a call cannot occur before a later occuring body within + the same unit. + +2014-01-22 Thomas Quinot + + * rtsfind.adb: Update comment. + +2014-01-22 Hristian Kirtchev + + * sem_aux.ads, sem_aux.adb (Is_Body): New routine. + * sem_ch3.adb (Analyze_Declarations): Add local variable + Body_Seen. Generate the spec of a late controlled + primitive body that is about to freeze its related type. + (Handle_Late_Controlled_Primitive): New routine. + +2014-01-22 Robert Dewar + + * a-stream.adb: Minor reformatting. + +2014-01-22 Ed Schonberg + + * sem_ch8.adb (From_Actual_Package): Introduce a recursive + sub-procedure Declared_In_Actual to handle properly the visibility + of actuals in actual packages, that are themselves actuals to a + actual package of the current instance. This mimics properly the + visibility of formals of formal packages declared with a box, + within the corresponding generic unit. + +2014-01-22 Robert Dewar + + * checks.adb: Do not assume that a volatile variable is valid. + +2014-01-22 Thomas Quinot + + * g-catiio.ads (Image, Value): Clarify that these functions + operate in the local time zone. Minor documentation update. + +2014-01-22 Thomas Quinot + + * csets.adb, csets.ads, opt.ads: Minor documentation fixes. + +2014-01-22 Robert Dewar + + * sem_aux.adb, sem_aux.ads, sem_ch3.adb (Has_Unconstrained_Elements): + Moved to sem_aux.adb. + +2014-01-22 Robert Dewar + + * vms_data.ads: Minor reformatting. + +2014-01-22 Robert Dewar + + * debug.adb: Document messages affected by -gnatd.E including + the new ones that relate to late definition of equality. + * sem_ch6.adb (Check_Untagged_Equality): In Ada 2012 mode, if + debug flag -gnatd.E is set, then generate warnings rather than + errors. + (Check_Untagged_Equality): In earlier versions of Ada, + generate warnings if Warn_On_Ada_2012_Incompatibility flag is set. + +2014-01-22 Robert Dewar + + * sem_prag.adb (Usage_Error): Output additional messages for + unconstrained OUT parameters lacking an input dependency. + +2014-01-22 Robert Dewar + + * sem_ch4.adb: Minor reformatting. + +2014-01-22 Robert Dewar + + * restrict.ads: Minor reformatting. + * sem_res.adb (Resolve_Call): Check for SPARK_05 restriction that + forbids a call from within a subprogram to the same subprogram. + +2014-01-22 Thomas Quinot + + * a-stream.ads (Read_SEA, Write_SEA): New subprograms, optimized + stream attributes for Stream_Element_Array. + * a-stream.adb (Read_SEA, Write_SEA): Bodies for the above. + * rtsfind.adb (Check_CRT): Do not reject a reference to an entity + defined in the current scope. + +2014-01-22 Robert Dewar + + * debug.adb, exp_ch4.adb, erroutc.adb: Minor reformatting. + +2014-01-22 Thomas Quinot + + * sem_ch7.adb, sem_ch8.adb, exp_ch3.adb: Minor reformatting. + +2014-01-22 Thomas Quinot + + * sem_ch3.adb (Analyze_Object_Declaration): For a constant + declaration initialized with a function call, whose type + has variable size, need to remove side effects so that the + initialization expression becomes a dereference of a temporary + reference to the function result. + +2014-01-22 Yannick Moy + + * errout.adb (Initialize): Remove trick to add dummy entry + in Warnings table. + * erroutc.adb (Set_Warnings_Mode_Off, + Set_Warnings_Mode_On): Do nothing if warnings are suppressed by + command line switch. + * opt.ads (Warning_Mode): Document behavior + wrt pragma Warnings, in normal mode and in GNATprove_Mode. + +2014-01-22 Robert Dewar + + * sem_ch3.adb, errout.adb, erroutc.adb: Minor reformatting. + +2014-01-22 Robert Dewar + + * sem_ch13.adb (Check_Pool_Size_Clash): New procedure + (Analyze_Attribute_Definition_Clause, case Storage_Pool): call + Check_Pool_Size_Clash (Analyze_Attribute_Definition_Clause, + case Storage_Size): call Check_Pool_Size_Clash. + +2014-01-22 Robert Dewar + + * sem_ch3.adb, exp_util.adb, sem_dim.adb, sem_elab.adb, sem_ch8.adb, + sem_eval.ads: Minor reformatting. + +2014-01-22 Thomas Quinot + + * sem_eval.adb (Compile_Time_Known_Bounds): Return False for + Any_Composite to prevent cascaded errors. + +2014-01-22 Yannick Moy + + * errout.adb (Initialize): Do not insert special entry in Warnings + table in GNATprove_Mode. + * erroutc.adb (Set_Warnings_Mode_On): Add info in Warnings table in + GNATprove_Mode. + * gnat1drv.adb (Adjust_Global_Switches): Do not suppress frontend + warnings anymore. + +2014-01-22 Robert Dewar + + * sem_prag.adb (Analyze_Initializes_In_Decl_Part): Handle null + initializes case. + +2014-01-22 Robert Dewar + + * snames.ads-tmpl: Update header. + +2014-01-22 Thomas Quinot + + * exp_util.adb (Insert_Actions): When inserting actions on a + short circuit operator that has already been analyzed, do not park + actions in node; instead introduce an N_Expression_With_Actions + and insert actions immediately. + Add guard for unexpected case of climbing up through statement + in Actions list of an N_Expression_With_Actions. + * sem_elab.adb (Insert_Elab_Check): Remove complex + specialized circuitry for the case where the context is already + analyzed, as it is not needed and introduces irregularities in + finalization. Instead rely on the above change to Insert_Actions + to ensure that late insertion on short circuit operators works + as expected. + +2014-01-22 Ed Schonberg + + * sem_ch4.adb (Operator_Check): Improve error message when an + operand of concatenation is an access type. + +2014-01-22 Thomas Quinot + + * sem_dim.adb (Analyze_Dimension_Identifier): Add guard against + cascaded error. + +2014-01-22 Ed Schonberg + + * sem_ch8.adb (Find_Selected_Component): Handle properly the case + of an expanded name in a proper body, whose prefix is a package + in the context of the proper body, when there is a homonym of + the package declared in the parent unit. + +2014-01-22 Robert Dewar + + * sem_warn.adb (Check_Use_Clause): Don't give no entities used + msg if errors found. + (Check_One_Unit): Same change. + +2014-01-22 Robert Dewar + + * ug_words: Add missing/wrong entries for VMS warning switches. + * sem_prag.adb (Check_Duplicate_Pragma): Avoid flagging parent type. + +2014-01-22 Jerome Guitton + + * mlib-tgt-specific-vxworks.adb (Get_Target_Suffix): Replace xscale by + arm. + +2014-01-22 Robert Dewar + + * gnat_rm.texi, gnat_ugn.texi: Document passive task optimization + +2014-01-22 Eric Botcazou + + * gcc-interface/Makefile.in: Minor fixes. + +2014-01-21 Robert Dewar + + * par-ch4.adb (P_If_Expression): Rewritten to improve error recovery. + * par-ch5.adb (P_Condition): New version with expression prescanned. + * par.adb (P_Condition): New version with expression prescanned. + +2014-01-21 Robert Dewar + + * gnat_rm.texi: Document that Allow_Integer_Address is ignored + if Address is not a private type. + * sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address): + Ignore pragma if System.Address is not a private type. + +2014-01-21 Arnaud Charlet + + * namet.ads (Name_Len): Initialize to 0 to avoid accessing an + uninitialized value. + +2014-01-21 Thomas Quinot + + * gnat_rm.texi (Scalar_Storage_Order): Update documentation. + +2014-01-21 Ed Schonberg + + * sem_ch12.adb (Set_Instance_Env): In Ada 2012 mode, preserve + the value of Assertions_Enabled flag when compiling an instance of + an internal unit. This facilitates the use of pre/postconditions + in generic internal units, such as the new elementary function + libraries. + +2014-01-21 Robert Dewar + + * exp_aggr.adb: Minor reformatting. + * sem_attr.adb: Minor reformatting. + * sem_res.adb: Minor comment addition. + * einfo.adb: Minor comment updates. + * freeze.adb: Minor reformatting and code reorganization. + +2014-01-21 Ed Schonberg + + * par-ch4.adb (P_If_Expression): Handle more gracefully an + elsif clause that does not have an else part. + +2014-01-21 Robert Dewar + + * checks.adb, sem_util.ads, sem_ch4.adb: Minor reformatting. + * gcc-interface/Makefile.in: clean up target pairs. + +2014-01-21 Pascal Obry + + * projects.texi: Minor typo fix. + +2014-01-21 Thomas Quinot + + * freeze.adb (Check_Component_Storage_Order): If a record type + has an explicit Scalar_Storage_Order attribute definition clause, + reject any component that itself is of a composite type and does + not have one. + +2014-01-21 Ed Schonberg + + * sem_ch10.adb (Generate_Parent_Reference): Make public so it + can be used to generate proper cross-reference information for + the parent units of proper bodies. + +2014-01-21 Thomas Quinot + + * exp_pakd.adb (Expand_Packed_Element_Set, + Expand_Packed_Element_Reference): No byte swapping required in + the front-end for the case of a reverse storage order array, + as this is now handled uniformly in the back-end. However we + still need to swap back an extracted element if it is itself a + nested composite with reverse storage order. + +2014-01-21 Hristian Kirtchev + + * sem_prag.adb (Analyze_External_Property): Add processing for "others". + (Analyze_Pragma): Update the grammar of pragma Abstract_State to + include "others". + +2014-01-21 Arnaud Charlet + + * gnat_ugn.texi: Minor updates. + +2014-01-21 Thomas Quinot + + * exp_pakd.adb: Update comment, minor reformatting. + +2014-01-21 Hristian Kirtchev + + * sem_ch3.adb (Analyze_Variable_Contract): Trigger the volatile + object check when SPARK_Mode is on. + * sem_ch6.adb (Process_Formals): Trigger the volatile object + check when SPARK_Mode is on. + * sem_ch12.adb (Instantiate_Object): Trigger the volatile object + check when SPARK_Mode is on. + * sem_ch13.adb (Analyze_Aspect_Specifications): Insert the + corresponding pragma of aspect SPARK_Mode in the visible + declarations of a package declaration. + * sem_prag.adb (Analyze_Pragma): Trigger the volatile object + check when SPARK_Mode is on. + * sem_res.adb (Resolve_Actuals): Trigger the volatile object + check when SPARK_Mode is on. + (Resolve_Entity_Name): Trigger + the volatile object check when SPARK_Mode is on. + +2014-01-21 Robert Dewar + + * sem_ch3.adb, sem_prag.adb, sem_prag.ads, sem_ch12.adb, sem_res.adb, + sem_ch6.adb, a-except-2005.adb: Minor reformatting. + +2014-01-21 Ed Schonberg + + * exp_ch3.adb (Expand_N_Object_Declaration): When a class-wide + object is declared, it is rewritten as a renaming of an dynamic + expression that wraps the initial value. The renaming declaration + is first given an internal name, to prevent collisions with the + entity already declared, and then the name is modified to reflect + the original one. the modification of the name must preserve + the source location of the original, to prevent spurious errors + when compiling with style checks if the declaration involves + more than one entity. + +2014-01-21 Hristian Kirtchev + + * aspects.adb Add entries for Async_Readers, Async_Writers, + Effective_Reads and Effective_Writes in table Canonical_Aspect. + * aspects.ads Add entries for Async_Readers, Async_Writers, + Effective_Reads and Effective_Writes in tables Aspect_Id, + Aspect_Names, Aspect_Delay and Implementation_Defined_Aspect. + * atree.adb (Ekind_In): New version with 8 parameters. + (Node34): New routine. + (Set_Node34): New routine. + * atree.ads (Ekind_In): New version with 8 parameters. + (Node34): New routine. + (Set_Node34): New routine. + * einfo.adb Contract is now Node34. + (Contract): Update the assertion and node usage. + (Get_Pragma): Include pragmas Async_Readers, Async_Writers, + Effective_Reads and Effective_Writes. + (Set_Contract): Update the assertion and node usage. + (Write_Field24_Name): Remove the output for a contract. + (Write_Field34_Name): Add output for a contract. + * einfo.ads Contract is now Node34. Update the comment on + attribute usage and related node structures. + (Get_Pragma): Update the comment on usage. + * par-prag.adb (Prag): Pragmas Async_Readers, Async_Writers, + Effective_Reads and Effective_Writes do not require special + processing by the parser. + * sem_ch3.adb (Analyze_Variable_Contract): New routine. + (Analyze_Declarations): Analyze the contract of a variable at + the end of the declarative region. + (Analyze_Object_Declaration): Create a contract for a variable. + * sem_ch6.adb (Analyze_Subprogram_Contract): Update the retrieval + of classification pragmas. + (Process_Formals): Detect an illegal + use of a volatile object as a formal in a function. + * sem_ch12.adb (Instantiate_Object): Detect an illegal use of + a volatile object as an actual in generic instantiation. + * sem_prag.adb Add entries for Async_Readers, Async_Writers, + Effective_Reads and Effective_Writes in table Sig_Flags. + (Analyze_External_State_In_Decl_Part): New routine. + (Analyze_Global_Item): Detect an illegal use of a volatile object + as a global item of a function. + (Analyze_Pragma): Reimplement + pragma Abstract_State. Add support for pragmas Async_Readers, + Async_Writers, Effective_Reads and Effective_Writes. + (Check_External_Properties): New routine. + * sem_prag.ads (Analyze_External_State_In_Decl_Part): New routine. + (Check_External_Properties): New routine. + * sem_res.adb (Resolve_Actuals): Detect an illegal use of a + volatile object as an actual in a call. + (Resolve_Entity_Name): + Add local variables Par, Prev and Usage_OK. Detect illegal + contexts of volatile objects. + * sem_util.adb (Add_Contract_Item): Add support for + pragmas associated with the contract of a variable. + (Async_Readers_Enabled): New routine. + (Async_Writers_Enabled): New routine. + (Effective_Reads_Enabled): New routine. + (Effective_Writes_Enabled): New routine. + (Has_Enabled_Property): + New routine. + (Is_Unchecked_Conversion_Instance): New routine. + (Is_Volatile_Object): Add support for entities that may denote + a volatile object. + * sem_util.ads (Add_Contract_Item): Update the + comment on usage. + (Async_Readers_Enabled): New routine. + (Async_Writers_Enabled): New routine. + (Effective_Reads_Enabled): New routine. + (Effective_Writes_Enabled): New routine. + (Is_Unchecked_Conversion_Instance): New routine. + * sinfo.ads Update the comment on the structure of N_Contract. + * snames.ads-tmpl Add predefined names for Async_Readers, + Async_Writers, Effective_Reads and Effective_Writes. Add + pragma ids for Async_Readers, Async_Writers, Effective_Reads + and Effective_Writes. + +2014-01-21 Robert Dewar + + * exp_ch4.adb (Eval_Op_Expon): Use CRT_Safe_Compile_Time_Known_Value + * sem_eval.adb (Compile_Time_Known_Value): Remove special + handling of CRT mode (CRT_Safe_Compile_Time_Known_Value): New + function (Eval_Op_Expon): Add CRT_Safe in call to Test_Foldable + (Test_Foldable): Add CRT_Safe parameter + * sem_eval.ads (Compile_Time_Known_Value): Remove special + handling of CRT mode. + (CRT_Safe_Compile_Time_Known_Value): New function. + +2014-01-21 Robert Dewar + + * sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Fix problem + with pragma or aspect that applies to package spec or subprogram + spec. + +2014-01-21 Robert Dewar + + * exp_aggr.adb: Minor reformatting. + +2014-01-21 Johannes Kanig + + * gnat1drv.adb (Gnat1drv) remove obsolete reference to -gnatd.H. + +2014-01-21 Bob Duff + + * gnat_ugn.texi: Document the "checks" attribute in gnat2xml. + +2014-01-21 Steve Baird + + * gnat_rm.texi: Improve description of SPARK_Mode pragma. + +2014-01-21 Vincent Celier + + * prj-part.adb (Parse_Single_Project): Accept to extend a project + if it has only be imported by an project being extended. When a + project that has only been imported by a project being extended + is imported by another project that is not being extended, + reset the previous indication, so that it will be an error if + this project is extended later. + * prj-tree.adb (Create_Project): Include component From_Extended + in table Projects_HT + * prj-tree.ads (Project_Name_And_Node): New Boolean component + From_Extended + +2014-01-21 Robert Dewar + + * atree.ads, atree.adb: Add Node33 and Set_Node33. + * einfo.ads, einfo.adb (SPARK_Pragma): New field (SPARK_Aux_Pragma): + New field (SPARK_Pragma_Inherited): New flag + (SPARK_Aux_Pragma_Inherited): New flag (SPARK_Mode_Pragmas): + Removed. + * lib.ads, lib.adb: Remove SPARK_Mode_Pragma, no longer used. + * opt.ads (SPARK_Mode_Pragma): New global variable. + * sem.ads: Add Save_SPARK_Mode_Pragma field to Scope_Stack_Entry. + * sem_ch3.adb: Use new SPARK_Mode data structures. + * sem_ch6.adb: Set SPARK_Mode fields in subprogram specs and bodies. + * sem_ch7.adb: Set SPARK_Mode fields in package spec and body entities. + * sem_ch8.adb (Push_Scope): Save SPARK_Mode_Pragma. + (Pop_Scope): Restore SPARK_Mode_Pragma. + * sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Rewrite for + new data structures. + +2014-01-21 Arnaud Charlet + + * back_end.adb: Undo previous change, not needed. Minor reformatting. + +2014-01-21 Thomas Quinot + + * exp_ch5.adb: Fix comment. + * switch-c.adb: Minor comment update. + * exp_ch3.adb: Minor reformatting. + +2014-01-21 Arnaud Charlet + + * back_end.adb (Scan_Compiler_Arguments): Do not store object + filename in gnatprove mode. + +2014-01-21 Thomas Quinot + + * sinfo.ads (No_Ctrl_Actions): Clarify documentation (flag also + suppresses usage of primitive _assign for tagged types). + * exp_aggr.adb (Build_Array_Aggr_Code.Gen_Assign): Set + No_Ctrl_Actions for a tagged type that does not require + finalization, as we want to disable usage of _assign (which + may cause undesirable discriminant checks on an uninitialized, + invalid target). + +2014-01-21 Ed Schonberg + + * sem_prag.adb: Reject invariant'class on completion. + +2014-01-21 Javier Miranda + + * exp_ch3.adb (Build_Init_Procedure): For + derivations of interfaces, do not move the the initialization + of the _parent field since such assignment is not generated. + +2014-01-21 Ed Schonberg + + * sem_res.adb (Rewrite_Renamed_Operator): Do not replace entity + with the operator it renames if we are within an expression of + a pre/postcondition, because the expression will be reanalyzed + at a later point, and the analysis of the renaming may affect + the visibility of the operator when in an instance. + +2014-01-21 Robert Dewar + + * sinfo.ads, sinfo.adb: Change Do_Discriminant_Check to use new Flag1. + Add this flag to type conversion nodes and assignment nodes. + * treepr.adb: Deal properly with Flag 1,2,3. + * treeprs.adt: Minor comment update. + +2014-01-21 Robert Dewar + + * sem_eval.adb (Compile_Time_Known_Value): Add Ignore_CRT + parameter. + * sem_eval.ads (Compile_Time_Known_Value): Add Ignore_CRT + parameter, completely rewrite spec. + +2014-01-21 Ed Schonberg + + * sem_ch10.adb (Install_Withed_Unit): If the unit is a subprogram + instance that is inlined, it may have been rewritten as a wrapper + package. In that case the unit that must be made visible is the + related instance of the package. + +2014-01-21 Arnaud Charlet + + * exp_ch9.adb (Expand_N_Selective_Accept.Add_Accept): Refine + previous change in codepeer mode. + +2014-01-21 Arnaud Charlet + + * exp_ch9.adb (Expand_N_Selective_Accept.Add_Accept): Always add + call to Abort_Undefer, as expected by the runtime. + * s-tasren.adb (Local_Complete_Rendezvous): Replace + Defer_Abort_Nestable by Defer_Abort, since we do not expect abort to be + deferred at this point. Update comments. + +2014-01-21 Thomas Quinot + + * exp_ch4.adb, exp_ch5.adb, checks.adb: Minor reformatting. + +2014-01-21 Arnaud Charlet + + * switch-c.adb, usage.adb, gnat_ugn.texi: Mark -gnates as internal, + remove from doc. + +2014-01-21 Robert Dewar + + * switch-c.adb, usage.adb, atree.adb, atree.ads: Minor reformatting. + +2014-01-21 Thomas Quinot + + * atree.adb, atree.ads (Num_Extension_Nodes): Switch to Node_Id, since + this is value is used in Node_Id arithmetic operations. + (Copy_Node, Exchange_Entities): Use loops indexed by Num_Extension_Nodes + instead of hard-coded unrolled code. + +2014-01-21 Yannick Moy + + * gnat1drv.adb: Minor code cleanup, removing useless code. + +2014-01-21 Arnaud Charlet + + * opt.ads (SPARK_Switches_File_Name): New. + * switch-c.adb (Scan_Front_End_Switches): Add handling of -gnates=xxx * + * usage.adb (Usage): Document -gnates, in gnatprove mode only. + * gnat_ugn.texi: Document -gnates. + +2014-01-21 Yannick Moy + + * errout.adb (Special_Msg_Delete): Update comment. Remove + special case for GNATprove which should not ignore mismatch + in sizes for representation clauses. + * sem_prag.adb (Analyze_Pragma): Remove special case for GNATprove + which should not ignore pragma Pack. + +2014-01-21 Ed Schonberg + + * sem_ch4.adb: Code clean up. + +2014-01-21 Steve Baird + + * gnat_rm.texi: Improve GNAT RM description of SPARK_Mode pragma. + +2014-01-21 Robert Dewar + + * gcc-interface/gigi.h: Get Flags array address. + * gcc-interface/trans.c: Acquire Flags array address. + * atree.adb: Add support for Flags array and Flag0,1,2,3. + * atree.ads: Add support for Flags array and Flag0,1,2,3. + * atree.h: Add support for Flags array and Flag0,1,2,3. + * back_end.adb: Pass Flags array address to gigi. + +2014-01-21 Ed Schonberg + + * sem_ch8.adb (Attribute_Renaming): Transfer original attribute + reference to generated body so that legality checks on stream + attributes are properly applied. If type is tagged and already + frozen, insert generated body at the point of the renaming + declaration. + +2014-01-21 Ed Schonberg + + * sem_ch12.adb: Code clean up. + * sem_ch8.adb: Minor reformatting + +2014-01-20 Robert Dewar + + * checks.adb: Check SPARK_Mode instead of GNATProve_Mode for + converting warnings on inevitable exceptions to errors. + * exp_ch4.adb: Check SPARK_Mode instead of GNATProve_Mode for + converting warnings on inevitable exceptions to errors. + * opt.adb (SPARK_Mode_Config): Handled like other config flags + * opt.ads (SPARK_Mode_Type): Moved here from types (renamed from + SPARK_Mode_Id) (SPARK_Mode_Type): Add pragma Ordered, remove + SPARK_ from names (SPARK_Mode): New flag (SPARK_Mode_Config): + New flag (Config_Switches_Type): Add SPARK_Mode field + * sem.adb: Minor code reorganization (remove unnecessary with) + * sem.ads (Scope_Stack_Entry): Add Save_SPARK_Mode field + * sem_aggr.adb: Check SPARK_Mode instead of GNATProve_Mode for + converting warnings on inevitable exceptions to errors. + * sem_attr.adb: Check SPARK_Mode instead of GNATProve_Mode for + converting warnings on inevitable exceptions to errors. + * sem_ch3.adb: Check SPARK_Mode instead of GNATProve_Mode for + converting warnings on inevitable exceptions to errors. + * sem_ch4.adb: Check SPARK_Mode instead of GNATProve_Mode for + converting warnings on inevitable exceptions to errors. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Reset SPARK_Mode + from spec if needed + * sem_ch7.adb (Analyze_Package_Body_Helper): Reset SPARK_Mode + from spec if needed + * sem_ch8.adb (Push_Scope): Save SPARK_Mode (Pop_Scope): + Restore SPARK_Mode + * sem_elab.adb: Check SPARK_Mode instead of GNATProve_Mode for + converting warnings on inevitable exceptions to errors. + * sem_prag.adb (Get_SPARK_Mode_From_Pragma): New function + (Get_SPARK_Mode_Id): Removed (Get_SPARK_Mode_Type): New name + of Get_SPARK_Mode_Id + * sem_prag.ads (Get_SPARK_Mode_From_Pragma): New function + * sem_res.adb: Check SPARK_Mode instead of GNATProve_Mode for + converting warnings on inevitable exceptions to errors. + * sem_util.adb: Check SPARK_Mode instead of GNATProve_Mode for + converting warnings on inevitable exceptions to errors. + * types.ads (SPARK_Mode_Id): Moved to opt.ads and renamed + SPARK_Mode_Type + +2014-01-20 Ed Schonberg + + * sem_ch13.adb: Add semantic information to rewritten type + reference. + +2014-01-20 Ed Schonberg + + * exp_ch5.adb (Expand_N_Assignment_Statement): If both sides + are of a type with unknown discriminants, convert both to the + underlying view of the type, so that the proper constraint check + can be applied to the right-hand side. + +2014-01-20 Robert Dewar + + * atree.adb (Copy_Node): Fix failure to copy last component + (Exchange_Entities): Fix failure to exchange last entity + +2014-01-20 Ed Schonberg + + * sem_ch12.adb: Code clean up. + +2014-01-20 Robert Dewar + + * gnat_rm.texi, sem_ch4.adb: Minor reformatting. + +2014-01-20 Ed Schonberg + + * sem_ch4.adb (Analyze_Quantified_Expression): If after + pre-analysis the loop parameter specification has been + rewritten as a iterator specification, propagate the change to + the quantified expression, for ASIS navigtion needs. + +2014-01-20 Vincent Celier + + * par-ch10.adb: Minor error message change: escape [ and ]. + +2014-01-20 Robert Dewar + + * checks.adb: Make warnings on exceptions into errors in GNATprove mode. + * errout.adb: Implement [ and ] insertion characters. + * errout.ads: Document new [ and ] insertion characters. + * sem_ch12.adb, restrict.adb, frontend.adb, exp_ch7.adb: Minor + addition of ??? comment. + * lib-xref.adb, exp_util.adb, gnat1drv.adb: Minor reformatting + * exp_ch4.adb, sem_ch3.adb, sem_ch4.adb, sem_ch6.adb, sem_elab.adb, + sem_eval.adb, sem_res.adb, sem_util.adb, sem_attr.adb, sem_aggr.adb: + Make warnings on exceptions into errors in GNATprove mode. + * sem_dim.adb: Minor reformatting throughout Quote [ and ] + in error messages. + +2014-01-20 Ed Schonberg + + * sem_ch13.adb: Code clean up. + +2014-01-20 Robert Dewar + + * errout.ads, errout.adb: Implement >? >x? >X? sequences in error + messages. + * sem_ch6.adb (Check_Statement_Sequence): Missing return is an + error in GNATprove mode. + +2014-01-20 Ed Schonberg + + * par-ch4.adb (Is_Parameterless_Attribute): The Ada2012 attribute + reference 'Old takes no parameters, and thus can appear as a + prefix of a slice. + +2014-01-20 Eric Botcazou + + * exp_aggr.adb: Fix minor typos. + +2014-01-20 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case 'Constrained): In an + instance the attribute is legal, and its value is determined + statically if the type has no discriminants. This choice is + more useful than rechecking the legality rule in the instance, + is consistent with older usage, and is also consistent with all + existing tests. + +2014-01-20 Arnaud Charlet + + * sem_cat.adb (Validate_Static_Object_Name): Change error into + warning in Relaxed_Semantic_Mode. + +2014-01-20 Ed Schonberg + + * sem_attr.adb: Code and comments cleanup. + +2014-01-20 Yannick Moy + + * debug.adb Free debug flags -gnatd.D, -gnatd.G and -gnatd.V * + * errout.adb (Compilation_Errors): Remove special handling in + GNATprove mode. + * gnat1drv.adb (Adjust_Global_Switches): Remove handling of the + removed debug flags. + * gnat_rm.texi: Initial documentation for Abstract_State, Depends, + Global, Initial_Condition, Initializes and Refined_State pragmas and + aspects. + * opt.ads (Frame_Condition_Mode, Formal_Extensions, + SPARK_Strict_Mode): Remove global flags. + * sem_ch3.adb (Analyze_Object_Declaration): Check of no hidden state + always performed now, on packages declaring a null state. + (Signed_Integer_Type_Declaration): Remove ill-designed attempt + at providing pedantic mode for bounds of integer types. + * sem_ch4.adb (Analyze_Quantified_Expression): Warning on suspicious + "some" quantified expression now issued under control of -gnatw.t, + like the other warning on unused bound variable. + * sem_prag.adb (Check_Precondition_Postcondition): Remove useless test + on removed flag. + (Analyze_Pragma): Remove tests for SPARK 2014 + pragmas, not officially allowed by GNAT. + +2014-01-20 Hristian Kirtchev + + * sem_prag.adb (Analyze_Pragma): Ensure that + the sole argument of pragmas Abstract_State, Contract_Cases, + Depends, Global and Initializes in in aggregate form. + (Analyze_Refined_Pragma): Ensure that the sole argument of + pragmas Refined_Depends, Refined_Global and Refined_State is in + aggregate form. + (Ensure_Aggregate_Form): New routine. + +2014-01-20 Doug Rupp + + * sem_attr.adb (Analyze_Attribute): case + Attribute_Constrained => treat all prefixes as legal for Declib + compatibility. + +2014-01-20 Hristian Kirtchev + + * sem_prag.adb (Check_Mode): Reimplement the routine. + (Find_Mode): New routine. + +2014-01-20 Robert Dewar + + * sem_ch4.adb (Operator_Check): Handle additional + Allow_Integer_Address cases. + +2014-01-20 Robert Dewar + + * gnat_rm.texi (Allow_Integer_Address): Remove note about not + allowed if address is non-private, no longer true. + * sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address): + Remove check for address being private, causes difficulty when + pragma used in gnat.adc file and is not needed, since we guard + this in Address_Integer_Convert_OK. + * exp_ch7.adb: Minor reformatting. + * sem_ch4.adb: Handle operator operands in Allow_Integer_Address mode. + +2014-01-20 Robert Dewar + + * checks.adb (Apply_Range_Check): Remove gnatprove special + casing of exponentiation. + * sem_res.adb (Resolve_Op_Expon): Apply range check to right + operand for integer case to check range against Natural. + +2014-01-20 Robert Dewar + + * s-tataat.adb: Minor reformatting. + +2014-01-20 Robert Dewar + + * einfo.adb (Is_Descendent_Of_Address): Now applies to all + entities, and also fix documentation to remove mention of visible + integer type, since this is not what the implementation does. + * einfo.ads (Is_Descendent_Of_Address): Now applies to all + entities, and also fix documentation to remove mention of visible + integer type, since this is not what the implementation does. + * gnat_rm.texi: Minor clarification of Allow_Integer_Address + function. + * sem_ch4.adb (Analyze_One_Call): Handle Allow_Integer_Address + case for parameter type check. + * sem_res.adb (Resolve): Use new function + Address_Integer_Convert_OK. + * sem_type.adb: Minor code reorganization (use Ekind_In) Minor + reformatting throughout. + * sem_util.adb (Address_Integer_Convert_OK): New function. + * sem_util.ads: Minor reformatting (put specs in alpha order) + (Address_Integer_Convert_OK): New function. + +2014-01-20 Thomas Quinot + + * exp_ch7.adb (Wrap_Transient_Expression): + Insertion extra conditional expression only if + Opt.Suppress_Control_Flow_Optimizations is set. + +2014-01-20 Arnaud Charlet + + * s-tataat.adb (Initialize_Attributes): Abort might already be + deferred in Create_Task. + +2014-01-20 Hristian Kirtchev + + * checks.adb (Apply_Scalar_Range_Check): Flag + the exponent as requiring a range check when the expression is + an exponentiation. + +2014-01-20 Fedor Rybin + + * gnat_ugn.texi: Documenting --passed-tests option for gnattest. + +2014-01-20 Hristian Kirtchev + + * sem_util.adb (Default_Initialization): New routine. + * sem_util.ads: Add new type Default_Initialization_Kind. + (Default_Initialization): New routine. + +2014-01-20 Hristian Kirtchev + + * sem_prag.adb (Check_Mode): Correct all error + message logic dealing with in/in out parameters that may appear + as inputs or have a self reference. + +2014-01-20 Robert Dewar + + * exp_ch9.adb, checks.adb, exp_intr.adb: Minor reformatting. + * sem_res.adb (Resolve): Fix error causing infinite loop for + integer used as address. Allow addresses as integers. + +2014-01-20 Arnaud Charlet + + * s-osinte-linux.ads (struct_sigaction): Fix rep clause. + +2014-01-20 Bob Duff + + * par-ch8.adb (P_Use_Type_Clause): Detect syntax + error when "use all" is not followed by "type". + +2014-01-20 Bob Duff + + * exp_intr.adb (Expand_Unc_Deallocation): Remove warning on abort + followed by free. + +2014-01-20 Ed Schonberg + + * checks.adb (Apply_Address_Clause_Check): If there is an + alignment check on the expression in an address clause, and there + is no local exception propagation, add an additional explanatory + message to clarify the cause of previous warning. + +2014-01-20 Robert Dewar + + * exp_ch7.adb: Minor reformatting. + * opt.ads: Minor comment updates. + * sem.adb: Minor name change Is_Main_Unit => + Is_Main_Unit_Or_Main_Unit_Spec. + * sem_ch6.adb: Minor reformatting and code reorganization. + +2014-01-20 Bob Duff + + * gnat_ugn.texi: Update gnatpp switches. + +2014-01-20 Thomas Quinot + + * exp_ch9.adb: Minor comment edit. + +2014-01-20 Robert Dewar + + * gnat_rm.texi: Document that Allow_Integer_Address is permitted + only if System.Address is a private type. + * opt.ads (Allow_Integer_Address): No longer set by -gnates. + * sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address): + Allowed only if type System.Address is private, since otherwise + it makes no sense. + * sem_res.adb: Fix failure to properly Analyze unchecked + conversions that were introduced by Allow_Integer_Address. + * switch-c.adb: Remove -gnates switch. + * usage.adb: Remove -gnates switch. + * gnat_ugn.texi: Remove documentation of -gnates flag. + +2014-01-20 Ed Schonberg + + * sem_ch6.adb (Analyze_Expression_Function): Pre-analyze and + resolve expression to perform proper name capture. + +2014-01-20 Ed Schonberg + + * sem.adb (Semantics): When saving/restoring configuration + switches, the spec of a pre- defined unit that is the main unit + must be treated as a predefined unit as well. + +2014-01-20 Thomas Quinot + + * exp_ch7.adb (Wrap_Transient_Expression): For a Boolean + expression, insert an extra conditional expression when saving + the value of the expression, for the benefit of control flow + graph based coverage analysis. + * exp_ch3.adb: Minor reformatting. + +2014-01-20 Robert Dewar + + * gnat1drv.adb: Set Allow_Integer_Address in relaxed semantics mode. + * gnat_rm.texi: Document pragma Allow_Integer_Address. + * gnat_ugn.texi: Document pragma Allow_Integer_Address, -gnates. + * opt.ads: New flag Allow_Integer_Address. + * par-prag.adb: Dummy entry for pragma Allow_Integer_Address. + * sem_ch5.adb: Minor reformatting. + * sem_prag.adb: Implement pragma Allow_Integer_Address. + * sem_res.adb (Resolve): Allow integer address value if + switch set. + * sem_util.adb: Minor reformatting. + * snames.ads-tmpl: Add entry for pragma Allow_Integer_Address. + * switch-c.adb: Recognize flag -gnates. + * usage.adb: Document flag -gnates. + +2014-01-20 Thomas Quinot + + * s-tadeca.adb: Fix minor typos in comment. + +2014-01-20 Pascal Obry + + * s-win32.ads (FreeLibrary): New import. + +2014-01-20 Robert Dewar + + * sem_res.adb, sem_cat.adb: Minor reformatting. + * sem_ch11.adb (Analyze_Raise_Statement): Only give warning about + assigning to OUT parameters for the current subprogram scope. + * exp_ch4.adb: Minor reformatting. + +2014-01-20 Ed Schonberg + + * exp_ch4.adb (Process_Transient_Object, + Find_Enclosing_Contexts): If the top-level if-expression that + generated the transient object is an actual in a call, the proper + Hook_Context is a construct enclosing the call. + * einfo.ads: Indicate that Related_Expression is used to link a + loop variable to the container expression over which the loop + takes place. + (Analyze_Iterator_Specification): Set the Related_Expression of + the loop variable in a container element iterator. + (Note_Possible_Modification): If the variable is the loop + variable in a container element iterator, indicate that the + enclosing container is also modified. + +2014-01-20 Hristian Kirtchev + + * aspects.adb (Move_Or_Merge_Aspects): Reimplemented. + +2014-01-20 Robert Dewar + + * s-taasde.ads, gnat_ugn.texi, s-tadeca.adb, sem_res.adb, s-tadeca.ads: + Minor reformatting and code clean up. + +2014-01-20 Arnaud Charlet + + * sem_cat.adb (Validate_Object_Declaration): Relax semantics + of objects of private type if Relaxed_RM_Semantics. + +2014-01-20 Claire Dross + + * a-cofove.ads (Vector): Capacity discriminant + should be in range of the index. + +2014-01-20 Thomas Quinot + + * a-caldel.ads(To_Duration), s-taasde.ads(Time_Enqueue): + Clarify specs s-tadeca.adb(Enqueue_Calendar): Compensate for + possible difference between epoch of Ada.Calendar clock and Ada + real-time/tasking clock. + * s-taprop-posix.adb: Minor comment fix. + +2014-01-20 Doug Rupp + + * sysdep.c [vxworks]: Remove Vxworks version noise for RTP. + +2014-01-20 Hristian Kirtchev + + * exp_attr.adb (Expand_N_Attribute_Reference): Generate validity + checks on the prefix of attribute 'Old. + * sem_ch3.adb (Process_Range_Expr_In_Decl): Suppress the + generation of validity checks on a range that belongs to the + iteration scheme of a quantified expression. + * sem_ch5.adb (One_Bound): Suppress the generation of validity + checks on a bound that belongs to the iteration scheme of a + quantified expression, generate the check in all other cases. + +2014-01-20 Bob Duff + + * gnat_ugn.texi: Enable --pp-new by default. Minor reorganization. + +2014-01-20 Ed Schonberg + + * sem_res.adb (Resolve): When compiling a predefined unit, ignore + interpretations that do not come from other predefined units, + to prevent spurious ambiguities in the presence of user-defined + operators in the context of (an instance of) a predefined unit. + +2014-01-20 Robert Dewar + + * gnat_rm.texi: Document that Loop_Variant is included in + Statement_Assertions. + * sem_prag.adb (Check_Kind): Add Loop_Variant to + Statement_Assertions (Check_Applicable_Policy): Add Loop_Variant + to Statement_Assertions. + +2014-01-20 Doug Rupp + + * sysdep.c (__gnat_is_file_not_found_error) [vxworks6]: Add case + for errno ENOENT from RTP on NFS mounted file system. + +2014-01-20 Ed Schonberg + + * sem_util.adb (Check_Function_Writable_Actuals): 1) Do not + examine code that does not come from source. The check does not + apply to code generated for constraint checks, and such code may + generate spurious error messages when compiled with expansion + disabled (as in a generic unit) because side effects may not + have been removed. + 2) Make error messages more explicit: indicate the component + of the construct whose value is indeterminate because of a + call to a function with in-out parameter in another component, + when there is no mandated order of execution between the two + components (actuals, aggregate components, alternatives). + +2014-01-20 Robert Dewar + + * gnat_rm.texi: Minor cleanup. + +2014-01-20 Hristian Kirtchev + + * sem_attr.adb (Analyze_Attribute): Attributes 'Old and 'Result + can now apply to a refined postcondition. + * sem_ch6.adb (Analyze_Subprogram_Contract): Remove local + variable Result_Seen. Add variables Case_Prag, Post_Prag, + Seen_In_Case and Seen_In_Post. Update the mechanism that detects + whether postconditions and/or constract-cases mention attribute + 'Result and introduce a post-state when applied to functions. + (Check_Result_And_Post_State): Removed. + * sem_prag.adb (Analyze_Pragma): Add local variable + Result_Seen. Verify that the expression of pragma Refined_Post + mentions attribute 'Result and introduces a post-state. + * sem_util.ads, sem_util.adb (Check_Result_And_Post_State): New routine. + +2014-01-20 Hristian Kirtchev + + * exp_ch7.adb (Is_Subprogram_Call): New routine. + (Process_Transient_Objects): Make variable Must_Hook global with + respect to all locally declared subprograms. Search the context + for at least one subprogram call. + (Requires_Hooking): Removed. + +2014-01-20 Claire Dross + + * a-cfdlli.ads a-cfhama.ads a-cfhase.ads a-cforma.ads + * a-cforse.ads a-cofove.ads: Add pragma Annotate (GNATprove, + External_Axiomatization); + +2014-01-20 Robert Dewar + + * sem_attr.adb (Analyze_Attribute, case Loop_Entry): Allow + Loop_Entry in Assert, Assert_And_Cut, and Assume pragmas. + * sem_prag.adb (Analyze_Pragma, case Assert[_And_Cut], Assume): + Allow Loop_Entry to be used in these pragmas if they appear in + an appropriate context. + (Placement_Error): Specialize error + message for pragma Assert[_And_Cut] or pragma Assume containing + Loop_Entry attribute. + * a-exexpr-gcc.adb, sinput.adb: Minor reformatting. + * s-excmac-arm.ads, s-except.ads, s-excmac-gcc.ads: Minor reformatting + and code clean ups. + +2014-01-20 Robert Dewar + + * gnat1drv.adb: Minor comment update. + +2014-01-20 Tristan Gingold + + * raise-gcc.c (PERSONALITY_FUNCTION/arm): Remove unused + variables, comment out unused code. + * a-exexpr-gcc.adb: Move declarations to s-excmac-gcc.ads + * s-excmac-gcc.ads: New file, extracted from a-exexpr-gcc.adb + * s-excmac-arm.ads: New file. + +2014-01-20 Hristian Kirtchev + + * exp_ch4.adb (Expand_N_Slice): Remove constant D and variables + Drange and Index_Typ. Remove the circuitry which creates a + range check to compare the index type of the array against the + discrete_range. + * sem_res.adb (Resolve_Slice): Add local variable Dexpr. Update + the circuitry which creates a range check to handle a + discrete_range denoted by a subtype indication. + +2014-01-20 Pierre-Marie Derodat + + * sinput.adb, sinput.ads (Sloc_Range): Traverse the tree of original + nodes to get the original sloc range. + +2014-01-20 Hristian Kirtchev + + * sem_prag.adb (Analyze_Pragma): Use Defining_Entity to obtain the + entity of a [library level] package. + +2014-01-20 Tristan Gingold + + * raise-gcc.c (exception_class_eq): New function. + (is_handled_by): Use it to compare exception classes. + (PERSONALITY_STORAGE): Define. (continue_unwind): New function to + be called to return URC_CONTINUE_UNWIND. + (personality_body): New function, extracted from PERSONALITY_ROUTINE. + (PERSONALITY_ROUTINE): Add an implementation for the ARM unwinder. + +2014-01-20 Robert Dewar + + * opt.ads: Minor comment update. + +2014-01-20 Hristian Kirtchev + + * exp_ch4.adb (Expand_N_Slice): Relocate some variables and + constants to the "Local variables" area. Add new constant D. Add + new variables Drange and Index_Typ. Rename Pfx to Rep and Ptp + to Pref_Typ and update all occurrences. Add circuitry to extract + the discrete_range and the index type and build a range check. + +2014-01-20 Arnaud Charlet + + * gnat1drv.adb (Adjust_Global_Switches): Enable + Treat_Categorization_Errors_As_Warnings when Relaxed_RM_Semantics + is set. + +2014-01-20 Thomas Quinot + + * sem_ch5.adb, sem_ch4.adb: Minor reformatting. + +2014-01-20 Hristian Kirtchev + + * sem_ch13.adb (Analyze_Aspect_Specifications): + When aspect SPARK_Mode appears on a package body, insert the + generated pragma at the top of the body declarations. + +2014-01-20 Robert Dewar + + * sem_aggr.adb, exp_prag.adb, sem_aux.adb, sinfo.ads, sem_ch10.adb, + checks.adb, sem_prag.adb, sem_ch12.adb, freeze.adb, g-arrspl.adb, + expander.adb, gnat1drv.adb, exp_ch4.adb, sem_ch6.adb, + sem_ch8.adb, exp_dist.adb: Minor reformatting. + +2014-01-20 Yannick Moy + + * gnat1drv.adb (Gnat1drv): Call Write_ALI with Object=True in GNATprove + mode. + +2014-01-20 Pascal Obry + + * g-arrspl.ads (Slice_Set): New definition (will use a copy on + write scheme). + * g-arrspl.adb: Adapt all routine to this new implementation. + (Set): Copy the Slice_Set definition before reusing it. + +2014-01-20 Arnaud Charlet + + * sem_prag.adb (Process_Import_Or_Interface): In + Relaxed_RM_Semantics, support old Ada 83 style of pragma Import. + (Analyze_Pragma): Ditto for pragma Export. + * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Handle old pragma + Import style. + +2014-01-20 Hristian Kirtchev + + * einfo.ads: E_Abstract_State is now part of the entities that + can be overloaded. Update type Overloadable_Kind to reflect the + inclusion of abstract states. + * sem_ch6.adb (New_Overloaded_Entity): A function can now + overload an abstract state. + * sem_prag.adb (Analyze_Constituent): Handle the overloading + of states by functions. Use Entity_Of to obtain the entity of + a constituent. (Analyze_Global_Item): Handle the overloading of + states by functions. + (Analyze_Initialization_Item): Handle the + overloading of states by functions. Use Entity_Of to obtain the + entity of an item. + (Analyze_Input_Item): Handle the overloading + of states by functions. Use Entity_Of to obtain the entity of an item. + (Analyze_Input_Output): Handle the overloading of states by functions. + (Analyze_Refinement_Clause): Handle the overloading + of states by functions. Use Entity_Of to obtain the entity of an item. + (Appears_In): Use Entity_Of to obtain the entity of an element. + (Check_Usage): Use Entity_Of to obtain the entity of + an item. Add a guard to prevent a crash due to a previous error. + (Resolve_State): New routine. + +2014-01-20 Yannick Moy + + * spark_xrefs.ads, debug.adb, gnat1drv.adb, errout.adb, errout.ads, + opt.ads: Minor comments updates. + +2014-01-20 Hristian Kirtchev + + * einfo.adb (Non_Limited_View): Applies to abstract states. + (Set_From_Limited_With): Applies to abstract states. + (Set_Non_Limited_View): Applies to abstract states. + (Write_Field17): Output the non-limited view of an abstract state. + * einfo.ads: Update the comment on usage and occurrences in + nodes for attributes From_Limited_With and Non_Limited_View. + * sem_aux.adb (Available_View): This routine can now handle + abstract states. + * sem_aux.ads (Available_View): This routine can now handle + abstract states. Update the comment on usage. + * sem_ch8.adb (Find_Expanded_Name): Handle abstract views + of states and variables. + (In_Pragmas_Depends_Or_Global): New routine. + * sem_ch10.adb (Build_Limited_Views): Implement + abstract (limited) views of variables and states. + (Build_Shadow_Entity): This routine is now a procedure. Add + formal parameter Shadow. Update the comment on usage. Add + context-specific decoration for states and variables. + (Decorate_State): New routine. (Decorate_Variable): New routine. + (Find_And_Process_States): New routine. + (Process_Declarations): Renamed to Process_Declarations_And_States. + (Process_Declarations_And_States): Add formal parameters + Pack and Create_Abstract_Views. Update the comment on usage. + (Process_States): New routine. + * sem_prag.adb (Check_Dependency_Clause): Handle abstract + views of states and variables. Match the abstract view of a state + against its corresponding non-abstract view. + (Is_Matching_Input): + Handle abstract views of states and variables. Match the abstract + view of a state against its corresponding non-abstract view. + (Process_Global_Item): Handle abstract views of states and + variables. + +2014-01-20 Bob Duff + + * sem_ch10.adb (Expand_With_Clause): Don't + recurse on the prefix if the current with-ed name refers to a + package that renames its own parent, eg "package P.Q renames P;". + +2014-01-20 Yannick Moy + + * exp_spark.adb (Expand_SPARK_Call): Remove procedure. + * opt.adb, opt.ads (Full_Expander_Active): Remove function. + * checks.adb, exp_ch6.adb, exp_ch9.adb, exp_disp.adb, sem_aggr.adb, + * sem_ch10.adb, sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, + * sem_disp.adb, sem_res.adb Replace Full_Expander_Active by + Expander_Active. + +2014-01-20 Yannick Moy + + * sinfo.ads Update documentation of GNATprove mode. + +2014-01-20 Yannick Moy + + * adabkend.adb, ali-util.adb, errout.adb, exp_ch7.adb, + * exp_dbug.adb, freeze.adb, lib-xref.adb, restrict.adb, + * sem_attr.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, + * sem_prag.adb, sem_res.adb, sem_util.adb Rename SPARK_Mode into + GNATprove_Mode. + * sem_ch13.adb: Remove blank. + * exp_spark.adb, exp_spark.ads (Expand_SPARK_Call): Only replace + subprograms by alias for renamings, not for inherited primitive + operations. + * exp_util.adb (Expand_Subtype_From_Expr): Apply the expansion + in GNATprove mode. + (Remove_Side_Effects): Apply the removal in + GNATprove mode, for the full analysis of expressions. + * expander.adb (Expand): Call the light SPARK expansion in GNATprove + mode. + (Expander_Mode_Restore, Expander_Mode_Save_And_Set): Ignore + save/restore actions for Expander_Active flag in GNATprove mode, + similar to what is done in ASIS mode. + * frontend.adb (Frontend): Generic bodies are instantiated in + GNATprove mode. + * gnat1drv.adb (Adjust_Global_Switches): Set operating + mode to Check_Semantics in GNATprove mode, although a light + expansion is still performed. + (Gnat1drv): Set Back_End_Mode to + Declarations_Only in GNATprove mode, and later on special case + the GNATprove mode to continue analysis anyway. + * lib-writ.adb (Write_ALI): Always generate ALI files in + GNATprove mode. + * opt.adb, opt.ads (Full_Expander_Active): Make it equivalent to + Expander_Active. + (SPARK_Mode): Renamed as GNATprove_Mode. + * sem_aggr.adb (Aggregate_Constraint_Checks): Add checks in the + tree in GNATprove_Mode. + * sem_ch12.adb (Analyze_Package_Instantiation): Always instantiate + body in GNATprove mode. + (Need_Subprogram_Instance_Body): Always instantiate body in GNATprove + mode. + * sem_ch3.adb (Constrain_Index, Process_Range_Expr_In_Decl): + Make sure side effects are removed in GNATprove mode. + +2014-01-20 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Robustify tests + for aliased objects with an unconstrained nominal subtype. + * gcc-interface/trans.c (Call_to_gnu): Likewise. + (gnat_to_gnu) : Robustify test for private type. + : Remove useless code. + (Exception_Handler_to_gnu_zcx): Minor tweaks. + +2014-01-20 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : + Tidy up. For a subtype with discriminants and variant part, if a + variant is statically selected and the fields all have a constant + position, put them in order of increasing position. Likewise if + no variant part but representation clause is present. + * gcc-interface/utils.c (make_packable_type): Robustify. + (maybe_pad_type): Use local variable and tidy up condition. If no + alignment is specified, use the original one. + (create_type_stub_decl): Minor tweak. + (convert) : Fix typo. + : Deal with padding types around the same type. + Do not punt on missing fields. + (unchecked_convert): Call finish_record_type to lay out the special + record types made for conversions from/to problematic integer types. + Bump the alignment of CONSTRUCTORs before converting them to a more + aligned type. + +2014-01-20 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Remove + obsolete code for type_annotate_only mode, simplify code and slightly + improve wording of comments. + +2014-01-12 Eric Botcazou + + PR ada/59772 + * gcc-interface/cuintp.c (build_cst_from_int): Use 32-bit integer type + as intermediate type. + (UI_To_gnu): Likewise. + +2014-01-03 Eric Botcazou + + * gnatvsn.ads (Current_Year): Bump to 2014. + +2014-01-02 Tobias Burnus + + * gnat_ugn.texi: Bump @copying's copyright year. + +Copyright (C) 2014 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. diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi index 39f92612c95..d77aba5246c 100644 --- a/gcc/ada/gnat_ugn.texi +++ b/gcc/ada/gnat_ugn.texi @@ -8,14 +8,14 @@ @c o @c G N A T _ U G N o @c o -@c Copyright (C) 1992-2014, Free Software Foundation, Inc. o +@c Copyright (C) 1992-2015, Free Software Foundation, Inc. o @c o @c oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo @setfilename gnat_ugn.info @copying -Copyright @copyright{} 1995-2014 Free Software Foundation, +Copyright @copyright{} 1995-2015 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document diff --git a/gcc/doc/cpp.texi b/gcc/doc/cpp.texi index df04d0baf46..e94bdf74e11 100644 --- a/gcc/doc/cpp.texi +++ b/gcc/doc/cpp.texi @@ -10,7 +10,7 @@ @copying @c man begin COPYRIGHT -Copyright @copyright{} 1987-2014 Free Software Foundation, Inc. +Copyright @copyright{} 1987-2015 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or diff --git a/gcc/doc/cppinternals.texi b/gcc/doc/cppinternals.texi index 8b329d6c173..29efa80ea10 100644 --- a/gcc/doc/cppinternals.texi +++ b/gcc/doc/cppinternals.texi @@ -18,7 +18,7 @@ @ifinfo This file documents the internals of the GNU C Preprocessor. -Copyright (C) 2000-2014 Free Software Foundation, Inc. +Copyright (C) 2000-2015 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -47,7 +47,7 @@ into another language, under the above conditions for modified versions. @page @vskip 0pt plus 1filll @c man begin COPYRIGHT -Copyright @copyright{} 2000-2014 Free Software Foundation, Inc. +Copyright @copyright{} 2000-2015 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice diff --git a/gcc/doc/gcc.texi b/gcc/doc/gcc.texi index 7ae2e75c477..ba6b60807d8 100644 --- a/gcc/doc/gcc.texi +++ b/gcc/doc/gcc.texi @@ -40,7 +40,7 @@ @c %**end of header @copying -Copyright @copyright{} 1988-2014 Free Software Foundation, Inc. +Copyright @copyright{} 1988-2015 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or diff --git a/gcc/doc/gccint.texi b/gcc/doc/gccint.texi index e5563c58de0..d6913e694ab 100644 --- a/gcc/doc/gccint.texi +++ b/gcc/doc/gccint.texi @@ -26,7 +26,7 @@ @c %**end of header @copying -Copyright @copyright{} 1988-2014 Free Software Foundation, Inc. +Copyright @copyright{} 1988-2015 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or diff --git a/gcc/doc/gcov.texi b/gcc/doc/gcov.texi index a108e52d616..95ad07ad7ab 100644 --- a/gcc/doc/gcov.texi +++ b/gcc/doc/gcov.texi @@ -4,7 +4,7 @@ @ignore @c man begin COPYRIGHT -Copyright @copyright{} 1996-2014 Free Software Foundation, Inc. +Copyright @copyright{} 1996-2015 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 488c1f83a52..1e05310e7fc 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -44,7 +44,7 @@ @settitle Installing GCC: GNU Free Documentation License @end ifset -@c Copyright (C) 1988-2014 Free Software Foundation, Inc. +@c Copyright (C) 1988-2015 Free Software Foundation, Inc. @c *** Converted to texinfo by Dean Wakerley, dean@wakerley.com @c IMPORTANT: whenever you modify this file, run `install.texi2html' to @@ -69,7 +69,7 @@ @c Part 2 Summary Description and Copyright @copying -Copyright @copyright{} 1988-2014 Free Software Foundation, Inc. +Copyright @copyright{} 1988-2015 Free Software Foundation, Inc. @sp 1 Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 9ba62e57976..947bbaf72f5 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -8,7 +8,7 @@ @c man end @c man begin COPYRIGHT -Copyright @copyright{} 1988-2014 Free Software Foundation, Inc. +Copyright @copyright{} 1988-2015 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 9e54b6f2bd0..b518d6d7bf9 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,12 @@ +2015-01-05 Jakub Jelinek + + * gfortranspec.c (lang_specific_driver): Update copyright notice + dates. + * gfc-internals.texi: Bump @copying's copyright year. + * gfortran.texi: Ditto. + * intrinsic.texi: Ditto. + * invoke.texi: Ditto. + 2015-01-02 Janus Weil PR fortran/57562 diff --git a/gcc/fortran/gfc-internals.texi b/gcc/fortran/gfc-internals.texi index 4fe858d8b60..a2320f448ca 100644 --- a/gcc/fortran/gfc-internals.texi +++ b/gcc/fortran/gfc-internals.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @c %**start of header @setfilename gfc-internals.info -@set copyrights-gfortran 2007-2014 +@set copyrights-gfortran 2007-2015 @include gcc-common.texi diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi index 0d19e7a2b3a..cf96b0b7b06 100644 --- a/gcc/fortran/gfortran.texi +++ b/gcc/fortran/gfortran.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @c %**start of header @setfilename gfortran.info -@set copyrights-gfortran 1999-2014 +@set copyrights-gfortran 1999-2015 @include gcc-common.texi diff --git a/gcc/fortran/gfortranspec.c b/gcc/fortran/gfortranspec.c index 9d27698a816..a5b3310666e 100644 --- a/gcc/fortran/gfortranspec.c +++ b/gcc/fortran/gfortranspec.c @@ -1,5 +1,5 @@ /* Specific flags and argument handling of the Fortran front-end. - Copyright (C) 1997-2014 Free Software Foundation, Inc. + Copyright (C) 1997-2015 Free Software Foundation, Inc. This file is part of GCC. @@ -276,7 +276,7 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options, case OPT__version: printf ("GNU Fortran %s%s\n", pkgversion_string, version_string); - printf ("Copyright %s 2014 Free Software Foundation, Inc.\n\n", + printf ("Copyright %s 2015 Free Software Foundation, Inc.\n\n", _("(C)")); printf (_("GNU Fortran comes with NO WARRANTY, to the extent permitted by law.\n\ You may redistribute copies of GNU Fortran\n\ diff --git a/gcc/fortran/intrinsic.texi b/gcc/fortran/intrinsic.texi index 90c9a3aaf46..41f499e084a 100644 --- a/gcc/fortran/intrinsic.texi +++ b/gcc/fortran/intrinsic.texi @@ -1,5 +1,5 @@ @ignore -Copyright (C) 2005-2014 Free Software Foundation, Inc. +Copyright (C) 2005-2015 Free Software Foundation, Inc. This is part of the GNU Fortran manual. For copying conditions, see the file gfortran.texi. diff --git a/gcc/fortran/invoke.texi b/gcc/fortran/invoke.texi index 70d5b5c113c..4cf36e8690e 100644 --- a/gcc/fortran/invoke.texi +++ b/gcc/fortran/invoke.texi @@ -1,10 +1,10 @@ -@c Copyright (C) 2004-2014 Free Software Foundation, Inc. +@c Copyright (C) 2004-2015 Free Software Foundation, Inc. @c This is part of the GNU Fortran manual. @c For copying conditions, see the file gfortran.texi. @ignore @c man begin COPYRIGHT -Copyright @copyright{} 2004-2014 Free Software Foundation, Inc. +Copyright @copyright{} 2004-2015 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or diff --git a/gcc/gcc.c b/gcc/gcc.c index a5408a48e5a..55d0ff2fd87 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -1,5 +1,5 @@ /* Compiler driver program that can handle many languages. - Copyright (C) 1987-2014 Free Software Foundation, Inc. + Copyright (C) 1987-2015 Free Software Foundation, Inc. This file is part of GCC. @@ -7538,7 +7538,7 @@ driver::maybe_print_and_exit () const { printf (_("%s %s%s\n"), progname, pkgversion_string, version_string); - printf ("Copyright %s 2014 Free Software Foundation, Inc.\n", + printf ("Copyright %s 2015 Free Software Foundation, Inc.\n", _("(C)")); fputs (_("This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"), diff --git a/gcc/gcov-dump.c b/gcc/gcov-dump.c index 25e30cd8852..ec4b28afe68 100644 --- a/gcc/gcov-dump.c +++ b/gcc/gcov-dump.c @@ -1,5 +1,5 @@ /* Dump a gcov file, for debugging use. - Copyright (C) 2002-2014 Free Software Foundation, Inc. + Copyright (C) 2002-2015 Free Software Foundation, Inc. Contributed by Nathan Sidwell Gcov is free software; you can redistribute it and/or modify @@ -142,7 +142,7 @@ static void print_version (void) { printf ("gcov-dump %s%s\n", pkgversion_string, version_string); - printf ("Copyright (C) 2014 Free Software Foundation, Inc.\n"); + printf ("Copyright (C) 2015 Free Software Foundation, Inc.\n"); printf ("This is free software; see the source for copying conditions.\n" "There is NO warranty; not even for MERCHANTABILITY or \n" "FITNESS FOR A PARTICULAR PURPOSE.\n\n"); diff --git a/gcc/gcov.c b/gcc/gcov.c index 8bce0ae8c84..f5de08fa61b 100644 --- a/gcc/gcov.c +++ b/gcc/gcov.c @@ -1,6 +1,6 @@ /* Gcov.c: prepend line execution counts and branch probabilities to a source file. - Copyright (C) 1990-2014 Free Software Foundation, Inc. + Copyright (C) 1990-2015 Free Software Foundation, Inc. Contributed by James E. Wilson of Cygnus Support. Mangled by Bob Manson of Cygnus Support. Mangled further by Nathan Sidwell @@ -500,7 +500,7 @@ static void print_version (void) { fnotice (stdout, "gcov %s%s\n", pkgversion_string, version_string); - fprintf (stdout, "Copyright %s 2014 Free Software Foundation, Inc.\n", + fprintf (stdout, "Copyright %s 2015 Free Software Foundation, Inc.\n", _("(C)")); fnotice (stdout, _("This is free software; see the source for copying conditions.\n" diff --git a/gcc/go/ChangeLog b/gcc/go/ChangeLog index 7df6cbfffd4..15da1ba1ebe 100644 --- a/gcc/go/ChangeLog +++ b/gcc/go/ChangeLog @@ -1,3 +1,7 @@ +2015-01-05 Jakub Jelinek + + * gccgo.texi: Bump @copyrights-go year. + 2014-12-19 Chris Manghane * go-gcc.cc (array_constructor_expression): Don't construct arrays @@ -955,7 +959,7 @@ Go frontend added to gcc repository. -Copyright (C) 2010-2014 Free Software Foundation, Inc. +Copyright (C) 2010-2015 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff --git a/gcc/go/gccgo.texi b/gcc/go/gccgo.texi index d7222d50129..0dd493f38e1 100644 --- a/gcc/go/gccgo.texi +++ b/gcc/go/gccgo.texi @@ -12,7 +12,7 @@ @include gcc-common.texi @c Copyright years for this manual. -@set copyrights-go 2010-2014 +@set copyrights-go 2010-2015 @copying @c man begin COPYRIGHT diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index bdc38329f24..9311f9b8455 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,7 @@ +2015-01-05 Jakub Jelinek + + * jcf-dump.c (version): Update copyright notice dates. + 2014-11-24 Richard Biener PR java/64004 @@ -23023,7 +23027,7 @@ Tue Mar 9 11:52:08 1999 Alexandre Petit-Bianco New directory. -Copyright (C) 1996-2014 Free Software Foundation, Inc. +Copyright (C) 1996-2015 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff --git a/gcc/java/gcj.texi b/gcc/java/gcj.texi index eb5472aa0c7..d58699aa37a 100644 --- a/gcc/java/gcj.texi +++ b/gcc/java/gcj.texi @@ -17,7 +17,7 @@ @c the word ``Java'. @c When this manual is copyrighted. -@set copyrights-gcj 2001-2014 +@set copyrights-gcj 2001-2015 @copying @c man begin COPYRIGHT diff --git a/gcc/java/jcf-dump.c b/gcc/java/jcf-dump.c index 0a9cce162d4..1fa5bd41174 100644 --- a/gcc/java/jcf-dump.c +++ b/gcc/java/jcf-dump.c @@ -1,7 +1,7 @@ /* Program to dump out a Java(TM) .class file. Functionally similar to Sun's javap. - Copyright (C) 1996-2014 Free Software Foundation, Inc. + Copyright (C) 1996-2015 Free Software Foundation, Inc. This file is part of GCC. @@ -1227,7 +1227,7 @@ static void version (void) { printf ("jcf-dump %s%s\n\n", pkgversion_string, version_string); - printf ("Copyright %s 2014 Free Software Foundation, Inc.\n", _("(C)")); + printf ("Copyright %s 2015 Free Software Foundation, Inc.\n", _("(C)")); printf (_("This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n")); exit (0); diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index 4018bc960b5..4769e95ca3e 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,7 @@ +2015-01-05 Jakub Jelinek + + * libgomp.texi: Bump @copying's copyright year. + 2014-12-12 Kyrylo Tkachov * testsuite/lib/libgomp.exp: Load target-utils.exp. diff --git a/libgomp/libgomp.texi b/libgomp/libgomp.texi index 254be57b8a1..52ae0ea4791 100644 --- a/libgomp/libgomp.texi +++ b/libgomp/libgomp.texi @@ -7,7 +7,7 @@ @copying -Copyright @copyright{} 2006-2014 Free Software Foundation, Inc. +Copyright @copyright{} 2006-2015 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or diff --git a/libitm/ChangeLog b/libitm/ChangeLog index fd5425274d0..ef4674d5375 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -1,3 +1,7 @@ +2015-01-05 Jakub Jelinek + + * libitm.texi: Bump @copying's copyright year. + 2014-12-12 Kyrylo Tkachov * testsuite/lib/libitm.exp: Load target-utils.exp. diff --git a/libitm/libitm.texi b/libitm/libitm.texi index 08776f34f1b..d3678c5b528 100644 --- a/libitm/libitm.texi +++ b/libitm/libitm.texi @@ -7,7 +7,7 @@ @copying -Copyright @copyright{} 2011-2014 Free Software Foundation, Inc. +Copyright @copyright{} 2011-2015 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or diff --git a/libjava/ChangeLog b/libjava/ChangeLog index ddef0311724..f77de2a4e3c 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,128 +1,13 @@ -2014-11-21 H.J. Lu - - PR bootstrap/63784 - * configure: Regenerated. - -2014-11-11 Francois-Xavier Coudert - - PR target/63610 - * configure: Regenerate. - -2014-05-20 Sebastian Huber - - * testsuite/lib/libjava.exp (load_gcc_lib): Register loaded libs. - -2014-05-13 Bernd Edlinger - - Fix current cygwin-64 build problems. - * configure.host: Added handling for x86_64-*-cygwin/mingw. - * boehm.cc (_Jv_GCAttachThread, _Jv_GCDetachThread): Don't compile if - GC_WIN32_THREADS is defined. - * java/lang/natClass.cc (_Jv_InterfaceAssignableFrom): Rename interface - to source_interface. - -2014-04-22 Rainer Orth - - * configure.ac (THREADLIBS, THREADSPEC): Remove *-*-solaris2.9 - handling. - * configure: Regenerate. - -2014-03-12 Uros Bizjak - - * include/dwarf2-signal.h: Update copyright year. - (SIGNAL_HANDLER): Remove _sip argument. Mark _p argument with - __attribute__ ((__unused__)). - (class java::lang::Throwable): Remove declaration. - (MAKE_THROW_FRAME) [!__ia64__]: Define as empty definition. - -2014-03-11 Uros Bizjak - - * java/lang/natObject.cc (_Jv_MonitorEnter): Add missing parenthesis - around comparison with (address | LOCKED) in JvAssert. - -2014-02-20 Rainer Orth - - PR libgcj/55637 - * testsuite/libjava.lang/sourcelocation.xfail: New file. - -2014-02-18 Richard Biener - - PR libjava/60261 - * configure.ac (dbexecdir): Remove redundant multilib addition. - * Makefile.am (gcc_version): Export. - * configure: Regenerate. - * Makefile.in: Likewise. - -2014-01-02 Tobias Burnus +2015-01-05 Jakub Jelinek + * classpath/gnu/java/rmi/registry/RegistryImpl.java (version): Update + copyright notice dates. + * classpath/tools/gnu/classpath/tools/orbd/Main.java (run): Ditto. * gnu/gcj/convert/Convert.java (version): Update copyright notice dates. * gnu/gcj/tools/gcj_dbtool/Main.java (main): Ditto. - -2013-12-09 Andreas Schwab - - * Makefile.am (toolexeclib_LTLIBRARIES) [USE_LIBGCJ_BC]: Use - install/libgcj_bc.la instead of libgcj_bc.la. - (noinst_LTLIBRARIES) [USE_LIBGCJ_BC]: Define. - (install_libgcj_bc_la_SOURCES): Define. - (install/libgcj_bc.la): New rule. - * Makefile.in: Regenerate. - -2013-09-20 Alan Modra - - * configure: Regenerate. - -2013-06-20 Roland Lutz - - * contrib/aot-compile.in: Fix typo in option list. - -2013-06-20 Matthias Klose - - * pkg.m4 (PKG_CHECK_MODULES): Use AC_PATH_TOOL to check for pkg-config. - * classpath/m4/pkg.m4 (PKG_CHECK_MODULES): Likewise. - * configure: Regenerate. - * classpath/configure: Regenerate. - -2013-06-20 Matthias Klose - - * libtool-version: Bump soversion. - -2013-05-22 Mark Mitchell - Sandra Loosemore - - * configure.ac (dbexecdir): Base on $(toolexeclibdir), not - $(libdir). - * Makefile.am (pkgconfigdir): Likewise. - * configure: Regenerated. - * Makefile.in: Regenerated. - * gcj/Makefile.in: Regenerated. - * include/Makefile.in: Regenerated. - * testsuite/Makefile.in: Regenerated. - -2013-04-16 Andreas Schwab - - * configure.host: Add support for aarch64. - * sysdep/aarch64/locks.h: New file. - -2013-03-12 Andrew John Hughes - - * include/posix-threads.h: - (_Jv_MutexCheckMonitor(_Jv_Mutex_t)): Use - pthread_equal rather than !=. - -2013-01-07 H.J. Lu - - * Makefile.am (lib_gnu_awt_xlib_la_LDFLAGS): Replace - LIBSTDCXX_RAW_CXX_LDLAGS with LIBSTDCXX_RAW_CXX_LDFLAGS. - * Makefile.in: Regenerated. - -2013-01-03 Jakub Jelinek - - * gnu/gcj/convert/Convert.java (version): Update copyright notice - dates. - * gnu/gcj/tools/gcj_dbtool/Main.java (main): Likewise. -Copyright (C) 2014 Free Software Foundation, Inc. +Copyright (C) 2015 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff --git a/libjava/ChangeLog-2014 b/libjava/ChangeLog-2014 new file mode 100644 index 00000000000..2b54ef3fc75 --- /dev/null +++ b/libjava/ChangeLog-2014 @@ -0,0 +1,66 @@ +2014-11-21 H.J. Lu + + PR bootstrap/63784 + * configure: Regenerated. + +2014-11-11 Francois-Xavier Coudert + + PR target/63610 + * configure: Regenerate. + +2014-05-20 Sebastian Huber + + * testsuite/lib/libjava.exp (load_gcc_lib): Register loaded libs. + +2014-05-13 Bernd Edlinger + + Fix current cygwin-64 build problems. + * configure.host: Added handling for x86_64-*-cygwin/mingw. + * boehm.cc (_Jv_GCAttachThread, _Jv_GCDetachThread): Don't compile if + GC_WIN32_THREADS is defined. + * java/lang/natClass.cc (_Jv_InterfaceAssignableFrom): Rename interface + to source_interface. + +2014-04-22 Rainer Orth + + * configure.ac (THREADLIBS, THREADSPEC): Remove *-*-solaris2.9 + handling. + * configure: Regenerate. + +2014-03-12 Uros Bizjak + + * include/dwarf2-signal.h: Update copyright year. + (SIGNAL_HANDLER): Remove _sip argument. Mark _p argument with + __attribute__ ((__unused__)). + (class java::lang::Throwable): Remove declaration. + (MAKE_THROW_FRAME) [!__ia64__]: Define as empty definition. + +2014-03-11 Uros Bizjak + + * java/lang/natObject.cc (_Jv_MonitorEnter): Add missing parenthesis + around comparison with (address | LOCKED) in JvAssert. + +2014-02-20 Rainer Orth + + PR libgcj/55637 + * testsuite/libjava.lang/sourcelocation.xfail: New file. + +2014-02-18 Richard Biener + + PR libjava/60261 + * configure.ac (dbexecdir): Remove redundant multilib addition. + * Makefile.am (gcc_version): Export. + * configure: Regenerate. + * Makefile.in: Likewise. + +2014-01-02 Tobias Burnus + + * gnu/gcj/convert/Convert.java (version): Update copyright notice + dates. + * gnu/gcj/tools/gcj_dbtool/Main.java (main): Ditto. + +Copyright (C) 2014 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. diff --git a/libjava/classpath/gnu/java/rmi/registry/RegistryImpl.java b/libjava/classpath/gnu/java/rmi/registry/RegistryImpl.java index f89371d90c6..d6bc98b5e8c 100644 --- a/libjava/classpath/gnu/java/rmi/registry/RegistryImpl.java +++ b/libjava/classpath/gnu/java/rmi/registry/RegistryImpl.java @@ -1,5 +1,5 @@ /* RegistryImpl.java -- - Copyright (c) 1996-2014 Free Software Foundation, Inc. + Copyright (c) 1996-2015 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -110,7 +110,7 @@ public static void version() { + System.getProperty("java.vm.name") + ") " + System.getProperty("java.vm.version")); - System.out.println("Copyright 2014 Free Software Foundation, Inc."); + System.out.println("Copyright 2015 Free Software Foundation, Inc."); System.out.println("This is free software; see the source for copying conditions. There is NO"); System.out.println("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."); System.exit(0); diff --git a/libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java b/libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java index b1ab0c9e940..14ebc08778a 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java +++ b/libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java @@ -1,5 +1,5 @@ /* NamingServicePersistent.java -- The persistent naming service. - Copyright (C) 2006-2014 Free Software Foundation, Inc. + Copyright (C) 2006-2015 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -179,7 +179,7 @@ public class Main System.out.println("GNU Classpath persistent naming service " + "started at " + iorr.Internet.host + ":" + iorr.Internet.port + " key 'NameService'.\n\n" - + "Copyright (C) 2014 Free Software Foundation\n" + + "Copyright (C) 2015 Free Software Foundation\n" + "This tool comes with ABSOLUTELY NO WARRANTY. " + "This is free software, and you are\nwelcome to " + "redistribute it under conditions, defined in " diff --git a/libjava/gnu/gcj/convert/Convert.java b/libjava/gnu/gcj/convert/Convert.java index d2677cb85b2..9243e088ff6 100644 --- a/libjava/gnu/gcj/convert/Convert.java +++ b/libjava/gnu/gcj/convert/Convert.java @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2014 Free Software Foundation +/* Copyright (C) 1999-2015 Free Software Foundation This file is part of libgcj. @@ -45,7 +45,7 @@ public class Convert + ") " + System.getProperty("java.vm.version")); System.out.println(); - System.out.println("Copyright (C) 2014 Free Software Foundation, Inc."); + System.out.println("Copyright (C) 2015 Free Software Foundation, Inc."); System.out.println("This is free software; see the source for copying conditions. There is NO"); System.out.println("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."); System.exit(0); diff --git a/libjava/gnu/gcj/tools/gcj_dbtool/Main.java b/libjava/gnu/gcj/tools/gcj_dbtool/Main.java index 5e26b19ccda..e9d4aca2efe 100644 --- a/libjava/gnu/gcj/tools/gcj_dbtool/Main.java +++ b/libjava/gnu/gcj/tools/gcj_dbtool/Main.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2014 Free Software Foundation +/* Copyright (C) 2004-2015 Free Software Foundation This file is part of libgcj. @@ -46,7 +46,7 @@ public class Main + ") " + System.getProperty("java.vm.version")); System.out.println(); - System.out.println("Copyright 2014 Free Software Foundation, Inc."); + System.out.println("Copyright 2015 Free Software Foundation, Inc."); System.out.println("This is free software; see the source for copying conditions. There is NO"); System.out.println("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."); return; diff --git a/libquadmath/ChangeLog b/libquadmath/ChangeLog index 169446692c0..1668d05349f 100644 --- a/libquadmath/ChangeLog +++ b/libquadmath/ChangeLog @@ -1,3 +1,7 @@ +2015-01-05 Jakub Jelinek + + * libquadmath.texi: Bump @copying's copyright year. + 2014-11-21 H.J. Lu PR bootstrap/63784 diff --git a/libquadmath/libquadmath.texi b/libquadmath/libquadmath.texi index 6612a5c1551..4b8e6983cc0 100644 --- a/libquadmath/libquadmath.texi +++ b/libquadmath/libquadmath.texi @@ -6,7 +6,7 @@ @c %**end of header @copying -Copyright @copyright{} 2010-2014 Free Software Foundation, Inc. +Copyright @copyright{} 2010-2015 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document