2016-06-06 Eric Botcazou * gcc-interface/decl.c (Gigi_Equivalent_Type): Make sure equivalent types are present before returning them. Remove final assertion. (gnat_to_gnu_entity) : Adjust to above change. : Likewise. 2016-06-06 Eric Botcazou * gcc-interface/trans.c (elaborate_all_entities_for_package): Also do not elaborate Itypes. 2016-06-06 Eric Botcazou * gcc-interface/utils.c (gnat_internal_attribute_table): Add support for noinline and noclone attributes. (handle_noinline_attribute): New handler. (handle_noclone_attribute): Likewise. 2016-06-06 Eric Botcazou * gcc-interface/trans.c (process_type): Beef up comment. 2016-06-06 Eric Botcazou * gcc-interface/utils2.c (build_call_alloc_dealloc): Do not substitute placeholder expressions here but... * gcc-interface/trans.c (gnat_to_gnu) : ...here. Make an exception to the protection of a CALL_EXPR result with an unconstrained type only in the same cases as Call_to_gnu. 2016-06-06 Eric Botcazou * gcc-interface/trans.c (gnat_to_gnu): Rework special code dealing with boolean rvalues and set the location directly. Do not set the location in the other cases for a simple name. (gnat_to_gnu_external): Clear the location on the expression. 2016-06-06 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : Remove useless 'else' statements and tidy up. : Fully deal with the declaration here. : Use properly-typed constant. Assert that we don't apply the special type treatment to dummy types. Separate this treatment from the final back-annotation and simplify the condition for the RM size. (gnat_to_gnu_param): Add GNU_PARAM_TYPE parameter and adjust. (gnat_to_gnu_subprog_type): Ajust call to gnat_to_gnu_param. * gcc-interface/trans.c (gnat_to_gnu) : Add comment. (process_freeze_entity): Remove obsolete code. (process_type): Minor tweaks. 2016-06-06 Eric Botcazou * einfo.ads (Returns_Limited_View): Remove. (Set_Returns_Limited_View ): Likewise. * einfo.adb (Returns_Limited_View): Likewise. (Set_Returns_Limited_View ): Likewise. * freeze.adb (Late_Freeze_Subprogram): Remove. (Freeze_Entity): Do not defer the freezing of functions returning an incomplete type coming from a limited context. 2016-06-06 Eric Botcazou * gcc-interface/gigi.h (finish_subprog_decl): Add ASM_NAME parameter. * gcc-interface/decl.c (gnu_ext_name_for_subprog): New function. (gnat_to_gnu_entity) : Do not check compatibility of profiles for builtins here... Call gnu_ext_name_for_subprog. Also update profiles if pointers to limited_with'ed types are updated. (gnat_to_gnu_param): Restore the correct source location information for vector ABI warnings. (associate_subprog_with_dummy_type): Add comment about AI05-019. Set TYPE_DUMMY_IN_PROFILE_P flag unconditionally. (update_profile): Deal with builtin declarations. Call gnu_ext_name_for_subprog. Adjust call to finish_subprog_decl. (update_profiles_with): Add comment. (gnat_to_gnu_subprog_type): Reuse the return type if it is complete. Likewise for parameter declarations in most cases. Do not change the return type for the CICO mechanism if the profile is incomplete. ...but here instead. Always reset the slot for the parameters. * gcc-interface/utils.c (create_subprog_decl): Call gnu_ext_name_for_subprog. Do not set the assembler name here but... (finish_subprog_decl): ...but here instead. Add ASM_NAME parameter. 2016-06-06 Eric Botcazou * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Insert the declaration of the corresponding record type before that of the unprotected version of the subprograms that operate on it. (Expand_Access_Protected_Subprogram_Type): Declare the Equivalent_Type just before the original type. * sem_ch3.adb (Handle_Late_Controlled_Primitive): Point the current declaration to the newly created declaration for the primitive. (Analyze_Subtype_Declaration): Remove obsolete code forcing the freezing of the subtype before its declaration. (Replace_Anonymous_Access_To_Protected_Subprogram): Insert the new declaration in the nearest enclosing scope for formal parameters too. (Build_Derived_Access_Type): Restore the status of the created Itype after it is erased by Copy_Node. * sem_ch6.adb (Exchange_Limited_Views): Remove guard on entry. (Analyze_Subprogram_Body_Helper): Call Exchange_Limited_Views only if the specification is present. Move around the code changing the designated view of the return type and save the original view. Restore it on exit. * sem_ch13.adb (Build_Predicate_Function_Declaration): Always insert the declaration right after that of the type. 2016-06-01 Simon Wright PR ada/71358 * g-comlin.adb (Display_Section_Help): Do not dereference Config.Switches if it's null. (Getopt): Likewise. 2016-05-31 Eric Botcazou * s-osinte-kfreebsd-gnu.ads (clock_getres): Define. (Get_Page_Size): Remove duplicate and return int. 2016-05-31 Jan Sommer PR ada/71317 * s-osinte-rtems.ads (clock_getres): Define. (Get_Page_Size): Remove duplicate and return int. 2016-05-20 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : Make same-sized subtypes of signed base types signed. * gcc-interface/utils.c (make_type_from_size): Adjust to above change. (unchecked_convert): Likewise. 2016-05-16 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not build a specific type for the object if it is deemed a constant. 2016-05-16 Eric Botcazou * freeze.adb (Freeze_Record_Type): Extend pragma Implicit_Packing to components of any elementary types and of composite types. 2016-05-16 Eric Botcazou * freeze.adb (Freeze_Array_Type): Call Addressable predicate instead of testing for individual sizes. (Freeze_Entity): Rework implementation of pragma Implicit_Packing for array types, in particular test for suitable sizes upfront and do not mimic the processing that will be redone later in Freeze_Array_Type. 2016-05-16 Eric Botcazou * gcc-interface/trans.c (elaborate_all_entities_for_package): Also skip formal objects. 2016-05-16 Eric Botcazou * doc/gnat_rm/implementation_defined_attributes.rst (Scalar_Storage_Order): Adjust restriction for packed array types. * einfo.ads (Is_Bit_Packed_Array): Adjust description. (Is_Packed): Likewise. (Is_Packed_Array_Impl_Type): Likewise. (Packed_Array_Impl_Type): Likewise. * exp_ch4.adb (Expand_N_Indexed_Component): Do not do anything special if the prefix is not a packed array implemented specially. * exp_ch6.adb (Expand_Actuals): Expand indexed components only for bit-packed array types. * exp_pakd.adb (Install_PAT): Set Is_Packed_Array_Impl_Type flag on the PAT before analyzing its declaration. (Create_Packed_Array_Impl_Type): Remove redundant statements. * freeze.adb (Check_Component_Storage_Order): Reject packed array components only if they are bit packed. (Freeze_Array_Type): Fix logic detecting bit packing and do not bit pack for composite types whose size is multiple of a byte. Create the implementation type for packed array types only when it is needed, i.e. bit packing or packing because of holes in index types. Make sure the Has_Non_Standard_Rep and Is_Packed flags agree. * gcc-interface/gigi.h (make_packable_type): Add MAX_ALIGN parameter. * gcc-interface/decl.c (gnat_to_gnu_entity) : Call maybe_pad_type instead of building the padding type manually. (gnat_to_gnu_entity) : Do not assert that Packed_Array_Impl_Type is present for packed arrays. (gnat_to_gnu_component_type): Also handle known alignment for packed types by passing it to make_packable_type. * gcc-interface/utils.c (make_packable_type): Add MAX_ALIGN parameter and deal with it in the array case. Adjust recursive call. Simplify computation of new size and cap the alignment to BIGGEST_ALIGNMENT. 2016-05-16 Thomas Quinot * freeze.adb (Check_Component_Storage_Order): Also get full view of enclosing type. 2016-05-16 Eric Botcazou * exp_util.adb (Remove_Side_Effects): Also make a constant if we need to capture the value for a small not by-reference record type. * freeze.ads (Check_Compile_Time_Size): Adjust comment. * freeze.adb (Set_Small_Size): Likewise. Accept a size in the range of 33 .. 64 bits. (Check_Compile_Time_Size): Merge scalar and access type cases. Change variable name in array type case. For the computation of the packed size, deal with record components and remove redundant test. (Freeze_Array_Type): Also adjust packing status when the size of the component type is in the range 33 .. 64 bits. * doc/gnat_rm/representation_clauses_and_pragmas.rst: Turn primitive into elementary type throughout. Minor tweaks. (Alignment Clauses): Document actual alignment of packed array types. (Pragma Pack for Arrays): List only the 3 main cases and adjust. Add "simple" to the record case. Document effect on non packable types. (Pragma Pack for Records): Likewise. Add record case and adjust. 2016-05-16 Eric Botcazou * gcc-interface/Make-lang.in (GNATMAKE_FOR_HOST): In the canadian cross case, use host_noncanonical instead of host as prefix. (GNATBIND_FOR_HOST): Likewise. (GNATLINK_FOR_HOST): Likewise. (GNATLS_FOR_HOST): Likewise. 2016-05-06 Eric Botcazou PR ada/70969 * system-darwin-ppc64.ads: Add pragma No_Elaboration_Code_All. * system-linux-armeb.ads: Likewise. * system-linux-mips64el.ads: Likewise. * system-linux-mips.ads: Likewise. * system-linux-mipsel.ads: Likewise. * system-linux-ppc64.ads: Likewise. * system-linux-sparcv9.ads: Likewise. * system-rtems.ads: Likewise. 2016-05-04 Samuel Thibault * s-osinte-gnu.ads (Get_Page_Size): Return int and use getpagesize instead of __getpagesize. 2016-05-02 Rainer Orth * gcc-interface/Makefile.in (install-gcc-specs): Use foreach. Honor DESTDIR. 2016-05-02 Tristan Gingold * fname.adb (Is_Predefined_File_Name): Also consider non-krunched i-* names. 2016-05-02 Ed Schonberg * sem_util.adb (Aggregate_Constraint_Checks): Separate accessibility checks and non-null checks for aggregate components, to prevent spurious accessibility errors. 2016-05-02 Ed Schonberg * sem_ch3.adb (OK_For_Limited_Init): A type conversion is not always legal in the in-place initialization of a limited entity (e.g. an allocator). * sem_res.adb (Resolve_Allocator): Improve error message with RM reference when allocator expression is illegal. 2016-05-02 Ed Schonberg * exp_ch6.adb (Expand_Call): When inlining a call to a function declared in a package instance, locate the instance node of the package after the actual package declaration. skipping over pragmas that may have been introduced when the generic unit carries aspects that are transformed into pragmas. 2016-05-02 Bob Duff * s-memory.adb (Alloc, Realloc): Move checks for Size = 0 or size_t'Last into the Result = System.Null_Address path for efficiency. Improve comments (based on actual C language requirements for malloc). * exp_util.adb (Build_Allocate_Deallocate_Proc): Optimize the case where we are using the default Global_Pool_Object, and we don't need the heavy finalization machinery. 2016-05-02 Gary Dismukes * exp_util.ads, sem_ch12.adb: Minor reformatting. 2016-05-02 Javier Miranda * exp_util.ads, exp_util.adb (Force_Evaluation): Adding new formal. (Remove_Side_Effects): Adding a new formal. * exp_ch6.adb (Expand_Simple_Function_Return): Generating the call to the _Postconditions procedure ensure that side-effects are unconditionally removed. 2016-05-02 Ed Schonberg * sem_ch12.adb (Check_Formal_Package_Instance, Check_Mismatch): Use original node to determine whether the declaration is for a formal type declaration, to take into account that formwl private types are rewritten as private extension declarations to simplify semantic analysis. 2016-05-02 Gary Dismukes * exp_ch9.adb, sem_ch6.adb, sem_ch6.ads: Minor reformatting and typo fixes. 2016-05-02 Hristian Kirtchev * sem_ch3.adb, exp_ch9.adb, einfo.adb, sem_ch4.adb, sem_ch6.adb: Minor reformatting. 2016-05-02 Ed Schonberg * exp_ch4.adb (Expand_N_Allocator): If the designated type is a private derived type with no discriminants, examine its underlying_full_view to determine whether the full view has defaulted discriminants, so their defaults can be used in the call to the initialization procedure for the designated object. 2016-05-02 Hristian Kirtchev * exp_prag.adb, comperr.adb: Minor reformatting. 2016-05-02 Ed Schonberg * exp_pakd.adb (Rj_Unchecked_Convert_To): Do not perform an unchecked conversion if the source size is 0 (indicating that its RM size is unknown). This will happen with packed arrays of non-discrete types, in which case the component type is known to match. 2016-05-02 Arnaud Charlet * debug.adb: Reserve -gnatd.V. 2016-05-02 Javier Miranda * sem_ch3.adb (Process_Full_View): Remove from visibility wrappers of synchronized types to avoid spurious errors with their wrapped entity. * exp_ch9.adb (Build_Wrapper_Spec): Do not generate the wrapper if no interface primitive is covered by the subprogram and this is not a primitive declared between two views; see Process_Full_View. (Build_Protected_Sub_Specification): Link the dispatching subprogram with its original non-dispatching protected subprogram since their names differ. (Expand_N_Protected_Type_Declaration): If a protected subprogram overrides an interface primitive then do not build a wrapper if it was already built. * einfo.ads, einfo.adb (Original_Protected_Subprogram): New attribute. * sem_ch4.adb (Names_Match): New subprogram. * sem_ch6.adb (Check_Synchronized_Overriding): Moved to library level and defined in the public part of the package to invoke it from Exp_Ch9.Build_Wrapper_Spec (Has_Matching_Entry_Or_Subprogram): New subprogram. (Report_Conflict): New subprogram. 2016-05-02 Jerome Lambourg * s-unstyp.ads: Code cleanups. 2016-05-02 Hristian Kirtchev * sem_ch13.adb (Size_Too_Small_Error): Fix the error message format. 2016-05-02 Ed Schonberg * exp_prag.adb (Expand_attributes_In_Consequence, Expand_Attributes): If the prefix of'Old is an unconstrained type, for example an unconstrained formal of the enclosing subprogram, create an object declaration with an expression to obtain the actual subtype of the temporary. 2016-05-02 Arnaud Charlet * comperr.adb (Delete_SCIL_Files): Add missing handling of N_Subprogram_Declaration. 2016-05-02 Gary Dismukes * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, checks.adb, sem_attr.adb, gnat1drv.adb, sem_ch4.adb, sem_ch13.adb: Minor reformatting and typo fixes. * sem_prag.adb, sem_ch12.adb: Minor typo fixes. 2016-05-02 Ed Schonberg * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): The function call may be wrapped in an explicit type conversion. 2016-05-02 Jerome Lambourg * interfac.ads: use pragma No_Elaboration_Code_All. * s-unstyp.ads: s-unstyp.ads: use pragma No_Elaboration_Code_All. 2016-05-02 Ed Schonberg * sem.adb (Analyze: If node is an error node previously created by the parser, disable expansion to prevent subsequent glitches in error recovery. 2016-05-02 Hristian Kirtchev * sem_ch13.adb (Alignment_Error): Removed. (Get_Alignment_Value): Code cleanup. 2016-05-02 Tristan Gingold * sem_ch3.adb (Analyze_Object_Declaration): Use Has_Protected to check for the no local protected objects restriction. 2016-05-02 Hristian Kirtchev * einfo.adb Anonymous_Master now uses Node35. (Anonymous_Master): Update the assertion and node reference. (Set_Anonymous_Master): Update the assertion and node reference. (Write_Field35_Name): Add output for Anonymous_Master. (Write_Field36_Name): The output is now undefined. * einfo.ads Update the node and description of attribute Anonymous_Master. Remove prior occurrences in entities as this is now a type attribute. * exp_ch3.adb (Expand_Freeze_Array_Type): Remove local variable Ins_Node. Anonymous access- to-controlled component types no longer need finalization masters. The master is now built when a related allocator is expanded. (Expand_Freeze_Record_Type): Remove local variable Has_AACC. Do not detect whether the record type has at least one component of anonymous access-to- controlled type. These types no longer need finalization masters. The master is now built when a related allocator is expanded. * exp_ch4.adb Remove with and use clauses for Lib and Sem_Ch8. (Current_Anonymous_Master): Removed. (Expand_N_Allocator): Call Build_Anonymous_Master to create a finalization master for an anonymous access-to-controlled type. * exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call): Call routine Build_Anonymous_Master to create a finalization master for an anonymous access-to-controlled type. * exp_ch7.adb (Allows_Finalization_Master): New routine. (Build_Anonymous_Master): New routine. (Build_Finalization_Master): Remove formal parameter For_Anonymous. Use Allows_Finalization_Master to determine whether circumstances warrant a finalization master. This routine no longer creates masters for anonymous access-to-controlled types. (In_Deallocation_Instance): Removed. * exp_ch7.ads (Build_Anonymous_Master): New routine. (Build_Finalization_Master): Remove formal parameter For_Anonymous and update the comment on usage. * sem_util.adb (Get_Qualified_Name): New routines. (Output_Name): Reimplemented. (Output_Scope): Removed. * sem_util.ads (Get_Qualified_Name): New routines. 2016-05-02 Hristian Kirtchev * debug.adb: Document the use of switch -gnatd.H. * gnat1drv.adb (Adjust_Global_Switches): Set ASIS_GNSA mode when -gnatd.H is present. (Gnat1drv): Suppress the call to gigi when ASIS_GNSA mode is active. * opt.ads: Add new option ASIS_GNSA_Mode. * sem_ch13.adb (Alignment_Error): New routine. (Analyze_Attribute_Definition_Clause): Suppress certain errors in ASIS mode for attribute clause Alignment, Machine_Radix, Size, and Stream_Size. (Check_Size): Use routine Size_Too_Small_Error to suppress certain errors in ASIS mode. (Get_Alignment_Value): Use routine Alignment_Error to suppress certain errors in ASIS mode. (Size_Too_Small_Error): New routine. 2016-05-02 Arnaud Charlet * spark_xrefs.ads Description of the spark cross-references clarified; small style fixes. * lib-xref-spark_specific.adb (Add_SPARK_Scope, Detect_And_Add_SPARK_Scope): consider protected types and bodies as yet another scopes. (Enclosing_Subprogram_Or_Library_Package): refactored using Hristian's suggestions; added support for scopes of protected types and bodies; fix for entries to return the scope of the enclosing concurrent type, which is consistent with what is returned for protected subprograms. * sem_intr.adb: Minor style fix in comment. 2016-05-02 Hristian Kirtchev * lib-xref.ads, lib-xref-spark_specific.adb, get_spark_xrefs.adb, put_spark_xrefs.adb: Minor reformatting. 2016-05-02 Doug Rupp * g-traceb.ads: Document traceback for ARM. 2016-05-02 Javier Miranda * exp_disp.adb (Make_Tags): Do not generate the external name of interface tags adding the suffix counter since it causes problems at link time when the IP routines are inlined across units with optimization. 2016-05-02 Ed Schonberg * einfo.ads, einfo.adb (Predicates_Ignared): new flag to indicate that predicate checking is disabled for predicated subtypes in the context of an Assertion_Policy pragma. * checks.adb (Apply_Predicate_Check): Do nothing if Predicates_Ignored is true. * exp_ch3.adb (Expand_Freeze_Enumeration_Type): If Predicates_Ignores is true, the function Rep_To_Pos does raise an exception for invalid data. * exp_ch4.adb (Expand_N_Type_Conversion): IF target is a predicated type do not apply check if Predicates_Ignored is true. * exp_ch5.adb (Expand_N_Case_Statement): If Predicates_Ignored is true, sem_prag.adb: * sem_ch3.adb (Analyze_Object_Declaration): If Predicates_Ignored is true do not emit predicate check on initializing expression. 2016-05-02 Arnaud Charlet * get_spark_xrefs.adb (Get_Nat, Get_Name): Initialize variables when they are declared; refine type of a counter from Integer to Natural. * sem_ch5.adb, gnatcmd.adb, s-intman-posix.adb, eval_fat.adb, prj.adb, sem_util.adb, s-intman-android.adb, prj-nmsc.adb, sem_ch8.adb, exp_ch3.adb: Minor editing. 2016-05-02 Yannick Moy * a-tigeli.adb (Get_Line): Always set Last prior to returning. 2016-05-02 Yannick Moy * lib-xref.adb: Minor style fix in whitespace of declarations. * put_spark_xrefs.adb (Put_SPARK_Xrefs): printing of strings refactored without loops. * put_spark_xrefs.ads (Write_Info_Str): new formal argument of generic procedure. * spark_xrefs.adb (Write_Info_Str): new actual in instantiation of generic procedure. 2016-05-02 Arnaud Charlet * lib-xref-spark_specific.adb (Add_SPARK_Scope): add task type scope. (Detect_And_Add_SPARK_Scope): detect and add task type scope. (Enclosing_Subprogram_Or_Package): Respect boundaries of task and entry declarations. * spark_xrefs.ads: minor typo in comment. 2016-05-02 Arnaud Charlet * make.adb: Minor: avoid an exception when calling gnatmake with no argument and gnatmake is built with checks on. * lib-xref-spark_specific.adb: Minor code cleanup. 2016-05-02 Ed Schonberg * sem_util.adb (Normalize_Actuals): Take into account extra actuals that may have been introduced previously. Normally extra actuals are introduced when a call is expanded, but a validity check may copy and reanalyze a call that carries an extra actual (e.g. an accessibility parameter) before the call itself is marked Analzyed, and the analysis of the copy has to be able to cope with the added actual. 2016-05-02 Bob Duff * sem_ch10.adb (Analyze_Compilation_Unit): Preserve treeishness. Previous version had Context_Items shared between the spec and body. 2016-05-02 Ed Schonberg * sem_aggr.adb (Resolve_Aggr_Expression): For both array and record cases, apply predicate check on component for expression only if expression has been analyzed already. For expressions that need to be duplicated when they cover multiple components, resolution and predicate checking take place later. 2016-05-02 Olivier Hainque * a-direct.adb (Delete_Tree): Use full names to designate subdirs and files therein, instead of local names after a change of current directory. 2016-05-02 Thomas Quinot * freeze.adb (Check_Component_Storage_Order): Get full view of component type. 2016-05-02 Hristian Kirtchev * checks.adb, freeze.adb, sem_res.adb, s-stposu.adb, repinfo.adb: Minor reformatting. 2016-05-02 Hristian Kirtchev * sem_ch4.adb (Find_Indexing_Operations): Use the underlying type of the container base type in case the container is a subtype. * sem_ch5.adb (Analyze_Iterator_Specification): Ensure that the selector has an entity when checking for a component of a mutable object. 2016-05-02 Arnaud Charlet Remove dead code. * opt.ads (Latest_Ada_Only): New flag. * sem_prag.adb, par-prag.adb: Ignore pragma Ada_xx under this flag. * usage.adb, switch-c.adb: Disable support for -gnatxx under this flag. * einfo.ads (Has_Predicates, Predicate_Function): Clarify that Has_Predicates does not imply that Predicate_Function will return a non-empty entity. 2016-05-02 Ed Schonberg * sem_res.adb (Resolve_Qualified_Expression): Generate a predicate check if type requires it. * checks.adb (Apply_Predicate_Check): Disable checks in the object declaration created for an expression with side-effects that requires a predicate check to prevent infinite recursion during expansion. 2016-05-02 Ed Schonberg * sem_ch6.adb (Process_Formals): Check properly the type of a formal to determine whether a given convention applies to it. 2016-05-02 Doug Rupp * tracebak.c: Add incantations for arm-vxworks[67] traceback. 2016-05-02 Thomas Quinot * freeze.adb (Check_Component_Storage_Order): Make it a warning, not an error, to have a component with implicit SSO within a composite type that has explicit SSO. 2016-05-02 Bob Duff * s-stposu.adb (Allocate_Any_Controlled): Don't lock/unlock twice. 2016-05-02 Ed Schonberg * repinfo.adb (List_Entities): Make procedure recursive, to provide representation information for subprograms declared within subprogram bodies. 2016-05-02 Arnaud Charlet * exp_ch5.adb, layout.adb, gnatcmd.adb exp_attr.adb, make.adb, bindgen.adb, debug.adb, exp_pakd.adb, freeze.adb, sem_util.adb, gnatlink.adb, switch-m.adb, exp_ch4.adb, repinfo.adb, adabkend.adb, osint.adb: Remove dead code. 2016-05-02 Yannick Moy * a-tigeli.adb (Get_Line): Fix bound for test to decide when to compensate for character 0 added by call to fgets. 2016-05-02 Ed Schonberg * sem_ch4.adb (Analyze_Allocator): If the expression does not have a subtype indication and the type is an unconstrained tagged type with defaulted discriminants, create an explicit constraint for it during analysis to prevent out-of-order freezing actions on generated classwide types. 2016-05-02 Javier Miranda * exp_ch5.adb (Expand_N_Assignment_Statement): In the runtime check that ensures that the tags of source an target match, add missing displacement of the pointer to the objects if they cover interface types. 2016-05-02 Ed Schonberg * sem_attr.adb (Analyze_Attribute, case 'Old): Do not use base type for attribute when type is discrete: transformation is not needed for such types, and leads to spurious errors if the context is a case construct. 2016-05-02 Eric Botcazou * gcc-interface/decl.c (elaborate_reference_1): Do not bother about operand #2 for COMPONENT_REF. * gcc-interface/utils2.c (gnat_save_expr): Likewise. (gnat_protect_expr): Likewise. (gnat_stabilize_reference_1): Likewise. (gnat_rewrite_reference): Do not bother about operand #3 for ARRAY_REF. (get_inner_constant_reference): Likewise. (gnat_invariant_expr): Likewise. * gcc-interface/trans.c (fold_constant_decl_in_expr): Likewise. 2016-05-02 Eric Botcazou * gcc-interface/trans.c (Range_to_gnu): New static function. (Raise_Error_to_gnu) : Call it to translate the range. (gnat_to_gnu) : Likewise. 2016-04-30 Eric Botcazou * gcc-interface/Make-lang.in (ACATSCMD): New variable. (check-acats): Use it. (check_acats_targets): Likewise. 2016-04-28 Eric Botcazou PR ada/70786 * a-textio.adb (Get_Immediate): Add missing 'not' in expression. 2016-04-27 Eric Botcazou * sem_aux.adb (Is_By_Reference_Type): Also return true for a tagged incomplete type without full view. * sem_ch6.adb (Exchange_Limited_Views): Change into a function and return the list of changes. (Restore_Limited_Views): New procedure to undo the transformation made by Exchange_Limited_Views. (Analyze_Subprogram_Body_Helper): Adjust call to Exchange_Limited_Views and call Restore_Limited_Views at the end, if need be. (Possible_Freeze): Do not delay freezing because of incomplete types. (Process_Formals): Remove kludges for class-wide types. * types.h (By_Copy_Return): Delete. * gcc-interface/ada-tree.h (TYPE_MAX_ALIGN): Move around. (TYPE_DUMMY_IN_PROFILE_P): New macro. * gcc-interface/gigi.h (update_profiles_with): Declare. (finish_subprog_decl): Likewise. (get_minimal_subprog_decl): Delete. (create_subprog_type): Likewise. (create_param_decl): Adjust prototype. (create_subprog_decl): Likewise. * gcc-interface/decl.c (defer_limited_with): Rename into... (defer_limited_with_list): ...this. (gnat_to_gnu_entity): Adjust to above renaming. (finalize_from_limited_with): Likewise. (tree_entity_vec_map): New structure. (gt_pch_nx): New helpers. (dummy_to_subprog_map): New hash table. (gnat_to_gnu_param): Set the SLOC here. Remove MECH parameter and add FIRST parameter. Deal with the mechanism here instead of... Do not make read-only variant of types. Simplify expressions. In the by-ref case, test the mechanism before must_pass_by_ref and also TYPE_IS_BY_REFERENCE_P before building the reference type. (gnat_to_gnu_subprog_type): New static function extracted from... Do not special-case the type_annotate_only mode. Call gnat_to_gnu_profile_type instead of gnat_to_gnu_type on return type. Deal with dummy return types. Likewise for parameter types. Deal with by-reference types explicitly and add a kludge for null procedures with untagged incomplete types. Remove assertion on the types and be prepared for multiple elaboration of the declarations. Skip the whole CICO processing if the profile is incomplete. Handle the completion of a previously incomplete profile. (gnat_to_gnu_entity) : Rename local variable. Adjust couple of calls to create_param_decl. : Remove specific deferring code. : Also deal with E_Subprogram_Type designated type. Simplify handling of dummy types and remove obsolete comment. Constify a couple of variables. Do not set TYPE_UNIVERSAL_ALIASING_P on dummy types. : Tweak comment and simplify condition. : ...here. Call it and clean up handling. Remove obsolete comment and adjust call to gnat_to_gnu_param. Adjust call to create_subprog_decl. : Add a couple of 'const' qualifiers and get rid of inner break statements. Tidy up condition guarding direct use of the full view. (get_minimal_subprog_decl): Delete. (finalize_from_limited_with): Call update_profiles_with on dummy types with TYPE_DUMMY_IN_PROFILE_P set. (is_from_limited_with_of_main): Delete. (associate_subprog_with_dummy_type): New function. (update_profile): Likewise. (update_profiles_with): Likewise. (gnat_to_gnu_profile_type): Likewise. (init_gnat_decl): Initialize dummy_to_subprog_map. (destroy_gnat_decl): Destroy dummy_to_subprog_map. * gcc-interface/misc.c (gnat_get_alias_set): Add guard for accessing TYPE_UNIVERSAL_ALIASING_P. (gnat_get_array_descr_info): Minor tweak. * gcc-interface/trans.c (gigi): Adjust calls to create_subprog_decl. (build_raise_check): Likewise. (Compilation_Unit_to_gnu): Likewise. (Identifier_to_gnu): Accept mismatches coming from a limited context. (Attribute_to_gnu): Remove kludge for dispatch table entities. (process_freeze_entity): Do not retrieve old definition if there is an address clause on the entity. Call update_profiles_with on dummy types with TYPE_DUMMY_IN_PROFILE_P set. * gcc-interface/utils.c (build_dummy_unc_pointer_types): Also set TYPE_REFERENCE_TO to the fat pointer type. (create_subprog_type): Delete. (create_param_decl): Remove READONLY parameter. (finish_subprog_decl): New function extracted from... (create_subprog_decl): ...here. Call it. Remove CONST_FLAG and VOLATILE_FLAG parameters and adjust. (update_pointer_to): Also clear TYPE_REFERENCE_TO in the unconstrained case. 2016-04-27 Arnaud Charlet * aa_util.adb, aa_util.ads: Removed, no longer used. 2016-04-27 Hristian Kirtchev * sem_prag.adb (Analyze_Pragma): An object renaming declaration resulting from the expansion of an object declaration is a suitable context for pragma Ghost. 2016-04-27 Doug Rupp * init.c: Refine last checkin so the only requirement is the signaling compilation unit is compiled with the same mode as the compilation unit containing the initial landing pad. 2016-04-27 Ed Schonberg * sem_ch13.adb (Valid_Default_Iterator): Better filter of illegal specifications for Default_Iterator, including overloaded cases where no interpretations are legal, and return types that are not iterator types. 2016-04-27 Hristian Kirtchev * exp_ch5.adb (Expand_N_Assignment_Statement): Do not install an accessibility check when the left hand side of the assignment denotes a container cursor. * exp_util.ads, exp_util.adb (Find_Primitive_Operations): Removed. * sem_ch4.adb (Find_Indexing_Operations): New routine. (Try_Container_Indexing): Code cleanup. 2016-04-27 Arnaud Charlet * sem_ch10.adb, sem_case.adb: Mark messages udner -gnatwr when needed. 2016-04-27 Hristian Kirtchev * errout.adb, errutil.adb: Minor reformatting. 2016-04-27 Ed Schonberg * sem_ch13.adb (Analyze_Aspect_Specifications, case Pre/Post): Check that the classwide version is illegal when the prefix is an operation of an untagged synchronized type. 2016-04-27 Arnaud Charlet * sinput-l.ads, sem_ch13.adb: Minor editing. 2016-04-27 Doug Rupp * init.c (__gnat_adjust_context_for_raise) [arm-linux thumb]: Bump the pc so the lower order bit is set. 2016-04-27 Ed Schonberg * sem_case.adb, sem_case.ads (NO_Op): If appropriate warning is enabled, report an empty range in a case construct. 2016-04-27 Arnaud Charlet * sinput.ads, a-cfdlli.adb, a-crbtgo.adb, a-chtgop.adb, a-cbhama.adb, a-rbtgbo.adb, a-crdlli.adb, a-chtgbo.adb: Minor editing. 2016-04-27 Bob Duff * a-chtgop.adb (Adjust): Zero the tampering counts on assignment, as is done for the other containers. 2016-04-27 Hristian Kirtchev * ghost.adb (In_Subprogram_Body_Profile): New routine. (Is_OK_Declaration): Treat an unanalyzed expression function as an OK context. Treat a reference to a Ghost entity as OK when it appears within the profile of a subprogram body. 2016-04-27 Bob Duff * errout.ads: Document the fact that informational messages don't have to be warnings. * errout.adb (Error_Msg_Internal): In statistics counts, deal correctly with informational messages that are not warnings. (Error_Msg_NEL): Remove useless 'if' aroung Set_Posted, because Set_Posted already checks for errors and ignores others. * erroutc.adb (Prescan_Message): Set Is_Serious_Error to False if Is_Info_Msg; the previous code was assuming that Is_Info_Msg implies Is_Warning_Msg. * errutil.adb (Error_Msg): In statistics counts, deal correctly with informational messages that are not warnings. 2016-04-27 Ed Schonberg * sem_util.ads, sem_util.adb (Is_Null_Record_Type): New predicate to determine whether a record type is a null record. * sem_ch3.adb (Analyze_Object_Declaration): If the type is a null record and there is no expression in the declaration, no predicate check applies to the object. 2016-04-27 Hristian Kirtchev * sem_ch7.adb (Analyze_Package_Body_Helper): The body of an instantiated package should not cause freezing of previous contracts. 2016-04-27 Ed Schonberg * sem_dim.adb (Analyze_Dimension): Handle subtype declarations that do not come from source. (Analyze_Dimension_Subtype_Declaration): Allow confirming dimensions on subtype entity, either inherited from base type or provided by aspect specification. 2016-04-27 Ed Schonberg * s-gearop.ads (Matrix_Vector_Solution, Matrix_Matrix_Solution): Add scalar formal object Zero, to allow detection and report when the matrix is singular. * s-gearop.adb (Matrix_Vector_Solution, Matrix_Matrix_Solution): Raise Constraint_Error if the Forward_Eliminate pass has determined that determinant is Zero.o * s-ngrear.adb (Solve): Add actual for Zero in corresponding instantiations. * s-ngcoar.adb (Solve): Ditto. 2016-04-27 Hristian Kirtchev * sem_ch3.adb: Minor reformatting. 2016-04-27 Ed Schonberg * sem_dim.adb (Analyze_Dimension, case N_Identifier): Check that identifier has a usable type before analysis, to handle properly identifiers introduced after some lexical/syntactic recovery that created new identifiers. 2016-04-27 Bob Duff * a-coinve.adb, a-comutr.adb, a-conhel.adb, a-convec.adb, exp_util.adb: Remove assertions that can fail in obscure cases when assertions are turned on but tampering checks are turned off. 2016-04-27 Javier Miranda * exp_ch6.adb (Add_Call_By_Copy_Code, Add_Simple_Call_By_Copy_Code, Expand_Actuals): Handle formals whose type comes from the limited view. 2016-04-27 Yannick Moy * a-textio.adb: Complete previous patch. 2016-04-27 Yannick Moy * inline.adb (Expand_Inlined_Call): Use Cannot_Inline instead of Error_Msg_N to issue message about impossibility to inline call, with slight change of message. 2016-04-27 Hristian Kirtchev * exp_spark.adb (Expand_Potential_Renaming): Removed. (Expand_SPARK): Update the call to expand a potential renaming. (Expand_SPARK_Potential_Renaming): New routine. * exp_spark.ads (Expand_SPARK_Potential_Renaming): New routine. * sem.adb Add with and use clauses for Exp_SPARK. (Analyze): Expand a non-overloaded potential renaming for SPARK. 2016-04-27 Ed Schonberg * sem_ch3.adb (Constrain_Discriminated_Type): In an instance, check full view for the presence of defaulted discriminants, even when the partial view of a private type has no visible and no unknown discriminants. 2016-04-27 Hristian Kirtchev * lib-xref.adb, exp_ch3.adb: Minor reformatting. 2016-04-27 Nicolas Roche * rtinit.c: Add weak symbol __gnat_do_argv_expansion. 2016-04-27 Hristian Kirtchev * sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Code cleanup. Check the original node when trying to determine the node kind of pragma Volatile's argument to account for untagged derivations where the type is transformed into a constrained subtype. 2016-04-27 Olivier Hainque * mkdir.c (__gnat_mkdir): Rework the vxworks section to use a consistent posix interface on the caller side. 2016-04-27 Ed Schonberg * sem_ch10.adb (Build_Limited_View, Decorate_Type): If this is a limited view of a type, initialize the Limited_Dependents field to catch misuses of the type in a client unit. 2016-04-27 Thomas Quinot * a-strunb-shared.adb (Finalize): add missing Reference call. * s-strhas.adb: minor grammar fix and extension of comment * sem_ch8.adb: minor whitespace fixes 2016-04-27 Ed Schonberg * lib-xref.adb (Get_Type_Reference): Handle properly the case of an object declaration whose type definition is a class-wide subtype and whose expression is a function call that returns a classwide type. 2016-04-27 Hristian Kirtchev * sem_util.ads, sem_util.adb (Output_Entity): New routine. (Output_Name): New routine. 2016-04-27 Bob Duff * exp_ch3.adb (Rewrite_As_Renaming): Disable previous change for now. 2016-04-27 Vincent Celier * gnatcmd.adb: For "gnat ls -V -P", recognize switch --unchecked-shared-lib-imports and set the flag Opt.Unchecked_Shared_Lib_Imports accordingly. 2016-04-27 Ed Schonberg * sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part): A generic subprogram is never a primitive operation, and thus a classwide condition for it is not legal. 2016-04-27 Hristian Kirtchev * sem_aggr.adb, sem_dim.adb, sem_dim.ads, einfo.adb: Minor reformatting. 2016-04-27 Hristian Kirtchev * sem_res.adb (Flag_Effectively_Volatile_Objects): New routine. (Resolve_Actuals): Flag effectively volatile objects with enabled property Async_Writers or Effective_Reads as illegal. * sem_util.adb (Is_OK_Volatile_Context): Comment reformatting. 2016-04-27 Javier Miranda * exp_ch3.adb (Make_Predefined_Primitive_Specs): Do not generate the profile of the equality operator if it has been explicitly defined as abstract in the parent type. Required to avoid reporting an spurious error. 2016-04-27 Ed Schonberg * sem_dim.ads, sem_dim.adb (Check_Expression_Dimensions): New procedure to compute the dimension vector of a scalar expression and compare it with the dimensions if its expected subtype. Used for the ultimate components of a multidimensional aggregate, whose components typically are themselves aggregates that are expanded separately. Previous to this patch, dimensionality checking on such aggregates generated spurious errors. * sem_aggr.adb (Resolve_Array_Aggregate): Use Check_Expression_Dimensions when needed. 2016-04-27 Javier Miranda * einfo.ads, einfo.adb (Corresponding_Function): New attribute (applicable to E_Procedure). (Corresponding_Procedure): New attribute (applicable to E_Function). * exp_util.adb (Build_Procedure_Form): Link the function with its internally built proc and viceversa. * sem_ch6.adb (Build_Subprogram_Declaration): Propagate the attribute Rewritten_For_C and Corresponding_Procedure to the body. * exp_ch6.adb (Rewritten_For_C_Func_Id): Removed. (Rewritten_For_C_Proc_Id): Removed. * exp_unst.adb (Note_Uplevel_Ref): Use the new attribute to locate the corresponding procedure. 2016-04-27 Hristian Kirtchev * sem_ch13.adb (Analyze_Aspect_Export_Import): Signal that there is no corresponding pragma. 2016-04-27 Bob Duff * exp_ch3.adb: Minor comment improvement. 2016-04-27 Ed Schonberg * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): If the return type is an untagged limited record with only access discriminants and no controlled components, the return value does not need to use the secondary stack. 2016-04-27 Javier Miranda * exp_util.adb (Remove_Side_Effects): When generating C code handle object declarations that have discriminants and are initialized by means of a call to a function. 2016-04-27 Ed Schonberg * a-textio.adb (Get_Line function): Handle properly the case of a line that has the same length as the buffer (or a multiple thereof) and there is no line terminator. * a-tigeli.adb (Get_Line procedure): Do not store an end_of_file in the string when there is no previous line terminator and we need at most one additional character. 2016-04-27 Arnaud Charlet * s-rident.ads: Make No_Implicit_Loops non partition wide. 2016-04-27 Arnaud Charlet * sem_ch11.adb (Analyze_Handled_Statements): check useless assignments also in entries and task bodies, not only in procedures and declaration blocks. * sem_ch5.adb (Analyze_Block_Statement): check useless assignements in declaration blocks as part of processing their handled statement sequence, just like it was done for procedures and now is also done for entries and task bodies. * sem_warn.adb (Warn_On_Useless_Assignment): detect boundries of entries and task bodies just like of procedures. 2016-04-27 Hristian Kirtchev * sem_util.adb (Is_Volatile_Function): Recognize a function declared within a protected type as well as the protected/unprotected version of a function. 2016-04-27 Bob Duff * exp_ch3.adb (Expand_N_Object_Declaration): Rewrite an object declaration of the form "X : T := Func (...);", where T is controlled, as a renaming. * a-strunb-shared.adb (Finalize): Set the Unbounded_String Object to be an empty string, instead of null-ing out the Reference. * exp_util.adb (Needs_Finalization): Remove redundant code. 2016-04-27 Hristian Kirtchev * aspects.ads Aspects Export and Import do not require delay. They were classified as delayed aspects, but treated as non-delayed by the analysis of aspects. * freeze.adb (Copy_Import_Pragma): New routine. (Wrap_Imported_Subprogram): Copy the import pragma by first resetting all semantic fields to avoid an infinite loop when performing the copy. * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Add comment on the processing of aspects Export and Import at the freeze point. (Analyze_Aspect_Convention: New routine. (Analyze_Aspect_Export_Import): New routine. (Analyze_Aspect_External_Link_Name): New routine. (Analyze_Aspect_External_Or_Link_Name): Removed. (Analyze_Aspect_Specifications): Factor out the analysis of aspects Convention, Export, External_Name, Import, and Link_Name in their respective routines. Aspects Export and Import should not generate a Boolean pragma because their corresponding pragmas have a very different syntax. (Build_Export_Import_Pragma): New routine. (Get_Interfacing_Aspects): New routine. 2016-04-27 Eric Botcazou * inline.adb (Add_Inlined_Body): Overhaul implementation, robustify handling of -gnatn1, add special treatment for expression functions. 2016-04-27 Doug Rupp * g-traceb.ads: Update comment. * exp_ch2.adb: minor style fix in object declaration 2016-04-27 Hristian Kirtchev * sem_elab.adb (Check_Internal_Call): Do not consider a call when it appears within pragma Initial_Condition since the pragma is part of the elaboration statements of a package body and may only call external subprograms or subprograms whose body is already available. (Within_Initial_Condition): New routine. 2016-04-27 Ed Schonberg * exp_util.adb (Build_Procedure_Form): Prevent double generation of the procedure form when dealing with an expression function whose return type is an array. * sem_ch3.adb: Fix out-of order Has_Predicates setting. * exp_ch6.adb: Proper conversion for inherited operation in C. * sem_ch6.adb: Code cleanup. 2016-04-27 Hristian Kirtchev * lib-xref.ads, sem_ch10.adb: minor style fix in comment * g-socket.adb: Minor reformatting. * sinfo.ads: Minor comment correction. * sem_warn.ads: minor grammar fix in comment 2016-04-27 Eric Botcazou * gcc-interface/gigi.h (gnat_to_gnu_entity): Adjust prototype. (maybe_pad_type): Adjust comment. (finish_record_type): Likewise. (rest_of_record_type_compilation): Likewise. * gcc-interface/decl.c (gnat_to_gnu_entity): Change DEFINITION type parameter from integer to boolean. Adjust recursive calls. : Use copy_type and remove redundant assignments. : Adjust comment. Remove call to rest_of_record_type_compilation. Set TYPE_PADDING_P flag earlier. Pass false to finish_record_type. Set the debug type later. : Remove call to rest_of_record_type_compilation. (gnat_to_gnu_component_type): Fix formatting. (gnat_to_gnu_field_decl): Adjust call to gnat_to_gnu_entity. (gnat_to_gnu_type): Likewise. * gcc-interface/trans.c (Identifier_to_gnu): Likewise. (Loop_Statement_to_gnu): Likewise. (Subprogram_Body_to_gnu): Likewise. (Exception_Handler_to_gnu_fe_sjlj): Likewise. (Exception_Handler_to_gnu_gcc): Likewise. (Compilation_Unit_to_gnu): Likewise. (gnat_to_gnu): Likewise. (push_exception_label_stack): Likewise. (elaborate_all_entities_for_package): Likewise. (process_freeze_entity): Likewise. (process_decls): Likewise. (process_type): Likewise. * gcc-interface/utils.c (struct deferred_decl_context_node): Tweak. (maybe_pad_type): Adjust comments. Set the debug type later. Remove call to rest_of_record_type_compilation. (rest_of_record_type_compilation): Use copy_type. (copy_type): Use correctly typed constants. (gnat_signed_or_unsigned_type_for): Use copy_type. * gcc-interface/utils2.c (nonbinary_modular_operation): Likewise. (build_goto_raise): Adjust call tognat_to_gnu_entity. 2016-04-27 Eric Botcazou * gcc-interface/misc.c (gnat_init): Do not call internal_reference_types. 2016-04-27 Svante Signell * gcc-interface/Makefile.in (x86 GNU/Hurd): Use s-osinte-gnu.adb. * s-osinte-gnu.ads: Small tweaks. * s-osinte-gnu.adb: New file. 2016-04-21 Hristian Kirtchev * sem_prag.adb (Match_Constituent): Treat a constant as a legal constituent even if it is not to prevent spurious errors. 2016-04-21 Gary Dismukes * sem_ch4.adb: Minor typo fixes and reformatting. 2016-04-21 Dmitriy Anisimkov * g-calend.ads (No_Time): The same value in any timezone. * g-socket.adb (Raise_Host_Error): Remove ending dot from original error message before append colon delimited host name. 2016-04-21 Hristian Kirtchev * sem_ch3.adb: Code cleanup. * sem_ch6.adb: Code cleanup. (Is_Matching_Limited_View): New routine. (Matches_Limited_With_View): Reimplemented. * sem_ch10.adb (Decorate_Type): Code cleanup. 2016-04-21 Doug Rupp * tracebak.c (PPC ELF): Add macro defs for lynxos178e. 2016-04-21 Ed Schonberg * sem_ch4.adb (Try_Container_Indexing): If there are overloaded indexing functions, collect all overloadings of the call firts, and then transfer them to indexing node, to prevent interleaving of the set of interpretations of the nodes involved. * sem_res.adb (Resolve): Suppress cascaded errors that report ambiguities when one of the actuals in an overloaded generatlized indexing operation is illegal and has type Any_Type, as is done for similar cascaded errors in subprogram calls. (Valid_Tagged_Conversion): Cleanup conversion checks when one of the types involved is a class-wide subtype. 2016-04-21 Ed Schonberg * sem_ch12.adb (Load_Parent_Of_Generic): When looking for the subprogram declaration within a wrapper package, skip pragmas that may have been generated by aspect specifications on the generic instance. 2016-04-21 Javier Miranda * exp_aggr.adb (Component_Not_OK_For_Backend): Generating C code return True for array identifiers since the backend needs to initialize such component by means of memcpy(). 2016-04-21 Arnaud Charlet * a-tasatt.adb, a-tasatt.ads (Fast_Path): Rewritten to avoid reading potentially uninitialized memory. * sem_ch3.adb: Minor style fix in comment. 2016-04-21 Arnaud Charlet * gnat_rm.texi, gnat_ugn.texi, doc/gnat_ugn/gnat_project_manager.rst, doc/gnat_ugn/building_executable_programs_with_gnat.rst, doc/gnat_ugn/gnat_and_program_execution.rst, doc/gnat_ugn/gnat_utility_programs.rst, doc/gnat_ugn/the_gnat_compilation_model.rst, doc/gnat_rm/implementation_defined_attributes.rst, doc/gnat_rm/standard_and_implementation_defined_restrictions.rst, doc/gnat_rm/implementation_defined_pragmas.rst, doc/gnat_rm/the_gnat_library.rst, doc/gnat_rm/implementation_defined_aspects.rst: Update doc. * doc/Makefile: Cleanups. 2016-04-21 Hristian Kirtchev * exp_pakd.adb, sem_ch13.adb: Minor reformatting. 2016-04-21 Ed Schonberg * exp_dbug.adb, exp_dbug.ads (Qualify_Entity_Name): Add suffixes to disambiguate local variables that may be hidden from inner visibility by nested block declarations or loop variables. 2016-04-21 Jerome Lambourg * s-soflin.adb: Initialize the Stack_Limit global variable. 2016-04-21 Hristian Kirtchev * lib-writ.adb: Minor reformatting. 2016-04-21 Ed Schonberg * exp_pakd.adb (Compute_Number_Components): New function to build an expression that computes the number of a components of an array that may be multidimensional. (Expan_Packed_Eq): Use it. 2016-04-21 Arnaud Charlet * g-traceb.ads: Update list of supported platforms. 2016-04-21 Ed Schonberg * sem_ch13.adb (Add_Predicates): if the type is declared in an inner package it may be frozen outside of the package, and the generated pragma has not been analyzed yet, the expression for the predicate must be captured and added to the predicate function at this point. 2016-04-21 Hristian Kirtchev * contracts.adb (Analyze_Package_Body_Contract): Do not check for a missing package refinement because 1) packages do not have "refinement" and 2) the check for proper state refinement is performed in a different place. * einfo.adb (Has_Non_Null_Visible_Refinement): Reimplemented. (Has_Null_Visible_Refinement): Reimplemented. * sem_ch3.adb (Analyze_Declarations): Determine whether all abstract states have received a refinement and if not, emit errors. * sem_ch7.adb (Analyze_Package_Declaration): Code cleanup. Determine whether all abstract states of the package and any nested packages have received a refinement and if not, emit errors. (Requires_Completion_In_Body): Add new formal parameter Do_Abstract_States. Update the comment on usage. Propagate the Do_Abstract_States flag to all Unit_Requires_Body calls. (Unit_Requires_Body): Remove formal parameter Ignore_Abstract_States. Add new formal paramter Do_Abstract_States. Propagate the Do_Abstract_States flag to all Requires_Completion_In calls. * sem_ch7.ads (Unit_Requires_Body): Remove formal parameter Ignore_Abstract_States. Add new formal paramter Do_Abstract_States. Update the comment on usage. * sem_ch9.adb (Analyze_Single_Protected_Declaration): Do not initialize the constituent list as this is now done on a need-to-add-element basis. (Analyze_Single_Task_Declaration): Do not initialize the constituent list as this is now done on a need-to-add-element basis. * sem_ch10.adb (Decorate_State): Do not initialize the constituent lists as this is now done on a need-to-add-element basis. * sem_prag.adb (Analyze_Constituent): Set the refinement constituents when adding a new element. (Analyze_Part_Of_In_Decl_Part): Set the Part_Of constituents when adding a new element. (Analyze_Part_Of_Option): Set the Part_Of constituents when adding a new element. (Analyze_Pragma): Set the Part_Of constituents when adding a new element. (Check_Constituent_Usage (all versions)): Reimplemented. (Collect_Constituent): Set the refinement constituents when adding a new element. (Create_Abstract_State): Do not initialize the constituent lists as this is now done on a need-to-add-element basis. (Propagate_Part_Of): Set the Part_Of constituents when adding a new element. * sem_util.adb (Check_State_Refinements): New routine. (Has_Non_Null_Refinement): Reimplemented. (Has_Null_Refinement): Reimplemented. (Requires_State_Refinement): Removed. * sem_util.ads (Check_State_Refinements): New routine. (Requires_State_Refinement): Removed. 2016-04-21 Hristian Kirtchev * lib-writ.adb, sem_ch6.adb: Minor reformatting and code cleanup. * sem.adb: Fix comment. 2016-04-21 Ed Schonberg * sem_ch3.adb (Analyze_Subtype_Declaration): A subtype declaration with no aspects, whose subtype_mark is a subtype with predicates, inherits the list of subprograms for the type. 2016-04-21 Arnaud Charlet * exp_aggr.adb (Has_Per_Object_Constraint): Refine previous change. 2016-04-21 Thomas Quinot * g-socket.adb (Raise_Host_Error): Include additional Name parameter. 2016-04-21 Ed Schonberg * lib-writ.adb (Write_ALI): Do not record in ali file units that are present in the files table but not analyzed. These units are present because they appear in the context of units named in limited_with clauses, and the unit being compiled does not depend semantically on them. 2016-04-21 Ed Schonberg * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Simplify code to create the procedure body for an function returning an array type, when generating C code. Reuse the subprogram body rather than creating a new one, both as an efficiency measure and because in an instance the body may contain global references that must be preserved. 2016-04-21 Hristian Kirtchev * sem_ch3.adb, exp_attr.adb, exp_ch6.adb, exp_aggr.adb: Minor reformatting. 2016-04-21 Javier Miranda * exp_aggr.adb (Component_Check): Extend the check that verifies that the aggregate has no function calls to handle transformations performed by the frontend. (Ultimate_Original_Expression): New subprogram. 2016-04-21 Philippe Gil * krunch.adb (Krunch): Fix krunching of i-java. 2016-04-21 Arnaud Charlet * exp_ch8.adb (Evaluation_Required): Always return True when Modify_Tree_For_C. 2016-04-21 Eric Botcazou * gnatlink.adb (Gnatlink): Robustify detection of Windows target. * alloc.ads: Minor comment fixes. * einfo.ads: Fix typo. 2016-04-21 Arnaud Charlet * exp_aggr.adb (Component_Not_OK_For_Backend): Redo previous changes to handle all cases of components depending on the discriminant, not just string literals. 2016-04-21 Ed Schonberg * sem_ch3.adb (Analyze_Subtype_Declaration): If the subtype declaration is the generated declaration for a generic actual, inherit predicates from the actual if it is a predicated subtype. 2016-04-21 Ed Schonberg * exp_ch6.adb (Rewrite_Function_Call_For_C): If the function is inherited and its result is controlling, introduce a conversion on the actual for the corresponding procedure call, to avoid spurious type errors. 2016-04-21 Jerome Lambourg * krunch.adb (Krunch): Fix krunching of i-vxworks. 2016-04-21 Gary Dismukes * exp_aggr.adb: Minor reformatting and code cleanup. 2016-04-21 Ed Schonberg * sem_ch13.adb (Resolve_Name): Omit quantified expressions from resolution, because they introduce local names. Full resolution will take place when predicate function is constructed. 2016-04-21 Arnaud Charlet * exp_aggr.adb (Component_Not_OK_For_Backend): Refine previous change to take into account Per_Object_Constraint field rather than special casing strings. * exp_ch6.adb: Fix typo in Replace_Returns. 2016-04-21 Hristian Kirtchev * sem_ch5.adb: Minor reformatting. 2016-04-21 Arnaud Charlet * exp_aggr.adb (Backend_Processing_Possible): Return False when generating C and aggregate contains function calls. 2016-04-21 Tristan Gingold * krunch.adb (Krunch): Only partially krunch children of Interfaces that aren't known. 2016-04-21 Ed Schonberg * sem_prag.adb (Make_Inline): Handle properly the instantiation of a generic subpprogram that carries an Inline aspect. Place inline info on the anonymous subprogram that is constructed in the wrapper package. (Analyze_Pragma, case Pure): Do not check placement if pragma appears within an instantiation, which can be nested at any level. * sem_ch12.adb (Analyze_Instance_And_Renamings): Do not copy Freeze node from anonymous subprogram to its visible renaming. The freeze node will be constructed if the subprogram carries delayed aspects. (Set_Global): Preserve dimension information if present (from code reading). 2016-04-21 Vasiliy Fofanov * gnatlink.adb: Change wording of the warning message on problematic filenames to be more neutral. Add a new substring "patch" introduced on Windows 10. 2016-04-21 Philippe Gil * tracebak.c (__gnat_backtrace): handle bad RIP values (win64 only) 2016-04-21 Javier Miranda * exp_aggr.adb (Component_Not_OK_For_Backend): Return true for string literals. 2016-04-21 Hristian Kirtchev * einfo.adb (Has_Non_Null_Abstract_State): New routine. * einfo.ads New synthesized attribute Has_Non_Null_Abstract_State along with occurrences in entities. (Has_Non_Null_Abstract_State): New routine. * sem_ch7.adb (Unit_Requires_Body): Add local variable Requires_Body. A package declaring an abstract state requires a body only when the state is non-null and the package contains at least one other construct that requires completion in a body. * sem_util.adb (Mode_Is_Off): Removed. (Requires_State_Refinement): Remove an obsolete check. Code cleanup. 2016-04-21 Bob Duff * sem_attr.adb (Analyze_Attribute): In processing the 'Old attribute, a warning is given for infinite recursion. Fix the code to not crash when the prefix of 'Old denotes a protected function. * sem_ch5.adb (Analyze_Iterator_Specification): Avoid calling Is_Dependent_Component_Of_Mutable_Object in cases where the parameter would not be an object. 2016-04-21 Eric Botcazou * sem_eval.adb (Compile_Time_Compare): Be prepared for an empty Etype or Underlying_Type of the operands. 2016-04-21 Eric Botcazou * atree.adb (Print_Statistics): Protect against overflows and print the memory consumption in bytes. * table.adb (Reallocate): Do the intermediate calculation of the new size using the Memory.size_t type. 2016-04-21 Gary Dismukes * exp_attr.adb (Is_Inline_Floating_Point_Attribute): Suppress expansion of Attribute_Machine and Attribute_Model for AAMP. 2016-04-21 Ed Schonberg * freeze.adb: Disable previous change for now. 2016-04-21 Ed Schonberg * sem_ch8.adb (Find_Selected_Component): If prefix has an access type and designated type is a limited view, introduce an explicit dereference before continuing the analysis, and set its type to the non-limited view of the designated type, if we are in context where it is available. 2016-04-21 Ed Schonberg * freeze.adb: Freeze profile in ASIS mode. 2016-04-21 Hristian Kirtchev * sem_aux.ads, sem_aux.adb (Has_Rep_Item): New variant. * sem_util.adb (Inherit_Rep_Item_Chain): Reimplemented. 2016-04-21 Hristian Kirtchev * exp_ch6.adb: Minor reformatting. 2016-04-21 Ed Schonberg * sem_ch13.adb: Minor comment update. 2016-04-21 Ed Schonberg * freeze.ads, freeze.adb (Freeze_Entity, Freeze_Before): Add boolean parameter to determine whether freezing an overloadable entity freezes its profile as well. This is required by AI05-019. The call to Freeze_Profile within Freeze_Entity is conditioned by the value of this flag, whose default is True. * sem_attr.adb (Resolve_Attribute, case 'Access): The attribute reference freezes the prefix, but it the prefix is a subprogram it does not freeze its profile. 2016-04-21 Javier Miranda * exp_util.adb (Build_Procedure_Form): No action needed for subprogram renamings since the backend can generate the call using the renamed subprogram. This leaves the tree more clean to the backend. * exp_ch6.adb (Expand_Call): Extend previous patch for rewritten-for-c entities to handle subprogram renamings. (Rewrite_Function_Call_For_C): Handle subprogram renamings. 2016-04-21 Ed Schonberg * sem_ch13.adb: Code cleanup. 2016-04-21 Ed Schonberg * sem_ch6.adb (Analyze_Subprogram_Body_Helper): If the body is created for SPARK_To_C, the entity must remain invisible so it does not overload subsequent references to the original function. * exp_ch6.adb (Build_Procedure_Body_Form, Replace_Returns): Handle Extended_Return_Statements by replacing it with a block with assignments and a simple return statement. * exp_util.adb (Build_Procedure_Form): Make procedure entity invisible after analyzing declaration, to prevent improper overloading. 2016-04-21 Javier Miranda * sem_ch6.adb (Build_Subprogram_Declaration): Propagate the attribute Rewritten_For_C to the body since since the expander may generate calls using that entity. * exp_ch6.adb (Expand_Call): For internally generated calls ensure that they reference the entity of the spec of the called function. (Rewritten_For_C_Func_Id): New subprogram. (Rewritten_For_C_Proc_Id): New subprogram. (Rewrite_Function_Call_For_C): Invoke the new subprogram to ensure that we skip freezing entities. * exp_util.adb (Build_Procedure_Form): No action needed if the procedure was already built. 2016-04-21 Hristian Kirtchev * sem_ch3.adb, exp_util.adb, sem_ch13.adb, exp_unst.adb: Minor reformatting. 2016-04-21 Ed Schonberg * sem_util.adb (Denotes_Iterator): Use root type to determine whether the ultimate ancestor is the predefined iterator interface pakage. * exp_ch5.adb (Expand_Iterator_Over_Container): simplify code and avoid reuse of Pack local variable. 2016-04-21 Olivier Hainque * system-vxworks-arm.ads, system-vxworks-sparcv9.ads, system-vxworks-ppc.ads, system-vxworks-m68k.ads, system-vxworks-mips.ads, system-vxworks-x86.ads: Define Executable_Extension to ".out". 2016-04-21 Javier Miranda * frontend.adb: Update call to Unnest_Subprograms. * exp_ch6.ads, exp_ch6.adb, exp_unst.ads, exp_unst.adb (Unnest_Subprograms): Moved to package exp_unst. * exp_unst.ads (Unnest_Subprogram): Moved to the body of the package. * exp_dbug.adb (Qualify_Entity_Name): Enable qualification of enumeration literals when generating C code. 2016-04-21 Javier Miranda * frontend.adb: Remove call to initialize Exp_Ch6. * exp_ch6.ads, exp_ch6.adb (Initialize): removed. (Unest_Entry/Unest_Bodies): Removed. (Unnest_Subprograms): Code cleanup. 2016-04-21 Arnaud Charlet * set_targ.adb (Read_Target_Dependent_Values): close target description file once its contents is read. * s-os_lib.adb (Non_Blocking_Spawn, version with Stdout_File and Stderr_File): Close local file descriptors before spawning child process. * exp_util.adb (Containing_Package_With_Ext_Axioms): Limit scope of local variables to make the code easier to understand and avoid duplicated calls to Parent and Generic_Parent. 2016-04-20 Bob Duff * s-os_lib.ads: Minor comment fix. 2016-04-20 Ed Schonberg * exp_ch5.adb (Expand_N_Assignment_Statement): Do no generate a discriminant check for a type whose partial view has unknown discriminants when the full view has discriminants with defaults. 2016-04-20 Javier Miranda * exp_util.adb (Remove_Side_Effects): When generating C code remove side effect of type conversion of access to unconstrained array type. (Side_Effect_Free): Return false for the type conversion of access to unconstrained array type when generating C code. * sem_res.adb (Resolved_Type_Conversion): Remove side effects of access to unconstrained array type conversion when generating C code. 2016-04-20 Ed Schonberg * sem_ch13.adb (Build_Predicate_Function_Declaration): New function, to construct the declaration of a predicate function at the end of the current declarative part rather than at the (possibly later) freeze point of the type. This also allows uses of a type with predicates in instantiations elsewhere. (Resolve_Aspect_Expression): New procedure to detect visiblity errors in aspect expressions, at the end of the declarative part that includes the type declaration. * sem_ch3.adb (Complete_Private_Subtype): Propagate properly the predicate function from private to full view. * einfo.adb (Predicate_Function): Refine search for predicate function when type has a full view and predicate function may be defined on either view. 2016-04-20 Javier Miranda * frontend.adb: Passing the root of the tree to Unnest_Subprograms(). * exp_ch6.adb (Expand_N_Subprogram_Body): Remove code that took care of adding subprograms to the Unest_Bodies table since performing such action too early disables the ability to process generic instantiations. (Unnest_Subprograms): Adding parameter. (Search_Unnesting_Subprograms): New subprogram. * exp_ch6.ads (Unnest_Subrograms): Update documentation. 2016-04-20 Hristian Kirtchev * exp_util.adb, freeze.adb, sem_util.adb: Minor reformatting. 2016-04-20 Ed Schonberg * exp_unst.adb (Check_Static_Type): For a private type, check full view. 2016-04-20 Ed Schonberg * sem_attr.adb (Check_Type): Reject an attribute reference in an aspect expression, when the prefix of the reference is the current instance of the type to which the aspect applies. 2016-04-20 Bob Duff * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about hiding unless we're actually hiding something. The previous code would (for example) warn about a "<" on a record type because it incorrectly thought it was hiding the "<" on Boolean in Standard. We need to check that the homonym S is in fact a homograph of a predefined operator. 2016-04-20 Ed Schonberg * exp_util.ads, exp_util.adb (Build_Procedure_Form): Moved here from exp_ch6.adb, for use in SPARK_To_C mode when creating the procedure equivalent to a function returning an array, when this construction is deferred to the freeze point of the function. * sem_util.adb (Is_Unchecked_Conversion_Instance): Include a function that renames an instance of Unchecked_Conversion. * freeze.adb (Freeze_Subprogram): Generate the proper procedure declaration for a function returning an array. * exp_ch6.adb (Build_Procedure_Form): Moved to exp_util. 2016-04-20 Ed Schonberg * sem_util.ads, sem_util.adb (Is_Expanded_Priority_Attribute): New predicate to determine that in a context with full run-time, a function call is an expansion of a reference to attribute Priority. * sem_ch5.adb (Analyze_Function_Call): use it. * exp_ch5.adb (Expand_N_Subprogram_Call): use it. 2016-04-20 Hristian Kirtchev * einfo.adb Flag286 is now used as Is_Exception_Handler. (Is_Exception_Handler): New routine. (Set_Is_Exception_Handler): New routine. (Write_Entity_Flags): Output the status of Is_Exception_Handler. * einfo.ads New attribute Is_Exception_Handler along with occurrences in entities. (Is_Exception_Handler): New routine along with pragma Inline. (Set_Is_Exception_Handler): New routine along with pragma Inline. * exp_ch7.adb (Make_Transient_Block): Ignore blocks generated for exception handlers with a choice parameter. * sem_ch11.adb (Analyze_Exception_Handlers): Mark the scope generated for a choice parameter as an exception handler. 2016-04-20 Ed Schonberg * sem_ch3.adb (Build_Derived_Access_Type): Remove dead code. (Constrain_Discriminated_Type): In an instance, if the type has unknown discriminants, use its full view. (Process_Subtype): Check that the base type is private before adding subtype to Private_Dependents list. 2016-04-20 Bob Duff * sem_ch13.adb: Minor comment fix. 2016-04-20 Yannick Moy * sem_ch4.adb: Fix typos in comments. * sem_res.adb (Resolve_Case_Expression): Fix type of case alternatives. 2016-04-20 Ed Schonberg * sem_ch4.adb (Analyze_Selected_Component): A reference to the current instance of a task type is legal if the prefix is an expression of that task type and the selector is an entry or entry family. 2016-04-20 Arnaud Charlet * a-cfdlli.ads (List): Type is no longer tagged, not needed. Move varsize field at the end for efficiency. 2016-04-20 Vincent Celier * gnatcmd.adb: Do not invoke gprls when the invocation of "gnat ls" includes the switch -V. * clean.adb: "-gnatclean -P" now calls "gprclean --target=" * make.adb: "-gnatmake -P" now calls "gprbuild --target=" 2016-04-20 Hristian Kirtchev * sem_ch12.adb (Qualify_Type): Do not perform partial qualification when the immediate scope is a generic unit. 2016-04-20 Hristian Kirtchev * exp_unst.adb: Minor reformatting. 2016-04-20 Hristian Kirtchev * exp_ch4.adb (Expand_Allocator_Expression): Ensure that the tag assignment and adjustment preceed the accessibility check. * exp_ch7.adb (Is_Subprogram_Call): Reimplemented. 2016-04-20 Hristian Kirtchev * exp_prag.adb (Expand_Attributes): Ensure that the temporary used to capture the value of attribute 'Old's prefix is properly initialized. 2016-04-20 Javier Miranda * exp_unst.ads, exp_unst.adb (Get_Level, Subp_Index): Moved to library level. 2016-04-20 Arnaud Charlet * sem_ch9.adb (Analyze_Task_Type_Declaration): Shut down warning in codepeer mode. 2016-04-20 Vincent Celier * make.adb: Code cleanup. 2016-04-20 Arnaud Charlet * exp_ch4.adb (Expand_Allocator_Expression): Help C code generation. 2016-04-20 Hristian Kirtchev * sem_ch12.adb (Copy_Generic_Node): Handle the special qualification installed for universal literals that act as operands in binary or unary operators. (Qualify_Operand): Mark the qualification to signal the instantiation mechanism how to handle global reference propagation. * sinfo.adb (Is_Qualified_Universal_Literal): New routine. (Set_Is_Qualified_Universal_Literal): New routine. * sinfo.ads New attribute Is_Qualified_Universal_Literal along with occurrences in nodes. (Is_Qualified_Universal_Literal): New routine along with pragma Inline. (Set_Is_Qualified_Universal_Literal): New routine along with pragma Inline. 2016-04-20 Ed Schonberg * sem.adb (Do_Analyze): Save and restore Style_Max_Line_Length so that the corresponding checks are preserved across compilations that include System.Constants in their context. 2016-04-20 Gary Dismukes * sem_type.adb: Minor typo fix and reformatting. * a-conhel.ads: Update comment. 2016-04-20 Bob Duff * a-cihama.adb, a-cihase.adb, a-coinve.adb (Copy): Rewrite the code so it doesn't trigger an "uninit var" warning. 2016-04-20 Hristian Kirtchev * sem_attr.ads Add new table Universal_Type_Attribute. * sem_util.adb (Yields_Universal_Type): Use a table lookup when checking attributes. 2016-04-20 Ed Schonberg * exp_aggr.adb (Init_Stored_Discriminants, Init_Visible_Discriminants): New procedures, subsidiary of Build_Record_Aggr_Code, to handle properly the construction of aggregates for a derived type that constrains some parent discriminants and renames others. 2016-04-20 Hristian Kirtchev * sem_ch12.adb (Qualify_Universal_Operands): New routine. (Save_References_In_Operator): Add explicit qualifications in the generic template for all operands of universal type. * sem_type.adb (Disambiguate): Update the call to Matches. (Matches): Reimplemented. * sem_util.ads, sem_util.adb (Yields_Universal_Type): New routine. 2016-04-20 Ed Schonberg * sem_ch13.adb (Rep_Item_Too_Late): Better error message for an illegal aspect that freezes the entity to which it applies. 2016-04-20 Bob Duff * a-stwibo.ads, a-stzbou.ads ("="): Add overriding keyword before function to avoid crash when compiler is called with -gnatyO (check overriding indicators). 2016-04-20 Ed Schonberg * sem_prag.adb (Analyze_Pragma, case Check_Policy): If this is a configuration pragma and it uses the ARG syntax, insert the rewritten pragma after the current one rather than using Insert_Actions. 2016-04-20 Arnaud Charlet * exp_aggr.adb (Backend_Processing_Possible): Add handling of C back-end. 2016-04-20 Hristian Kirtchev * s-imgllu.adb, sem_util.adb, s-imgint.adb, s-imguns.adb, s-imglli.adb: Minor reformatting. 2016-04-20 Hristian Kirtchev * sem_res.adb (Rewrite_Renamed_Operator): Do not rewrite the renamed operator when the associated node appears within a pre/postcondition. * sem_util.ads, sem_util.adb (In_Pre_Post_Condition): New routine. 2016-04-20 Yannick Moy * osint.adb (Relocate_Path): Fix test when Path is shorter than Prefix. * einfo.adb (Set_Overridden_Operation): Add assertion. * sem_util.adb (Unique_Entity): for renaming-as-body return the spec entity. 2016-04-20 Javier Miranda * exp_unst.adb (Append_Unique_Call): New subprogram. (Unnest_Subprogram): Replace the unique occurrence of Call.Append() by Append_Unique_Call() which protects us from adding to the Calls table duplicated entries. 2016-04-20 Arnaud Charlet * exp_attr.adb (Is_GCC_Target): Fix for C backend. * xref_lib.ads (Dependencies_Tables): instantiate Table package with types that guarantee its safe use. * s-imgllu.adb, s-imgint.adb, s-imguns.adb, s-imglli.adb: Avoid nested procedures. 2016-04-20 Arnaud Charlet * exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Valid]): Disable expansion when generating C code. * sinfo.ads, inline.ads: Minor editing. 2016-04-20 Hristian Kirtchev * sem_util.adb, contracts.adb, ghost.adb, exp_ch6.adb: Minor reformatting. 2016-04-20 Javier Miranda * contracts.adb (Build_Postconditions_Procedure): Code cleanup. * ghost.adb (Os_OK_Ghost_Context.Is_OK_Declaration): Handle the declaration of the internally built _postcondition procedure. 2016-04-20 Arnaud Charlet * snames.ads-tmpl (Internal_Attribute_Id, Attribute_Class_Array): Fix indentation. * sem_util.adb (Is_Unchecked_Conversion_Instance): defense against library-level renamings of other functions, which are never instances of Unchecked_Conversion. * einfo.ads: minor fix of casing in comment 2016-04-20 Ed Schonberg * exp_ch6.adb (Expand_N_Subprogram_Stub): Do not expand a body that has been analyzed and expanded already. Qualify the names in the proper body for use in the generation of C code. 2016-04-20 Javier Miranda * contracts.adb (Build_Postconditions_Procedure): Force its inlining when generating C code. * sem_attr.adb (Analyze_Attribute_Old_Result): Handle inlined _postconditions when generating C code. * exp_ch6.adb (Inlined_Subprogram): Inline calls to _postconditions when generating C code. * sinfo.ads, sinfo.adb (Corresponding_Spec, Set_Corresponding_Spec): types of return value and argument changed from Node_Id to Entity_Id. 2016-04-20 Vincent Celier * make.adb, clean.adb, gnatname.adb: Revert previous change for now. 2016-04-20 Eric Botcazou * sem_ch12.adb (Analyze_Instance_And_Renamings): Do not reset the Has_Delayed_Freeze flag on the anonymous instance node. 2016-04-20 Javier Miranda * sem_ch5.adb (Analyze_Iterator_Specification): Remove transient scope associated with the renaming object declaration. * exp_util.adb (Insert_Actions): Remove handling of iterator loop marked as requiring the secondary stack. 2016-04-20 Ed Schonberg * sem_attr.adb (Analyze_Attribute, case 'Image): Implement AI12-0124, which extends the functionality of the attribute so it reflects the semantics of GNAT 'Img when applied to scalar types. * lib-xref.adb: minor whitespace layout fix. 2016-04-20 Vincent Celier * clean.adb (Gnatclean): Fail if project file specified and gprclean is not available. * gnatname.adb: Fail is -P is used and gprname is not available. * make.adb (Initialize): Fail if project file specified and gprbuild is not available. 2016-04-20 Bob Duff * sem_ch5.adb (Analyze_Iterator_Specification): Do not use secondary stack when possible. 2016-04-20 Gary Dismukes * par_sco.adb, sem_util.adb, sem_ch13.adb: Minor typo corrections and reformatting. 2016-04-20 Ed Schonberg * sem_prag.adb (Analyze_Pragma, case Default_Storage_Pool): If the pragma comes from an aspect specification, verify that the aspect applies to an entity with a declarative part. * exp_ch5.adb: Code cleanup. 2016-04-20 Ed Schonberg * sem_res.adb (Resolve_If_Expression): If first expression is universal, resolve subsequent ones with the corresponding class type (Any_Integer or Any_Real). 2016-04-20 Ed Schonberg * sem_ch5.adb (Analyze_Iterator_Specification): If expansion is disabled, complete the analysis of the iterator name to ensure that reference for entities within are properly generated. 2016-04-20 Arnaud Charlet * a-dispat.ads (Yield): add Global contract. * a-calend.ads, a-reatim.ads: Added Initializes => Clock_Time. * a-taside.adb: Added Initializes => Tasking_State. 2016-04-20 Hristian Kirtchev * sem_ch13.adb (Build_Invariant_Procedure): Reimplement the invariant procedure spec and body insertion. 2016-04-20 Hristian Kirtchev * sem_ch13.adb (Add_Invariant): Do not replace the saved expression of an invariatn aspect when inheriting a class-wide type invariant as this clobbers the existing expression. Do not use New_Copy_List as it is unnecessary and leaves the parent pointers referencing the wrong part of the tree. Do not replace the type references for ASIS when inheriting a class-wide type invariant as this clobbers the existing replacement. 2016-04-20 Ed Schonberg * sem_util.adb (Build_Explicit_Dereference): If the designated expression is an entity name, generate reference to the entity because it will not be resolved again. 2016-04-19 Arnaud Charlet * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst, gnat_rm.texi: Update documentation. 2016-04-19 Olivier Hainque * par_sco.adb (Traverse_One, case N_Case_Statement): Skip pragmas before the first alternative. (Traverse_Handled_Statement_Sequence, Exception_Handlers): Likewise. 2016-04-19 Tristan Gingold * adaint.c (__gnat_lwp_self): New function (for darwin). * s-osinte-darwin.ads, s-osinte-darwin.adb (lwp_self): Import of __gnat_lwp_self. 2016-04-19 Olivier Hainque * sem_util.adb (Build_Elaboration_Entity): Always request an elab counter when preserving control-flow. 2016-04-19 Olivier Hainque * sem_ch13.adb (Build_Invariant_Procedure_Declaration): Set Needs_Debug_Info when producing SCOs. * par_sco.adb (Traverse_Aspects): Fix categorization of Type_Invariant to match actual processing as activated depending on pragma Assertion_Policy. * sem_prag.adb (Analyze_Pragma): Remove special case for Name_Invariant regarding SCO generation, which completely disabled the production of SCOs for Invariant pragmas and aspects. 2016-04-19 Hristian Kirtchev * checks.adb, sem_util.adb, sem_res.adb, sem_attr.adb: Minor reformatting. 2016-04-19 Ed Schonberg * freeze.adb (Freeze_Profile): Refine predicate that checks whether a function that returns a limited view is declared in another unit and cannot be frozen at this point. 2016-04-19 Ed Schonberg * exp_aggr.adb (Component_Count): Handle properly superflat arrays, i.e. empty arrays where Hi < Lo - 1, to ensure that the return value of the function is Natural, rather than leaving the handling of such arrays to the caller of this function. 2016-04-19 Arnaud Charlet * sem_prag.adb, sem_attr.adb, par-prag.adb, exp_aggr.adb, sem_type.adb sem_ch12.adb, sem_ch3.adb, exp_ch7.adb, exp_ch9.adb: Code cleanup. * sem_res.adb, sem_util.ads, sem_util.adb (Is_OK_Volatile_Context): Promoted from being a nested subprogram in Sem_Res.Resolve_Entity_Name to publicly visible routine in Sem_Util. 2016-04-19 Ed Schonberg * checks.adb (Apply_Parameter_Aliasing_Checks): Do not apply the check if the type of the actual is By_Reference. 2016-04-19 Arnaud Charlet * sem_res.adb (Within_Subprogram_Call): Detect also nodes that appear in entry calls. (Resolve_Actuals, Insert_Default): Propagate dimension information if any, from default expression to the copy that appears in the list of actuals. * uintp.ads: minor whitespace fix in comment. * sem_prag.adb, stringt.adb, inline.adb, lib-xref-spark_specific.adb: Minor code cleanup. * set_targ.adb (Set_Targ): convert directly from Natural to Pos, without intermediate conversion to Int. 2016-04-19 Arnaud Charlet * sem_ch6.adb (Process_Formals): Mark suspicious reference to SPARK RM in comment. * sem_prag.adb (Analyze_Global_Item): Fix reference to SPARK RM in comment. * sem_res.adb (Property_Error, Resolve_Actuals): Fix reference to SPARK RM in both comment and error message. 2016-04-19 Eric Botcazou * sem_ch6.adb (Possible_Freeze): If the type is an incomplete CW type, then the subprogram must have a delayed freeze. This ensures that the backend can properly recover the full view when elaborating the access subprogram declaration. 2016-04-19 Ed Schonberg * sem_attr.adb (Resolve_Attribute, case 'Access): Freeze overloadable entity if originally overloaded. 2016-04-19 Arnaud Charlet * exp_aggr.adb, exp_ch3.adb, exp_ch7.adb, exp_ch9.adb, exp_code.adb, exp_fixd.adb, namet.adb, osint.adb, osint.ads, par-ch2.adb, sem_ch10.adb, sem_ch12.adb, sem_disp.adb, sem_elab.adb, sem_elim.adb sem_util.adb, styleg.adb, styleg.ads, stylesw.ads: Minor code clean up. 2016-04-19 Arnaud Charlet * sem_util.adb (Copy_Node_With_Replacement): use Set_Comes_From_Source instead of directly manipulating internals of the node table. * sem_util.adb (Within_Scope): refactored to remove duplicated code. * sem_aux.adb (Get_Rep_Pragma, Subprogram_Body_Entity, Subprogram_Spec): declare variables that do not change as constants and initialize them in the declaration. (Get_Rep_Pragma, Subprogram_Body_Entity, Subprogram_Spec): declare variables that do not change as constants and initialize them in the declaration. 2016-04-19 Ed Schonberg * sem_res.adb (Resolve_Entry_Call): If the entry has preconditions it is rewritten by means of a wrapper that incorporates the original call. Before rewriting generate a reference to the entry being called to prevent spurious warnings and provide correct cross-reference information. 2016-04-19 Hristian Kirtchev * sem_disp.adb (Check_Dispatching_Context): Code cleanup. Add local constant Scop. Ignore any internally generated loops when performing the check concerning an abstract subprogram call without a controlling argument. * sem_util.ads, sem_util.adb (Current_Scope_No_Loops): New routine. 2016-04-19 Bob Duff * sem_elab.adb (Check_A_Call): There are cases where we have No (Ent) after the Alias loop, even when there was no previous error, so we can't assert that there was an error. 2016-04-19 Ed Schonberg * sem_attr.adb (Analyze_Access_Attribute, OK_Self_Reference): Reject use of type name as a prefix to 'access within an aggregate in a context that is not the declarative region of a type. 2016-04-19 Vincent Celier * gnatcmd.adb: Make "gnat ls -P" invoke gprls Make "gnat bind -P" invoke "gprbuild -b" Make "gnat link -P" invoke "gprbuild -l" Fail if the invocation is "gnat find -P" or "gnat xref -P" Remove anything related to project files * g-mbdira.adb: minor whitespace cleanup * g-spipat.adb: minor removal of extra spaces after closing paren 2016-04-19 Ed Schonberg * exp_ch6.adb (Expand_Actuals): If post-statements are present and the enclosing context is a function call or indexing, build an Expression_With_Actions for the call. 2016-04-19 Hristian Kirtchev * lib-writ.adb (Write_With_Lines): Code cleanup. Do not generate a with line for an ignored Ghost unit. * sem_ch7.adb (Analyze_Package_Declaration): Add local constant Par. A child package is Ghost when its parent is Ghost. * sem_prag.adb (Analyze_Pragma): Pragma Ghost can now apply to a subprogram declaration that acts as a compilation unit. 2016-04-18 Michael Matz * gcc-interface/decl.c (gnat_to_gnu_entity): Use SET_TYPE_ALIGN. (gnat_to_gnu_field): Ditto. (components_to_record): Ditto. (create_variant_part_from): Ditto. (copy_and_substitute_in_size): Ditto. (substitute_in_type): Ditto. * gcc-interface/utils.c (make_aligning_type): Use SET_TYPE_ALIGN. (make_packable_type): Ditto. (maybe_pad_type): Ditto. (finish_fat_pointer_type): Ditto. (finish_record_type): Ditto and use SET_DECL_ALIGN. (rest_of_record_type_compilation): Use SET_TYPE_ALIGN. (create_field_decl): Use SET_DECL_ALIGN. 2016-04-18 Arnaud Charlet * einfo.adb (Overridden_Operation): assert that function is called for valid arguments. * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, sem_type.adb, s-osinte-vxworks.ads, a-ngcefu.adb, sem_ch10.adb, einfo.ads, sem_prag.adb, sem_ch12.adb, sem.adb, i-cobol.ads, freeze.adb, sem_util.adb, a-chtgop.ads, s-rannum.adb, exp_ch6.adb, s-bignum.adb, s-osinte-freebsd.ads, par-ch5.adb, a-chtgbo.ads, a-cofove.adb: No space after closing parenthesis except where required for layout. * sem_res.adb: Minor reformatting. 2016-04-18 Arnaud Charlet * exp_ch4.adb (Expand_N_Case_Expression): Convert into a case statement when relevant. 2016-04-18 Bob Duff * a-cuprqu.adb (Enqueue): Properly handle the case where the new element has a unique priority. 2016-04-18 Tristan Gingold * adaint.h: Define stat structures and functions for iOS simulator. 2016-04-18 Arnaud Charlet * sem_res.adb (Resolve_Entry_Call): reset Is_Overloaded flag after resolving calls to overloaded protected operations. * exp_spark.adb (Expand_SPARK): call Qualify_Entity_Names for tasking nodes, i.e. protected types, task types and entries. * exp_ch4.adb (Expand_N_If_Expression): Refine previous change in case of an unconstrained type. 2016-04-18 Yannick Moy * sem_eval.adb, sem_eval.ads (Check_Non_Static_Context): Add comment to document usage of subprogram in GNATprove. 2016-04-18 Ed Schonberg * sem_prag.adb (Analyze_Pragma, case Test_Case): Improve error message for wrong placement of aspect Test_Case. 2016-04-18 Hristian Kirtchev * einfo.ads: Update the documentation of attribute Renamed_Object. * exp_spark.adb (Expand_Potential_Renaming): Reimplemented. 2016-04-18 Gary Dismukes * exp_ch4.adb (Optimize_Length_Comparison): Return immediately in the case of AAMP (same as for use of the -gnatd.P switch) to suppress this optimization, which avoids creating a dependence on the 64-bit arithmetic package. 2016-04-18 Arnaud Charlet * exp_ch4.adb: Update comment. 2016-04-18 Eric Botcazou * exp_ch6.adb (Expand_Call): Make sure instantiations are registered only once as pending here. 2016-04-18 Arnaud Charlet * exp_ch4.adb, gnat1drv.adb, opt.ads, sem_res.adb (Minimize_Expression_With_Actions): New flag. (Adjust_Global_Switches): Set Minimize_Expression_With_Actions when generating C. (Resolve_Short_Circuit): Redo previous change using Minimize_Expression_With_Actions. (Expand_N_If_Expression, Expand_Short_Circuit_Operator): Restore old code to avoid Expression_With_Actions when Minimize_Expression_With_Actions is set. 2016-04-18 Vincent Celier * s-os_lib.adb (Non_Blocking_Spawn, version with Stdout_File and Stderr_File): Close local file descriptors when no longer needed. 2016-04-18 Ed Schonberg * sem_ch5.adb (Analyze_Iterator_Specification): Remove SPARK mode check that the type of the cursor in an iteration over a formal container is not volatile. The proper check on the element type is done elsewhere. 2016-04-18 Ed Schonberg * sem_ch6.adb (Process_Formals): Do not set a delay freeze on a subprogram that returns a class-wide type, if the subprogram is a compilation unit, because otherwise gigi will treat the subprogram as external, leading to link errors. 2016-04-18 Arnaud Charlet * sem_res.adb (Resolve_Short_Circuit): Do not use expression-with-actions when generating C. 2016-04-18 Yannick Moy * sem_util.adb (Apply_Compile_Time_Constraint_Error): Do not generate raise node in GNATprove mode. 2016-04-18 Hristian Kirtchev * s-fileio.adb: Minor reformatting. * sem_prag.adb (Analyze_Input_Item): Add local variable Input_OK. Do not consider mappings of generic formal parameters to actuals. 2016-04-18 Ed Schonberg * sem_ch5.adb (Get_Cursor_Type): If iterator type is a derived type, the cursor is declared in the scope of the parent type. (Analyze_Parameter_Specification): A qualified expression with an iterator type indicates an iteration over a container (explicit or implicit). 2016-04-18 Arnaud Charlet * osint-c.ads, osint-c.adb (Delete_C_File, Delete_H_File): New. * gnat1drv.adb (Gnat1drv): Delete old C files before regenerating them. * debug.adb: Reserve -gnatd.4 to force generation of C files. 2016-04-18 Yannick Moy * sem_eval.adb (Eval_Arithmetic_Op): Do not issue error on static division by zero, instead possibly issue a warning. * sem_res.adb (Resolve_Arithmetic_Op): Do not issue error on static division by zero, instead add check flag on original expression. * sem_util.adb, sem_util.ads (Compile_Time_Constraint_Error): Only issue error when both SPARK_Mode is On and Warn is False. 2016-04-18 Yannick Moy * checks.adb (Apply_Scalar_Range_Check): Force warning instead of error when SPARK_Mode is On, on index out of bounds, and set check flag for GNATprove. 2016-04-18 Hristian Kirtchev * sem_prag.adb (Check_In_Out_States.Check_Constituent_Usage): Update the comment on usage. Reimplemented. (Check_Input_States.Check_Constituent_Usage): Update the comment on usage. A Proof_In constituent can now refine an Input state as long as there is at least one Input constituent present. 2016-04-18 Ed Schonberg * sem_ch6.adb (Check_Inline_Pragma): Use the Sloc of the body id as the sloc of the entity in the generated subprogram declaration, to avoid spurious conformance errors when style checks are enabled. 2016-04-18 Ed Schonberg * sem_ch4.adb (Analyze_Selected_Component, Has_Dereference): Refine check on illegal calls to entities within a task body, when the entity is declared in an object of the same type. In a generic context there might be no explicit dereference but if the prefix includes an access type the construct is legal. 2016-04-18 Arnaud Charlet * rtsfind.ads, rtsfind.adb (RE_Id, RE_Unit_Table): add RE_Default_Priority. 2016-04-18 Bob Duff * sem_prag.adb (Check_Arg_Is_Local_Name): Don't do the check if the pragma came from an aspect specification. 2016-04-18 Gary Dismukes * gnat1drv.adb, contracts.adb: Minor reformatting and wording fixes. 2016-04-18 Ed Schonberg * sem_ch6.adb (Analyze_Subprogram_Body_Helper): To suppress superfluous conformance check on an inlined body with a previous spec, use the fact that the generated declaration does not come from source. We must treat the entity as coming from source to enable some back-end inlining when pragma appears after the body. 2016-04-18 Gary Dismukes * lib-xref-spark_specific.adb, par-ch2.adb, errout.ads, exp_intr.adb: Minor reformatting and typo corrections. 2016-04-18 Ed Schonberg * sem_ch6.adb: Code cleanup. 2016-04-18 Thomas Quinot * sem_ch13.adb: Minor reformatting and error message tweaking (remove extraneous spaces). 2016-04-18 Johannes Kanig * gnat1drv.adb (Gnat1drv): Force loading of System unit for SPARK. 2016-04-18 Bob Duff * s-fileio.adb (Fopen_Mode): If Mode = Out_File, and the file exists, and it's a fifo, we use "w" as the open string instead of "r+". This is necessary to make a write to the fifo block until a reader is ready. 2016-04-18 Hristian Kirtchev * sem_attr.adb (Denote_Same_Function): Account for a special case where a primitive of a tagged type inherits a class-wide postcondition from a parent type. 2016-04-18 Hristian Kirtchev * par-ch2.adb (P_Expression_Or_Reserved_Word): New routine. (P_Pragma): Signal Scan_Pragma_Argument_Association when the use of reserved words is OK. (Scan_Pragma_Argument_Association): Add new formal Reserved_Words_OK and update the comment on usage. Code cleanup. Parse an expression or a reserved word in identifier form for pragmas Restriction_Warnings and Restrictions No_Use_Of_Attribute. * restrict.adb (Check_Restriction_No_Use_Of_Attribute): Reimplemented. (Check_Restriction_No_Use_Of_Pragma): Code cleanup. (Set_Restriction_No_Specification_Of_Aspect): Properly set the warning flag for an aspect. (Set_Restriction_No_Use_Of_Attribute): Properly set the warning flag for an attribute. (Set_Restriction_No_Use_Of_Entity): Update the parameter profile. (Set_Restriction_No_Use_Of_Pragma): Properly set the warning flag for a pragma. * restrict.ads (Check_Restriction_No_Use_Of_Attribute): Update the comment on usage. (Set_Restriction_No_Use_Of_Entity): Update the parameter profile. * sem_attr.adb (Analyze_Attribute): Check restriction No_Use_Of_Attribute. * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Check restriction No_Use_Of_Attribute before any rewritings have taken place. * sem_prag.adb (Analyze_Pragma): Check restriction No_Use_Of_Pragma before any rewritings have taken place. 2016-04-18 Bob Duff * sem_ch6.adb (Is_Inline_Pragma): The pragma argument can be a selected component, which has no Chars field, so we need to deal with that case (use the Selector_Name). (Check_Inline_Pragma): We need to test Is_List_Member before calling In_Same_List, because in case of a library unit, they're not in lists, so In_Same_List fails an assertion. 2016-04-18 Bob Duff * namet.ads, namet.adb: Add an Append that appends a Bounded_String onto a Bounded_String. Probably a little more efficient than "Append(X, +Y);". Also minor cleanup. (Append_Decoded, Append_Decoded_With_Brackets, Append_Unqualified, Append_Unqualified_Decoded): Make sure these work with non-empty buffers. * casing.ads, casing.adb (Set_Casing): Pass a Bounded_String parameter, defaulting to Global_Name_Buffer. * errout.ads, errout.adb (Adjust_Name_Case): Pass a Bounded_String parameter, no default. * exp_ch11.adb (Expand_N_Raise_Statement): Use local Bounded_String instead of Global_Name_Buffer. * exp_intr.ads, exp_intr.adb (Write_Entity_Name): Rename it to Append_Entity_Name, and pass a Bounded_String parameter, instead of using globals. (Add_Source_Info): Pass a Bounded_String parameter, instead of using globals. (Expand_Source_Info): Use local instead of globals. * stringt.ads, stringt.adb (Append): Add an Append procedure for appending a String_Id onto a Bounded_String. (String_To_Name_Buffer, Add_String_To_Name_Buffer): Rewrite in terms of Append. * sem_prag.adb (Set_Error_Msg_To_Profile_Name): Adjust for new Adjust_Name_Case parameter. * erroutc.adb, uname.adb: Don't pass D => Mixed_Case to Set_Casing; that's the default. * lib-xref-spark_specific.adb (Add_SPARK_Scope): Pretend that calls to protected subprograms are entry calls; otherwise it is not possible to distinguish them from regular subprogram calls. 2016-04-18 Gary Dismukes * sem_ch13.adb (Has_Good_Profile): Improvement of error message. Now indicates subtype_mark of formal parameter rather than the formal's name, plus minor rewording. 2016-04-18 Pascal Obry * adaint.c, adaint.h, s-os_lib.ads: Add new routine Current_Process_Id. 2016-04-18 Hristian Kirtchev * stringt.adb, exp_ch6.adb, sem_ch13.adb: Minor reformatting. 2016-04-18 Gary Dismukes * par-ch4.adb, sem_prag.adb: Minor reformatting. 2016-04-18 Bob Duff * sinput.ads, sinput.adb (Build_Location_String): Take a parameter instead of using a global variable. The function version no longer destroys the Name_Buffer. * stringt.ads, stringt.adb (String_From_Name_Buffer): Take a parameter, which defaults to the Global_Name_Buffer, so some calls can avoid the global. * exp_ch11.adb, exp_intr.adb: Use new interfaces above to avoid using globals. All but one call to Build_Location_String avoids the global. Only one call to String_From_Name_Buffer avoids it. 2016-04-18 Hristian Kirtchev * namet.adb, namet.ads, exp_unst.adb: Minor reformatting. 2016-04-18 Hristian Kirtchev * sem_eval.adb (Choice_Matches): Check the expression against the predicate values when the choice denotes a subtype with a static predicate. (Eval_Membership_Op): Code cleanup. Remove the suspicious guard which tests for predicates. (Is_OK_Static_Subtype): A subtype with a dynamic predicate is not static. (Is_Static_Subtype): A subtype with a dynamic predicate is not static. * sem_eval.ads (Is_OK_Static_Subtype): Update the comment on usage. (Is_Static_Subtype): Update the comment on usage. 2016-04-18 Hristian Kirtchev * sem_prag.adb (Analyze_Input_Item): Allow generic formals to appear as initialization items. 2016-04-18 Ed Schonberg * sem_ch13.adb (Analyze_Stream_TSS_Definition, Has_Good_Profile): Additional error message to indicate that the second parameter of the subprogram must be a first subtype. 2016-04-18 Ed Schonberg * sem_ch6.adb (Analyze_Subprogram_Body_Helper, Is_Inline_Pragma): Use the pragma lookahead that determines whether a subprogram is to be inlined, when some level of backend optimization is required. * sem_ch12.ads, sem_ch12.adb (Add_Pending_Instantiation): Factorize code used to create an instance body when needed for inlining. * exp_ch6.adb (Expand_Call): When a call is to be inlined, and the call appears within an instantiation that is not a compilation unit, add a pending instantiation for the enclosing instance, so the backend can inline in turn the calls contained in the inlined body. 2016-04-18 Ed Schonberg * sem_prag.adb (Build_Pragma_Check_Equivalent): The mapping that relates operations of the parent type to the operations of the derived type has three distinct sources: a) explicit operations of the derived type carry an Overridden_Operation that designates the operation in the ancestor. b) Implicit operations that are inherited by the derived type carry an alias that may be an explicit subprogram (in which case it may have an Overridden_ Operation indicator) or may also be inherited and carry its own alias. c) If the parent type is an interface, the operation of the derived type does not override, but the interface operation indicates the operation that implements it. * sem_prag.adb: Minor reformatting. * sem_prag.adb (Check_External_Property): Update the comment on usage. Reimplement. 2016-04-18 Ed Schonberg * exp_ch5.adb (Expand_Assignment_Statement): In restricted profiles such as ZFP, ceiling priority is not available. 2016-04-18 Bob Duff * namet-sp.ads: Minor typo fix, ironically in 'Spelling_Checker'. 2016-04-18 Bob Duff * sem_elab.adb (Output_Calls): Use Get_Name_String, to clearly indicate that the global Name_Buffer is being used. The previous code used Is_Internal_Name, which returns a Boolean, but also has a side effect of setting the Name_Buffer. Then it called the other Is_Internal_Name, which uses the Name_Buffer for its input. And then it called Error_Msg_N, again using the Name_Buffer. We haven't eliminated the global usage here, but we've made it a bit clearer. This also allows us to have a side-effect-free version of Is_Internal_Name. * namet.ads, namet.adb: Provide a type Bounded_String, along with routines that can be used without using global variables. Provide Global_Name_Buffer so existing code can continue to use the global. Mark the routines that use globals as obsolete. New code shouldn't call the obsolete ones, and we should clean up existing code from time to time. Name_Find_Str is renamed as Name_Find. * namet.h: Changed as necessary to interface to the new version of Namet. * bindgen.adb, exp_unst.adb: Name_Find_Str is renamed as Name_Find. 2016-04-18 Yannick Moy * sem_util.adb, sem_util.ads (Has_Full_Default_Initialization): used outside of GNATprove, hence it should not be removed. 2016-04-18 Hristian Kirtchev * sem_prag.adb (Analyze_Refinement_Clause): The refinement of an external abstract state can now mention non-external constituents. (Check_External_Property): Update all SPARK RM references. 2016-04-18 Bob Duff * exp_intr.adb: Remove some duplicated code. 2016-04-18 Yannick Moy * a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-nuflra.ads: Mark package spec and body out of SPARK. 2016-04-18 Johannes Kanig * spark_xrefs.ads: Minor comment update. 2016-04-18 Johannes Kanig * gnat1drv.adb (Gnat1drv): Force loading of System unit for SPARK. 2016-04-18 Bob Duff * a-cuprqu.adb: Correction to previous change. If a new node is inserted at the front of the queue (because it is higher priority than the previous front node), we need to update Header.Next_Unequal -- not just in the case where the queue was previously empty. 2016-04-18 Bob Duff * a-cuprqu.ads: Change the representation of List_Type from a singly-linked list to a doubly-linked list. In addition, add a pointer Next_Unequal, which points past a possibly-long chain of equal-priority items. This increases efficiency, especially in the case of many equal-priority items. * a-cuprqu.adb (Dequeue, Enqueue): Rewrite algorithms to take advantage of new data structure. (Finalize): Rewrite in terms of Dequeue, for simplicity. 2016-04-18 Yannick Moy * contracts.adb (Analyze_Object_Contract, Analyze_Protected_Contract): Remove tests performed in GNATprove. * sem_util.adb, sem_util.ads (Has_Full_Default_Initialization): Remove query for tests performed in GNATprove. 2016-04-18 Ed Schonberg * sem_aggr.adb (Resolve_Record_Aggregate): If Warn_On_Redundant_Constructs is enabled, report a redundant box association that does not cover any components, as it done for redundant others associations in case statements. 2016-04-18 Ed Schonberg * sem_prag.adb (Collect_Inherited_Class_Wide_Conditions): Analyze the generated Check pragma for an inherited condition so that it does not freeze the dispatching type of the primitive operation, because it is pre-analyzed at the point of the subprogram declaration (and not in the subprogram body, as is done during regular expansion). 2016-04-18 Vincent Celier * ali.ads: Increase the range of all _Id types to 100 millions. 2016-04-18 Gary Dismukes * sem_warn.adb (Check_References): Change warning to suggest using pragma Export rather than saying "volatile has no effect". 2016-04-18 Bob Duff * g-souinf.ads (Compilation_ISO_Date): New function to return the current date in ISO form. * exp_intr.adb (Expand_Source_Info, Add_Source_Info): Expand a call to Compilation_ISO_Date into a string literal containing the current date in ISO form. * exp_intr.ads (Add_Source_Info): Improve documentation. * sem_intr.adb (Check_Intrinsic_Subprogram): Recognize Compilation_ISO_Date. * snames.ads-tmpl (Name_Compilation_ISO_Date): New Name_Id. 2016-04-18 Eric Botcazou * layout.adb (Set_Elem_Alignment): Extend setting of alignment to subtypes that are not first subtypes. 2016-04-18 Ed Schonberg * sem_prag.ads (Collect_Inherited_Class_Wide_Conditions): Simplify interface. * sem_prag.adb (Collect_Inherited_Class_Wide_Conditions): Insert generated pragmas after subprogram declaration, rather than in the corresponding subprogram body. * sem_ch6.adb (New_Overloaded_Entity): In GNATProve mode, if the operation is overridding, call Collect_Inherited_Class_Wide_Conditions to generate the corresponding pragmas immediately after the corresponding subprogram declaration. 2016-04-18 Arnaud Charlet * spark_xrefs.ads (Xref_Index, Scope_Index, File_Index): restrict type to natural numbers. (Stype): document code characters for concurrent entities. 2016-04-18 Olivier Hainque * targparm.ads: Update the Frontend_Exceptions default internal value. (Frontend_Exceptions_On_Target): Change default value to True. 2016-04-18 Ed Schonberg * sem_ch4.adb (Analyze_Selected_Component): Refine error detection when a selected component in the body of a synchronized type is a reference to an object of the same type declared elsewhere. The construct is legal if the prefix of the selected component includes an explicit dereference at any point. 2016-04-18 Hristian Kirtchev * sem_ch3.adb (Analyze_Object_Declaration): Do not consider internally generated expressions when trying to determine whether a formal parameter of a tagged type subject to Extensions_Visible False is used to initialize an object. * sem_ch4.adb (Analyze_Type_Conversion): Do not consider internally generated expressions when trying to determine whether a formal parameter of a tagged type subject to Extensions_Visible False is used in a type conversion. 2016-04-18 Hristian Kirtchev * sem_res.adb (Is_Protected_Operation_Call): Add guards to account for a non-decorated selected component. 2016-04-18 Yannick Moy * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Improve implementation of Body_Has_SPARK_Mode_On. * sem_prag.adb, sem_prag.ads (Get_SPARK_Mode_From_Annotation): New function replacing previous Get_SPARK_Mode_From_Pragma, that deals also with aspects. (Get_SPARK_Mode_Type): Make function internal again. * inline.adb, sem_ch7.adb, sem_util.adb: Use new Get_SPARK_Mode_From_Annotation. 2016-04-18 Hristian Kirtchev * contracts.adb (Analyze_Object_Contract): Update references to SPARK RM. * freeze.adb (Freeze_Entity): Update references to SPARK RM. * ghost.adb Add with and use clauses for Sem_Disp. (Check_Ghost_Derivation): Removed. (Check_Ghost_Overriding): Reimplemented. (Check_Ghost_Policy): Update references to SPARK RM. (Check_Ghost_Primitive): New routine. (Check_Ghost_Refinement): New routine. (Is_OK_Ghost_Context): Update references to SPARK RM. (Is_OK_Pragma): Update references to SPARK RM. Predicates are now a valid context for references to Ghost entities. * ghost.ads (Check_Ghost_Derivation): Removed. (Check_Ghost_Overriding): Update the comment on usage. (Check_Ghost_Primitive): New routine. (Check_Ghost_Refinement): New routine. (Remove_Ignored_Ghost_Code): Update references to SPARK RM. * sem_ch3.adb (Process_Full_View): Remove the now obsolete check related to Ghost derivations * sem_ch6.adb (Check_Conformance): Remove now obsolete check related to the convention-like behavior of pragma Ghost. (Check_For_Primitive_Subprogram): Verify that the Ghost policy of a tagged type and its primitive agree. * sem_prag.adb (Analyze_Pragma): Update references to SPARK RM. Move the verification of pragma Assertion_Policy Ghost to the proper place. Remove the now obsolete check related to Ghost derivations. (Collect_Constituent): Add a call to Check_Ghost_Refinement. * sem_res.adb (Resolve_Actuals): Update references to SPARK RM. 2016-04-18 Eric Botcazou * layout.adb: Fix more minor typos in comments. 2016-04-18 Hristian Kirtchev * a-calend.ads, sem_prag.adb, sem_ch6.adb: Minor reformatting. 2016-04-18 Ed Schonberg * sem_ch6.adb (Analyze_Subprogram_Body_Helper): In GNATprove mode, collect inherited class-wide conditions to generate the corresponding pragmas. * sem_prag.ads (Build_Pragma_Check_Equivalent): Moved from contracts * contracts.adb (Collect_Inherited_Class_Wide_Conditions): New procedure for overriding subprograms, used to generate the pragmas corresponding to an inherited class- wide pre- or postcondition. * sem_prag.adb (Build_Pragma_Check_Equivalent): moved here from contracts.adb (Replace_Condition_Entities): Subsidiary Build_Pragma_Check_Equivalent, to implement the proper semantics of inherited class-wide conditions, as given in AI12-0113. (Process_Class_Wide_Condition): Removed. (Collect_Inherited_Class_Wide_Conditions): Iterate over pragmas in contract of subprogram, to collect inherited class-wide conditions. (Build_Pragma_Check_Equivalent): Moved to sem_prag.adb 2016-04-18 Yannick Moy * a-calend.adb (Ada.Calendar): Mark package body as SPARK_Mode Off. * a-calend.ads (Ada.Calendar): Mark package spec as SPARK_Mode and add synchronous external abstract state Clock_Time. 2016-04-18 Yannick Moy * sem_res.adb (Resolve_Call): Prevent inlining of calls inside expression functions. Factor previous code issuing errors to call Cannot_Inline instead, which does appropriate processing of message for GNATprove. 2016-04-18 Arnaud Charlet * einfo.ads, sem_ch3.adb, sem_ch8.adb, osint-l.adb, rtsfind.adb, osint-b.adb: Cleanups. 2016-04-18 Yannick Moy * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Only create body to inline in GNATprove mode when SPARK_Mode On applies to subprogram body. * sem_prag.adb, sem_prag.ads (Get_SPARK_Mode_Type): Make function public. 2016-04-18 Eric Botcazou * layout.adb: Fix minor typo in comment. * inline.adb: Fix minor pasto. * sem_ch12.ads: Fix minor typos in comments. 2016-04-18 Ed Schonberg * sem_disp.adb (Check_Dispatching_Call): Major rewriting to handle some complex cases of tag indeterminate calls that are actuals in other dispatching calls that are themselves tag indeterminate. (Check_Dispatching_Context): Add parameter to support recursive check for an enclosing construct that may provide a tag for a tag-indeterminate call. 2016-04-18 Hristian Kirtchev * sem_prag.adb (Analyze_Depends_In_Decl_Part): Add global variables Task_Input_Seen and Task_Output_Seen. (Analyze_Global_Item): Detect an illegal use of the current instance of a single protected/task type in a global annotation. (Analyze_Input_Output): Inputs and output related to the current instance of a task unit are now tracked. (Check_Usage): Require the presence of the current instance of a task unit only when one input/output is available. (Current_Task_Instance_Seen): New routine. (Is_CCT_Instance): New parameter profile. Update the comment on usage. The routine now properly recognizes several cases related to single protected/task types. 2016-04-18 Hristian Kirtchev * freeze.adb (Freeze_Entity): Use New_Freeze_Node to create a brand new freeze node. This handles a case where an ignored Ghost context is freezing something which is not ignored Ghost and whose freeze node should not be removed from the tree. (New_Freeze_Node): New routine. 2016-04-18 Jerome Lambourg * sigtramp.h (__gnat_set_is_vxsim) New function to tell sigtramp-vxworks to handle vxsim signal contexts. * sigtramp-vxworks.c (__gnat_sigtramp) Take into account the differences in the sigcontext structure between the expected regular x86 or x86_64 ones and the ones received in case of exexution on the vxworks simulator. * init.c: also compute is_vxsim in case of x86_64-vx7 target. Provide this information to sigtramp-vxworks.c. Remove the old mechanism for vxsim. * init-vxsim.c, sigtramp-vxworks-vxsim.c: remove, now obsolete. 2016-04-18 Eric Botcazou * exp_ch3.adb (Inline_Init_Proc): New function returning whether the initialization procedure of a type should be inlined. Return again True for controlled type themselves. (Build_Array_Init_Proc): Call it to set Set_Is_Inlined on Init_Proc. (Build_Record_Init_Proc): Likewise. 2016-04-18 Arnaud Charlet * gnatvsn.ads (Library_Version): Bump to 7. 2016-04-18 Ed Schonberg * sem_ch6.adb (Analyze_Expression_Function): Set Inlined flag on the entity of a subprogram declaration that is completed by an expression function. 2016-04-18 Ed Schonberg * sem_util.adb (Is_Current_Instance): A entity given by a subtype declaration can appear in an aspect specification for a dynamic predicate, and a pragma for aspect Predicate_Failure. * exp_util.adb (Replace_Subtype_References): Replace current occurrences of the subtype to which a dynamic predicate applies, byt the expression that triggers a predicate check. Needed to implement new aspect Predicate_Failure. 2016-04-18 Arnaud Charlet * a-intsig.ads, a-intsig.adb: Removed, no longer used. * Makefile.rtl: update accordingly. 2016-04-18 Eric Botcazou * sem_type.adb (Disambiguate): Call Covers only when necessary for standard operators. 2016-04-18 Eric Botcazou * atree.ads (Num_Extension_Nodes): Add couple of figures to comment. * atree.adb: Add GNAT.Heap_Sort_G dependency. (Print_Statistics): New exported procedure to print statistics. 2016-04-18 Eric Botcazou * exp_ch3.adb (Build_Record_Init_Proc): Do not mark the procedure as to be inlined if the type needs finalization. 2016-04-18 Jerome Lambourg * sigtramp-vxworks-target.inc: sigtramp-vxworks: force the stack alignment for x86_64. * init.c: Better fix for guard page reset on x86_64-vx7. Do not try to retrieve the page that actually raised the signal as the probing mechanism used on x86_64 do not allow such retrieval. We thus just test if the guard page is active, and re-activate it if not. 2016-04-18 Arnaud Charlet * a-sytaco.adb (Suspension_Object): Aspect Default_Initial_Condition added. 2016-04-18 Jerome Lambourg * affinity.c: Use the proper type for task id. * init.c (__gnat_inum_to_ivec): ivec is a pointer. 2016-04-18 Arnaud Charlet * sem_prag.adb (Process_Convention): Relax rule on exporting Intrinsic types if Relaxed_RM_Semantics is True. 2016-04-18 Vincent Celier * sem_ch3.adb, lib.ads, sinfo.ads, sem_ch10.adb, einfo.adb, einfo.ads, checks.ads, sem_ch12.adb, sem.adb, sem_util.adb, sem_util.ads, sem_res.adb, sem_attr.adb, par.adb, exp_ch4.adb, errout.ads, sem_ch4.adb, atree.adb, atree.ads, sem_warn.adb, treepr.adb, exp_ch3.ads, exp_unst.adb: Change "descendent" to "descendant" in comments, error messages and identifiers. * gcc-interface/decl.c: Ditto. 2016-04-18 Eric Botcazou * sem_type.adb (Operator_Matches_Spec): Call First_Formal on New_S only once at the beginning of the function. 2016-04-02 Eric Botcazou * gcc-interface/decl.c (components_to_record): Restrict the previous change to fields with variable size. 2016-03-27 Eric Botcazou * gcc-interface/decl.c (components_to_record): Add special case for single field with representation clause at offset 0. 2016-03-16 Svante Signell * gcc-interface/Makefile.in: Add support for x86 GNU/Hurd. * s-osinte-gnu.ads: New file. 2016-03-13 Eric Botcazou * system-vxworks-m68k.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. * system-vxworks-mips.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. * system-vxworks-ppc.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. * system-vxworks-sparcv9.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. * system-vxworks-x86.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. 2016-03-07 Eric Botcazou * gcc-interface/trans.c (statement_node_p): New predicate. (gnat_to_gnu): Invoke it to detect statement nodes. In ASIS mode, do not return dummy results for expressions attached to packed array implementation types. 2016-03-07 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : Always mark the expression of a renaming manually in case #3. 2016-03-02 Dominik Vogt * system-linux-s390.ads: Enable Stack_Check_Probes. * system-linux-s390.ads: Likewise. 2016-02-29 Martin Liska * gcc-interface/utils.c (set_reverse_storage_order_on_pad_type): Replace ENABLE_CHECKING macro with flag_checking. 2016-02-29 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : Retrofit handling of unconstrained array types as designated types into common processing. Also handle array types as incomplete designated types. 2016-02-29 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : In ASIS mode, fully lay out the minimal record type. 2016-02-29 Eric Botcazou * gcc-interface/trans.c (finalize_nrv_r): Remove obsolete code. (build_return_expr): Likewise. (Call_to_gnu): If this is a function call and there is no target, create a temporary for the return value for all aggregate types, but never create it for a return statement. Push a binding level around the call in more cases. Remove obsolete code. 2016-02-29 Eric Botcazou * gcc-interface/ada-tree.h (DECL_RETURN_VALUE_P): New macro. * gcc-interface/gigi.h (gigi): Remove useless attribute. (gnat_gimplify_expr): Likewise. (gnat_to_gnu_external): Declare. * gcc-interface/decl.c (gnat_to_gnu_entity) : Factor out code dealing with the expression of external constants into... Invoke gnat_to_gnu_external instead. : Invoke gnat_to_gnu_external to translate renamed objects when not for a definition. Deal with COMPOUND_EXPR and variables with DECL_RETURN_VALUE_P set for renamings and with the case of a dangling 'reference to a function call in a renaming. Remove obsolete test and adjust associated comment. * gcc-interface/trans.c (Call_to_gnu): Set DECL_RETURN_VALUE_P on the temporaries created to hold the return value, if any. (gnat_to_gnu_external): ...this. New function. * gcc-interface/utils.c (create_var_decl): Detect a constant created to hold 'reference to function call. * gcc-interface/utils2.c (build_unary_op) : Add folding for COMPOUND_EXPR in the DECL_RETURN_VALUE_P case. 2016-02-17 Eric Botcazou * exp_ch4.adb (Expand_N_Indexed_Component): Activate synchronization if the prefix denotes an entity which Has_Atomic_Components. * gcc-interface/trans.c (node_is_atomic): Return true if the prefix denotes an entity which Has_Atomic_Components. 2016-02-17 Eric Botcazou * gcc-interface/utils2.c (gnat_protect_expr): Make a SAVE_EXPR only for fat pointer or scalar types. 2016-02-16 Eric Botcazou * gcc-interface/gigi.h (maybe_debug_type): New inline function. * gcc-interface/misc.c (gnat_get_array_descr_info): Use it. Call maybe_character_value on the array bounds. Get to the base type of the index type and call maybe_debug_type on it. * gcc-interface/utils.c (finish_character_type): Add special treatment for char_type_node. 2016-02-16 Eric Botcazou * gcc-interface/misc.c (gnat_enum_underlying_base_type): New function. (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Define to above. 2016-02-12 Jakub Jelinek * prj-tree.ads: Spelling fixes - behaviour -> behavior and neighbour -> neighbor. * prep.adb: Likewise. * prj.ads: Likewise. * prepcomp.adb: Likewise. * g-socket.ads: Likewise. * s-imgrea.adb: Likewise. * a-calend.adb: Likewise. * exp_disp.adb: Likewise. * doc/gnat_ugn/gnat_utility_programs.rst: Likewise. * g-socket.adb: Likewise. * sem_ch12.adb: Likewise. * terminals.c: Likewise. 2016-02-08 Bernd Schmidt * gcc-interface/misc.c (gnat_init): Remove second argument in call to build_common_tree_nodes. 2016-02-08 Eric Botcazou * gcc-interface/utils.c (create_var_decl): Set again DECL_COMMON and DECL_IGNORED_P last. 2016-01-28 Eric Botcazou * gcc-interface/gigi.h (enum attr_type): Rename into... (enum attrib_type): ...this. (struct attrib): Adjust. * gcc-interface/decl.c (prepend_one_attribute): Likewise. 2016-01-20 Eric Botcazou * exp_ch2.adb (Expand_Current_Value): Make an appropriate character literal if the entity is of a character type. * gcc-interface/lang.opt (fsigned-char): New option. * gcc-interface/misc.c (gnat_handle_option): Accept it. (gnat_init): Adjust comment. * gcc-interface/gigi.h (finish_character_type): New prototype. (maybe_character_type): New inline function. (maybe_character_value): Likewise. * gcc-interface/decl.c (gnat_to_gnu_entity) : For a character of CHAR_TYPE_SIZE, make a signed type if flag_signed_char. Set TYPE_ARTIFICIAL early and call finish_character_type on the type. : For a subtype of character with RM_Size and Esize equal to CHAR_TYPE_SIZE, make a signed type if flag_signed_char. Copy TYPE_STRING_FLAG from type to subtype. : Deal with character index types. : Likewise. * gcc-interface/trans.c (gigi): Replace unsigned_char_type_node with char_type_node throughout. (build_raise_check): Likewise. (get_type_length): Deal with character types. (Attribute_to_gnu) : Likewise. Remove obsolete range check code. Minor tweak. : Likewise. (Loop_Statement_to_gnu): Likewise. (Raise_Error_to_gnu): Likewise. : Deal with character index types. Remove obsolete code. : Likewise. : Deal with character types. Minor tweak. : Likewise. : Likewise. : Likewise. (emit_index_check): Delete. * gcc-interface/utils.c (finish_character_type): New function. (gnat_signed_or_unsigned_type_for): Deal with built-in character types. * gcc-interface/utils2.c (expand_sloc): Replace unsigned_char_type_node with char_type_node. (build_call_raise): Likewise. (build_call_raise_column): Likewise. (build_call_raise_range): Likewise. 2016-01-18 Eric Botcazou * gcc-interface/gigi.h (build_call_raise_column): Adjust prototype. (build_call_raise_range): Likewise. (gnat_unsigned_type): Delete. (gnat_signed_type): Likewise. (gnat_signed_or_unsigned_type_for): New prototype. (gnat_unsigned_type_for): New inline function. (gnat_signed_type_for): Likewise. * gcc-interface/cuintp.c (build_cst_from_int): Call build_int_cst. * gcc-interface/decl.c (gnat_to_gnu_entity): Likewise. (gnat_to_gnu_entity) : Always translate the index types and compute their base type from that. : Remove duplicate declaration. * gcc-interface/misc.c (get_array_bit_stride): Call build_int_cst. * gcc-interface/trans.c (get_type_length): Likewise. (Attribute_to_gnu): Likewise. (Loop_Statement_to_gnu): Likewise. (Call_to_gnu): Likewise. (gnat_to_gnu): Call build_real, build_int_cst, gnat_unsigned_type_for and gnat_signed_type_for. Minor tweaks. (build_binary_op_trapv): Likewise. (emit_check): Likewise. (convert_with_check): Likewise. (Raise_Error_to_gnu): Adjust calls to the build_call_raise family of functions. Minor tweaks. (Case_Statement_to_gnu): Remove dead code. (gnat_to_gnu): Call gnat_unsigned_type_for and gnat_signed_type_for. (init_code_table): Minor reordering. * gcc-interface/utils.c (gnat_unsigned_type): Delete. (gnat_signed_type): Likewise. (gnat_signed_or_unsigned_type_for): New function. (unchecked_convert): Use directly the size in the test for precision vs size adjustments. (install_builtin_elementary_types): Call gnat_signed_type_for. * gcc-interface/utils2.c (nonbinary_modular_operation): Call build_int_cst. (build_goto_raise): New function taken from... (build_call_raise): ...here. Call it. (build_call_raise_column): Add KIND parameter and call it. (build_call_raise_range): Likewise. 2016-01-18 Eric Botcazou * gcc-interface/ada-tree.h (TYPE_IMPLEMENTS_PACKED_ARRAY_P): Rename to (TYPE_IMPL_PACKED_ARRAY_P): ...this. (TYPE_CAN_HAVE_DEBUG_TYPE_P): Do not test TYPE_DEBUG_TYPE. * gcc-interface/decl.c (gnat_to_gnu_entity): Simplify NULL_TREE tests and tweak gnat_encodings tests throughout. (initial_value_needs_conversion): Likewise. (intrin_arglists_compatible_p): Likewise. * gcc-interface/misc.c (gnat_print_type): Likewise. (gnat_get_debug_type): Likewise. (gnat_get_fixed_point_type_info): Likewise. (gnat_get_array_descr_info): Likewise. (get_array_bit_stride): Likewise. (gnat_get_type_bias): Fix formatting. (enumerate_modes): Likewise. * gcc-interface/trans.c (gnat_to_gnu): Likewise. (add_decl_expr): Simplify NULL_TREE test. (end_stmt_group): Likewise. (build_binary_op_trapv): Fix formatting. (get_exception_label): Use switch statement. (init_code_table): Move around. * gcc-interface/utils.c (global_bindings_p): Simplify NULL_TREE test. (gnat_poplevel): Likewise. (gnat_set_type_context): Likewise. (defer_or_set_type_context): Fix formatting. (gnat_pushdecl): Simplify NULL_TREE test. (maybe_pad_type): Likewise. (add_parallel_type): Likewise. (create_range_type): Likewise. (process_deferred_decl_context): Likewise. (convert): Likewise. (def_builtin_1): Likewise. * gcc-interface/utils2.c (find_common_type): Likewise. (build_binary_op): Likewise. (gnat_rewrite_reference): Likewise. (get_inner_constant_reference): Likewise. 2016-01-18 Eric Botcazou PR ada/69219 * gcc-interface/trans.c (check_inlining_for_nested_subprog): Consider the parent function instead of the current function in order to issue the warning or the error. Add guard for ignored functions. 2016-01-17 Jakub Jelinek * adaint.c (__gnat_killprocesstree): Avoid -Wparentheses warning. 2016-01-15 Jakub Jelinek * adaint.c (__gnat_locate_exec_on_path): Use const char * instead of char * for path_val to avoid warnings. 2016-01-06 Pierre-Marie de Rodat * gcc-interface/utils.c: Bump copyright year. (rest_of_record_type_compilation): Add XVE/XVU parallel types to the current lexical scope. 2016-01-04 Jakub Jelinek * gnat_ugn.texi: Bump @copying's copyright year. * gnat_rm.texi: Likewise. 2016-01-02 Eric Botcazou * gnatvsn.ads: Bump copyright year. Copyright (C) 2016 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.