diff options
Diffstat (limited to 'gcc/ada/ChangeLog-2013')
-rw-r--r-- | gcc/ada/ChangeLog-2013 | 8294 |
1 files changed, 8294 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog-2013 b/gcc/ada/ChangeLog-2013 new file mode 100644 index 00000000000..8c5ee48dbf7 --- /dev/null +++ b/gcc/ada/ChangeLog-2013 @@ -0,0 +1,8294 @@ +2013-12-20 Trevor saunders <tsaunders@mozilla.com> + + * gcc-interface/decl.c (components_to_record): Replace stack_vec with + auto_vec. + +2013-12-12 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Makefile.in (ARM linux, GNU eabi): Tweak regexp. + +2013-12-12 Eric Botcazou <ebotcazou@adacore.com> + Iain Sandoe <iain@codesourcery.com> + + PR ada/55946 + * gcc-interface/Make-lang.in (ada/doctools/xgnatugn): Use gnatmake. + * gcc-interface/Makefile.in (GCC_LINK): Add LDFLAGS. + (../../gnatmake): Remove LDFLAGS. + (../../gnatlink): Likewise. + +2013-12-04 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/59382 + * indepsw-darwin.adb: New file. + +2013-12-04 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (components_to_record): Add specific handling + for fields with zero size and no representation clause. + +2013-12-04 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Case_Statement_to_gnu): Do not push a binding + level for each branch if this is a case expression in Ada 2012. + (gnat_to_gnu) <case N_Expression_With_Actions>: Adjust comment. + +2013-11-29 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/54040 + PR ada/59346 + * s-osinte-hpux.ads (timespec): Change type of tv_nsec field to time_t. + * s-osinte-kfreebsd-gnu.ads (timespec): Likewise. + * s-osinte-solaris-posix.ads (timespec): Likewise. + +2013-11-23 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Loop_Statement_to_gnu): Set TREE_SIDE_EFFECTS + on the conditional expression directly. + +2013-11-22 Andrew MacLeod <amacleod@redhat.com> + + * gcc-interface/trans.c: Add required include files from gimple.h. + +2013-11-22 David Malcolm <dmalcolm@redhat.com> + + * gcc-interface/utils2.c (build_call_raise): Remove use of + input_line macro. + (build_call_raise_range): Likewise. + (build_call_raise_column): Likewise. + +2013-11-20 Kenneth Zadeck <zadeck@naturalbridge.com> + Mike Stump <mikestump@comcast.net> + Richard Sandiford <rdsandiford@googlemail.com> + + * gcc-interface/cuintp.c (UI_From_gnu): Use tree_to_shwi. + * gcc-interface/decl.c (gnat_to_gnu_entity): Use tree_to_uhwi. + * gcc-interface/utils.c (make_packable_type): Likewise. + +2013-11-18 Richard Sandiford <rdsandiford@googlemail.com> + + * gcc-interface/cuintp.c (UI_From_gnu): Use tree_to_shwi rather than + tree_low_cst. + +2013-11-18 Richard Sandiford <rdsandiford@googlemail.com> + + * gcc-interface/decl.c, gcc-interface/utils.c, gcc-interface/utils2.c: + Replace tree_low_cst (..., 1) with tree_to_uhwi throughout. + +2013-11-18 Richard Sandiford <rdsandiford@googlemail.com> + + * gcc-interface/cuintp.c: Update comments to refer to + tree_fits_shwi_p rather than host_integerp. + * gcc-interface/decl.c (gnat_to_gnu_entity): Use tree_fits_uhwi_p + rather than host_integerp. + * gcc-interface/utils.c (rest_of_record_type_compilation): Likewise. + +2013-11-18 Richard Sandiford <rdsandiford@googlemail.com> + + * gcc-interface/decl.c, gcc-interface/misc.c, gcc-interface/utils.c: + Replace host_integerp (..., 1) with tree_fits_uhwi_p throughout. + +2013-11-18 Richard Sandiford <rdsandiford@googlemail.com> + + * gcc-interface/cuintp.c: Replace host_integerp (..., 0) with + tree_fits_shwi_p throughout. + +2013-11-18 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (TARGET_ABI_OPEN_VMS): Delete as redundant. + +2013-11-18 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Call_to_gnu): For an Out parameter passed by + copy and that don't need to be copied in, only evaluate its address. + +2013-11-18 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Deal with an + error mark as renamed object in type annotating mode. + +2013-11-15 H.J. Lu <hongjiu.lu@intel.com> + + PR ada/54040 + * s-linux-x32.ads: New file. + * s-osprim-x32.adb: Likewise. + * s-linux.ads (time_t): New type. + * s-linux-alpha.ads (time_t): Likewise. + * s-linux-hppa.ads (time_t): Likewise. + * s-linux-mipsel.ads (time_t): Likewise. + * s-linux-sparc.ads (time_t): Likewise. + * s-osinte-linux.ads (time_t): Mark it private. Replace long + with System.Linux.time_t. + (timespec): Replace long with time_t. + * s-osinte-posix.adb (To_Timespec): Likewise. + * s-taprop-linux.adb (timeval): Replace C.long with + System.OS_Interface.time_t. + * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS): Replace + s-linux.ads with s-linux-x32.ads, s-osprim-posix.adb with + s-osprim-x32.adb for x32. + +2013-11-14 H.J. Lu <hongjiu.lu@intel.com> + + * gcc-interface/trans.c: Include gimple.h and pointer-set.h. + +2013-11-14 Diego Novillo <dnovillo@google.com> + + * gcc-interface/decl.c: Include stringpool.h + Include stor-layout.h + * gcc-interface/misc.c: Include stor-layout.h + Include print-tree.h + * gcc-interface/trans.c: Include stringpool.h + Include stor-layout.h + Include stmt.h + Include varasm.h + * gcc-interface/utils.c: Include stringpool.h + Include stor-layout.h + Include attribs.h + Include varasm.h + * gcc-interface/utils2.c: Include stringpool.h + Include stor-layout.h + Include attribs.h + Include varasm.h + +2013-11-12 Andrew MacLeod <amacleod@redhat.com> + + * gcc-interface/trans.c: Include gimplify.h. + +2013-11-11 Tristan Gingold <gingold@adacore.com> + Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils2.c (gnat_build_constructor): Also set the flag + CONSTRUCTOR_NO_CLEARING on the constructor. + +2013-10-30 Sharad Singhai <singhai@google.com> + + * gnat_ugn.texi: Remove option description for PR middle-end/58134. + +2013-10-29 David Malcolm <dmalcolm@redhat.com> + + * gcc-interface/trans.c (finalize_nrv): Update for conversion of + symtab types to a true class hierarchy. + * gcc-interface/utils.c (gnat_write_global_declarations): Likewise. + +2013-10-28 Trevor Saunders <tsaunders@mozilla.com> + + * gcc-interface/decl.c (components_to_record): Adjust stack vector. + +2013-10-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * gcc-interface/Make-lang.in (ADA_DEPS): Fix quoting. + +2013-10-19 Thomas Quinot <quinot@adacore.com> + + * gcc-interface/Makefile.in: Use canonical absolute path to refer to + the top source directory and to the libgcc subidrectories. + +2013-10-19 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils.c (scale_by_factor_of): New function. + (rest_of_record_type_compilation): Use scale_by_factor_of in order to + scale the original offset for both rounding cases; in the second case, + take into accout the addend to compute the alignment. Tidy up. + +2013-10-19 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/cuintp.c: Remove useless include directives. + (build_cst_from_int): Use standard predicate. + (UI_To_gnu): Simplify. + (UI_From_gnu): Fix formatting. + * gcc-interface/trans.c (post_error): Likewise. + (post_error_ne): Likewise. + +2013-10-19 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils.c (gnat_set_type_context): New function. + (gnat_pushdecl): Use it to set the context of the type. + +2013-10-17 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Check_Dependency_Clause): + Recognize the scenario where successful clause matching has + depleted the available refinement items and the clause to match + technically refines to null => null. + +2013-10-17 Tristan Gingold <gingold@adacore.com> + + * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Specify + External_Name instead of Link_Name for the RTTI declaration. + +2013-10-17 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb (Record_Possible_Body_Reference): Fix test for + being in body. + (Add_Constituent): Merged into Check_Refined_Global_Item. + (Check_Matching_Constituent): A constituent that has the proper Part_Of + option and comes from a private child or a sibling is now collected. + (Check_Matching_Modes): Merged into Check_Refined_Global_Item. + (Check_Refined_Global_Item): Code cleanup. + (Collect_Constituent): New routine. + (Inconsistent_Mode_Error): Moved out from Check_Matching_Modes. + +2013-10-17 Ed Schonberg <schonberg@adacore.com> + + * freeze.adb (Check_Current_Instance, Process): Add RM reference + and mention immutably limited types, when the current instance + is illegal in Ada 2012. + +2013-10-17 Ed Schonberg <schonberg@adacore.com> + + * sem_warn.adb (Check_Unused_Withs): If the main unit is a + subunit, apply the check to the units mentioned in its context + only. This provides additional warnings on with_clauses that + are superfluous. + +2013-10-17 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch3.adb (Analyze_Declarations): Emit an + error message concerning state refinement when the spec defines at + least one non-null abstract state and the body's SPARK mode is On. + (Requires_State_Refinement): New routine. + +2013-10-17 Robert Dewar <dewar@adacore.com> + + * sem_ch7.ads: Comment fixes. + +2013-10-17 Robert Dewar <dewar@adacore.com> + + * sem_ch7.adb (Analyze_Package_Specification): Remove circuit + for ensuring that a package spec requires a body for some other + reason than that it contains the declaration of an abstract state. + +2013-10-17 Tristan Gingold <gingold@adacore.com> + + * exp_ch11.adb (Expand_N_Raise_Expression): Fix call of + Possible_Local_Raise. + +2013-10-17 Thomas Quinot <quinot@adacore.com> + + * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Unchecked + conversion of Or_Rhs to Etype of New_Rhs is required only when + the latter is the result of a byte swap operation. + +2013-10-17 Thomas Quinot <quinot@adacore.com> + + * exp_dist.adb (Build_To_Any_Function): For a type with opaque + representation that is not transmitted as an unconstrained value, + use 'Write, not 'Output, to generate the opaque representation. + +2013-10-17 Yannick Moy <moy@adacore.com> + + * sem_res.adb (Resolve_Short_Circuit): Only + generate expression-with-action when full expansion is set. + +2013-10-17 Yannick Moy <moy@adacore.com> + + * debug.adb Remove obsolete comment. + +2013-10-17 Thomas Quinot <quinot@adacore.com> + + * exp_ch4.adb (Process_Transient_Object.Find_Enclosing_Contexts): + Avoid late insertion when expanding an expression with action + nested within a transient block; Do not inconditionally generate + a finalization call if the generated object is from a specific + branch of a conditional expression. + +2013-10-17 Pascal Obry <obry@adacore.com> + + * g-arrspl.adb: Ensure Finalize call is idempotent. + * g-arrspl.adb (Finalize): Makes the call idempotent. + +2013-10-17 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Is_Matching_Input): Account + for the case where a state with a null refinement appears as + the last input of a refinement clause. + +2013-10-17 Robert Dewar <dewar@adacore.com> + + * sem_aux.ads, sem_aux.adb: Minor reformatting. + +2013-10-17 Hristian Kirtchev <kirtchev@adacore.com> + + * aspects.adb, aspects.ads, sem_prag.ads: Remove all entries + for Refined_Pre from the various tables. + * par-prag.adb: Remove the entry for Refined_Pre from the list + of pragmas not needing special processing by the parser. + * sem_ch13.adb (Analyze_Aspect_Specifications): + Remove the processing for aspect Refined_Pre. + (Check_Aspect_At_Freeze_Point): Remove the entry for aspect + Refined_Pre. + * sem_prag.adb (Analyze_Pragma): Refined_Pre is no longer a + valid assertion kind. Remove the analysis of pragma Refined_Pre. + (Analyze_Refined_Pragma): Update the comment on usage. + (Find_Related_Subprogram_Or_Body): Update the comment on + usage. Pragma Refined_Pre is no longer processed by this routine. + (Is_Valid_Assertion_Kind): Refined_Pre is no longer a valid + assertion kind. + * snames.ads-tmpl: Remove predefined name Refined_Pre. Remove + the pragma id for Refined_Pre. + +2013-10-17 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_util.adb, exp_util.ads (Entity_Of): Moved to Sem_Util. + * sem_prag.adb (Analyze_Global_In_Decl_List): Mark a null + item list as being analyzed. + (Analyze_Global_List): Mark a + null global list and multiple global items as being analyzed. + (Analyze_Input_Item): Check the unit that defines the input + variable or state, not the reference to it. + * sem_util.ads, sem_util.adb (Entity_Of): Moved from Exp_Util. Ensure + that the input has an entity. + +2013-10-17 Thomas Quinot <quinot@adacore.com> + + * exp_util.adb (Get_Current_Value_Condition, + Set_Current_Value_Condition): Handle the case of expressions + with actions * exp_util.adb (Insert_Actions): Handle the case + of an expression with actions whose Actions list is empty. + * exp_util.adb (Remove_Side_Effects.Side_Effect_Free): An + expression with actions that has no Actions and whose Expression + is side effect free is itself side effect free. + * exp_util.adb (Remove_Side_Effects): Do not set an incorrect etype on + temporary 'R' (Def_Id), which is in general an access to Exp_Type, not + an Exp_Type. + * sem_res.adb (Resolve): For an expression with + actions, resolve the expression early. * sem_res.adb + (Resolve_Expression_With_Actions): Rewrite an expression with + actions whose value is compile time known and which has no + actions into just its expression, so that its constant value is + available downstream. + * sem_res.adb (Resolve_Short_Circuit): + Wrap the left operand in an expression with actions to contain + any required finalization actions. + * exp_ch4.adb (Expand_Expression_With_Actions): For an + expression with actions returning a Boolean expression, ensure + any finalization action is kept within the Actions list. + * sem_warn.adb (Check_References, Check_Unset_Reference): add + missing circuitry to handle expressions with actions. + * checks.adb (Ensure_Valid): For an expression with actions, + insert the validity check on the Expression. + * sem_ch13.adb (Build_Static_Predicate.Get_RList): An expression + with actions that has a non-empty Actions list is not static. An + expression with actions that has an empty Actions list has the + static ranges of its Expression. + * sem_util.adb (Has_No_Obvious_Side_Effects): An expression with + actions with an empty Actions list has no obvious side effects + if its Expression itsekf has no obvious side effects. + +2013-10-17 Ed Schonberg <schonberg@adacore.com> + + * sem_aux.ads, sem_aux.adb (Is_Immutably_Limited_Type): Make + predicate compatible with Ada 2012 definition + (Is_Limited_View): New name for previous version of + Is_Immutably_Limited_Type. Predicate is true for an untagged + record type with a limited component. + * exp_ch7.adb, exp_ch6.adb, exp_ch4.adb, exp_ch3.adb, exp_aggr.adb, + sem_util.adb, sem_res.adb, sem_prag.adb, sem_attr.adb, sem_ch8.adb, + sem_ch6.adb, sem_ch3.adb, exp_util.adb: Use Is_Limited_View + * freeze.adb Use Is_Immutably_Limited_Type to check the legality + of references to the current instance, Is_Limited_View otherwise. + +2013-10-17 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specifications): Flag aspect + Refined_Pre as not supported. + * sem_prag.adb (Analyze_Pragma): Ignore pragma Refined_Pre. + +2013-10-17 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Validated_Access_Subprogram_Instance): According + to AI05-288, actuals for access_to_subprograms must be subtype + conformant with the generic formal. Previous to AI05-288 + only mode conformance was required, but the AI is a binding + interpretation that applies to previous versions of the language, + +2013-10-17 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Minor text correction. + * ug_words: Add entry for -gnateu /IGNORE_UNRECOGNIZED. + * vms_data.ads: Add /IGNORE_UNRECOGNIZED for -gnateu. + +2013-10-17 Tristan Gingold <gingold@adacore.com> + + * impunit.adb (Non_Imp_File_Names_95): Add g-cppexc. + +2013-10-17 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Constituent): Move the check + concerning option Part_Of to routine Check_Matching_Constituent. + (Check_Matching_Constituent): Verify that an abstract state + that acts as a constituent has the proper Part_Of option in + its aspect/pragma Abstract_State. Account for the case when a + constituent comes from a private child or private sibling. + * sem_util.ads, sem_util.adb (Is_Child_Or_Sibling): New routine. + +2013-10-17 Tristan Gingold <gingold@adacore.com> + + * g-cppexc.adb, g-cppexc.ads: New files. + * gcc-interface/Makefile.in: Add g-cppexc when building zcx runtimes. + +2013-10-17 Thomas Quinot <quinot@adacore.com> + + * exp_ch7.adb: Minor reformatting. + +2013-10-17 Ed Schonberg <schonberg@adacore.com> + + * sem_dim.adb (Process_Minus, Process_Divide): Label dimension + expression with standard operator and type, for pretty-printing + use. + +2013-10-17 Bob Duff <duff@adacore.com> + + * gnat_ugn.texi: Document --pp-new and --pp-old switches. + +2013-10-17 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb: Flag 159 is now known as From_Limited_With. Replace + all references to attribute From_With_Type with From_Limited_With. + (From_With_Type): Renamed to From_Limited_With. + (Set_From_With_Type): Renamd to Set_From_Limited_With. + * einfo.ads: Remove attribute From_With_Type and occurrences in + nodes. Add attribute From_Limited_With along with occurrences + in nodes. + (From_With_Type): Renamed to From_Limited_With along with pragma Inline. + (Set_From_With_Type): Renamed to + Set_From_Limited_With along with pragma Inline. + * sem_ch7.adb, sem_ch8.adb, sem_ch12.adb, sem_ch13.adb, sem_disp.adb, + sem_res.adb, sem_type.adb, sem_util.adb, sem_warn.adb, + exp_attr.adb, exp_disp.adb, freeze.adb, itypes.adb, layout.adb, + lib-writ.adb, rtsfind.adb, sem_attr.adb, sem_aux.adb, sem_ch3.adb, + sem_ch4.adb: Replace all references to attribute From_With_Type + with From_Limited_With. + * sem_ch6.adb: Replace all references to attribute From_With_Type + with From_Limited_With. + (Designates_From_With_Type): Renamed to Designates_From_Limited_With. + (Process_Formals): Update the call to Designates_From_With_Type. + * sem_ch10.adb: Replace all references to attribute From_With_Type + with From_Limited_With. + (Build_Limited_Views): Reimplemented. + * gcc-interface/decl.c Replace all references to attribute + From_With_Type with From_Limited_With. + (finalize_from_with_types): Renamed to finalize_from_limited_with. + * gcc-interface/gigi.h (finalize_from_with_types): Renamed to + finalize_from_limited_with. + * gcc-interface/trans.c: Replace all references to attribute + From_With_Type with From_Limited_With. + (Compilation_Unit_to_gnu): Update the call to finalize_from_with_types. + +2013-10-17 Pascal Obry <obry@adacore.com> + + * projects.texi: Update VCS_Kind documentation. + +2013-10-17 Matthew Heaney <heaney@adacore.com> + + * a-convec.adb, a-coinve.adb, a-cobove.adb (Insert, Insert_Space): + Inspect value range before converting type. + +2013-10-17 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Pragma): Flag the use of pragma Refined_Pre as + illegal. + +2013-10-17 Vincent Celier <celier@adacore.com> + + * gnat_ugn.texi: Remove VMS conversion of -gnatet and -gnateT, + now that they are both in ug_words. + * ug_words: Update qualifier for -gnatet Add qualifier for -gnateT + * vms_data.ads: Update qualifier for -gnatet Add qualifier + for -gnateT + * projects.texi: Continue to update the project documentation + for VMS. + +2013-10-17 Robert Dewar <dewar@adacore.com> + + * einfo.ads, einfo.adb (Has_Body_References): New flag. + (Body_References): New field. + * sem_prag.adb (Record_Possible_Body_Reference): New procedure + (Analyze_Input_Output): Call Record_Possible_Body_Reference + (Analyze_Global_Item): Call Record_Possible_Body_Reference + (Analyze_Refinement_Clause): Output messages if illegal global refs. + +2013-10-17 Thomas Quinot <quinot@adacore.com> + + * freeze.adb (Check_Component_Storage_Order): Reject a record or + array type that does not have an explicit Scalar_Storage_Order + attribute definition if a component of the record, or the + elements of the array, have one. + * gnat_rm.texi (attribute Scalar_Storage_Order): Document the above + rule. + +2013-10-17 Vincent Celier <celier@adacore.com> + + * gnat_ugn.texi: Add examples of switches -gnateD, including + one where the value is a string. + * projects.texi: Do not convert switches in project files to + VMS qualifiers. + +2013-10-17 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb (Report_Extra_Clauses): Don't complain about + refinements with null input since null should be considered to + always match. + +2013-10-17 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Document -gnatw.y/-gnatw.Y. + * opt.ads (List_Body_Required_Info): New flag. + * prep.adb: Minor reformatting. + * sem_ch7.adb (Unit_Requires_Body_Info): New + procedure (Analyze_Package_Specification): Add call to + Unit_Requires_Body_Info. + * ug_words: Add entries for -gnatw.y and -gnatw.Y. + * usage.adb: Add line for new warning switch -gnatw.y/.Y. + * vms_data.ads: Add entry for [NO_]WHY_SPEC_NEEDS_BODY warning + qualifier. + * warnsw.ads, warnsw.adb: Implement new warning switch -gnatw.y/.Y. + +2013-10-17 Yannick Moy <moy@adacore.com> + + * sem_ch8.adb (Find_Direct_Name): Keep track of assignments for + renamings in SPARK mode. + +2013-10-17 Yannick Moy <moy@adacore.com> + + * exp_spark.adb (Expand_SPARK): Remove special case for NOT IN + operation. + * sinfo.ads: Add special comment section to describe SPARK mode + effect on tree. + * exp_spark.ads: Remove comments, moved to sinfo.ads. + +2013-10-17 Yannick Moy <moy@adacore.com> + + * exp_ch3.adb (Expand_Freeze_Class_Wide_Type, + Expand_Freeze_Class_Wide_Type, Expand_Freeze_Class_Wide_Type): + Remove useless special cases. + * exp_ch4.adb (Expand_Allocator_Expression, Expand_N_Allocator, + Expand_N_Op_Expon): Remove useless special cases. + * exp_ch6.adb (Is_Build_In_Place_Function_Call): Disable build-in-place + in SPARK mode by testing Full_Expander_Active instead of + Expander_Active. + (Make_Build_In_Place_Call_In_Allocator): Remove useless special case. + * exp_util.adb (Build_Allocate_Deallocate_Proc): Remove + useless special case. + * sem_eval.adb (Compile_Time_Known_Value): Remove special handling of + deferred constant. + +2013-10-17 Yannick Moy <moy@adacore.com> + + * gnat_ugn.texi: Document -gnateT and target file format. + +2013-10-17 Vincent Celier <celier@adacore.com> + + * prep.adb (Check_Command_Line_Symbol_Definition): Is_A_String is + always False, even when the value starts and ends with double quotes. + +2013-10-17 Tristan Gingold <gingold@adacore.com> + + * a-exexpr-gcc.adb: Synchronize declarations of other/all others. + +2013-10-17 Thomas Quinot <quinot@adacore.com> + + * exp_pakd.adb: Add missing guard protecting Reverse_Storage_Order + call. + * sem_res.adb: Minor code cleanup: use named parameter association + (not positional) for Boolean parameter Sec_Stack in calls to + Establish_Transient_Scope. + +2013-10-15 Thomas Quinot <quinot@adacore.com> + + * exp_pakd.adb (Expand_Packed_Element_Set, + Expand_Packed_Element_Reference): Adjust for the case of packed + arrays of reverse-storage-order types. + +2013-10-15 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb: Minor reformatting. + +2013-10-15 Ed Schonberg <schonberg@adacore.com> + + * sem_attr.adb (Analyze_Attribute_Specification, case + To_Address): If the expression is an identifier, do not modify + its type; it will be converted when necessary, and the type of + the expression must remain consistent with that of the entity + for back-end consistency. + +2013-10-15 Robert Dewar <dewar@adacore.com> + + * sem_ch7.adb (Unit_Requires_Body): Add flag + Ignore_Abstract_State (Analyze_Package_Specification): Enforce + rule requiring Elaborate_Body if a non-null abstract state is + specified for a library-level package. + * sem_ch7.ads (Unit_Requires_Body): Add flag Ignore_Abstract_State. + +2013-10-15 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Constituent): When + a state acts as a constituent of another state, ensure that + the said state has a Part_Of dependency in its corresponding + aspect/pragma Abstract_State. + +2013-10-15 Robert Dewar <dewar@adacore.com> + + * par-ch4.adb (P_If_expression): Handle redundant ELSE cleanly. + +2013-10-15 Thomas Quinot <quinot@adacore.com> + + * atree.ads (New_Copy, Relocate_Node): Improve documentation + (note that these subprograms reset Is_Overloaded). + +2013-10-15 Thomas Quinot <quinot@adacore.com> + + * checks.adb (Check_Needed): Handle the case where the test in + the left operand of the short circuit is wrapped in a qualified + expression, type conversion, or expression with actions. + +2013-10-15 Thomas Quinot <quinot@adacore.com> + + * sem_type.adb, sem_type.ads (Save_Interps): Also propagate + Is_Overloaded to New_N, for consistency. + +2013-10-15 Ed Schonberg <schonberg@adacore.com> + + * a-tienau.adb (Put): Use file parameter to query values of + current column and line length. + +2013-10-15 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb, exp_ch11.adb, a-except-2005.adb, a-except-2005.ads: + Minor reformatting. + +2013-10-15 Eric Botcazou <ebotcazou@adacore.com> + + * targparm.ads: Fix minor typo in comment. + +2013-10-15 Ed Schonberg <schonberg@adacore.com> + + * lib-xref.adb: handle full views that are derived from private + types. + * sem_util.adb (Build_Elaboration_Entity): Do nothing in ASIS + mode: the elaboration entity is not in the source, and plays no + role in semantic analysis. Minor reformatting. + +2013-10-15 Tristan Gingold <gingold@adacore.com> + + * adaint.c (__gnat_get_executable_load_address): Remove AIX + specific code. + +2013-10-15 Ed Schonberg <schonberg@adacore.com> + + * exp_aggr.adb (Aggr_Size_OK): Refine criteria to better handle + large static aggregates with static record components, to avoid + generating a large number of asignments. Conversely, improve + handling of aggregates initialized by a single association, + which are most efficiently implemented with a loop. + +2013-10-15 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Input_Item): Emit an + error when the input item comes from the related package. + +2013-10-15 Arnaud Charlet <charlet@adacore.com> + + * exp_ch11.adb (Expand_Exception_Handlers): Restrict previous + change. + +2013-10-14 Tristan Gingold <gingold@adacore.com> + + * gcc-interface/gigi.h (standard_datatypes): Add + ADT_set_exception_parameter_decl + (set_exception_parameter_decl): New macro. + * gcc-interface/trans.c (gigi): Initialize set_exception_parameter_decl. + (Exception_Handler_to_gnu_zcx): Initialize the choice parameter. + * gcc-interface/trans.c: Synchronize declarations of other/all others + between gigi and the runtime. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * exp_attr.adb (Find_Stream_Subprogram): Optimize + Storage_Array stream handling. + (Find_Stream_Subprogram): Optimize Stream_Element_Array stream handling + * rtsfind.ads: Add entry for Stream_Element_Array Add + entries for RE_Storage_Array subprograms Add entries for + RE_Stream_Element_Array subprograms + * s-ststop.ads, s-ststop.adb: Add processing for System.Storage_Array. + Add processing for Ada.Stream_Element_Array. + +2013-10-14 Tristan Gingold <gingold@adacore.com> + + * a-except-2005.ads, a-except-2005.adb: + (Get_Exception_Machine_Occurrence): New function. + * raise-gcc.c (__gnat_unwind_exception_size): New constant. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * sem_res.adb: Minor fix to error message text. + * errout.ads, erroutc.ads: Minor reformatting. + * s-ststop.ads, s-stratt.ads: Clean up documentation of block IO + mode for streams. + * s-stratt-xdr.adb: Minor comment update. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * sem_aux.adb, sem_aux.ads, sem_prag.adb: Minor reformatting. + +2013-10-14 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb (Resolve_Actuals): Add error message for a + subprogram with an in-out parameter when used in a predicate, + to clarify subsequent error at the point of call. + +2013-10-14 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Is_Matching_Input): Consume a matching null input. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * freeze.adb (Freeze_Record): Don't give warning about packed + and foreign convention. + +2013-10-14 Ed Schonberg <schonberg@adacore.com> + + * sem_aux.adb, sem_aux.ads (Package_Specification): New function, to + replace the less efficient idiom Specification. + (Unit_Declaration_Node (Pack_Id)), which handles library units and + child units. + * sem_ch3.adb, sem_ch10.adb, sem_prag.adb, sem_ch12.adb, sem_ch6.adb, + exp_disp.adb, sem_cat.adb, exp_dist.adb: Use Package_Specification. + +2013-10-14 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_attr.adb (Expand_Update_Attribute): Update the call to + Process_Range_Update. + (Process_Range_Update): Add new formal parameter Typ and associated + comment on usage. Add local constant Index_Typ. Add a type conversion + as part of the indexed component to ensure that the loop variable + corresponds to the index type. + +2013-10-14 Tristan Gingold <gingold@adacore.com> + + * a-exexpr-gcc.adb: Adjust comment. + (Others_Value, All_Others_Value, + Unhandled_Others_Value): Declare as Character to slightly reduce + memory footprint. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * freeze.adb (Size_Known): Size is not known for packed record + with aliased components + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * sem_ch3.adb: Minor fix to error message. + * a-exexpr-gcc.adb, sem_util.adb, sem_case.adb, exp_ch11.adb: Minor + reformatting. + +2013-10-14 Arnaud Charlet <charlet@adacore.com> + + * exp_ch11.adb: Fix typo. + +2013-10-14 Thomas Quinot <quinot@adacore.com> + + * exp_util.ads: Minor reformatting. + +2013-10-14 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Build_Derived_Record_Type): Reject full views + with no explicit discriminant constraints, when the parents of + the partial view and the full view are constrained subtypes with + different constraints. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * freeze.adb (Freeze_Array_Type): New procedure, abstracts out + this code from Freeze. + (Freeze_Array_Type): Detect pragma Pack overriding foreign convention + (Freeze_Record_Type): Ditto. + +2013-10-14 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Dependency_Clause): Add new local variable + Non_Null_Output_Seen. Update the call to Analyze_Input_Output. + (Analyze_Input_Item): Streamline the detection mechanism of null and + non-null items. + (Analyze_Input_List): Add new local variable + Non_Null_Input_Seen. Update all calls to Analyze_Input_Output. + (Analyze_Input_Output): Add new formal parameter Non_Null_Seen + and update the related comment on usage. Update the + recursive call to itself. Attribute 'Result is now treated + as a non-null item. Detect mixes of null and non-null items. + (Analyze_Initialization_Item): Streamline the detection mechanism + of null and non-null items. + +2013-10-14 Vincent Celier <celier@adacore.com> + + * projects.texi: Add documentation for the new project level + attribute Library_Rpath_Options. + +2013-10-14 Tristan Gingold <gingold@adacore.com> + + * a-exexpr-gcc.adb (Set_Exception_Parameter): New procedure. + (Set_Foreign_Occurrence): New procedure, extracted from + Setup_Current_Excep. + * exp_ch11.adb (Expand_Exception_Handlers): Do not expand choice + parameter in case of zcx. + * sem_ch11.adb (Analyze_Exception_Handlers): Need debug info + for the choice parameter. + * raise-gcc.c: Add comments. + +2013-10-14 Hristian Kirtchev <kirtchev@adacore.com> + + * aspects.adb: Add an entry in table Canonical_Aspect for + Initial_Condition. + * aspects.ads: Add entries in tables Aspect_Id, Aspect_Argument, + Aspect_Names and Aspect_Delay for Initial_Condition. + * einfo.adb (Get_Pragma): Include pragma Initial_Condition to + categorization pragmas. + * einfo.ads (Get_Pragma): Update comment on usage. + * exp_ch7.adb (Expand_N_Package_Body): Add a runtime check to + verify the assertion introduced by pragma Initial_Condition. + (Expand_N_Package_Declaration): Add a runtime check to + verify the assertion introduced by pragma Initial_Condition. + (Expand_Pragma_Initial_Condition): New routine. + * par-prag: Include pragma Initial_Condition to the list of + pragmas that do not require special processing by the parser. + * sem_ch3.adb (Analyze_Declarations): Analyze pragma + Initial_Condition at the end of the visible declarations. + * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing + for aspect Initial_Condition. + (Check_Aspect_At_Freeze_Point): + Aspect Initial_Condition does not need inspection at freezing. + * sem_prag.adb (Analyze_Initial_Condition_In_Decl_Part): + New routine. + (Analyze_Pragma): Update all calls + to Check_Declaration_Order. Add processing for pragma + Initial_Condition. Initial_Condition is now a valid assertion + kind. Add an entry in table Sig_Flags for Initial_Condition. + (Check_Declaration_Order): Reimplemented to handle arbitrary + pragmas. + (Is_Valid_Assertion_Kind): Add an entry for + Initial_Condition. + * sem_pag.ads (Analyze_Initial_Condition_In_Decl_Part): + New routine. + * sem_util.adb (Add_Contract_Item): Pragma Initial_Condition + can now be associated with a package spec. + * sem_util.ads (Add_Contract_Item): Update comment on usage. + * sinfo.ads: Update the documentation of node N_Contract + * snames.ads-tmpl: Add new predefined name Initial_Condition. Add + new pragma id for Initial_Condition. + +2013-10-14 Thomas Quinot <quinot@adacore.com> + + * exp_pakd.adb: Minor reformatting. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * exp_prag.adb: Minor reformatting. + +2013-10-14 Ed Schonberg <schonberg@adacore.com> + + * sem_case.adb (Check_Against_Predicate): Handle properly an + others clause in various cases. + +2013-10-14 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Check_Matching_Constituent): Do + not inspect the hidden states if there are no hidden states. This + case arises when the constituents are states coming from a + private child. + +2013-10-14 Doug Rupp <rupp@adacore.com> + + * init.c [ARMEL and VxWorks] (__gnat_map_signal): Re-arm guard + page by clearing VALID bit vice setting page protection. + +2013-10-14 Arnaud Charlet <charlet@adacore.com> + + * gnat_rm.texi, adaint.c: Fix typo. + +2013-10-14 Ed Schonberg <schonberg@adacore.com> + + * sem_util.adb (Is_Variable, In_Protected_Function): In the + body of a protected function, the protected object itself is a + constant (not just its components). + +2013-10-14 Vincent Celier <celier@adacore.com> + + * snames.ads-tmpl: Add new standard name Library_Rpath_Options. + +2013-10-14 Tristan Gingold <gingold@adacore.com> + + * sem_prag.adb (Process_Import_Or_Interface): Allow importing + of exception using convention Cpp. + * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Expand cpp + imported exceptions. + * raise-gcc.c (is_handled_by): Filter C++ exception occurrences. + * gnat_rm.texi: Document how to import C++ exceptions. + +2013-10-14 Jose Ruiz <ruiz@adacore.com> + + * sem_ch13.adb (Sem_Ch13.Analyze_Aspect_Specification): For + Priority and CPU aspects, when checking, issue a warning only + if it is obviously not a main program. + +2013-10-14 Tristan Gingold <gingold@adacore.com> + + * adaint.c: Fix condition for AIX. Minor reformatting. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * sem_ch3.adb, sem_prag.adb, prj.ads: Minor reformatting. + +2013-10-14 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Depends_In_Decl_Part): + Rename Outputs_Seen to All_Outputs_Seen and update all occurrences + of the variable. + (Analyze_Input_Output): Add an item to + All_Inputs_Seen when it is an input or a self-referential output. + (Check_Mode): Comment reformatting. + (Analyze_Abstract_State): Remove the restriction that an Export state + must also have mode Input_Only or Output_Only. + +2013-10-14 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb: Flag 263 is now known as Has_Visible_Refinement. + (Has_Non_Null_Refinement): New routine. + (Has_Null_Refinement): The routine is now synthesized. + (Has_Visible_Refinement): New routine. + (Set_Has_Visible_Refinement): New routine. + (Write_Entity_Flags): Remove the output for + Has_Null_Refinement. Add output for Has_Visible_Refinement. + * einfo.ads: Update the occurrences of Has_Non_Null_Refinement, + Has_Null_Refinement and Has_Visible_Refinement in entities. + (Has_Non_Null_Refinement): New synthesized attribute. + (Has_Null_Refinement): This attribute is now synthesized. + (Has_Visible_Refinement): New routine with corresponding + pragma Inline. + (Set_Has_Visible_Refinement): New routine with corresponding pragma + Inline. + * sem_ch3.adb (Analyze_Declarations): Add new local + variable In_Package_Body. Remove state refinements from + visibility at the end of the package body declarations. + (Remove_Visible_Refinements): New routine. + * sem_prag.adb (Analyze_Constituent): Collect a null + constituent and mark the state as having visible refinement. + (Analyze_Global_Item): Use attribute Has_Visible_Refinement to + detect a state with visible refinement. + (Analyze_Input_Output): Use attribute Has_Visible_Refinement to detect + a state with visible refinement. + (Check_Dependency_Clause): Use attribute Has_Non_Null_Refinement rather + than checking the contents of list Refinement_Constituents. + (Check_In_Out_States): Use attribute Has_Non_Null_Refinement rather + than checking the contents of list Refinement_Constituents. + (Check_Input_States): Use attribute Has_Non_Null_Refinement rather + than checking the contents of list Refinement_Constituents. + (Check_Matching_Constituent): Mark a state as having visible refinement. + (Check_Output_States): Use attribute Has_Non_Null_Refinement rather than + checking the contents of list Refinement_Constituents. + (Check_Refined_Global_Item): Use attribute Has_Visible_Refinement + to detect a state with visible refinement. + (Is_Matching_Input): Use attribute Has_Non_Null_Refinement rather than + checking the contents of list Refinement_Constituents. + * sem_util.adb (Is_Refined_State): Use attribute + Has_Visible_Refinement to detect a state with visible refinement. + +2013-10-14 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Check_Mode): Do not emit an + error when inspecting a self referencial output item of an + unconstrained type. + +2013-10-14 Tristan Gingold <gingold@adacore.com> + + * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Fix + target type for code of VMS imported exception. + * init.c: Replace Exception_Code by void *. + * s-vmexta.adb (Hash, Base_Code_In): Adjust code after changing + the type of Exception_Code. + +2013-10-14 Vincent Celier <celier@adacore.com> + + * prj.ads: Minor comment updates. + * prj-attr.adb: New attribute Library_Rpath_Options. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Library_Level attribute now applies to an + entity name. + * sem_attr.adb (Analyze_Attribute, case Library_Level): Prefix + is now an entity name. + +2013-10-14 Jose Ruiz <ruiz@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specification): For + Priority and CPU aspects in subprograms, the expression in the + aspect is analyzed and exported. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * s-valuti.adb, prep.adb, scng.adb, errout.adb: Minor reformatting. + +2013-10-14 Eric Botcazou <ebotcazou@adacore.com> + + * adaint.c: Further disable __gnat_get_executable_load_address + for Linux. + +2013-10-14 Vincent Celier <celier@adacore.com> + + * gnat_ugn.texi: Add documentation for comparing symbols to + integers in preprocessing expressions. + +2013-10-14 Jose Ruiz <ruiz@adacore.com> + + * sem_prag.adb (Analyze_Aspect_Specification): For + Priority and CPU aspects in subprograms, the expression in the + aspect is analyzed and exported. + (Analyze_Pragma): When having a Priority pragma in the + main subprogram, load a unit that will force the initialization + of the tasking run time, which is needed for setting the required + priority. + +2013-10-14 Vincent Celier <celier@adacore.com> + + * prj-nmsc.adb (Check_Interfaces): Put in Other_Interfaces all + non Ada interface files. + * prj.ads (Project_Data): New component Other_Interfaces. + +2013-10-14 Arnaud Charlet <charlet@adacore.com> + + * gcc-interface/Makefile.in: Target pairs clean ups. + +2013-10-14 Vincent Celier <celier@adacore.com> + + * errout.adb (Write_Error_Summary): Do not output the number + of lines when Main_Source_File is unknown. + (Output_Messages): Do not write the header when Main_Source_File is + unknown. + +2013-10-14 Vincent Celier <celier@adacore.com> + + * prep.adb (Expression): Accept terms of the form 'symbol <relop> + integer", where relop is =, <, <=, > or >=. + (Parse_Def_File): Accept literal integer values. + * gcc-interface/Make-lang.in: Add s-valint.o, s-valuns.o and + s-valuti.o to the compiler object files. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * exp_prag.adb, exp_ch11.adb, s-exctab.adb: Minor reformatting. + * usage.adb: Add line for -gnateu switch. + +2013-10-14 Vincent Celier <celier@adacore.com> + + * lib-writ.ads: Add comments to indicate that a path name in + D lines may be quoted if the path name includes directories + with spaces. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * debug.adb: Document -gnatd.E. + * gnat1drv.adb (Adjust_Global_Switches): Set Error_To_Warning + if -gnatd.E set. + * opt.ads (Error_To_Warning): New switch. + * osint.adb: Minor reformatting. + * sem_warn.adb (Warn_On_Overlapping_Actuals): Overlap is error + in some cases in Ada 2012 mode (unless Error_To_Warning) is set. + * sem_warn.ads (Warn_On_Overlapping_Actuals): Document error + in Ada 2012 mode. + +2013-10-14 Tristan Gingold <gingold@adacore.com> + + * cstand.adb: Add a comment for Standard_Exception_Type. + +2013-10-14 Ed Schonberg <schonberg@adacore.com> + + * exp_ch4.adb (Process_Transient_Object): If a transient scope + has already been created, use the corresponding Node_To_Be_Wrapped + as the insertion point for the controlled actions. + +2013-10-14 Tristan Gingold <gingold@adacore.com> + + * cstand.adb (Create_Standard): Change Import_Code component + of Standard_Exception_Type to Foreign_Data. Its type is now + Standard_A_Char (access to character). + * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust + definition of Code to match the type of Foreign_Data. + * s-stalib.ads (Exception_Data): Replace Import_Code by Foreign_Data + Change the definition of standard predefined exceptions. + (Exception_Code): Remove. + * raise.h (Exception_Code): Remove (Exception_Data): Replace + Import_Code field by Foreign_Data. + * rtsfind.ads (RE_Exception_Code): Remove + (RE_Import_Address): Add. + * a-exexpr-gcc.adb (Import_Code_For): Replaced by Foreign_Data_For. + * exp_ch11.adb (Expand_N_Exception_Declaration): Associate null + to Foreign_Data component. + * raise-gcc.c (Import_Code_For): Replaced by Foreign_Data_For. + (is_handled_by): Add comments. Use replaced function. Change + condition so that an Ada occurrence is never handled by + Foreign_Exception. + * s-exctab.adb (Internal_Exception): Associate Null_Address to + Foreign_Data component. + * s-vmexta.adb, s-vmexta.ads (Exception_Code): Declare Replace + SSL.Exception_Code by Exception_Code. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Document -gnateu switch. + * opt.ads (Ignore_Unrecognized_VWY_Switches): New switch. + * stylesw.adb: Ignore unrecognized switch if + Ignore_Unrecognized_VWY_Switches set. + * switch-c.adb: Implement -gnateu (sets + Ignore_Unrecognized_VWY_Switches). + * validsw.adb: Ignore unrecognized switch if + Ignore_Unrecognized_VWY_Switches set. + * warnsw.adb: Ignore unrecognized switch if + Ignore_Unrecognized_VWY_Switches set. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * exp_prag.adb, sem_prag.adb, a-exexda.adb, s-vmexta.ads: Minor + reformatting. + +2013-10-14 Vincent Celier <celier@adacore.com> + + * ali.adb (Get_File_Name): New Boolean parameter May_Be_Quoted, + defaulted to False. Calls Get_Name with May_Be_Quoted. + (Get_Name): New Boolean parameter May_Be_Quoted, defaulted to + False. If May_Be_Quoted is True and first non blank charater is + '"', unquote the name. + (Scan_ALI): For the file/path name on the D line, call Get_File_Name + with May_Be_Quoted = True, as it may have been quoted. + * lib-util.adb, lib-util.ads (Write_Info_Name_May_Be_Quoted): New + procedure to write file/path names that may contain spaces and if they + do are quoted. + * lib-writ.adb (Write_ALI): Use new procedure + Write_Info_Name_May_Be_Quoted to write file/path names on D lines. + +2013-10-14 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Depends_In_Decl_Part, + Analyze_Global_In_Decl_Part, + Analyze_Pre_Post_Condition_In_Decl_Part): Install the subprogram + and its formals only when it is not already installed. + * sem_util.adb (Is_Refined_State): A state is refined when it + has a non-empty list of constituents. + +2013-10-14 Tristan Gingold <gingold@adacore.com> + + * adaint.c: Disable __gnat_get_executable_load_address for linux. + * exp_prag.adb: Add comment in Expand_Pragma_Import_Export_Exception. + +2013-10-14 Tristan Gingold <gingold@adacore.com> + + * s-vmexta.ads: Add comments. + +2013-10-14 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Add processing + for pragma Refined_State. + * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing + for aspect Refined_Depends. + * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): + Use Find_Related_Subprogram_Or_Body to find the related + context. Use the current scope when determining whether to + ensure proper visibility. + (Analyze_Depends_In_Decl_Part): + Add local variable Spec_Id. Update the comment on usage of + Subp_Id. Use Find_Related_Subprogram_Or_Body to find the + related context. Extract the corresponding spec of the body + (if any). Use the current scope when determining when to + ensure proper visibility. + (Analyze_Global_In_Decl_Part): + Add local variable Spec_Id. Update the comment on usage of + Subp_Id. Use Find_Related_Subprogram_Or_Body to find the + related context. Extract the corresponding spec of the body + (if any). Use the current scope when determining when to + ensure proper visibility. + (Analyze_Global_Item): Use the + entity of the subprogram spec when performing formal parameter + checks. Perform state-related checks. + (Analyze_Input_Output): + Use Is_Attribute_Result to detect 'Result. Query the + entity of a subprogram spec when verifying the prefix of + 'Result. Perform state-related checks. (Analyze_Pragma): + Merge the analysis of Refined_Depends and Refined_Global. + (Analyze_Refined_Depends_In_Decl_Part): Provide implemenation. + (Analyze_Refined_Global_In_Decl_Part): Move state-related checks + to the body of Analyze_Global_In_Decl_Part. Rename local constant + List to Items. (Analyze_Refined_Pragma): Remove circuitry to + find the proper context, use Find_Related_Subprogram_Or_Body + instead. + (Check_Function_Return): Query the entity of + the subprogram spec when verifying the use of 'Result. + (Check_In_Out_States, Check_Input_States, Check_Output_States): + Avoid using Has_Null_Refinement to detect a state with + a non-null refinement, use the Refinement_Constituents + list instead. + (Check_Matching_Constituent): Remove initialization code. + (Check_Mode_Restriction_In_Function): Use the entity of the subprogram + spec when verifying mode usage in functions. + (Collect_Global_Items): New routine. + (Collect_Subprogram_Inputs_Outputs): Add local + variable Spec_Id. Add circuitry for bodies-as-specs. Use + pragma Refined_Global when collecting for a body. + (Create_Or_Modify_Clause): Use the location of the + clause. Rename local variable Clause to New_Clause to avoid + confusion and update all occurrences. Use Is_Attribute_Result + to detect 'Result. + (Find_Related_Subprogram): Removed. + (Find_Related_Subprogram_Or_Body): New routine. + (Is_Part_Of): Move routine to top level. + (Normalize_Clause): Update the + comment on usage. The routine can now normalize a clause with + multiple outputs by splitting it. + (Collect_Global_Items): + Rename local constant List to Items. Remove the check for + a null list. + (Requires_Profile_Installation): Removed. + (Split_Multiple_Outputs): New routine. + * sem_prag.ads: Update the comments on usage of various + pragma-related analysis routines. + * sem_util.adb (Contains_Refined_State): The routine can now + process pragma [Refined_]Depends. + (Has_Refined_State): Removed. + (Has_State_In_Dependency): New routine. + (Has_State_In_Global): New routine. + (Is_Attribute_Result): New routine. + * sem_util.ads (Is_Attribute_Result): New routine. + +2013-10-14 Emmanuel Briot <briot@adacore.com> + + * s-regpat.adb (Compile): Fix finalization of the automaton + when its size was automatically computed to be exactly 1000 bytes. + +2013-10-14 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Complete_Private_Subtype): If the full view of + the base type is constrained, the full view of the subtype is + known to be constrained as well. + +2013-10-14 Vincent Celier <celier@adacore.com> + + * projects.texi: Add documentation for new attributes of package + Clean: Artifacts_In_Object_Dir and Artifacts_In_Exec_Dir. + +2013-10-14 Tristan Gingold <gingold@adacore.com> + + * adaint.c, adaint.h (__gnat_get_executable_load_address): + New function. + * a-exexda.adb (Append_Info_Basic_Exception_Traceback): Add + executable load address (Basic_Exception_Tback_Maxlength): Adjust. + +2013-10-14 Vincent Celier <celier@adacore.com> + + * prj-attr.adb: New attributes in package Clean: + Artifacts_In_Exec_Dir, Artifacts_In_Object_Dir. + * prj-nmsc.adb (Process_Clean (Attributes)): New + procedure to process attributes Artifacts_In_Exec_Dir and + Artifacts_In_Object_Dir in package Clean. + * prj.ads (Project_Configuration): New components + Artifacts_In_Exec_Dir and Artifacts_In_Object_Dir. + * snames.ads-tmpl: New standard names Artifacts_In_Exec_Dir and + Artifacts_In_Object_Dir used only by gprclean. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * exp_attr.adb (Expand_N_Attribute_Reference): Add error + entry for Library_Level attribute (which should not survive + to expansion) + * gnat_rm.texi: Document attribute Library_Level + * sem_attr.adb (Analyze_Attribute, case Library_Level): Implement + this new attribute (Set_Boolean_Result): Replaces Set_Result + (Check_Standard_Prefix): Document that Check_E0 is called + (Check_System_Prefix): New procedure + * snames.ads-tmpl: Add entry for Library_Level attribute + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * exp_ch6.adb, sinfo.ads: Minor reformatting. + * checks.adb (Overlap_Check): Use identifier casing in messages. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * einfo.ads, einfo.adb (Default_Aspect_Component_Value): Is on base type + only. + * exp_aggr.adb (Expand_Array_Aggregate): Handle proper + initialization of <> component. + * exp_ch3.adb, exp_tss.adb: Minor reformatting + * sem_ch13.adb (Default_Aspect_Component_Value, Default_Aspect_Value): + Is on base type only. + * sinfo.ads: Minor comment revision. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * g-decstr.adb (Decode_Wide_Wide_Character): Fix failure + to detect invalid sequences where longer than necessary + sequences are used for encoding. + (Validate_Wide_Character): + Call Decode_Wide_Character to get the above validations. + (Validate_Wide_Wide_Character): Same fix + * g-decstr.ads: Add documentation making it clear that the UTF-8 + implementation here recognizes all valid UTF-8 sequences, rather + than the well-formed subset corresponding to characters defined + in Unicode. + (Next_Wide_Character): Remove comment about this + being more efficient than Decode_Wide_Character (because this + no longer the case). + (Prev_Wide_Character): Add note that valid encoding is assumed. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * a-wichha.adb (Character_Set_Version): New function. + * a-wichha.ads: Remove comments for pragma Pure (final RM has + this). + (Character_Set_Version): New function. + * gnat_rm.texi: Update doc. + +2013-10-14 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb: Flag263 is now known as Has_Null_Refinement. + (Has_Null_Refinement): New routine. + (Set_Has_Null_Refinement): New routine. + (Write_Entity_Flags): Output the status of flag + Has_Null_Refinement. + * einfo.ads: Add new flag Has_Null_Refinement along with + comment on usage and update all nodes subject to the flag. + (Has_Null_Refinement): New routine along with pragma Inline. + (Set_Has_Null_Refinement): New rouitine along with pragma Inline. + * sem_prag.adb (Analyze_Constituent): Mark a state as having + a null refinement when the sole constituent is "null". + (Analyze_Global_List): Handle null input/output items. + (Analyze_Refined_Global_In_Decl_Part): Add local variable + Has_Null_State. Add logic to handle combinations of states + with null refinements and null global lists and/or items. + (Check_In_Out_States, Check_Input_States, Check_Output_States): + Use attribute Has_Null_Refinement to detect states with + constituents. + (Check_Refined_Global_List): Handle null input/output items. + (Process_Global_Item): Handle states with null refinements. + (Process_Global_List): Handle null input/output items. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * freeze.adb (Freeze_Entity): Reset Is_True_Constant for + aliased object + * gnat_ugn.texi: Update doc on aliased variables and constants. + +2013-10-14 Ed Schonberg <schonberg@adacore.com> + + * exp_pakd.adb (Expand_Packed_Element_Reference): If the + reference is an actual in a call, the prefix has not been fully + expanded, to account for the additional expansion for parameter + passing. the prefix itself is a packed reference as well, + recurse to complete the transformation of the prefix. + +2013-10-14 Eric Botcazou <ebotcazou@adacore.com> + + * exp_dbug.adb (Debug_Renaming_Declaration): Do not + materialize the entity when the renamed object contains an + N_Explicit_Dereference. + * sem_ch8.adb (Analyze_Object_Renaming): + If the renaming comes from source and the renamed object is a + dereference, mark the prefix as needing debug information. + +2013-10-14 Doug Rupp <rupp@adacore.com> + + * system-vxworks-arm.ads (Stack_Check_Probes, Stack_Check_Limits): + Enable Stack Probes, Disable Stack Limit Checking. + * init.c [VxWorks] (__gnat_inum_to_ivec): Caste return value. + (__gnat_map_signal): Fix signature. + (__gnat_error_handler): Make + static, fix signature, remove prototype, fix prototype warning. + [ARMEL and VxWorks6] (__gnat_map_signal): Check and re-arm guard + page for storage_error. + * exp_pakd.adb: Minor reformatting. + +2013-10-14 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Global_In_Decl_Part): Remove local + variable Contract_Seen. Add local variable Proof_Seen. + (Analyze_Global_List): Remove the processing for mode + Contract_In. Add support for mode Proof_In. + (Analyze_Pragma): Update the grammar of pragmas Global and + Refined_Global. + * snames.ads-tmpl: Remove predefined name Contract_In. Add + predefined name Proof_In. + +2013-10-14 Robert Dewar <dewar@adacore.com> + + * exp_prag.adb (Expand_Pragma_Check): Generate proper string + for invariant + * gnat_rm.texi: Add documentation for pragmas + Type_Invariant[_Class] + * par-prag.adb: Add entries for pragmas Type_Invariant[_Class] + * sem_ch13.adb: Minor reformatting + * sem_prag.adb: Implement pragmas Type_Invariant[_Class] + * snames.ads-tmpl: Add entries for pragmas Type_Invariant[_Class] + +2013-10-14 Johannes Kanig <kanig@adacore.com> + + * debug.adb: Release now unused debug switches that were only + relevant for gnat2why backend, not the frontend + * frontend.adb (Frontend) Do not stop when -gnatd.H is present, + was unused + +2013-10-14 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Global_Item): Allow + references to enclosing formal parameters. + +2013-10-14 Thomas Quinot <quinot@adacore.com> + + * einfo.adb (Equivalent_Type): Add missing case + E_Access_Subprogram_Type in guard (for remote access to + subprograms) * sem_ch8.adb (Find_Direct_Name, Find_Expanded_Name): + Add missing guards to account for the presence of RAS types + that have already been replaced with the corresponding fat + pointer type. + +2013-10-14 Hristian Kirtchev <kirtchev@adacore.com> + + * aspects.adb: Add an entry in table Canonical_Aspect for + Initializes. + * aspects.ads: Add entries in tables Aspect_Id, Aspect_Argument, + Aspect_Names and Aspect_Delay for Initializes. + * atree.ads, atree.adb (Ekind_In): New seven argument versions of the + routines. + * einfo.adb: Remove Refined_State_Pragma from the list of node + usage. Finalizer is now at position 28. + (Contract): Package + and package bodies now have a contract. + (Finalizer): Update + the assertion and node usage. + (Get_Pragma): Update the Is_CDG + flag to include Abstract_State, Initializes and Refined_State. + (Refined_State_Pragma): Removed. + (Set_Contract): Package and + package bodies now have a contract. + (Set_Finalizer): Update the + assertion and node usage. + (Set_Refined_State_Pragma): Removed. + (Write_Field8_Name): Remove the output for Refined_State_Pragma. + (Write_Field24_Name): Remove the output for Finalizer. Package + and package bodies now have a contract. + (Write_Field28_Name): + Add output for Finalizer. + * einfo.ads: Update the documentation and usage in entities + of attribute Contract. Update the node position and usage in + entities of attribute Finalizer. Remove the documentation + and usage in entities for attribute Refined_State_Pragma. + (Refined_State_Pragma): Removed along with pragma Inline. + (Set_Refined_State_Pragma): Removed along with pragma Inline. + * par-prag.adb: Add Initializes to the pragmas that do not + require special processing by the parser. + * sem_ch3.adb (Analyze_Declarations): Add local variable + Prag. Update the retrieval of pragma Refined_State. Analyze + aspect/pragma Initializes at the end of the visible declarations + of the related package. + * sem_ch6.adb (Analyze_Subprogram_Body_Contract): + Add local variables Ref_Depends and Ref_Global. Analyze + pragmas Refined_Global and Refined_Depends in that order. + (Analyze_Subprogram_Contract): Add local variables Depends and + Global. Analyze pragmas Global and Depends in that order. + * sem_ch7.adb (Analyze_Package_Body_Helper): Package + bodies now have a contract. Move the analysis of the aspect + specifications after the defining entity has been decorated. + (Analyze_Package_Declaration): Packages now have a contract. Move + the analysis of the aspect specifications after the defining + entity has been decorated. + * sem_ch12.adb (Analyze_Generic_Package_Declaration): Packages + now have contracts. + * sem_ch13.adb (Analyze_Pragma): Code cleanup for aspect + Abstract_State. Add processing for aspect Initializes. + (Check_Aspect_At_Freeze_Point): Add an entry for Initializes. + * sem_prag.adb: Use Get_Pragma_Arg to extract the expression + of a pragma argument. Add an entry in table Sig_Flags for + Initializes. + (Analyze_Initializes_In_Decl_Part): New routine. + (Analyze_Pragma): Check the declaration order of pragmas + Abstract_State and Initializes. Abstract_State is now part of + the package contract. Analyze pragma Initializes. Check for + duplicate Refined_State pragma. Refined_State is now part of + the package contract. + (Check_Declaration_Order): New routine. + (Check_Test_Case): Alphabetized. + * sem_prag.ads (Analyze_Initializes_In_Decl_Part): New routine. + * sem_util.adb (Add_Contract_Item): Rename formal Subp_Id + to Id. This routine can now support contracts on packages and + package bodies. + * sem_util.ads (Add_Contract_Item): Rename formal Subp_Id to + Id. Update comment on usage. + * sinfo.ads: Update the usage of N_Contract nodes. + * snames.ads-tmpl: Add predefined name Initializes. Add new + pragma id for Initializes. + +2013-10-13 Nicolas Roche <roche@adacore.com> + Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Make-lang.in (ada/%.o): Replace individual rules with + generic rule and add $(POSTCOMPILE). + (ADA_DEPS): New. + (.adb.o): Add @$(ADA_DEPS). + (.ads.o): Likewise. + (ada/a-except.o): Likewise. + (ada/s-excdeb.): Likewise. + (ada/s-assert.o): Likewise. + (ada/a-tags.o): Likewise. + (ada_generated_files): New variable. + Use them as dependency order for GNAT1_ADA_OBJS and GNATBIND_OBJS. + (ADA_DEPFILES): New variable. + Include them. + (ada_OBJS): Define. + +2013-10-13 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force all local + variables with aggregate types in memory if not optimizing. + +2013-10-13 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Check_Mode): Do + not emit an error when we are looking at inputs and + the item is an unconstrained or tagged out parameter. + (Check_Mode_Restriction_In_Enclosing_Context): Use Get_Pragma + to find whether the context is subject to aspect/pragma Global. + (Collect_Subprogram_Inputs_Outputs): Unconstrained or tagged + out parameters are now considered inputs. Use Get_Pragma to + find wheher the subprogram is subject to aspect/pragma Global. + (Is_Unconstrained_Or_Tagged_Item): New routine. + +2013-10-13 Thomas Quinot <quinot@adacore.com> + + * einfo.ads: Minor reformatting. + * gcc-interface/Make-lang.in: Update dependencies. + +2013-10-13 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Add documentation for pragmas Pre[_Class] + Post[_Class]. + * par-ch2.adb (Skip_Pragma_Semicolon): Handle extra semicolon nicely. + * par-prag.adb: Add entries for pragmas Pre[_Class] and + Post[_Class]. + * sem_prag.adb: Add handling of pragmas Pre[_Class] and + Post[_Class]. + * sem_util.adb (Original_Aspect_Name): Moved here from + Sem_Prag.Original_Name, and modified to handle pragmas + Pre/Post/Pre_Class/Post_Class. + * sem_util.ads (Original_Aspect_Name): Moved here from + Sem_Prag.Original_Name. + * snames.ads-tmpl: Add entries for pragmas Pre[_Class] and + Post[_Class]. + +2013-10-13 Robert Dewar <dewar@adacore.com> + + * einfo.adb, sem_ch6.adb: Minor reformatting. + +2013-10-13 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb: Add node/list usage for Refined_State + and Refinement_Constituents. + (Get_Pragma): Update the + initialization of Is_CDG to include Refined_Global and + Refined_Depends. Rename constant Delayed to In_Contract and update + all of its occurrences. + (Is_Non_Volatile_State): New routine. + (Is_Volatile_State): Removed. + (Refined_State): New routine. + (Refinement_Constituents): New routine. + (Set_Refined_State): New routine. + (Set_Refinement_Constituents): New routine. + (Write_Field8_Name): Add output for Refinement_Constituents. + (Write_Field10_Name): Add output for Refined_State. + * einfo.ads: Add new synthesized attribute Is_Non_Volatile_State. + Remove synthesized attribute Is_Volatile_State. Add new + attributes Refined_State and Refinement_Constituents along with + usage in nodes. + (Get_Pragma): Update the comment on usage. + (Is_Non_Volatile_State): New routine. + (Is_Volatile_State): Removed. + (Refined_State): New routine and pragma Inline. + (Refinement_Constituents): New routine and pragma Inline. + (Set_Refined_State): New routine and pragma Inline. + (Set_Refinement_Constituents): New routine and pragma Inline. + * elists.ads, elists.adb (Clone): Removed. + (New_Copy_Elist): New routine. + (Remove): New routine. + * sem_ch3.adb (Analyze_Declarations): Use Defining_Entity + to get the entity of the subprogram [body]. + (Analyze_Object_Declaration): Add initialization for + Refined_State. + * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Add processing + for Refined_Global and Refined_Depends. Emit an error when + the body requires Refined_Global, but the aspect/pragma is + not present. + * sem_ch6.ads (Analyze_Subprogram_Body_Contract): Change + procedure signature and add comment on usage. + * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing + for aspect Refined_Global. + * sem_prag.adb (Analyze_Abstract_State): Add initialization + of attributes Refined_State and Refinement_Constituents. + (Analyze_Depends_In_Decl_Part, Analyze_Global_In_Decl_Part, + Analyze_Contract_Cases_In_Decl_Part): Remove local + constant Arg1. + (Analyze_Pragma): Add processing for pragma + Refined_Global. The analysis of Refined_Post and Refined_Pre + has been merged. Update an error message in the processing of + pragma Refined_State. + (Analyze_Refined_Global_In_Decl_Part): Provide implementation. + (Analyze_Refined_Pragma): New routine. + (Analyze_Refined_Pre_Post_Condition): Removed. + (Analyze_Refined_State_In_Decl_Part): Update the call to Clone. + (Analyze_Refinement_Clause): Make State_Id visible to all + nested subprogram. + (Check_Matching_Constituent): Establish + a relation between a refined state and its constituent. + (Collect_Hidden_States_In_Decls): Remove ??? comment. Look at + the entity of the object declaration to establish its kind. + * sem_util.adb: Alphabetize with and use clauses. + (Contains_Refined_State): New routine. + * sem_util.ads (Contains_Refined_State): New routine. + +2013-10-13 Thomas Quinot <quinot@adacore.com> + + * scos.ads: Minor documentation clarification. + +2013-10-13 Thomas Quinot <quinot@adacore.com> + + * s-oscons-tmplt.c (CLOCK_RT_Ada): Set to CLOCK_MONOTONIC when + building on AIX 5.3 or later, and to CLOCK_REALTIME on older + versions of AIX. + * init.c (pthread_condattr_setclock): Remove now useless weak symbol. + * thread.c(__gnat_pthread_condattr_setup): Remove bogus AIX 5.2 + compatibility shim. + * s-osinte-aix.ads(clock_id_t): Fix C mapping (this is a 64-bit + type). + (clock_gettime): Import from C runtime library. + * s-osinte-aix.adb (clock_gettime): Remove bogus emulation body, + this routine is provided by the system in current supported + versions of AIX. + +2013-10-13 Robert Dewar <dewar@adacore.com> + + * sem_ch3.adb: Minor reformatting. + +2013-10-13 Ed Schonberg <schonberg@adacore.com> + + * freeze.adb (Freeze_Entity): For a function whose return type + is incomplete, do not replace the type with the full view if the + type is a limited view. In that case the full view appears in a + different unit, and the back-end will retrieve it at the proper + elaboration point. + +2013-10-13 Yannick Moy <moy@adacore.com> + + * exp_spark.adb (Expand_SPARK_Call): Do not introduce temporaries for + actuals. + +2013-10-13 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb: in Ada 2012 access_to_function types can have + in-out parameters. + (Derived_Type_Declaration): SPARK restriction + must be flagged on the original node, since it may have been + written as a subtype declaration. + (Analyze_Subtype_Declaration): Do not enter name of + entity in declaration if it is the current entity, because it may + have been inserted in a previous analysis and it appears in the + else_part of an if-statement that is rewritten during expansion. + +2013-10-13 Yannick Moy <moy@adacore.com> + + * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Remove procedure. + (Expand_SPARK): Remove call to Expand_SPARK_N_Attribute_Reference and + Expand_SPARK_N_Simple_Return_Statement. + (Expand_SPARK_N_Simple_Return_Statement, + Expand_SPARK_Simple_Function_Return): Remove procedures. + +2013-10-13 Vincent Celier <celier@adacore.com> + + * gnat_ugn.texi: Minor editing. + +2013-10-13 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Check_Abstract_Overriding): If a synchronized + operation implements an interface primitive, mark the operation + as referenced, to prevent usually spurious messages about unused + entities: such operations are called in dispatching select + statements that are not visible to the compiler. + +2013-10-13 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_param): Remove obsolete comment. + +2013-10-11 Jakub Jelinek <jakub@redhat.com> + + * gcc-interface/utils.c (DEF_FUNCTION_TYPE_8): Define. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * par-ch6.adb (Check_Junk_Semicolon_Before_Return): Remove + junk code. + +2013-10-10 Javier Miranda <miranda@adacore.com> + + * sem_ch13.adb (Freeze_Entity_Checks): Avoid + loosing errors on CPP entities in -gnatc mode. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * sem_ch5.adb (Analyze_If_Statement): Only diagnose redundant + if from source. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * restrict.adb (Check_SPARK_Restriction): Refine test (don't + automatically go to the original node). + * sem_ch11.adb (Analyze_Raise_Statement): Only raise + statements that come from source violate SPARK restrictions. + (Analyze_Raise_xxx_Error): Same fix. + * sem_ch3.adb (Analyze_Object_Declaration): Check OK SPARK + initialization on original node, not on possibly rewritten + expression. + * sem_ch4.adb (Analyze_If_Expression): Only if expressions that + come from source violate SPARK mode restrictions. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Fix confusing documentation for -gnatyM. + +2013-10-10 Yannick Moy <moy@adacore.com> + + * errout.adb (Compilation_Errors): In formal verification mode, + always return False. + +2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Collect_Hidden_States_In_Decls): Only consider source + non-constant objects. + +2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> + + * aspects.adb: Add an entry in table Canonical_Aspect for + Refined_State. + * aspects.ads: Add entries in tables Aspect_Id, Aspect_Argument, + Aspect_Names and Aspect_Delay for Refined_State. + * einfo.adb: Add with and use clauses for Elists. + Remove Refined_State from the list of node usage. + Add Refined_State_Pragma to the list of node usage. + (Has_Null_Abstract_State): New routine. + (Refined_State): Removed. + (Refined_State_Pragma): New routine. + (Set_Refined_State): Removed. + (Set_Refined_State_Pragma): New routine. + (Write_Field8_Name): Add output for Refined_State_Pragma. + (Write_Field9_Name): Remove the output for Refined_State. + * einfo.ads: Add new synthesized attribute Has_Null_Abstract_State + along with usage in nodes. Remove attribute Refined_State along + with usage in nodes. Add new attribute Refined_State_Pragma along + with usage in nodes. + (Has_Null_Abstract_State): New routine. + (Refined_State): Removed. + (Refined_State_Pragma): New routine. + (Set_Refined_State): Removed. + (Set_Refined_State_Pragma): New routine. + * elists.adb (Clone): New routine. + * elists.ads (Clone): New routine. + * par-prag.adb: Add Refined_State to the pragmas that do not + require special processing by the parser. + * sem_ch3.adb: Add with and use clause for Sem_Prag. + (Analyze_Declarations): Add local variables Body_Id, Context and + Spec_Id. Add processing for delayed aspect/pragma Refined_State. + * sem_ch13.adb (Analyze_Aspect_Specifications): Update the + handling of aspect Abstract_State. Add processing for aspect + Refined_State. Remove the bizzare insertion policy for aspect + Abstract_State. + (Check_Aspect_At_Freeze_Point): Add an entry for Refined_State. + * sem_prag.adb: Add an entry to table Sig_Flags + for pragma Refined_State. + (Add_Item): Update the + comment on usage. The inserted items need not be unique. + (Analyze_Contract_Cases_In_Decl_Part): Rename variable Restore to + Restore_Scope and update all its occurrences. + (Analyze_Pragma): + Update the handling of pragma Abstract_State. Add processing for + pragma Refined_State. + (Analyze_Pre_Post_Condition_In_Decl_Part): + Rename variable Restore to Restore_Scope and update all its + occurrences. + (Analyze_Refined_State_In_Decl_Part): New routine. + * sem_prag.ads (Analyze_Refined_State_In_Decl_Part): New routine. + * snames.ads-tmpl: Add new predefined name for Refined_State. Add + new Pragma_Id for Refined_State. + +2013-10-10 Ed Schonberg <schonberg@adacore.com> + + * sem_ch10.adb (Install_Limited_Withed_Unit): handle properly the + case of a record declaration in a limited view, when the record + contains a self-referential component of an anonymous access type. + +2013-10-10 Thomas Quinot <quinot@adacore.com> + + * exp_ch4.adb (Process_Transient_Object): For any context other + than a simple return statement, insert the finalization action + after the context, not as an action on the context (which will + get evaluated before it). + +2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb (Write_Field19_Name): Correct the + string name of attribute Default_Aspect_Value. + +2013-10-10 Ed Schonberg <schonberg@adacore.com> + + * sem_type.adb (Interface_Present_In_Ancestor): The progenitor + in a type declaration may be an interface subtype. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * sinfo.ads (Do_Range_Check): Add special note on handling of + range checks for Succ and Pred. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * erroutc.adb (Output_Msg_Text): Remove VMS special handling. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * a-chahan.ads, a-chahan.adb (Is_Line_Terminator): New function + (Is_Mark): New function. + (Is_Other_Format): New function. + (Is_Punctuation_Connector): New function. + (Is_Space): New function. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * sem_aggr.adb (Resolve_Array_Aggregate): Redo duplicate/missing + choice circuit. Was not quite right in some cases, which showed + up in ACATS test B43201C. + * sem_attr.adb (Address_Checks): Make sure name is set right + for some messages issued. + * mlib-prj.adb: Minor code reorganization. + * gnat_ugn.texi: Remove special VMS doc for tagging of warning msgs. + * exp_ch9.adb: Minor reformatting. + +2013-10-10 Tristan Gingold <gingold@adacore.com> + + * lib-writ.adb (Write_Unit_Information): Adjust previous patch. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * sem_ch5.adb (Analyze_If_Statement): Warn on redundant if + statement. + * sem_util.ads, sem_util.adb (Has_No_Obvious_Side_Effects): New + function. + +2013-10-10 Ed Schonberg <schonberg@adacore.com> + + * exp_ch9.adb (Expand_N_Timed_Entry_Call): Simplify expansion + for the case of a dispatching trigger: there is no need to + duplicate the code or create a subprogram to encapsulate the + triggering statements. This allows exit statements in the + triggering statements, that refer to enclosing loops. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * freeze.adb: Minor reformatting. + * sem_ch13.adb (Freeze_Entity_Checks): New procedure + (Analyze_Freeze_Entity): Call Freeze_Entity_Checks + (Analyze_Freeze_Generic_Entity): Call Freeze_Entity_Checks. + * sinfo.ads: Add syntax for sprint for Freeze_Generic_Entity. + * sprint.ads: Add syntax for freeze generic entity node. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * einfo.adb, einfo.ads: Minor comment updates. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * lib-writ.adb (Write_Unit_Information): Fatal error if linker + options are detected in a predefined generic unit. + +2013-10-10 Thomas Quinot <quinot@adacore.com> + + * s-oscons-tmplt.c (CLOCK_REALTIME): Always define, possibly using + a dummy placeholder value. + (NEED_PTHREAD_CONDATTR_SETCLOCK): Remove, not needed anymore. + * thread.c: Adjust #if test accordingly. + +2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch6.adb (Consequence_Error): Generate an + implicit if statement. + (Expand_Contract_Cases): Generate an implicit if statement. + (Process_Contract_Cases): Do not expand Contract_Cases when no code + is being generated. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * sem_attr.adb (Address_Checks): New procedure. + +2013-10-10 Ed Schonberg <schonberg@adacore.com> + + * sinfo.ads, sinfo.adb: New Node Freeze_Generic_Entity, to trigger + semantic actions at the proper point for entities that previously + had no explicit freeze point. + * freeze.adb (Freeze_Generic_Entities): generate new nodes to + indicate the point at which semantic checks can be performed on + entities declared in generic packages. + * sem_ch13.ads, sem_ch13.adb: New procedure + Analyze_Freeze_Generic_Entity. + * exp_util.adb (Insert_Actions): Treat new node like Freeze_Entity. + * sem.adb (Analyze): Call Analyze_Freeze_Generic_Entity. + * sprint.adb (Sprint_Node): display Analyze_Freeze_Generic_Entity. + * gcc-interface/trans.c: Ignore Analyze_Freeze_Generic_Entity. + * gcc-interface/Make-lang.in: Update dependencies. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * sem_aggr.adb (Resolve_Array_Aggregate): Identify duplicated + cases. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * sem_ch9.adb (Analyze_Task_Body): Aspects are illegal + (Analyze_Protected_Body): Aspects are illegal. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * sem_ch6.adb, sem_ch13.adb: Minor reformatting. + * sem_case.adb (Check_Choices): Fix bad listing of missing + values from predicated subtype case (Check_Choices): List + duplicated values. + * errout.adb (Set_Msg_Text): Process warning tags in VMS mode + * erroutc.adb (Output_Msg_Text): Handle VMS warning tags + * gnat_ugn.texi: Document /WARNINGS=TAG_WARNINGS for VMS + * ug_words: Add entries for -gnatw.d and -gnatw.D + * vms_data.ads: Add [NO]TAG_WARNINGS for -gnatw.D/-gnatw.d + * lib-writ.ads: Documentation fixes + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * a-wichha.adb, a-wichha.ads, a-zchhan.adb, a-zchhan.ads + (Is_Other_Format): New name for Is_Other. + (Is_Punctuation_Connector): New name for Is_Punctuation + +2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> + + * aspects.adb: Add entries in table Canonical_Aspects for aspects + Refined_Depends and Refined_Global. + * aspects.ads: Add entries in tables Aspect_Id, Aspect_Argument, + Aspect_Names, Aspect_Declay, Aspect_On_Body_Or_Stub_OK for + aspects Refined_Depends and Refined_Global. + * einfo.adb (Contract): Subprogram bodies are now valid owners + of contracts. + (Set_Contract): Subprogram bodies are now valid + owners of contracts. + (Write_Field24_Name): Output the contract + attribute for subprogram bodies. + * exp_ch6.adb (Expand_Subprogram_Contract): New routine. + * exp_ch6.ads (Expand_Subprogram_Contract): New routine. + * par-prag.adb: Pragmas Refined_Depends and Refined_Global do + not require any special processing by the parser. + * sem_ch3.adb (Adjust_D): Renamed to Adjust_Decl. + (Analyze_Declarations): Code reformatting. Analyze the contract + of a subprogram body at the end of the declarative region. + * sem_ch6.adb (Analyze_Generic_Subprogram_Body): + Subprogram bodies can now have contracts. Use + Expand_Subprogram_Contract to handle the various contract + assertions. + (Analyze_Subprogram_Body_Contract): New null routine. + (Analyze_Subprogram_Body_Helper): Subprogram bodies can now have + contracts. Use Expand_Subprogram_Contract to handle the various + contract assertions. + (Analyze_Subprogram_Contract): Add local + variable Nam. Update the call to Analyze_PPC_In_Decl_Part. Capture + the pragma name in Nam. + (Process_PPCs): Removed. + * sem_ch6.ads (Analyze_Subprogram_Body_Contract): New routine. + (Analyze_Subprogram_Contract): Update the comment on usage. + * sem_ch13.adb (Analyze_Aspect_Specifications): Add null + implementations for aspects Refined_Depends and Refined_Global. + (Check_Aspect_At_Freeze_Point): Aspects Refined_Depends and + Refined_Global do not need to be checked at the freeze point. + * sem_prag.adb: Add entries in table Sig_Flags + for pragmas Refined_Depends and Refined_Global. + (Analyze_Contract_Cases_In_Decl_Part): Add local + variable Restore. Use Restore to pop the scope. + (Analyze_Depends_In_Decl_Part): Add local variable Restore. Use + Restore to pop the scope. + (Analyze_Global_In_Decl_List): Add local variable Restore. Use Restore + to pop the scope. + (Analyze_PPC_In_Decl_Part): Renamed to + Analyze_Pre_Post_Condition_In_Decl_Part. + (Analyze_Pragma): + Add null implementations for pragmas Refined_Depends and + Refined_Global. Refined_Pre and Refined_Post are now + handled by routine Analyze_Refined_Pre_Post_Condition + exclusively. + (Analyze_Refined_Depends_In_Decl_Part): New + null routine. + (Analyze_Refined_Global_In_Decl_Part): + New null routine. + (Analyze_Refined_Pre_Post): + Renamed to Analyze_Refined_Pre_Post_Condition. + (Analyze_Refined_Pre_Post_Condition): Analyze the boolean + expression. + (Check_Precondition_Postcondition): Update the call + to Analyze_PPC_In_Decl_Part. + * sem_prag.ads: Add entries in table + Pragma_On_Body_Or_Stub_OK for pragmas Refined_Depends + and Refined_Global. + (Analyze_PPC_In_Decl_Part): Renamed + to Analyze_Pre_Post_Condition_In_Decl_Part. Update the + comment on usage. + (Analyze_Refined_Depends_In_Decl_Part): New routine. + (Analyze_Refined_Global_In_Decl_Part): New routine. + (Analyze_Test_Case_In_Decl_Part): Update the comment on usage. + * sem_util.adb (Add_Contract_Item): Rename formal Item to Prag + and update all occurrences. Subprogram body contracts can now + contain pragmas Refined_Depends and Refined_Global. + * sem_util.ads (Add_Contract_Item): Rename formal Item to + Prag. Update the comment on usage. + * sinfo.ads: Update the comment on structure and usage of + N_Contract. + * snames.ads-tmpl: Add new predefined names for Refined_Depends + and Refined_Global. Add entries in table Pragma_Id for + Refined_Depends and Refined_Global. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * types.ads: Minor reformatting. + +2013-10-10 Thomas Quinot <quinot@adacore.com> + + * s-taprop-posix.adb: Add missing comment. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * freeze.adb (Freeze_Record_Type): Move choice checking to + Analyze_Freeze_Entity (Freeze_Record_Type): Make sure all choices + are properly frozen + * sem_case.adb (Check_Choices): Remove misguided attempt to + freeze choices (this is now done in Freeze_Record_Type where + it belongs). + (Check_Choices): Remove some analyze/resolve calls + that are redundant since they are done in Analyze_Choices. + * sem_ch13.adb (Analyze_Freeze_Entity): Do the error + checking for choices in variant records here (moved here from + Freeze.Freeze_Record_Type) + +2013-10-10 Thomas Quinot <quinot@adacore.com> + + * s-oscons-tmplt.c, s-taprop-posix.adb (CLOCK_REALTIME): Always define, + possibly using a dummy placeholder value. + (Compute_Deadline): For the case of an + Absolute_Calendar deadline, if the target uses another clock + than CLOCK_REALTIME as CLOCK_RT_Ada, compensate for possible + different epoch. + +2013-10-10 Ed Schonberg <schonberg@adacore.com> + + * sem_ch8.adb (Find_Expanded_Name): Handle properly a fully + qualified reference to a generic child unit within itself, + in an instantiation. + +2013-10-10 Pascal Obry <obry@adacore.com> + + * prj-conf.adb: Minor typo fixes in comment. + +2013-10-10 Thomas Quinot <quinot@adacore.com> + + * s-taprop-posix.adb (Compute_Deadline): New local subprogram, + factors common code between Timed_Sleep and Timed_Delay. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * freeze.adb (Freeze_Record_Type): Don't replace others if + expander inactive. This avoids clobbering the ASIS tree in + -gnatct mode. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * sem_res.adb (Resolve_Op_Expon): Avoid crash testing for + fixed-point case in preanalysis mode (error will be caught during + full analysis). + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Refined_Pre and Refined_Post are now allowed as + assertion identifiers for pragma Assertion_Policy. + * sem_prag.adb (Is_Valid_Assertion_Kind): Add Refined_Pre/Refined_Post + * sem_ch13.adb: Minor reformatting. + +2013-10-10 Pascal Obry <obry@adacore.com> + + * prj-conf.adb: Code refactoring. + +2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb: Remove Integrity_Level from the node usage list. + (Has_Option): Update the implementation to match + the new terminology. + (Has_Property): Renamed to Has_Option. + (Integrity_Level): Removed. + (Is_External_State): New routine. + (Is_Input_Only_State): Use Has_Option to determine whether a state + is Input_Only. (Is_Input_State): Renamed to Is_Input_Only_State. + (Is_Output_Only_State): Use Has_Option to determine whether + a state is Output_Only. + (Is_Output_State): Renamed to + Is_Output_Only_State. + (Is_Volatile_State): Use Has_Option to determine whether a state is + volatile. + (Set_Integrity_Level): Removed. + (Write_Field8): Remove the entry for Integrity_Level. + * einfo.ads: Remove Integrity_Level along with its documentation + and usage in nodes. Rename Is_Input_State to Is_Input_Only_State. + Rename Is_Output_State to Is_Output_Only_State. Update the + documentation of Is_Volatile_State. Update the node structure of + E_Abstract_Entity. + (Integrity_Level): Removed along with pragma Inline. + (Is_External_State): New routine. + (Is_Input_State): Renamed to Is_Input_Only_State. + (Is_Output_State): Renamed to Is_Output_Only_State. + (Set_Integrity_Level): Removed along with pragma Inline. + * sem_prag.adb (Analyze_Pragma): Update the checks regarding + global items and abstract state modes. Update the implementation + of pragma Abstract_State to reflect the new rules and terminology. + * snames.ads-tmpl: Remove the predefined name for Integrity + level. Add new predefined names for Input_Only, Non_Volatile, + Output_Only and Part_Of. + +2013-10-10 Ed Schonberg <schonberg@adacore.com> + + * lib-xref.adb (Generate_Reference): Do not generate a reference + within a _postcondition procedure: a proper source reference has + already been generated when pre- analyzing the original aspect + specification, and the use of a formal in a pre/postcondition + should not count as a proper use in a subprogram body. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * sem_eval.adb (Why_Non_Static): Fix bomb for deferred constant + case + +2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> + + * aspects.adb: Add an entry for Aspect_Refined_Post in table + Canonical_Aspect. + * aspects.ads: Add an entry for Aspect_Refined_Post in tables + Aspect_Id, Aspect_Argument, Aspect_Names, Aspect_Delay, + Aspect_On_Body_Or_Stub_OK. Update the comment on the use of + table Aspect_On_Body_Or_Stub_OK. + * par-prag.adb: Add pragma Refined_Post to the list of pragmas + that do not require special processing by the parser. + * sem_attr.adb (Analyze_Attribute): Add special analysis for + attributes 'Old and 'Result when code generation is disabled and + they appear in aspect/pragma Refined_Post. + (In_Refined_Post): New routine. + * sem_ch6.adb (Analyze_Expression_Function): Move various + aspects and/or pragmas that apply to an expression function to the + corresponding spec or body. + (Collect_Body_Postconditions): New routine. + (Process_PPCs): Use routine Collect_Body_Postconditions + to gather all postcondition pragmas. + * sem_ch10.adb (Analyze_Proper_Body): Use routine + Relocate_Pragmas_To_Body to move all source pragmas that follow + a body stub to the proper body. + (Move_Stub_Pragmas_To_Body): Removed. + * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing + for aspect Refined_Post. + (Check_Aspect_At_Freeze_Point): Aspect + Refined_Post does not need delayed processing at the freeze point. + * sem_prag.adb: Add an entry for pragma Refined_Post in + table Sig_Flags. + (Analyze_Pragma): Add processing for pragma + Refined_Post. Update the processing of pragma Refined_Pre + to use common routine Analyze_Refined_Pre_Post. + (Analyze_Refined_Pre_Post): New routine. + (Relocate_Pragmas_To_Body): New routine. + * sem_prag.ads: Table Pragma_On_Stub_OK is now known as + Pragma_On_Body_Or_Stub_OK. Update the comment on usage of + table Pragma_On_Body_Or_Stub_OK. + (Relocate_Pragmas_To_Body): New routine. + * snames.ads-tmpl: Add new predefined name for Refined_Post. Add + new Pragma_Id for Refined_Post. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * exp_ch3.adb (Expand_N_Variant_Part): Now null, expansion of + last choice to others is moved to Freeze_Record_Type. + * freeze.adb (Freeze_Record_Type): Expand last variant to others + if necessary (moved here from Expand_N_Variant_Part + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * lib-xref-spark_specific.adb, par-ch13.adb, sem_prag.adb, sem_prag.ads, + sem_ch12.adb, sem_attr.adb, sem_ch6.adb, sem_ch13.adb, a-sequio.adb, + s-atocou-builtin.adb: Minor reformatting. + +2013-10-10 Thomas Quinot <quinot@adacore.com> + + * s-oscons-tmplt.c (NEED_PTHREAD_CONDATTR_SETCLOCK): This + constant needs to be output to s-oscons.h, as it is tested + by init.c. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * exp_ch3.adb (Expand_N_Variant_Part): Don't expand choices, too early + * exp_ch5.adb (Expand_N_Case_Statement): Use new Has_SP_Choice + flag to avoid expanding choices when not necessary. + * exp_util.adb: Minor reformatting + * freeze.adb (Freeze_Record_Type): Redo expansion of variants + * sem_aggr.adb: Minor reformatting + * sem_case.ads, sem_case.adb: Major rewrite, separating Analysis and + Checking of choices. + * sem_ch3.adb (Analyze_Variant_Part): Rewrite to call new + Analyze_Choices. + * sem_ch4.adb (Analyze_Case_Expression): Call Analyze_Choices + and Check_Choices + * sem_ch5.adb (Analyze_Case_Statement): Call Analyze_Choices + and Check_Choices + * sem_util.adb: Minor reformatting + * sinfo.ads, sinfo.adb (Has_SP_Choice): New flag. + +2013-10-10 Vincent Celier <celier@adacore.com> + + * mlib-prj.adb (Build_Library): Do not issue link dynamic + libraries with an Rpath, if switch -R was used. + +2013-10-10 Tristan Gingold <gingold@adacore.com> + + * s-stalib.ads (Image_Index_Table_8, Image_Index_Table_16, + Image_Index_Table_32): Remove as not used. + * s-imgint.adb (Image_Integer): Call Set_Image_Integer and + remove duplicated code. + +2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Pragma): Provide a + more precise error message when pragma Refined_Pre applies to + an expression function that is not a completion. + +2013-10-10 Thomas Quinot <quinot@adacore.com> + + * sem_attr.adb (Analyse_Attribute, case + Attribute_Scalar_Storage_Order): a 'Scalar_Storage_Order attribute + reference for a generic type is permitted in GNAT runtime mode. + * a-sequio.adb (Read, Write): Use the endianness of the actual + type to encode length information written to the file. + +2013-10-10 Ed Schonberg <schonberg@adacore.com> + + * par-ch13.adb (Aspect_Specifications_Present)): In earlier than + Ada2012 mode, assume that a legal aspect name following "with" + keyword is an older gnat switch and not a misplaced with_clause. + +2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> + + * aspects.adb: Add an entry for Aspect_Refined_Pre in + table Canonical_Aspect. + (Aspects_On_Body_OK): Renamed to + Aspects_On_Body_Or_Stub_OK. + (Aspects_On_Body_Or_Stub_OK): + Update the query in table Aspect_On_Body_OK. + * aspects.ads: Add an entry for Aspect_Refined_Pre in tables + Aspect_Id, Aspect_Argument, Aspect_Names, Aspect_Delay, + Aspect_On_Body_Or_Stub_OK. Table Aspect_On_Body_OK is now known as + Aspect_On_Body_Or_Stub_OK. Add a section of aspect specifications + that apply to body stubs. + (Aspects_On_Body_OK): Renamed to Aspects_On_Body_Or_Stub_OK. + (Aspects_On_Body_Or_Stub_OK): Update the comment on usage. + * par-prag.adb: Add pragma Refined_Pre to the list of pragmas + that do not require special processing by the parser. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Delay the + analysis of aspect specifications that apply to a body stub + until the proper body is analyzed. + * sem_ch10.adb: Add with and use clause for Sem_Ch13. + (Analyze_Package_Body_Stub): Set the corresponding spec of the stub. + (Analyze_Proper_Body): Relocate all pragmas that apply + to a subprogram body stub to the declarations of the proper + body. Analyze the aspect specifications of the stub when the + proper body is not present. + (Analyze_Protected_Body_Stub): Set the corresponding spec of the stub. + (Analyze_Task_Body_Stub): Set the corresponding spec of the stub. + (Move_Stub_Pragmas_To_Body): New routine. + * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing + for aspect Refined_Pre. + (Check_Aspect_At_Freeze_Point): Aspect + Refined_Pre does not need delayed processing at the freeze point. + * sem_prag.adb: Remove with and use clause for Snames. Add + an entry for Pragma_Refined_Pre in table Sig_Flags. + (Analyze_Pragma): Add processing for pragma Refined_Pre. + * sem_prag.ads: Add with and use clause for Snames. Add table + Pragma_On_Stub_OK. + * sinfo.adb (Corresponding_Spec_Of_Stub): New routine. + (Set_Corresponding_Spec_Of_Stub): New routine. + * sinfo.ads: Add new attribute Corresponding_Spec_Of_Stub + along with comment on usage and occurrences in nodes. + (Corresponding_Spec_Of_Stub): New routine along with pragma + Inline. + (Set_Corresponding_Spec_Of_Stub): New routine along + with pragma Inline. + * snames.ads-tmpl: Add new predefined name for Refined_Pre. Add + new Pragma_Id for Refined_Pre. + +2013-10-10 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Analyze_Package_Instantiation, + Analyze_Subprogram_Instantiation): Improve error message when + name in instantiation does not designate a generic unit of the + right kind. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * exp_ch3.adb (Expand_N_Variant_Part): Expand statically + predicated subtype which appears in Discrete_Choices list. + * exp_ch5.adb (Expand_N_Case_Statement): Expand statically + predicated subtype which appears in Discrete_Choices list of + case statement alternative. + * exp_util.ads, exp_util.adb (Expand_Static_Predicates_In_Choices): New + procedure. + * sem_case.adb: Minor reformatting (Analyze_Choices): Don't + expand out Discrete_Choices that are names of subtypes with + static predicates. This is now done in the analyzer so that the + -gnatct tree is properly formed for ASIS. + * sem_case.ads (Generic_Choices_Processing): Does not apply + to aggregates any more, so change doc accordingly, and remove + unneeded Get_Choices argument. + * sem_ch3.adb (Analyze_Variant_Part): Remove no + longer used Get_Choices argument in instantiation of + Generic_Choices_Processing. + * sem_ch4.adb (Analyze_Case_Expression): Remove no + longer used Get_Choices argument in instantiation of + Generic_Choices_Processing. + * sem_ch5.adb (Analyze_Case_Statement): Remove no + longer used Get_Choices argument in instantiation of + Generic_Choices_Processing. + * sinfo.ads: For N_Variant_Part, and N_Case_Statement_Alternative, + document that choices that are names of statically predicated + subtypes are expanded in the code generation tree passed to the + back end, but not in the ASIS tree generated for -gnatct. + +2013-10-10 Ed Schonberg <schonberg@adacore.com> + + * sem_ch7.adb: Revert previous change. + +2013-10-10 Gary Dismukes <dismukes@adacore.com> + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): In the case where + the Storage_Pool aspect is specified by an aspect clause and a + renaming is used to capture the evaluation of the pool name, + insert the renaming in front of the aspect's associated entity + declaration rather than in front of the corresponding attribute + definition (which hasn't been appended to the declaration + list yet). + +2013-10-10 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Is_Interface_Conformant): The controlling type + of the interface operation is obtained from the ultimate alias + of the interface primitive parameter, because that may be in + fact an implicit inherited operation whose signature involves + the type extension and not the desired interface. + +2013-10-10 Ed Schonberg <schonberg@adacore.com> + + * par-ch13.adb (Aspect_Specifications_Present): In Ada 2012, + recognize an aspect specification with a misspelled name if it + is followed by a a comma or semicolon. + +2013-10-10 Vadim Godunko <godunko@adacore.com> + + * s-atocou.adb, s-atocou.ads, s-atocou-x86.adb, s-atocou-builtin.adb: + Fix copyright notice. + +2013-10-10 Yannick Moy <moy@adacore.com> + + * lib-xref-spark_specific.adb (Enclosing_Subprogram_Or_Package): Get + enclosing subprogram for precondition/postcondition/contract cases. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Minor fix. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case + Address): Remove the Comes_From_Source test for the overlap + warning. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * sem_util.adb: Minor code reorganization (use Nkind_In). + * sem_warn.adb: Minor code reorganization (optimization in + Check_Unset_Reference). + * exp_ch9.adb, exp_ch4.adb, sinfo.ads: Minor reformatting. + +2013-10-10 Ed Schonberg <schonberg@adacore.com> + + * sem_ch7.adb (Install_Parent_Private_Declarations): When + instantiating a child unit, do not install private declaration of + a non-generic ancestor of the generic that is also an ancestor + of the current unit: its private part will be installed when + private part of ancestor itself is analyzed. + +2013-10-10 Thomas Quinot <quinot@adacore.com> + + * freeze.adb (Check_Component_Storage_Order): Retrieve component + aliased status from type entities directly instead of going back + to original component definition. + * sem_ch7.adb: Minor reformatting. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specifications): For Address + attribute, consider it to be set in source, because of aliasing + considerations. + (Analyze_Attribute_Definition_Clause): For the + purpose of warning on overlays, take into account the aspect case. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads, + a-cofove.ads: Minor reformatting. + +2013-10-10 Arnaud Charlet <charlet@adacore.com> + + * gnat_ugn.texi: Remove obsolete mention to -laddr2line. + +2013-10-10 Ed Schonberg <schonberg@adacore.com> + + * exp_ch4.adb (Expand_N_Case_Expression): Indicate that the + generated variable used as a target of the expression needs + no initialization. + +2013-10-10 Jose Ruiz <ruiz@adacore.com> + + * exp_util.adb (Corresponding_Runtime_Package): Remove the condition + related to No_Dynamic_Attachment which was wrong. Protected types + with interrupt handlers (when not using a restricted profile) + are always treated as protected types with entries, regardless + of the No_Dynamic_Attachment restriction. + * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Simplify the code + using the result of Corresponding_Runtime_Package. + (Install_Private_Data_Declarations): When having + static handlers and a non restricted profile, we use the + type Static_Interrupt_Protection always, so we removed an + extra wrong condition looking at the No_Dynamic_Attachment + restriction. Simplify the code using the result of + Corresponding_Runtime_Package. + (Make_Initialize_Protection): Simplify the code using + the result of Corresponding_Runtime_Package. + (Install_Private_Data_Declaration): The No_Dynamic_Attachment + restriction has nothing to do with static handlers. Remove the extra + erroneous condition that was creating the wrong data type. + +2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_util.adb (Is_Object_Reference): Attribute + 'Old produces an object reference. + * gnat_rm.texi: Define accessibility level of + X'Update(...) result. + +2013-10-10 Yannick Moy <moy@adacore.com> + + * gnat_rm.texi, a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, + a-cforse.ads, a-cofove.ads: Update comment and doc of formal containers + +2013-10-10 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specifications): For Pre/Post + conditions that apply to a subprogram body, preserve the placement + and order of the generated pragmas, which must appear before + other declarations in the body. + +2013-10-10 Bob Duff <duff@adacore.com> + + * gnat_ugn.texi: Add gnat2xml doc. + +2013-10-10 Doug Rupp <rupp@adacore.com> + + * s-vxwork-arm.ads: Fix interface to FP_CONTEXT. + +2013-10-10 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specification): An aspect Import + on a variable need not have a convention specified, as long as + the implicit convention of the object, obtained from its type, + is Ada or Ada-related. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * cstand.adb (Standard_Unsigned_64): New internal type. + * gnat_rm.texi: Update documentation on To_Address. + * sem_attr.adb (Analyze_Attribute, case To_Address): Fix + problem with out of range static values given as literals or + named numbers. + * stand.ads (Standard_Unsigned_64): New internal type. + * stand.adb: Minor reformatting. + +2013-10-10 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Analyze_Selected_Component, + Has_Mode_Conformant_Spec): If selected component may be an + indexing of a parameterless call to a protected function, and + expansion is disabled, this is a valid candidate interpretation. + +2013-10-10 Arnaud Charlet <charlet@adacore.com> + + * gnat_ugn.texi: Minor editing. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * gnatlink.adb: Minor reformatting. + +2013-10-10 Yannick Moy <moy@adacore.com> + + * debug.adb: Free flag d.E and change doc for flag d.K. + +2013-10-10 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Check_Precondition_Postcondition): If the + pragma comes from an aspect spec, and the subprogram is a + library unit, treat as a ppc in a declarative part in ASIS mode, + so that expression in aspect is properly analyzed. In this case + there is no later point at which the aspect specification would + be examined. + +2013-10-10 Bob Duff <duff@adacore.com> + + * opt.ads: Minor comment fix. + +2013-10-10 Vadim Godunko <godunko@adacore.com> + + * a-coinho-shared.ads, a-coinho-shared.adb: New file. + * s-atocou.ads: Add procedure to initialize counter. + * s-atocou.adb: Likewise. + * s-atocou-builtin.adb: Likewise. + * s-atocou-x86.adb: Likewise. + * gcc-interface/Makefile.in: Select special version of + Indefinite_Holders package on platforms where atomic built-ins + are supported. Update tools target pairs for PikeOS. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * sem_ch3.adb: Minor reformatting. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * sinput-c.adb (Load_File): Ensure Source_Align alignment. + * sinput-d.adb (Create_Debug_Source): Ensure Source_Align alignment. + * sinput-l.adb (Create_Instantiation_Source): Ensure Source_Align + alignment. + (Load_File): Ditto. + * sinput.ads, sinput.adb (Get_Source_File_Index): New optimized (single + line) version. + * types.ads (Source_Align): New definition. + (Source_Buffer): Document new alignment requirement. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb (Analyze_Pragma, case Linker_Section): Allow + this for types. + +2013-10-10 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Minor adjustment to doc for To_Address attribute. + +2013-10-10 Vadim Godunko <godunko@adacore.com> + + * s-stopoo.ads (Root_Storage_Pool): Add pragma + Preelaborable_Initialization. + +2013-09-25 Tom Tromey <tromey@redhat.com> + + * gcc-interface/Makefile.in (OUTPUT_OPTION): Define as "-o $@". + +2013-09-18 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/58264 + * gcc-interface/trans.c (Attribute_to_gnu): Define GNAT_PREFIX local + variable and use it throughout. + <Attr_Length>: Note whether the prefix is the dereference of a pointer + to unconstrained array and, in this case, capture the result for both + Attr_First and Attr_Last. + +2013-09-18 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Abstract_State>: New. + +2013-09-18 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (gigi): Remove dead code. + +2013-09-18 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Subprogram_Body_to_gnu): Pop the stack of + return variables for subprograms using the CICO mechanism. + +2013-09-13 Dominique Dhumieres <dominiq@lps.ens.fr> + + * gcc-interface/Makefile.in: Fix darwin Filter to match on $target_os, + not $target_cpu. + +2013-09-11 Thomas Schwinge <thomas@codesourcery.com> + Olivier Hainque <hainque@adacore.com> + + * gcc-interface/Makefile.in: Import target_cpu, target_vendor, + target_os and their host_ counterparts. Remove host_canonical and + target_cpu_default, unused. Remove local ad-hoc computations of + "host", "targ", "arch", "osys" and "manu". Replace uses of these by + uses of the now imported family, hence back to filters against + canonical values. Remove filters on e500 for target_cpu, expected to + be canonicalized into powerpc. Invert the logic filtering on 64bit + sparc for VxWorks. Simplify the filtering logic for bareboard tools + target pairs, now using straight elf/eabi filters on the target_os + part only. + +2013-09-10 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Replace_Anonymoous_Access_To_Protected_Subprogram): If + the return type is itself an access to function, recurse to emit + another anonymous type. + * gcc-interface/Make-lang.in: Update dependencies. + +2013-09-10 Robert Dewar <dewar@adacore.com> + + * err_vars.ads (Warning_Doc_Switch): Ignored in VMS mode. + * errout.adb (Warning_Doc_Switch): Ignored in VMS mode. + * errout.ads (Warning_Doc_Switch): Ignored in VMS mode. + * inline.ads (Warnings): New component in Pending_Body_Info. + * sem_ch12.adb (Pending_Body_Info): Save and restore warnings + at instantiation point. + * warnsw.adb (Save_Warnings): New function (Restore_Warnings): + New procedure Remove special handling of Warning_Doc_Switch, + cleaner to handle the VMS case in errout, than to introduce + undocumented oddities here. + * warnsw.ads (Warning_Record) : New type. + (Save_Warnings): New function. + (Restore_Warnings): New procedure. + +2013-09-10 Robert Dewar <dewar@adacore.com> + + * sinput.adb (Check_For_BOM): Avoid reading past end of file. + +2013-09-10 Robert Dewar <dewar@adacore.com> + + * errout.adb (Error_Msg_Ada_2012_Feature): New procedure. + * errout.ads (Error_Msg_Ada_2012_Feature): New procedure. + * inline.ads: Save/Restore Ada_Version_Pragma. + * opt.adb: Save/Restore Ada_Version_Pragma. + * opt.ads (Ada_Version_Pragma): New variable. + * par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch4.adb, par-ch5.adb, + par-ch6.adb, par-ch8.adb, par-prag.adb: Use Error_Msg_Ada_2012_Feature. + * prj.adb: Initialize Ada_Version_Pragma. + * sem_attr.adb: Use Error_Msg_Ada_2012_Feature. + * sem_ch12.adb, sem_ch8.adb: Save/restore Ada_Version_Pragma. + * sem_prag.adb (Analyze_Pragma, cases Ada_xx): Set Ada_Version_Pragma. + * switch-c.adb: Initialize Ada_Version_Pragma. + * sem_ch12.adb: Minor reformatting. + +2013-09-10 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Process_Subtype): Discard constraint on access + to class-wide type. Such constraints are not supported and are + considered a language pathology. + +2013-09-10 Robert Dewar <dewar@adacore.com> + + * gnatbind.adb: Correct starting date in --version string. + * gnatdll.adb: Use Check_Version_And_Help_G to implement --help + and --version. + * gnatkr.adb: Use Check_Version_And_Help_G to implement --help + and --version. + * gnatlink.adb: Correct starting date in --version string. + * gnatls.adb: Correct starting date in --version string. + * make.adb: Correct starting date in --version string. + +2013-09-10 Robert Dewar <dewar@adacore.com> + + * switch-c.adb: Minor reformatting. + * atree.ads (Original_Nodes): Add documentation on ASIS usage. + * sinfo.ads: Add section on ASIS mode (documentation only). + +2013-09-10 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb (Analyze_Pragma, case Warnings): Don't allow + REASON parameter in compiler units (bootstrap issues). + +2013-09-10 Robert Dewar <dewar@adacore.com> + + * gnat1drv.adb (Adjust_Global_Switches): Output warning if + -gnateE specified for a target that does not support it. + +2013-09-10 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Handle properly + a subprogram body without previous spec. + +2013-09-10 Gary Dismukes <dismukes@adacore.com> + + * sem_ch4.adb: Minor typo fixes. + +2013-09-10 Hristian Kirtchev <kirtchev@adacore.com> + + * aspects.adb (Aspects_On_Body_OK): New routine. + * aspects.ads: Modify type Aspect_Expression to include + the Optional_XXX variants. Update the contents of + table Aspect_Argument. Add table Aspect_On_Body_OK. + (Aspects_On_Body_OK): New routine. + * par-ch13.adb (Get_Aspect_Specifications): Account for optional + names and expressions when parsing an aspect. + * sem_ch6.adb: Add with and use clause for Aspects. + (Analyze_Subprogram_Body_Helper): Do not emit an error when + analyzing a body with aspects that can be applied simultaneously + to both spec and body. + * sem_ch13.adb (Analyze_Aspect_Specifications): Insert the + corresponding pragma of an aspect that applies to a subprogram + body in the declarative part. + (Make_Aitem_Pragma): Do not generate a pragma with an empty argument + list. + +2013-09-10 Robert Dewar <dewar@adacore.com> + + * switch-c.adb: Diagnose -gnatc given after -gnatRm. + * gnat_ugn.texi: Add documentation for -gnatRm. + * usage.adb: Minor reorganization (put style entries in proper + order) Document -gnatRm switch. + * sinfo.ads: Minor comment fix. + +2013-09-10 Sergey Rybin <rybin@adacore.com frybin> + + * tree_io.ads: Update ASIS_Version_Number. + +2013-09-10 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Access_Subprogram_Declaration): Check whether the + designated type can appear in a parameterless call. + * sem_ch4.adb (Analyze_Call): Do not insert an explicit dereference + in the case of an indirect call through an access function that + returns an array type. + (Analyze_One_Call): Handle properly legal parameterless calls + whose result is indexed, in constructs of the for F.all (I) + * sem_ch6.ads (May_Need_Actuals): Make public, for use on access + to subprogram types. + * sem_res.adb (Resolve_Call): If the call is indirect, there is + no entity to set on the name in the call. + +2013-09-10 Hristian Kirtchev <kirtchev@adacore.com> + + * aspects.adb: Add entries in the Has_Aspect_Specifications_Flag + table for package body and body stubs. + (Move_Or_Merge_Aspects): New routine. + (Remove_Aspects): New routine. + * aspects.ads (Move_Aspects): Update comment on usage. + (Move_Or_Merge_Aspects): New routine. + (Remove_Aspects): New routine. + * par-ch3.adb: Update the grammar of private_type_declaration, + private_extension_declaration, object_renaming_declaration, + and exception_renaming_declaration. + (P_Subprogram): Parse the + aspect specifications that apply to a body stub. + * par-ch6.adb: Update the grammar of subprogram_body_stub and + generic_instantiation. + * par-ch7.adb: Update the grammar of package_declaration, + package_specification, package_body, package_renaming_declaration, + package_body_stub. + (P_Package): Parse the aspect specifications + that apply to a body, a body stub and package renaming. + * par-ch9.adb: Update the grammar of entry_declaration, + protected_body, protected_body_stub, task_body, + and task_body_stub. + (P_Protected): Add local variable + Aspect_Sloc. Add local constant Dummy_Node. Parse the aspect + specifications that apply to a protected body and a protected + body stub. + (P_Task): Add local variable Aspect_Sloc. Add local + constant Dummy_Node. Parse the aspect specifications that apply + to a task body and a task body stub. + * par-ch12.adb: Update the grammar of + generic_renaming_declaration. + (P_Generic): Parse the aspect + specifications that apply to a generic renaming. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not emit + an error when analyzing aspects that apply to a body stub. Such + aspects are relocated to the proper body. + * sem_ch7.adb (Analyze_Package_Body_Helper): Analyze the aspect + specifications that apply to a body. + * sem_ch9.adb (Analyze_Protected_Body): Warn about user-defined + aspects not being supported on protected bodies. Remove the + aspect specifications. (Analyze_Single_Protected_Declaration): + Analyze the aspects that apply to a single protected declaration. + (Analyze_Task_Body): Warn about user-defined aspects not being + supported on task bodies. Remove the aspect specifications. + * sem_ch10.adb: Add with and use clause for Aspects. + (Analyze_Package_Body_Stub): Propagate the aspect specifications + from the stub to the proper body. + * sem_ch13.adb (Analyze_Aspect_Specifications): Insert the + corresponding pragma of an aspect that applies to a body in the + declarations of the body. + * sinfo.ads: Update the gramma of expression_function, + private_type_declaration, private_extension_declaration, + object_renaming_declaration, exception_renaming_declaration, + package_renaming_declaration, subprogram_renaming_declaration, + generic_renaming_declaration, entry_declaration, + subprogram_body_stub, package_body_stub, task_body_stub, + generic_subprogram_declaration. + +2013-09-10 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Pragma): Add processing + for aspect/pragma SPARK_Mode when it applies to a [library-level] + subprogram or package [body]. + +2013-09-10 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Document that -gnatc and -gnatR cannot be + given together. + * switch-c.adb (Scan_Front_End_Switches): Give error if both + -gnatR and -gnatc given. + +2013-09-10 Robert Dewar <dewar@adacore.com> + + * g-table.ads, g-table.adb (For_Each): New generic procedure + (Sort_Table): New generic procedure. + +2013-09-10 Thomas Quinot <quinot@adacore.com> + + * adaint.c (__gnat_is_executable_file_attr): Should be true + for an executable regular file only only (not for a directory + that has the executable permission). + +2013-09-10 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb: Further work on operator calls in ASIS. + +2013-09-10 Yannick Moy <moy@adacore.com> + + * sinfo.ads, sem_prag.ads, sem_ch13.adb: Minor correction and comment + update. + +2013-09-10 Thomas Quinot <quinot@adacore.com> + + * aspects.ads, sem_ch13.adb: Minor reformatting. + * adaint.c (__gnat_set_close_on_exec): Add comment documenting + that this routine is shared between OS_Lib and Sockets. + +2013-09-10 Robert Dewar <dewar@adacore.com> + + * exp_prag.adb (Expand_Pragma_Check): Ignore pragma if Is_Ignored set. + * sem_ch13.adb (Make_Aitem_Pragma): Set Is_Checked if needed. + * sem_prag.adb (Check_Kind): Moved from spec (Analyze_Pragma): + Make sure Is_Ignored/Is_Checked are set right (Analyze_Pragma, + case Check): Ditto (Check_Applicable_Policy): Handle + Statement_Assertion case Throughout, set and check the Is_Checked + flag as appropriate. + * sem_prag.ads (Check_Kind): Moved to body. + * sinfo.ads, sinfo.adb (Is_Checked): New flag. + +2013-09-10 Robert Dewar <dewar@adacore.com> + + * aspects.ads (Delay_Type): New type (Aspect_Delay): New table. + * einfo.adb (Has_Delayed_Rep_Aspects): New flag + (May_Inherit_Delayed_Rep_Aspects): New flag (Rep_Clause): Removed + (use Get_Attribute_Representation_Clause). + * einfo.ads (Has_Delayed_Rep_Aspects): New flag + (May_Inherit_Delayed_Rep_Aspects): New flag + * freeze.adb: Minor reformatting + * sem_ch13.adb (Analyze_Aspect_Speficifications): Redo + handling of delayed evaluation, including optimizing some cases + and avoiding delays. + (Analyze_Aspects_At_Freeze_Point): Now + handled inheriting delayed rep aspects for type derivation case. + (Inherit_Delayed_Rep_Aspects): New procedure + * sem_ch13.ads (Analyze_Aspects_At_Freeze_Point): Now handled + inheriting delayed rep aspects for type derivation case. + * sem_ch3.adb (Build_Derived_Type): Set + May_Inherit_Derived_Rep_Aspects if parent type flag + Has_Delayed_Rep_Aspects is set + +2013-09-10 Robert Dewar <dewar@adacore.com> + + * errout.adb (Finalize): Don't delete real errors with specific + warning control. + +2013-09-10 Ed Schonberg <schonberg@adacore.com> + + * exp_ch9.adb (Expand_N_Timed_Entry_Call, + Expand_N_Conditional_Entry_Call, Expand_N_Asynchronous_Select): + Handle properly a trigger that is a call to a primitive operation + of a type that implements a limited interface, if the type itself + is not limited. + +2013-09-10 Robert Dewar <dewar@adacore.com> + + * sem_ch3.adb, sinfo.ads, exp_ch9.adb, sem_prag.adb, sem_ch12.adb, + exp_ch4.adb, sprint.adb: Minor reformatting. + +2013-09-10 Yannick Moy <moy@adacore.com> + + * sinfo.ads: Document splitting of pre/post in N_Contract description. + +2013-09-10 Ed Schonberg <schonberg@adacore.com> + + * exp_ch4.adb (Expand_N_Op_Multiply): If the operation is of the + form X * 2 ** N and it has been marked Is_Power_Of_2_For_Shift, + add a mod operation if the result type is a binary modular type. + +2013-09-10 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context): Add local + variable Context. Remove local variable Subp_Id. Start the + context traversal from the current subprogram rather than the + current scope. Update the scope traversal and error reporting. + +2013-09-10 Ed Schonberg <schonberg@adacore.com> + + * exp_ch9.adb (Expand_N_Timed_Entry_Call): New procedure + Rewrite_Triggering_Statements, to encapsulate the statements that + follow the trigger of the entry call. This procedure is needed + when the trigger is a dispatching call, because the expansion + requires several copies of those statements. The procedure is + more efficient, and preserves non-local references when the + construct is within an instance. + +2013-09-10 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Analyze_Package_Instantiation): If the + instantiation is a compilation unit, analyze aspects before + analyzing the package declaration for the instance. + * sem_ch13.adb (Analyze_Aspect_Specifications): If the + corresponding node is a package instantiation, insert generated + pragmas at the head of visible declarations. + * sem_prag.adb (Analyze_Pragma, case Preelaborate): In an instance + do not ignore the pragma if it comes from an aspect specification + in the instance, and not from the generic unit. + * sprint.adb (Sprint_Node_Actual): For a package declaration that + is an instantiation, print aspects after declaration. + +2013-09-10 Robert Dewar <dewar@adacore.com> + + * einfo.adb, sem_prag.adb, rtsfind.ads: Minor reformatting. + +2013-09-10 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Get_SPARK_Mode_Id): Handle the + case where the pragma may appear without an argument. + (Analyze_Global_List): Add expanded_name to the list of constructs + that denote a single item. + (Collect_Global_List): Add expanded_name to the list of constructs + that denote a single item. + +2013-09-10 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch4.adb (Apply_Accessibility_Check): Add local constant + Pool_Id and local variables Fin_Call and Free_Stmt. Finalize + and deallocate a heap-allocated class-wide object after it + has been determined that it violates the accessibility rules. + * rtsfind.ads: Add new RTU_Id for System.Memory. Add new RE_Id + and entry in RE_Unit_Table for RE_Free. + +2013-09-01 Eric Botcazou <ebotcazou@adacore.com> + Iain Sandoe <iain@codesourcery.com> + + PR ada/58239 + * gcc-interface/Makefile.in (GCC_LINK_FLAGS): Add -static-libstdc++. + (GCC_LINK): Use CXX instead of CC. + * gcc-interface/Make-lang.in (CXX_LFLAGS): New. + (ADA_TOOLS_FLAGS_TO_PASS): Pass CXX, and CXX_LFLAGS for native. + +2013-08-13 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity): Do not bother about alias + sets of derived types in ASIS mode. + +2013-08-13 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity): Replace True with true. + (is_cplusplus_method): Likewise, and False with false. + (components_need_strict_alignment): Likewise. + * gcc-interface/misc.c (gnat_init_gcc_fp): Likewise. + * gcc-interface/trans.c (Loop_Statement_to_gnu): Likewise. + (Handled_Sequence_Of_Statements_to_gnu): Likewise. + (add_cleanup): Likewise. + (Sloc_to_locus1): Likewise. + (Sloc_to_locus): Likewise. + (set_expr_location_from_node): Likewise. + * gcc-interface/utils.c (potential_alignment_gap): Likewise. + +2013-08-13 Thomas Quinot <quinot@adacore.com> + + * gcc-interface/trans.c (set_end_locus_from_node): Clear column info + for the end_locus of a block if it does not come from an End_Label. + +2013-08-13 Thomas Quinot <quinot@adacore.com> + + * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): If + there is no End_Label, attach cleanup actions to the sloc of the HSS + node instead. + (Exception_Handler_to_gnu_zcx): Associate cleanup actions with the sloc + of the handler itself. + (add_cleanup): Clear column information in sloc of cleanup actions. + (Sloc_to_locus1): New static function. + (Sloc_to_locus): Call it. + (set_expr_location_from_node1): New static function. + (set_expr_location_from_node): Call it. + +2013-08-13 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Call_to_gnu): Deal with specific conditional + expressions for misaligned actual parameters. + +2013-08-13 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (can_equal_min_or_max_val_p): Be prepared for + values outside of the range of the type. + +2013-08-13 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils2.c (build_atomic_load): Do a mere view-conversion + to the original type before converting to the result type. + (build_atomic_store): First do a conversion to the original type before + view-converting to the effective type, but deal with a padded type + specially. + +2013-08-08 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Makefile.in (TOOLS_LIBS): Pick C object files from the + compiler build and use standard library variables. + (../../vxaddr2line$(exeext): Do not depend on targext.o and adjust. + (gnatmake-re): Do not depend on targext.o. + (gnatlink-re): Do not depend on link.o and targext.o. + (../../gnatmake$(exeext): Likewise. + (../../gnatlink$(exeext): Likewise. + +2013-07-21 Ondřej BÃÂlka <neleai@seznam.cz> + + * gcc-interface/gigi.h: Fix typos. + * gcc-interface/trans.c: Likewise. + * gcc-interface/utils2.c: Likewise. + * gnat_rm.texi: Likewise. + * gnat_ugn.texi: Likewise. + * raise-gcc.c: Likewise. + * sigtramp-ppcvxw.c: Likewise. + * sysdep.c: Likewise. + * terminals.c: Likewise. + +2013-07-20 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/57934 + * gcc-interface/ada.h (CAT): Fix typo. + +2013-07-08 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb (Get_Pragma): Handle the retrieval of delayed + pragmas stored in N_Contract nodes. + * einfo.ads (Get_Pragma): Update the comment on usage. + * sem_prag.adb (Check_Precondition_Postcondition): Retain a copy + of the pragma when it applies to a body that acts as a spec. The + copy is preanalyzed and chained on the contract of the body. + +2013-07-08 Robert Dewar <dewar@adacore.com> + + * rtsfind.adb: Minor comment fix. + +2013-07-08 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch4.adb (Check_Ghost_Subprogram_Call): Do not check the placement + of a Ghost function call when the enclosing context is being + preanalyzed. + +2013-07-08 Ed Schonberg <schonberg@adacore.com> + + * exp_ch6.adb (Expand_Inlined_Call, Process_Formals): If the + expression in a return statement is a numeric literal, qualify + it with the return type for proper resolution. + +2013-07-08 Robert Dewar <dewar@adacore.com> + + * sem.ads: Minor comment updates. + * s-restri.ads, exp_ch6.adb, lib-load.ads, exp_ch3.adb, sem_ch10.adb: + Minor reformatting. + +2013-07-08 Robert Dewar <dewar@adacore.com> + + * exp_attr.adb (Expand_N_Attribute_Reference): Add dummy entry + for Restriction_Set. + * gnat_rm.texi: Add missing menu entry for Attribute Ref Add + documentation for attribute Restriction_Set. + * lib-writ.adb (Write_With_Lines): Generate special W lines + for Restriction_Set. + * lib-writ.ads: Document special use of W lines for + Restriction_Set. + * lib.ads (Restriction_Set_Dependences): New table. + * par-ch4.adb (Is_Parameterless_Attribute): Add Loop_Entry to + list (Scan_Name_Extension_Apostrophe): Remove kludge test for + Loop_Entry (Scan_Name_Extension_Apostrophe): Handle No_Dependence + for Restricton_Set. + * restrict.adb (Check_SPARK_Restriction): Put in Alfa order + (OK_No_Dependence_Unit_Name): New function. + * restrict.ads (OK_No_Dependence_Unit_Name): New function. + * rtsfind.adb: Minor reformatting Minor code reorganization. + * sem_attr.adb (Analyze_Attribute): Add processing for + Restriction_Set. + * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): + Remove Check_Unit_Name and use new function + OK_No_Dependence_Unit_Name instead. + * sinfo.ads: Minor comment updates. + * snames.ads-tmpl: Add entry for Restriction_Set attribute. + +2013-07-08 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch4.adb (Apply_Accessibility_Check): Remove local constant + Pool_Id and local variable Free_Stmt. Do not deallocate the faulty + object as "free" is not available on all targets/profiles. + +2013-07-08 Robert Dewar <dewar@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specifications): Handle + Storage_Size aspect for task type in case discriminant is + referenced. + (Analyze_Attribute_Definition_Clause): Do not flag Storage_Size + attribute definition clause as obsolescent if from aspect. + +2013-07-08 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Add documentation for Img returning a function. + * par-prag.adb: Minor reformatting. + * restrict.adb: Minor reformatting and code reorganization. + +2013-07-08 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb: add guard to ASIS transform. + +2013-07-08 Ed Schonberg <schonberg@adacore.com> + + * exp_ch9.adb (Expand_N_Asynchronous_Select): If the trigger + of the asynchronous select is a dispatching call, transform the + abortable part into a procedure, to avoid duplication of local + loop variables that may appear within. + +2013-07-08 Vincent Celier <celier@adacore.com> + + * projects.texi: Update the documentation of suffixes in package + Naming. + +2013-07-08 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Conforming_Types): Anonymous_access_to_subprograsm + types are type conformant if the designated type of one is + protected and the other is not. Convention only matters when + checking subtype conformance. + +2013-07-08 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb (Make_Call_Into_Operator): In ASIS mode, propagate + back the fully resolved operands to the original function call + so that all semantic information remains available to ASIS. + +2013-07-08 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb: minor reformatting (remove obsolete comment). + * sem_ch9.adb: improve error message on illegal trigger. + +2013-07-08 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb: Minor reformatting. + +2013-07-08 Robert Dewar <dewar@adacore.com> + + * gnatcmd.adb: Minor reformatting. + +2013-07-08 Robert Dewar <dewar@adacore.com> + + * targparm.adb (Get_Target_Parameters): Recognize pragma + Partition_Elaboration_Policy. + +2013-07-08 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Minor update to mention partition elaboration policy. + +2013-07-08 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Comple_Object_Operation): Revert previous change. + (Analyze_Indexed_Component_Form): In ASIS mode, if node has been + transformed but not rewritten as a function call (as is the case + in a generic), analyze it as such. + +2013-07-08 Thomas Quinot <quinot@adacore.com> + + * gnat_rm.texi: Minor rewording: add missing word "operators" + in documentation for restriction No_Direct_Boolean_Operator. + +2013-07-08 Robert Dewar <dewar@adacore.com> + + * errout.adb (Set_Msg_Txt): No longer sets Is_Style_Msg, + Is_Warning_Msg, or Is_Unconditional_Msg (all are set elsewhere + now). + * errout.ads: Insertions ! and !! no longer have to be at the + end of the message, they can be anywhere in the message. + * erroutc.adb (Test_Style_Warning_Serious_Unconditional_Msg): + Replaces Test_Style_Warning_Serious_Msg + * erroutc.ads (Has_Double_Exclam): New flag New comments for + existing flags (Test_Style_Warning_Serious_Unconditional_Msg): + Replaces Test_Style_Warning_Serious_Msg + * errutil.adb (Test_Style_Warning_Serious_Unconditional_Msg): + Replaces Test_Style_Warning_Serious_Msg + +2013-07-08 Robert Dewar <dewar@adacore.com> + + * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): + Recognize SPARK_05 as synonym for SPARK in restrictions pragma. + * restrict.ads, restrict.adb (SPARK_Hides): Table moved to body, only + referenced there. + * scng.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch8.adb, + sem_res.adb, sem_util.adb: Use restriction SPARK_05 instead of SPARK. + * snames.ads-tmpl (Name_No_Obsolescent_Features): New entry. + +2013-07-08 Vincent Celier <celier@adacore.com> + + * gnatcmd.adb (Check_Files): Use a response file for gnatls + when possible. + +2013-07-08 Gary Dismukes <dismukes@adacore.com> + + * freeze.adb: Minor typo fixes. + +2013-07-08 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Document SPARK_05 (replaces SPARK) Document + obsolete recognition of SPARK Document all other obsolete synonyms + for old restrictions. + * restrict.adb (Check_SPARK_Restriction): SPARK_05 replaces + SPARK (Process_Restriction_Synonyms): Handle SPARK as synonym + for SPARK_05. + * restrict.ads: Restriction SPARK_05 replaces SPARK. + * s-rident.ads: Replace restriction SPARK by SPARK_05 Add SPARK + as synonym for SPARK_05. + * sem_prag.adb: Minor reformatting. + * snames.ads-tmpl: Add entries for Name_SPARK and Name_SPARK_05. + +2013-07-08 Robert Dewar <dewar@adacore.com> + + * sem_dim.adb: Minor error message change. + * freeze.adb (Freeze_Entity, array type case): Extend handling + of Implicit_Packing to handle multi-dimensional array case. + * gnat_rm.texi: Update doc on Implicit_Packing. + +2013-07-08 Robert Dewar <dewar@adacore.com> + + * exp_ch4.adb: Minor reformatting. + +2013-07-08 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Complete_Object_Operation): In ASIS mode, if + the parent node is a selected component and the analysis as a + call is successful, set the type of the selector in the parent + node for subsequent checks, because the rewriting of the node + does not take place during pre-analysis. + +2013-07-08 Robert Dewar <dewar@adacore.com> + + * sem_ch8.adb, exp_ch3.adb: Minor reformatting. + +2013-07-08 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch4.adb (Expand_N_Op_Eq): When comparing two + Bounded_Strings, use the predefined equality function of the + root Super_String type. + +2013-07-08 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch4.adb (Create_Alternative): Removed. + (Expand_N_If_Expression): Remove constant + In_Case_Or_If_Expression. Add local variable + Ptr_Typ. Inspect the "then" and "else" action lists + for transient controlled objects and generate code to + finalize them. (Is_Controlled_Function_Call): Removed. + (Process_Action): Update the comment on usage. Update the call + to Process_Transient_Object. There is no need to continue the + traversal of the object itself. + (Process_Actions): New routine. + (Process_Transient_Object): Moved to the top level of Exp_Ch4. Add + a new formal and update the related comment on usage. + * exp_util.adb (Within_Case_Or_If_Expression): Start the search + from the parent of the node. + +2013-07-08 Robert Dewar <dewar@adacore.com> + + * a-cusyqu.ads, a-cbprqu.ads, s-interr.ads, a-cuprqu.ads, + a-cbsyqu.ads: Minor reformatting (proper formatting of overriding). + +2013-07-08 Ed Schonberg <schonberg@adacore.com> + + * sem_ch8.adb (Attribute_Renaming): Treat 'Img as an attribute + that can be renamed as a function. + +2013-07-08 Thomas Quinot <quinot@adacore.com> + + * g-socket.ads: Document target dependency: FIONBIO may or may not + be inherited from listening socket by accepted socket. + +2013-07-08 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch4.adb (Apply_Accessibility_Check): Do not deallocate the object + on targets that can't deallocate. + +2013-07-08 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch3.adb (Freeze_Type): Generate a + subpools-related accessibility check only on profiles that + include the corresponding library unit. + +2013-07-08 Gary Dismukes <dismukes@adacore.com> + + * sem_ch8.adb: Minor typo fixes. + +2013-07-08 Javier Miranda <miranda@adacore.com> + + * sem_ch8.adb (Save_Scope_Stack): Adding documentation. + (Restore_Scope_Stack): Remove the elements of the list when the + visibility of each entity is restored. + +2013-07-08 Robert Dewar <dewar@adacore.com> + + * exp_ch9.adb, sem.ads, sem_util.adb: Minor reformatting. + +2013-07-08 Robert Dewar <dewar@adacore.com> + + * sem_ch8.adb, sem_ch8.ads: Minor reformatting. + +2013-07-08 Gary Dismukes <dismukes@adacore.com> + + * gnat_rm.texi: Minor reformatting and rewording for consistency. + +2013-07-08 Bob Duff <duff@adacore.com> + + * exp_ch3.adb (Build_Master): If Desig_Type is an incomplete + view coming from a limited-with'ed package, use the nonlimited + view in case it has tasks. + +2013-07-08 Javier Miranda <miranda@adacore.com> + + * sem_ch8.ad[sb] (Save_Scope_Stack): Modified to return the list + of entities which have been temporarily removed from immediate + visibility. + (Restore_Scope_Stack): Modified to receive an + additional parameter with the list of entities whose immediate + visibility must be restored. + * sem.adb (Do_Analyze): Use new version of + Save_Scope_Stack/Restore_Scope_Stack + * sem_ch12.adb (Inline_Instance_Body): Use new version of + Save_Scope_Stack and Restore_Scope_Stack + +2013-07-08 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Pragma): Remove + variable Unit_Prag. Remove the check on duplicate mode for the + configuration form of the pragma. + (Redefinition_Error): Removed. + +2013-07-08 Robert Dewar <dewar@adacore.com> + + * lib.ads, gnat_rm.texi, einfo.ads, sem_ch13.adb: Minor reformatting + and editing. + +2013-07-08 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Analyze_PPC_In_Decl_Part): In ASIS mode, + pre-analyze only the original expression attached to the source + aspect, not the relocated expression of the pragma, to prevent + malformed trees in ASIS mode. + * sem_ch13.adb (Analyze_Aspect_Specifications): Revert previous + patch: the expression in the aspect for pre/post must be relocated + to the pragma for proper analysis. + +2013-07-05 Hristian Kirtchev <kirtchev@adacore.com> + + * aspects.adb: Add an entry for SPARK_Mode in table Canonical_Aspect. + * aspects.ads: Add an entry for SPARK_Mode in tables Aspect_Id, + Aspect_Argument, Aspect_Names. + * atree.adb (Node32): New routine. + (Set_Node32): New routine. + * atree.ads (Node32): New routine. + (Set_Node32): New routine. + * einfo.adb: Node32 is now used as SPARK_Mode_Pragmas. + (Set_SPARK_Mode_Pragmas): New routine. + (SPARK_Mode_Pragmas): New routine. + (Write_Field32_Name): Add and entry for SPARK_Modes. + * einfo.ads: Add attribute SPARK_Mode_Pragmas along with usage + in various entities. + (Set_SPARK_Mode_Pragmas): New routine and + pragma Inline. + (SPARK_Mode_Pragmas): New routine and pragma Inline. + * gnat_rm.texi: Add sections explaining the syntax and semantics + of aspect/pragma SPARK_Mode. + * gnat_ugn.texi: Add pragma SPARK_Mode to the list of + configuration pragmas. + * lib.adb (Set_SPARK_Mode_Pragma): New routine. + (SPARK_Mode_Pragma): New routine. + * lib.ads: Alphabetize the comments on fields of record + Unit_Record. Add new field SPARK_Mode_Pragma along with + comment on its usage. Update the layout of record Unit_Record. + (Set_SPARK_Mode_Pragma): New routine and pragma Inline. + (SPARK_Mode_Pragma): New routine and pragma Inline. + * lib-load.adb (Create_Dummy_Package_Unit): Initialize + field SPARK_Mode_Pragma. + (Load_Main_Source): Initialize field SPARK_Mode_Pragma. + (Load_Unit): Initialize field SPARK_Mode_Pragma. + * lib-writ.adb (Add_Preprocessing_Dependency): Initialize field + SPARK_Mode_Pragma. + (Ensure_System_Dependency): Initialize field SPARK_Mode_Pragma. + * opt.ads: Alphabetize verification flags. Store the + compilation-wide SPARK mode in variable Global_SPARK_Mode. + * par-prag.adb: Pragma SPARK_Mode does not need special processing + by the parser. + * sem_ch13.adb (Analyze_Aspect_Specifications): Convert aspect + SPARK_Mode into a pragma. + (Check_Aspect_At_Freeze_Point): Aspect SPARK_Mode does not need + delayed processing. + * sem_prag.adb: Add an entry for SPARK_Mode in table Sig_Flags. + (Analyze_Pragma): Add processing for pragma SPARK_Mode. + (Get_SPARK_Mode_Id): New routine. + (Is_Elaboration_SPARK_Mode): New routine. + (Is_Private_SPARK_Mode): New routine. + * sem_prag.ads (Get_SPARK_Mode_Id): New routine. + (Is_Elaboration_SPARK_Mode): New routine. + (Is_Private_SPARK_Mode): New routine. + * sinfo.ads: Update the comment on the usage of field Next_Pragma. + * snames.ads-tmpl: Add new predefined name for SPARK_Mode and + Auto. Add new pragma Id for SPARK_Mode. + * types.ads: Add new type SPARK_Mode_Id. + +2013-07-05 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specifications): For + pre/postconditions copy the expression to the generated pragma, + to avoid sharing between the original aspect and the pragma node, + because in ASIS_Mode both will be independently analyzed. + +2013-07-05 Ed Schonberg <schonberg@adacore.com> + + * exp_ch3.adb (Build_Variant_Record_Equality): Add pairs of + formals for each discriminant of an unchecked union. + (Make_Eq_Case): Suprogram accepts a list of discriminants. Nested + variants are supported. New helper function Corresponding_Formal. + * exp_ch4.adb (Build_Equality_Call): For unchecked unions, + loop through discriminants to create list of inferred values, + and modify call to equality routine accordingly. + +2013-07-05 Claire Dross <dross@adacore.com> + + * a-cfdlli.ads, a-cfhama.ads, a-cfhase.ads, a-cforma.ads, + a-cforse.ads, a-cofove.ads: Add preconditions when needed + + container types are not tagged any more. + +2013-07-05 Thomas Quinot <quinot@adacore.com> + + * freeze.adb (Freeze_Entity): For an object with captured + initialization statements, do not remove Init_Stmts from the + enclosing list, as Freeze_All might rely on it to know where to + stop freezing. + +2013-07-05 Robert Dewar <dewar@adacore.com> + + * exp_ch4.adb, a-cfdlli.ads, a-ngelfu.ads, s-bignum.adb: Minor + reformatting. + +2013-07-05 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch4.adb (Expand_Composite_Equality): Use the full view + when the base type is private. + +2013-07-05 Claire Dross <dross@adacore.com> + + * a-cfdlli.ads: Add preconditions when needed. + +2013-07-05 Robert Dewar <dewar@adacore.com> + + * sem_ch8.adb: Minor reformatting. + +2013-07-05 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Access_Subprogram_Declaration): Use + Generate_Reference_To_Formals. + * lib-xref.adb (Generate_Reference_To_Formals): In the case of + access to subprograms, the formals are found in the designated + subprogram type. + +2013-07-05 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Document that comments can be lined up with + previous non-blank line. + * styleg.adb (Check_Comment): Allow indentation to match previous + non-blank line (Same_Column_As_Previous_Line): New function + +2013-07-05 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Update doc on missing pragmas. + * sem_ch12.adb: Minor comment additions. + +2013-07-05 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Pragma): Ensure that + Contract_Cases, Depends and Global are analyzed when they apply + to a subprogram compilation unit. The pragmas are all added + unconditionally to the construct's contract. This ensures that + proof tools can locate the pragmas. + +2013-07-05 Ed Schonberg <schonberg@adacore.com> + + * sem_ch8.adb (Freeze_Actual_Profile): An instance within + a generic unit does not freeze a generic private type of the + enclosing generic. This rule must also apply to a type derived + from a generic private type. + +2013-07-05 Arnaud Charlet <charlet@adacore.com> + + * gnat_rm.texi: Add missing documentation for pragmas. + +2013-07-05 Yannick Moy <moy@adacore.com> + + * sem_ch12.adb: Minor comment. + +2013-07-05 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Document that -gnatR and -gnatD cannot be used + together. + * switch-c.adb: Do not allow -gnatD and -gnatR to both be + specified. + +2013-07-05 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Add missing documentation for pragmas. + * sem_ch8.adb: Minor reformatting. + * gnat_ugn.texi: Document that -gnatR and -gnatD cannot be used + together. + +2013-07-05 Yannick Moy <moy@adacore.com> + + * sem_ch12.ads, sem_ch12.adb (Need_Subprogram_Instance_Body): Force + instance of subprogram body in SPARK mode, by testing Expander_Active + (set in SPARK mode) instead of Full_Expander_Active (not set in + SPARK mode). + * sem_ch8.adb: Minor reformatting. + +2013-07-05 Robert Dewar <dewar@adacore.com> + + * freeze.adb (Freeze_Entity): Remove test of obsolete flag + Propagate_Exceptions, and associated useless code that did + nothing. + * gnat_rm.texi: Add documentation for obsolete pragma + Propagate_Exceptions. + * opt.ads (Propagate_Exceptions): Obsolete flag removed. + * sem_prag.adb (Analyze_Pragma, case Propagate_Exceptions): + Remove useless and obsolete setting of Propagate_Exceptions flag. + +2013-07-05 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi, sem_prag.adb: Minor comment/text fixes. + +2013-07-05 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Add missing doc for various pragmas. + +2013-07-05 Robert Dewar <dewar@adacore.com> + + * par_sco.adb, sem_ch12.adb, par-ch5.adb: Minor reformatting. + * gnat_rm.texi: Document pragma Profile_Warnings. + * restrict.ads, sem_prag.adb: Minor reformatting. + +2013-07-05 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Check_Formal_Package_Instance): Handle properly + a formal subprogram that was defaulted in the formal package. + +2013-07-05 Thomas Quinot <quinot@adacore.com> + + * par_sco.adb (Traverse_Declarations_Or_Statements): Ignore + N_Implicit_Label_Declaration nodes. + +2013-07-05 Robert Dewar <dewar@adacore.com> + + * a-cfhase.adb, sem_prag.adb, a-cfhama.adb: Minor reformatting. + +2013-07-05 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Copy_Generic_Node): Check that name in function + call is a valid entity name before preserving entity in generic + copy. + +2013-07-05 Thomas Quinot <quinot@adacore.com> + + * par-ch5.adb: Minor reformatting. + +2013-07-05 Thomas Quinot <quinot@adacore.com> + + * sinfo.ads: Minor clarification to documentation for + N_Implicit_Label_Declaration. + +2013-07-05 Hristian Kirtchev <kirtchev@adacore.com> + + * a-except-2005.adb, a-except.adb: Add constant Rmsg_17. Correct the + values of all remaining constants. + (Rcheck_35): New routine along with pragmas Export and No_Return. + (Rcheck_PE_Aliased_Parameters): New routine along with pragmas + Export and No_Return. + (Rcheck_PE_All_Guards_Closed, + Rcheck_PE_Bad_Predicated_Generic_Type, + Rcheck_PE_Current_Task_In_Entry_Body, + Rcheck_PE_Duplicated_Entry_Address, Rcheck_PE_Explicit_Raise, + Rcheck_PE_Implicit_Return, Rcheck_PE_Misaligned_Address_Value, + Rcheck_PE_Missing_Return, Rcheck_PE_Overlaid_Controlled_Object, + Rcheck_PE_Potentially_Blocking_Operation + Rcheck_PE_Stubbed_Subprogram_Called, + Rcheck_PE_Unchecked_Union_Restriction, + Rcheck_PE_Non_Transportable_Actual, Rcheck_SE_Empty_Storage_Pool, + Rcheck_SE_Explicit_Raise, Rcheck_SE_Infinite_Recursion, + Rcheck_SE_Object_Too_Large, Rcheck_PE_Finalize_Raised_Exception): + Update the use of Rmsg_XX. + (Rcheck_17, Rcheck_18, Rcheck_19, + Rcheck_20, Rcheck_21, Rcheck_22, Rcheck_23, Rcheck_24, Rcheck_25, + Rcheck_26, Rcheck_27, Rcheck_28, Rcheck_29, Rcheck_30, Rcheck_31, + Rcheck_32, Rcheck_33, Rcheck_34, Rcheck_35): Update corresponding + renamed subprograms. + * checks.adb: Add with and use clause for Stringt. + (Apply_Parameter_Aliasing_Checks): Make constant Loc visible in + all subprograms of Apply_Parameter_Aliasing_Checks. Remove local + variable Cond. Initialize Check at the start of the routine. Use + routine Overlap_Check to construct a simple or a detailed run-time + check. Update the creation of the simple check. + (Overlap_Check): New routine. + * exp_ch11.adb (Get_RT_Exception_Name): Add a value for + PE_Aliased_Parameters. + * types.ads: Add new enumeration literal + PE_Aliased_Parameters. Update the corresponding integer values + of all RT_Exception_Code literals. + * types.h: Add new constant PE_Aliased_Parameters. Correct the + values of all remaining constants. + +2013-07-05 Yannick Moy <moy@adacore.com> + + * gnat_rm.texi: Minor renaming of SPARK into SPARK 2005 in + documentation. + +2013-07-05 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Analyze_PPC_In_Decl_Part): For a class-wide + condition, when replacing the name of a formal by a conversion + to the class-wide type, exempt selector names that appear in + parameter associations. + +2013-06-13 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/ada-tree.h (DECL_BY_DOUBLE_REF_P): Delete. + * gcc-interface/gigi.h (annotate_object): Adjust prototype. + (convert_vms_descriptor): Likewise. + * gcc-interface/decl.c (gnat_to_gnu_param): Do not pass fat pointer + types by double dereference. + (annotate_object): Remove BY_DOUBLE_REF parameter and adjust. + (gnat_to_gnu_entity): Adjust calls to annotate_object. + * gcc-interface/trans.c (Identifier_to_gnu): Do not deal with double + dereference. + (Call_to_gnu): Likewise. + (build_function_stub): Adjust call to convert_vms_descriptor. + (Subprogram_Body_to_gnu): Adjust call to annotate_object. + * gcc-interface/utils.c (convert_vms_descriptor): Remove BY_REF + parameter and adjust. + +2013-05-30 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Makefile.in (arm% androideabi): Robustify. + +2013-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c: (gnat_to_gnu_entity): In ASIS mode, do not + check that access types have a set size. + +2013-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (vinfo_t): New type and associated vector. + (components_to_record): Change return type to bool. + Lay out the variants in two passes. Do not force a specific layout for + the variant part if the variants do not have a representation clause. + Take the alignment of the variant part into account when laying out + variants without rep clause in a record type with a partial rep clause. + (create_rep_part): Do not set the position of the field. + +2013-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Last_Bit>: Add kludge + to avoid generating an overflow for -1. + +2013-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/gigi.h (create_type_decl): Adjust prototype. + (create_label_decl): Complete prototype. + (process_attributes): Declare. + * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust multiple calls to + create_type_decl throughout. + <E_Enumeration_Type>: Do the layout of the type manually and call + process_attributes on it. Reindent. + <E_Enumeration_Subtype>: Minor tweak. + <E_Floating_Point_Subtype>: Reindent. + <E_Array_Subtype>: Call process_attributes on the array type built + for a packed array type. + <E_Record_Type>: Call process_attributes on the type. + <E_Record_Subtype>: Likewise. + <E_Access_Type>: Likewise. + <E_Subprogram_Type>: Likewise. + Likewise for all types at the end of the processing. + * gcc-interface/utils.c (make_aligning_type): Adjust call to + create_type_decl. + (maybe_pad_type): Likewise. + (create_index_type): Likewise. + (create_type_decl): Remove attr_list parameter and associated code. + (create_var_decl_1): Call process_attributes on the variable. + (process_attributes): Take a pointer to the object and add in_place + and gnat_node parameters and adjust throughout. + <ATTR_MACHINE_ATTRIBUTE>: Pass ATTR_FLAG_TYPE_IN_PLACE only on demand + and set the input location. + Zap the attribute list at the end. + (create_subprog_decl): Call process_attributes on the subprogram. + (build_unc_object_type): Adjust call to create_type_decl. + (handle_vector_type_attribute): Remove dead code. + +2013-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/gigi.h (make_aligning_type): Adjust prototype. + * gcc-interface/utils.c (make_aligning_type): Take GNAT_NODE parameter + for the position of the associated TYPE_DECL. + * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust call to above. + * gcc-interface/utils2.c (maybe_wrap_malloc): Likewise. + +2013-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity): Do not prematurely + elaborate the full view of a type with a freeze node. + * gcc-interface/trans.c (process_type): Add explicit predicate. + +2013-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Always build the + UNC variable for aliased objects with unconstrained nominal subtype. + +2013-05-24 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/gigi.h (gnat_init_gcc_fp): Declare. + * gcc-interface/trans.c (gigi): Call it. + * gcc-interface/misc.c (gnat_init_gcc_fp): New function. + +2013-05-24 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/gigi.h (enum inline_status_t): New type. + (create_subprog_decl): Adjust prototype. + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Adjust + calls to create_subprog_decl. + (get_minimal_subprog_decl): Likewise. + * gcc-interface/trans.c (gigi): Likewise. + (build_raise_check): Likewise. + (establish_gnat_vms_condition_handler): Likewise. + (Compilation_Unit_to_gnu): Likewise. + (gnat_to_gnu): Likewise. + * gcc-interface/utils.c (create_subprog_decl): Change inline_flag + parameter to inline_status and implement for suppressed inlining. + +2013-05-24 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/ada-tree.h (LOOP_STMT_NO_UNROLL): New define. + (LOOP_STMT_UNROLL): Likewise. + (LOOP_STMT_NO_VECTOR): Likewise. + (LOOP_STMT_VECTOR): Likewise. + * gcc-interface/trans.c (struct loop_info_d): Replace label field + with stmt field. + (Pragma_to_gnu) <Pragma_Loop_Optimize>: New case. + (Loop_Statement_to_gnu): Save the loop statement onto the stack + instead of the label. + (gnat_to_gnu) <N_Exit_Statement>: Retrieve the loop label. + +2013-05-24 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c: Include diagnostic.h and opts.h. + (Pragma_to_gnu) <Pragma_Warnings>: New case. + +2013-05-24 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Constify + a handful of local variables. + For a derived untagged type that renames discriminants, change the type + of the stored discriminants to a subtype with the bounds of the type + of the visible discriminants. + (build_subst_list): Rename local variable. + +2013-05-16 Jason Merrill <jason@redhat.com> + + * gcc-interface/Make-lang.in (gnat1$(exeext)): Use link mutex. + +2013-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + PR ada/57188 + * gcc-interface/Makefile.in: Allow for amd64 solaris2. + +2013-05-07 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/56474 + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Use + int_const_binop to shift bounds by 1 when they are integer constants. + +2013-04-25 Arnaud Charlet <charlet@adacore.com> + + * gcc-interface/Makefile.in (ADA_EXCLUDE_SRCS): Exclude s-init.ad{s,b} + +2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> + + * checks.adb (Apply_Predicate_Check): Update the comment associated + with the call to Check_Expression_Against_Static_Predicate. + * sem_ch3.adb (Analyze_Object_Declaration): Update the comment + associated with the call to Check_Expression_Against_Static_Predicate. + * sem_util.adb (Check_Expression_Against_Static_Predicate): + Broaden the check from a static expression to an expression with + a known value at compile time. + * sem_util.ads (Check_Expression_Against_Static_Predicate): Update + comment on usage. + +2013-04-25 Thomas Quinot <quinot@adacore.com> + + * exp_attr.adb (Expand_N_Attribute_Reference, cases Position, + First_Bit, and Last_Bit): Fix incorrect test in implementation of + RM 2005 13.5.2(3/2). + +2013-04-25 Claire Dross <dross@adacore.com> + + * a-cfhase.adb, a-cfhase.ads, a-cforma.adb, a-cforma.ads, a-cfhama.adb, + a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cofove.adb, a-cofove.ads + (Query_Element): Removed. + (Update_Element): Removed. + (Insert): The version with no New_Item specified is removed. + (Iterate): Removed. + (Write): Removed. + (Read): Removed. + Every check of fields Busy and Lock has been removed. + +2013-04-25 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb (Analyze_Pragma, case Contract_Cases): Remove + call to S14_Pragma (Find_Related_Subprogram): Require proper + placement in subprogram body (Find_Related_Subprogram): Detect + duplicates for all cases (Find_Related_Subprogram): Handle case + of spec nested inside body. + +2013-04-25 Arnaud Charlet <charlet@adacore.com> + + * par-prag.adb: Fix typo. + +2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> + + * checks.adb (Apply_Predicate_Check): If the type has a static + predicate and the expression is also static, check whether the + expression satisfies the predicate. + * sem_ch3.adb (Analyze_Object_Declaration): If the type has a + static predicate and the expression is also static, see if the + expression satisfies the predicate. + * sem_util.adb: Alphabetize several routines. + (Check_Expression_Against_Static_Predicate): New routine. + * sem_util.ads (Check_Expression_Against_Static_Predicate): New routine. + +2013-04-25 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Document Reason argument for pragma Warnings. + * par-prag.adb: Handle Reason parameter for pragma Warnings. + * sem_prag.adb (Analyze_Pragma, case Warnings): Allow Reason argument. + * snames.ads-tmpl (Name_Reason): New name entry. + +2013-04-25 Yannick Moy <moy@adacore.com> + + * exp_spark.adb (Expand_SPARK_N_In): Remove procedure. + (Expand_SPARK): Remove special expansion for membership tests. + +2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): Update all places + that should use constant Base_Typ. When building an invariant + check, account for invariants coming from the base type. Prevent + the creation of a junk invariant check when the related object + is of an array type and it is initialized with an aggregate. + * exp_util.adb (Make_Invariant_Call): Typ is now a variable. Use + the base type to create an invariant call when the type of the + expression is a composite subtype. + +2013-04-25 Vasiliy Fofanov <fofanov@adacore.com> + + * a-cborse.adb: Fix minor typo. + +2013-04-25 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Different_Generic_Profile): A spec and body + match in an instance if a subtype declaration that renames a + generic actual with the same name appears between spec and body. + +2013-04-25 Robert Dewar <dewar@adacore.com> + + * sem_util.adb: Minor reformatting. + +2013-04-25 Ed Schonberg <schonberg@adacore.com> + + * exp_aggr.adb (Expand_N_Aggregate): Use special circuitry to + fold strings with a single others choice only if there are no + expressions in the aggregate. + +2013-04-25 Arnaud Charlet <charlet@adacore.com> + + * gnat_ugn.texi: Update doc on Ada 2012 default mode. + +2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch6.adb: Add with and use clause for Stringt. + (Expand_Contract_Cases): Moved from sem_ch6. Add formal parameters + Decls and Stmts along with comments on their usage. + * exp_ch6.ads (Expand_Contract_Cases): Moved from sem_ch6. + * sem_ch6.adb (Expand_Contract_Cases): Moved to exp_ch6. + (Process_Contract_Cases): Update the call to Expand_Contract_Cases. + +2013-04-25 Ed Schonberg <schonberg@adacore.com> + + * gnat_rm.texi: Minor editing, to clarify use of dimension aspects. + * sem_util.adb (Is_OK_Variable_For_Out_Formal): Reject an + aggregate for a packed type, which may be converted into an + unchecked conversion of an object. + +2013-04-25 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb: Minor code reorganization (correct misspelling + Restiction). + * sem_util.adb, aspects.ads, sem_ch6.adb: Minor reformatting. + * gnat_rm.texi: Document impl-defined aspects. + * sem_dim.adb, sem_dim.ads, gnat_ugn.texi, s-dimmks.ads: Minor + reformatting. + +2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb (Set_Abstract_States): The attribute now applies + to generic packages. + * sem_ch4.adb (Referenced): Moved to sem_util. + * sem_ch7.adb (Unit_Requires_Body): A [generic] package with + a non-null abstract state needs a body. + * sem_prag.adb (Analyze_Depends_In_Decl_Part): Update the calls + to Collect_Subprogram_Inputs_Outputs. + (Analyze_Global_Item): Verify the proper usage of an item with mode + In_Out or Output relative to the enclosing context. + (Analyze_Pragma): Abstract_State can now be applied to a generic + package. Do not reset the Analyzed flag for pragmas Depends and Global + as this is not needed. + (Appears_In): Moved to library level. + (Check_Mode_Restiction_In_Enclosing_Context): New routine. + (Collect_Subprogram_Inputs_Outputs): Moved to library level. Add + formal parameters Subp_Id, Subp_Inputs, Subp_Outputs and Global + seen along with comments on usage. + * sem_util.ads, sem_util.adb (Referenced): New routine. + +2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch6.adb (Expand_Contract_Cases): Generate + detailed error messages only when switch -gnateE is in effect. + +2013-04-25 Yannick Moy <moy@adacore.com> + + * sem_attr.adb (Analyze_Attribute): Do not issue + an error for a possibly misplaced 'Result or 'Old attribute when + analyzing the aspect. + +2013-04-25 Robert Dewar <dewar@adacore.com> + + * sem_ch12.adb, sem_util.adb, sem_ch4.adb: Minor reformatting. + +2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch4.adb (Analyze_Quantified_Expression): + Add local variable Loop_Id. Verify that the loop variable + is used within the condition of the quantified expression. + (Referenced): New routine. + +2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_case.adb (Analyze_Choices): Enhance the error message + given on a bad use of subtype predicate. + * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Enhance + the error message given on a bad use of subtype predicate. + * sem_util.adb (Bad_Predicated_Subtype_Use): Add formal parameter + Suggest_Static. Emit an extra error message advising how to + remedy the bad use of the predicate if the context warrants it. + * sem_util.ads (Bad_Predicated_Subtype_Use): Add formal parameter + Suggest_Static along with a comment explaining its usage. + +2013-04-25 Ed Schonberg <schonberg@adacore.com> + + * sem_disp.adb (Check_Dispatching_Operation): Further refinement + to checks for AI05-0125: the check for a hidden primitive that + may be overridden by the new declaration only applies if the + hidden operation is never declared. This is not the case if the + operation is declared in a parent unit. + +2013-04-25 Robert Dewar <dewar@adacore.com> + + * debug.adb: Remove d.X and d.Y entries and documentation. + * exp_ch4.adb (Expand_N_If_Expression): Remove special code used + if expression with actions not available (now always available). + (Expand_Short_Circuit_Operator): Same change. + * gnat1drv.adb (Adjust_Global_Switches) Remove setting + Use_Expression_With_Actions flag, since this is now obsolete. + * opt.ads (Use_Expression_Actions): Removed (always True now). + * sinfo.ads: Minor comment updates. + +2013-04-25 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Check_Generic_Actuals): If an actual is an array + subtype whose base type is currently private, install full view + when compiling instance body. + +2013-04-25 Ed Schonberg <schonberg@adacore.com> + + * sem_disp.adb (Check_Dispatching_Operation): Refine checks for + AI05-0125: the check for a hidden primitive that may be overridden + by the new declaration is only performed if the declaration comes + from source, and it must carry an explicit overriding indicator. + +2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb (Abstract_States): The attribute now applies to + generic packages. + * sem_ch3.adb (Analyze_Object_Declaration): Check whether an + object declaration introduces an illegal hidden state. + * sem_prag.adb (Analyze_Abstract_State): Check whether a state + declaration introduces an illegal hidden state. + * sem_util.ads, sem_util.adb (Check_No_Hidden_State): New routine. + +2013-04-25 Ed Schonberg <schonberg@adacore.com> + + * exp_ch6.adb (Is_Build_In_Place_Function_Call): The call may + be to a protected function, in which case the name in the call + is a selected component. + +2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch4.adb (Analyze_Quantified_Expression): + Warn on a suspicious use of quantifier "some" when "all" was meant. + (No_Else_Or_Trivial_True): New routine. + +2013-04-25 Robert Dewar <dewar@adacore.com> + + * einfo.ads, einfo.adb: Put back with/use for Namet. + (Get_Pragma): New name (wi new spec) for Find_Pragma. + * sem_ch6.adb: Change name Find_Pragma to Get_Pragma with + different interface. + +2013-04-25 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Is_Visible_Component): In an instance all + components are visible. + +2013-04-25 Matthew Heaney <heaney@adacore.com> + + * a-rbtgbo.adb, a-crbtgo.adb (Generic_Equal): do not test for + tampering when container empty. + * a-crbtgk.adb (Ceiling, Find, Floor): ditto. + (Generic_Conditional_Insert, Generic_Conditional_Insert_With_Hint): + ditto. + +2013-04-25 Ed Schonberg <schonberg@adacore.com> + + * par-ch12.adb: Move aspects from package specification to + generic package declaration. + * sem_ch12.adb: Analyze aspect specifications before building + and analyzing the generic copy, so that the generated pragmas + are properly taken into account. + * sem_ch13.adb: For compilation unit aspects that apply to a + generic package declaration, insert corresponding pragmas ahead + of visible declarations. + * sprint.adb: Display properly the aspects of a generic type + declaration. + +2013-04-25 Robert Dewar <dewar@adacore.com> + + * frontend.adb: Minor reformatting. + +2013-04-25 Ed Schonberg <schonberg@adacore.com> + + * einfo.ads: Extend documentation on use of Is_Private_Ancestor + for untagged types. + * sem_ch3.adb (Is_Visible_Component): Refine predicate for the + case of untagged types derived from private types, to reject + illegal selected components. + +2013-04-25 Gary Dismukes <dismukes@adacore.com> + + * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Test + for case of selecting from an unexpanded implicit dereference + and do not make a recursive call on such a prefix. + +2013-04-25 Doug Rupp <rupp@adacore.com> + + * targparm.adb (VXF{_Str}): New tag for vaxfloat. + (Get_Target_Parameters): Handle VXF tag. + * targparm.ads (VAX_Float_On_Target): New boolean. + * system-vms-ia64.ads (VAX_Float): New boolean. + * frontend.adb (Frontend): Handle VAX float boolean. + +2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.ads, einfo.adb: Remove with and use clauses for Namet. + (Find_Pragma): New routine. + * sem_util.ads, sem_util.adb (Find_Pragma): Moved to einfo. + +2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch13.adb (Add_Call): Do not capture the nature of the inherited + predicate. + (Add_Predicates): Save the static predicate for diagnostics and error + reporting purposes. + (Process_PPCs): Remove local variables Dynamic_Predicate_Present and + Static_Predicate_Present. Add local variable Static_Pred. Ensure that + the expression of a static predicate is static. + +2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb (Is_Ghost_Subprogram): Remove useless code. + +2013-04-25 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Minor addition of index entry. + +2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch6.adb (Check_Access_Invariants): Test whether an + invariant procedure is empty before generating a call to it. + (Has_Enabled_Predicate): New routine. + (Has_Null_Body): New routine. + (Process_PPCs): Test whether an invariant procedure is + empty before generating a call to it. Test whether predicates are + enabled for a particular type before generating a predicate call. + * sem_util.ads, sem_util.adb (Find_Pragma): New routine. + +2013-04-25 Robert Dewar <dewar@adacore.com> + + * sem_ch7.adb, einfo.adb, repinfo.adb, snames.adb-tmpl, + snames.ads-tmpl: Minor reformatting. + +2013-04-25 Thomas Quinot <quinot@adacore.com> + + * sem_ch7.adb: Minor reformatting. + +2013-04-25 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Minor fix to Loop_Variant doc (Loop_Entry allowed). + * s-tarest.adb: Minor reformatting. + +2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> + + * aspects.ads, aspects.adb: Remove aspect Ghost from all relevant + tables. + * einfo.adb: Remove with and use clause for Aspects. + (Is_Ghost_Function): Removed. + (Is_Ghost_Entity): New routine. + (Is_Ghost_Subprogram): New routine. + * einfo.ads: Remove synthesized attribute Is_Ghost_Function + along with its uses in entities. Add synthesized attributes + Is_Ghost_Entity and Is_Ghost_Subprogram along with uses in related + entities. + (Is_Ghost_Function): Removed. + (Is_Ghost_Entity): New routine. + (Is_Ghost_Subprogram): New routine. + * par-prag.adb: Remove pragma Ghost from the processing machinery. + * repinfo.adb (List_Mechanisms): Add a value for convention Ghost. + * sem_attr.adb (Analyze_Access_Attribute): Update the check + for ghost subprograms. + * sem_ch4.adb (Analyze_Call): Update the check for calls + to ghost subprograms. + (Check_Ghost_Function_Call): Removed. + (Check_Ghost_Subprogram_Call): New routine. + * sem_ch6.adb (Check_Convention): Rewritten. + (Check_Overriding_Indicator): Remove the check for overriding + ghost functions. + (Convention_Of): New routine. + * sem_ch12.adb (Preanalyze_Actuals): Update the check for ghost + generic actual subprograms. + * sem_mech.adb (Set_Mechanisms): Add an entry for convention Ghost. + * sem_prag.adb: Remove the value for pragma Ghost from + table Sig_Flags. + (Analyze_Pragma): Remove the processing for pragma Ghost. + (Process_Convention): Emit an error when a ghost + subprogram attempts to override. + (Set_Convention_From_Pragma): Emit an error when a ghost subprogram + attempts to override. + * sinfo.ads: Clarify the usage of field Label_Construct. + * snames.adb-tmpl (Get_Convention_Id): Add an entry for + predefined name Ghost. + (Get_Convention_Name): Add an entry for convention Ghost. + * snames.ads-tmpl: Move predefined name Ghost to the sublist + denoting conventions. Add convention id Ghost. Remove pragma + id Ghost. + +2013-04-25 Ed Schonberg <schonberg@adacore.com> + + * sem_ch7.adb (Swap_Private_Dependents): Do no recurse on child + units if within a generic hierarchy. + +2013-04-24 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch6.adb (Expand_Actuals): Add a predicate check on an + actual the related type has a predicate function. + * sem_ch3.adb (Constant_Redeclaration): Ensure that the related + type has an invariant procedure before building a call to it. + * sem_ch6.adb (Append_Enabled_Item): New routine. + (Check_Access_Invariants): Use routine + Append_Enabled_Item to chain onto the list of postconditions. + (Contains_Enabled_Pragmas): Removed. + (Expand_Contract_Cases): Use routine Append_Enabled_Item to chain onto + the list of postconditions. + (Invariants_Or_Predicates_Present): Removed. + (Process_PPCs): Partially reimplemented. + +2013-04-24 Sergey Rybin <rybin@adacore.com frybin> + + * tree_io.ads: Update ASIS_Version_Number because of changes + in the way how entities are chained in a scope by means of + Next_Entity link. + +2013-04-24 Ed Schonberg <schonberg@adacore.com> + + * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case + Storage_Size): If the clause is not from an aspect, insert + assignment to size variable of task type at the point of the + clause, not after the task definition, to prevent access before + elaboration in the back-end. + +2013-04-24 Yannick Moy <moy@adacore.com> + + * sem_prag.adb (Sig_Flags): Set correct value for Pragma_Assume. + +2013-04-24 Yannick Moy <moy@adacore.com> + + * gnat_rm.texi: Document 'Loop_Entry. + +2013-04-24 Jose Ruiz <ruiz@adacore.com> + + * s-tassta.adb, s-tarest.adb (Task_Wrapper): Start looking for + fall-back termination handlers from the parents, because they apply + only to dependent tasks. + * s-solita.adb (Task_Termination_Handler_T): Do not look for fall-back + termination handlers because the environment task has no parent, + and if it defines one of these handlers it does not apply to + itself because they apply only to dependent tasks. + +2013-04-24 Robert Dewar <dewar@adacore.com> + + * sem_type.adb, exp_attr.adb, exp_ch4.adb: Minor reformatting. + +2013-04-24 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Document 'Update attribute. + * sem_attr.adb (Analyze_Attribute, case Update): Remove call + to S14_Attribute (S14_Attribute): removed. + +2013-04-24 Robert Dewar <dewar@adacore.com> + + * interfac.ads: Add size clauses for IEEE_Float_32/64 + +2013-04-24 Claire Dross <dross@adacore.com> + + * gnat1drv.adb (Adjust_Global_Switches): Remove + special assignment of Use_Expression_With_Actions for SPARK_Mode. + +2013-04-24 Hristian Kirtchev <kirtchev@adacore.com> + + * checks.adb (Apply_Predicate_Check): Check for the presence + of the dynamic predicate aspect when trying to determine if the + predicate of a type is non-static. + * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Check + for the presence of the dynamic predicate aspect when trying to + determine if the predicate of a type is non- static. + * sem_ch13.adb (Add_Call): Capture the nature of the + inherited ancestor predicate. + (Build_Predicate_Functions): Update comments. Rewrite the checks on + static predicate application. Complain about the form of a non-static + expression only when the type is static. + +2013-04-24 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb: Add guard to tree traversal. + +2013-04-24 Vincent Celier <celier@adacore.com> + + * clean.adb (Clean): Remove local variable Root_Environment, + use Makeutl.Root_Environment instead. + * gnatcmd.adb: Remove local variable Root_Environment, use + Makeutl.Root_Environment instead. + * make.adb (Gnatmake): Remove local variable Root_Environment, + use Makeutl.Root_Environment instead. + * prj-makr.adb: Remove local variable Root_Environment, use + Makeutl.Root_Environment instead. + +2013-04-24 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_attr.adb (Expand_Loop_Entry_Attribute): Clarify the + extraction of the declarative part of the conditional block. Move + the processing of simple infinite loops to the start of the + expansion logic. Correct the check which determines whether the + proper scope is installed in visibility. + * sem_attr.adb (Analyze_Attribute): Add local variable Attr + to keep track of the attribute in case the enclosing indexed + component has to be rewritten. When searching for the enclosing + loop, start from the proper attribute reference in case of a + rewriting. Do not allow for 'Loop_Entry to appear in pragma + Assert. Replace loop variable J with Index. Set the type of the + proper attribute. + * sem_ch5.adb (Check_Unreachable_Code): Detect a specialized + block that services a loop statement subject to at least one + 'Loop_Entry attribute. + +2013-04-24 Ed Schonberg <schonberg@adacore.com> + + * sem_type.adb (Disambiguate): In Ada 2012 mode, when trying to + resolve a fixed point operation, use first subtype to determine + whether type and operator are declared in the same list of + declarations. + +2013-04-24 Hristian Kirtchev <kirtchev@adacore.com> + + * par-ch6.adb (P_Subprogram): Detect an illegal + placement of the aspect specification list in the context of + expression functions. + +2013-04-24 Ed Schonberg <schonberg@adacore.com> + + * exp_ch4.adb (Expand_N_Allocator): If the designated object + has tasks, and the pointer type is an itype that has no master + id, create a master renaming in the current context, which can + only be an init_proc. + +2013-04-24 Robert Dewar <dewar@adacore.com> + + * sem_ch3.adb, sem_ch7.adb: Minor reformatting. + * gnat_rm.texi: Document pragma Loop_Invariant. + * sem_attr.adb (Analyze_Attribute, case Loop_Entry): This is + no longer an S14_Attribute. + * sem_prag.adb (Analyze_Pragma, case Loop_Invariant): Combine + processing with Assert, allow message parameter, remove call + to S14_Pragma. + +2013-04-24 Thomas Quinot <quinot@adacore.com> + + * exp_ch4.adb: Minor reformatting. + +2013-04-24 Ed Schonberg <schonberg@adacore.com> + + * sem_ch7.adb (Swap_Private_Dependents): New internal routine + to Install_Private_Declarations, to make the installation of + private dependents recursive in the presence of child units. + * sem_ch3.adb (Build_Discriminated_Subtype): Initialize properly + the Private_Dependents of a private subtype. + +2013-04-24 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_attr.adb (Expand_Loop_Entry_Attribute): Update the + retrieval of the block declarations. + * par-ch4.adb (P_Name): Let the name parsing machinery create + a sequence of nested indexed components for attribute Loop_Entry. + * sem_attr.adb (Analyze_Attribute): Add local constant + Context. Reimplement part of the analysis of attribute Loop_Entry. + (Convert_To_Indexed_Component): Removed. + * sem_ch4.adb (Analyze_Indexed_Component_Form): Do not analyze + an indexed component after it has been rewritten into attribute + Loop_Entry. + +2013-04-24 Yannick Moy <moy@adacore.com> + + * snames.ads-tmpl: Minor change to list + Loop_(In)variant not in configuration pragma. + * sem_ch3.adb (Analyze_Declarations): Do not look at the original node + for analyzing the expressions in pre/postconditions. + +2013-04-24 Robert Dewar <dewar@adacore.com> + + * gnatcmd.adb, xref_lib.adb, gnatls.adb, sem_ch13.adb: Minor + reformatting. + +2013-04-24 Yannick Moy <moy@adacore.com> + + * sem_ch6.adb (Analyze_Generic_Subprogram_Body, + Analyze_Subprogram_Body_Helper): Reset contract node to Empty + before setting entity to E_Subprogram_Body. + * sem_ch8.adb (Analyze_Subprogram_Renaming): Reset contract node to + Empty before setting entity to E_Subprogram_Body. + +2013-04-24 Vincent Celier <celier@adacore.com> + + * gnat_ugn.texi: Document new gnatls switch -aPdir. + * gnatcmd.adb: Pass switch -aP<dir> to gnatls. + * gnatls.adb (Scan_Ls_Arg): Process new switch -aP<dir>. Issue + a warning for unknown switches. + (Usage): Add line for new switch -aPdir. + +2013-04-24 Ed Schonberg <schonberg@adacore.com> + + * sem_util.adb, sem_util.ads (Is_Limited_Class_Wide_Type): Return true + if the type comes from a limited view, so that task attributes can be + constructed. + +2013-04-24 Yannick Moy <moy@adacore.com> + + * checks.adb (Apply_Float_Conversion_Check): Do not apply checks if + full expansion is not enabled. + +2013-04-24 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Create_Extra_Formals): In Ada 2012, create extra + formals if the type does not yet have a completion, and thus + has no underlying view. + +2013-04-24 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specifications): Treat an aspect + specification for Address as a reference, to suppress warnings + on entities that may be read by an external device. + +2013-04-24 Sergey Rybin <rybin@adacore.com frybin> + + * gnat_ugn.texi: Add description of '--help' and '--version' + options for ASIS tools: gnatelim, gnatmetric, gnatstub, gnatpp. + +2013-04-24 Arnaud Charlet <charlet@adacore.com> + + * gnat_rm.texi: Minor syntax fix. + +2013-04-24 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_attr.adb (Expand_Loop_Entry_Attribute): Add extra comments on + what and why is being analyzed. Remove the decoration of renamings as + this simply falls out of the general analysis mechanism. + +2013-04-24 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_res.adb (Explain_Redundancy): New routine. + (Resolve_Equality_Op): Place the error concerning a redundant + comparison to True at the "=". Try to explain the nature of the + redundant True. + +2013-04-24 Javier Miranda <miranda@adacore.com> + + + * checks.adb, exp_ch6.adb (Install_Null_Excluding_Check): No + check in interface thunks since it is performed at the caller + side. + (Expand_Simple_Function_Return): No accessibility check + needed in thunks since the check is done by the target routine. + +2013-04-24 Vincent Celier <celier@adacore.com> + + * xref_lib.adb (Add_Entity): Use the canonical file names + so that source file names with capital letters are found on + platforms where file names are case insensitive. + +2013-04-24 Hristian Kirtchev <kirtchev@adacore.com> + + * par-ch4.adb (P_Name): Continue to parse the name extension when the + construct is attribute Loop_Entry. Do not convert the attribute + reference into an indexed component when there is at least one + expression / range following 'Loop_Entry. + +2013-04-24 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch6.adb (Contains_Enabled_Pragmas): New routine. + (Process_PPCs): Generate procedure _Postconditions + only when the context has invariants or predicates or enabled + aspects/pragmas. + +2013-04-24 Thomas Quinot <quinot@adacore.com> + + * g-socket.adb (Host_Entry): Introduce intermediate copy of + memory location pointed to by Hostent_H_Addr, as it might not + have sufficient alignment. + +2013-04-24 Yannick Moy <moy@adacore.com> + + * repinfo.adb (List_Rep_Info): Set the value of Unit_Casing before + calling subprograms which may read it. + +2013-04-24 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb: Remove Loop_Entry_Attributes from the usage of + nodes. Flag 260 is now used. + (Has_Loop_Entry_Attributes): New routine. + (Loop_Entry_Attributes): Removed. + (Set_Has_Loop_Entry_Attributes): New routine. + (Set_Loop_Entry_Attributes): Removed. + (Write_Entity_Flags): Write out Flag 260. + (Write_Field10_Name): Remove the output for Loop_Entry_Attributes. + * einfo.ads: Remove attribute Loop_Entry_Attributes, + its related comment and uses in nodes. Add new attribute + Has_Loop_Entry_Attributes, related comment and uses in loop nodes. + (Has_Loop_Entry_Attributes): New routine and pragma Inline. + (Loop_Entry_Attributes): Removed along with pragma Inline. + (Set_Has_Loop_Entry_Attributes): New routine and pragma Inline. + (Set_Loop_Entry_Attributes): Removed along with pragma Inline. + * exp_attr.adb (Expand_Loop_Entry_Attribute): New routine. + (Expand_N_Attribute_Reference): Expand attribute 'Loop_Entry. + * exp_ch5.adb: Remove with and use clause for Elists. + (Expand_Loop_Entry_Attributes): Removed. + (Expand_N_Loop_Statement): Add local variable Stmt. Rename local + constant Isc to Scheme. When a loop is subject to attribute + 'Loop_Entry, retrieve the nested loop from the conditional + block. Move the processing of controlled object at the end of + loop expansion. + * sem_attr.adb (Analyze_Attribute): Do not chain attribute + 'Loop_Entry to its related loop. + * sem_ch5.adb (Analyze_Loop_Statement): Add local variable + Stmt. When the iteration scheme mentions attribute 'Loop_Entry, + the entire loop is rewritten into a block. Retrieve the nested + loop in such cases to complete the analysis. + * sem_util.ads, sem_util.adb (Find_Loop_In_Conditional_Block): New + routine. + (Subject_To_Loop_Entry_Attributes): New routine. + +2013-04-24 Robert Dewar <dewar@adacore.com> + + * exp_prag.adb (Expand_Loop_Variant): Generate pragma Check + (Loop_Variant, xxx) rather than Assert (xxx). + * gnat_rm.texi: Document pragma Loop_Variant. + * sem_prag.adb (Analyze_Pragma, case Loop_Variant): Remove call + to S14_Pragma. + +2013-04-24 Yannick Moy <moy@adacore.com> + + * adabkend.adb, ali-util.adb, ali.adb, debug.adb, + errout.adb, errout.ads, erroutc.adb, exp_ch3.adb, exp_ch4.adb, + exp_ch6.adb, exp_ch7.adb, exp_dbug.adb, exp_util.adb, + expander.adb, freeze.adb, gnat1drv.adb, lib-writ.adb, + lib-writ.ads, lib-xref.adb, lib-xref.ads, opt.adb, opt.ads, + restrict.adb, sem_aggr.adb, sem_attr.adb, sem_ch3.adb, + sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_eval.adb, sem_prag.adb, + sem_res.adb, sem_util.adb: Everything with name + 'Alfa' renamed in 'SPARK'. Update comments. + Renaming of units with name 'Alfa', renamed with 'SPARK' instead. + * exp_alfa.adb: renamed exp_spark.adb. + * exp_alfa.ads: renamed exp_spark.ads. + * get_alfa.adb: renamed get_spark_xrefs.adb. + * get_alfa.ads: renamed get_spark_xrefs.ads. + * lib-xref-alfa.adb: renamed lib-xref-spark_specific.adb. + * put_alfa.adb: renamed put_spark_xrefs.adb. + * put_alfa.ads: renamed put_spark_xrefs.ads. + * alfa.adb: renamed spark_xrefs.adb. + * alfa.ads: renamed spark_xrefs.ads. + * alfa_test.adb: renamed spark_xrefs_test.adb. + * gcc-interface/Make-lang.in: Update dependencies. + +2013-04-24 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Document pragma Assume. + * sem_prag.adb (Analyze_Pragma, case Assume): Now processed as + part of Assert, and no longer requires -gnatd.F + +2013-04-24 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Document pragma Assert_And_Cut. + * sem_prag.adb (Analyze_Pragma, case Assert_And_Cut): Remove + S14_Pragma call. + +2013-04-24 Ed Schonberg <schonberg@adacore.com> + + * sem_aux.adb: Add guard in Available_View. + +2013-04-24 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Depends_In_Decl_Part): Use + Find_Related_Subprogram to find the associated subprogram. + (Analyze_Global_In_Decl_List): Use Find_Related_Subprogram + to find the associated subprogram. + (Analyze_Pragma): Use Find_Related_Subprogram to find the associated + subprogram. + +2013-04-24 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch6.adb: Remove with and use clause for Sem_Prag. + (Freeze_Subprogram): Call Analyze_Subprogram_Contract to analyze + the contract of a subprogram. + * sem_ch3.adb: Remove with and use clause for Sem_Prag. + (Analyze_Declarations): Call Analyze_Subprogram_Contract to + analyze the contract of a subprogram. + * sem_ch6.adb (Analyze_Subprogram_Contract): New routine. + (Check_Subprogram_Contract): Removed. + * sem_ch6.ads (Analyze_Subprogram_Contract): New routine. + (Check_Subprogram_Contract): Removed. + (Expand_Contract_Cases): Add a guard against malformed contract cases. + * sem_ch13.adb (Analyze_Aspect_Specifications): Call + Decorate_Delayed_Aspect_And_Pragma to decorate aspects + Contract_Cases, Depends and Global. Reimplement the analysis of + aspect Contract_Cases. + (Decorate_Delayed_Aspect_And_Pragma): New routine. + * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): New routine. + (Analyze_CTC_In_Decl_Part): Removed. + (Analyze_Pragma): Reimplement the analysis of pragma Contract_Cases. + (Analyze_Test_Case_In_Decl_Part): New routine. + (Find_Related_Subprogram): New routine. + (Requires_Profile_Installation): Add new formal Prag. Update + the logic to take into account the origin of the pragma. + * sem_prag.ads (Analyze_Contract_Cases_In_Decl_Part): New routine. + (Analyze_CTC_In_Decl_Part): Removed. + (Analyze_Test_Case_In_Decl_Part): New routine. + +2013-04-24 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb (Process_Convention): Move Stdcall tests to + Set_Convention_From_Pragma so that they are applied to each + entry of a homonym set. + (Process_Convention): Don't try to set convention if already set. + +2013-04-24 Robert Dewar <dewar@adacore.com> + + * gnatbind.adb: Minor reformatting. + +2013-04-24 Vincent Celier <celier@adacore.com> + + * clean.adb (Gnatclean): Add the default project search + directories in the project search path after scanning the + switches on the command line. + (Initialize): Do not put the default project search directories in the + project search path. + * gnatcmd.adb (GNATcmd): Add the default project search + directories in the project search path after scanning the switches + on the command line. + * make.adb (Initialize): Add the default project search + directories in the project search path after scanning the switches + on the command line. + +2013-04-24 Yannick Moy <moy@adacore.com> + + * restrict.ads (Restriction_Warnings): Initialize with all False value. + +2013-04-24 Robert Dewar <dewar@adacore.com> + + * checks.ads, checks.adb (Predicate_Checks_Suppressed): New function. + * exp_util.ads, exp_util.adb (Make_Predicate_Check): Check setting of + Predicate_Check. + * snames.ads-tmpl (Name_Predicate_Check): New check name. + * types.ads (Predicate_Check): New definition. + * gnat_rm.texi: Add documentation for Predicate_Check. + +2013-04-24 Ed Schonberg <schonberg@adacore.com> + + * exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): If this + is a renaming of predefined equality for an untagged record, + add generated body to the freeze actions for the subprogram, to + prevent freezing issues when the record has incomplete components. + * exp_ch4.adb (Expand_Composite_Equality): If the type is a type + without completion, return a predefined comparison instead of + just False. This may happen when building the expression for + record equality, when some component has a type whose completion + has not been seen yet. The operation will be analyzed an expanded + after the type has been frozen, at which point all component + types will have been completed, or an error reported. + +2013-04-24 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specifications): Do not delay + analysis of a Convention aspect. + +2013-04-24 Eric Botcazou <ebotcazou@adacore.com> + + * fe.h (Machine_Overflows_On_Target): New macro and declaration. + (Signed_Zeros_On_Target): Likewise. + +2013-04-24 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch6.adb: Add with and use clause for Sem_Prag. + (Freeze_Subprogram): Analyze all delayed aspects for a null + procedure so that they are available when analyzing the + internally-generated _Postconditions routine. + * exp_ch13.adb: Remove with and use clause for Sem_Prag. + (Expand_N_Freeze_Entity): Move the code that analyzes delayed + aspects of null procedures to exp_ch6.Freeze_Subprogram. + * sem_prag.adb (Analyze_Abstract_State): Update the check on + volatile requirements. + +2013-04-24 Bob Duff <duff@adacore.com> + + * ali-util.ads (Source_Record): New component Stamp_File + to record from whence the Stamp came. + * ali-util.adb (Set_Source_Table): Set Stamp_File component. + * bcheck.adb (Check_Consistency): Print additional information in + Verbose_Mode. + * gnatbind.adb (Gnatbind): Print additional information in + Verbose_Mode. + +2013-04-24 Robert Dewar <dewar@adacore.com> + + * exp_ch13.adb, sem_prag.adb: Update comments. + * sem_ch3.adb, exp_ch9.adb, g-socket.adb, sem_ch13.adb: Minor + reformatting. + +2013-04-24 Doug Rupp <rupp@adacore.com> + + * vms_data.ads (/{NO}INHIBIT-EXEC): Document new default behavior. + +2013-04-24 Yannick Moy <moy@adacore.com> + + * sinfo.ads: Minor correction of typo. + +2013-04-24 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb: Create packed array only when expander is + active. + +2013-04-24 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Depends_In_Decl_Part): Install the formals only + when the context warrants it. + (Analyze_Global_In_Decl_List): Install the formals only when + the context warrants it. + (Requires_Profile_Installation): New routine. + +2013-04-24 Ed Schonberg <schonberg@adacore.com> + + * exp_ch6.adb (Expand_N_Simple_Return_Statement): When the return + type is a discriminated private type that does not require use + of the secondary stack, a constrained subtype of the underlying + type is created to convey the proper object size to the backend. + If the return type is originally a private type, the return + expression is wrapped in an unchecked_conversion. If the return + expression is used subsequently in a call to the postcondition + function, this conversion must be undone to prevent a spurious + error on the analysis of that call. + +2013-04-23 Kai Tietz <ktietz@redhat.com> + + PR target/55445 + * raise-gcc.c (__SEH__): Additional check that SjLj isn't active. + +2013-04-23 Eric Botcazou <ebotcazou@adacore.com> + Pascal Obry <obry@adacore.com> + + * gcc-interface/Makefile.in (targ): Fix target name check. + (../../gnatmake$(exeext)): Add '+' for LTO. + (../../gnatlink$(exeext)): Likewise. + +2013-04-23 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch9.adb (Build_PPC_Wrapper): Correct the traversal of + pre- and post-conditions. + (Expand_N_Task_Type_Declaration): + Use the correct attribute to check for pre- and post-conditions. + * exp_ch13.adb (Expand_N_Freeze_Entity): Correct the traversal of + pre- and post-conditions. Analyze delayed classification items. + * freeze.adb (Freeze_Entity): Use the correct attribute to + check for pre- and post- conditions. + * sem_ch3.adb (Analyze_Declarations): Correct the traversal + of pre- and post-conditions as well as contract- and + test-cases. Analyze delayed pragmas Depends and Global. + * sem_ch6.adb (Check_Subprogram_Contract): Use the correct + attribute to check for pre- and post-conditions, as well as + contract-cases and test-cases. (List_Inherited_Pre_Post_Aspects): + Correct the traversal of pre- and post- conditions. + (Process_Contract_Cases): Update the comment on usage. Correct + the traversal of contract-cases. + (Process_Post_Conditions): Update the comment on usage. Correct the + traversal of pre- and post-conditions. + (Process_PPCs): Correct the traversal of pre- and post-conditions. + (Spec_Postconditions): Use the correct + attribute to check for pre- and post- conditions, as well as + contract-cases and test-cases. + * sem_ch13.adb (Analyze_Aspect_Specifications): Reimplement the + actions related to aspects Depends and Global. Code refactoring + for pre- and post-conditions. + (Insert_Delayed_Pragma): New routine. + * sem_prag.adb (Add_Item): New routine. + (Analyze_Depends_In_Decl_Part): New routine. + (Analyze_Global_In_Decl_Part): New routine. + (Analyze_Pragma): Reimplement the actions related to aspects Depends and + Global. Verify that a body acts as a spec for pragma Contract_Cases. + (Chain_PPC): Use Add_Contract_Item to chain a pragma. + (Chain_CTC): Correct the traversal of contract- + and test-cases. Use Add_Contract_Item to chain a pragma. + (Chain_Contract_Cases): Correct the traversal of contract- + and test-cases. Use Add_Contract_Item to chain a pragma. + (Check_Precondition_Postcondition): Update the comment on usage. + (Check_Test_Case): Update the comment on usage. + * sem_prag.ads (Analyze_Depends_In_Decl_Part): New routine. + (Analyze_Global_In_Decl_Part): New routine. + * sem_util.ads, sem_util.adb (Add_Contract_Item): New routine. + * sinfo.adb (Classifications): New routine. + (Contract_Test_Cases): New routine. + (Pre_Post_Conditions): New routine. + (Set_Classifications): New routine. + (Set_Contract_Test_Cases): New routine. + (Set_Pre_Post_Conditions): New routine. + (Set_Spec_CTC_List): Removed. + (Set_Spec_PPC_List): Removed. + (Spec_CTC_List): Removed. + (Spec_PPC_List): Removed. + * sinfo.ads: Update the structure of N_Contruct along with all + related comments. + (Classifications): New routine and pragma Inline. + (Contract_Test_Cases): New routine and pragma Inline. + (Pre_Post_Conditions): New routine and pragma Inline. + (Set_Classifications): New routine and pragma Inline. + (Set_Contract_Test_Cases): New routine and pragma Inline. + (Set_Pre_Post_Conditions): New routine and pragma Inline. + (Set_Spec_CTC_List): Removed. + (Set_Spec_PPC_List): Removed. + (Spec_CTC_List): Removed. + (Spec_PPC_List): Removed. + +2013-04-23 Doug Rupp <rupp@adacore.com> + + * init.c (GNAT$STOP) [VMS]: Bump sigargs[0] count by 2 + to account for LIB$STOP not having the chance to add the PC and + PSL fields. + +2013-04-23 Robert Dewar <dewar@adacore.com> + + * sem_ch13.adb: Minor code reorganization (remove some redundant + assignments). + * sem_ch3.adb, sem_prag.adb: Minor reformatting. + +2013-04-23 Yannick Moy <moy@adacore.com> + + * einfo.ads: Minor typo fix. + * sem_ch13.adb (Build_Predicate_Functions): Reject cases where + Static_Predicate is applied to a non-scalar or non-static type. + * sem_prag.adb: Minor typo fix. + +2013-04-23 Doug Rupp <rupp@adacore.com> + + * init.c (GNAT$STOP) [VMS]: New function. + +2013-04-23 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb: Add exp_pakd to context. + (Constrain_Component_Type): If the component of the parent is + packed, and the record subtype being built is already frozen, + as is the case for an itype, the component type itself will not + be frozen, and the packed array type for it must be constructed + explicitly. + +2013-04-23 Thomas Quinot <quinot@adacore.com> + + * g-socket.adb, g-socket.ads (Set_Close_On_Exec): New subprogram. + +2013-04-23 Yannick Moy <moy@adacore.com> + + * err_vars.ads (Error_Msg_Qual_Level): Set variable to zero + at declaration. + * opt.ads (Multiple_Unit_Index): Set variable to zero at declaration. + * sem_util.adb (NCT_Table_Entries): Set variable to zero at declaration. + * set_targ.ads (Num_FPT_Modes): Set variable to zero at declaration. + * stylesw.adb (Save_Style_Check_Options): Protect testing the + value of Style_Check_Comments_Spacing by a previous test that + Style_Check_Comments is True. + +2013-04-23 Thomas Quinot <quinot@adacore.com> + + * sem_prag.adb, sem_prag.ads (Effective_Name): Rename to + Original_Name, and move declaration to package body as this + subprogram is not used from outside. Also clarify documentation. + +2013-04-23 Ed Schonberg <schonberg@adacore.com> + + * exp_ch6.adb (Expand_N_Subprogram_Body): When compiling with + initialize_scalars, disable predicate checks on the generated + assignment to an out scalar parameter. + +2013-04-23 Gary Dismukes <dismukes@adacore.com> + + * sem_ch4.adb (Analyze_Allocator): Remove error + check for "constrained in partial view" constraints entirely. + +2013-04-23 Robert Dewar <dewar@adacore.com> + + * einfo.ads, sem_prag.ads: Minor reformatting. + * errout.ads: Comment update. + +2013-04-23 Yannick Moy <moy@adacore.com> + + * exp_ch5.adb: Minor typo. + +2013-04-23 Thomas Quinot <quinot@adacore.com> + + * gnat_ugn.texi: Fix typo. + +2013-04-23 Ed Schonberg <schonberg@adacore.com> + + * einfo.ads: Minor documentation clarification. + +2013-04-23 Bob Duff <duff@adacore.com> + + * types.ads: Fix incorrect comment. + +2013-04-23 Ed Schonberg <schonberg@adacore.com> + + * sem_aux.adb sem_aux.ads (Effectively_has_Constrained_Partial_View): + Rename subprogram as Object_Type_Has_Constrained_Partial_View, better + description of purpose. + * checks.adb (Apply_Discriminant_Check): Use above renaming. + * sem_ch4.adb (Analyze_Allocator): Check Has_Constrained_Partial_View + of the base type, rather than using the Object_Type predicate. + * sem_attr.adb (Analyze_Attribute, case 'Access): Use above renaming. + * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): ditto. + * exp_attr.adb (Expand_N_Attribute_Reference, case 'Constrained): Ditto. + * exp_ch4.adb (Expand_N_Allocator): Ditto. + +2013-04-23 Robert Dewar <dewar@adacore.com> + + * exp_prag.adb (Expand_Pragma_Check): Check for Assert rather + than Assertion. + * sem_prag.adb (Is_Valid_Assertion_Kind): Moved to spec + (Effective_Name): New function (Analyze_Pragma, case Check): + Disallow [Statement_]Assertions (Check_Kind): Implement + Statement_Assertions (Check_Applicable_Policy): Use Effective_Name + (Is_Valid_Assertion_Kind): Allow Statement_Assertions. + * sem_prag.ads (Is_Valid_Assertion_Kind): Moved here from body + (Effective_Name): New function. + * sem_res.adb: Minor reformatting. + * snames.ads-tmpl (Name_Statement_Assertions): New entry. + * gnat_rm.texi: Add documentation of new assertion kind + Statement_Assertions. + +2013-04-23 Robert Dewar <dewar@adacore.com> + + * sinfo.ads, einfo.adb, sem_res.adb, exp_ch6.adb, aspects.adb: Minor + reformatting and code clean up. + +2013-04-23 Vincent Celier <celier@adacore.com> + + * prj-part.ads, prj-conf.ads: Minor comment updates. + +2013-04-23 Ed Schonberg <schonberg@adacore.com> + + * einfo.adb (Predicate_Function): For a private type, retrieve + predicate function from full view. + * aspects.adb (Find_Aspect): Ditto. + * exp_ch6.adb (Expand_Actuals): If the formal is class-wide and + the actual is a definite type, apply predicate check after call. + * sem_res.adb: Do not apply a predicate check before the call to + a generated Init_Proc. + +2013-04-23 Robert Dewar <dewar@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specifications): Significant + rewrite to make sure Is_Ignore is properly captured when aspect + is declared. + * sem_ch6.adb: Minor reformatting. + * sem_prag.adb (Analyze_Pragma): Do not test policy at time of + pragma for the case of a pragma coming from an aspect (already + tested when we analyzed the aspect). + +2013-04-23 Vincent Celier <celier@adacore.com> + + * prj-conf.adb (Parse_Project_And_Apply_Config): New + Boolean parameter Implicit_Project, defaulted to False. Call + Prj.Part.Parse with Implicit_Project. + * prj-conf.ads (Parse_Project_And_Apply_Config): New Boolean + parameter Implicit_Project, defaulted to False. + * prj-part.adb (Parse_Single_Project): New Boolean parameter + Implicit_Project, defaulted to False. When Implicit_Project is + True, change the Directory of the project node to the Current_Dir. + * prj-part.ads (Parse): New Boolean parameter, defaulted to False + +2013-04-23 Robert Dewar <dewar@adacore.com> + + * exp_util.adb: Minor reformatting. + +2013-04-23 Robert Dewar <dewar@adacore.com> + + * xoscons.adb: Minor reformatting. + +2013-04-23 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Check_Mode): Ensure that a + self-referential output appears in both input and output lists of + the subprogram as categorized by aspect Global. + (Check_Usage): Rename formal parameters to better illustrate their + function. Update all uses of the said formals. + +2013-04-23 Thomas Quinot <quinot@adacore.com> + + * exp_util.adb, exp_util.ads (Fully_Qualified_Name_String): New + parameter Append_NUL to make NUL-termination optional. + * exp_dist.adb: Consistently use the above throughout instead of + Get_Library_Unit_Name_String. + +2013-04-23 Robert Dewar <dewar@adacore.com> + + * sem_util.adb, sem_res.adb, prj-tree.adb, prj-tree.ads: Minor + reformatting. + +2013-04-23 Pascal Obry <obry@adacore.com> + + * xoscons.adb: Remove unused use clause, minor code clean-up. + +2013-04-23 Ed Schonberg <schonberg@adacore.com> + + * sem_util.ads, sem_util.adb: Code cleanup for Is_Expression_Function + (can apply to any scope entity). + * sem_res.adb (Resolve_Call): If the call is within another + expression function it does not constitute a freeze point. + +2013-04-23 Yannick Moy <moy@adacore.com> + + * exp_ch6.adb (Expand_Actuals): Test that Subp + is overloadable before testing if it's an inherited operation. + +2013-04-23 Robert Dewar <dewar@adacore.com> + + * a-envvar.adb, a-envvar.ads, exp_util.adb, sem_ch12.adb: Minor + reformatting. + +2013-04-23 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Analyze_Object_Declarations): Undo previous patch. + * exp_util.adb (Expand_Subtype_From_Expr): If the expression + is a source entity and the declaration is for an aliased + unconstrained array, create a new subtype so that the flag + Is_Constr_Subt_For_UN_Aliased does not pollute other entities. + +2013-04-23 Hristian Kirtchev <kirtchev@adacore.com> + + * aspects.adb: Move tables Base_Aspect and Inherited_Aspect + from the spec to the body. + (Find_Aspect): Update the call to Get_Aspect_Id. + (Get_Aspect_Id): New version that takes an aspect specification. + * aspects.ads: Reorganize all aspect related tables. + (Get_Aspect_Id): New version that takes an aspect specification. + * par_sco.adb (Traverse_Aspects): Update the call to Get_Aspect_Id. + * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Update + the call to Get_Aspect_Id. + * sem_ch13.adb (Analyze_Aspect_At_Freeze_Point): Update the + call to Get_Aspect_Id. (Analyze_Aspect_Specifications): Update + the call to Get_Aspect_Id. Update the call to Impl_Defined_Aspect. + +2013-04-23 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb (Fix_Error): Rewrite to do more accurate job + of getting proper name in the case where pragma comes from + aspect. + * sem_ch3.adb, sinfo.ads, par-ch6.adb, exp_ch6.adb: Minor reformatting. + +2013-04-23 Yannick Moy <moy@adacore.com> + + * sem_ch6.adb (Process_PPCs): Do not filter postconditions based on + applicable policy. + +2013-04-23 Thomas Quinot <quinot@adacore.com> + + * par_sco.adb (Traverse_Aux_Decls): Minor code reorganization. + +2013-04-23 Doug Rupp <rupp@adacore.com> + + * init.c: Move facility macros outside IN_RTS. + +2013-04-23 Thomas Quinot <quinot@adacore.com> + + * freeze.adb (Freeze_Entity): For the case of a bit-packed + array time that is known at compile time to have more that + Integer'Last+1 elements, issue an error, since such arrays are + not supported. + +2013-04-23 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Dependency_Clause): Update all calls to + Analyze_Input_Output. + (Analyze_Input_List): Update all calls to Analyze_Input_Output. + (Analyze_Input_Output): Add formal parameter Self_Ref along with + comment on its usage. Update all calls to Analyze_Input_Output. + (Analyze_Pragma): Add new local variable Self_Ref to capture + the presence of a self-referential dependency clause. Update + all calls to Analyze_Input_Output. + (Check_Mode): Add formal parameter Self_Ref along with comment on its + usage. Verify the legality of a self-referential output. + +2013-04-23 Ed Schonberg <schonberg@adacore.com> + + * exp_ch6.adb: Add predicate checks on by-copy parameter. + +2013-04-23 Vincent Celier <celier@adacore.com> + + * a-envvar.adb, a-envvar.ads (Value): New. + +2013-04-22 Yannick Moy <moy@adacore.com> + + * exp_prag.adb (Expand_Pragma_Loop_Variant): Rewrite pragma as + null statement if ignored. + * sem_ch6.adb (Expand_Contract_Cases): Do nothing if pragma is ignored. + * sem_prag.adb (Analyze_Pragma): Keep analyzing ignored pragmas. + +2013-04-22 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Contract_Case): New routine. + (Analyze_Pragma): Aspect/pragma Contract_Cases can + now be associated with a library level subprogram. + Add circuitry to detect illegal uses of aspect/pragma Contract_Cases + in a subprogram body. + (Chain_Contract_Cases): Rename formal parameter Subp_Decl to + Subp_Id. Remove local constant Subp. The entity of the subprogram + is now obtained via the formal paramter. + +2013-04-22 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Analyze_Object_Declaration): Do not set + Is_Constr_Subt_For_Unc_Aliased on the subtype of the expression, + if the expression is a source entity. + +2013-04-22 Yannick Moy <moy@adacore.com> + + * exp_prag.adb, sinfo.ads, sem_prag.ads: Minor correction of typos in + comments. + * sem_ch6.adb (Expand_Contract_Cases): Add location to message. + +2013-04-22 Thomas Quinot <quinot@adacore.com> + + * sem_prag.adb (Fix_Error): For a pragma rewritten from another + pragma, fix up error message to include original pragma name. + * par_sco.adb: Minor reformatting. + +2013-04-22 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, exp_ch6.adb, + sem_ch6.adb, opt.ads: Minor reformatting. + +2013-04-22 Pascal Obry <obry@adacore.com> + + * gnat_ugn.texi, prj-nmsc.adb, projects.texi: Add check for + Library_Standalone and Library_Kind. + +2013-04-22 Ed Schonberg <schonberg@adacore.com> + + * exp_ch6.adb (Expand_Actuals): If the call is to an + inherited operation and the actual is a by-reference type with + predicates, add predicate call to post-call actions. + * sem_util.adb (Is_Inherited_Operation_For_Type): Fix coding + error: a type declaration has a defining identifier, not an Etype. + * sem_res.adb: Restore code removed because of above error. + +2013-04-22 Doug Rupp <rupp@adacore.com> + + * init.c (__gnat_handle_vms_condition): Also match C$_SIGINT. + +2013-04-22 Yannick Moy <moy@adacore.com> + + * gnat_rm.texi, exp_util.adb, sem_prag.adb, sem_prag.ads, par-ch2.adb, + opt.ads, sem_ch13.adb: Minor correction of typos in comments/doc. + +2013-04-22 Vincent Celier <celier@adacore.com> + + * prj-nmsc.adb (Check_Library_Attributes): Set Library_Dir to + No_Path_Information only when Directories_Must_Exist_In_Projects + is False. + (Get_Directories): Set Object_Directory + or Exec_Directory to No_Path_Information only when + Directories_Must_Exist_In_Projects is False. + +2013-04-22 Yannick Moy <moy@adacore.com> + + * par-prag.adb, sem_attr.adb, sem_ch6.adb, sem_prag.adb, sem_warn.adb, + snames.ads-tmpl, sinfo.ads, sem_util.ads: Remove all references to + Pragma_Contract_Case and Name_Contract_Case. + +2013-04-22 Yannick Moy <moy@adacore.com> + + * aspects.ads, aspects.adb, sem_ch13.adb: Removal of references to + Contract_Case. + * gnat_ugn.texi, gnat_rm.texi Description of Contract_Case replaced by + description of Contract_Cases. + +2013-04-12 Robert Dewar <dewar@adacore.com> + + * makeutl.adb, prj-nmsc.adb: Minor reformatting. + +2013-04-12 Robert Dewar <dewar@adacore.com> + + * exp_util.adb (Make_Invariant_Call): Use Check_Kind instead + of Check_Enabled. + * gnat_rm.texi (Check_Policy): Update documentation for new + Check_Policy syntax. + * sem_prag.adb (Check_Kind): Replaces Check_Enabled + (Analyze_Pragma, case Check_Policy): Rework to accomodate new + syntax (like Assertion_Policy). + * sem_prag.ads (Check_Kind): Replaces Check_Enabled. + +2013-04-12 Doug Rupp <rupp@adacore.com> + + * init.c (SS$_CONTROLC, SS$_CONTINUE) [VMS]: New macros. + (__gnat_handle_vms_condition) [VMS]: Dispatch on the Crtl/C user + handler if installed. + * ctrl_c.c (__gnat_install_int_handler) + [VMS]: Install a dummy sigaction handler to trigger the real + user handler dispatch in init.c/__gnat_handle_vms_condition. + (__gnat_uninstall_int_handler) [VMS]: Likewise. + +2013-04-12 Vincent Celier <celier@adacore.com> + + * clean.adb (Parse_Cmd_Line): Set Directories_Must_Exist_In_Projects + to False if switch is specified. + * makeutl.adb (Initialize_Source_Record): Do not look for the + object file if there is no object directory. + * opt.ads (Directories_Must_Exist_In_Projects): New Boolean + variable, defaulted to True. + * prj-nmsc.adb (Check_Library_Attributes): Do not fail if library + directory does not exist when Directories_Must_Exist_In_Projects is + False. + (Get_Directories): Do not fail when the object or the exec directory + do not exist when Directories_Must_Exist_In_Projects is False. + +2013-04-12 Robert Dewar <dewar@adacore.com> + + * namet.adb, namet.ads: Minor addition (7 arg version of Nam_In). + * exp_prag.adb, sem_ch3.adb, sem_intr.adb, sem_type.adb, exp_util.adb, + sem_aux.adb, exp_ch9.adb, sem_ch7.adb, sem_ch10.adb, sem_prag.adb, + par-ch2.adb, tbuild.adb, rtsfind.adb, freeze.adb, sem_util.adb, + sem_res.adb, sem_attr.adb, exp_ch2.adb, prj-makr.adb, sem_elab.adb, + exp_ch4.adb, sem_ch4.adb, sem_mech.adb, sem_ch6.adb, par-prag.adb, + prj-nmsc.adb, exp_disp.adb, sem_ch8.adb, sem_warn.adb, par-util.adb, + sem_eval.adb, exp_intr.adb, sem_ch13.adb, exp_cg.adb, lib-xref.adb, + sem_disp.adb, exp_ch3.adb: Minor code reorganization (use Nam_In). + +2013-04-12 Doug Rupp <rupp@adacore.com> + + * init.c: Don't clobber condition code on VMS. + +2013-04-12 Robert Dewar <dewar@adacore.com> + + * exp_aggr.adb: Minor reformatting. + * namet.ads, namet.adb (Nam_In): New functions. + +2013-04-12 Robert Dewar <dewar@adacore.com> + + * einfo.adb (Has_Dynamic_Predicate_Aspect): New flag. + (Has_Static_Predicate_Aspect): New flag. + * einfo.ads (Has_Dynamic_Predicate_Aspect): New flag. + (Has_Static_Predicate_Aspect): New flag. + * exp_ch9.adb: Minor reformatting. + * exp_util.adb (Make_Invariant_Call): Check_Enabled now handles + synonyms. + * gnat1drv.adb: Remove setting of Debug_Pragmas_Enabled, + since this switch is gone and control of Debug is done with + Assertions_Enabled. + * gnat_rm.texi: Update documentation for Assertion_Policy and + Check_Policy pragmas. + * opt.adb (Debug_Pragmas_Disabled[_Config]): Removed + (Debug_Pragmas_Enabled[_Config]): Removed Since debug now + controlled by Assertion_Enabled. + * opt.ads (Debug_Pragmas_Disabled[_Config]): Removed + (Debug_Pragmas_Enabled[_Config]): Removed Since debug now + controlled by Assertion_Enabled. + * par-ch2.adb (Scan_Pragma_Argument_Association): Allow new + 'Class forms. + * sem_attr.adb: Minor reformatting. + * sem_ch13.adb (Analyze_Aspect_Specification): Disable aspect + if DISABLE policy applies. + * sem_ch6.adb (Grab_PPC): Check original name of aspect for + aspect from pragma (Process_PPCs): Properly check assertion policy. + * sem_prag.adb (Check_Enabled): Rewritten for new Assertion_Policy + (Check_Appicable_Policy): New procedure. + (Is_Valid_Assertion_Kind): New function. + (Rewrite_Assertion_Kind): New procedure. + (Analyze_Pragma): Handle case of disabled assertion pragma. + (Analyze_Pragma, case Assertion_Policy): Rewritten for Ada 2012. + (Analyze_Pragma, case Check): Deal with 'Class possibilities. + (Analyze_Pragma, case Check_Policy): Deal with 'Class possibilities. + (Analyze_Pragma, case Contract_Class): New handling of ignored pragma. + (Analyze_Pragma, case Debug): New control with Assertion_Policy. + (Analyze_Pragma, case Debug_Policy): Now consistent with + Assertion_Policy. + (Analyze_Pragma, case Loop_Invariant): New handling of ignored + pragma. + (Analyze_Pragma, case Loop_Variant): New handling of ignored pragma. + (Analyze_Pragma, case Precondition): Use proper name for Check pragma. + (Analyze_Pragma, case Check_Enabled): Rewritten for new policy stuff. + * sem_prag.ads (Check_Enabled): Rewritten for new + Assertion_Policy stuff. + (Check_Appicable_Policy): New procedure. + * sinfo.adb (Is_Disabled): New flag. + (Is_Ignored): New flag. + * sinfo.ads (Is_Disabled): New flag. + (Is_Ignored): New flag. + (N_Pragma_Argument_Association): New 'Class forms. + * snames.ads-tmpl: New names Name_uPre, Name_uPost, + Name_uType_Invariant, Name_uInvariant. + * switch-c.adb: Remove setting of Debug_Pragmas_Enabled for -gnata. + * tree_io.ads (ASIS_Version_Number): Updated (remove + read write of obsolete flags Debug_Pragmas_Disabled and + Debug_Pragmas_Enabled. + +2013-04-12 Ed Schonberg <schonberg@adacore.com> + + * exp_aggr.adb (Get_Explicit_Discriminant_Value): Subsidiary + of Build_Record_Aggr_Code, used to retrieve explicit values + for inherited discriminants in an extension aggregate, when the + ancestor type is unconstrained. + +2013-04-12 Ed Schonberg <schonberg@adacore.com> + + * sem_attr.adb (Check_Stream_Attribute): If restriction + No_Default_Stream_Attributes is active, it is illegal to use a + predefined elementary type stream attribute either by itself, + or more importantly as part of the attribute subprogram for a + composite type. However, if the broader restriction No_Streams + is active, then stream operations are not generated, and there + is no error. + +2013-04-12 Robert Dewar <dewar@adacore.com> + + * gnatbind.adb: Minor reformatting. + +2013-04-12 Bob Duff <duff@adacore.com> + + * sem_attr.adb (Analyze_Access_Attribute): Treat P'Access like a + call only in the static elaboration model. + +2013-04-12 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Input_List): Detect an illegal dependency + clause where both input and output lists are null. + (Analyze_Pragma): Update the grammar of pragma Depends. + +2013-04-12 Vincent Celier <celier@adacore.com> + + * gnatbind.adb (No_Restriction_List): Exclude restrictions that + take a parameter value, not a count. + * prj.ads, prj.adb (Remove_All_Restricted_Languages): New procedure. + * projects.texi: Complete documentation of attribute Roots. + +2013-04-12 Thomas Quinot <quinot@adacore.com> + + * exp_ch3.adb, exp_util.ads, checks.adb, freeze.adb, sem_attr.adb, + sem_ch3.adb: Minor reformatting. + * exp_ch4.adb (Size_In_Storage_Elements): Minor documentation + improvement: note that the computation is pessimistic for bit + packed arrays. + * gnat_rm.texi (Range_Length): Fix minor error in description + of attribute. + +2013-04-12 Hristian Kirtchev <kirtchev@adacore.com> + + * aspects.adb (Find_Aspect): New routine. + (Find_Value_Of_Aspect): New routine. + (Has_Aspect): Reimplemented. + * aspects.ads (Find_Aspect): New routine. + (Find_Value_Of_Aspect): New routine, previously known as Find_Aspect. + * exp_ch5.adb (Expand_Iterator_Loop): Update the call to Find_Aspect. + * exp_util.adb (Is_Iterated_Container): Update the call to Find_Aspect. + * sem_ch4.adb (Try_Container_Indexing): Update calls to Find_Aspect. + * sem_ch5.adb (Analyze_Iterator_Specification): Update + the call to Find_Aspect. Use function Has_Aspect for better + readability. + (Preanalyze_Range): Use function Has_Aspect for better readability. + * sem_ch13.adb (Check_One_Function): Update the call to Find_Aspect. + * sem_prag.adb (Analyze_Pragma): There is no longer need to + look at the parent to extract the corresponding pragma for + aspect Global. + +2013-04-12 Robert Dewar <dewar@adacore.com> + + * checks.adb, sem_elab.adb, repinfo.adb, sem_ch4.adb, restrict.adb, + restrict.ads: Minor reformatting. + +2013-04-12 Ed Schonberg <schonberg@adacore.com> + + * lib-xref.adb: Retrieve original name of classwide type if any. + +2013-04-12 Thomas Quinot <quinot@adacore.com> + + * exp_ch11.ads: Minor reformatting. + +2013-04-12 Hristian Kirtchev <kirtchev@adacore.com> + + * aspects.adb: Alphabetize subprogram bodies in this unit. Add + an entry for Aspect_Ghost in the table of canonical aspects. + (Has_Aspect): New routine. + * aspects.ads: Add Aspect_Ghost to all relevant + tables. Alphabetize subprograms in this unit. + (Has_Aspect): New routine. + * einfo.adb: Add with and use clauses for Aspects. + (Is_Ghost_Function): New routine. + * einfo.ads: Add new synthesized attribute Is_Ghost_Function and + update the structure of the related nodes. + (Is_Ghost_Function): New routine. + * exp_ch4.adb (Find_Enclosing_Context): Use routine + Is_Body_Or_Package_Declaration to terminate a search. + (Is_Body_Or_Unit): Removed. + * exp_util.adb (Within_Case_Or_If_Expression): Use routine + Is_Body_Or_Package_Declaration to terminate a search. + * par-prag.adb: Add pragma Ghost to the list of pragmas that do + not need special processing by the parser. + * sem_attr.adb (Analyze_Access_Attribute): Detect an + illegal use of 'Access where the prefix is a ghost function. + (Analyze_Attribute): Use routine Is_Body_Or_Package_Declaration + to terminate a search. (Check_References_In_Prefix): Use routine + Is_Body_Or_Package_Declaration to terminate a search. + * sem_ch4.adb (Analyze_Call): Mark a function when it appears + inside an assertion expression. Verify the legality of a call + to a ghost function. + (Check_Ghost_Function_Call): New routine. + * sem_ch6.adb (Analyze_Function_Call): Code reformatting. Move + the setting of attribute In_Assertion_Expression to Analyze_Call. + (Check_Overriding_Indicator): Detect an illegal attempt to + override a function with a ghost function. + * sem_ch12.adb (Preanalyze_Actuals): Detect an illegal use of + a ghost function as a generic actual. + * sem_elab.adb (Check_Internal_Call_Continue): Update the call + to In_Assertion. + * sem_prag.adb: Add an entry for pragma Ghost in the table + of significant arguments. + (Analyze_Pragma): Do not analyze + an "others" case guard. Add processing for pragma Ghost. Use + Preanalyze_Assert_Expression when analyzing the expression of + pragmas Loop_Invariant and Loop_Variant. + * sem_util.adb (Get_Subprogram_Entity): Reimplemented. + (Is_Body_Or_Package_Declaration): New routine. + * sem_util.ads: Alphabetize subprotrams in this unit. + (Is_Body_Or_Package_Declaration): New routine. + * sinfo.adb (In_Assertion): Rename to In_Assertion_Expression. + (Set_In_Assertion): Rename to Set_In_Assertion_Expression. + * sinfo.ads: Rename flag In_Assertion to In_Assertion_Expression + to better reflect its use. Update all places that mention the flag. + (In_Assertion): Rename to In_Assertion_Expression. Update + related pragma Inline. (Set_In_Assertion): Rename to + Set_In_Assertion_Expression. Update related pragma Inline. + * snames.ads-tmpl: Add new predefined name Ghost. Add new pragma + id Pragma_Ghost. + +2013-04-12 Arnaud Charlet <charlet@adacore.com> + + * sem_prag.adb (Set_Imported): Do not generate error for multiple + Import in CodePeer mode. + * s-rident.ads: Fix minor typo. + +2013-04-12 Ed Schonberg <schonberg@adacore.com> + + * checks.adb (Insert_Valid_Check): Do not insert validity check + in the body of the generated predicate function, to prevent + infinite recursion. + +2013-04-12 Ed Schonberg <schonberg@adacore.com> + + * s-rident.ads: Add various missing Ada 2012 restrictions: + No_Access_Parameter_Allocators, No_Coextensions, + No_Use_Of_Attribute, No_Use_Of_Pragma. + * snames.ads-tmpl: Add corresponding names. + * restrict.ads restrict.adb: Subprograms and data structures to + handle aspects No_Use_Of_Attribute and No_Use_Of_Pragma. + * sem_ch4.adb: Correct name of restrictions is + No_Standard_Allocators_After_Elaboration. + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Check + violation of restriction No_Use_Of_Attribute. + * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): + Set restrictions No_Use_Of_Pragma and No_Use_Of_Attribute. + (Analyze_Pragma): Check violation of restriction No_Use_Of_Pragma. + * sem_res.adb: Check restrictions No_Access_Parameter_Allocators + and No_Coextensions. + * bcheck.adb: Correct name of restrictions is + No_Standard_Allocators_After_Elaboration. + * gnatbind.adb: Correct name of restrictions is + No_Standard_Allocators_After_Elaboration. + +2013-04-12 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Pragma, (Check_Mode_Restriction_In_Function): + Correct error message format. + +2013-04-12 Robert Dewar <dewar@adacore.com> + + * sem_attr.adb: Minor reformatting. + +2013-04-12 Ed Schonberg <schonberg@adacore.com> + + * sem_elab.adb (Within_Elaborate_All): Do not examine a context + item that has not been analyzed, because the unit may have errors, + or the context item may come from a proper unit inserted at the + point of a stub and not analyzed yet. + +2013-04-12 Thomas Quinot <quinot@adacore.com> + + * gnat1drv.adb, repinfo.adb, repinfo.ads (Repinfo.List_Array_Info, + List_Record_Info): Also include scalar storage order information in + output. + +2013-04-12 Yannick Moy <moy@adacore.com> + + * sem_ch6.adb (Process_Contract_Cases): Update code to apply to + Contract_Cases instead of Contract_Case pragma. + +2013-04-12 Robert Dewar <dewar@adacore.com> + + * a-cfdlli.ads, g-socket.adb, s-fileio.adb: Minor reformatting. + +2013-04-12 Yannick Moy <moy@adacore.com> + + * sem_attr.adb (Analyze_Attribute): Update analyse of + Attribute_Old and Attribute_Result so they are allowed in the + right-hand-side of an association in a Contract_Cases pragma. + * sem_prag.adb (Analyze_CTC_In_Decl_Part): Add pre-analysis of + the expressions in a Contract_Cases pragma. + +2013-04-12 Robert Dewar <dewar@adacore.com> + + * sem.ads, opt.ads: Minor comment edits. + * sem_warn.adb, sem_ch6.adb: Minor reformatting. + +2013-04-12 Claire Dross <dross@adacore.com> + + * a-cfdlli.adb a-cfdlli.ads (List, Not_No_Element, Iterate, + Reverse_Iterate, Query_Element, Update_Element, Read, Write): Removed, + not suitable for formal analysis. + +2013-04-12 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Analyze_Abstract_State): Use Defining entity + to locate package entity, which may be a child unit. + +2013-04-12 Thomas Quinot <quinot@adacore.com> + + * g-socket.adb, g-socket.ads (Connect_Socket, version with timeout): If + the specified timeout is 0, do not attempt to determine whether the + connection succeeded. + +2013-04-12 Doug Rupp <rupp@adacore.com> + + * s-fileio.adb (Form_RMS Context_Key): Fix some thinkos. + +2013-04-12 Doug Rupp <rupp@adacore.com> + + * s-fileio.adb: Minor reformatting. + +2013-04-12 Ed Schonberg <schonberg@adacore.com> + + * sem_warn.adb (Check_Infinite_Loop_Warning): Do not warn if + the last statement in the analyzed loop is an unconditional + exit statement. + +2013-04-12 Robert Dewar <dewar@adacore.com> + + * opt.ads (Style_Check_Main): New switch. + * sem.adb (Semantics): Set Style_Check flag properly for new + unit to be analyzed. + * sem_ch10.adb (Analyze_With_Clause): Don't reset Style_Check, + the proper setting of this flag is now part of the Semantics + procedure. + * switch-c.adb (Scan_Front_End_Switches): Set Style_Check_Main + for -gnatg and -gnaty + +2013-04-12 Doug Rupp <rupp@adacore.com> + + * s-crtl.ads (fopen, freopen): Add vms_form parameter + * i-cstrea.ads (fopen, freopen): Likewise. + * adaint.h (__gnat_fopen, __gnat_freopen): Likewise. + * adaint.c (__gnat_fopen, __gnat_freopen): Likewise. + [VMS]: Split out RMS keys and call CRTL function appropriately. + * s-fileio.adb (Form_VMS_RMS_Keys, Form_RMS_Context_Key): New + subprograms. + (Open, Reset): Call Form_VMS_RMS_Keys. Call fopen,freopen with + vms_form + * gnat_rm.texi: Document implemented RMS keys. + +2013-04-12 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specifications): + Insert the corresponding pragma for aspect Abstract_State at + the top of the visible declarations of the related package. + Previously this was only done when the package is a compilation + unit. + +2013-04-12 Arnaud Charlet <charlet@adacore.com> + + * gnat_ugn.texi: Further menu clean ups. + * sem_prag.adb, opt.ads: Minor reformatting. + * sem_util.ads: Minor comment fix. + +2013-04-12 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect + Depends is now a delayed aspect. The delay is required + due to the interplay between aspects Depends and Global. + (Check_Aspect_At_Freeze_Point): Add an entry for aspect Depends. + * sem_prag.adb: Reformat various error messages. + (Add_Item): New subsidiary routine. + (Analyze_Pragma): Add new variables + Global_Seen, Result_Seen, Subp_Inputs and Subp_Outputs. The + analysis of pragma Depends now has the capability to check + the proper mode and usage of subprogram inputs and outputs. + (Appears_In): New routine. + (Check_Function_Return): New routine. + (Check_Mode): New routine. + (Check_Usage): New routine. + (Collect_Subprogram_Inputs_Outputs): New routine. + +2013-04-12 Bob Duff <duff@adacore.com> + + * par-ch7.adb (P_Package): Initialize Sloc in the newly-pushed scope + stack entry. + +2013-04-12 Robert Dewar <dewar@adacore.com> + + * switch-c.adb: Minor fix to wording of error message for + -gnatet/eT. + +2013-04-12 Robert Dewar <dewar@adacore.com> + + * impunit.adb: Add s-multip and s-mudido to list of impl defined + system units. + * gnat_rm.texi: Add documentation for + System.Multiprocessors[.Dispatching_Domains]. + +2013-04-12 Ben Brosgol <brosgol@adacore.com> + + * gnat_ugn.texi: Completion of menu cleanups. + +2013-04-12 Arnaud Charlet <charlet@adacore.com> + + * sem_prag.adb (Diagnose_Multiple_Pragmas): Relax the rules + in Relaxed_RM_Semantics. + +2013-04-12 Arnaud Charlet <charlet@adacore.com> + + * set_targ.adb (elab code): Add support for non gcc back-ends + where save_argv is null. + +2013-04-12 Robert Dewar <dewar@adacore.com> + + * gnat1drv.adb (Gnat1drv): Test Target_Dependent_Info_Write_Name. + * opt.ads (Target_Dependent_Info_Read): Add _Name, now an access + type (Target_Dependent_Info_Write): Add _Name, now an access type. + * set_targ.adb (Write_Target_Dependent_Values): Use name + from -gnatet switch stored in Target_Dependent_Info_Write_Name + (Read_Target_Dependent_Values): Use name from -gnateT switch + stored in Target_Dependent_Info_Read_Name. + * switch-c.adb: New form of -gnatet and -gnateT switches. + * usage.adb: New form of -gnatet and -gnateT switches with + file name. + +2013-04-11 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (elaborate_expression_1): Skip only constant + arithmetics when looking for a read-only variable in the expression. + +2013-04-11 Javier Miranda <miranda@adacore.com> + + * check.ads, exp_ch6.adb (Install_Null_Excluding_Check): No check in + interface thunks since it is performed at the caller side. + (Expand_Simple_Function_Return): No accessibility check needed in thunks + since the check is done by the target routine. + +2013-04-11 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Analyze_Pragma, case Priority): pre-analyze + expression with type Any_Priority. + * exp_ch9.adb (Initialize_Protection): Check that the value + of the priority expression is within the bounds of the proper + priority type. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb, prj-env.adb: Minor reformatting. + +2013-04-11 Ben Brosgol <brosgol@adacore.com> + + * gnat_ugn.texi: Clean ups. + +2013-04-11 Yannick Moy <moy@adacore.com> + + * set_targ.adb: Minor comment update. + +2013-04-11 Pascal Obry <obry@adacore.com> + + * gnat_ugn.texi: Remove obsolete comment about DLL calling + convention. + +2013-04-11 Javier Miranda <miranda@adacore.com> + + * exp_ch6.adb (Expand_Call): For the call to the target primitive + of an interface thunks do not compute the extra actuals; just + propagate the extra actuals received by the thunk. + * exp_disp.adb (Expand_Interface_Thunk): Decorate new attribute + Thunk_Entity. + * sem_ch6.adb (Create_Extra_Formals): Do not generate extra + formals in interface thunks whose target primitive has no extra + formals. + +2013-04-11 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Pragma): Detect + a renaming by looking at the Renamed_Object attribute. + (Is_Renaming): Removed. + +2013-04-11 Vincent Celier <celier@adacore.com> + + * prj-env.adb (Initialize_Default_Project_Path): Take + into account a project path file, specified by environment + variable GPR_PROJECT_PATH_FILE, before taking into account + GPR_PROJECT_PATH. + * projects.texi: Add documentation for GPR_PROJECT_PATH_FILE + +2013-04-11 Ed Schonberg <schonberg@adacore.com> + + * a-cdlili.adb, a-cdlili.ads, a-cihama.adb, a-cihama.ads, a-coinve.adb, + a-coinve.ads, a-ciorse.adb, a-ciorse.ads, a-coorma.adb, a-coorma.ads, + a-cfdlli.adb, a-cfdlli.ads, a-cborma.adb, a-cborma.ads, a-cidlli.adb, + a-cidlli.ads, a-ciormu.adb, a-ciormu.ads, a-cihase.adb, a-cihase.ads, + a-cohama.adb, a-cohama.ads, a-coorse.adb, a-coorse.ads, a-cbhama.adb, + a-cbhama.ads, a-cborse.adb, a-cborse.ads, a-ciorma.adb, a-cobove.adb, + a-ciorma.ads, a-cobove.ads, a-coormu.adb, a-coormu.ads, a-cohase.adb, + a-cohase.ads, a-cbdlli.adb, a-cbdlli.ads, a-cbhase.adb, a-cbhase.ads: + Move Iterator operations from body to private part of spec. + +2013-04-11 Eric Botcazou <ebotcazou@adacore.com> + + * ttypes.ads, get_targ.ads: More minor rewording of comments. + +2013-04-11 Johannes Kanig <kanig@adacore.com> + + * debug.adb: Document use of switch -gnatd.Z. + +2013-04-11 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Pragma): Both pragma Depends and Global can now + support renamings of entire objects. Legal renamings are replaced by + the object they rename. + (Is_Renaming): New routine. + +2013-04-11 Yannick Moy <moy@adacore.com> + + * set_targ.adb, opt.ads: Minor changes in comments. + +2013-04-11 Ben Brosgol <brosgol@adacore.com> + + * gnat_ugn.texi: Minor clean ups. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * nlists.ads, nlists.adb, treepr.adb, treepr.ads: Move debugging + function p from Nlists to Treepr. + +2013-04-11 Ed Schonberg <schonberg@adacore.com> + + * sem_disp.adb (Check_Dispatching_Context): If the context is + a contract for a null procedure defer error reporting until + postcondition body is created. + * exp_ch13.adb (Expand_N_Freeze_Entity): If the entity is a + null procedure, complete the analysis of its contracts so that + calls within classwide conditions are properly rewritten as + dispatching calls. + +2013-04-11 Thomas Quinot <quinot@adacore.com> + + * sem_ch10.adb, sem_ch12.adb: Minor reformatting. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * exp_attr.adb, sem_res.adb, sem_attr.adb: Minor reformatting. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * atree.adb, atree.ads (Node31): New function. + (Set_Node31): New procedure. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * errout.ads: Minor typo correction. + +2013-04-11 Javier Miranda <miranda@adacore.com> + + * einfo.ad[sb] (Thunk_Entity/Set_Thunk_Entity): New attribute. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * back_end.adb (Register_Back_End_Types): Moved to Get_Targ + * back_end.ads (C_String): Moved to Get_Targ + (Register_Type_Proc): Moved to Get_Targ (Register_Back_End_Types): + Moved to Get_Targ. + * cstand.adb (Register_Float_Type): New interface + (Create_Back_End_Float_Types): Use entries in FPT_Mode_Table. + * get_targ.adb (Register_Back_End_Types): Moved here from + Back_End. + * get_targ.ads (C_String): Moved here from Back_End + (Register_Type_Proc): Moved here from Back_End + (Register_Back_End_Types): here from Back_End. + * gnat1drv.adb (GGnat11drv): Add call to + Write_Target_Dependent_Values; + * lib-writ.ads, lib-writ.adb (Write_ALI): Remove section writing + obsolete target dependent info. + * opt.ads (Generate_Target_Dependent_Info): + Removed (Target_Dependent_Info_Read): New flag + (Target_Dependent_Info_Write): New flag + * output.adb: Minor comment change + * s-os_lib.ads: Minor reformatting + * set_targ.ads, set_targ.adb: Minor reformatting. + * switch-c.adb (Scan_Switches.First_Ptr): New variable + (Scan_Front_End_Switches): Check -gnatd.b, -gnateT come first + (Scan_Front_End_Switches): Handle -gnatet, -gnateT + * ttypes.ads: Remove documentation section on target dependent + info in ali file Remove four letter codes, no longer used Instead + of using Get_Targ.Get_xxx, we use Set_Targ.xxx + * usage.adb: Add usage lines for -gnatet/-gnateT + * gcc-interface/Make-lang.in: Update dependencies. + +2013-04-11 Thomas Quinot <quinot@adacore.com> + + * sem_ch4.adb: Update documentation. + * sinfo.ads (N_Expression_With_Actions): Ditto. + +2013-04-11 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specifications): + Add a guard to prevent the double insertion of the same aspect + into a rep item list. This previously led to a circularity. + +2013-04-11 Ed Schonberg <schonberg@adacore.com> + + * sem_attr.adb (Eval_Attribute, case 'Access): Reject attribute + reference if the prefix is the dereference of an anonymous access + to subprogram type. + * exp_attr.adb (Expand_N_Attribute_Reference, Access_Cases): Handle + properly a reference to the current instance of a protected type + from within a protected subprogram. + * sem_res.adb (Find_Unique_Access_Type): Treat + Attribute_Access_Type like Allocator_Type when resolving an + equality operator. + +2013-04-11 Arnaud Charlet <charlet@adacore.com> + + * xgnatugn.adb: Remove obsolete comments. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * back_end.ads, back_end.adb: Minor reformatting. + * set_targ.ads, set_targ.adb: New files. + +2013-04-11 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_case.adb (Check_Against_Predicate): New routine. + (Check_Choices): When the type covered by the list of choices + is a static subtype with a static predicate, check all choices + agains the predicate. + (Issue_Msg): All versions removed. + (Missing_Choice): New routines. + * sem_ch4.adb: Code and comment reformatting. + (Analyze_Case_Expression): Do not check the choices when the case + expression is being preanalyzed and the type of the expression + is a subtype with a static predicate. + (Has_Static_Predicate): New routine. + * sem_ch13.adb: Code and comment reformatting. (Build_Range): + Always build a range even if the low and hi bounds denote the + same value. This is needed by the machinery in Check_Choices. + (Build_Static_Predicate): Always build a range even if the low and + hi bounds denote the same value. This is needed by the machinery + in Check_Choices. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * einfo.ads, sem_util.adb, exp_ch6.adb, xgnatugn.adb: Minor + reformatting. + +2013-04-11 Doug Rupp <rupp@adacore.com> + + * gnatlink.adb: Fold program basename to lower case on VMS for + consistency. + +2013-04-11 Matthew Heaney <heaney@adacore.com> + + * a-rbtgbo.adb (Generic_Equal): Initialize Result variable before + entering loop. + +2013-04-11 Arnaud Charlet <charlet@adacore.com> + + * xgnatugn.adb: Remove dead code (handling of @ifset/@ifclear). + +2013-04-11 Arnaud Charlet <charlet@adacore.com> + + * gnat_ugn.texi: Remove some use of ifset in menus. Not strictly + needed, and seems to confuse some versions of makeinfo. + +2013-04-11 Javier Miranda <miranda@adacore.com> + + * einfo.adb (Is_Thunk): Remove assertion. + (Set_Is_Thunk): Add assertion. + * einfo.ads (Is_Thunk): Complete documentation. + * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Code cleanup. + * exp_ch3.ad[sb] (Is_Variable_Size_Array): Moved to sem_util + (Is_Variable_Size_Record): Moved to sem_util + * exp_ch6.adb (Expand_Call): Code cleanup. + (Expand_N_Extended_Return_Statement): Code cleanup. + (Expand_Simple_Function_Return): Code cleanup. + * exp_disp.adb Remove dependency on exp_ch3 + (Expand_Interface_Thunk): Add minimum decoration needed to set + attribute Is_Thunk. + * sem_ch3.ad[sb] (Is_Constant_Bound): moved to sem_util + * sem_util.ad[sb] (Is_Constant_Bound): Moved from + sem_ch3 (Is_Variable_Size_Array): Moved from exp_ch3 + (Is_Variable_Size_Record): Moved from exp_ch3 + +2013-04-11 Javier Miranda <miranda@adacore.com> + + * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Do + not add cleanup actions in thunks associated with interface types. + * exp_ch3.ad[sb] (Is_Variable_Size_Record): Move declaration to + the package spec. + * exp_ch4.adb (Tagged_Conversion): Update call to + Expand_Interface_Conversion since the parameter Is_Static is no + longer needed. + * exp_ch6.adb (Expand_N_Extended_Return_Statement): Adding + assertion to ensure that interface thunks are never handled by + this routine. + (Expand_N_Simple_Function_Return): Do not rewrite this statement + as an extended return statement in interface thunks, and do not + perform copy in the secondary stack if the return statement is + located in a thunk. + * exp_disp.adb (Expand_Dispatching_Call): No longer displace + the pointer to the returned object in functions returning interface + types. + (Expand_Interface_Thunk): For functions returning interface types + displace the pointer to the returned object. + (Expand_Interface_Conversion): Remove formal + Is_Static since this subprogram can now evaluate it locally. + * sem_ch3.adb (Add_Internal_Interface_Entities): For functions + propagate the type returned by the covered interface primitive to + the internal interface entity. Needed by the thunk to generate + the code which displaces "this" to reference the corresponding + secondary dispatch table. + * sem_disp.adb (Propagate_Tag): Update call to + Expand_Interface_Conversion since the parameter Is_Static is no + longer needed. + * sem_res.adb (Resolve_Type_Conversion): Update calls to + Expand_Interface_Conversion since the parameter Is_Static is no + longer needed plus code cleanup. + +2013-04-11 Eric Botcazou <ebotcazou@adacore.com> + + * init.c (RETURN_ADDR_OFFSET): Delete as unused. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * a-crbtgk.adb, a-ciorse.adb, a-crbtgo.adb, a-coorse.adb, a-rbtgbo.adb, + a-cborse.adb, a-rbtgso.adb, exp_ch3.adb: Minor reformatting. + +2013-04-11 Yannick Moy <moy@adacore.com> + + * exp_ch4.adb (Expand_N_Selected_Component): Do not expand + discriminant check for Unchecked_Union. + * sem_res.adb (Resolve_Selected_Component): Set flag + Do_Discriminant_Check even when expansion is not performed. + * sinfo.ads (Do_Discriminant_Check): Update documentation for the case + of Unchecked_Union. + +2013-04-11 Thomas Quinot <quinot@adacore.com> + + * sem_ch13.adb (Same_Representation): Two types with different scalar + storage order never have the same representation. + +2013-04-11 Arnaud Charlet <charlet@adacore.com> + + * xgnatugn.adb (Push_Conditional): Simplify handling, + no longer need to keep track of "excluding" sections. + (Currently_Excluding): Removed. + (Process_Source_File): + Set unw/vms flag so that texinfo can do the whole handling of + @ifset/@ifclear sections. Fix handling of nested @ifset/@ifclear + sections. + * gnat_ugn.texi: Add a section on performing unassisted install + on Windows. + +2013-04-11 Johannes Kanig <kanig@adacore.com> + + * debug.adb: Document usage of -gnatd.Q switch. + +2013-04-11 Matthew Heaney <heaney@adacore.com> + + * a-crbtgk.adb (Ceiling, Find, Floor): Adjust locks + before element comparisons. + (Generic_Conditional_Insert, Generic_Conditional_Insert_With_Hint): + Ditto. + * a-crbtgo.adb, a-rbtgbo.adb (Generic_Equal): Adjust locks before + element comparisons. + * a-rbtgso.adb (Difference, Intersection): Adjust locks + before element comparisons. + (Is_Subset, Overlap): Ditto + (Symmetric_Difference, Union): Ditto + * a-btgbso.adb (Set_Difference, Set_Intersection): Adjust locks + before element comparisons. + (Set_Subset, Set_Overlap): Ditto + (Set_Symmetric_Difference, Set_Union): Ditto + * a-coorse.adb, a-ciorse.adb, a-cborse.adb + (Update_Element_Preserving_Key): Adjust locks before element + comparisons (Replace_Element): Ditto + +2013-04-11 Pascal Obry <obry@adacore.com> + + * prj-attr.adb, projects.texi, snames.ads-tmpl: Remove Build_Slaves + attribute. + +2013-04-11 Ed Schonberg <schonberg@adacore.com> + + * exp_ch3.adb (Build_Equivalent_Aggregate): Subsidiary of + Expand_N_Object_Declaration, used to construct an aggregate + with static components whenever possible, so that objects of a + discriminated type can be initialized without calling the init. + proc for the type. + +2013-04-11 Vincent Celier <celier@adacore.com> + + * prj-makr.adb (Process_Directory): On VMS, always delete, + then recreate the temporary file with Create_Output_Text_File, + otherwise the output redirection does not work properly. + +2013-04-11 Eric Botcazou <ebotcazou@adacore.com> + + * urealp.ads: Fix minor typo. + +2013-04-11 Fabien Chouteau <chouteau@adacore.com> + + * cio.c (mktemp): Don't use tmpnam function from the + system on VxWorks in kernel mode. + +2013-04-11 Vincent Celier <celier@adacore.com> + + * make.adb (Compile): Clarify the error message reported + when gnatmake refuses to compile a runtime source. + (Start_Compile_If_Possible): Ditto. + +2013-04-11 Vincent Celier <celier@adacore.com> + + * gnat_ugn.texi: Add documentation about -gnatc and gnatmake. + +2013-04-11 Vincent Celier <celier@adacore.com> + + * switch-c.adb: Document internal switches. + * usage.adb: Remove lines for internal switches: -gnatea, -gnateO, + -gnatez and -gnateO. + +2013-04-11 Ed Schonberg <schonberg@adacore.com> + + * par-ch6.adb (P_Subprogram): Attach aspects to subprogram stub. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Allow aspects on + subprogram stubs. + * sem_ch13.adb (Analyze_Aspect_Specifications): Analyze generated + pre/post pragmas at once before analyzing the proper body. + * sem_prag.adb (Chain_PPC): Handle pragma that comes from an + aspect on a subprogram stub. + * aspects.adb: Aspect specifications can appear on a + subprogram_Body_Stub. + +2013-04-11 Vincent Celier <celier@adacore.com> + + * gnatname.adb: Minor comment fix. + +2013-04-11 Vincent Celier <celier@adacore.com> + + * prj-makr.adb (Process_Directory): Create a new temporary + file for each invocation of the compiler, in directory pointed + by environment variable TMPDIR if it exists. + +2013-04-11 Arnaud Charlet <charlet@adacore.com> + + * gnat_ugn.texi: Minor editing/clean ups. + +2013-04-11 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Analyze_Null_Procedure): New subprogram, mostly + extracted from Analyze_Subprogram_Declaration, to handle null + procedure declarations that in ada 2012 can be completions of + previous declarations. + +2013-04-11 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Entity_Of): Moved to Exp_Util. + * exp_util.ads, exp_util.adb (Entity_Of): New routine. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * g-spipat.ads: Minor comment fix. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb, sem_util.adb, sem_res.adb, exp_ch4.adb: Minor + reformatting. + +2013-04-11 Thomas Quinot <quinot@adacore.com> + + * exp_util.ads (Fully_Qualified_Name_String): Document that the + constructed literal is the entity name in all upper case. + +2013-04-11 Thomas Quinot <quinot@adacore.com> + + * sem_util.adb (Set_Entity_With_Style_Check): Fix logic of + check for implementation defined identifiers. + +2013-04-11 Yannick Moy <moy@adacore.com> + + * checks.adb (Apply_Type_Conversion_Checks): Add an explanation + of why range check and length are put on different nodes. + * exp_ch4.adb (Apply_Type_Conversion_Checks): Remove check marks + when doing their expansion. + +2013-04-11 Ed Schonberg <schonberg@adacore.com> + + * sem_util.ads, sem_util.adb (Get_Incomplete_View_Of_Ancestor): + New function to implement the notion introduced in RM 7.3.1 + (5.2/3): in a child unit, a derived type is within the derivation + class of an ancestor declared in a parent unit, even if there + is an intermediate derivation that does not see the full view + of that ancestor. + * sem_res.adb (Valid_Conversion): if all else fails, examine if an + incomplete view of an ancestor makes a numeric conversion legal. + +2013-04-11 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb: in Ada2012 operators can only have in + parameters. + +2013-04-11 Vincent Celier <celier@adacore.com> + + * makeutl.adb (Create_Binder_Mapping_File): Do not put into + the mapping file ALI files of sources that have been replaced. + +2013-04-11 Vincent Celier <celier@adacore.com> + + * projects.texi: Add subsection Duplicate Sources in Projects. + +2013-04-11 Vincent Celier <celier@adacore.com> + + * gnat_ugn.texi: Add documentation for gnatmake switch -droot_dir/** + +2013-04-11 Arnaud Charlet <charlet@adacore.com> + + * init.c (__gnat_install_handler): Only set up an alternate + stack when installing a signal handler for SIGSEGV. + +2013-04-11 Thomas Quinot <quinot@adacore.com> + + * g-socket.adb (Connect_Socket, timeout version): Call + underlying connect operation directly, not through the 2-argument + Connect_Socket thick binding, in order to avoid raising a junk + exception for the EINPROGRESS return. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * a-cdlili.adb: Minor addition of pragma Warnings (Off). + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * hostparm.ads: Minor reformatting. + +2013-04-11 Hristian Kirtchev <kirtchev@adacore.com> + + * aspects.ads, aspects.adb: Add Aspect_Depends to all the relevant + tables. + * elists.ads, elists.adb (Contains): New routine. + * par-prag.adb: Pragma Depends does not need any special treatment + by the parser. + * sem_ch13.adb (Analyze_Aspect_Specifications): + Transform aspect Depends into a corresponding pragma. + (Check_Aspect_At_Freeze_Point): Aspect Depends does not need + inspection at its freeze point. + * sem_prag.adb (Analyze_Pragma): Perform analysis and + normalization of pragma Depends. Remove the use of function + Is_Duplicate_Item. Use End_Scope to uninstalle the formal + parameters of a subprogram. Add a value for pragma Depends in + table Sig_Flags. + (Is_Duplicate_Item): Removed. + * snames.ads-tmpl: Add predefined name for Depends as well as + a pragma identifier. + +2013-04-11 Arnaud Charlet <charlet@adacore.com> + + * gnat1drv.adb: Minor code clean up. + +2013-04-11 Arnaud Charlet <charlet@adacore.com> + + * debug.adb, sem_ch13.adb (Analyze_Enumeration_Representation_Clause): + Ignore enumeration rep clauses by default in CodePeer mode, unless + -gnatd.I is specified. + +2013-04-11 Ed Schonberg <schonberg@adacore.com> + + * sem_util.adb (Safe_To_Capture_Value): If the node belongs to + an expression that has been attached to the else_actions of an + if-expression, the capture is not safe. + +2013-04-11 Yannick Moy <moy@adacore.com> + + * checks.adb (Apply_Type_Conversion_Checks): Put check mark on type + conversion for arrays. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb: Minor reformatting. + +2013-04-11 Johannes Kanig <kanig@adacore.com> + + * adabkend.adb: Minor comment addition. + +2013-04-11 Matthew Heaney <heaney@adacore.com> + + * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb ("="): Increment + lock counts before entering loop. + (Find): Ditto. + (Is_Sorted, Merge, Sort): Ditto. + (Reverse_Find): Ditto. + (Splice_Internal): Internal operation to refactor splicing logic. + (Splice): Some logic moved into Splice_Internal. + +2013-04-11 Johannes Kanig <kanig@adacore.com> + + * adabkend.adb (Scan_Compiler_Arguments): Do not call + Set_Output_Object_File_Name in Alfa_Mode + * gnat1drv.adb (Adjust_Global_Switches): Take Alfa_Mode into account. + * opt.ads: Fix documentation. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * sem_res.adb: Minor code reorganization and comment fixes. + * sem_type.adb: Minor reformatting. + +2013-04-11 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch4.adb (Process_Transient_Object): Add new + local variable Fin_Call. Remove and explain ??? comment. Use the + Actions of logical operators "and then" and "or else" to insert + the generated finalization call. + +2013-04-11 Eric Botcazou <ebotcazou@adacore.com> + + * gnat_rm.texi: Fix typo. + +2013-04-11 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb: Minor reformatting. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * atree.h: Add declarations for Flag255-Flag289 Fix declaration + of Field30 (was wrong, but no effect, since not yet referenced by + back end) Add declarations for Field31-Field35 Add declarations + for Node31-Node35. + * einfo.ads, einfo.adb (Has_Invariants): No longer applies to + procedures. + (Has_Predicates): No longer applies to functions. + (Is_Predicate_Function): New flag. + (Is_Predicate_Function_M): New flag. + (Is_Invariant_Procedure): New flag. + (Predicate_Function_M): New function. + (Set_Predicate_Function_M): New procedure. + * exp_ch11.adb (Expand_N_Raise_Expression): Take care of special + case of appearing in predicate used for membership test. + * exp_ch3.adb (Insert_Component_Invariant_Checks): Set + Is_Invariant_Procedure flag. + * exp_ch4.adb (Expand_Op_In): Call special predicate function + that takes care of raise_expression nodes in the predicate. + * exp_util.ads, exp_util.adb (Make_Predicate_Call): Add argument Mem for + membership case. + * sem_ch13.adb (Build_Predicate_Functions): New name for + Build_Predicate_Function. Major rewrite to take care of raise + expression in predicate for membership tests. + * sem_res.adb (Resolve_Actuals): Include both predicate functions + in defense against infinite predicate function loops. + * sinfo.ads, sinfo.adb (Convert_To_Return_False): New flag. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb: Minor reformatting. + +2013-04-11 Ed Schonberg <schonberg@adacore.com> + + * lib-xref.adb: Generate reference for component of anonymous + access type. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * stand.ads: Minor reformatting. + +2013-04-11 Matthew Heaney <heaney@adacore.com> + + * a-convec.adb, a-coinve.adb, a-cobove.adb ("="): Increment lock + counts before entering loop. + (Find, Find_Index): Ditto. + (Is_Sorted, Merge, Sort): Ditto. + (Reverse_Find, Reverse_Find_Index): Ditto. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * exp_ch11.ads, exp_ch11.adb (Expand_N_Raise_Expression): New procedure. + * exp_util.adb (Insert_Actions): Add entry for N_Raise_Expression. + * expander.adb: Add call to Expand_N_Raise_Expression. + * par-ch11.adb (P_Raise_Expression): New procedure. + * par-ch4.adb (P_Relation): Handle Raise_Expression. + * par.adb (P_Raise_Expression): New procedure. + * sem.adb: Add handling for N_Raise_Expression. + * sem_ch11.ads, sem_ch11.adb (Analyze_Raise_Expression): New procedure. + * sem_res.adb (Resolve): Add handling for N_Raise_Expression. + * sinfo.ads, sinfo.adb (N_Raise_Expression): New node. + * sprint.adb (Sprint_Node_Actual): Add handling for N_Raise_Expression. + * stand.ads (Any_Type): Document use with N_Raise_Expression. + +2013-04-11 Vincent Celier <celier@adacore.com> + + * gnat_ugn.texi: Remove section "The Development Environments" + now that all predefined attributes are documented, including + those in package IDE. + +2013-04-11 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb: Preserve parent link in copy of expression. + +2013-04-11 Vincent Celier <celier@adacore.com> + + * projects.texi: Complete rewrite of the subsection Attributes + in section "Project file Reference". + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * exp_ch4.adb: Minor reformatting. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * exp_ch4.adb (Expand_Concatenate): Remove wrapping in + expression-with-actions node. No longer needed given fix to + sem_prag and caused loss of some useful warnings. + * sem.ads: Minor reformatting. + * sem_prag.adb (Check_Disabled): Removed, to be replaced by not + Check_Enabled. These two routines were curiously incompatible + causing confusion. + (Analyze_Pragma, case Check): Make sure we do + not expand the string argument if the check is disabled. Avoid + use of Check_Disabled, which resulted in missing analysis in + some cases. + * sem_prag.ads (Check_Disabled): Removed, to be replaced by not + Check_Enabled. These two routines were curiously incompatible + causing confusion. + +2013-04-11 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch4.adb (Process_Transient_Object): Use + an unchecked conversion when associating a transient controlled + object with its "hook". + +2013-04-11 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Analyze_Pragma, case + Preelaborable_Initialization): The pragma is legal if it comes + from an aspect on the private view of the type, even though its + analysis point takes place later at the freeze point. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * sem_ch6.adb: Minor reformatting. + +2013-04-11 Yannick Moy <moy@adacore.com> + + * ali-util.adb (Read_Withed_ALIs): Do not consider it an error to + read ALI files with No_Object=True in Alfa mode. + * gnat1drv.adb: Set appropriately Back_End_Mode in Alfa mode, whether + this is during frame condition generation of translation to Why. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * exp_ch4.adb: Minor code reorganization + * types.ads: Minor reformatting. + +2013-04-11 Johannes Kanig <kanig@adacore.com> + + * opt.ads New global boolean Frame_Condition_Mode to avoid + referring to command line switch. + * gnat1drv.adb (Gnat1drv) set frame condition mode when -gnatd.G + is present, and disable Code generation in that case. Disable + ALI file generation when switch is *not* present. + +2013-04-11 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Analyze_Expression_Function): Perform the + pre-analysis on a copy of the expression, to prevent downstream + visbility issues involving operators and instantiations. + +2013-04-11 Johannes Kanig <kanig@adacore.com> + + * debug.adb: Reservation and documentation for -gnatd.G switch. + * gnat1drv.adb (Adjust_Global_Switches) Take into account -gnatd.G + switch, and set ALI file generation accordingly. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * exp_ch4.adb, exp_dist.adb: Minor reformatting. + * gnat_rm.texi, gnat_ugn.texi: -020 Add documentation clarifying that + check names introduced with pragma Check_Name are suppressed by -gnatp. + +2013-04-11 Vincent Celier <celier@adacore.com> + + * gnat_ugn.texi, projects.texi: Move chapter "Tools Supporting Project + Files" from projects.texi to gnat_ugn.texi. + +2013-04-11 Arnaud Charlet <charlet@adacore.com> + + * gcc-interface/Make-lang.in: Update dependencies. + +2013-04-11 Yannick Moy <moy@adacore.com> + + * gnat1drv.adb (Adjust_Global_Switches): Allow missing body in Alfa + mode. + +2013-04-11 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch4.adb (Expand_N_Allocator): Detect the + allocation of an anonymous controlled object where the type of + the context is named. Use the pool and finalization master of + the named access type to allocate the object. + +2013-04-11 Vincent Celier <celier@adacore.com> + + * gnat_ugn.texi: Remove most mentions of gprbuild. + * projects.texi: Remove all mentions of asociative array + attributes. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb, sem_attr.adb, gnat1drv.adb, prj-makr.adb, + opt.ads, sem_ch13.adb: Minor reformatting. + * debug.adb: Minor comment fix (remove junk .I doc). + +2013-04-11 Thomas Quinot <quinot@adacore.com> + + * rtsfind.ads, exp_dist.adb, exp_dist.ads (Rtsfind.PCS_Version, case + PolyORB): Bump to 6. + (Exp_Dist.PolyORB_Support): Replace TC_Build with + Build_Complex_TC. + +2013-04-11 Arnaud Charlet <charlet@adacore.com> + + * debug.adb, sem_prag.adb, par-ch2.adb, sem_attr.adb, gnat1drv.adb, + exp_disp.adb, opt.ads, sem_ch13.adb (Relaxed_RM_Semantics): New flag. + Enable this flag in CodePeer mode, and also via -gnatd.M. + Replace some uses of CodePeer_Mode by Relaxed_RM_Semantics. + +2013-04-11 Ed Schonberg <schonberg@adacore.com> + + * sem_ch8.adb (Check_Constrained_Object): If a subtype is created + from the renamed object in an object renaming declaration with + an unconstrained nominal subtype, freeze the created subtype at + once, to prevent order of elaboration issues in the backend. + +2013-04-11 Arnaud Charlet <charlet@adacore.com> + + * exp_aggr.adb (Aggr_Size_OK): Refine setting of Max_Aggr_Size + in particular in CodePeer mode. + +2013-04-11 Vincent Celier <celier@adacore.com> + + * gnat_ugn.texi: Add documentation for backup copies of project + files for gnatname. + +2013-04-11 Tristan Gingold <gingold@adacore.com> + + * gnat_rm.texi: Add Detect_BLocking in the ravenscar profile + pragma list. + +2013-04-11 Vincent Celier <celier@adacore.com> + + * gnatname.adb (Scan_Args): Recognize new switch --no-backup + (Usage): Add line for --no-backup. + * opt.ads (No_Backup): New Boolean variable, initialized to False. + (Ada_Version_Default): Switch to Ada 2012 by default. + * prj-makr.adb (Initialize): Create a backup for an existing + project file if gnatname is not invoked with --no-backup. + +2013-04-11 Thomas Quinot <quinot@adacore.com> + + * exp_ch4.adb: Minor code improvement: replace various calls to + Make_If_Statement in expansion with Make_Implicit_If_Statement. + +2013-04-11 Eric Botcazou <ebotcazou@adacore.com> + + * ali.adb: Fix minor typo. + +2013-04-11 Thomas Quinot <quinot@adacore.com> + + * exp_ch4.adb (Find_Enclosing_Context): Add missing case of + N_Procedure_Call_Statement. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * debug.adb: Minor comment fix. + +2013-04-11 Johannes Kanig <kanig@adacore.com> + + * debug.adb: Remove comment for -gnatd.G. + +2013-04-11 Thomas Quinot <quinot@adacore.com> + + * exp_ch4.adb (Expand_Record_Equality.Suitable_Element): + Remove recursive routine, replace with... + (Expand_Record_Equality.Element_To_Compare): New subroutine, + implement iterative search for next element to compare. + Add explanatory comment in the tagged case. + +2013-04-11 Ed Schonberg <schonberg@adacore.com> + + * sem_ch5.adb: remove spurious warning from non-empty loop. + * sem_ch8.adb (Enclosing_Instance): Make public to other routines + in the package, in order to suppress redundant semantic checks + on subprogram renamings in nested instantiations. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * errout.ads: Minor reformatting. + * sem_eval.adb (Why_Not_Static): Now issues continuation messages + (Why_Not_Static): Test for aggregates behind string literals. + * sem_eval.ads (Why_Not_Static): Now issues continuation messages. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * exp_ch4.adb (Expand_Concatenation): Wrap expansion in + Expressions_With_Actions. + +2013-04-11 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Base_Types_Match): For an actual type in an + instance, the base type may itself be a subtype, so find true + base type to determine compatibility. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * s-osprim-mingw.adb, sem_ch3.adb, sem_prag.adb, sem_util.adb. + makeutl.adb, sem_ch8.adb: Minor reformatting. + +2013-04-11 Vincent Celier <celier@adacore.com> + + * gnat_ugn.texi: Minor fixes for VMS. + * ug_words: Minor addition: -gnato? => /OVERFLOW_CHECKS=?. + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * usage.adb (Usage): Minor edit to -gnatW message + +2013-04-11 Robert Dewar <dewar@adacore.com> + + * exp_aggr.adb (Expand_N_Aggregate): Add circuit for handling + others for string literal case. Also add big ??? comment about + this new code, which should be redundant, but is not. + * sem_eval.adb (Eval_Concatenation): Handle non-static case + properly (Eval_String_Literal): Handle non-static literal properly + +2013-03-20 Tobias Burnus <burnus@net-b.de> + + * i-fortra.ads: Update comment, add Ada 2012's optional + Star and Kind data types for enhanced interoperability. + +2013-03-16 Eric Botcazou <ebotcazou@adacore.com> + + * gnatvsn.ads (Library_Version): Bump to 4.9. + +2013-03-08 Cesar Strauss <cestrauss@gmail.com> + + PR ada/52123 + * seh_init.c (Raise_From_Signal_Handler): Declare as no-return. + (__gnat_SEH_error_handler): Likewise. Remove final return. + +2013-03-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Attribute_to_gnu): Abort instead of erroring + out for an unimplemented attribute. + +2013-03-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_field): Remove the wrapper around + a misaligned integral type if a size is specified for the field. + +2013-03-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Raise_Error_to_gnu) <CE_Index_Check_Failed>: + Record the unpadded type of the index type on the RCI stack. + +2013-03-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (emit_range_check): Assert that the range type + is a numerical type and remove useless local variables. + +2013-02-25 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/ada-tree.h: Back out change accidentally committed. + +2013-02-21 Jakub Jelinek <jakub@redhat.com> + + PR bootstrap/56258 + * gnat-style.texi (@title): Remove @hfill. + * projects.texi: Avoid line wrapping inside of @pxref or @xref. + +2013-02-14 Rainer Emrich <rainer@emrich-ebersheim.de> + + PR target/52123 + * tracebak.c: Cast from pointer via FARPROC. + +2013-02-07 Simon Wright <simon@pushface.org> + + PR target/50678 + * init.c (__darwin_major_version): New function for x86-64/Darwin. + (__gnat_adjust_context_for_raise) [Darwin]: Disable the workaround + on Darwin 12 and above. + +2013-02-06 Rainer Emrich <rainer@emrich-ebersheim.de> + + PR target/52123 + * adaint.c (__gnat_check_OWNER_ACL): Cast from pointer via + SECURITY_DESCRIPTOR * + (__gnat_set_OWNER_ACL): Cast from DWORD to ACCESS_MODE + (__gnat_portable_spawn): Fix cast to char* const* + (add_handle): Cast from pointer via void ** + (add_handle): Cast from pointer via int * + (__gnat_locate_exec_on_path): Cast from pointer via TCHAR * + (__gnat_locate_exec_on_path): Cast from pointer via char * + * initialize.c (append_arg): Cast from pointer via LPWSTR + (__gnat_initialize): Cast from pointer via LPWSTR + * seh_init.c (__gnat_map_SEH): Cast from pointer via FARPROC + +2013-02-06 Hristian Kirtchev <kirtchev@adacore.com> + + * gcc-interface/Make-lang.in: Enable System.Stack_Checking.Operations + target pairs on VxWorks 5 only. + +2013-02-06 Arnaud Charlet <charlet@adacore.com> + + * gcc-interface/Make-lang.in: Update dependencies. + +2013-02-06 Vincent Celier <celier@adacore.com> + + * prj-proc.adb (Process_Aggregated_Projects): Use a new project + node tree for each project tree rooted at an aggregated project. + +2013-02-06 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_util.adb (Is_Interface_Conversion): New routine. + (Object_Access_Level): Detect an interface conversion + that has been rewritten into a different construct. Use the + original form of the conversion to find the access level of + the operand. + +2013-02-06 Eric Botcazou <ebotcazou@adacore.com> + + * einfo.ads (Has_Pragma_No_Inline): New flag using Flag201. + (Has_Pragma_No_Inline): Declare and mark as inline. + (Set_Has_Pragma_No_Inline): Likewise. + * einfo.adb (Has_Pragma_No_Inline): New function. + (Set_Has_Pragma_No_Inline): New procedure. + (Write_Entity_Flags): Handle Has_Pragma_No_Inline. + * snames.ads-tmpl (Name_No_Inline): New pragma-related name. + (Pragma_Id): Add Pragma_No_Inline value. + * par-prag.adb (Prag): Handle Pragma_Inline. + * sem_prag.adb (Inline_Status): New enumeration type. + (Process_Inline): Change Active parameter + to Inline_Status and add support for suppressed inlining. + (Analyze_Pragma) <Pragma_Inline>: Adjust to above change. + <Pragma_Inline_Always>: Likewise. + <Pragma_No_Inline>: Implement new pragma No_Inline. + (Sig_Flags): Add Pragma_No_Inline. + * gnat_rm.texi (Implementation Defined Pragmas): Add No_Inline. + * gnat_ugn.texi (Switches for gcc): Mention Pragma No_Inline. + +2013-02-06 Pascal Obry <obry@adacore.com> + + * s-osprim-mingw.adb (Clock): Make sure we copy all data locally + to avoid interleaved modifications that could happen from another + task calling Get_Base_Data. + (Get_Base_Data): Make it a critical section. Avoid updating if another + task has already done it. + +2013-02-06 Eric Botcazou <ebotcazou@adacore.com> + + * sem_prag.adb: Minor reformatting. + +2013-02-06 Pascal Obry <obry@adacore.com> + + * s-tasloc.ads: Set System.Task_Lock to preelaborate. + +2013-02-06 Eric Botcazou <ebotcazou@adacore.com> + + * snames.ads-tmpl (Name_Loop_Optimize, Name_No_Unroll, + Name_Unroll, Name_No_Vector, Name_Vector): New pragma-related + names. + (Pragma_Id): Add Pragma_Loop_Optimize value. + * par-prag.adb (Prag): Handle Pragma_Loop_Optimize. + * sem_prag.adb (Check_Loop_Invariant_Variant_Placement): Rename to... + (Check_Loop_Pragma_Placement): ...this. + (Analyze_Pragma) + <Pragma_Loop_Invariant>: Adjust to above renaming. + <Loop_Variant>: Likewise. + <Pragma_Loop_Optimize>: Implement new pragma Loop_Optimize. + (Sig_Flags): Add Pragma_Loop_Optimize. + * gnat_rm.texi (Implementation Defined Pragmas): Add Loop_Optimize. + * gnat_ugn.texi (Vectorization of loops): Mention Loop_Optimize. + +2013-02-06 Robert Dewar <dewar@adacore.com> + + * osint.ads: Minor fix of typo. + +2013-02-06 Sergey Rybin <rybin@adacore.com frybin> + + * gnat_ugn.texi: gnatmetric: update the documentation of + complexity metrics for Ada 2012. + +2013-02-06 Javier Miranda <miranda@adacore.com> + + * exp_disp.adb (Make_Secondary_DT): Code cleanup: + remove useless initialization. + +2013-02-06 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Build_Discriminant_Constraints): Do not + generate overflow checks on a discriminant expression if the + discriminant constraint is applied to a private type that has + a full view, because the check will be applied when the full + view is elaborated. Removing the redundant check is not just + an optimization, but it prevents spurious assembler errors, + because of the way the backend generates names for expressions + that require overflow checking. + +2013-02-06 Pascal Obry <obry@adacore.com> + + * s-osprim-mingw.adb: Removes workaround for an old GNU/Linker + limitation on Windows. + (DA): Removed. + (LIA): Removed. + (LLIA): Removed. + (TFA): Removed. + (BTA): Removed. + (BMTA): Removed. + (BCA): Removed. + (BMCA): Removed. + (BTiA): Removed. + (Clock): Use variable corresponding to access. + (Get_Base_Time): Likewise. + (Monotonic_Clock): Likewise. + +2013-02-06 Vincent Celier <celier@adacore.com> + + * make.adb (Gnatmake): When gnatmake is called with a project + file, do not invoke gnatbind with -I-. + * makeutl.adb (Create_Binder_Mapping_File): Rewrite function. Get + the infos from all the sources. + +2013-02-06 Ed Schonberg <schonberg@adacore.com> + + * snames.ads-tmpl: Add Name_Overriding_Renamings and pragma + Overriding_Renamings. + * par-prag.adb: Recognize pragma Overriding_Renamings. + * opt.ads (Overriding_Renamings): flag to control compatibility + mode with Rational compiler, replaces Rational_Profile flag. + * sem_ch8.adb (Analyze_Subprogram_Renaming): When + Overriding_Renamings is enabled, accept renaming declarations + where the new subprogram renames and overrides a locally inherited + operation. Improve error message for some illegal renamings. + * sem_prag.adb (Analyze_Pragma): Add case for Overriding_Renamings. + (Set_Rational_Profile): The Rational_Profile enables + Overriding_Renamings, Implicit_Packing, and Use_Vads_Size. + +2013-02-06 Ed Schonberg <schonberg@adacore.com> + + * sem_util.adb: Set parent of copied aggregate component, to + prevent infinite loop. + +2013-02-06 Robert Dewar <dewar@adacore.com> + + * sem_ch3.adb, sem_ch10.adb: Minor reformatting. + * exp_disp.adb: Minor comment update. + * comperr.ads, osint.ads, rtsfind.adb, sem_prag.adb: Minor addition of + No_Return pragmas. + +2013-02-06 Thomas Quinot <quinot@adacore.com> + + * targparm.ads, sem_ch13.adb (Support_Nondefault_SSO): New target + parameter, defaulted to False for now, indicates targets where + non-default scalar storage order may be specified. + +2013-02-06 Thomas Quinot <quinot@adacore.com> + + * sprint.adb (Write_Itype): Treat E_Record_Subtype_With_Private + same as E_Record_Subtype. Display E_Class_Wide_Subtype as + subtype, not type. + +2013-02-06 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch3.adb (Complete_Private_Subtype): Inherit the + Has_Unknown_Discriminants from the full view of the base type. + +2013-02-06 Tristan Gingold <gingold@adacore.com> + + * raise-gcc.c: Remove useless includes (sys/stat.h, adaint.h) + Enclosing debugging functions within #ifndef inhibit_libc to + support builds without full C headers. + +2013-02-06 Thomas Quinot <quinot@adacore.com> + + * gnat_rm.texi: Add a minimal example of Scalar_Storage_Order. + +2013-02-06 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch10.adb (Install_Limited_Withed_Unit): Add a missing + check to detect a parent-child relationship between two units in + order to correctly bypass the installation of a limited view. In + other words, the comment on the intended usage of the check was + correct, but the code itself did not reflect the behavior. + +2013-02-06 Javier Miranda <miranda@adacore.com> + + * exp_ch5.adb (Expand_N_Assignment_Statement): Do not generate the + runtime check on assignment to tagged types if compiling with checks + suppressed. + +2013-02-06 Robert Dewar <dewar@adacore.com> + + * exp_util.adb, checks.adb, sem_ch12.adb, sem_res.adb, prj-conf.adb, + s-os_lib.adb: Minor reformatting + +2013-02-06 Vincent Celier <celier@adacore.com> + + * ug_words: Add -gnateY = /IGNORE_STYLE_CHECKS_PRAGMAS. + +2013-02-06 Ed Schonberg <schonberg@adacore.com> + + * snames.ads-tmpl: Add Name_Rational and pragma Rational. + * par-prag.adb: Recognize pragma Rational. + * opt.ads (Rational_Profile): flag to control compatibility mode + with Rational compiler. + * sem_ch8.adb (Analyze_Subprogram_Renaming): When Rational profile + is enable, accept renaming declarations where the new subprogram + and the renamed entity have the same name. + * sem_prag.adb (analyze_pragma): Add pragma Rational, and recognize + Rational as a profile. + +2013-02-06 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch5.adb (Expand_Loop_Entry_Attributes): When + dealing with a for loop that iterates over a subtype indication + with a range, use the low and high bounds of the subtype. + +2013-02-06 Nicolas Roche <roche@adacore.com> + + * s-os_lib.adb (Normalize_Arguments): Arguments containing tabs should + be quoted + +2013-02-06 Vincent Celier <celier@adacore.com> + + * prj-conf.adb (Process_Project_And_Apply_Config): New variable + Conf_Project. New recursive procedure Check_Project to find a non + aggregate project and put its Project_Id in Conf_Project. Fails if + no such project can be found. + (Get_Or_Create_Configuration_File): New parameter Conf_Project. + (Do_Autoconf): Use project directory of project Conf_Project to store + the generated configuration project file. + * prj-conf.ads (Get_Or_Create_Configuration_File): New parameter + Conf_Project. + +2013-02-06 Javier Miranda <miranda@adacore.com> + + * sem_res.adb (Resolve_Actuals): Generate a read + reference for out-mode parameters in the cases specified by + RM 6.4.1(12). + +2013-02-06 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_attr.adb (Resolve_Attribute): Do not resolve the prefix of + Loop_Entry, instead wait until the attribute has been expanded. The + delay ensures that any generated checks or temporaries are inserted + before the relocated prefix. + +2013-02-06 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb: Code clean up. + +2013-02-06 Ed Schonberg <schonberg@adacore.com> + + * checks.adb (Apply_Discriminant_Check): Look for discriminant + constraint in full view of private type when needed. + * sem_ch12.adb (Validate_Array_Type_Instance): Specialize + previous patch to components types that are private and without + discriminants. + +2013-02-06 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch4.adb (Find_Enclosing_Context): Recognize + a simple return statement as one of the cases that require special + processing with respect to temporary controlled function results. + (Process_Transient_Object): Do attempt to finalize a temporary + controlled function result when the associated context is + a simple return statement. Instead, leave this task to the + general finalization mechanism. + +2013-02-06 Thomas Quinot <quinot@adacore.com> + + * einfo.ads: Minor reformatting. + (Status_Flag_Or_Transient_Decl): Add ??? comment. + +2013-02-06 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch4.adb (Expand_N_Expression_With_Actions): Rewritten. This + routine should be able to properly detect controlled transient + objects in its actions and generate the appropriate finalization + actions. + * exp_ch6.adb (Enclosing_Context): Removed. + (Expand_Ctrl_Function_Call): Remove local subprogram and + constant. Use routine Within_Case_Or_If_Expression to determine + whether the lifetime of the function result must be extended to + match that of the context. + * exp_util.ads, exp_util.adb (Within_Case_Or_If_Expression): New + routine. + +2013-02-06 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Validate_Array_Type_Instance): Extend check + for subtype matching of component type of formal array type, + to avoid spurious error when component type is a separate actual + in the instance, and there may be a discrepancy between private + and full view of component type. + +2013-02-06 Robert Dewar <dewar@adacore.com> + + * s-dim.ads, clean.adb: Minor reformatting. + +2013-02-06 Javier Miranda <miranda@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Undo previous patch. + (Can_Split_Unconstrained_Function): Only split the inlined function if + the compiler generates the code of its body. + +2013-02-06 Robert Dewar <dewar@adacore.com> + + * exp_prag.adb, sem_ch3.adb, exp_attr.adb, sem_prag.adb, sem_ch6.adb, + exp_intr.adb, exp_dist.adb, sem_ch13.adb: Internal clean up for + N_Pragma nodes. + +2013-02-06 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Minor text updates for pragma Warning. + +2013-02-06 Geert Bosch <bosch@adacore.com> + + * s-multip.adb (Number_Of_CPUs): Short-circuit in case of + CPU'Last = 1. + +2013-02-06 Vincent Celier <celier@adacore.com> + + * clean.adb (Delete): On VMS use host notation to delete all files. + +2013-02-06 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb, sem_ch6.adb, prj-conf.adb, erroutc.adb: Minor + reformatting. + +2013-02-06 Gary Dismukes <dismukes@adacore.com> + + * sem_ch6.adb (Check_For_Primitive_Subprogram): Test for + the special case of a user-defined equality that overrides + the predefined equality of a nonderived type declared in a + declarative part. + * sem_util.adb (Collect_Primitive_Operations): Add test for + Is_Primitive when looping over the subprograms following a type, + to catch the case of primitives such as a user-defined equality, + which otherwise won't be found when the type is not a derived + type and is declared in a declarative part. + +2013-02-06 Vincent Celier <celier@adacore.com> + + * prj-conf.adb (Check_Target): Always return True when Target + is empty (Get_Or_Create_Configuration_File.Get_Project_Target): + New procedure to get the value of attribute Target in the main + project. + (Get_Or_Create_Configuration_File.Do_Autoconf): No + need to get the value of attribute Target in the main project. + (Get_Or_Create_Configuration_File): Call Get_Project_Target and + use the target fom this call. + +2013-02-06 Eric Botcazou <ebotcazou@adacore.com> + + * erroutc.adb (Validate_Specific_Warning): Do not issue the + warning about an ineffective Pragma Warnings for -Wxxx warnings. + * sem_prag.adb (Analyze_Pragma) <Warnings>: Accept -Wxxx warnings. + * gnat_rm.texi (Pragma Warnings): Document coordination with + warnings of the GCC back-end. + +2013-02-06 Javier Miranda <miranda@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not build the body + of an inlined function if we do not generate code for the function. + +2013-02-06 Pascal Obry <obry@adacore.com> + + * s-os_lib.adb (Locate_Exec_On_Path): Call Normalize_Pathname + with Resolve_Links set to False. + +2013-02-03 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c: Include diagnostic-core.h. + (gnat_to_gnu_entity) <E_Array_Type>: Sorry if Reverse_Storage_Order + is set on the entity. + <E_Record_Type>: Likewise. + * gcc-interface/Make-lang.in (ada/decl.o): Add $(DIAGNOSTIC_CORE_H). + +2013-01-29 Ben Brosgol <brosgol@adacore.com> + + * gnat_rm.texi: Fixed typos. Minor edits. + +2013-01-29 Bob Duff <duff@adacore.com> + + * a-convec.adb: Minor reformatting. + +2013-01-29 Pascal Obry <obry@adacore.com> + + * tempdir.adb, tempdir.ads (Use_Temp_Dir): Set wether to use the temp + directory. + +2013-01-29 Ed Schonberg <schonberg@adacore.com> + + * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Preserve loop + identifier only if it comes from source. + (Expand_N_Loop_Statement): If the domain of iteration is an + enumeration type with a representation clause, remove from + visibility the loop identifier before rewriting the loop as a + block with a declaration for said identifier. + * sem_util.adb (Remove_Homonym): Handle properly the default case. + +2013-01-29 Vincent Celier <celier@adacore.com> + + * prj-proc.adb: Minor comment spelling fix. + +2013-01-29 Pascal Obry <obry@adacore.com> + + * prj-proc.adb (Process_Expression_Variable_Decl): Prepend + Project_Path to current environment. + +2013-01-29 Thomas Quinot <quinot@adacore.com> + + * sprint.adb (Sprint_Node_Actual): Output freeze nodes for + itypes even if Dump_Freeze_Null is not set. + +2013-01-29 Robert Dewar <dewar@adacore.com> + + * sem_util.adb: Minor reformatting. + * s-rident.ads: Minor comment fixes. + +2013-01-29 Pascal Obry <obry@adacore.com> + + * prj-env.ads, prj-env.adb (Add_Directories): Add parameter to + control if the path is prepended or appended. + +2013-01-29 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Analyze_Expression_Function): An expression + function declaration is not a subprogram declaration, and thus + cannot appear in a protected definition. + +2013-01-29 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_util.adb (Insert_Actions): When new + actions come from the expression of the expression with actions, + then they must be added to the list of existing actions. + +2013-01-29 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch3.adb (Analyze_Subtype_Declaration) <Private_Kind>: For + the subtype of a constrained private type with discriminants + that has got a full view, show that the completion is a clone + of the full view. + +2013-01-29 Javier Miranda <miranda@adacore.com> + + * errout.ads, errout.adb (Get_Ignore_Errors): New subprogram. + * opt.ads (Warn_On_Overlap): Update documentation. + * sem_aggr.adb (Resolve_Aggregate, Resolve_Extension_Aggregate): + Check function writable actuals. + * sem_ch3.adb (Build_Derived_Record_Type, + Record_Type_Declaration): Check function writable actuals. + * sem_ch4.adb (Analyze_Range): Check function writable actuals. + * sem_ch5.adb (Analyze_Assignment): Remove code of the initial + implementation of AI05-0144. + * sem_ch6.adb (Analyze_Function_Return, + (Analyze_Procedure_Call.Analyze_Call_And_Resolve): Remove code + of the initial implementation of AI05-0144. + * sem_res.adb (Resolve): Remove code of the initial implementation. + (Resolve_Actuals): Call Check_Function_Writable_Actuals and remove call + of the initial implementation. + (Resolve_Arithmetic_Op, Resolve_Logical_Op, + Resolve_Membership_Op): Check function writable actuals. + * sem_util.ad[sb] (Actuals_In_Call): Removed + (Check_Order_Dependence): Removed (Save_Actual): Removed + (Check_Function_Writable_Actuals): New subprogram. + * usage.adb (Usage): Update documentation. + * warnsw.adb (Set_Warning_Switch): Enable warn_on_overlap when + setting all warnings. + +2013-01-29 Robert Dewar <dewar@adacore.com> + + * a-calend-vms.adb: Minor comment fix. + +2013-01-29 Robert Dewar <dewar@adacore.com> + + * mlib-utl.adb, gnatlink.adb: Avoid reference to ASCII.Back_Slash + because of casing issues. + * sem_util.ads: Minor comment fix. + * style.adb (Check_Identifier): Set proper casing for entities + in ASCII. + * styleg.adb: Minor comment improvement. + * stylesw.ads (Style_Check_Standard): Fix bad comments. + +2013-01-29 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb: Add the grammar for pragmas Abstract_State and Global. + (Analyze_Pragma): Push the scope of the related subprogram and install + its formals once before starting the analysis of the [moded] global + list. + +2013-01-29 Pascal Obry <obry@adacore.com> + + * prj-proc.adb (Process_Expression_Variable_Decl): Always handle + relative paths in Project_Path as relative to the aggregate + project location. Note that this was what was documented. + +2013-01-29 Vincent Celier <celier@adacore.com> + + * gnatcmd.adb: For "gnat stub -P ...", do not check the naming + scheme for Ada, when Ada is not a language for the project. + +2013-01-29 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Analyze_Subtype_Declaration): Inherit + Is_Generic_Actual_Type flag in a nested instance. + * sem_ch12.adb (Restore_Private_Views): Preserve + Is_Generic_Actual_Type flag if actual is a Generic_Actual_Type + of an enclosing instance. + * sem_util.adb (Corresponding_Generic_Type): Handle generic actual + which is an actual of an enclosing instance. + * sem_type.adb (Real_Actual): If a generic_actual_type is the + formal of an enclosing generic and thus renames the corresponding + actual, use the actual of the enclosing instance to resolve + spurious ambiguities in instantiations when two formals are + instantiated with the same actual. + +2013-01-29 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Document all Ada 2005 and Ada 2012 pragmas as + being available as implementation-defined pragmas in earlier + versions of Ada. + +2013-01-29 Vincent Celier <celier@adacore.com> + + * clean.adb (Delete): On VMS, delete all versions of the file. + +2013-01-29 Robert Dewar <dewar@adacore.com> + + * par-ch6.adb (No_Constraint_Maybe_Expr_Func): New procedure. + * par-util.adb (No_Constraint): Undo special handling, moved + to par-ch6.adb. + +2013-01-29 Robert Dewar <dewar@adacore.com> + + * aspects.ads: Aspect Warnings is implementation defined Add + some other missing entries to impl-defined list Mark Warnings + as GNAT pragma in main list. + * sem_ch8.adb: Process aspects for all cases of renaming + declarations. + +2013-01-29 Robert Dewar <dewar@adacore.com> + + * sem_ch6.adb (Analyze_Function_Call): Set In_Assertion flag. + * sem_elab.adb (Check_Internal_Call_Continue): Do not issue + warnings about possible elaboration error if call is within + an assertion. + * sinfo.ads, sinfo.adb (In_Assertion): New flag in N_Function_Call node. + +2013-01-29 Robert Dewar <dewar@adacore.com> + + * a-calend-vms.adb, g-eacodu-vms.adb, g-trasym-vms-alpha.adb, + * s-auxdec-vms-ia64.adb, s-mastop-vms.adb, s-osprim-vms.adb, + s-tasdeb-vms.adb: Replace pragma Interface by pragma Import. + +2013-01-29 Robert Dewar <dewar@adacore.com> + + * opt.ads (Ignore_Style_Checks_Pragmas): New flag. + * par-prag.adb (Par, case Style_Checks): Recognize + Ignore_Style_Checks_Pragmas. + * sem_prag.adb (Analyze_Pragma, case Style_Checks): Recognize + Ignore_Style_Checks_Pragmas. + * switch-c.adb: Recognize -gnateY switch. + * usage.adb: Add documentation for "-gnateY". + * vms_data.ads: Add IGNORE_STYLE_CHECKS_PRAGMAS (-gnateY). + +2013-01-29 Vincent Celier <celier@adacore.com> + + * clean.adb (Clean_Executables): Add Sid component when calling + Queue.Insert. + * make.adb: When inserting in the Queue, add the Source_Id + (Sid) when it is known (Start_Compile_If_Possible): When the + Source_Id is known (Sid), get the path name of the ALI file + (Full_Lib_File) from it, to avoid finding old ALI files in other + object directories. + * makeutl.ads (Source_Info): New Source_Id component Sid in + Format_Gnatmake variant. + +2013-01-29 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Document -gnateY. + +2013-01-29 Doug Rupp <rupp@adacore.com> + + * s-osinte-vms.ads, s-taprop-vms.adb, system-vms_64.ads, + system-vms-ia64.ads: Replace pragma Interface by pragma Import. + +2013-01-29 Robert Dewar <dewar@adacore.com> + + * atree.ads, atree.adb (Node30): New function. + (Set_Node30): New procedure. + (Num_Extension_Nodes): Change to 5 (activate new fields/flags). + * atree.h: Add macros for Field30 and Node30. + * einfo.ads, einfo.adb: Move some fields to avoid duplexing. + * treepr.adb (Print_Entity_Information): Print fields 30-35. + +2013-01-29 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb (Analyze_Pragma, case Interface): Consider to + be a violation of No_Obsolescent_Features even in Ada 95. Also + generates a warning in -gnatwj mode. + (Analyze_Pragma, case Interface_Name): Generates a warning in -gnatwj + mode. + * gnat_ugn.texi: Additional documentation on -gnatwj and pragma + Interface[_Name]. + +2013-01-29 Vincent Celier <celier@adacore.com> + + * snames.ads-tmpl: Add new standard name Trailing_Switches. + +2013-01-29 Ed Schonberg <schonberg@adacore.com> + + * sem_disp.adb (Check_Controlling_Type): If a designated type T + of an anonymous access type is a limited view of a tagged type, + it can be a controlling type only if the subprogram is in the + same scope as T. + +2013-01-29 Vincent Celier <celier@adacore.com> + + * gnatcmd.adb: Use the project where the config pragmas file is + declared to get its path. + +2013-01-29 Vincent Celier <celier@adacore.com> + + * prj-attr.adb: New attribute Linker'Trailing_Switches. + +2013-01-22 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (gnat_to_gnu) <N_Expression_With_Actions>: Do + not translate the Etype of the node before translating the Actions. + +2013-01-22 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Pragma_to_gnu) <Name_Space>: Use optimize_size + instead of optimize and adjust warning message. + (Compilation_Unit_to_gnu): Process pragmas preceding the unit. + +2013-01-22 Tristan Gingold <gingold@adacore.com> + + * gcc-interface/gigi.h (ADT_unhandled_except_decl, + ADT_unhandled_others_decl): New. + (unhandled_others_decl, unhandled_except_decl): Define. + * gcc-interface/trans.c: Include common/common-target.h. + (gigi): Initialize them. + (Subprogram_Body_to_gnu): On SEH targets, wrap the body of the main + function in a try/catch clause. + +2013-01-11 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Make-lang.in (COMMON_ADAFLAGS): Remove -gnata. + (CHECKING_ADAFLAGS): New. + (ALL_ADAFLAGS): Include CHECKING_ADAFLAGS. + +2013-01-10 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/config-lang.in (boot_language_boot_flags): Delete. + * gcc-interface/Make-lang.in (BOOT_ADAFLAGS): Likewise. + +2013-01-07 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Adjust + comment about type extension with discriminants. + <E_Record_Subtype>: Remove useless test and reorder conditions. + (elaborate_entity) <E_Record_Subtype>: Likewise. + +2013-01-07 Richard Biener <rguenther@suse.de> + + PR ada/864 + * gcc-interface/Make-lang.in (ada.install-common): Always apply + program_transform_name. + +2013-01-06 Eric Botcazou <ebotcazou@adacore.com> + + * gnatvsn.ads (Current_Year): Bump to 2013. + +2013-01-06 Olivier Hainque <hainque@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_field): Emit a specialized + diagnostic for component size mismatch wrt volatile requirements. + Add a gcc_unreachable() at the end of the checks for size. Split + the check on volatile for positions into one check on atomic and + a subsequent one on volatile. + +2013-01-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (elaborate_entity) <E_Record_Type>: Delete. + +2013-01-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <discrete_type>: Do not + pack the field of the record type made for a misaligned type. + +2013-01-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (annotate_value) <COMPONENT_REF>: Be prepared + for discriminants inherited from parent record types. + +2013-01-04 Robert Dewar <dewar@adacore.com> + + * warnsw.adb: Minor fixes to -gnatw.d handling. + +2013-01-04 Robert Dewar <dewar@adacore.com> + + * einfo.adb, atree.adb: Enlarge entities to make 63 more flags, 6 more + fields. + +2013-01-04 Joel Brobecker <brobecker@adacore.com> + + * gnat_ugn.texi: Fix typo. + +2013-01-04 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Document alignment choice for subtypes. + +2013-01-04 Robert Dewar <dewar@adacore.com> + + * validsw.ads: Minor fix to comment. + +2013-01-04 Doug Rupp <rupp@adacore.com> + + * Makefile.rtl (GNATRTL_NONTASKING_OBJS, + GNATRTL_ALTIVEC_OBJS): Factor g-al* objects. + * gcc-interface/Makefile.in (ADA_EXCLUDE_SRCS): Add g-al* sources. + (GNATRTL_ALTIVEC_OBJS): Override to null for VMS. + Rename leon vxworks toolchain as leon-wrs-vxworks. + * gcc-interface/Make-lang.in: Update dependencies + +2013-01-04 Pascal Obry <obry@adacore.com> + + * prj.ads (For_Each_Source): Add Locally_Removed parameter. + (Source_Iterator): Add Locally_Removed field. + * prj.adb (For_Each_Source): Ignore Locally_Removed files if needed. + (Next): Likewise. + +2013-01-04 Robert Dewar <dewar@adacore.com> + + * exp_attr.adb: Minor reformatting. + +2013-01-04 Robert Dewar <dewar@adacore.com> + + * checks.adb (Insert_Valid_Check): Fix handling of renamed + packed array element. + * exp_ch4.adb (Expand_Concatenate): Fix some missing parent + fields in generated code. + * exp_util.adb (Side_Effect_Free): Improve detection of cases + needing renaming. + +2013-01-04 Robert Dewar <dewar@adacore.com> + + * sinfo.ads: Clean up order of N_xxx subtypes + +2013-01-04 Vincent Celier <celier@adacore.com> + + * prj-conf.adb (Check_Target): Allow --autoconf= with no target. + +2013-01-04 Robert Dewar <dewar@adacore.com> + + * types.ads, prj-conf.adb, par-tchk.adb: Minor reformatting. + +2013-01-04 Robert Dewar <dewar@adacore.com> + + * par-ch6.adb (P_Subprogram): Better handling of missing IS + after expression function. + * par-util.adb (No_Constraint): Improve handling to avoid bad warnings. + +2013-01-04 Robert Dewar <dewar@adacore.com> + + * exp_util.ads, exp_util.adb (Insert_Actions): In expression with + actions case, new actions are appended to the sequence rather than + prepended. + +2013-01-04 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Document -gnatw.d/w.D (does no apply in VMS mode). + * usage.adb: Add lines for -gnatw.d/w.D switches. + * warnsw.adb: Minor fixes (some missing cases of setting + Warning_Doc_Switch). Reject -gnatw.d and -gnatw.D in VMS mode. + +2013-01-04 Robert Dewar <dewar@adacore.com> + + * exp_util.adb (Remove_Side_Effects): Make sure scope suppress + is restored on exit. + +2013-01-04 Robert Dewar <dewar@adacore.com> + + * usage.adb: Document -gnateF (check overflow for predefined Float). + +2013-01-04 Robert Dewar <dewar@adacore.com> + + * sem_res.adb (Resolve_Type_Conversion): Remove incorrect + prevention of call to Apply_Type_Conversion_Checks, which resulted + in missing check flags in formal mode. + +2013-01-04 Vincent Celier <celier@adacore.com> + + * makeutl.ads (Db_Switch_Args): New table used by gprbuild. + * prj-conf.adb (Check_Builder_Switches): Check for switches + --config= (Get_Db_Switches): New procedure to get the --db + switches so that they are used when invoking gprconfig in + auto-configuration. + (Do_Autoconf): When invoking gprconfig, use the --db switches, if any. + +2013-01-04 Pascal Obry <obry@adacore.com> + + * prj-nmsc.adb: Minor reformatting. + +2013-01-04 Vincent Celier <celier@adacore.com> + + * makeutl.ads (Root_Environment): New variable, moved rom + gprbuild (Load_Standard_Base): New Boolean variable, moved + from gprbuild. + * prj-conf.adb (Check_Builder_Switches): New procedure to check + for switch --RTS in package Builder. If a runtime specified + by --RTS is a relative path name, but not a base name, then + find the path on the Project Search Path. + (Do_Autoconf): Call Check_Builder_Switches. + (Locate_Runtime): New procedure, moved from gprbuild, to get the + absolute paths of runtimes when they are not specified as a base name. + * prj-conf.ads (Locate_Runtime): New procedure, moved from gprbuild. + +2013-01-04 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Build_Private_Derived_Type): Set + Has_Private_Ancestor on type derived from an untagged private + type whose full view has discriminants + * sem_aggr.adb (Resolve_Record_Aggregate): Reject non-extension + aggregate for untagged record type with private ancestor. + +2013-01-04 Thomas Quinot <quinot@adacore.com> + + * sem_elab.adb, sem_ch3.adb: Minor reformatting. + +2013-01-04 Robert Dewar <dewar@adacore.com> + + * table.adb: Minor reformatting. + +2013-01-04 Ed Schonberg <schonberg@adacore.com> + + * sem_ch10.adb (Check_Redundant_Withs): A with_clause that does + not come from source does not generate a warning for redundant + with_clauses. + +2013-01-04 Hristian Kirtchev <kirtchev@adacore.com> + + * aspects.adb, aspects.ads: Add Aspect_Global to all relevant tables. + * par-prag.adb: Add pragma Global to the list of pragmas that + do not need special processing by the parser. + * sem_ch13.adb (Analyze_Aspect_Specifications): Convert aspect + Global into a pragma without any form of legality checks. The + work is done by Analyze_Pragma. The aspect and pragma are both + marked as needing delayed processing. Insert the corresponding + pragma of aspect Abstract_State in the visible declarations of the + related package. + (Check_Aspect_At_Freeze_Point): Aspect Global + does not need processing even though it is marked as delayed. + Alphabetize the list on aspect names. + * sem_prag.adb: Add a value for pragma Global in table Sig_Flags. + (Analyze_Pragma): Add ??? comment about the grammar of pragma + Abstract_State. Move the error location from the pragma to the + state to improve the quality of error placement. Add legality + checks for pragma Global. + * snames.ads-tmpl Add the following specially recognized names + +2013-01-04 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch3.adb: Fix minor typo. + +2013-01-04 Ed Schonberg <schonberg@adacore.com> + + * par-ch13.adb (Aspect_Specifications_Present): In Strict mode, + accept an aspect name followed by a comma, indicating a defaulted + boolean aspect. + +2013-01-04 Joel Brobecker <brobecker@adacore.com> + + * gnat_ugn.texi: Document procedure to codesign GDB on Darwin. + Update doc on gnattest --separates switch. + +2013-01-04 Thomas Quinot <quinot@adacore.com> + + * s-chepoo.ads: Minor reformatting. + +2013-01-04 Arnaud Charlet <charlet@adacore.com> + + * usage.adb: Remove mention of -gnatN in usage. + +2013-01-04 Robert Dewar <dewar@adacore.com> + + * exp_prag.adb, gnatcmd.adb, exp_util.adb, table.adb, sem_prag.adb, + freeze.adb, sem_ch4.adb, sem_warn.adb, opt.ads, exp_aggr.adb, + prj-conf.adb, sem_ch13.adb: Minor reformatting. + +2013-01-04 Thomas Quinot <quinot@adacore.com> + + * sinfo.ads: Minor documentation update. + +2013-01-04 Thomas Quinot <quinot@adacore.com> + + * sem_ch3.adb, einfo.adb (Analyze_Object_Declaration): Do not set Ekind + before resolving initialization expression. + +2013-01-04 Hristian Kirtchev <kirtchev@adacore.com> + + * checks.adb (Generate_Index_Checks): Delay the generation of + the check for an indexed component where the prefix mentions + Loop_Entry until the attribute has been properly expanded. + * exp_ch5.adb (Expand_Loop_Entry_Attributes): Perform minor + decoration of the constant that captures the value of Loop_Entry's + prefix at the entry point into a loop. Generate index checks + for an attribute reference that has been transformed into an + indexed component. + +2013-01-04 Thomas Quinot <quinot@adacore.com> + + * exp_prag.adb, exp_util.adb, exp_util.ads, freeze.adb, exp_aggr.adb, + sem_ch13.adb (Exp_Aggr.Collect_Initialization_Statements): Nothing to + do if Obj is already frozen. + (Exp_Util.Find_Init_Call): Rename to... + (Exp_Util.Remove_Init_Call): New subprogram, renamed from + Find_Init_Call. Remove the initialization call from the enclosing + list if found, and if it is from an Initialization_Statements + attribute, reset it. + (Exp_Util.Append_Freeze_Action): Minor code reorganization. + (Exp_Util.Append_Freeze_Actions): Ensure a freeze node has been + allocated (as is already done in Append_Freeze_Action). + (Freeze.Freeze_Entity): For an object with captured + Initialization_Statements and non-delayed freezeing, unwrap the + initialization statements and insert and them directly in the + enclosing list. + (Sem_Ch13.Check_Address_Clause): For an object + with Initialization_Statements and an address clause, unwrap the + initialization statements when moving them to the freeze actions. + +2013-01-03 Pascal Obry <obry@adacore.com> + + * prj-attr.adb, projects.texi, snames.ads-tmpl: Add package remote and + corresponding attibutes. + +2013-01-03 Thomas Quinot <quinot@adacore.com> + + * exp_aggr.adb: Minor comment improvement. + +2013-01-03 Hristian Kirtchev <kirtchev@adacore.com> + + * aspects.adb, aspects.ads: Add Aspect_Abstract_State to all the + relevant tables. + * einfo.ads, einfo.adb: Add Integrity_Level and Refined_State to + the description of fields (Abstract_States): New routine. + (Integrity_Level): New routine. + (Has_Property): New routine. + (Is_Input_State): New routine. + (Is_Null_State): New routine. + (Is_Output_State): New routine. + (Is_Volatile_State): New routine. + (Refined_State): New routine. + (Set_Abstract_States): New routine. + (Set_Integrity_Level): New routine. + (Set_Refined_State): New routine. + (Write_Field8_Name): Add proper output for E_Abstract_State. + (Write_Field9_Name): Add proper output for E_Abstract_State. + (Write_Field25_Name): Add proper output for E_Package. + * lib-xref.ads: Add new letter for an abstract state. + * par-prag.adb: Add pragma Abstract_State to the list of pragma + that do not need special processing by the parser. + * sem_ch13.adb (Analyze_Aspect_Specifications): Convert + aspect Abstract_State into a pragma without any form + of legality checks. The work is done by Analyze_Pragma. + (Check_Aspect_At_Freeze_Point): Aspect Abstract_State does not + require delayed analysis. + * sem_prag.adb: Add a value for pragma Abstract_State in table + Sig_Flags. + (Analyze_Pragma): Add legality checks for pragma + Abstract_State. Analysis of individual states introduces a state + abstraction entity into the visibility chain. + * snames.ads-tmpl: Add new names for abstract state and + integrity. Add new pragma id for abstract state. + +2013-01-03 Bob Duff <duff@adacore.com> + + * table.adb (Reallocate): Calculate new Length in + Long_Integer to avoid overflow. + +2013-01-03 Thomas Quinot <quinot@adacore.com> + + * sem_ch3.adb, sinfo.ads, freeze.adb, sem_ch4.adb, exp_aggr.adb + (Sem_Ch3.Analyze_Object_Declaration): Set Ekind early so that + it is set properly when expanding the initialization expression. + (Freeze.Check_Address_Clause): Transfer initialization expression + to an assignment in the freeze actions, so that the object is + initialized only after being elaborated by GIGI. + (Sinfo (comments), Sem_Ch4.Analyze_Expression_With_Actions): Allow + a Null_Statement as the expression in an Expression_With_Actions. + (Exp_Aggr.Collect_Initialization_Statements): New subprogram + shared by expansion of record and array aggregates, used to + capture statements for an aggregate used to initalize an object + into an Expression_With_Actions (which acts as a container for + a list of actions). + (Exp_Aggr.Convert_Aggr_In_Obj_Decl): Use the above to + capture initialization statements, instead of the previously + existing loop which left freeze nodes out of the capturing + construct (causing out of order elaboration crashes in GIGI). + (Exp_Aggr.Expand_Array_Aggregate): Use the above to capture + initialization statements (this was previously not done for + arrays). Also do not unconditionally prevent in place expansion + for an object with address clause. + +2013-01-03 Thomas Quinot <quinot@adacore.com> + + * gnat_rm.texi, freeze.adb (Check_Component_Storage_Order): Check that + a record extension has the same scalar storage order as the parent type. + +2013-01-03 Thomas Quinot <quinot@adacore.com> + + * exp_ch4.adb: Add comment. + +2013-01-03 Vincent Celier <celier@adacore.com> + + * prj.adb: Minor spelling error correction in comment. + +2013-01-03 Vincent Celier <celier@adacore.com> + + * gnatcmd.adb (GNATCmd): If a single main has been specified + as an absolute path, use its simple file name to find specific + switches, instead of the absolute path. + +2013-01-03 Javier Miranda <miranda@adacore.com> + + * sem_warn.adb (Warn_On_Overlapping_Actuals): For overlapping + parameters that are record types or array types generate warnings + only compiling under -gnatw.i + * opt.ads (Extensions_Allowed): Restore previous documentation. + +2013-01-03 Vincent Celier <celier@adacore.com> + + * prj-conf.adb (Do_Autoconf): If Target is specified in the + main project, but not on the command line, use the Target in + the project to invoke gprconfig in auto-configuration. + * makeutl.ads (Default_Config_Name): New constant String. + +2013-01-03 Arnaud Charlet <charlet@adacore.com> + + * usage.adb: Minor: fix typo in usage. + +2013-01-03 Thomas Quinot <quinot@adacore.com> + + * sem_ch13.adb (Analyze_Record_Representation_Clause): Reject + an illegal component clause for an inherited component in a + record extension. + +2013-01-03 Emmanuel Briot <briot@adacore.com> + + * xref_lib.adb (Parse_Identifier_Info): Fix handling of arrays, which + have information in the ALI file for both the index and the component + types. + +2013-01-03 Emmanuel Briot <briot@adacore.com> + + * projects.texi: Fix error in documenting the project path + computed for an aggregate project. + +2013-01-03 Javier Miranda <miranda@adacore.com> + + * sem_warn.adb (Warn_On_Overlapping_Actuals): Adding documentation + plus restricting the functionality of this routine to cover the + cases described in the Ada 2012 reference manual. The previous + extended support is now available under -gnatX. + * s-tassta.adb (Finalize_Global_Tasks): Addition of a dummy + variable to call Timed_Sleep. Required to avoid warning on + overlapping out-mode actuals. + * opt.ads (Extensions_Allowed): Update documentation. + +2013-01-03 Tristan Gingold <gingold@adacore.com> + + * s-arit64.ads: Use Multiply_With_Ovflo_Check as __gnat_mulv64. + * arit64.c: Removed + * gcc-interface/Makefile.in: Remove reference to arit64.c. + +2013-01-03 Thomas Quinot <quinot@adacore.com> + + * checks.adb, checks.ads (Apply_Address_Clause_Check): The check must + be generated at the start of the freeze actions for the entity, not + before (or after) the freeze node. + +2013-01-03 Thomas Quinot <quinot@adacore.com> + + * exp_aggr.adb (Exp_Aggr.Convert_Aggregate_In_Obj_Decl): + Reorganize code to capture initialization statements in a block, + so that freeze nodes are excluded from the captured block. + +2013-01-03 Thomas Quinot <quinot@adacore.com> + + * exp_ch11.adb: Minor reformatting. + +2013-01-03 Thomas Quinot <quinot@adacore.com> + + * exp_util.adb, einfo.adb, einfo.ads, freeze.adb, exp_aggr.adb, + sem_ch13.adb (Einfo.Initialization_Statements, + Einfo.Set_Initialization_Statements): New entity attribute + for objects. + (Exp_Util.Find_Init_Call): Handle case of an object initialized + by an aggregate converted to a block of assignment statements. + (Freeze.Check_Address_Clause): Do not clear Has_Delayed_Freeze + even for objects that require a constant address, because the + address expression might involve entities that have yet to be + elaborated at the point of the object declaration. + (Exp_Aggr.Convert_Aggregate_In_Obj_Decl): For a type that does + not require a transient scope, capture the assignment statements + in a block so that they can be moved down after elaboration of + an address clause if needed. + (Sem_Ch13.Check_Constant_Address_Clause.Check_Expr_Constants, + case N_Unchecked_Conversion): Do not replace operand subtype with + its base type as this violates a GIGI invariant if the operand + is an identifier (in which case the etype of the identifier + is expected to be equal to that of the denoted entity). + +2013-01-03 Javier Miranda <miranda@adacore.com> + + * sem_util.ads, sem_util.adb (Denotes_Same_Object): Extend the + functionality of this routine to cover cases described in the Ada 2012 + reference manual. + +2013-01-03 Ed Schonberg <schonberg@adacore.com> + + * sem_elab.adb (Set_Elaboration_Constraint): Handle properly + a 'Access attribute reference when the subprogram is called + Initialize. + +2013-01-03 Arnaud Charlet <charlet@adacore.com> + + * s-tpobop.adb (PO_Do_Or_Queue): Refine assertion, since a + select statement may be called from a controlled (e.g. Initialize) + operation and have abort always deferred. + +2013-01-03 Robert Dewar <dewar@adacore.com> + + * sem_ch8.adb, einfo.ads, einfo.adb: Minor code reorganization. + +2013-01-03 Javier Miranda <miranda@adacore.com> + + * exp_ch3.adb (Make_Controlling_Function_Wrappers): Exclude + internal entities associated with interfaces and add minimum + decoration to the defining entity of the generated wrapper to + allow overriding interface primitives. + * sem_disp.ads (Override_Dispatching_Operation): Addition of a + new formal (Is_Wrapper). + * sem_disp.adb (Override_Dispatching_Operation): When overriding + interface primitives the new formal helps identifying that the + new operation is not fully decorated. + +2013-01-03 Thomas Quinot <quinot@adacore.com> + + * sem_ch7.adb, sem_ch10.adb, einfo.adb, einfo.ads, sem_ch12.adb, + rtsfind.adb, sem_elab.adb, sem_ch4.adb, sem_ch8.adb + (Einfo.Is_Visible_Child_Unit, Einfo.Set_Is_Visible_Child_Unit): + Rename to Is_Visible_Lib_Unit, Set_Is_Visible_Lib_Unit, and + update spec accordingly (now also applies to root library units). + (Sem_Ch10.Analyze_Subunit.Analyze_Subunit_Context): Toggle above flag + on root library units, not only child units. + (Sem_Ch10.Install[_Limited]_Withed_Unit): Same. + (Sem_Ch10.Remove_Unit_From_Visibility): Reset Is_Visible_Lib_Unit + even for root library units. + (Sem_Ch8.Find_Expanded_Name): A selected component form whose prefix is + Standard is an expanded name for a root library unit. + +2013-01-03 Thomas Quinot <quinot@adacore.com> + + * exp_ch3.adb: Minor reformatting. + +2013-01-03 Olivier Hainque <hainque@adacore.com> + + * tracebak.c: Reinstate changes to support ppc-lynx178. + +2013-01-03 Ed Schonberg <schonberg@adacore.com> + + * atree.ads: Minor reformatting and documentation enhancement. + +2013-01-03 Ed Schonberg <schonberg@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): If the object has + a class-wide type and a renaming declaration is created for it, + preserve entity chain, which already contains generated internal + types. This ensures that freezing actions are properly generated + for all objects declared subsequently in the same scope, and + that debugging information is generated for them. + * sem_util.adb, sem_util.ads (we): New debugging routine, to + display entity chain of a given scope. + +2013-01-03 Robert Dewar <dewar@adacore.com> + + * exp_intr.adb: Minor reformatting. + +2013-01-03 Robert Dewar <dewar@adacore.com> + + * einfo.adb: Minor reformatting. + +2013-01-03 Pascal Obry <obry@adacore.com> + + * adaint.c, adaint.h (__gnat_get_module_name): Removed. + (__gnat_is_module_name_supported): Removed. + * s-win32.ads: Add some needed definitions. + * g-trasym.ads: Update comments. + +2013-01-03 Robert Dewar <dewar@adacore.com> + + * layout.adb (Set_Composite_Alignment): Fix problems of + interactions with Optimize_Alignment set to Space. + +2013-01-03 Thomas Quinot <quinot@adacore.com> + + * exp_disp.adb: Minor reformatting. + +2013-01-02 Richard Biener <rguenther@suse.de> + + PR bootstrap/55784 + * gcc-interface/Makefile.in: Add $(GMPINC) to includes. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * exp_intr.adb (Expand_Dispatching_Constructor_Call): Remove + side effects from Tag_Arg early, doing it too late may cause a + crash due to inconsistent Parent link. + * sem_ch8.adb, einfo.ads: Minor reformatting. + +2013-01-02 Robert Dewar <dewar@adacore.com> + + * einfo.ads, einfo.adb (Has_Independent_Components): New flag. + * freeze.adb (Size_Known): We do not know the size of a packed + record if it has atomic components, by reference type components, + or independent components. + * sem_prag.adb (Analyze_Pragma, case Independent_Components): Set new + flag Has_Independent_Components. + +2013-01-02 Yannick Moy <moy@adacore.com> + + * opt.ads (Warn_On_Suspicious_Contract): Set to True by default. + * usage.adb (Usage): Update usage message. + +2013-01-02 Pascal Obry <obry@adacore.com> + + * adaint.c (__gnat_is_module_name_supported): New constant. + +2013-01-02 Ed Schonberg <schonberg@adacore.com> + + * sem_attr.adb (Check_Array_Type): Reject an attribute reference on an + array whose component type does not have a completion. + +2013-01-02 Geert Bosch <bosch@adacore.com> + + * a-nllcef.ads, a-nlcefu.ads, a-nscefu.ads: Make Pure. + +2013-01-02 Robert Dewar <dewar@adacore.com> + + * par_sco.adb: Minor reformatting. + +2013-01-02 Javier Miranda <miranda@adacore.com> + + * sem_aggr.adb (Resolve_Array_Aggregate): Remove dead code. + +2013-01-02 Olivier Hainque <hainque@adacore.com> + + * a-exctra.ads (Get_PC): New function. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * sem_ch8.adb: Minor reformatting. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * sem_ch7.adb: Minor reformatting. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * freeze.adb (Check_Component_Storage_Order): Do not crash on + _Tag component. + +2013-01-02 Robert Dewar <dewar@adacore.com> + + * gnat1drv.adb, targparm.adb, targparm.ads: Minor name change: add + On_Target to Atomic_Sync_Default. + +2013-01-02 Robert Dewar <dewar@adacore.com> + + * sem_warn.adb (Warn_On_Known_Condition): Suppress warning for + comparison of attribute result with constant + * a-ststio.adb, s-direio.adb, s-rannum.adb: Remove unnecessary pragma + Warnings (Off, ".."); + +2013-01-02 Yannick Moy <moy@adacore.com> + + * sem_prag.ads: Minor correction of comment. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * par_sco.adb (Traverse_Package_Declaration): The first + declaration in a nested package is dominated by the preceding + declaration in the enclosing scope. + +2013-01-02 Pascal Obry <obry@adacore.com> + + * adaint.c, adaint.h (__gnat_get_module_name): Return the actual + module containing a given address. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * sem_ch3.adb: Minor reformatting. + +2013-01-02 Pascal Obry <obry@adacore.com> + + * cstreams.c (__gnat_ftell64): New routine. Use _ftelli64 on + Win64 and default to ftell on other platforms. + (__gnat_fsek64): Likewise. + * i-cstrea.ads: Add fssek64 and ftell64 specs. + * s-crtl.ads: Likewise. + * a-ststio.adb, s-direio.adb (Size): Use 64 bits version when required. + (Set_Position): Likewise. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * par_sco.adb: Generate X SCOs for default expressions in + subprogram body stubs. Do not generate any SCO for package, + task, or protected body stubs. + +2013-01-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb: Further improvement to ASIS mode for anonymous + access to protected subprograms. + +2013-01-02 Robert Dewar <dewar@adacore.com> + + * par_sco.adb, vms_data.ads: Minor reformatting. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * par_sco.adb (Traverse_Declarations_Or_Statement): Function + form, returning value of Current_Dominant upon exit, for chaining + purposes. + (Traverse_Declarations_Or_Statement.Traverse_One, case + N_Block_Statement): First statement is dominated by last declaration. + (Traverse_Subprogram_Or_Task_Body): Ditto. + (Traverse_Package_Declaration): First private + declaration is dominated by last visible declaration. + (Traverse_Sync_Definition): Ditto. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * gnat_rm.texi: Restrict the requirement for Scalar_Storage_Order + matching Bit_Order to record types only, since array types do not + have a Bit_Order. + +2013-01-02 Vincent Celier <celier@adacore.com> + + * gnat_ugn.texi: Remove documentation of -gnateO, which is an + internal switch. + * usage.adb: Indicate that -gnateO is an internal switch. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * par_sco.adb: Add SCO generation for task types and single + task declarations. + * get_scos.adb: When adding an instance table entry for a + non-nested instantiation, make sure the Enclosing_Instance is + correctly set to 0. + +2013-01-02 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_attr.adb (Analyze_Attribute): Skip the special _Parent + scope generated for subprogram inlining purposes while trying + to locate the enclosing function. + * sem_prag.adb (Analyze_Pragma): Preanalyze the boolean + expression of pragma Postcondition when the pragma comes from + source and appears inside a subprogram body. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * switch-c.adb, fe.h, back_end.adb: Enable generation of instantiation + information in debug info unconditionally when using -fdump-scos, + instead of relying on a separate command line switch -fdebug-instances. + * gcc-interface/Make-lang.in: Update dependencies. + +2013-01-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb: Additional refinement of predicate. + +2013-01-02 Vincent Celier <celier@adacore.com> + + * vms_data.ads: Remove incorrect spaces at end of descriptions + of qualifiers for single switch. + +2013-01-02 Ben Brosgol <brosgol@adacore.com> + + * gnat_rm.texi: Minor edits / wordsmithing in section on pragma + Check_Float_Overflow. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * sprint.adb (Sprint_Node_Actual): Do not add extra parens for + a conditional expression (CASE or IF expression) that already + has parens. Also omit ELSE keyword for an IF expression without + an ELSE part. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * gnat1drv.adb (Adjust_Global_Switches): Adjust back-end + flag_debug_instances here, after front-end switches have been + processed. + +2013-01-02 Vincent Celier <celier@adacore.com> + + * usage.adb: Minor reformatting. + +2013-01-02 Arnaud Charlet <charlet@adacore.com> + + * opt.ads: Fix typo. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * par_sco.adb: Generate P decision SCOs for SPARK pragmas + Assume and Loop_Invariant. + +2013-01-02 Robert Dewar <dewar@adacore.com> + + * vms_data.ads: Add entry for Float_Check_Valid (-gnateF). + * ug_words: Add entry for Float_Check_Overflow. + * usage.adb: Minor reformatting. + * gnat_ugn.texi: Add documentation for -gnateF (Check_Float_Overflow). + +2013-01-02 Vincent Celier <celier@adacore.com> + + * gnat_ugn.texi: Add documentation for switches -gnateA, -gnated, + -gnateO=, -gnatet and -gnateV. + * ug_words: Add qualifiers equivalent to -gnateA, -gnated, + -gnatet and -gnateV. + * usage.adb: Add lines for -gnatea, -gnateO and -gnatez. + * vms_data.ads: Add new compiler qualifiers /ALIASING_CHECK + (-gnateA), /DISABLE_ATOMIC_SYNCHRONIZATION (-gnated), + /PARAMETER_VALIDITY_CHECK (-gnateV) and /TARGET_DEPENDENT_INFO + (-gnatet). + +2013-01-02 Robert Dewar <dewar@adacore.com> + + * checks.adb (Apply_Scalar_Range_Check): Implement Check_Float_Overflow. + * opt.ads, opt.adb: Handle flags Check_Float_Overflow[_Config]. + * par-prag.adb: Add dummy entry for pragma Check_Float_Overflow. + * sem_prag.adb: Implement pragma Check_Float_Overflow. + * snames.ads-tmpl: Add entries for pragma Check_Float_Overflow. + * switch-c.adb: Recognize -gnateF switch. + * tree_io.ads: Update ASIS version number. + * gnat_rm.texi: Add documentation of pragma Check_Float_Overflow. + +2013-01-02 Robert Dewar <dewar@adacore.com> + + * checks.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, + exp_disp.adb, exp_dist.adb, exp_intr.adb, exp_prag.adb, exp_util.adb, + freeze.adb, gnat1drv.adb, inline.adb, layout.adb, lib-xref.adb, + par-ch10.adb, par-labl.adb, par-load.adb, par-util.adb, restrict.adb, + sem_ch13.adb, sem_ch4.adb, sem_ch6.adb, sem_dim.adb, sem_elab.adb, + sem_res.adb, sem_warn.adb, sinput-l.adb: Add tags to warning messages. + * sem_ch6.ads, warnsw.ads, opt.ads: Minor comment updates. + +2013-01-02 Robert Dewar <dewar@adacore.com> + + * err_vars.ads: Minor comment fix. + +2013-01-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb: Refine predicate. + +2013-01-02 Robert Dewar <dewar@adacore.com> + + * errout.ads: Minor comment fixes. + * opt.ads: Minor comment additions. + * exp_aggr.adb: Add tags to warning messages + * exp_ch11.adb, exp_ch3.adb, exp_ch4.adb, exp_util.adb, sem_aggr.adb, + sem_attr.adb, sem_case.adb, sem_cat.adb, sem_ch3.adb, sem_ch4.adb, + sem_ch5.adb, sem_disp.adb, sem_dist.adb, sem_elab.adb, sem_eval.adb, + sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb, sem_util.adb, + sem_warn.adb: Add tags to warning messages + +2013-01-02 Doug Rupp <rupp@adacore.com> + + * init.c [VMS] Remove subtest on reason mask for ACCVIO that is a C_E. + +2013-01-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb: Recover source name for renamed packagea. + +2013-01-02 Robert Dewar <dewar@adacore.com> + + * errout.adb (Set_Msg_Insertion_Warning): Correct typo causing + tests to fail if insertion sequence is at end of message string. + * opt.ads: Minor comment fixes and additions. + * sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_ch10.adb, sem_ch11.adb, + sem_ch12.adb, sem_ch13.adb: Add tags to warning messages. + * sem_ch6.ads, sem_ch6.adb (Cannot_Inline): Deal with warning message + tags. Add tags to warning messages. + +2013-01-02 Robert Dewar <dewar@adacore.com> + + * err_vars.ads (Warning_Doc_Switch): New flag. + * errout.adb (Error_Msg_Internal): Implement new warning flag + doc tag stuff (Set_Msg_Insertion_Warning): New procedure. + * errout.ads: Document new insertion sequences ?? ?x? ?.x? + * erroutc.adb (Output_Msg_Text): Handle ?? and ?x? warning doc + tag stuff. + * erroutc.ads (Warning_Msg_Char): New variable. + (Warn_Chr): New field in error message object. + * errutil.adb (Error_Msg): Set Warn_Chr in error message object. + * sem_ch13.adb: Minor reformatting. + * warnsw.adb: Add handling for -gnatw.d and -gnatw.D + (Warning_Doc_Switch). + * warnsw.ads: Add handling of -gnatw.d/.D switches (warning + doc tag). + +2013-01-02 Robert Dewar <dewar@adacore.com> + + * opt.ads: Minor reformatting. + +2013-01-02 Doug Rupp <rupp@adacore.com> + + * init.c: Reorganize VMS section. + (scan_condtions): New function for scanning condition tables. + (__gnat_handle_vms_condtion): Use actual exception name for imported + exceptions vice IMPORTED_EXCEPTION. + Move condition table scanning into separate function. Move formerly + special handled conditions to system condition table. Use SYS$PUTMSG + output to fill exception message field for formally special handled + condtions, in particular HPARITH to provide more clues about cause and + location then raised from the translated image. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specifications): For a Pre/Post + aspect that applies to a library subprogram, prepend corresponding + pragma to the Pragmas_After list, in order for split AND THEN + sections to be processed in the expected order. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * exp_prag.adb (Expand_Pragma_Check): The statements generated + for the pragma must have the sloc of the pragma, not the + sloc of the condition, otherwise this creates anomalies in the + generated debug information that confuse coverage analysis tools. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * sem_ch13.adb: Minor reformatting. + +2013-01-02 Arnaud Charlet <charlet@adacore.com> + + * g-excact.ads (Core_Dump): Clarify that this subprogram does + not dump cores under Windows. + +2013-01-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch8.adb (Analyze_Primitive_Renamed_Operation): The prefixed + view of a subprogram has convention Intrnnsic, and a renaming + of a prefixed view cannot be the prefix of an Access attribute. + +2013-01-02 Robert Dewar <dewar@adacore.com> + + * restrict.adb: Minor reformatting. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * exp_prag.adb: Minor reformatting. + +2013-01-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Get_Associated_Node): If the node is an + identifier that denotes an unconstrained array in an object + declaration, it is rewritten as the name of an anonymous + subtype whose bounds are given by the initial expression in the + declaration. When checking whether that identifier is global + reference, use the original node, not the local generated subtype. + +2013-01-02 Olivier Hainque <hainque@adacore.com> + + * tracebak.c: Revert previous change, incomplete. + +2013-01-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specifications): If the aspect + appears on a subprogram body that acts as a spec, place the + corresponding pragma in the declarations of the body, so that + e.g. pre/postcondition checks can be generated appropriately. + +2013-01-02 Robert Dewar <dewar@adacore.com> + + * sem_ch3.adb: Minor reformatting and code reorganization. + +2013-01-02 Vincent Celier <celier@adacore.com> + + * switch-m.adb (Normalize_Compiler_Switches): Record the + complete switch -fstack-check=specific instead of its shorter + alias -fstack-check. + +2013-01-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Derive_Subprogram): Enforce RM 6.3.1 (8): + if the derived type is a tagged generic formal type with + unknown discriminants, the inherited operation has convention + Intrinsic. As such, the 'Access attribute cannot be applied to it. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * sem_attr.adb: Minor reformatting. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * par_sco.adb: Add SCO generation for S of protected types and + single protected object declarations. + +2013-01-02 Robert Dewar <dewar@adacore.com> + + * sem_eval.adb, osint.ads: Minor reformatting. + +2013-01-02 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Pragma): Check the legality of pragma Assume. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * sem_eval.adb (Compile_Time_Compare): For static operands, we + can perform a compile time comparison even if in preanalysis mode. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * par_sco.adb (SCO_Record): Always use + Traverse_Declarations_Or_Statements to process the library level + declaration, so that SCOs are properly generated for its aspects. + +2013-01-02 Thomas Quinot <quinot@adacore.com> + + * scos.ads (In_Decision): Add missing entry for 'a'. + * sem_prag.adb (Analyze_Pragma, case pragma Check): Omit + call to Set_SCO_Pragma_Enabled for Invariant and Predicate. + * sem_ch13.adb: Minor comment update. + +Copyright (C) 2013 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. |