diff options
Diffstat (limited to 'gcc-4.9/gcc/ada/ChangeLog-2012')
-rw-r--r-- | gcc-4.9/gcc/ada/ChangeLog-2012 | 8694 |
1 files changed, 8694 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/ada/ChangeLog-2012 b/gcc-4.9/gcc/ada/ChangeLog-2012 new file mode 100644 index 000000000..4949e047d --- /dev/null +++ b/gcc-4.9/gcc/ada/ChangeLog-2012 @@ -0,0 +1,8694 @@ +2012-12-21 Ed Schonberg <schonberg@adacore.com> + + PR ada/53737 + * sem_ch12.adb (Analyze_Associations): Do not check the legality of + actuals for RACW types if this is an internal instantiation for a formal + package with defaulted parameters. + +2012-12-21 Eric Botcazou <ebotcazou@adacore.com> + + * adaint.c: Move directive around. + * argv.c: Likewise. + * cio.c: Likewise. + * cstreams.c: Likewise. + * env.c: Likewise. + * exit.c: Likewise. + * init.c: Likewise. + * initialize.c: Likewise. + * raise.c: Likewise. + * seh_init.c: Likewise. + * targext.c: Likewise. + +2012-12-15 Eric Botcazou <ebotcazou@adacore.com> + Martin Ettl <ettl.martin@gmx.de> + + PR ada/53996 + * gcc-interface/utils.c (gnat_type_for_size): Use %u in lieu of %d. + +2012-12-11 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Make-lang.in (RTS_DIR): Define only if Ada is enabled. + +2012-12-08 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (gnat_to_gnu) <N_Indexed_Component>: Assert + that the type of the prefix is ultimately an array. + +2012-12-08 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Subprogram_Body_to_gnu): Be prepared for a + by-ref VAR_DECL in the case of an Out parameter passed by copy. + +2012-12-05 Robert Dewar <dewar@adacore.com> + + * par_sco.adb, sem_prag.adb, put_scos.adb, get_scos.adb: Minor + reformatting. + +2012-12-05 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb: Code clean up. + +2012-12-05 Arnaud Charlet <charlet@adacore.com> + + * gcc-interface/Make-lang.in: Update dependencies. + * gcc-interface/lang.opt: New language AdaSCIL. + * gcc-interface/lang-specs.h: Add specs for adascil language. + +2012-12-05 Thomas Quinot <quinot@adacore.com> + + * par_sco.adb (Traverse_Aspects): Ensure we always have + an entry in the sloc -> SCO map for invariants, since + Set_SCO_Pragma_Enabled is called with that sloc when checks + are enabled. + +2012-12-05 Thomas Quinot <quinot@adacore.com> + + * exp_ch4.adb: Minor reformatting. + +2012-12-05 Hristian Kirtchev <kirtchev@adacore.com> + + * par-prag.adb: Checks and processing of pragma Assume are + carried out by Sem_Prag. + * sem_prag.adb (Analyze_Pragma): Check the legality of pragma + Assume. + * snames.ads-tmpl: Add new name Assume. Add a pragma identifier + for Assume. + +2012-12-05 Ed Schonberg <schonberg@adacore.com> + + * aspects.ads, aspects.adb: Add aspect Relative_Deadline. + * sem_ch13.adb (Analyze_Aspect_Specifications): Process aspect + Relative_Deadline, and introduce the corresponding pragma within + the task definition of the task type to which it applies. + (Check_Aspect_At_Freeze_Point): Expression in a Relative_Deadline + aspect is of type Time_Span. + +2012-12-05 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Check_Loop_Invariant_Variant_Placement): When pragma + Loop_[In]variant does not appear immediately within the statements + of a loop, it must appear in a chain of nested blocks. + +2012-12-05 Thomas Quinot <quinot@adacore.com> + + * sem_ch13.adb: Minor reformatting. + Remove redundant assertion. + +2012-12-05 Thomas Quinot <quinot@adacore.com> + + * par_sco.adb, scos.ads, put_scos.adb, put_scos.ads, + get_scos.adb: Generation of SCOs for aspects. + +2012-12-05 Thomas Quinot <quinot@adacore.com> + + * sem_prag.adb (Check_Precondition_Postcondition): Remove + redundant call to Set_SCO_Pragma_Enabled (the pragma will be + rewritten into a pragma Check later on, and the call will be + made when processing the rewritten pragma). + (Analyze_Pragma, case Pragma_Check): Omit call to + Set_SCO_Pragma_Enabled if Split_PPC is set. + +2012-12-05 Olivier Hainque <hainque@adacore.com> + + * tracebak.c: Add partial support for Lynx178. + +2012-12-05 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_attr.adb (Analyze_Attribute): Improve + the error message related to loop assertions. + +2012-12-05 Gary Dismukes <dismukes@adacore.com> + + * atree.ads: Minor reformatting. + +2012-12-05 Robert Dewar <dewar@adacore.com> + + * atree.ads, par-ch4.adb, sem_attr.adb, sem_ch13.adb: Minor + reformatting. + +2012-12-05 Eric Botcazou <ebotcazou@adacore.com> + + * gnat_ugn.texi (Switches for gcc): Document -flto and reorder. + +2012-12-05 Ed Schonberg <schonberg@adacore.com> + + * par-ch5.adb (P_Condition): Handle properly Ada 2012 + expressions that must be parenthesized before checking for + redundant parentheses when that check is enabled. + +2012-12-05 Ed Schonberg <schonberg@adacore.com> + + * par-ch4.adb (P_Allocator): In Ada 2012 (AI05-0104) an + uninitialized allocator cannot carry an explicit not null + indicator. + * sem_ch4.adb (Analyze_Allocator): Remove code that implements + the check for AI05-0104, the check is syntactic and performed + in the parser. + +2012-12-05 Geert Bosch <bosch@adacore.com> + + * sem_attr.adb (Analyze_Attribute): Use base type for floating + point attributes. + +2012-12-05 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specifications, + Ahalyze_Aspect_Default_Value): For a scalar type attach default + value to base type as well, because it is a type-specific aspect + even though it can be specified on a first subtype. + +2012-12-05 Yannick Moy <moy@adacore.com> + + * urealp.ads: Minor rewording. + +2012-12-05 Yannick Moy <moy@adacore.com> + + * aspects.ads (No_Duplicates_Allowed): Forbid use of duplicate + Contract_Cases aspects. + * sem_prag.adb (Analyze_Pragma/Pragma_Contract_Case): Rename + POST_CASE into CONTRACT_CASE in both grammar and code, to be + consistent with current language definition. Issue a more precise + error message when the pragma duplicates another pragma or aspect. + +2012-12-05 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_attr.adb (Expand_N_Attribute_Reference): Add processing + for attribute Update. + (Expand_Update_Attribute): New routine. + * par-ch4.adb (P_Name): The sole expression of attribute Update + is an aggregate, parse it accordingly. + * sem_attr.adb (Analyze_Attribute): Verify the legality of + attribute Update. + (Eval_Attribute): Attribute Update does not + need evaluation because it is never static. + * snames.ads-tmpl: Add Name_Update to the list of special names + recognized by the compiler. Add an Attribute_Id for Update. + +2012-12-05 Ed Schonberg <schonberg@adacore.com> + + * exp_util.adb (Remove_Side_Effects): For purposes of removing + side effects, qualified expressions do not receive a special + treatment, even though in Ada 2012 they are defined as object + references. + +2012-12-05 Thomas Quinot <quinot@adacore.com> + + * par-ch3.adb: Minor reformatting. + +2012-12-05 Thomas Quinot <quinot@adacore.com> + + * exp_dist.adb (Build_From_Any_Call, Build_To_Any_Call, + Build_TypeCode_Call): For a used-defined subtype, always go to + the first subtype of the base type. + +2012-12-05 Thomas Quinot <quinot@adacore.com> + + * exp_dist.adb: Minor reformatting. + +2012-12-05 Tristan Gingold <gingold@adacore.com> + + * Make-generated.in: Remove the VMS host specific part, as VMS + compilers aren't built anymore on VMS. + +2012-12-05 Thomas Quinot <quinot@adacore.com> + + * sem.adb, errout.ads, atree.adb, atree.ads (Check_Error_Detected): + Only return quietly if a serious error of configurable run time + violation has been found. + +2012-12-05 Yannick Moy <moy@adacore.com> + + * sem_res.adb (Resolve_Type_Conversion): In Alfa_Mode, do not apply + conversion checks. + +2012-12-05 Ed Schonberg <schonberg@adacore.com> + + * exp_ch5.adb (Expand_N_Assignment_Statement): Handle properly + the generation of discriminant checks when the left-hand side + has a type with hidden discriminants. + * sem_ch3.ads (Is_Visible_Component): Add defaulted parameter to + specify the node on which component visibility is being checked. + * sem_ch3.adb (Is_Visible_Component): Use new parameter to + determine whether the reference comes from a type conversion to + a full view of a private type with unknown discriminants. + * sem_ch4.adb (Analyze_Selected_Component): Call + Is_Visible_Component with added parameter. + +2012-12-05 Arnaud Charlet <charlet@adacore.com> + + * make.adb: Minor comment update. + +2012-12-05 Arnaud Charlet <charlet@adacore.com> + + * gnatlink.adb: Also use -x adascil in CodePeer mode when + calling gcc. + * exp_ch5.adb: Minor reformatting. + +2012-12-05 Bob Duff <duff@adacore.com> + + * exp_ch4.adb: Minor comment. + +2012-12-05 Bob Duff <duff@adacore.com> + + * par-ch4.adb: Set Paren_Count correctly for a parenthesized expression + containing a conditional expression or quantified expression. + * sprint.adb: Update comment. + +2012-12-05 Bob Duff <duff@adacore.com> + + * style.adb, scans.ads, styleg.adb: Update comments. + +2012-12-05 Ed Schonberg <schonberg@adacore.com> + + * sem_ch8.adb (Find_Selected_Component): Handle properly an + expanded name whose prefix is the expanded name of an enclosing + entry, that is to say a construct such as T.E.X, where T is an + enclosing concurrent type and E is an enclosing entry. + +2012-12-05 Robert Dewar <dewar@adacore.com> + + * lib-writ.adb (Write_ALI): Output T lines. + * lib-writ.ads: Minor reformatting. Add documentation of T lines. + * opt.ads (Generate_Target_Dependent_Info): New flag. + * switch-c.adb (Scan_Switches): Recognize -gnatet switch + (target dependent info). + * ttypes.ads: Add four letter codes to declarations (for target + dependent info). + * usage.adb: Add line for -gnatet switch. + +2012-12-05 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_prag.adb (Expand_N_Pragma): Add a call to expand + pragma Loop_Variant. + (Expand_Pragma_Loop_Assertion): Removed. + (Expand_Pragma_Loop_Variant): New routine. + * par-prag.adb: Remove Pragma_Loop_Assertion and add two new + Pragma_Loop_Invariant and Pragma_Loop_Variant entries. + * sem_attr.adb (Analyze_Attribute): Update the code which + locates the enclosing pragma. + * sem_prag.adb (Analyze_Pragma): Remove the code which analyzes + pragma Loop_Assertion as the pragma is now obsolete. Add the + machinery to checks the semantics of pragmas Loop_Invariant + and Loop_Variant. + (Check_Loop_Invariant_Variant_Placement): New routine. + * snames.ads-tmpl: Remove name Loop_Assertion. Add new names + Loop_Invariant and Loop_Variant. Rename Name_Decreasing + to Name_Decreases and Name_Increasing to Name_Increases. + Remove the pragma Id for Loop_Assertion and add two new Ids for + Loop_Invariant and Loop_Variant. + +2012-12-05 Robert Dewar <dewar@adacore.com> + + * gnatchop.adb, sem_attr.ads, sem_ch4.adb, sem_ch6.adb, exp_disp.adb, + atree.adb, sem_eval.adb: Minor reformatting. + +2012-12-05 Yannick Moy <moy@adacore.com> + + * uintp.adb (UI_Div_Rem): Correct algorithm D to remove potential + overflow. + +2012-12-05 Robert Dewar <dewar@adacore.com> + + * exp_ch4.adb (Expand_N_Op_Mod): Minor comment additions. + (Expand_N_Op_Rem): Ditto. + +2012-12-05 Robert Dewar <dewar@adacore.com> + + * sem_attr.adb: Minor reformatting. + +2012-12-05 Robert Dewar <dewar@adacore.com> + + * usage.adb: Update lines for -gnato? switch. + +2012-12-05 Ed Schonberg <schonberg@adacore.com> + + * par-ch6.adb (P_Return_Object_Declaration): Do not check for + legality of Aliased keyword. + * sem_ch6.adb (Analyze_Function_Return): The keyword aliased is + legal in an extended return statement only if the return type + is immutably limited. + +2012-12-05 Javier Miranda <miranda@adacore.com> + + * exp_disp.adb (Expand_Interface_Thunk): Simplify + management of controlling formals. Required to avoid problems + with primitives of internally generated base types associated + with constrained tagged types. + +2012-12-05 Ed Schonberg <schonberg@adacore.com> + + * sem_eval.adb: Remove spurious warnings. + +2012-12-05 Ed Schonberg <schonberg@adacore.com> + + * sem_util.adb (Build_Explicit_Dereference): Set properly + the type of the prefix prior to rewriting, because subsequent + legality checks examine the original node. + +2012-12-05 Hristian Kirtchev <kirtchev@adacore.com> + + * aspects.adb: Add Contract_Cases to the canonical aspects map. + * aspects.ads: Add aspect Contract_Cases in the various aspect + tables. + * par-prag.adb: The parser does not need to perform special + actions for pragma Contract_Cases. + * sem_ch6.adb (Expand_Contract_Cases): New routine. + (Process_Contract_Cases): Convert pragma Contract_Cases into pre- + and post- condition checks that verify the runtime state of all + case guards and their corresponding consequences. + * sem_ch13.adb (Analyze_Aspect_Specifications): Perform + various legality checks on aspect Contract_Cases. The aspect is + transformed into a pragma. + * sem_prag.adb: Add an entry in table Sig_Flags for pragma + Contract_Cases. + (Analyze_Pragma): Perform various legality + checks on pragma Contract_Cases. The pragma is associated with + the contract of the related subprogram. + (Chain_CTC): Omit pragma + Contract_Cases because it does not introduce a unique case name + and does not follow the syntax of Contract_Case and Test_Case. + * snames.ads-tmpl: Add new name Name_Contract_Cases. Add a + Pragma_Id for Contract_Cases. + +2012-12-05 Thomas Quinot <quinot@adacore.com> + + * sem_ch5.adb: Minor reformatting. + +2012-12-05 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_attr.ads: Add an entry for attribute Loop_Entry in the + Attribute_Impl_Def table. + +2012-12-05 Bob Duff <duff@adacore.com> + + * gnatchop.adb (Read_File): Avoid storage leak, and in most cases avoid + an extra copy of the string. + +2012-12-05 Ed Schonberg <schonberg@adacore.com> + + * sem_ch5.adb (Preanalyze_Range): If the expression, which + denotes some domain of iteration, has a type with implicit + dereference, and does not have any iterable aspects, insert + dereference to obtain proper container type. + +2012-12-05 Bob Duff <duff@adacore.com> + + * par-ch8.adb (P_Use_Type_Clause): Fix the Sloc for "use all type ..." + to point to "use". + +2012-12-05 Arnaud Charlet <charlet@adacore.com> + + * make.adb (Compile): Always pass -x adascil in CodePeer mode. + +2012-12-05 Ed Schonberg <schonberg@adacore.com> + + * s-rident.ads, restrict.ads: Remove discrepancies between the + documentation on implementation-defined restrictions, and + the internal data structure used for warnings and errors on + implementation-defined restriction violations. + +2012-12-05 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Chain_PPC): Pre- and postcondition aspects + are legal on a subprogram body that acts as a spec. + +2012-12-05 Ed Schonberg <schonberg@adacore.com> + + * sem_ch8.adb (Find_Selected_Component): If the selector name is + an overloadable entity but the name is not overloaded, generate + reference to it rather than delaying this until resolution. + +2012-12-05 Robert Dewar <dewar@adacore.com> + + * checks.ads, checks.adb (Activate_Overflow_Check): No effect for + MOD/REM/unary + + * exp_ch4.adb (Expand_N_Op_Mod): Remove call to set Do_Overflow_Check. + +2012-12-05 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Find_Non_Universal_Interpretation): Use the + types of the right operand if the left operand is null. + +2012-12-05 Sergey Rybin <rybin@adacore.com frybin> + + * gnat_ugn.texi, vms_data.ads: document gnatpp -nn option. + +2012-12-05 Jose Ruiz <ruiz@adacore.com> + + * init.c (__gnat_install_handler): For the LEON VxWorks kernel + run-time library we need to install a trap handler directly in the + trap table (no support by the OS) for the software trap 0. + +2012-12-05 Eric Botcazou <ebotcazou@adacore.com> + + * gnat_rm.texi (Interfacing to C++): Document new restrictions. + +2012-12-05 Ben Brosgol <brosgol@adacore.com> + + * gnat_ugn.texi: Fix typo. + +2012-12-05 Robert Dewar <dewar@adacore.com> + + * gnatbind.adb: Minor reformatting. + +2012-12-05 Arnaud Charlet <charlet@adacore.com> + + * gnat_ugn.texi: Fix typo. + +2012-12-05 Tristan Gingold <gingold@adacore.com> + + * gnatbind.adb: Minor comment update. + +2012-12-05 Yannick Moy <moy@adacore.com> + + * gnat1drv.adb (Adjust_Global_Switches): Set flags to indicate that + CodePeer backend deals with divide and overflow checks. + +2012-12-05 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Update overflow description. Pragma Overflow_Checks + changed to Overflow_Mode. + +2012-12-05 Robert Dewar <dewar@adacore.com> + + * checks.ads, exp_ch4.adb, gnat1drv.adb, par-prag.adb, sem_prag.adb, + snames.ads-tmpl, switch-c.adb, types.ads, checks.adb: Change pragma + Overflow_Checks to Overflow_Mode. + Separate overflow checking from overflow mode. + Several name changes to reflect this separation. + CHECKED mode is renamed STRICT mode. + +2012-12-05 Yannick Moy <moy@adacore.com> + + * gnat1drv.adb (Adjust_Global_Switches): Move setting of flags for + Alfa mode before general treatment of flags, so that overflow checks + settings are set appropriately in Alfa mode. Also set the mode to + STRICT in Alfa mode if not already set by the user. + +2012-12-05 Robert Dewar <dewar@adacore.com> + + * sem_ch3.adb: Minor reformatting. + +2012-12-05 Steve Baird <baird@adacore.com> + + * sinfo.ads: Improve comments about SCIL-related node kinds and selector + functions. + +2012-12-05 Ed Schonberg <schonberg@adacore.com> + + * sem_ch10.adb (Build_Limited_Views): Even though the unit is + not analyzed, place its entity on the name in the with clause, + so that warnings on unused with-clause are properly supported + for limited withs. + +2012-12-05 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Update overflow description. Pragma + Overflow_Checks changed to Overflow_Mode. + +2012-12-05 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Build_Derived_Private_Type): Handle properly a + completion in a grand-child unit when the parent type is itself + a private type in a child unit whose full view is itself a + derivation from a private type. + +2012-12-05 Gary Dismukes <dismukes@adacore.com> + + * exp_attr.adb (Expand_N_Attribute_Reference, case + Attribute_Valid): Remove code for issuing warning on Valid within + a predicate. Moved to Sem_Attr. Remove with and use of Errout. + * sem_attr.adb (Analyze_Attribute, case Attribute_Valid): + Test for prefix's subtype having a predicate and issue warning + about infinite recursion if Valid occurs within the subtype's + predicate. Warning moved here from Exp_Attr. + +2012-12-05 Yannick Moy <moy@adacore.com> + + * debug.adb: Minor comment addition. + +2012-12-05 Yannick Moy <moy@adacore.com> + + * gnat1drv.adb (Adjust_Global_Switches): In CodePeer mode, check + overflows by default, even when the user suppresses overflow checks. + +2012-12-05 Thomas Quinot <quinot@adacore.com> + + * err_vars.ads: Fix minor typo in comment. + +2012-12-05 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_attr.adb (Analyze_Attribute): Do not analyze the attribute + arguments when processing Loop_Entry. Rewrite the analysis of + attribute Loop_Entry to handle an optional loop name. + (Convert_To_Indexed_Component): New routine. + (Eval_Attribute): Remove ??? comment and explain + why Loop_Entry does not need to be evaluated. + +2012-12-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + PR ada/52110 + * s-osinte-hpux-dce.ads: Declare pthread_rwlockattr_t and + pthread_rwlock_t subtypes. Delete duplicate declaration of clockid_t. + * s-taspri-hpux-dce.ads: Change "pragma Atomic (Thread)" to comment. + +2012-11-28 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Use + valid_constant_size_p to detect too large objects. + <E_Subprogram_Type>: Likewise for too large return types. + (allocatable_size_p): Call valid_constant_size_p in the fixed case. + (annotate_value) <INTEGER_CST>: Simplify. + <BIT_AND_EXPR>: Deal with negative values here. + * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Use + valid_constant_size_p to detect too large objects on the LHS. + * gcc-interface/misc.c (default_pass_by_ref): Likewise for large types. + And use TYPE_SIZE_UNIT throughout. + (must_pass_by_ref): Likewise. + * gcc-interface/utils.c (max_size) <tcc_unary>: Split from common case. + <tcc_binary>: Likewise. Call size_binop instead of fold_build2. + <tcc_expression>: Simplify. + * gcc-interface/utils2.c (build_allocator): Use valid_constant_size_p + to detect too large allocations. + +2012-11-23 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Length>: Look through + a view conversion from constrained to unconstrained form. + +2012-11-23 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (components_need_strict_alignment): New. + (components_to_record): Do not pack the variants if one of the fields + needs strict alignment. Likewise for the variant part as a whole. + Specify the position of the variants even if the size isn't specified, + but do not specify the size of the variant part in this case. + +2012-11-20 Diego Novillo <dnovillo@google.com> + Jakub Jelinek <jakub@redhat.com> + + * gcc-interface/decl.c: Replace all vec<T,A>() initializers with vNULL. + +2012-11-18 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c: Remove trailing spaces. + * gcc-interface/trans.c: Remove trailing spaces. + +2012-11-16 Diego Novillo <dnovillo@google.com> + + Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec) + + * gcc-interface/decl.c: Use new vec API in vec.h. + * gcc-interface/gigi.h: Likewise. + * gcc-interface/trans.c: Likewise. + * gcc-interface/utils.c: Likewise. + * gcc-interface/utils2.c: Likewise. + +2012-11-09 Eric Botcazou <ebotcazou@adacore.com> + + PR other/52438 + * s-taspri-lynxos.ads: Delete. + * s-osinte-kfreebsd-gnu.ads: Change license to GPL V3+. + * s-tpopsp-rtems.adb: Likewise. + * s-osinte-rtems.adb: Likewise. + +2012-11-09 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (gnat_to_gnu) <N_Subprogram_Body_Stub>: Deal + with a missing library unit instead of calling gnat_to_gnu on Emtpy. + Remove last bits of support for SCIL nodes. Add cases for nodes that + should only be present when annotating types. Add default abort. + +2012-11-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Makefile.in: Revert most changes. + * gcc-interface/Make-lang.in (gnatlib): Remove ada/s-oscons.ads. + +2012-11-06 Arnaud Charlet <charlet@adacore.com> + + * gcc-interface/Makefile.in (copy-s-oscons): New target. + +2012-11-06 Robert Dewar <dewar@adacore.com> + + * err_vars.ads, atree.ads: Minor reformatting. + +2012-11-06 Arnaud Charlet <charlet@adacore.com> + + * gcc-interface/Make-lang.in: Update dependencies. + * gcc-interface/Makefile.in: Add runtime pairs for Android. + Rework handling of s-oscons.ads. + * s-osinte-android.ads, s-osinte-android.adb: New files. + +2012-11-06 Tristan Gingold <gingold@adacore.com> + + * gcc-interface/trans.c (gnat_to_gnu): For N_Real_Literal, create the + binary representation of vax floats. + +2012-11-06 Tristan Gingold <gingold@adacore.com> + + * sem_ch9.adb (Analyze_Protected_Type_Declaration): Fix thinko + in previous commit. + +2012-11-06 Jose Ruiz <ruiz@adacore.com> + + * ali.adb (Scan_ALI): Fix parsing mechanism for -fstack-check. + +2012-11-06 Thomas Quinot <quinot@adacore.com> + + * atree.adb, atree.ads, einfo.adb, errout.adb, errout.ads, erroutc.adb, + erroutc.ads, errutil.adb, errutil.ads, err_vars.ads, expander.adb, + exp_ch13.adb, exp_ch2.adb, exp_ch6.adb, exp_dist.adb, fe.h, + fmap.adb, fmap.ads, gprep.adb, makeutl.adb, osint.adb, osint.ads, + par_sco.adb, prepcomp.adb, prj-part.adb, prj-proc.adb, scng.adb, + sdefault.ads, sem_ch10.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, + sem_ch4.adb, sem_ch5.adb, sem_dim.adb, sem_elab.adb, sem_eval.adb, + sem_intr.adb, sem_prag.adb, sem_type.adb, sem_warn.adb, stylesw.adb, + stylesw.ads, targparm.adb, targparm.ads (Cascaded_Error): Rename to + more descriptive name 'Check_Error_Detected'. Add calls to + Check_Error_Detected at places where semantic analysis is abandoned + assuming a previously detected error. + +2012-11-06 Robert Dewar <dewar@adacore.com> + + * exp_ch4.adb: Minor comment change. + +2012-11-06 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Extensive revision of documentation of overflow + checking. + * vms_data.ads: Overflow check numbers must be in range 1-3, + not 0-3. + +2012-11-06 Tristan Gingold <gingold@adacore.com> + + * sem_ch9.adb (Analyze_Protected_Type_Declaration): Emit a + warning if pragma Priority is used in presence of an interrupt + handler. + +2012-11-06 Robert Dewar <dewar@adacore.com> + + * checks.ads, checks.adb, exp_ch4.adb: Minor changes throughout for + new overflow checking. + * exp_util.adb (Insert_Actions): Remove special casing of + Overflow_Check. + * gnat1drv.adb (Adjust_Global_Switches): Fixes for new handling + of overflow checks. + * sem.adb (Analyze): Remove special casing of Overflow_Check + (Analyze_List): ditto. + * sem_prag.adb (Analyze_Pragma, case Overflow_Checks): Remove + SUPPRESSED and change CHECKED to STRICT. + * sem_res.adb (Analyze_And_Resolve): No longer treat + Overflow_Check specially. + (Preanalyze_And_Resolve): ditto. + (Resolve): ditto. + * snames.ads-tmpl: Replace Name_Checked by Name_Strict. + * switch-c.adb (Get_Overflow_Mode): Eliminate 0 setting, + CHECKED => STRICT. + * types.ads (Overflow_Check_Type): Remove Suppressed, change + Checked to Strict (Suppress_Record): Overflow check controlled + by Suppress array. + +2012-11-06 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb (Preanalyze_And_Resolve): In Alfa mode do not + disable checks, so that flags can be properly set on expressions + that are not further expanded. + +2012-11-06 Robert Dewar <dewar@adacore.com> + + * exp_attr.adb, sem_attr.adb: Minor reformatting. + +2012-11-06 Gary Dismukes <dismukes@adacore.com> + + * exp_attr.adb (Expand_N_Attribute_Reference): Apply a predicate + check when evaluating the attribute Valid, and issue a warning + about infinite recursion when the check occurs within the + predicate function of the prefix's subtype. + * exp_ch4.adb (Expand_N_In): Remove test for Is_Discrete_Type + when we're checking that there's no predicate check function as a + condition for substituting a Valid check for a scalar membership + test (substitution should be suppressed for any kind of scalar + subtype with a predicate check). Also, don't emit a predicate + check when the right operand is a range. + +2012-11-06 Robert Dewar <dewar@adacore.com> + + * par_sco.adb, bindgen.adb, exp_vfpt.adb, exp_vfpt.ads, exp_ch2.adb, + errout.adb, sem_ch8.adb: Minor reformatting. + +2012-11-06 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb: Include Loop_Entry_Attributes to the list of + Node/List/Elist10 usage. + (Loop_Entry_Attributes): New routine. + (Set_Loop_Entry_Attributes): New routine. + (Write_Field10_Name): Add an output string for Loop_Entry_Attributes. + * einfo.ads: Define new attribute Loop_Entry_Attributes along + with its usage in nodes. + (Loop_Entry_Attributes): New routine and dedicated pragma Inline. + (Set_Loop_Entry_Attributes): New routine and dedicated pragma Inline. + * exp_attr.adb (Expand_N_Attribute_Reference): Do not expand + Attribute_Loop_Entry here. + * exp_ch5.adb: Add with and use clause for Elists; + (Expand_Loop_Entry_Attributes): New routine. + (Expand_N_Loop_Statement): Add a call to Expand_Loop_Entry_Attributes. + * exp_prag.adb (Expand_Pragma_Loop_Assertion): Specialize the + search to include multiple nested loops produced by the expansion + of Ada 2012 array iterator. + * sem_attr.adb: Add with and use clause for Elists. + (Analyze_Attribute): Check the legality of attribute Loop_Entry. + (Resolve_Attribute): Nothing to do for Loop_Entry. + (S14_Attribute): New routine. + * snames.ads-tmpl: Add a comment on entries marked with + HiLite. Add new name Name_Loop_Entry. Add new attribute + Attribute_Loop_Entry. + +2012-11-06 Geert Bosch <bosch@adacore.com> + + * eval_fat.adb (Machine, Succ): Fix front end to support static + evaluation of attributes on targets with both VAX and IEEE float. + * sem_util.ads, sem_util.adb (Has_Denormals, Has_Signed_Zeros): + New type-specific functions. Previously we used Denorm_On_Target + and Signed_Zeros_On_Target directly, but that doesn't work well + for OpenVMS where a single target supports both floating point + with and without signed zeros. + * sem_attr.adb (Attribute_Denorm, Attribute_Signed_Zeros): Use + new Has_Denormals and Has_Signed_Zeros functions to support both + IEEE and VAX floating point on a single target. + +2012-11-06 Tristan Gingold <gingold@adacore.com> + + * bindgen.adb (System_Interrupts_Used): New variable. + (Gen_Adainit): Declare and call + Install_Restricted_Handlers_Sequential if System.Interrupts is + used when elaboration policy is sequential. + +2012-11-06 Ed Schonberg <schonberg@adacore.com> + + * sem_ch8.adb: Complete previous change. + +2012-11-06 Tristan Gingold <gingold@adacore.com> + + * fe.h (Get_Vax_Real_Literal_As_Signed): Declare. + * eval_fat.adb, eval_fat.ads (Decompose_Int): Move spec in package spec. + * exp_vfpt.adb, exp_vfpt.ads (Vax_Real_Literal_As_Signed): New function. + (Expand_Vax_Real_Literal): Remove. + * exp_ch2.adb (Expand_N_Real_Literal): Do nothing. + * sem_eval.adb (Expr_Value_R): Remove special Vax float case, + as this is not anymore a special case. + +2012-11-06 Yannick Moy <moy@adacore.com> + + * uintp.ads: Minor correction of typo in comment. + +2012-11-06 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Analyze_Pragnma, case Unchecked_Union): remove + requirement that discriminants of an unchecked_union must have + defaults. + +2012-11-06 Vasiliy Fofanov <fofanov@adacore.com> + + * projects.texi: Minor wordsmithing. + +2012-11-06 Robert Dewar <dewar@adacore.com> + + * sem_ch9.adb, exp_vfpt.adb, xoscons.adb: Minor reformatting. + +2012-11-06 Tristan Gingold <gingold@adacore.com> + + * exp_vfpt.adb: Document VAX float point layout. + +2012-11-06 Geert Bosch <bosch@adacore.com> + + * eval_fat.adb (Machine): Don't return -0.0 on targets without + signed zeros. + +2012-11-06 Ed Schonberg <schonberg@adacore.com> + + * sem_ch9.adb (Analyze_Entry_Call_Alternative, + Check_Triggering_Statement): Reject properly an indirect call. + +2012-11-06 Pascal Obry <obry@adacore.com> + + * xoscons.adb, xutil.adb, xutil.ads: Add support for post-processing. + +2012-11-06 Yannick Moy <moy@adacore.com> + + * s-bignum.adb (Div_Rem): Fix another bug in step D3. + +2012-11-06 Tristan Gingold <gingold@adacore.com> + + * s-tarest.adb (Create_Restricted_Task): Call + Create_Restricted_Task_Sequential in sequential case. + +2012-11-06 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_prag.adb (Expand_Pragma_Loop_Assertion): Do not rewrite the + pragma into a null statement as its presence is desirable in -gnatG + output. + +2012-11-06 Ed Schonberg <schonberg@adacore.com> + + * sem_ch8.adb (Check_Constrained_Object): Do nothing if the + renamed object is a limited record. + +2012-11-06 Bernard Banner <banner@adacore.com> + + * sysdep.c (_getpagesize): New. Minor reformatting. + +2012-11-06 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb: Minor reformatting. + +2012-11-06 Robert Dewar <dewar@adacore.com> + + * s-bignum.adb (Div_Rem): Fix bug in step D3. + * uintp.adb (UI_Div_Rem): Add comment on bug in step D3. + +2012-11-06 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_prag.adb (Expand_Pragma_Loop_Assertion): Update the comment + on intended expansion. Reimplement the logic which expands the + termination variants. + (Process_Increase_Decrease): Update the parameter profile and the + comment related to it. Accommodate the new aggregate-like appearance of + the termination variants. + * sem_prag.adb (Analyze_Pragma): Update the syntax of pragma + Loop_Assertion. Reimplement the semantic analysis of the pragma + to accommodate the new aggregate-like variant. + (Check_Variant): New routine. + * snames.ads-tmpl: Change names Name_Decreases and Name_Increases + to Name_Decreasing and Name_Increasing respectively. Add name + Variant. + +2012-11-06 Ed Schonberg <schonberg@adacore.com> + + * sem_eval.adb: Static evaluation of case expressions. + +2012-11-06 Robert Dewar <dewar@adacore.com> + + * exp_prag.adb, impunit.adb, exp_ch9.adb, par-ch4.adb, + s-tarest.adb: Minor reformatting. + +2012-11-06 Tristan Gingold <gingold@adacore.com> + + * s-tposen.ads: Minor comment update. + +2012-11-06 Arnaud Charlet <charlet@adacore.com> + + * sysdep.c: Rename sig* wrappers to use unique names. + +2012-11-06 Yannick Moy <moy@adacore.com> + + * exp_dbug.adb (Qualify_Entity_Name): Mark entity as having a qualified + name after being treated, in formal verification mode. + +2012-11-06 Fedor Rybin <frybin@adacore.com> + + * gnat_ugn.texi: Updating gnattest section to reflect changes + in default behaviour of the tool. + +2012-11-06 Thomas Quinot <quinot@adacore.com> + + * s-oscons-tmplt.c: Interfaces.C now needs to be WITH'd even + on platforms that do not support sockets (for the benefit of + subtype IOCTL_Req_T). + +2012-11-06 Ed Schonberg <schonberg@adacore.com> + + * par-ch4.adb (P_Primary): if-expressions, case-expressions, + and quantified expressions are legal if surrounded by parentheses + from an enclosing context, such as a call or an instantiation. + +2012-11-06 Yannick Moy <moy@adacore.com> + + * impunit.adb (Get_Kind_Of_Unit): Return appropriate kind for + predefined implementation files, instead of returning + Not_Predefined_Unit on all .adb files. + +2012-11-06 Tristan Gingold <gingold@adacore.com> + + * exp_ch9.adb (Build_Activation_Chain_Entity): Return immediately if + partition elaboration policy is sequential. + (Build_Task_Activation_Call): Likewise. Use + Activate_Restricted_Tasks on restricted profile. + (Make_Task_Create_Call): Do not use the _Chain + parameter if elaboration policy is sequential. Call + Create_Restricted_Task_Sequential in that case. + * exp_ch3.adb (Build_Initialization_Call): Change condition to + support concurrent elaboration policy. + (Build_Record_Init_Proc): Likewise. + (Init_Formals): Likewise. + * bindgen.adb (Gen_Adainit): Declare Partition_Elaboration_Policy + and set it in generated code if the elaboration policy is + sequential. The procedure called to activate all tasks is now + named __gnat_activate_all_tasks. + * rtsfind.adb (RE_Activate_Restricted_Task, + RE_Create_Restricted_Task_Sequential): New RE_Id literals. + * s-tarest.adb (Create_Restricted_Task): Added to create a task without + adding it on an activation chain. + (Activate_Tasks): Has now a Chain parameter. + (Activate_All_Tasks_Sequential): Added. Called by the binder to + activate all tasks. + (Activate_Restricted_Tasks): Added. Called during elaboration to + activate tasks of the units. + * s-tarest.ads: Remove pragma Partition_Elaboration_Policy. + (Partition_Elaboration_Policy): New variable (set by the binder). + (Create_Restricted_Task): Revert removal of the chain parameter. + (Create_Restricted_Task_Sequential): New procedure. + (Activate_Restricted_Tasks): Revert removal. + (Activate_All_Tasks_Sequential): New procedure. + +2012-11-06 Bernard Banner <banner@adacore.com> + + * adaint.c Add file macro definitions missing on Android. + * adaint.h Avoid definitions related to task affinity and CPU + sets since this functionality is missing on the Android + * errno.c (__set_errno): Android already contains such a named + procedure so do include again. + * gsocket.h: Sockets not supported on Android. + * init.c: Avoid linux related code not supported on Android. + * sysdep.c (sigismember, sigaddset, sigdelset, sigemptyset, + sigfillset): wrapper functions since sig routines are defined + as inline macros on Android. + * terminals.c: Add stubs for terminal related functions not + supported on Android. + +2012-11-06 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_prag.adb (Analyze_Pragma): Do not + output the characters of an illegal argument as it may not have + characters to begin with. + +2012-11-06 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_prag.adb (Expand_Pragma_Loop_Assertion): + Change the order of argument processing to avoid disappearing + increase / decrease expressions. + +2012-11-06 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_prag.adb: Add with and use clause for Sem_Ch8. + (Expand_N_Pragma): Add a new variant to expand pragma Loop_Assertion. + (Expand_Pragma_Loop_Assertion): New routine. + * par-prag.adb (Prag): The semantic analysis of pragma + Loop_Assertion is carried out by Analyze_Pragma. No need for + checks in the parser. + * sem_prag.adb: Add a reference position value for pragma + Loop_Assertion in Sig_Flags. + (Analyze_Pragma): Add semantic analysis for pragma Loop_Assertion. + * snames.ads-tmpl: Add the following new names: + Name_Decreases Name_Increases Name_Loop_Assertion. + Add new pragma id Pragma_Loop_Assertion. + +2012-11-06 Ed Schonberg <schonberg@adacore.com> + + * exp_ch5.adb: Identifier in iterator must have debug + information. + +2012-11-06 Arnaud Charlet <charlet@adacore.com> + + * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Remove + duplicate rules handled by Make-generated.in. + +2012-10-31 Lawrence Crowl <crowl@google.com> + + * gcc-interface/utils.c (gnat_write_global_declarations): + Rename varpool_node to varpool_node_for_decl. + +2012-10-30 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Make-lang.in: Fix and clean up rules for C files. + +2012-10-29 Arnaud Charlet <charlet@adacore.com> + + * gcc-interface/Makefile.in (s-oscons.ads): Adjust call to xoscons. + +2012-10-29 Pascal Obry <obry@adacore.com> + + * xoscons.adb, Make-generated.in; The template used by xoscons is now + given as parameter. + * gcc-interface/Make-lang.in: Update dependencies. + +2012-10-29 Yannick Moy <moy@adacore.com> + + * exp_dbug.adb (Qualify_Entity_Name): Only do renaming in formal + verification mode when there is a homonym. + +2012-10-29 Thomas Quinot <quinot@adacore.com> + + * xoscons.adb: Minor reformatting. + +2012-10-29 Yannick Moy <moy@adacore.com> + + * exp_alfa.adb (Expand_Alfa): Backtrack change that removed + qualification of names in formal verification mode. Instead, + the qualification should be modified. + * exp_dbug.adb (Qualify_Entity_Name): Modify qualification in formal + verification mode, so that only a suffix is added to distinguish + homonyms from the same scope. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Document that pragma Optimize_Alignment (Space) is + ignored with a warning for packed variable length records. + +2012-10-29 Thomas Quinot <quinot@adacore.com> + + * socket.c, g-socthi-dummy.adb, g-socthi-dummy.ads, g-socthi-vms.adb, + g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads, + s-oscons-tmplt.c, g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi.adb, + g-socthi.ads, xoscons.adb, g-socket.adb, g-sothco.ads: Introduce an + appropriate subtype for IOCTL requests, since these may be signed or + unsigned. + +2012-10-29 Gary Dismukes <dismukes@adacore.com> + + * exp_alfa.adb: Minor reformatting. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi, gnat_ugn.texi: Clarify documentation on maximum + line length style switch. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * layout.adb (Set_Composite_Alignment): Ignore pragma + Optimize_Alignment (Space) for packed variable length records. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * s-bignum.adb: Minor comment change. + +2012-10-29 Thomas Quinot <quinot@adacore.com> + + * s-oscons-tmplt.c: Fix signedness of ioctl request identifiers + for x86_64-freebsd. + +2012-10-29 Yannick Moy <moy@adacore.com> + + * exp_alfa.adb (Expand_Alfa): Remove qualification of names. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb: Minor reformatting. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Minor rewording. + +2012-10-29 Javier Miranda <miranda@adacore.com> + + * exp_disp.ads (Is_Expanded_Dispatching_Call): New subprogram. + * exp_disp.adb (Expand_Dispatching_Call): No action needed if the + call has been already expanded. + (Is_Expanded_Dispatching_Call): New subprogram. + * sem_disp.adb (Propagate_Tag): No action needed if the call + has been already expanded. + +2012-10-29 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch9.adb (Create_Index_And_Data): Remove local + variable Index_Typ and its uses. The type of the index is now + System.Tasking.Entry_Index. Update all related comments. + * rtsfind.ads: Add RE_Entry_Index in tables RE_Id and RE_Unit_Table. + * s-taskin.adb (Number_Of_Entries): The return type is now Entry_Index. + * s-taskin.ads: The index type of Task_Entry_Names_Array is now + Entry_Index. + (Number_Of_Entries): The return type is now Entry_Index. + * s-tpoben.adb (Number_Of_Entries): The return type is now Entry_Index. + * s-tpoben.ads: The index type of Protected_Entry_Names_Array + is now Entry_Index. + (Number_Of_Entries): The return type is now Entry_Index. + +2012-10-29 Pascal Obry <obry@adacore.com> + + * gnat_ugn.texi: Add note about SEH setup on x86-windows. + +2012-10-29 Eric Botcazou <ebotcazou@adacore.com> + + * s-bignum.adb (Allocate_Bignum): Use the exact layout of + Bignum_Data for the overlay. + +2012-10-29 Thomas Quinot <quinot@adacore.com> + + * gnat_rm.texi, sem_prag.adb, sem_util.adb, sem_util.ads, + par-prag.adb, par-util.adb, snames.ads-tmpl (Sem_Prag.Analyze_Pragma): + Handle new pragma Attribute_Definition. + (Sem_Util.Bad_Attribute): New routine, moved here + from par-util, so that it can be used by the above. + (Par_Util.Signal_Bad_Attribute): Processing moved to + Sem_Util.Bad_Attribute. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * s-tpoben.ads, s-taskin.ads, exp_ch3.adb: Minor reformatting. + +2012-10-29 Yannick Moy <moy@adacore.com> + + * sem_prag.adb, gnat1drv.adb, opt.ads: Rename S14_Extensions + into Formal_Extensions. + +2012-10-29 Thomas Quinot <quinot@adacore.com> + + * sem_attr.adb: Minor reformatting. + +2012-10-29 Tristan Gingold <gingold@adacore.com> + + * gnat_rm.texi: Document implementation advice for Pragma + Partition_Elaboration_Policy. + +2012-10-29 Yannick Moy <moy@adacore.com> + + * s-bignum.adb (Div_Rem): Reference that Algorithm_D is from + the second edition of TAOCP from Knuth, since the algo changed + in the third edition. Also correct the definition of 'd' which + could overflow. + +2012-10-29 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch3.adb (Build_Initialization_Call): Create static strings + which denote entry [family] names and associate them with the + object's Protection_Entries or ATCB. + (Build_Init_Statements): + Remove local variable Names. Do not generate the entry [family] + names inside the init proc because they are now static. + * exp_ch9.adb (Build_Entry_Names): Reimplemented. The strings + which denote entry [family] names are now generated statically + and associated with the concurrent object's Protection_Entries + or ATCB during initialization. + * exp_ch9.ads (Build_Entry_Names): Change subprogram profile + and associated comment on usage. + * rtsfind.ads: Add the following entries to tables RE_Id and + RE_Unit_Table: + + RE_Protected_Entry_Names_Array RE_Task_Entry_Names_Array + RO_PE_Number_Of_Entries RO_PE_Set_Entry_Names + RO_ST_Number_Of_Entries RO_ST_Set_Entry_Names + + Remove the following entries from tables RE_Id and RE_Unit_Table: + + RO_PE_Set_Entry_Name RO_TS_Set_Entry_Name + + * s-taskin.adb: Remove with clause for Ada.Unchecked_Deallocation. + (Free_Entry_Names_Array): Removed. + (Number_Of_Entries): New routine. + (Set_Entry_Names): New routine. + * s-taskin.ads: Rename type Entry_Names_Array to + Task_Entry_Names_Array. Rename type Entry_Names_Array_Access + to Task_Entry_Names_Access. Update the type of ACTB field + Entry_Names and add a comment on its protection status. + (Free_Entry_Names_Array): Removed. + (Number_Of_Entries): New routine. + (Set_Entry_Names): New routine. + * s-tassta.adb (Create_Task): Remove formal parameter + Build_Entry_Names. Do not allocate an array to hold the + string names of entries and families. + (Free_Entry_Names): Removed. + (Free_Task): Remove the call to Free_Entry_Names. + (Set_Entry_Name): Removed. + (Vulnerable_Free_Task): Remove the call to Free_Entry_Names. + * s-tassta.ads (Create_Task): Remove formal parameter + Build_Entry_Names along with associated comment. + (Set_Entry_Name): Removed. + * s-tpoben.adb: Remove with clause for Ada.Unchecked_Deallocation. + (Finalize): Remove the call to Free_Entry_Names. + (Free_Entry_Names): Removed. + (Initialize_Protection_Entries): + Remove formal parameter Build_Entry_Names. Do not allocate + an array to hold the string names of entries and families. + (Number_Of_Entries): New routine. + (Set_Entry_Name): Removed. + (Set_Entry_Names): New routine. + * s-tpoben.ads: Add types Protected_Entry_Names_Array and + Protected_Entry_Names_Access. Update the type of Protection_Enties + field Entry_Names. + (Initialize_Protection_Entries): Remove + formal parameter Build_Entry_Names along with associated comment. + (Number_Of_Entries): New routine. + (Set_Entry_Name): Removed. + (Set_Entry_Names): New routine. + +2012-10-29 Arnaud Charlet <charlet@adacore.com> + + * gnat_ugn.texi: Minor typo fix. +2012-10-29 Yannick Moy <moy@adacore.com> + + * debug.adb Associate debug switch -gnatd.V to extensions for + formal verification. + * gnat1drv.adb (Adjust_Global_Switches): Set flag S14_Extensions + when -gnatd.V is set. + * gnat_rm.texi: Remove doc for Assert_And_Cut. + * opt.ads Declare new flag S14_Extensions, to be set when new + aspects/pragmas/attributes for formal verification should be + accepted. + * sem_prag.adb (Analyze_Pragma): Check that S14_Extensions is + set when treating pragma Assert_And_Cut. + +2012-10-29 Tristan Gingold <gingold@adacore.com> + + * s-tarest.ads, s-tassta.adb: Add a pragma Partition_Elaboration_Policy. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * freeze.adb: Minor reformatting. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * xr_tabls.adb, xr_tabls.ads, exp_ch9.adb, snames.adb-tmpl, + snames.ads-tmpl, exp_ch3.adb: Minor reformatting. + +2012-10-29 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb: Call Build_Subprogrm_Instance_Renamings only when + generating code. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Add documentation for -gnatw.k/-gnatw.K. + * ug_words: Add entries for -gnatw.k/.K for [NO]STANDARD_REDEFINITION. + * vms_data.ads: Add entries for [NO]STANDARD_REDEFINITION. + +2012-10-29 Tristan Gingold <gingold@adacore.com> + + * exp_ch9.adb, s-tarest.ads, exp_ch3.adb: Update comments. + +2012-10-29 Yannick Moy <moy@adacore.com> + + * gnat_rm.texi: Minor documentation addition. + +2012-10-29 Emmanuel Briot <briot@adacore.com> + + * xr_tabls.adb, xr_tabls.ads (Add_Declaration, Add_Reference): No + longer assume that a parameter declaration is seen after the subprogram + that uses it. + +2012-10-29 Tristan Gingold <gingold@adacore.com> + + * lib-writ.adb (Write_ALI): Emit partition elaboration policy + in P line. + * lib-writ.ads: Document partition elaboration policy indication. + * sem_prag.adb (Check_Arg_Is_Partition_Elaboration_Policy): New + procedure. + (Analyze_Pragma): Handle Partition_Elaboration_Policy. + (Sig_Flags): Add flag for Pragma_Partition_Elaboration_Policy + * ali.adb (Initialize_ALI): Init Partition_Elaboration_Policy_Specified. + (Scan_ALI): Read Ex indications. + * ali.ads: ALIs_Record: Add Partition_Elaboration_Policy. + * par-prag.adb (Prag): Add Partition_Elaboration_Policy. + * snames.adb-tmpl (Is_Partition_Elaboration_Policy_Name): New function. + * opt.ads (Partition_Elaboration_Policy): Declare. + (Partition_Elaboration_Policy_Sloc): Declare. + * bcheck.adb (Check_Consistent_Partition_Elaboration_Policy): + New procedure. (Check_Configuration_Consistency): Check partition + elaboration policy consistency. + * snames.ads-tmpl (Name_Partition_Elaboration_Policy): New name. + (First_Partition_Elaboration_Policy_Name, Name_Concurrent, + Name_Sequential, Last_Partition_Elaboration_Policy_Name): Likewise. + (Pragma_Partition_Elaboration_Policy): New literal. + (Is_Partition_Elaboration_Policy_Name): New function. + +2012-10-29 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Is_Public_Subprogram_For): Handle properly + expression functions, which are rewritten as subprogram + declarations, when generating invariants for its return value + and in-out parameters. + +2012-10-29 Arnaud Charlet <charlet@adacore.com> + + * warnsw.adb (Set_GNAT_Mode_Warnings): Unset + Warn_On_Standard_Redefinition. + +2012-10-29 Javier Miranda <miranda@adacore.com> + + * sem_ch3.adb (Derive_Progenitor_Subprograms): Complete documentation. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * par-ch11.adb (Warn_If_Standard_Redefinition): Add calls. + * par-ch3.adb (P_Defining_Identifier): Call + Warn_If_Standard_Redefinition if not inside record definition. + * par-ch6.adb (Warn_If_Standard_Redefinition): Add calls. + * par-util.adb (Warn_If_Standard_Redefinition): New procedure. + * par.adb (Inside_Record_Definition): New flag. + (Warn_If_Standard_Redefinition): New procedure. + * sinfo-cn.adb (Change_Identifier_To_Defining_Identifier): Remove + handling of warning for redefining standard name (moved to Par*). + +2012-10-29 Javier Miranda <miranda@adacore.com> + + * sem_ch3.adb (Derive_Progenitor_Subprograms): Disable small + optimization in generic formal types. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * exp_ch9.adb, exp_ch3.adb: Add comments. + * sem_prag.adb: Minor reformatting. + +2012-10-29 Tristan Gingold <gingold@adacore.com> + + * bindgen.adb (Gen_Output_File_Ada): Do not emit declaration for + Is_Elaborated if not referenced. + +2012-10-29 Tristan Gingold <gingold@adacore.com> + + * exp_ch9.adb (Build_Activation_Chain_Entity): Punt in restricted + profile. + * exp_ch3.adb (Build_Initialization_Call): Do no append _Chain + parameter in restricted profile. + (Build_Init_Call_Thru): Likewise. + (Init_Formals): Likewise. + * exp_ch3.adb: Minor reformatting. + +2012-10-29 Arnaud Charlet <charlet@adacore.com> + + * usage.adb: Update usage line for -gnatw.k. + +2012-10-29 Yannick Moy <moy@adacore.com> + + * sem_prag.adb: Code clean up. + +2012-10-29 Vincent Celier <celier@adacore.com> + + * projects.texi: Clarify documentation of attribute + Ignore_Source_Sub_Dirs. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * g-sechas.adb, g-sechas.ads, exp_ch9.adb, bindgen.adb, exp_dbug.adb, + exp_dbug.ads: Minor reformatting. + +2012-10-29 Pascal Obry <obry@adacore.com> + + * g-sechas.adb, g-sechas.ads: (Binary_Message_Digest): New subtype. + (Digest): New versions returning a Binary_Message_Digest. + (Wide_Digest): Likewise. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * warnsw.adb: Complete previous change. + +2012-10-29 Tristan Gingold <gingold@adacore.com> + + * bindgen.adb (Check_File_In_Partition, Check_System_Restrictions_Used): + Removed. + (Check_Dispatching_Domains_Used): Removed. + (Gen_Adafinal): Remove call to above procedures. + (Resolve_Binder_Options): Handle system restrictions and dispatching + domains. + +2012-10-29 Tristan Gingold <gingold@adacore.com> + + * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Remove + Chain parameter. + * exp_ch9.adb (Make_Task_Create_Call): Do not add Chain parameter + on restricted runtime. + +2012-10-29 Pascal Obry <obry@adacore.com> + + * g-sechas.adb, g-sechas.ads: Minor code clean-up. + +2012-10-29 Ed Schonberg <schonberg@adacore.com> + + * sem_aux.adb (Get_Rep_Item): Treat Priority and Interrupt_Priority + as equivalent, because only one of them can be specified for a + task, protected definition, or subprogram body. + * aspects.adb ((Same_Aspect): The canonical aspect of + Interrupt_Priority is Priority. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * sem_ch13.adb: Minor reformatting. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * i-cstrea.ads: Avoid redefinition of standard symbol string. + * prj-makr.adb: Add comment for OK redefinition of Stadard. + * prj.ads: Add comment for OK redefinition of Stadard. + * s-crtl.ads: Avoid redefinition of standard symbol string. + * sinfo-cn.adb (Change_Identifier_To_Defining_Identifier): + Generate warning for standard redefinition if + Warn_On_Standard_Definition set. + * usage.adb: Add lines for -gnatw.k and -gnatw.K + * warnsw.adb: Set/reset Warn_On_Standard_Redefinition + appropriately. + * warnsw.ads (Warn_On_Standard_Redefinition): New flag. + * s-stratt-xdr.adb: Avoid new warning. + +2012-10-29 Ed Schonberg <schonberg@adacore.com> + + * exp_dbug.ads, exp_dbug.adb (Build_Subprogram_Instance_Renamings): + in the body of a subpogram instance, introduce local renamings + for actuals of an elementary type, so that GDB can recover the + values of these actuals more directly. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * sem_ch5.adb (Analyze_Loop_Statement): Add warning for identical + inner/outer ranges. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * einfo.ads: Change terminology "present" to "defined" in talking + about whether a given field is defined for a given entity kind. + +2012-10-29 Bob Duff <duff@adacore.com> + + * atree.ads: Minor comment fix. + +2012-10-29 Bob Duff <duff@adacore.com> + + * sem_ch13.adb (Replace_Type_Reference): Set_Comes_From_Source. + Otherwise, the node is ignored by ASIS. + * sem_ch5.adb: Minor reformatting. + +2012-10-29 Thomas Quinot <quinot@adacore.com> + + * exp_attr.adb, exp_dist.adb, exp_dist.ads (Build_To_Any_Call): Pass + an explicit Loc parameter to set the source location of generated + nodes. + +2012-10-29 Tristan Gingold <gingold@adacore.com> + + * exp_ch9.adb (Build_Task_Activation_Call): Do nothing on + restricted profile. + * bindgen.adb (System_Tasking_Restricted_Stages_Used): New variable. + (Gen_Adainit): Declare and call Activate_Tasks when the above variable + is set. + (Resolve_Binder_Options): Set the variable. + * rtsfind.ads (RE_Activate_Restricted_Tasks): Removed (now unused). + * s-tarest.adb (Tasks_Activation_Chain): New variable. + (Activate_Restricted_Tasks): Removed, and replaced by ... + (Activate_Tasks): New procedure, to activate all tasks at + the end of elaboration. + (Create_Restricted_Tasks): Chain parameter is now unreferenced. Put + the created task on the Tasks_Activation_Chain list. + * s-tarest.ads (Activate_Restricted_Tasks): Removed. + (Activate_Tasks): Added. + +2012-10-29 Gary Dismukes <dismukes@adacore.com> + + * sem_res.adb (Resolve_If_Expression): Compare subtype of the 'then' + expression against the subtype of the expression rather than comparing + base types, same as is already done for the 'else' expression. + +2012-10-29 Steve Baird <baird@adacore.com> + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If CodePeer_Mode + = True and we detect that an Address specification is used to overlay + another object, do not set that object's Treat_As_Volatile flag. + +2012-10-29 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Constant_Redeclaration): If the type of a + deferred constant has invariants, generate invariant call on + the initial value. + +2012-10-29 Bob Duff <duff@adacore.com> + + * sem_ch13.adb (Replace_Type_Reference): Use correct sloc for + the new node. + +2012-10-29 Thomas Quinot <quinot@adacore.com> + + * sem_elab.adb: Minor reformatting and code reorganization. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * par-ch4.adb (P_Primary): Warn on bad use of unary minus. + +2012-10-29 Robert Dewar <dewar@adacore.com> + + * s-valuti.ads, s-valuti.adb (Bad_Value): New procedure. + * s-valllu.adb, s-valwch.adb, s-valcha.adb, s-valint.adb, + s-valuns.adb, s-valrea.adb, s-valboo.adb, s-valenu.adb, + s-vallli.adb: Use Bad_Value everywhere. + +2012-10-29 Yannick Moy <moy@adacore.com> + + * gnat1drv.adb (Adjust_Global_Switches): Do not suppress checks + in Alfa mode. + +2012-10-29 Yannick Moy <moy@adacore.com> + + * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated): + Add special case for case expression alternative. + (Is_Signed_Integer_Arithmetic_Op): Remove special case for case + expression alternative. + * exp_ch4.adb Minor reformatting. + +2012-10-29 Thomas Quinot <quinot@adacore.com> + + * sem_elab.adb: Minor reformatting. + +2012-10-29 Bob Duff <duff@adacore.com> + + * sem_res.adb: Minor: Remove redundant test. + +2012-10-29 Arnaud Charlet <charlet@adacore.com> + + * pprint.ads, pprint.adb, adabkend.ads, adabkend.adb, + aa_util.ads, aa_util.adb: New. + +2012-10-23 Eric Botcazou <ebotcazou@adacore.com> + + * system-linux-mipsel.ads (Stack_Check_Probes): Set to True. + * system-linux-mips.ads (Stack_Check_Probes): Likewise. + * system-linux-mips64el.ads (Stack_Check_Probes): Likewise. + +2012-10-22 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Force + BLKmode on the type if it is passed by reference. + <E_Array_Subtype>: Likewise. + <E_Record_Type>: Guard the call to Is_By_Reference_Type predicate. + <E_Record_Subtype>: Likewise. + + * gcc-interface/Makefile.in: Remove outdated comment and reference to + non-existing file. + +2012-10-22 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils.c (rest_of_record_type_compilation): Simplify and + robustify pattern machine code for masking operations. + +2012-10-22 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: In + type annotation mode, break circularities introduced by AI05-0151. + +2012-10-22 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Loop_Statement_to_gnu): Use gnat_type_for_size + directly to obtain an unsigned version of the base type. + +2012-10-22 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: Do not + generate the special PARM_DECL for an Out parameter in LTO mode. + +2012-10-22 Eric Botcazou <ebotcazou@adacore.com> + + PR bootstrap/54820 + * gcc-interface/Make-lang.in (GCC_LINK): Remove hardcoded options. + +2012-10-15 Matthias Klose <doko@ubuntu.com> + + * gcc-interface/Makefile.in: Match arm*-*-linux-*eabi* for + ARM Linux/GNU. + +2012-10-05 Robert Dewar <dewar@adacore.com> + + * sem_ch7.adb: Minor reformatting. + +2012-10-05 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Analyze_Pragma, case Persistent_BSS): check for + a duplicate pragma before Rep_Item_Too_Late to prevent spurious + messages about duplicate pragmas. + +2012-10-05 Ed Schonberg <schonberg@adacore.com> + + * exp_util.adb (Find_Init_Call): If the successor of the + object declaration is a block, check whether it contains the + initialization call, because it may have been created by actuals + that use the secondary stack. + +2012-10-05 Thomas Quinot <quinot@adacore.com> + + * sem_dim.adb, errout.adb, errout.ads (Analyze_Dimension_Call): Add + guard against abnormal tree resulting from a previously diagnosed + illegality. + +2012-10-05 Hristian Kirtchev <kirtchev@adacore.com> + + * freeze.adb (Freeze_Expression): Rename local variable Cspc to Spec + and update all refs to it. Do not freeze an entity outside a subprogram + body when the original context is an expression function. + +2012-10-05 Robert Dewar <dewar@adacore.com> + + * gnat1drv.adb (Adjust_Global_Switches): Default for overflow checking + is suppressed, even if backend overflow/divide checks are enabled. + +2012-10-05 Ed Schonberg <schonberg@adacore.com> + + * einfo.adb (Set_Invariant_Procedure, Set_Predicate_Function): + chain properly subprograms on Subprograms_For_Type list. + * sem_ch13.ads; (Build_Invariant_Procedure_Declaration): new + procedure, to create declaration for invariant procedure + independently of the construction of the body, so that it can + be called within expression functions. + * sem_ch13.adb (Build_Invariant_Procedure): code cleanup. The + declaration may already have been generated at the point an + explicit invariant aspect is encountered. + * sem_prag.adb; (Analyze_Pragma, case Invariant): create declaration + for invariant procedure. + * sem_ch7.adb (Analyze_Package_Specification): clean up call to + build invariant procedure. + (Preserve_Full_Attributes): propagate information about invariants + if they appear on a completion, + +2012-10-05 Pascal Obry <obry@adacore.com> + + * gnat_ugn.texi: Update documentation to lift Microsoft C + restriction. + +2012-10-05 Robert Dewar <dewar@adacore.com> + + * sem_util.adb (Has_One_Matching_Field): Handle case of lone + discriminant. + +2012-10-05 Yannick Moy <moy@adacore.com> + + * checks.adb (Minimize_Eliminate_Overflow_Checks): Correct code + for the division operation and exponent operation. Adjust bound + for the mod and rem operations. + +2012-10-05 Robert Dewar <dewar@adacore.com> + + * checks.adb, checks.ads, s-tassta.adb, s-stposu.adb, s-spsufi.adb, + s-spsufi.ads, exp_ch4.adb: Minor reformatting. + +2012-10-05 Yannick Moy <moy@adacore.com> + + * switch-c.adb, checks.adb, checks.ads, sem_prag.adb, exp_ch4.adb, + osint.adb: Minor correction of typos, and special case for Alfa mode. + +2012-10-05 Hristian Kirtchev <kirtchev@adacore.com> + + * s-spsufi.adb: Add with clause for Ada.Unchecked_Deallocation. + Add with and use clauses for System.Finalization_Masters. + (Finalize_And_Deallocate): Add an instance of + Ada.Unchecked_Deallocation. Merge the code from the now obsolete + Finalize_Subpool into this routine. + * s-spsufi.ads: Add pragma Preelaborate. + * s-stposu.adb: Remove with clause for + Ada.Unchecked_Deallocation; Add with and use clauses for + System.Storage_Pools.Subpools.Finalization; (Finalize_Pool): + Update the comment on all actions takes with respect to a subpool + finalization. Finalize and deallocate each individual subpool. + (Finalize_Subpool): Removed. + (Free): Removed; + (Detach): Move from package body to spec. + * s-stposu.ads (Detach): Move from package body to spec. + (Finalize_Subpool): Removed. + +2012-10-05 Arnaud Charlet <charlet@adacore.com> + + * s-tassta.adb: Update comments. + (Vulnerable_Complete_Master): If Free_On_Termination is set, do + nothing, and let the task free itself if not already done. + +2012-10-04 Robert Dewar <dewar@adacore.com> + + * sem_res.adb (Resolve_Set_Membership): Warn on duplicates. + +2012-10-04 Emmanuel Briot <briot@adacore.com> + + * g-comlin.adb (Getopt): Fix value of Full_Switch returned in case of + invalid switch. + +2012-10-04 Arnaud Charlet <charlet@adacore.com> + + * gcc-interface/Make-lang.in: Update dependencies. + +2012-10-04 Robert Dewar <dewar@adacore.com> + + * sem_eval.adb (Fold_Str, Fold_Uint, Fold_Ureal): Reset static + expression state after Resolve call. + +2012-10-04 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb (Analyze_Pragma. case Warnngs): Don't make entry + in the table for Warnings Off pragmas if within an instance. + +2012-10-04 Ed Schonberg <schonberg@adacore.com> + + * sem_ch9.adb (Analyze_Entry_Body): Transfer + Has_Pragma_Unreferenced flag from entry formal to corresponding + entity in body, to prevent spurious warnings when pragma is + present. + +2012-10-04 Robert Dewar <dewar@adacore.com> + + * s-bignum.adb (Big_Exp): Raise Storage_Error for ludicrously + large results. + +2012-10-04 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Check_Duplicate_Aspects): Diagnose properly + aspects that appear in the partial and the full view of a type. + +2012-10-04 Robert Dewar <dewar@adacore.com> + + * sinfo.ads (N_Return_Statement): Removed. + +2012-10-04 Tristan Gingold <gingold@adacore.com> + + * init.c (__gl_zero_cost_exceptions): Comment it as not used + anymore. + * bindgen.adb (Gen_Adainit): Do not emit Zero_Cost_Exceptions + anymore. + +2012-10-04 Thomas Quinot <quinot@adacore.com> + + * prep.adb, prepcomp.adb, gprep.adb, opt.ads: New preprocessor switch + -a (all source text preserved). + +2012-10-04 Vincent Celier <celier@adacore.com> + + * prj-proc.adb (Recursive_Process): Use project directory + display path name as the value of 'Project_Dir. + +2012-10-04 Robert Dewar <dewar@adacore.com> + + * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow): + Deal with case where we get a bignum operand and cannot do a + range analysis. + * sem_eval.adb (Why_Not_Static): Deal with bignum operands + +2012-10-04 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Find_Unary_Types): Within an instance, an + interpretation that involves a predefied arithmetic operator is + not a candidate if the corresponding generic formal type is not + a numeric type. + * sem_util.ads, sem_util.adb (Corresonding_Generic_Type): If a + type is a generic actual type within an instance, return the + corresponding formal in the generic unit, otherwise return + Any_Type. + +2012-10-04 Robert Dewar <dewar@adacore.com> + + * checks.adb (Minimize_Eliminate_Overflow_Checks): Dont reanalyze + if/case expression if nothing has changed (just reexpand). Stops + case expression from generating incorrect temporary. + * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow): + Fix cut and paste typo for range analysis in NE (not equal) case. + * sem_eval.adb (Compile_Time_Compare): Small optimization to + catch some more cases. + * types.ads (Suppressed_Or_Checked): New subtype of + Overflow_Check_Type. + +2012-10-04 Javier Miranda <miranda@adacore.com> + + * exp_disp.adb (Set_CPP_Constructors_Old): Removed. + (Set_CPP_Constructors): Code cleanup. + +2012-10-04 Ed Schonberg <schonberg@adacore.com> + + * sem_ch10.adb (Is_Ancestor_Unit): Make global, for use elsewhere. + (Install_Private_with_Clauses): if clause is private and limited, + do not install the limited view if the library unit is an ancestor + of the unit being compiled. This unusual configuration occurs + when compiling a unit DDP, when an ancestor P of DDP has a + private limited with clause on a descendant of P that is itself + an ancestor of DDP. + +2012-10-04 Vincent Celier <celier@adacore.com> + + * prj-proc.adb (Process_Package_Declaration): Use project + directory display path name as the value of 'Project_Dir. + +2012-10-04 Gary Dismukes <dismukes@adacore.com> + + * exp_util.adb (Build_Allocate_Deallocate_Proc): The subpool can be + given by an arbitrary name, so copy the tree to make the call's actual. + +2012-10-04 Robert Dewar <dewar@adacore.com> + + * s-exnllf.adb, s-exnllf.ads: Minor reformatting. + +2012-10-04 Thomas Quinot <quinot@adacore.com> + + * exp_ch6.adb: Minor reformatting. + +2012-10-04 Pascal Obry <obry@adacore.com> + + * projects.texi: Use consistently @command{} when referencing + commands. Fix typos. + +2012-10-03 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (New_Overloaded_Entity): call + Append_Inherited_Subprogram when appropriate. + * sem_dim.adb (Analyze_Dimension_Call): Do not perform dimensional + analysis if call has previous semantic error. + * sem_util.ads, sem_util.adb (Append_Inherited_Subprogram): + new subprogram to handle properly the visibility of inherited + operations that are primitives of a type extension, when the + parent type and operations are declared in the same visible part. + +2012-10-03 Robert Dewar <dewar@adacore.com> + + * checks.adb (Minimize_Eliminate_Overflow_Checks): Properly + handle case of top level expression within type conversion + * gnat1drv.adb (Adjust_Global_Switches): Set SUPPRESSED as + default for overflow checking for -gnatg mode (includes run-time). + * sem_res.adb (Resolve_Type_Conversion): Avoid bogus warnings + about redundant conversions from MINIMIZED/EXTENDED mode checking + +2012-10-03 Javier Miranda <miranda@adacore.com> + + * exp_ch4.adb (Expand_N_Allocator_Expression): Minor code + reorganization and cleanup. Done to ensure proper management of + the C++ constructor covering tagged and untagged types and also + non-default constructors. + * exp_ch6.ads, exp_ch6.adb (Make_CPP_Constructor_Call_In_Allocator): + New subprogram. + +2012-10-03 Gary Dismukes <dismukes@adacore.com> + + * sem_ch6.adb: Minor typo fix. + +2012-10-03 Robert Dewar <dewar@adacore.com> + + * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated): + Set Top_Level properly (to False) for operand of range of + membership test. + * exp_ch4.adb (Expand_Membership_Minimize_Eliminate_Overflow): + Fix crash with -gnato3 and membership operations. + (Expand_Membership_Minimize_Eliminate_Overflow): Fix error message + and wrong results for -gnato3 large expression and predicated + subtype. + (Expand_Membership_Minimize_Eliminate_Overflow): Use + expression action node to avoid using insert actions (bombs in + some cases). + (Expand_Compare_Minimize_Eliminate_Overflow): Use expression action + node to avoid using insert actions (bombs in some cases). + +2012-10-03 Javier Miranda <miranda@adacore.com> + + * exp_disp.adb (Set_CPP_Constructors_Old): Handle constructor of + untagged type that has all its parameters with defaults and hence it + covers the default constructor. + +2012-10-03 Yannick Moy <moy@adacore.com> + + * checks.adb, sem_prag.adb, s-bignum.ads: Minor typo fixes. + +2012-10-03 Thomas Quinot <quinot@adacore.com> + + * g-socket.adb (Connect_Socket, version with timeout): When the + newly-connected socket is reported as available for writing, check + whether it has a pending asynchronous error prior to returning. + +2012-10-03 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Check_Conformance): Additional info when subtype + conformance fails, due to a missing null exclusion indicatar in + a formal that must match a controlling access formal. + +2012-10-02 Ben Brosgol <brosgol@adacore.com> + + * gnat_rm.texi: Minor editing. + +2012-10-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Analyze_Function_Return): Reject a return + expression whose type is a local access to subprogram type. + +2012-10-02 Robert Dewar <dewar@adacore.com> + + * sem_eval.adb: Minor improvement to Compile_Time_Compare. + +2012-10-02 Robert Dewar <dewar@adacore.com> + + * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated): + Fix base type problem that resulted in improper conversion. + (Minimize_Eliminate_Overflow_Checks): Properly handle top + level case to avoid unnecessary conversion to bignum or LLI. + (Minimize_Eliminate_Overflow_Checks): Implement uniform two phase + approach for arithmetic operators and for if/case expressions. + * checks.ads: Minor comment fix. + * exp_ch4.adb (Minimized_Eliminated_Overflow_Check): New function, + implements a uniform way of treating minimized/eliminated checks in + two phases. + (Expand_Compare_Minimize_Eliminate_Overflow): Fix cut and + paste error resulting in wrong results for less than in some + cases. (Expand_Membership_Minimize_Eliminate_Overflow): + Fix error caused by incorrect capture of operand types. + (Expand_Membership_Minimize_Eliminate_Overflow): Fix error in + handling of bignum case. + (Expand_N_Case_Expression): Implement + proper two phase handling (Expand_N_If_Expression): Implement + proper two phase handling (Expand_N_Op_Abs): Implement proper + two phase handling ditto for all other arithmetic operators + * sem_res.adb (Resolve_If_Expression): Avoid introducing + unneeded conversions. + +2012-10-02 Robert Dewar <dewar@adacore.com> + + * s-bignum.adb (Big_Exp): 0**0 should be 1, not 0. + (Big_Exp): Fix possible error for (-1)**0. + (Big_Exp): Fix error in computing 2**K for small K. + (Big_Mod): Fix wrong sign for negative operands. + (Div_Rem): Fix bad results for operands close to 2**63. + * s-bignum.ads: Add documentation and an assertion to require + LLI size to be 64 bits. + * sem_prag.adb (Analyze_Pragma, case Overflow_Checks): Do not + allow ELIMINATED if LLI'Size is other than 64 bits. + * switch-c.adb (Scan_Switches): Do not allow -gnato3 if LLI'Size + is not 64 bits. + * switch.ads (Bad_Switch): Add missing pragma No_Return. + * gnat_ugn.texi: Added appendix on Overflow Check Handling in GNAT. + +2012-10-02 Robert Dewar <dewar@adacore.com> + + * sem_type.adb: Minor reformatting. + +2012-10-02 Robert Dewar <dewar@adacore.com> + + * sem_ch8.adb: Minor reformatting. + +2012-10-02 Javier Miranda <miranda@adacore.com> + + * exp_disp.adb (Set_CPP_Constructors): Handle constructor with default + parameters that covers the default constructor. + +2012-10-02 Yannick Moy <moy@adacore.com> + + * s-bignum.adb: Minor stylistic and comment corrections. + +2012-10-02 Pascal Obry <obry@adacore.com> + + * prj-util.adb (For_Interface_Sources): Iterate over all sources in + aggregate library projects. + +2012-10-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch8.adb (Find_Direct_Name): The left-hand side of an + assignment may designate a generalized reference. + +2012-10-02 Eric Botcazou <ebotcazou@adacore.com> + + * types.h (N_Return_Statement): Delete. + * gcc-interface/trans.c (gnat_to_gnu): Replace N_Return_Statement with + N_Simple_Return_Statement. + +2012-10-02 Ed Schonberg <schonberg@adacore.com> + + * freeze.adb (Freeze_Entity): in a generic context, aspects must + be analyzed because they may be queried subsequently within the + generic unit, even if no other freezing actions are generated + for an entity. + * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): iterator + aspects must be analyzed because they are delayed aspects and + the corresponding attribute definition clause may not have been + analyzed yet. + +2012-10-02 Yannick Moy <moy@adacore.com> + + * gnat_rm.texi: Minor editing. + +2012-10-02 Robert Dewar <dewar@adacore.com> + + * sinfo.adb, sinfo.ads, sem_util.adb, sem_util.ads, types.h, + exp_ch4.adb, exp_ch6.adb: Get rid of internal use of N_Return_Statement. + +2012-10-02 Eric Botcazou <ebotcazou@adacore.com> + + * types.h: Minor cosmetic fix. + +2012-10-02 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interfaces/decl.c (elaborate_expression_1): Use the variable for + bounds of loop iteraration scheme only for locally defined subtypes. + + * gcc-interface/trans.c (gigi): Fix formatting. + (build_return_expr): Apply the NRV optimization only for BLKmode. + +2012-10-02 Robert Dewar <dewar@adacore.com> + + * sinfo.ads: Remove refs of N_Conditional_Expression and + N_Parameterized_Expression. + +2012-10-02 Thomas Quinot <quinot@adacore.com> + + * exp_aggr.adb (Get_Component_Val): Rewrite code that computes + justification of bits in enclosing word in an attempt to make + it clearer. + +2012-10-02 Robert Dewar <dewar@adacore.com> + + * par_sco.adb, sem_ch3.adb, layout.adb, exp_ch7.adb, exp_imgv.adb, + exp_util.adb, exp_util.ads, exp_attr.adb, sinfo.adb, sinfo.ads, + exp_ch9.adb, style.ads, scos.ads, debug.adb, einfo.ads, scng.adb, + checks.adb, checks.ads, sem.adb, par-ch4.adb, sem_util.adb, types.h, + sem_res.adb, expander.adb, scans.ads, par.adb, exp_ch2.adb, + gnat1drv.adb, stylesw.ads, sem_elab.adb, exp_ch4.adb, exp_ch4.ads, + exp_ch6.adb, sem_ch4.adb, sem_ch4.ads, sem_ch6.adb, + opt.ads, sem_eval.adb, sem_eval.ads, exp_intr.adb, sprint.adb, + sprint.ads, styleg.ads: Change name Conditional_Expression to + If_Expression. + * gcc-interface/trans.c (gnat_to_gnu): Replace + N_Conditional_Expression by N_If_Expression. + * gcc-interface/Make-lang.in: Update dependencies. + +2012-10-02 Robert Dewar <dewar@adacore.com> + + * exp_ch4.adb (Expand_N_Op_Expon): Use expression with actions + for x ** 4. + +2012-10-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch5.adb: (Analyze_Iterator_Specification): If container + has a variable indexing aspect, the element is a variable and + is modifiable in the loop. This check is also performed when the + loop is expanded, but it must be done in semantic analysis when + expansion is disabled, for example for ASIS usage. + +2012-10-02 Ed Schonberg <schonberg@adacore.com> + + * lib-xref.adb (Generate_Reference): If a child subprogram + has no previous spec, treat a reference to its formals (such + as a parameter association) as coming from source in order to + generate the proper references and enable gps navigation between + reference and declaration. + +2012-10-02 Robert Dewar <dewar@adacore.com> + + * checks.adb (Apply_Arithmetic_Overflow_Checked_Suppressed): + New name for Apply_Arithmetic_Overflow_Normal + (Apply_Arithmetic_Overflow_Minimized_Eliminated): + Add handling for conditional expressions + (Is_Signed_Integer_Arithmetic_Op): Now includes conditional + expressions (Minimize_Eliminate_Overflow_Checks): Handle + conditional expressions. + * checks.ads: Minor comment fixes. + * exp_ch4.adb (Expand_N_Case_Expression): Call + Apply_Arithmetic_Overflow_Check (Expand_N_Conditional_Expression): + Call Apply_Arithmetic_Overflow_Check + * s-bignum.adb (Normalize): Remove incorrect precondition. + * sem_res.adb (Resolve_Case_Expression): Set Do_Overflow_Check + flag (Resolve_Conditional_Expression): Set Do_Overflow_Check flag. + * sinfo.adb: Add Do_Overflow_Check for conditional expressions. + * sinfo.ads: Minor documentation updates. + +2012-10-02 Ed Schonberg <schonberg@adacore.com> + + * exp_ch4.adb (Expand_N_Case_Expression): Do not introduce + indirections when the type of the alternatives is an access type: + more efficient, and removes anomalies when an alternative is + statically null. + +2012-10-02 Robert Dewar <dewar@adacore.com> + + * aspects.ads: Minor comment addition (Invariant is a GNAT aspect). + +2012-10-02 Robert Dewar <dewar@adacore.com> + + * exp_ch7.adb, sem_dim.adb, sem_dim.ads, prj-part.adb, checks.adb, + freeze.adb, sem_ch4.adb, sem_ch13.adb: Minor reformatting. + +2012-10-02 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb (Analyze_Pragma, case Overflow_Checks): Fix + typo preventing proper processing of Overflow_Checks pragmas + for general case. + +2012-10-02 Robert Dewar <dewar@adacore.com> + + * exp_ch4.adb (Expand_N_Op_Mod): Fix crash in ELIMINATED overflow + checks mode when bignum mode is used. + +2012-10-02 Robert Dewar <dewar@adacore.com> + + * stylesw.ads, gnat_ugn.texi: Document new style rule for NOT IN. + * par-ch4.adb (P_Relational_Operator): Add style check for NOT IN. + * style.ads, styleg.adb, styleg.ads (Check_Not_In): New procedure. + +2012-10-02 Vincent Pucci <pucci@adacore.com> + + * sem_attr.adb (Analyze_Attribute): Check dimension for attribute + Old before it gets expanded. + * sem_dim.adb (Analyze_Dimension_Has_Etype): Correctly propagate + dimensions for identifier. + +2012-10-02 Ed Schonberg <schonberg@adacore.com> + + * exp_ch5.adb (Expand_Iterator_Loop): Handle properly the case + where the iterator type is derived locally from an instantiation + of Ada.Iterators_Interface. + * exp_ch7.adb (Establish_Transient_Scope): Do not create a + transient scope if within the expansion of an iterator loop, + because a transient block already exists. + +2012-10-02 Vincent Celier <celier@adacore.com> + + * gnatcmd.adb: Use absolute path for configuration pragmas files + * make.adb (Configuration_Pragmas_Switch.Absolute_Path): Moved + to Makeutl. + * makeutl.ads, makeutl.adb (Absolute_Path): New function, moved from + make.adb. + +2012-10-02 Vincent Celier <celier@adacore.com> + + * prj-part.adb (Post_Parse_Context_Clause): Resurrect Boolean + parameter In_Limited. Check for circularity also if In_Limited + is True. + (Parse_Single_Project): Call Post_Parse_Context_Clause with + In_Limited parameter. + +2012-10-02 Bob Duff <duff@adacore.com> + + * checks.adb (Apply_Predicate_Check): Disable check in -gnatc mode. + +2012-10-02 Vincent Pucci <pucci@adacore.com> + + * sem_ch6.adb (Analyze_Function_Call): Dimension propagation + for function calls moved to Analyze_Dimension_Call. + * sem_dim.adb (Analyze_Dimension_Call): Properly propagate the + dimensions from the returned type for function calls. + +2012-10-02 Vincent Celier <celier@adacore.com> + + * gnatcmd.adb: Take into account any configuration pragma file + in the project files for gnat pretty/stub/metric. + +2012-10-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Check_Indexing_Functions): Refine several tests + on the legality of indexing aspects: Constant_Indexing functions + do not have to return a reference type, and given an indexing + aspect Func, not all overloadings of Func in the current scope + need to be indexing functions. + +2012-10-02 Vasiliy Fofanov <fofanov@adacore.com> + + * gnat_ugn.texi: Adjust docs for overflow checks to be VMS-friendly. + +2012-10-02 Vincent Celier <celier@adacore.com> + + * switch-m.adb (Normalize_Compiler_Switches): Recognize switches + -gnatox and -gnatoxx when x=0/1/2/3. + +2012-10-02 Vincent Pucci <pucci@adacore.com> + + * sem_ch4.adb (Analyze_Indexed_Component_Form): Dimension + analysis for indexed components added. + * sem_ch6.adb (Analyze_Function_Call): Dimension propagation + for function calls added. + * sem_dim.adb (Analyze_Dimension): Call to + Analyze_Dimension_Has_Etype when N is a function call. + (Analyze_Dimension_Call): Don't propagate anymore the dimensions + for function calls since this is now treated separately in + Analyze_Dimension_Has_Etype. + (Analyze_Dimension_Has_Etype): For + attribute references, propagate the dimensions from the prefix. + * sem_dim.ads (Copy_Dimensions): Fix comment. + +2012-10-02 Hristian Kirtchev <kirtchev@adacore.com> + + * checks.ads, checks.adb (Apply_Parameter_Aliasing_Checks): New routine. + (Apply_Parameter_Aliasing_And_Validity_Checks): This routine + has been split into two. + (Apply_Parameter_Validity_Checks): New routine. + * exp_ch6.adb (Expand_Call): Add checks to verify that actuals + do not overlap. The checks are made on the caller side to overcome + issues of parameter passing mechanisms. + * freeze.adb (Freeze_Entity): Update call to + Apply_Parameter_Aliasing_And_Validity_Checks. + +2012-10-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Is_Empty_Range): Use bounds of index type + to determine whether an array is empty when optimizing + a quantified expression over a null range. Use of RM_Size + was incorrect. Analyze condition before constant-folding the + expression to catch potential errors. Modify the error message + to avoid mathematical terminology. + +2012-10-02 Robert Dewar <dewar@adacore.com> + + * usage.adb, gnat_rm.texi, vms_data.ads: Add entry for + /OVERFLOW_CHECKS=?? generating -gnato?? for control + of extended overflow checking. + * ug_words: Add entry for -gnato?? for /OVERFLOW_CHECKS=?? + * gnat_ugn.texi: Add documentation for -gnato?? for control of overflow + checking mode. + +2012-10-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Analyze_Quantified_Expression): If the iterator in + a quantified expression is statically known to be null (e.g. a + array with an empty index type) emit a warning. + +2012-10-02 Robert Dewar <dewar@adacore.com> + + * sem_dim.adb: Minor code reorganization. + * sem_dim.ads: Add comment. + +2012-10-02 Robert Dewar <dewar@adacore.com> + + * checks.ads, exp_ch4.adb, checks.adb + (Minimize_Eliminate_Overflow_Checks): Add Top_Level parameter to avoid + unnecessary conversions to Bignum. + Minor reformatting. + +2012-10-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Process_PPCs): Generate invariant checks for a + return value whose type is an access type and whose designated + type has invariants. Ditto for in-out parameters and in-parameters + of an access type. + * exp_ch3.adb (Build_Component_Invariant_Call): Add invariant check + for an access component whose designated type has invariants. + +2012-10-01 Vincent Pucci <pucci@adacore.com> + + * sem_aggr.adb (New_Copy_Tree_And_Copy_Dimensions): New routine. + (Resolve_Record_Aggregate): New_Copy_Tree calls replaced by + New_Copy_Tree_And_Copy_Dimensions calls. Move_Dimensions call + replaced by Copy_Dimensions call. + * sem_dim.adb (Analyze_Dimension_Component_Declaration): Don't + remove the dimensions of expression in component declaration anymore. + (Copy_Dimensions): New routine. + (Move_Dimensions): Add call to Copy_Dimensions. + * sem_dim.ads (Copy_Dimensions): New routine. + (Move_Dimensions): Spec moved to body of Sem_Dim. + +2012-10-01 Ed Schonberg <schonberg@adacore.com> + + * checks.adb (Apply_Predicate_Check): If the predicate is a + static one and the operand is static, evaluate the predicate at + compile time. + * sem_eval.ads, sem_eval.adb (Eval_Static_Predicate_Check): new + procedure, to evaluate a static predicate check whenever possible. + * sem_res.adb (Resolve_Type_Conversion): Apply predicate check + on the conversion if the target type has predicates. + +2012-10-01 Vincent Pucci <pucci@adacore.com> + + * sem_dim.adb (Has_Symbols): Complain if parameter Symbol has been + provided by the user in the dimension output call. + +2012-10-01 Robert Dewar <dewar@adacore.com> + + * checks.adb (Apply_Divide_Checks): New name for + Apply_Divide_Check (Minimize_Eliminate_Overflow_Checks): + Add code to handle division (and rem and mod) properly. + (Apply_Division_Check): New procedure (Apply_Divide_Checks): + Use Apply_Division_Check (Apply_Divide_Checks): Use + Apply_Arithmetic_Overflow_Minimized_Eliminated. + * checks.ads (Apply_Divide_Checks): New name for + Apply_Divide_Check, also add clearer documentation for this + routine and put in alfa order. + * exp_ch4.adb (Apply_Divide_Checks): New name for + Apply_Divide_Check. + * s-bignum.adb (To_Bignum): Handle largest negative integer + properly. + * sem.adb (Analyze): Handle overflow suppression correctly + (Analyze_List): Handle overflow suppression correctly + * sem_res.adb (Analyze_And_Resolve): Handle overflow suppression + correctly. + +2012-10-01 Vasiliy Fofanov <fofanov@adacore.com> + + * s-oscons-tmplt.c, g-socket.ads: Revert previous change, breaks VMS. + +2012-10-01 Robert Dewar <dewar@adacore.com> + + * checks.adb (Minimize_Eliminate_Overflow_Checks): Changes + for exponentiation. + * exp_ch4.adb (Expand_N_Op_Expon): Changes for Minimize/Eliminate + overflow checks. + * s-bignum.adb (Compare): Fix bad precondition. + +2012-10-01 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Build_Derived_Record_Type): If the derived + type has new discriminantss that constrain inherited ones, use + the discriminant type in the original declaration to check for + conformance, because in the presence of array components with a + smaller range that are constrained by the origina discriminant, + the compiler will have created a narrower subtype for that + discriminant. + +2012-10-01 Robert Dewar <dewar@adacore.com> + + * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated): + Handle case of appearing in range in membership test. + * exp_ch4.adb (Expand_Membership_Minimize_Eliminate_Overflow): + New procedure (Expand_N_In): Use + Expand_Membership_Minimize_Eliminate_Overflow. + * rtsfind.ads: Add RE_Bignum_In_LLI_Range. + * s-bignum.ads, s-bignum.adb (Bignum_In_LLI_Range): New function. + * sinfo.ads, sinfo.adb (No_Minimize_Eliminate): New flag. + +2012-10-01 Robert Dewar <dewar@adacore.com> + + * uintp.ads: Minor reformatting. + +2012-10-01 Ed Schonberg <schonberg@adacore.com> + + * checks.adb: Improve warning message. + +2012-10-01 Robert Dewar <dewar@adacore.com> + + * checks.adb: Minor reformatting. + +2012-10-01 Javier Miranda <miranda@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): Suppress tag + assignment for initializations that are aggregates. + +2012-10-01 Robert Dewar <dewar@adacore.com> + + * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow): + New procedure. + +2012-10-01 Robert Dewar <dewar@adacore.com> + + * checks.adb (Minimize_Eliminate_Checks): Changes from testing. + (Apply_Arithmetic_Overflow_Minimized_Eliminated): Changes + from testing. + * sinfo.ads: Remove note on not setting Entity field in overflow + case since this is no longer true. + * Makefile.rtl: Add s-bignum.o + +2012-10-01 Thomas Quinot <quinot@adacore.com> + + * Make-generated.in: Correction to previous change for s-oscons + target. + +2012-10-01 Thomas Quinot <quinot@adacore.com> + + * s-bignum.adb (Allocate_Bignum): Reorganize to kill strict + aliasing warning. + +2012-10-01 Robert Dewar <dewar@adacore.com> + + * checks.adb (Overflow_Check_Mode): New function + (Apply_Overflow_Check): New procedure (Is_Check_Suppressed): + Moved here from Sem, Overflow_Check case now specially treated. + * checks.ads (Overflow_Check_Mode): New function + (Is_Check_Suppressed): Moved here from Sem (more logical) + * exp_ch4.adb (Substitute_Valid_Check): Suppress warning about + optimization if we are in MINIMIZED or ELIMINATED overflow + checking mode and within an assertiom expression. + * rtsfind.ads: Add entries for Bignum stuff. + * s-bignum.ads, s-bignum.adb: New files. + * sem.ads, sem.adb (Is_Check_Suppressed): Moved to Checks, more logical. + * sem_prag.adb (Process_Suppress_Unsuppress): New behavior for + Unsuppress of Overflow_Check (sets Checked instead of Minimized) + * sem_res.adb: Update comments. + * sinfo.ads (N_Op): Add documentation on overflow handling. + * tbuild.ads, tbuild.adb (Convert_To_And_Rewrite): New procedure. + * types.ads (Minimized_Or_Eliminated): New subtype. + +2012-10-01 Eric Botcazou <ebotcazou@adacore.com> + + * layout.adb (Layout_Type): Do not set twice the address size + on an access-to-unconstrained array if Debug_Flag_6 is set. + +2012-10-01 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch3.adb (Analyze_Declarations): Remove the specialized + code which prevents freezing when the declarative list contains + a _postconditions body. This is no longer needed because the + body is now inserted at the end of the declarations. + * sem_ch6.adb (Insert_After_Last_Declaration): New routine. + (Insert_Before_First_Source_Declaration): Removed. + (Process_PPCs): Insert the _postconditions body at the end of + the declarative list to prevent premature freezing of types that + appear in the declarations. + +2012-10-01 Robert Dewar <dewar@adacore.com> + + * sem_aggr.adb, sem_dim.adb: Minor reformatting. + +2012-10-01 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Process_Convention, Process_Import_Or_Interface): + Adjust test so that when the pragma comes from an aspect + specification it only applies to the entity in the original + declaration. + +2012-10-01 Thomas Quinot <quinot@adacore.com> + + * gnat_ugn.texi: Document new command line switch -fada-spec-parent. + +2012-10-01 Thomas Quinot <quinot@adacore.com> + + * s-oscons-tmplt.c, g-socket.ads: Minor code improvement: use gcc + builtin __alignof__ to get the alignment of struct fd_set. + +2012-10-01 Vincent Pucci <pucci@adacore.com> + + * exp_ch6.adb (Expand_Call): Remove call to + Remove_Dimension_In_Call. + * sem_aggr.adb (Resolve_Array_Aggregate): Analyze dimension of + components in array aggregate. + (Resolve_Aggr_Expr): Propagate dimensions from the original expression + Expr to the new created expression New_Expr when resolving the + expression of a component in record aggregates. + (Resolve_Record_Aggregate): Analyze + dimension of components in record (or extension) aggregate. + * sem_ch6.adb (Analyze_Subprogram_Specification): Analyze + dimension of formals with default expressions in subprogram + specification. + * sem_ch8.adb (Analyze_Expanded_Name): Analyze dimension of + expanded names. + (Find_Selected_Component): Analyze dimension of selected component. + * sem_dim.adb: Several dimension error messages reformatting. + (Dimensions_Msg_Of): New flag Description_Needed in order to + differentiate two different sort of dimension error messages. + (Dim_Warning_For_Numeric_Literal): New routine. + (Exists): New routine. + (Move_Dimensions): Routine spec moved to spec file. + * sem_dim.ads (String_From_Numeric_Literal): New routine. + (Analyze_Dimension): Analyze dimension only when the + node comes from source. Dimension analysis for expanded names added. + (Analyze_Dimension_Array_Aggregate): New routine. + (Analyze_Dimension_Call): New routine. + (Analyze_Dimension_Component_Declaration): Warning if default + expression is a numeric literal. + (Analyze_Dimension_Extension_Or_Record_Aggregate): New routine. + (Analyze_Dimension_Formals): New routine. + (Analyze_Dimension_Object_Declaration): Warning if default + expression is a numeric literal. + (Symbol_Of): Return either the dimension subtype symbol or the + dimension symbol built by From_Dim_To_Str_Of_Unit_Symbols. + * sem_dim.ads (Analyze_Dimension_Array_Aggregate): New routine. + (Analyze_Dimension_Call): New routine. + (Analyze_Dimension_Extension_Or_Record_Aggregate): New routine. + (Analyze_Dimension_Formals): New routine. + (Move_Dimensions): Moved from sem_dim.adb. + * s-dimmks.ads: Turn off the warnings for dimensioned object + declaration. Dimensioned subtypes sorted in alphabetical + order. New subtypes Area, Speed, Volume. + * s-dmotpr.ads: Turn off the warnings for dimensioned object + declaration. + * sem_res.adb (Resolve_Call): Analyze dimension for calls. + +2012-10-01 Thomas Quinot <quinot@adacore.com> + + * Make-generated.in: Minor cleanup of all targets: use + MOVE_IF_CHANGE to put generated files in place, to avoid useless + recompilations. + +2012-10-01 Javier Miranda <miranda@adacore.com> + + * exp_disp.adb (Expand_Dispatching_Call): For functions returning + interface types add an implicit conversion to the returned object + to force the displacement of the pointer to the returned object + to reference the corresponding secondary dispatch table. This + is needed to handle well combined calls involving secondary + dispatch tables (for example Obj.Prim1.Prim2). + * exp_ch4.adb (Expand_Allocator_Expression): Declare internal + access type as access to constant or access to variable depending + on the context. Found working in this ticket. + +2012-10-01 Ed Schonberg <schonberg@adacore.com> + + * checks.adb (Apply_Predicate_Check): Do not apply check to + actual of predicate checking procedure, to prevent infinite + recursion. + +2012-10-01 Arnaud Charlet <charlet@adacore.com> + + * gcc-interface/Make-lang.in: Update dependencies. + (GCC_LINK): Add -static-libstdc++. + +2012-10-01 Arnaud Charlet <charlet@adacore.com> + + * a-catizo.adb, a-stwiun.adb, a-cdlili.adb, a-cihama.adb, a-direct.adb, + a-coinve.adb, a-calend.adb, a-ciorse.adb, a-coorma.adb, a-cfdlli.adb, + a-stzunb-shared.adb, a-cfhase.adb, bindgen.adb, ceinfo.adb, a-tags.adb, + einfo.adb, checks.adb, eval_fat.adb, a-cborma.adb, a-stwifi.adb, + a-tifiio.adb, a-textio.adb, a-cidlli.adb, a-strunb-shared.adb, + a-cimutr.adb, a-calcon.adb, a-exexpr-gcc.adb, a-ciormu.adb, + a-stzunb.adb, a-stzsea.adb, a-ngelfu.adb, a-stzfix.adb, + a-cihase.adb, a-cohama.adb, a-exetim-posix.adb, a-dirval-vms.adb, + a-caldel-vms.adb, a-coorse.adb, errout.adb, + a-except.adb, butil.adb, a-dirval-mingw.adb, a-cforma.adb, + a-except-2005.adb, a-wtedit.adb, cstand.adb, a-stwiun-shared.adb, + a-cbhama.adb, a-direio.adb, clean.adb, a-cborse.adb, back_end.adb, + binde.adb, a-exexda.adb, a-comutr.adb, a-ciorma.adb, a-cobove.adb, + a-coormu.adb, a-teioed.adb, a-convec.adb, a-wtenau.adb, exp_aggr.adb, + a-ztedit.adb, a-cohase.adb, a-exetim-mingw.adb, bcheck.adb, + a-dynpri.adb, a-cfhama.adb, a-calfor.adb, a-cbdlli.adb, + a-crdlli.adb, a-cbmutr.adb, a-sequio.adb, a-ngcoar.adb, a-cforse.adb, + a-strunb.adb, a-calend-vms.adb, a-clrefi.adb, a-cofove.adb, + a-ztenau.adb, a-strfix.adb, a-cbhase.adb, a-stzsup.adb: Minor + reformatting. + +2012-10-01 Vincent Pucci <pucci@adacore.com> + + PR ada/54614 + * s-gearop.adb (Vector_Matrix_Product): Fix dimension check and index + of Left in S evaluation. + +2012-10-01 Javier Miranda <miranda@adacore.com> + + * sem_ch3.adb (Analyze_Declarations): Avoid + premature freezing caused by the internally generated subprogram + _postconditions. + * checks.adb (Expr_Known_Valid): Float literals are assumed to be valid + in VM targets. + +2012-10-01 Thomas Quinot <quinot@adacore.com> + + * sinput.ads, sinput.adb, sinput-l.adb sinput-c.adb (Sinput): New + Instances table, tracking all generic instantiations. Source file + attribute Instance replaces previous Instantiation attribute with an + index into the Instances table. + (Iterate_On_Instances): New generic procedure. + (Create_Instantiation_Source): Record instantiations in Instances. + (Tree_Read, Tree_Write): Read/write the instance table. + * scils.ads, scos.adb (SCO_Instance_Table): New table, contains + information copied from Sinput.Instance_Table, but self-contained + within the SCO data structures. + * par_sco.ads, par_sco.adb (To_Source_Location): Move to library level. + (Record_Instance): New subprogram, used by... + (Populate_SCO_Instance_Table): New subprogram to fill + the SCO instance table from the Sinput one (called by SCO_Output). + * opt.ads (Generate_SCO_Instance_Table): New option. + * put_scos.adb (Write_Instance_Table): New subprogram, used by... + (Put_SCOs): Dump the instance table at the end of SCO information + if requested. + * get_scos.adb (Get_SCOs): Read SCO_Instance_Table. + * types.h: Add declaration for Instance_Id. + * back_end.adb (Call_Back_End): Pass instance ids in source file + information table. + (Scan_Back_End_Switches): -fdebug-instances sets + Opt.Generate_SCO_Instance_Table. + * gcc-interface/gigi.h: File_Info_Type includes instance id. + * gcc-interface/trans.c: Under -fdebug-instances, set instance + id in line map from same in file info. + +2012-10-01 Thomas Quinot <quinot@adacore.com> + + * sem_elab.adb: Minor reformatting + (Check_Elab_Call): Minor fix to debugging code + (add special circuit for the valid case where a 'Access attribute + reference is passed to Check_Elab_Call). + +2012-10-01 Thomas Quinot <quinot@adacore.com> + + * exp_ch3.adb: Minor reformatting. + +2012-10-01 Ed Schonberg <schonberg@adacore.com> + + * exp_ch3.ads (Build_Array_Invariant_Proc): moved to body. + * exp_ch3.adb (Build_Array_Invariant_Proc, + Build_Record_Invariant_Proc): transform into functions. + (Insert_Component_Invariant_Checks): for composite types that have + components with specified invariants, build a checking procedure, + and make into the invariant procedure of the composite type, + or incorporate it into the user- defined invariant procedure if + one has been created. + * sem_ch3.adb (Array_Type_Declaration): Checking for invariants + on the component type is defered to the expander. + +2012-10-01 Thomas Quinot <quinot@adacore.com> + + * xsnamest.adb, namet.h, sem_ch10.adb, s-oscons-tmplt.c, + xoscons.adb: Minor reformatting. + +2012-10-01 Hristian Kirtchev <kirtchev@adacore.com> + + * checks.adb (Apply_Parameter_Aliasing_And_Validity_Checks): + Do not process subprogram renaminds because a) those cannot + have PPC pragmas b) the renamed entity already has the PPCs. + (Build_PPC_Pragma): Prepend a PPC pragma for consistency with + Process_PPCs. + * sem_ch6.adb (Last_Implicit_Declaration): Removed. + (Process_PPCs): Insert a post condition body at the start of the + declarative region of the related subprogram. This way the body + will not freeze anything it shouldn't. + +2012-10-01 Robert Dewar <dewar@adacore.com> + + * freeze.adb, sem_ch6.adb, opt.ads, sem_ch13.adb, + exp_ch3.adb: Minor reformatting. + +2012-10-01 Hristian Kirtchev <kirtchev@adacore.com> + + * checks.adb (Build_PPC_Pragma): A PPC pragma can now be properly + associated with a subprogram body. + +2012-10-01 Ed Schonberg <schonberg@adacore.com> + + * aspects.ads: Type_Invariant'class is a valid aspect. + * sem_ch6.adb (Is_Public_Subprogram_For): with the exception of + initialization procedures, subprograms that do not come from + source are not public for the purpose of invariant checking. + * sem_ch13.adb (Build_Invariant_Procedure): Handle properly the + case of a non-private type in a package without a private part, + when the type inherits invariants from its ancestor. + +2012-10-01 Ed Schonberg <schonberg@adacore.com> + + * exp_ch3.adb (Build_Record_Invariant_Proc): new procedure to + generate a checking procedure for record types that may have + components whose types have type invariants declared. + +2012-10-01 Vincent Pucci <pucci@adacore.com> + + * system-solaris-sparcv9.ads, system-mingw.ads, system-vms_64.ads: Flag + Support_Atomic_Primitives set to True. + +2012-10-01 Robert Dewar <dewar@adacore.com> + + * impunit.adb: Ada.Locales is a language defined unit. + +2012-10-01 Hristian Kirtchev <kirtchev@adacore.com> + + * checks.adb (Apply_Parameter_Aliasing_Checks): Removed. + (Apply_Parameter_Aliasing_And_Validity_Checks): New routine. + (Apply_Parameter_Validity_Checks): Removed. + * checks.ads (Apply_Parameter_Aliasing_Checks): Removed. + (Apply_Parameter_Aliasing_And_Validity_Checks): New routine. + (Apply_Parameter_Validity_Checks): Removed. + * exp_ch6.adb (Expand_Call): Remove the generation of parameter + aliasing checks. + * freeze.adb: Remove with and use clauses for Validsw. + (Freeze_Entity): Update the guard and generation of aliasing + and scalar initialization checks for subprogram parameters. + * opt.ads: Add new flags Check_Aliasing_Of_Parameters and + Check_Validity_Of_Parameters along with comments on usage. + * sem_attr.adb (Analyze_Attribute): Pragma Overlaps_Storage is + no longer an Ada 2012 feature. + * sem_ch4.adb: Remove with and use clauses for Checks and Validsw. + (Analyze_Call): Remove the generation of aliasing checks for + subprogram parameters. + * sem_ch13.adb: Remove with and use clauses for Validsw. + (Analyze_Aspect_Specifications): Remove the generation of scalar + initialization checks. + * switch-c.adb (Scan_Front_End_Switches): Add processing for + -gnateA and -gnateV. + * usage.adb (Usage): Add information on switches -gnateA and + -gnateV. Remove information on validity switches 'l', 'L', + 'v' and 'V'. + * validsw.adb (Reset_Validity_Check_Options): Remove the + reset of flags Validity_Check_Non_Overlapping_Params + and Validity_Check_Valid_Scalars_On_Params. + (Save_Validity_Check_Options): Remove the processing + for flags Validity_Check_Non_Overlapping_Params + and Validity_Check_Valid_Scalars_On_Params. + (Set_Validity_Check_Options): Remove the processing + for flags Validity_Check_Non_Overlapping_Params and + Validity_Check_Valid_Scalars_On_Params. + * validsw.ads: Remove flags Validity_Check_Non_Overlapping_Params + and Validity_Check_Valid_Scalars_On_Params along with their + comments on usage. + +2012-10-01 Yannick Moy <moy@adacore.com> + + * sem_ch13.adb (Add_Invariants): Analyze the invariant expression + as an assertion expression. + * sem_ch3.adb / sem_ch3.ads (Preanalyze_Assert_Expression): + New procedure that wraps a call to Preanalyze_Spec_Expression + for assertion expressions, so that In_Assertion_Expr can be + properly adjusted. + * sem_prag.adb (Analyze_PPC_In_Decl_Part + Check_Precondition_Postcondition Preanalyze_CTC_Args): Call the + new Preanalyze_Assert_Expression. + +2012-10-01 Robert Dewar <dewar@adacore.com> + + * checks.ads: Minor reformatting. + +2012-10-01 Yannick Moy <moy@adacore.com> + + * types.ads, sem_prag.adb, sem.ads: Correct minor typos in comments. + +2012-10-01 Vincent Celier <celier@adacore.com> + + * make.adb (Scan_Make_Arg): Only test for "vP" of the option + includes at least 3 characters. + * gnatcmd.adb (GNATCmd): Ditto. + +2012-10-01 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch7.adb, sinfo.ads: Add comments. + +2012-10-01 Robert Dewar <dewar@adacore.com> + + * checks.adb: Remove reference to Enable_Overflow_Checks Use + Suppress_Options rather than Scope_Suppress. + * gnat1drv.adb (Adjust_Global_Switches): Handle new overflow + settings (Adjust_Global_Switches): Initialize Scope_Suppress + from Suppress_Options. + * opt.adb: Remove Enable_Overflow_Checks (use Suppress_Options + instead). + * opt.ads: Remove Overflow_Checks_Unsuppressed (not used) + Remove Enable_Overflow_Checks (use Suppress_Options instead) + Suppress_Options is now current setting (replaces Scope_Suppress). + * osint.adb (Initialize): Deal with initializing overflow + checking. + * par-prag.adb: Add dummy entry for pragma Overflow_Checks. + * sem.adb (Semantics): Save and restore In_Assertion_Expr Use + Suppress_Options instead of Scope_Suppress. + * sem.ads (In_Assertion_Expr): New flag (Scope_Suppress): + Removed, use Suppress_Options instead. + * sem_eval.adb (Compile_Time_Compare): Return Unknown in + preanalysis mode. + * sem_prag.adb (Process_Suppress_Unsuppress): Setting of + Overflow_Checks_Unsuppressed removed (not used anywhere!) + (Analyze_Pragma, case Check): Set In_Assertion_Expression + (Analyze_Pragma, case Overflow_Checks): Implement new pragma + * snames.ads-tmpl: Add names needed for handling pragma + Overflow_Checks + * switch-c.adb (Scan_Front_End_Switches) Handle -gnato? and + -gnato?? where ? is 0-3 + * types.ads: Updates and fixes to comment on Suppress_Record. + +2012-10-01 Vincent Celier <celier@adacore.com> + + * prj-part.adb (Parse): Remove incorrect comment about checking + imported non extending projects from and "extending all" + one. Minor correction. + +2012-10-01 Robert Dewar <dewar@adacore.com> + + * make.adb, exp_ch3.adb: Minor reformatting. + +2012-10-01 Hristian Kirtchev <kirtchev@adacore.com> + + * validsw.adb (Save_Validity_Check_Options): Do not set + Validity_Check_Non_Overlapping_Params and + Validity_Check_Valid_Scalars_On_Params when -gnatVa is present + because the related checks are deemed too aggressive. + +2012-10-01 Ed Schonberg <schonberg@adacore.com> + + * sem_util.ads sem_util.adb (Check_Internal_Protected_Use): + reject use of protected procedure or entry within the body of + a protected function of the same protected type, when usage is + a call, an actual in an instantiation, a or prefix of 'Access. + * sem_ch8.adb (Analyze_Subprogram_Renaming): Verify that target + object in renaming of protected procedure is a variable, and + apply Check_Internal_Protected_Use. + * sem_res.adb (Analyze_Call, Analyze_Entry_Call): apply + Check_Internal_Protected_Use rather than on-line code. + * sem_attr.adb (Analyze_Access_Attribute): Verify that target + object in accsss to protected procedure is a variable, and apply + Check_Internal_Protected_Use. + +2012-10-01 Gary Dismukes <dismukes@adacore.com> + + * sem_ch4.adb (Find_Equality_Types.Try_One_Interp): Exclude the + predefined interpretation from consideration if it's for a "/=" + operator of a tagged type. This will allow Analyze_Equality_Op to + rewrite the "/=" as a logical negation of a call to the appropriate + dispatching equality function. This needs to be done during + analysis rather than expansion for the benefit of ASIS, which + otherwise gets the unresolved N_Op_Ne operator from Standard. + +2012-10-01 Thomas Quinot <quinot@adacore.com> + + * gnatcmd.adb, make.adb (Scan_Make_Arg, Inspect_Switches): Recognize + and reject an invalid parameter passed to -vP. + +2012-10-01 Yannick Moy <moy@adacore.com> + + * sem_warn.adb (Check_Infinite_Loop_Warning/Test_Ref): Improve + the detection of modifications to the loop variable by noting + that, if the type of variable is elementary and the condition + does not contain a function call, then the condition cannot be + modified by side-effects from a procedure call. + +2012-10-01 Robert Dewar <dewar@adacore.com> + + * checks.adb: Add comments. + +2012-10-01 Javier Miranda <miranda@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): Improve condition catching + never-ending recursion. The previous condition erroneously disabled + silently the expansion of the class-wide interface object + initialization in cases not involving the recursion. + +2012-10-01 Thomas Quinot <quinot@adacore.com> + + * make.adb: Minor documentation fix: error messages are sent to + stderr, not stdout. + +2012-10-01 Hristian Kirtchev <kirtchev@adacore.com> + + * checks.ads, checks.adb (Apply_Parameter_Aliasing_Checks): New routine. + (Apply_Parameter_Validity_Checks): New routines. + * exp_ch6.adb (Expand_Call): Add aliasing checks to detect + overlapping objects. + * freeze.adb: Add with and use clauses for Checks and Validsw. + (Freeze_Entity): Add checks to detect proper initialization + of scalars. + * sem_ch4.adb: Add with and use clauses for Checks and Validsw. + (Analyze_Call): Add aliasing checks to detect overlapping objects. + * sem_ch13.adb: Add with and use clauses for Validsw. + (Analyze_Aspect_Specifications): Add checks to detect proper + initialization of scalars. + * sem_prag.adb (Chain_PPC): Correct the extraction of the + subprogram name. + * sem_util.adb (Is_Object_Reference): Attribute 'Result now + produces an object. + * usage.adb (Usage): Add usage lines for validity switches 'l', + 'L', 'v' and 'V'. + * validsw.adb (Reset_Validity_Check_Options): Include + processing for flags Validity_Check_Non_Overlapping_Params and + Validity_Check_Valid_Scalars_On_Params. Code reformatting. + (Save_Validity_Check_Options): Include processing + for flags Validity_Check_Non_Overlapping_Params + and Validity_Check_Valid_Scalars_On_Params. + (Set_Validity_Check_Options): Add processing for validity switches + 'a', 'l', 'L', 'n', 'v' and 'V'. Code reformatting. + * validsw.ads: Add new flags Validity_Check_Non_Overlapping_Params + and Validity_Check_Valid_Scalars_On_Params along with comments + on usage. + +2012-10-01 Thomas Quinot <quinot@adacore.com> + + * namet.ads, xsnamest.adb, prj-env.adb, sem_warn.adb, + errout.ads: Minor reformatting. + * prj-part.adb: Add comment. + +2012-10-01 Robert Dewar <dewar@adacore.com> + + * sinfo.ads, exp_aggr.adb, sem_ch13.adb: Minor reformatting. + +2012-10-01 Ed Schonberg <schonberg@adacore.com> + + * sem_aggr.adb (Resolve_Array_Aggregate): Handle properly + component associations given by subtypes that have static + predicates. Improve error message for overlapping ranges in + array aggregates. + +2012-10-01 Pascal Obry <obry@adacore.com> + + * snames.ads-tmpl (Name_Link_Lib_Subdir): New constant. + +2012-10-01 Ed Schonberg <schonberg@adacore.com> + + * sem_ch9.adb (Analyze_Requeue): The target of a requeue + statement on a protected entry must be a variable. This is part + of AI05-0225. + +2012-09-26 Ian Lance Taylor <iant@google.com> + + * gcc-interface/Makefile.in (LIBBACKTRACE): New variable. + (LIBS): Add $(LIBBACKTRACE). + (LIBDEPS): Add $(LIBBACKTRACE). + (TOOLS_LIBS): Add ../../../libbacktrace/.libs/libbacktrace.a. + +2012-09-10 Diego Novillo <dnovillo@google.com> + + * gcc-interface/decl.c (build_subst_list): Adjust call to VEC_safe_push. + (build_variant_list): Likewise. + * gcc-interface/utils.c (convert): Adjust calls to VEC_quick_push. + +2012-09-07 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Loop_Statement_to_gnu): Revert to using + size_type_node instead of sizetype. + +2012-08-19 Eric Botcazou <ebotcazou@adacore.com> + + * layout.adb (Set_Elem_Alignment): Cap the alignment of access types + to that of a regular access type for non-strict-alignment platforms. + * gcc-interface/utils.c (finish_fat_pointer_type): Do not set the + alignment for non-strict-alignment platforms. + +2012-08-19 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Use proper + dummy type for the temporary COMPONENT_REF built for a derived tagged + type with discriminant. + +2012-08-14 Diego Novillo <dnovillo@google.com> + + Merge from cxx-conversion branch. Re-implement VEC in C++. + + * gcc-interface/trans.c (finalize_nrv_unc_r): Adjust VEC_index usage. + * gcc-interface/utils.c (convert): Likewise. + (remove_conversions): Likewise. + * gcc-interface/utils2.c (compare_fat_pointers): Likewise. + (build_unary_op): Likewise. + (gnat_stabilize_reference): Likewise. + +2012-08-06 Jose Ruiz <ruiz@adacore.com> + + * gcc-interface/Makefile.in: Add support for 32-bit VxWorks for SPARC + in kernel mode. + +2012-08-06 Arnaud Charlet <charlet@adacore.com> + + * prj-attr.adb (Register_New_Package): Add missing blank. + +2012-08-06 Ed Schonberg <schonberg@adacore.com> + + * exp_aggr.adb (Is_Two_Dim_Packed_Array): New predicate, + used when computing maximum size allowable to construct static + aggregate. + +2012-08-06 Vincent Pucci <pucci@adacore.com> + + * freeze.adb (Freeze_Entity): Inherit_Aspects_At_Freeze_Point + calls added for derived types and subtypes. + * sem_aux.adb, sem_aux.ads (Get_Rep_Item, Get_Rep_Pragma, + Has_Rep_Pragma): New routines. + * sem_ch13.ads (Inherit_Aspects_At_Freeze_Point): New routine. + * sem_ch13.adb (Analyze_Aspect_Specifications): Error message + for aspect Lock_Free fixed. + (Inherits_Aspects_At_Freeze_Point): New routine. + * sem_ch3.adb: Several flag settings removed since inheritance + of aspects must be performed at freeze point. + +2012-08-06 Thomas Quinot <quinot@adacore.com> + + * s-oscons-tmplt.c: Fix s-oscons.ads formatting on VxWorks. + +2012-08-06 Vincent Pucci <pucci@adacore.com> + + * sem_dim.adb (Analyze_Dimension_Binary_Op): Issue an error message + for unknown exponent at compile-time. + +2012-08-06 Gary Dismukes <dismukes@adacore.com> + + * sem_eval.ads (Compile_Time_Known_Value_Or_Aggr): Enhance + comment to make it clear that the aggregate's evaluation might + still involve run-time checks even though the aggregate is + considered known at compile time. + * sinfo.ads (Compile_Time_Known_Aggregate): Correct comment to + refer to Exp_Aggr instead of Sem_Aggr. + +2012-08-06 Robert Dewar <dewar@adacore.com> + + * xoscons.adb: Minor code reorganization (remove unused variable + E at line 331). + * g-sercom.ads, exp_attr.adb: Minor reformatting. + * sinfo.adb, sinfo.ads: Minor cleanup, remove unused flag + Static_Processing_OK. + +2012-08-06 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Build_Derived_Concurrent_Type): Copy discriminant + constraint when building a constrained subtype, to prevent + undesirable tree sharing betweeb geberated subtype and derived + type definition. + +2012-08-06 Thomas Quinot <quinot@adacore.com> + + * g-sercom-mingw.adb, s-oscons-tmplt.c: Add missing constants + on Windows. + +2012-08-06 Sergey Rybin <rybin@adacore.com frybin> + + * tree_io.ads: Update ASIS_Version_Number because of the tree fix + for discriminant constraints for concurrent types. + +2012-08-06 Thomas Quinot <quinot@adacore.com> + + * sem_ch4.adb: Minor reformatting. + +2012-08-06 Thomas Quinot <quinot@adacore.com> + + * s-oscons-tmplt.c, xoscons.adb: Per the Single UNIX Specification, + types cc_t, speed_t, and tcflag_t defined in <termios.h> all are + unsigned types. Add required special handling to have their correct + unsigned values in s-oscons.ads. + +2012-08-06 Thomas Quinot <quinot@adacore.com> + + * par-ch13.adb: Minor reformatting. + +2012-08-06 Thomas Quinot <quinot@adacore.com> + + * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb, g-sercom-linux.adb + (Set): Add Local and Flow_Control settings. + +2012-08-06 Ed Schonberg <schonberg@adacore.com> + + * exp_attr.adb: Suppress saving of 'Old if assertions are not + enabled. + +2012-08-06 Yannick Moy <moy@adacore.com> + + * sem_ch4.adb (Analyze_Selected_Component): Issue an error in + Alfa mode for component not present. + +2012-08-06 Thomas Quinot <quinot@adacore.com> + + * exp_ch7.adb (Insert_Actions_In_Scope_Around): Do not + use a renaming of Scope_Stack.Table (Scope_Stack.Last), as + Process_Transient_Object may introduce new scopes and cause + Scope_Stack.Table to be reallocated. + +2012-08-06 Robert Dewar <dewar@adacore.com> + + * exp_util.adb, switch-c.adb, inline.ads, sem_ch10.adb, types.ads, + checks.adb, sem_prag.adb, sem.adb, sem.ads, sem_res.adb, sem_attr.adb, + gnat1drv.adb, exp_ch4.adb, exp_ch6.adb, opt.ads, osint.adb: Implement + extended overflow checks (step 1). + (Overflow_Check_Type, Suppress_Record, Suppress_All): New types. + (Suppress_Array): Extended to include switches to control extended + overflow checking (and renamed to Suppress_Record). + Update all uses of Suppress_Array. + +2012-08-06 Thomas Quinot <quinot@adacore.com> + + * makeutl.ads: Minor documentation fix. + +2012-08-06 Thomas Quinot <quinot@adacore.com> + + * exp_ch7.adb: Minor reformatting. + +2012-08-06 Geert Bosch <bosch@adacore.com> + + * a-ngelfu.adb: Change obsolete comment that this is a non-strict + implementation. + +2012-08-06 Steve Baird <baird@adacore.com> + + * exp_ch7.adb (Build_Finalizer.Process_Object_Declaration): If + CodePeer_Mode = True then omit exception handlers for finalization calls + +2012-08-06 Robert Dewar <dewar@adacore.com> + + * exp_aggr.adb: Minor reformatting. + +2012-08-06 Robert Dewar <dewar@adacore.com> + + * sem_ch6.adb: Remove useless flag Body_Deleted. + +2012-08-06 Thomas Quinot <quinot@adacore.com> + + * sinfo.ads (End_Span): Change default from No_Uint to Uint_0, + as this is what all usage occurrences of this attribute are + expecting. + * uintp.adb (UI_To_Int): Add assertion to guard against calling + with No_Uint. + +2012-08-06 Vincent Pucci <pucci@adacore.com> + + PR ada/54125 + * exp_attr.adb (Expand_N_Attribute_Reference): Expand new + Atomic_Always_Lock_Free attribute. + * sem_attr.adb (Analyze_Attribute): Analyze new + Atomic_Always_Lock_Free attribute. + (Eval_Attribute): Nothing to do with new Atomic_Always_Lock_Free + attribute. + * sem_ch9.adb (Allows_Lock_Free_Implementation): + Support_Atomic_Primitives check replaces previous erroneous + size check. + * sem_util.adb, sem_util.ads (Support_Atomic_Primitives): + New routine. + * snames.ads-tmpl: New name Name_Atomic_Always_Lock_Free and + new attribute Attribute_Atomic_Always_Lock_Free defined. + * s-atopri.adb: Support_Atomic_Primitives checks replaced by + Atomic_Always_Lock_Free queries. + * system-aix64.ads, system-aix.ads, system-darwin-ppc.ads, + system-hpux.ads, system-linux-alpha.ads, system-linux-hppa.ads, + system-linux-ppc.ads, system-linux-s390.ads, + system-linux-s390x.ads, system-linux-sh4.ads, + system-linux-sparc.ads, system-lynxos178-ppc.ads, + system-lynxos-ppc.ads, system-mingw.ads, + system-vxworks-arm.ads, system-solaris-sparc.ads, + system-solaris-sparcv9.ads, system-vms_64.ads, + system-vxworks-m68k.ads, system-vxworks-mips.ads, + system-vxworks-ppc.ads, system-vxworks-sparcv9.ads: Flag + Support_Atomic_Primitives removed. + +2012-08-06 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_mech.adb (Set_Mechanisms): OUT and IN OUT parameters are + now unconditionally passed by reference. IN parameters subject + to convention C_Pass_By_Copy are passed by copy, otherwise they + are passed by reference. + +2012-08-06 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Analyze_Object_Declaration): According to + AI95-0303, protected objects with interrupt handlers can be + declared in nested scopes. This is a binding interpretation, + and thus applies to all versions of the compiler. + +2012-08-06 Robert Dewar <dewar@adacore.com> + + * frontend.adb, exp_aggr.adb: Minor reformatting. + +2012-08-06 Thomas Quinot <quinot@adacore.com> + + * par-endh.adb: Minor reformatting. + +2012-08-06 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch7.adb (Process_Transient_Objects): Remove obsolete loop + processing related to array initialization. The expansion of + loops already contains a mechanism to detect controlled objects + generated by expansion and introduce a block around the loop + statements for finalization purposes. + +2012-08-06 Vincent Pucci <pucci@adacore.com> + + * sem_ch13.adb: Current scope must be within + or same as the scope of the entity while analysing aspect + specifications at freeze point. + +2012-08-06 Thomas Quinot <quinot@adacore.com> + + * par_sco.adb: Add note about dubious SCO for TERMINATE + alternative. + * sem_ch8.adb, exp_ch11.adb: Minor reformatting. + +2012-08-06 Ed Schonberg <schonberg@adacore.com> + + * exp_aggr.adb (Two_Dim_Packed_Array_Handled): New procedure to + transform an aggregate for a packed two-dimensional array into + a one-dimensional array of constant values, in order to avoid + the generation of component-by-component assignments. + +2012-08-06 Thomas Quinot <quinot@adacore.com> + + * frontend.adb: Do not attempt to process deferred configuration + pragmas if the main unit failed to load, to avoid cascaded + inconsistencies that can lead to a compiler crash. + +2012-08-06 Vincent Pucci <pucci@adacore.com> + + * s-atopri.adb: Minor reformatting. + +2012-08-06 Arnaud Charlet <charlet@adacore.com> + + * gnat-style.texi: Clarify that all subprograms should be + documented. Minor rewording. + +2012-08-06 Robert Dewar <dewar@adacore.com> + + * aspects.ads: Define Aspect_Id_Exclude_No_Aspect. + * par-ch13.adb, restrict.adb: Use Aspect_Id_Exclude_No_Aspect to + simplify code. + +2012-08-06 Yannick Moy <moy@adacore.com> + + * gnat-style.texi: Update style guide for declarations. + +2012-08-06 Yannick Moy <moy@adacore.com> + + * sem_attr.adb (Analyze_Attribute): In the case for 'Old, + skip a special expansion which is not needed in Alfa mode. + +2012-08-06 Yannick Moy <moy@adacore.com> + + * sem_ch5.adb (Analyze_Iterator_Specification): Do not perform + an expansion of the iterator in Alfa mode. + +2012-08-06 Robert Dewar <dewar@adacore.com> + + * s-oscons-tmplt.c, sem_ch9.adb, osint.adb: Minor reformatting. + +2012-08-06 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Remove obsolete + Alfa-specific guard. The code is a leftover from an early + implementation of iterators which is no longer in use. + +2012-08-06 Vincent Celier <celier@adacore.com> + + * par-ch13.adb (Get_Aspect_Specifications): Do not consider + No_Aspect when checking for a mispelled aspect. + +2012-08-06 Robert Dewar <dewar@adacore.com> + + * s-htable.adb: Minor reformatting. + +2012-08-06 Thomas Quinot <quinot@adacore.com> + + * s-oscons-tmplt.c, g-socket.adb (System.OS_Constants.Target_OS): + Suppress warnings so that we don't have to do it at each usage. + +2012-08-06 Vincent Pucci <pucci@adacore.com> + + * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body): + Use of Known_Static_Esize instead of Known_Esize and + Known_Static_RM_Size instead of Known_RM_Size in order to + properly call UI_To_Int. Don't check the size of the component + type in case of generic. + * sem_ch9.adb (Allows_Lock_Free_Implementation): + Use of Known_Static_Esize instead of Known_Esize and + Known_Static_RM_Size instead of Known_RM_Size in order to properly + call UI_To_Int. Don't check the size of the component type in + case of generic. + +2012-08-06 Hristian Kirtchev <kirtchev@adacore.com> + + * checks.adb (Discrete_Range_Cond): Do not try to optimize on + the assumption that the type of an expression can always fit in + the target type of a conversion. + +2012-07-30 Robert Dewar <dewar@adacore.com> + + * bindusg.adb: Clarify file in -A lines. + +2012-07-30 Robert Dewar <dewar@adacore.com> + + * freeze.adb: Minor reformatting. + +2012-07-30 Robert Dewar <dewar@adacore.com> + + * gnatcmd.adb, makeutl.adb, makeutl.ads: Minor code reorganization. + +2012-07-30 Vincent Pucci <pucci@adacore.com> + + * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body): Minor + reformatting. + * sem_ch9.adb (Allows_Lock_Free_Implementation): Minor reformatting. + Capture the correct error message in case of a quantified expression. + +2012-07-30 Thomas Quinot <quinot@adacore.com> + + * g-socket.adb (Get_Socket_Option, Set_Socket_Option): On Windows, the + value is a milliseconds count in a DWORD, not a struct timeval. + +2012-07-30 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch12.adb (Earlier): Add local variables T1 and T2. Minor code + refactoring. + +2012-07-30 Thomas Quinot <quinot@adacore.com> + + * gnatcmd.adb, make.adb, makeutl.adb, makeutl.ads + (Test_If_Relative_Path): Rename to Ensure_Absolute_Path to better + reflect what this subprogram does. Rename argument Including_L_Switch + to For_Gnatbind, and also exempt -A from rewriting. + * bindusg.adb: Document optional =file argument to gnatbind -A. + +2012-07-30 Ed Schonberg <schonberg@adacore.com> + + * freeze.adb (Freeze_Entity): Do no apply restriction check on + storage pools to access to subprogram types. + +2012-07-30 Robert Dewar <dewar@adacore.com> + + * par_sco.adb, a-cihama.adb, a-coinve.adb, exp_ch7.adb, a-ciorse.adb, + exp_ch9.adb, sem_dim.adb, par-ch13.adb, sem_ch9.adb, a-cidlli.adb, + a-cimutr.adb, freeze.adb, a-ciormu.adb, sem_res.adb, sem_attr.adb, + a-cihase.adb, exp_ch4.adb, sem_ch4.adb, a-ciorma.adb, + s-tasinf-linux.ads, sem_ch13.adb, a-coinho.adb: Minor reformatting. + Add comments. + +2012-07-30 Vincent Pucci <pucci@adacore.com> + + * sem_ch9.adb (Allows_Lock_Free_Implementation): Restrict implicit + dereferences of access values. + +2012-07-27 Iain Sandoe <iain@codesourcery.com> + + * system-darwin-ppc64.ads: Add Support_Atomic_Primitives, set to True. + +2012-07-25 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils2.c (gnat_stabilize_reference) <BIT_FIELD_REF>: Do + not stabilize operand #1 and #2. + +2012-07-23 Tristan Gingold <gingold@adacore.com> + + * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): Use + End_Label sloc when possible for sloc of the TRY_CATCH_EXPR node. + +2012-07-23 Olivier Hainque <hainque@adacore.com> + + * gcc-interface/Makefile.in: Adjust processing of Linker_Options for + VxWorks. + * gcc-interface/Make-lang.in: Update dependencies. + +2012-07-23 Arnaud Charlet <charlet@adacore.com> + + * s-tasinf-linux.ads: Fix typo. + +2012-07-23 Thomas Quinot <quinot@adacore.com> + + * exp_ch7.adb, switch-m.adb, exp_ch3.adb, freeze.adb: Minor reformatting + +2012-07-23 Ed Schonberg <schonberg@adacore.com> + + * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): If original + loop carries an identifier, preserve it when rewriting it as a + standard loop to validate exit statements that may reference + that name in the body of the loop. + +2012-07-23 Thomas Quinot <quinot@adacore.com> + + * exp_ch9.adb: Minor code cleanup. + +2012-07-23 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Analyze_Selected_Component): When checking for + potential ambiguities with class-wide operations on synchronized + types, attach the copied node properly to the tree, to prevent + errors during expansion. + +2012-07-23 Yannick Moy <moy@adacore.com> + + * sem_ch5.adb (Analyze_Loop_Statement): Make sure the loop body + is analyzed in Alfa mode. + +2012-07-23 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb: Adjust previous change. + +2012-07-23 Vincent Pucci <pucci@adacore.com> + + * sem_ch9.adb (Allows_Lock_Free_Implementation): Flag + Lock_Free_Given renames previous flag Complain. Description + updated. Henceforth, catch every error messages issued by this + routine when Lock_Free_Given is True. Declaration restriction + updated: No non-elementary parameter instead (even in parameter) + New subprogram body restrictions implemented: No allocator, + no address, import or export rep items, no delay statement, + no goto statement, no quantified expression and no dereference + of access value. + +2012-07-23 Hristian Kirtchev <kirtchev@adacore.com> + + * checks.adb (Determine_Range): Add local variable Btyp. Handle + the case where the base type of an enumeration subtype is + private. Replace all occurrences of Base_Type with Btyp. + * exp_attr.adb (Attribute_Valid): Handle the case where the + base type of an enumeration subtype is private. Replace all + occurrences of Base_Type with Btyp. + * sem_util.adb (Get_Enum_Lit_From_Pos): Add local variable + Btyp. Handle the case where the base type of an enumeration + subtype is private. Replace all occurrences of Base_Type with + Btyp. + +2012-07-23 Ed Schonberg <schonberg@adacore.com> + + * par-ch6.adb (P_Mode): in Ada 2005, a mode indicator can apply + to a formal object of an anonymous access type. + +2012-07-23 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Try_Container_Indexing): A user-defined indexing + aspect can have more than one index, e.g. to describe indexing + of a multidimensional object. + +2012-07-23 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch4.adb (Apply_Accessibility_Check): Reimplemented. The check is + now more complex and contains optional finalization part and mandatory + deallocation part. + +2012-07-23 Gary Dismukes <dismukes@adacore.com> + + * a-cihama.adb, a-cihase.adb, a-cimutr.adb, a-ciorma.adb, a-ciormu.adb, + a-ciorse.adb, a-coinho.adb, a-coinve.adb, a-cidlli.adb: Unsuppress + Accessibility_Check for Element_Type allocators. + +2012-07-23 Vasiliy Fofanov <fofanov@adacore.com> + + * projects.texi: Fix typo. + +2012-07-23 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb (Resolve_Explicit_Derenference): If prefix is + overloaded, remove those interpretations whose designated type + does not match the context, to avoid spurious ambiguities that + may be caused by the Ada 2012 conversion rule for anonymous + access types. + +2012-07-23 Vincent Celier <celier@adacore.com> + + * g-spitbo.adb (Substr (String)): Return full string and do not + raise exception when Start is 1 and Len is exactly the length + of the string parameter. + * g-spitbo.ads: Fix spelling error in the name of exception + Index_Error. + +2012-07-23 Ed Schonberg <schonberg@adacore.com> + + * par.adb: new subprogram Get_Aspect_Specifications. + * par-ch6.adb (P_Subprogram): handle subprogram bodies with aspect + specifications. + * par-ch13.adb (Get_Aspect_Specifications): extracted from + P_Aspect_Specifications. Collect aspect specifications in some + legal context, but do not attach them to any declaration. Used + when parsing subprogram declarations or bodies that include + aspect specifications. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): If aspects are + present, analyze them, or reject them if the subprogram as a + previous spec. + +2012-07-23 Vasiliy Fofanov <fofanov@adacore.com> + + * gnat_ugn.texi: Omit section on other platforms/runtimes support + in gnattest for vms version. + +2012-07-23 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specifications): + Handle properly aspects that can be specified on a subprogram + body: CPU, Priority, and Interrupt_Priority. + +2012-07-23 Claire Dross <dross@adacore.com> + + * a-cfdlli.ads: Switch definition of Constant_Reference_Type + and Empty_List. + +2012-07-23 Thomas Quinot <quinot@adacore.com> + + * par_sco.adb (Process_Decisions.Output_Header): For the guard + on an alternative in a SELECT statement, use the First_Sloc + of the guard expression (not its topmost sloc) as the decision + location, because this is what is referenced by dominance markers. + +2012-07-23 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch7.adb (Requires_Hooking): Examine the original expression + of an object declaration node because a function call that + returns on the secondary stack may have been rewritten into + something else. + +2012-07-23 Vincent Pucci <pucci@adacore.com> + + * sem_dim.adb (Analyze_Dimension_Has_Etype): For identifier, propagate + dimension when entity is a non-dimensionless constant. + (Analyze_Dimension_Object_Declaration): Propagate + dimension from the expression to the entity when type is a + dimensioned type and object is a constant. + +2012-07-23 Ed Schonberg <schonberg@adacore.com> + + * sem_attr.adb (Analyze_Attribute, case 'Old): if the prefix + is not an entity name, expand at once so that code generated by + the expansion of the prefix is not generated before the constant + that captures the old value is properly inserted and analyzed. + +2012-07-23 Thomas Quinot <quinot@adacore.com> + + * exp_ch9.adb (Ensure_Statement_Present): Mark generated NULL + statement as Comes_From_Source so that GIGI does not eliminate it. + +2012-07-23 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch12.adb (Insert_Freeze_Node_For_Instance): Inst is now + a local variable. Retrieve the related instance when processing + a subprogram instantiation. Such instances appear as wrapper + packages. + +2012-07-23 Vincent Pucci <pucci@adacore.com> + + * system-aix64.ads, system-aix.ads, system-darwin-ppc.ads, + system-hpux.ads, system-linux-alpha.ads, + system-linux-hppa.ads, system-linux-ppc.ads, + system-linux-s390.ads, system-linux-s390x.ads, + system-linux-sh4.ads, system-linux-sparc.ads, + system-lynxos-ppc.ads, system-mingw.ads, + system-solaris-sparc.ads, system-solaris-sparcv9.ads, + system-vms_64.ads, * system-vxworks-arm.ads, system-vxworks-m68k.ads, + system-vxworks-mips.ads, system-vxworks-ppc.ads, + system-vxworks-sparcv9.ads: Support_Atomic_Primitives set to False. + * system-darwin-x86.ads, system-darwin-x86_64.ads, + system-freebsd-x86.ads, system-freebsd-x86_64.ads, + system-hpux-ia64.ads, system-linux-ia64.ads, system-linux-x86.ads, + system-linux-x86_64.ads, system-lynxos-x86.ads, + system-mingw-x86_64.ads, system-solaris-x86.ads, + system-solaris-x86_64.ads, system-vms-ia64.ads, + system-vxworks-x86.ads: Support_Atomic_Primitives set to True. + * s-atopri.adb (Lock_Free_Read_X): New body. + (Lock_Free_Try_Write_X): Support_Atomic_Primitives check added. + (Lock_Free_Try_Write_64): New body. + * s-atopri.ads: New type uint. + (Sync_Compare_And_Swap_64): __sync_val_compare_and_swap_8 intrinsic + import. + (Lock_Free_Read_X): Body moved to s-atopri.adb. + (Lock_Free_Try_Write_64): Similar to other Lock_Free_Try_Write_X + routines. + * targparm.adb: New enumeration literal SAP + (Support_Atomic_Primitives) for type Targparm_Tags. New constant + SAP_Str. New component SAP_Str'Access for array Targparm_Str. + (Get_Target_Parameters): Parse Support_Atomic_Primitives_On_Target + flag. + * targparm.ads: New back-end code generation flag + Support_Atomic_Primitives_On_Target + +2012-07-23 Vincent Pucci <pucci@adacore.com> + + * gnat_ugn.texi: Dimensionality checking documentation updated. + +2012-07-23 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Make_Inline): If the pragma applies to a + subprogram renaming, set inline flags on both the renamed entity + and on the renaming, so that some ASIS queries can be handled + consistently in the absence of expansion. + +2012-07-23 Fedor Rybin <frybin@adacore.com> + + * gnat_ugn.texi: Removing obsolete limitation of gnattest + to support only ada05. Updating gnattest support for other + platforms/run-times section to reflect the usage of taget + prefix in gnattest calls. Fixing missed obsolete --stub-default + option name. + +2012-07-23 Robert Dewar <dewar@adacore.com> + + * uintp.adb: Minor reformatting. + +2012-07-23 Olivier Hainque <hainque@adacore.com> + + * system-vxworks-ppc.ads: Replace the default + Linker_Options requesting crtbe by a commented out request for + -nostartfiles. + +2012-07-23 Vincent Celier <celier@adacore.com> + + * prj-nmsc.adb (Check_Naming): Do not get the exceptions names + in a virtual project. + +2012-07-23 Robert Dewar <dewar@adacore.com> + + * layout.adb, sem_prag.adb, sem.ads, freeze.adb, + switch-m.adb, exp_disp.adb, system-vxworks-ppc.ads, exp_ch6.adb: Minor + reformatting. + +2012-07-23 Tristan Gingold <gingold@adacore.com> + + * gcc-interface/trans.c: (Handled_Sequence_Of_Statements_to_gnu): Set + location on TRY_CATCH_EXPR. + +2012-07-19 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Try to ensure + that an object of CW type initialized to a value is sufficiently + aligned for this value. + +2012-07-19 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Do not + look up the REP part of the base type in advance. Deal with that of + the variant types. + (get_rep_part): Be prepared for record types with fields. + +2012-07-18 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (stmt_group_may_fallthru): New function. + (gnat_to_gnu) <N_Block_Statement>: Use it to find out whether the + block needs to be translated. + +2012-07-17 Tristan Gingold <gingold@adacore.com> + + * gnat_rm.texi: Adjust previous change. + +2012-07-17 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Process_Import_Or_Interface): If the pragma + comes from an aspect, it applies to the corresponding entity + without further check. + +2012-07-17 Olivier Hainque <hainque@adacore.com> + + * initialize.c (__gnat_initialize for VxWorks): Remove section with + call to __gnat_vxw_setup_for_eh. + * system-vxworks-ppc.ads: Add -auto-register to -crtbe, relying + on the VxWorks constructor mechanism for network loaded modules + by default. + +2012-07-17 Tristan Gingold <gingold@adacore.com> + + * adaint.c: Minor reformatting. + +2012-07-17 Pascal Obry <obry@adacore.com> + + * s-regexp.adb (Adjust): Fix access violation in Adjust. + +2012-07-17 Ed Schonberg <schonberg@adacore.com> + + * freeze.adb (Freeze_Entity): Warn if an imported subprogram + has pre/post conditions, because these will not be enforced. + +2012-07-17 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch7.adb (Process_Transient_Objects): Put all the + finalization blocks and the final raise statement into a wrapper + block. + +2012-07-17 Vincent Pucci <pucci@adacore.com> + + * s-atopri.adb (Lock_Free_Try_Write_X): Atomic_Compare_Exchange_X + replaced by Sync_Compare_And_Swap_X. + (Lock_Free_Try_Write_64): Removed. + * s-atopri.ads (Sync_Compare_And_Swap_X): Replaces previous + routine Atomic_Compare_Exchange_X. + (Lock_Free_Read_64): Renaming of Atomic_Load_64. + (Lock_Free_Try_Write_64): Renaming of Sync_Compare_And_Swap_64. + +2012-07-17 Vincent Celier <celier@adacore.com> + + * switch-m.adb (Normalize_Compiler_Switches): Recognize new + switches -gnatn1 and -gnatn2. + +2012-07-17 Vincent Pucci <pucci@adacore.com> + + * gnat_ugn.texi: GNAT dimensionality checking + documentation updated with System.Dim.Mks modifications. + +2012-07-17 Ed Schonberg <schonberg@adacore.com> + + * exp_ch3.adb: sloc of array init_proc is sloc of type declaration. + +2012-07-17 Tristan Gingold <gingold@adacore.com> + + * raise-gcc.c (get_call_site_action_for): Remove useless init + expression for p. + (get_action_description_for): Do not overwrite action->kind. + +2012-07-17 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_attr.adb (Expand_N_Attribute_Reference): Add local variables Attr + and Conversion_Added. Add local constant Typ. + Retrieve the original attribute after the arithmetic check + machinery has modified the node. Add a conversion to the target + type when the prefix of attribute Max_Size_In_Storage_Elements + is a controlled type. + +2012-07-17 Gary Dismukes <dismukes@adacore.com> + + * exp_ch6.adb (Expand_Inlined_Call): For each actual parameter + of mode 'out' or 'in out' that denotes an entity, reset + Last_Assignment on the entity so that any assignments to the + corresponding formal in the inlining will not trigger spurious + warnings about overwriting assignments. + +2012-07-17 Robert Dewar <dewar@adacore.com> + + * s-assert.ads: Fix comments to make it clear that this is used + for all assertions, not just pragma Assert. + +2012-07-17 Jerome Guitton <guitton@adacore.com> + + * par_sco.ads: Minor typo fix. + +2012-07-17 Gary Dismukes <dismukes@adacore.com> + + * layout.adb (Layout_Type): In the case where the target is + AAMP, use 32 bits (a single pointer) rather than 64 bits for an + anonymous access-to-subprogram type if the type is library-level + and Is_Local_Anonymous_Access is True. + +2012-07-17 Jose Ruiz <ruiz@adacore.com> + + * s-tassta.adb, s-tarest.adb (Create_Task, Create_Restricted_Task, + Initialize): Add comments explaining that the CPU affinity value that + is passed to the run-time library can be either Unspecified_CPU, to + indicate that the task inherits the affinity of its activating task, + or a value in the range of CPU_Range but no greater than Number_Of_CPUs. + +2012-07-17 Javier Miranda <miranda@adacore.com> + + * exp_disp.adb (Make_DT): Remove decoration of Ada.Tags entities. + (Make_Tags): Add decoration of Ada.Tags entities. + +2012-07-17 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Check_Statement_Sequence): When locating the + last significant statement in a sequence, ignore iserted nodes + that typically come from expansion of controlled operations. + +2012-07-17 Tristan Gingold <gingold@adacore.com> + + * gnat_rm.texi: Document foreign exceptions. + +2012-07-17 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb, treepr.ads: Minor reformatting. + +2012-07-17 Robert Dewar <dewar@adacore.com> + + * exp_ch9.adb: Minor code reorganization. + * exp_ch3.adb: Minor code improvement. + +2012-07-17 Tristan Gingold <gingold@adacore.com> + + * seh_init.c (__gnat_SEH_error_handler): Not compiled anymore + on Windows 64 (+ SEH), as it is unused. + +2012-07-17 Javier Miranda <miranda@adacore.com> + + * sem_prag.adb (CPP_Class): Transform obsolescent pragma CPP_Class into + CPP convention automatically. + +2012-07-16 Tristan Gingold <gingold@adacore.com> + + * gcc-interface/decl.c (intrin_return_compatible_p): Map Address to + void *. + +2012-07-16 Thomas Quinot <quinot@adacore.com> + + * exp_ch9.adb (Ensure_Statement_Present): New subprogram. + (Expand_N_Asynchronous_Select, + Expand_N_Selective_Accept.Process_Accept_Alternative, + Expand_N_Selective_Accept.Process_Delay_Alternative, + Expand_N_Timed_Entry_Call): For an alternative with no trailing + statements, introduce a null statement to carry the sloc of + the initial special statement (accept, delay, or entry call) + in the alternative, for coverage analysis purposes. + +2012-07-16 Thomas Quinot <quinot@adacore.com> + + * sem_eval.adb (In_Subrange_Of): Fix typo in test for scalar + arguments. + +2012-07-16 Robert Dewar <dewar@adacore.com> + + * a-exexpr.adb, freeze.adb, a-exexpr-gcc.adb, a-except-2005.adb, + sem_eval.adb, s-fileio.adb: Minor reformatting. + +2012-07-16 Javier Miranda <miranda@adacore.com> + + * sem_prag.adb (Analyze_Pragma): Remove support for obsolescent + pragma CPP_Class. + * sem_ch13.adb (Analyze_Freeze_Entity): Add missing error on Ada + derivations of CPP types. Found updating the tests affected by + the removal of pragma CPP_Class. + +2012-07-16 Thomas Quinot <quinot@adacore.com> + + * back_end.adb: Minor reformatting. + +2012-07-16 Thomas Quinot <quinot@adacore.com> + + * exp_ch9.adb (Expand_N_Selective_Accept.Process_Accept_Alternative): + Remove junk test that was always true. For the case of no statements + following the ACCEPT, jump directly to End_Lab instead of + introducing an intermediate jump. + (Expand_N_Selective_Accept.Process_Delay_Alternative): Fix + predicate testing for presence of statements following the DELAY. + that was always true. For the case of no statements following + the ACCEPT, jump directly to End_Lab instead of introducing an + intermediate jump. + (Expand_N_Selective_Accept): Fix incorrect insertion point for + end label. + +2012-07-16 Thomas Quinot <quinot@adacore.com> + + * gnat_rm.texi: Minor documentation improvements. + +2012-07-16 Yannick Moy <moy@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specifications): Allow Pre + and Pre'Class aspects on the same declaration. + * sem_prag.adb (Chain_PPC): Allow Pre and Pre'Class aspects on the + same hierarchy of primitive operations. + +2012-07-16 Thomas Quinot <quinot@adacore.com> + + * freeze.adb (Check_Component_Storage_Order): Do not reject a + nested composite with different scalar storage order if it is + byte aligned. + +2012-07-16 Thomas Quinot <quinot@adacore.com> + + * gnat_rm.texi: Update documentation for Scalar_Storage_Order. + +2012-07-16 Tristan Gingold <gingold@adacore.com> + + * a-exexpr.adb (Propagate_Exception): Adjust call to + Exception_Traces procedures. + * a-exexpr-gcc.adb (Setup_Current_Excep): Now a + function that returns an access to the Ada occurrence. + (Propagate_GCC_Exception): Adjust calls. + * raise.h (struct Exception_Occurrence): Declare. + * a-exextr.adb: Remove useless pragma. (Notify_Handled_Exception, + Notify_Unhandled_Exception) (Unhandled_Exception_Terminate): + Add Excep parameter. + * a-except.adb (Notify_Handled_Exception, + Notify_Unhandled_Exception) (Unhandled_Exception_Terminate): + Add Excep parameter. + (Process_Raise_Exception): Adjust calls. + * a-except-2005.adb (Notify_Handled_Exception, + Notify_Unhandled_Exception) (Unhandled_Exception_Terminate): Add + Excep parameter. + (Raise_Exception): Calls Raise_Exception_Always. + * raise-gcc.c (__gnat_setup_current_excep, + __gnat_notify_handled_exception) + (__gnat_notify_unhandled_exception): Adjust declarations. + (PERSONALITY_FUNCTION): Adjust calls. + (__gnat_personality_seh0): Remove warning. + +2012-07-16 Javier Miranda <miranda@adacore.com> + + * sem_eval.adb (Test_Expression_Is_Foldable): Adding documentation. + (Eval_Relational_Op): Adding documentation. + +2012-07-16 Robert Dewar <dewar@adacore.com> + + * freeze.adb, g-debpoo.adb, exp_ch3.adb: Minor reformatting. + +2012-07-16 Thomas Quinot <quinot@adacore.com> + + * s-oscons-tmplt.c: Add definitions of E2BIG and EILSEQ. + +2012-07-16 Tristan Gingold <gingold@adacore.com> + + * a-exexpr.adb (Propagate_Continue): New function replacing + Raise_Current_Excep. + (Allocate_Occurrence): New function. + (Propagate_Exception): Add Excep parameter, remove call to Call_Chain. + * a-exexpr-gcc.adb (GNAT_GCC_Exception): Occurrence component + is now aliased. + (To_GCC_Exception): Convert from Address. + (Allocate_Occurrence): Allocate an Unwind exception occurrence. + (Setup_Current_Excep): Fill the machine occurrence in case of + foreign exception. + (Propagate_Exception): Add Excep parameter, remove call to Call_Chain. + * a-except.adb (Set_Exception_C_Msg, Set_Exception_Msg): add + Excep parameter. + (Raise_Exception, Raise_Exception_Always, + Raise_Exception_No_Defer): Adjust calls to the above procedures. + (Raise_From_Signal_Handler, Raise_With_Location_And_Msg) + (Rcheck_PE_Finalize_Raised_Exception): Likewise. + * a-except-2005.adb (Set_Exception_C_Msg, Set_Exception_Msg): + add Excep parameter. + (Propagate_Exception): Likewise. + (Allocate_Occurrence): New function. + (Raise_Current_Excep): Removed. + (Complete_Occurrence): New function to save the call chain. + (Complete_And_Propagate_Occurrence): New procedure. + (Create_Occurrence_From_Signal_Handler): New function to build an + occurrence without propagating it. + (Create_Machine_Occurrence_From_Signal_Handler): Likewise, but + return the machine occurrence. + (Raise_From_Signal_Handler): Use Create_Occurrence_From_Signal_Handler. + (Raise_Exception, Raise_Exception_Always, Raise_Exception_No_Defer): + Adjust calls to the above procedures. Allocate the occurrence at + the beginning. + (Raise_With_Location_And_Msg, Raise_With_Msg) + (Rcheck_PE_Finalize_Raised_Exceptionm Reraise): Likewise. + (Reraise_Occurrence): Use Reraise_Occurrence_Always. + (Reraise_Occurrence_Always): Use Reraise_Occurrence_No_Defer. + (Reraise_Occurrence_No_Defer): Preserve machine occurrence. + (Save_Occurrence): Do not save machine occurrence. + * a-except-2005.ads (Exception_Occurrence): Add Machine_Occurrence + component. + (Null_Occurrence): Consider it. + * a-exexda.adb (Set_Exception_C_Msg, Set_Exception_Msg): add + Excep parameter. + +2012-07-16 Tristan Gingold <gingold@adacore.com> + + * seh_init.c (__gnat_map_SEH): New function extracted from + __gnat_SEH_error_handler. + * raise-gcc.c: __gnat_personality_seh0: Directly transforms + Windows system exception into GCC one when possible, in order + to save stack room (particularly useful when Storage_Error will + be propagated). + +2012-07-16 Robert Dewar <dewar@adacore.com> + + * a-direct.adb, g-dirope.adb: Minor reformatting. + +2012-07-16 Tristan Gingold <gingold@adacore.com> + + * a-except.ads, a-except-2005.ads: Remove outdated comment. + +2012-07-16 Robert Dewar <dewar@adacore.com> + + * sem_ch6.adb (Subprogram_Name_Greater): Fix algorithm to + conform to documentation. + +2012-07-16 Ed Schonberg <schonberg@adacore.com> + + * gnat1drv.adb (Check_Library_Items): Removed, no longer used. + +2012-07-16 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Array_Type_Declaration): if component type has + invariants, the array type itself requires an invariant procedure. + * exp_ch3.ads, exp_ch3.adb (Build_Array_Invariant_Proc): new + procedure, to build a checking procedure that applies the + invariant check on some type T to each component of an array + of T's. Code is similar to the construction of the init_proc + for an array, and handles multidimensional arrays by recursing + over successive dimensions. + +2012-07-16 Hristian Kirtchev <kirtchev@adacore.com> + + * g-debpoo.adb: Revert previous change. + +2012-07-16 Hristian Kirtchev <kirtchev@adacore.com> + + * freeze.adb (Freeze_Entity): Insert the itype reference to a + library-level class-wide subtype after the freeze node of the + equivalent record type. + +2012-07-16 Pascal Obry <obry@adacore.com> + + * s-crtl.ads (mkdir): New routine, support encoding. + * adaint.h (__gnat_mkdir): Update spec to pass encoding. + * mkdir.c (__gnat_mkdir): Add encoding parameter. + * a-direct.adb (Create_Directory): Use CRTL.mkdir, parse encoding + in form parameter. + * g-dirope.adb (Make_Dir): Update to pass encoding parameter. + +2012-07-16 Pascal Obry <obry@adacore.com> + + * adaint.c: Minor reformatting. + +2012-07-16 Steven Bosscher <steven@gcc.gnu.org> + + * gcc-interface/utils.c: Include timevar.h. + * Make-lang.in: Fix dependencies. + +2012-07-16 Vasiliy Fofanov <fofanov@adacore.com> + + * ug_words, vms_data.ads: Document VMS qualifiers for -gnatn1/2 + switches. + +2012-07-16 Bob Duff <duff@adacore.com> + + * sinfo.ads: Minor comment fix. + +2012-07-16 Bob Duff <duff@adacore.com> + + * sem_elab.adb (Within_Elaborate_All): Walk the with clauses to + find pragmas Elaborate_All that may be found in the transitive + closure of the dependences. + +2012-07-16 Robert Dewar <dewar@adacore.com> + + * exp_pakd.adb, freeze.adb, sem_util.adb, vms_data.ads: Minor + reformatting. + +2012-07-12 Vasiliy Fofanov <fofanov@adacore.com> + + * vms_data.ads: Add VMS qualifiers for -gnatn1/2 switches. + +2012-07-12 Thomas Quinot <quinot@adacore.com> + + * exp_ch5.adb, exp_pakd.adb, rtsfind.ads, freeze.adb, sem_util.adb, + sem_util.ads, exp_aggr.adb + (Exp_Aggr.Packed_Array_Aggregate_Handled): Simplify processing + for reverse storage order aggregate. + (Exp_Pakd.Byte_Swap): New utility routine used by... + (Exp_Pakd.Expand_Bit_Packed_Element_Set, + Expand_Packed_Element_Reference): For the case of a free-standing + packed array with reverse storage order, perform byte swapping. + (Rtsfind): Make new entities RE_Bswap_{16,32,64} available. + (Freeze.Check_Component_Storage_Order): New utility routine + to enforce legality rules for nested composite types whose + enclosing composite has an explicitly defined Scalar_Storage_Order + attribute. + (Sem_Util.In_Reverse_Storage_Order_Object): Renamed from + Sem_Util.In_Reverse_Storage_Order_Record, as SSO now applies to + array types as well. + (Exp_Ch5.Expand_Assign_Array): Remove now unnecessary kludge + for change of scalar storage order in assignments. The Lhs and + Rhs now always have the same scalar storage order. + +2012-07-12 Hristian Kirtchev <kirtchev@adacore.com> + + * g-debpoo.adb (Allocate): Add local constant + No_Element. Initialize the allocated memory chunk to No_Element. + +2012-07-12 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly + the case of an instance of a child unit where a formal derived + type DT is an extension of a type T declared in a parent unit, + and the actual in the instance of the child is the type T declared + in the parent instance, and that actual is not a derived type. + +2012-07-12 Eric Botcazou <ebotcazou@adacore.com> + Tristan Gingold <gingold@adacore.com> + + * system-hpux-ia64.ads: Enable ZCX by default. + * gcc-interface/Makefile.in: Use alternate stack on ia64-hpux. + Change soext to .so. + +2012-07-12 Robert Dewar <dewar@adacore.com> + + * s-atopri.adb, s-atopri.ads: Minor reformatting. + +2012-07-12 Robert Dewar <dewar@adacore.com> + + * ali.adb: Add circuitry to read new named form of restrictions lines. + * debug.adb: Add doc for new -gnatd.R switch (used positional + notation for output of restrictions data in ali file). + * lib-writ.adb: Implement new named format for restrictions lines. + * lib-writ.ads: Add documentation for new named format for + restrictions in ali files. + * restrict.adb, restrict.ads, sem_prag.adb: Update comments. + * rident.ads: Go back to withing System.Rident + * s-rident.ads: Add extensive comment on dealing with consistency + checking. + +2012-07-12 Thomas Quinot <quinot@adacore.com> + + * par_sco.adb, scos.ads: Emit detailed SCOs for SELECT statements. + +2012-07-12 Robert Dewar <dewar@adacore.com> + + * sem_disp.adb: Minor reformatting + * s-bytswa.ads: Minor comment update. + +2012-07-12 Vincent Pucci <pucci@adacore.com> + + * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body): + Atomic_Load_N replaced by Lock_Free_Read_N. Atomic_Compare_Exchange_N + replaced by Lock_Free_Try_Write_N. + Renaming of several local variables. For + procedure, Expected_Comp declaration moved to the declaration + list of the procedure. + * rtsfind.ads: RE_Atomic_Compare_Exchange_8, + RE_Atomic_Compare_Exchange_16, RE_Atomic_Compare_Exchange_32, + RE_Atomic_Compare_Exchange_64, RE_Atomic_Load_8, + RE_Atomic_Load_16, RE_Atomic_Load_32, RE_Atomic_Load_64, + RE_Atomic_Synchronize, RE_Relaxed removed. RE_Lock_Free_Read_8, + RE_Lock_Free_Read_16, RE_Lock_Free_Read_32, RE_Lock_Free_Read_64, + RE_Lock_Free_Try_Write_8, RE_Lock_Free_Try_Write_16, + RE_Lock_Free_Try_Write_32, RE_Lock_Free_Try_Write_64 added. + * s-atopri.adb: New file. + * s-atopri.ads (Atomic_Compare_Exchange_8): Renaming of + parameters. Import primitive __sync_val_compare_and_swap_1. + (Atomic_Compare_Exchange_16): Renaming of parameters. + Import primitive __sync_val_compare_and_swap_2. + (Atomic_Compare_Exchange_32): Renaming of parameters. + Import primitive __sync_val_compare_and_swap_4. + (Atomic_Compare_Exchange_64): Renaming of parameters. Import + primitive __sync_val_compare_and_swap_8. + (Atomic_Load_8): Ptr renames parameter X. + (Atomic_Load_16): Ptr renames parameter X. + (Atomic_Load_32): Ptr renames parameter X. + (Atomic_Load_64): Ptr renames parameter X. + (Lock_Free_Read_8): New routine. + (Lock_Free_Read_16): New routine. + (Lock_Free_Read_32): New routine. + (Lock_Free_Read_64): New routine. + (Lock_Free_Try_Write_8): New routine. + (Lock_Free_Try_Write_16): New routine. + (Lock_Free_Try_Write_32): New routine. + (Lock_Free_Try_Write_64): New routine. + +2012-07-12 Robert Dewar <dewar@adacore.com> + + * exp_attr.adb, exp_ch9.adb, sem_ch9.adb, exp_aggr.adb: Minor + reformatting. + +2012-07-12 Vincent Pucci <pucci@adacore.com> + + * sem_dim.adb (Analyze_Dimension_Function_Call): Reformatting of error + msgs for elementary functions. + +2012-07-12 Vincent Pucci <pucci@adacore.com> + + * sem_attr.adb (Eval_Attribute): Minor reformatting. + +2012-07-12 Pascal Obry <obry@adacore.com> + + * prj-nmsc.adb (Check_Library_Attributes): Allow the same library + project in different project tree (different aggregated projects). + +2012-07-12 Thomas Quinot <quinot@adacore.com> + + * s-bytswa.adb, g-bytswa.adb, g-bytswa.ads, s-bytswa.ads: Further + reorganization of byte swapping routines. + +2012-07-12 Ed Schonberg <schonberg@adacore.com> + + * sem_disp.adb (Check_Dispatching_Context): Refine legality + checks on tagg indeterminate calls to abstract operations, + that appear in the context of other calls. + +2012-07-12 Thomas Quinot <quinot@adacore.com> + + * s-bytswa.adb (Swapped2.Bswap16): Remove local function, + no longer needed. + +2012-07-12 Javier Miranda <miranda@adacore.com> + + * exp_attr.adb (Expand_N_Attribute_Reference): For + attributes 'access, 'unchecked_access and 'unrestricted_access, + iff the current instance reference is located in a protected + subprogram or entry then rewrite the access attribute to be the + name of the "_object" parameter. + +2012-07-12 Tristan Gingold <gingold@adacore.com> + + * raise.h: Revert previous patch: structure is used in init.c + by vms. + +2012-07-12 Vincent Celier <celier@adacore.com> + + * make.adb (Binding_Phase): If --subdirs was used, but not + -P, change the working directory to the specified subdirectory + before invoking gnatbind. + (Linking_Phase): If --subdirs was used, but not -P, change the working + directory to the specified subdirectory before invoking gnatlink. + +2012-07-12 Vincent Pucci <pucci@adacore.com> + + * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body): + For a procedure, instead of replacing each Comp reference by a + reference to Current_Comp, make a renaming Comp of Current_Comp + that rewrites the original renaming generated by the compiler + during the analysis. Move the declarations of the procedure + inside the generated block. + (Process_Stmts): Moved in the body + of Build_Lock_Free_Unprotected_Subprogram_Body. + (Process_Node): + Moved in the body of Build_Lock_Free_Unprotected_Subprogram_Body. + * sem_ch9.adb (Allows_Lock_Free_Implementation): Restrict any + non-elementary out parameters in protected procedures. + +2012-07-12 Thomas Quinot <quinot@adacore.com> + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case + Scalar_Storage_Order): Attribute applies to base type only. + +2012-07-12 Ed Schonberg <schonberg@adacore.com> + + * exp_aggr.adb (Convert_To_Positional): Increase acceptable size + of static aggregate when Static_Elaboration_Desired is requested. + Add a warning if the request cannot be satisfied either because + some components or some array bounds are non-static. + +2012-07-12 Thomas Quinot <quinot@adacore.com> + + * exp_pakd.adb: Minor reformatting. + +2012-07-12 Tristan Gingold <gingold@adacore.com> + + * tracebak.c: Fix warnings. + * raise-gcc.c (__gnat_adjust_context): New function + (__gnat_personality_seh0): Call __gnat_adjust_context to adjust + PC in machine frame for exceptions that occur in the current + function. + +2012-07-12 Thomas Quinot <quinot@adacore.com> + + * g-bytswa.adb, g-bytswa.ads, s-bytswa.adb, s-bytswa.ads, Makefile.rtl: + Move GNAT.Byte_Swapping to System (with a renaming under GNAT) + so that it is usable in expanded code. + +2012-07-12 Tristan Gingold <gingold@adacore.com> + + * s-osinte-hpux.ads: Increase alternate stack size on hpux. + +2012-07-12 Javier Miranda <miranda@adacore.com> + + * exp_ch3.adb (Make_Neq_Body): Fix typo in comment. + +2012-07-12 Eric Botcazou <ebotcazou@adacore.com> + + * tb-gcc.c (trace_callback): On IA-64/HP-UX, use workaround only + if USE_LIBUNWIND_EXCEPTIONS is defined. + * init.c: Further tweaks for IA-64/HP-UX. + +2012-07-12 Tristan Gingold <gingold@adacore.com> + + * raise-gcc.c: Do not include unwind-dw2-fde.h. Adjust comments. + (db_region_for): Second argument is ip. Do not recompute ip. + (action_kind): Remove typedef, add unhandler enum const. + (action_descriptor): Adjust type of kind field. + (db_action_for): Second argument is ip, do not recompute it. + (get_call_site_action_for): First argument is call_site, do not + recompute it. Remove useless return. + (is_handled_by): Now return enum action_kind. + Handle GNAT_ALL_OTHERS first. + Return unhandler for GNAT_UNHANDLED_OTHERS. + (get_action_description_for): First argument is now ip, do not + recompute it. Adjust code for call to is_handled_by. + (__gnat_notify_unhandled_exception): Add prototype. + (PERSONALITY_FUNCTION): Call get_ip_from_context. Adjust calls. + Handle unhandler case. + (__gnat_cleanupunwind_handler): Add comments, add + ATTRIBUTE_UNUSED on arguments. + (__gnat_Unwind_RaiseException, __gnat_Unwind_ForcedUnwind): Define + only once. + * raise.h: Makes struct Exception_Data opaque. + +2012-07-12 Robert Dewar <dewar@adacore.com> + + * make.adb, sem_ch9.adb, prj.adb, s-rident.ads, snames.ads-tmpl: Minor + reformatting. + +2012-07-12 Javier Miranda <miranda@adacore.com> + + * exp_ch3.adb (Is_User_Defined_Equality): New subprogram. + (Make_Neq_Body): New subprogram. + (Make_Predefined_Primitive_Specs): Adding local variable + Has_Predef_Eq_ Renaming to ensure that we enable the machinery + which handles renamings of predefined primitive operators. + +2012-07-09 Pascal Obry <obry@adacore.com> + + * prj.adb (For_Every_Project_Imported_Context): Make sure we + callback with the project having sources. + Minor reformatting. + +2012-07-09 Eric Botcazou <ebotcazou@adacore.com> + + * make.adb: Fix typo. + +2012-07-09 Vincent Pucci <pucci@adacore.com> + + * sem_ch9.adb (Check_Node): Allow attributes + that denote static function for lock-free implementation. + (Is_Static_Function): New routine. + +2012-07-09 Tristan Gingold <gingold@adacore.com> + + * tracebak.c: Adjust skip_frames on Win64. + +2012-07-09 Tristan Gingold <gingold@adacore.com> + + * init.c: Add __gnat_adjust_context_for_raise for ia64/hpux. + * raise-gcc.c: __gnat_cleanupunwind_handler: Do not call + _Unwind_GetGR on hpux when using libgcc unwinder. Part of + +2012-07-09 Vincent Pucci <pucci@adacore.com> + + * exp_attr.adb, sem_attr.adb: Minor reformatting. + * par-ch13.adb, par-ch4.adb, par-util.adb: Reformatting + considering that internal attribute names are not defined anymore + in the main attribute names list. + * snames.adb-tmpl (Get_Attribute_Id): Special processinf + for names CPU, Dispatching_Domain and Interrupt_Priority. + (Is_Internal_Attribute_Name): Minor reformatting. + * snames.ads-tmpl: New list of internal attribute names. Internal + attributes moved at the end of the attribute Id list. + +2012-07-09 Robert Dewar <dewar@adacore.com> + + * freeze.adb: Minor code reorganization (use Ekind_In). + * exp_attr.adb, sem_ch9.adb par-ch4.adb, s-taprop-mingw.adb, + sem_attr.adb, exp_ch8.adb, snames.adb-tmpl, par-util.adb, + sem_ch13.adb, snames.ads-tmpl: Minor reformatting. + +2012-07-09 Tristan Gingold <gingold@adacore.com> + + * raise-gcc.c: Adjust previous patch. + +2012-07-09 Vincent Celier <celier@adacore.com> + + * make.adb (Compilation_Phase): Do not build libraries in + Codepeer mode (do not call Library_Phase). + +2012-07-09 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb: Extend previous change to elementary types. + +2012-07-09 Javier Miranda <miranda@adacore.com> + + * exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): Reverse + previous patch since unconditionally handling as renaming_as_body + renamings of predefined dispatching equality and unequality operator + cause visibility problems with private overridings of the equality + operator (see ACATS C854001). + +2012-07-09 Vincent Pucci <pucci@adacore.com> + + * exp_attr.adb (Signal_Bad_Attribute): Raise Program_Error in + case of internal attribute names (already rejected by the parser). + * par-ch13.adb (P_Representation_Clause): Complain if an internal + attribute name that comes from source occurs. + * par-ch4.adb (P_Name): Complain if an internal attribute name + occurs in the context of an attribute reference. + * par-util.adb (Signal_Bad_Attribute): Don't complain about + mispelling attribute with internal attributes. + * sem_attr.adb (Analyze_Attribute): Raise Program_Error in case + of internal attribute names (already rejected by the parser). + * snames.adb-tmpl (Is_Internal_Attribute_Name): New routine. + * snames.ads-tmpl: Attributes CPU, Dispatching_Domain and + Interrupt_Priority are marked as INT attributes since they + don't denote real attribute and are only used internally in + the compiler. + (Is_Internal_Attribute_Name): New routine. + +2012-07-09 Thomas Quinot <quinot@adacore.com> + + * einfo.adb (Set_Reverse_Storage_Order): Update assertion, + flag is now valid for array types as well. + +2012-07-09 Tristan Gingold <gingold@adacore.com> + + * tracebak.c: Implement __gnat_backtrace for Win64 SEH. + +2012-07-09 Robert Dewar <dewar@adacore.com> + + * einfo.ads: Minor reformatting. + +2012-07-09 Javier Miranda <miranda@adacore.com> + + * exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): Handle as + renaming_as_body renamings of predefined dispatching equality + and unequality operators. + +2012-07-09 Robert Dewar <dewar@adacore.com> + + * rident.ads: Do not instantiate r-ident.ads, this is now an + independent unit. + +2012-07-09 Javier Miranda <miranda@adacore.com> + + * exp_disp.adb (Write_DT): Avoid runtime crash of this debugging + routine. + * sem_disp.adb (Find_Dispatching_Time): Protect this routine + against partially decorated entities. + +2012-07-09 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Check_Size): Reject a size clause that specifies + a value greater than Int'Last for a scalar type. + +2012-07-09 Vincent Pucci <pucci@adacore.com> + + * sem_ch9.adb (Allows_Lock_Free_Implementation): type must support + atomic operation moved to the protected body case. No non-elementary + out parameter moved to the protected declaration case. Functions have + only one lock-free restriction. + (Analyze_Protected_Type_Declaration): Issue a warning when + Priority given with Lock_Free. + +2012-07-09 Vincent Pucci <pucci@adacore.com> + + * sem_dim.adb: Grammar of aspect Dimension fixed. + +2012-07-09 Vincent Pucci <pucci@adacore.com> + + * freeze.adb (Freeze_Record_Type): Code reorg in order to avoid + pushing and popping the scope stack whenever a delayed aspect occurs. + +2012-07-09 Gary Dismukes <dismukes@adacore.com> + + * s-os_lib.ads: Remove pragma Elaborate_Body, as + this is now unnecessary due to recently added pragma Preelaborate. + +2012-07-09 Jose Ruiz <ruiz@adacore.com> + + * s-taprop-mingw.adb (Set_Priority): Remove the code that was + previously in place to reorder the ready queue when a task drops + its priority due to the loss of inherited priority. + +2012-07-09 Robert Dewar <dewar@adacore.com> + + * layout.adb, i-cstrea.ads, a-ststio.ads, prj-util.ads, sem_cat.adb, + s-commun.ads, s-ficobl.ads, s-os_lib.ads, s-fileio.ads: Minor + reformatting. + +2012-07-09 Eric Botcazou <ebotcazou@adacore.com> + + * raise-gcc.c: Update comments. Fix typo. + +2012-07-09 Thomas Quinot <quinot@adacore.com> + + * einfo.adb, einfo.ads, sem_attr.adb, sem_ch13.adb: Attribute + Scalar_Storage_Order can be defined or queried for array types as well + as record types. + +2012-07-09 Tristan Gingold <gingold@adacore.com> + + * a-exexpr-gcc.adb (CleanupUnwind_Handler): Now imported from + raise-gcc.c + * raise-gcc.c (__gnat_cleanupunwind_handler): Defined. + Strictly follow the ABI convention on ia64. + +2012-07-09 Gary Dismukes <dismukes@adacore.com> + + * a-ststio.ads: Add pragma Preelaborate, per AI05-0283. + * i-cstrea.ads (max_path_len): Change from variable to deferred + constant to allow it to be used as a bound in string component + in type System.File_IO.Temp_File_Record. + * s-os_lib.ads, s-commun.ads, s-ficobl.ads, s-fileio.ads: Add pragma + Preelaborate. + * s-fileio.adb (Get_Case_Sensitive): Move function inside + procedure Open. + (File_Names_Case_Sensitive): Move variable inside + procedure Open, to avoid violation of Preelaborate restriction + (due to call to Get_Case_Sensitive). + +2012-07-09 Ed Schonberg <schonberg@adacore.com> + + * layout.adb (Set_Elem_Alignment): Protect against meaningless + size clause, to prevent overflow in internal computation of + alignment. + +2012-07-09 Robert Dewar <dewar@adacore.com> + + * freeze.adb, prj-util.adb, prj-util.ads, sem_ch13.adb: Minor + reformatting. + +2012-07-09 Gary Dismukes <dismukes@adacore.com> + + * sem_cat.adb (Check_Categorization_Dependencies): + Allow dependence of both Remote_Types and Remote_Call_Interface + declarations (not just Remote_Types units) on preelaborated + units, but require that the dependence be made via a private + with_clause. Issue a specialized error message. + +2012-07-09 Pascal Obry <obry@adacore.com> + + * prj-util.adb, prj-util.ads (For_Interface_Sources): New routine. + +2012-07-09 Tristan Gingold <gingold@adacore.com> + + * seh_init.c (__gnat_SEH_error_handler): On Win64 and SEH, + return for unknown exceptions. + * raise-gcc.c (__gnat_personality_seh0): Call __gnat_SEH_error_handler. + +2012-07-09 Joel Brobecker <brobecker@adacore.com> + + * exp_dbug.ads (No_Dollar_In_Label): Delete. + +2012-07-09 Vincent Pucci <pucci@adacore.com> + + * sem_ch13.adb (Check_Overloaded_Name): New routine. + +2012-07-09 Vincent Pucci <pucci@adacore.com> + + * freeze.adb (Freeze_Record_Type): Analyze the delayed aspects of the + components in a record type. + +2012-07-09 Pascal Obry <obry@adacore.com> + + * prj-util.ads: Minor reformatting. + +2012-07-09 Tristan Gingold <gingold@adacore.com> + + * raise-gcc.c (db_indent): Simplify style, improve comments. + Remove !IN_RTS part (dead). + +2012-07-09 Robert Dewar <dewar@adacore.com> + + * usage.adb: Minor change to format of -gnatn line. + +2012-07-09 Tristan Gingold <gingold@adacore.com> + + * a-exexpr-gcc.adb: Reorder routine. + +2012-07-09 Vincent Celier <celier@adacore.com> + + * lib-writ.ads: Add documentation for the Z lines (implicitly + withed units) and Y lines (limited withed units). + +2012-07-09 Robert Dewar <dewar@adacore.com> + + * lib.ads, exp_attr.adb, exp_ch9.adb, sem_dim.adb, sem_ch9.adb, + sem_prag.adb, sem_ch12.adb, mlib-utl.adb, freeze.adb, sem_res.adb, + sem_attr.adb, sem_case.adb, gnatlink.adb, exp_ch4.adb, sem_ch6.adb, + sem_elim.adb, s-dimmks.ads, sem_ch13.adb: Minor code clean ups. + +2012-07-09 Eric Botcazou <ebotcazou@adacore.com> + + * gnat_ugn.texi (Switches for gcc): Document -gnatn[12] only + lightly in the summary and more thoroughly in inlining section. + (Performance Considerations): Document -gnatn[12] in inlining + section. + +2012-07-09 Tristan Gingold <gingold@adacore.com> + + * a-exexpr-gcc.adb (Unhandled_Except_Handler): New procedure. + (Unhandled_Others_Value): New const. + * raise-gcc.c (GNAT_UNHANDLED_OTHERS): Define. + (action_descriptor): Remove ttype_entry. + (get_action_description_for): Do not assign ttype_entry. + (is_handled_by): Consider GNAT_UNHANDLED_OTHERS. + +2012-07-03 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Call_to_gnu): Robustify test for function case + if the CICO mechanism is used. + +2012-07-03 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils2.c (build_simple_component_ref): Do not look + through an extension if the type contains a placeholder. + +2012-07-03 Eric Botcazou <ebotcazou@adacore.com> + + * exp_disp.adb (Expand_Dispatching_Call): Propagate the convention on + the designated subprogram type and also set Is_Dispatch_Table_Entity. + (Expand_Interface_Thunk): Propagate the convention on the thunk. + (Set_CPP_Constructors_Old): Set Is_Constructor and Convention_CPP on + the internal view of the constructors. + (Set_CPP_Constructors): Likewise. + * sem_prag.adb (Analyze_Pragma) <Pragma_CPP_Constructor>: Set the + convention on the function. + * gcc-interface/gigi.h (is_cplusplus_method): Declare. + * gcc-interface/decl.c (Has_Thiscall_Convention): New macro. + (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the `thiscall' + calling convention + (get_minimal_subprog_decl): Likewise. + (is_cplusplus_method): New predicate. + * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Access>: Issue an + error on access to C++ constructor or member function. + +2012-07-03 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils.c (gnat_pushdecl): Set TYPE_CONTEXT for types + attached to a TYPE_DECL. + +2012-06-26 Vincent Pucci <pucci@adacore.com> + + * exp_ch3.adb (Build_Init_Statements): Don't check the parents + in the Rep Item Chain of the task for aspects Interrupt_Priority, + Priority, CPU and Dispatching_Domain. + * exp_ch9.adb (Expand_N_Task_Type_Declaration): fields _Priority, + _CPU and _Domain are present in the corresponding record type + only if the task entity has a pragma, attribute definition + clause or aspect specification. + (Make_Initialize_Protection): Don't check the parents in the Rep Item + Chain of the task for aspects Interrupt_Priority, Priority, CPU and + Dispatching_Domain. + * freeze.adb (Freeze_Entity): Use of Evaluate_Aspects_At_Freeze_Point + call replaced by Analyze_Aspects_At_Freeze_Point. + * sem_ch13.adb, sem_ch13.ads (Analyze_Aspects_At_Freeze_Point): + Renaming of Evaluate_Aspects_At_Freeze_Point. + +2012-06-26 Yannick Moy <moy@adacore.com> + + * sem_attr.adb (Analyze_Attribute): Detect if 'Old is used outside a + postcondition, and issue an error in such a case. + +2012-06-26 Yannick Moy <moy@adacore.com> + + * gnat_rm.texi: Minor editing. + +2012-06-26 Tristan Gingold <gingold@adacore.com> + + * raise-gcc.c: Minor cleanup: remove unused prototype. + * seh_init.c: Do not create an image wide unwind info to catch + SEH when SEH unwind info are emitted by the compiler. + +2012-06-19 Steven Bosscher <steven@gcc.gnu.org> + + * gcc-interface/trans.c: Include target.h. + (gigi): Try to put out .ident with targetm.asm_out.output_ident. + Remove uses of ASM_OUTPUT_IDENT. + * gcc-interface/Make-lang.in: Fix dependencies. + +2012-06-15 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/53592 + * gcc-interface/gigi.h (maybe_vector_array): Make static inline. + * gcc-interface/utils.c (maybe_vector_array): Delete. + * gcc-interface/trans.c (gnat_to_gnu) <N_Indexed_Component>: Mark the + array object as addressable if it has vector type and is on the LHS. + +2012-06-15 Eric Botcazou <ebotcazou@adacore.com> + + PR middle-end/53590 + * gcc-interface/misc.c (gnat_init_options_struct): Set + opts->x_flag_delete_dead_exceptions to 1. + +2012-06-14 Jose Ruiz <ruiz@adacore.com> + + * gcc-interface/Make-lang.in (ada.install-common, ada.uninstall): + Use the prefix specified with the --program-prefix configure option + to determine the install name of the Ada tools. + (ada.all.cross): Use a for loop to iterate over the set of Ada tools + instead of duplicate the same processing. + Update dependencies. + +2012-06-14 Vincent Pucci <pucci@adacore.com> + + * exp_ch6.adb (Expand_Call): Expand_Put_Call_With_Dimension_Symbol + call replaced by Expand_Put_Call_With_Symbol call. + * sem_dim.adb: New fields Unit_Names, Unit_Symbols + and Dim_Symbols for record type System_Type. + (From_Dimension_To_String_Of_Symbols): Removed. + (From_Dim_To_Str_Of_Dim_Symbols): Renames previous + routine From_Dimension_To_String_Of_Symbols. + (From_Dim_To_Str_Of_Unit_Symbols): New routine. + (Analyze_Aspect_Dimension): argument Symbol in aspect + Dimension aggregate is optional. Named association implemented. + (Has_Compile_Time_Known_Expressions): Removed. + (Analyze_Aspect_Dimension_System): New + component Dim_Symbol in each Dimension aggregate in + aspect Dimension_System. Named associations implemented. + (Add_Dimension_Vector_To_Buffer): Removed. + (Add_Whole_To_Buffer): Removed. + (Expand_Put_Call_With_Dimension_Symbol.): Removed. + (Expand_Put_Call_With_Symbol): Renames previous routine + Expand_Put_Call_With_Dimension_Symbol. + (Has_Dimension_Symbols): Removed. + (Has_Symbols): Renames previous routine + Has_Dimension_Symbols. (Store_String_Oexpon): New routine. + * sem_dim.ads (Expand_Put_Call_With_Dimension_Symbol.): Removed. + (Expand_Put_Call_With_Symbol): Renames previous routine + Expand_Put_Call_With_Dimension_Symbol. + * s-diflio.adb, s-diinio.adb (Put): Symbol renames Symbols. + (Put_Dim_Of): New routines. + * s-diflio.ads, s-diinio.ads: documentation updated. + (Put): Symbol renames Symbols. + (Put_Dim_Of): New routines. + * s-dim.ads: documentation updated. + * s-dimmks.ads: dimensioned type and subtypes updated. + * snames.ads-tmpl: Name_Dim_Symbol, Name_Put_Dim_Of, Name_Symbol, + and Name_Unit_Symbol added. Name_Symbols removed. + +2012-06-14 Vincent Pucci <pucci@adacore.com> + + * freeze.adb (In_Exp_Body): Expression function case added. + (Freeze_Expression): Insert the Freeze_Nodes + list before the correct current scope in case of a quantified + expression. + +2012-06-14 Pascal Obry <obry@adacore.com> + + * projects.texi: Document the Install package for gprinstall. +2012-06-14 Ed Schonberg <schonberg@adacore.com> + + * sem_elim.adb (Check_For_Eliminated_Subprogram): Do not check within + a default expression. + * sem_res.adb (Resolve_Call): simplify code. + +2012-06-14 Ed Schonberg <schonberg@adacore.com> + + * sem_case.adb (Check, Issue_Msg): within an instance, non-other + values in a variant part or a case expression do not have to + belong to the actual subtype. + +2012-06-14 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Validate_Derived_Type_Instance): If parent is + an interface type, check whether it is itself a previous formal + already instantiated in the current list of actuals. + +2012-06-14 Ed Schonberg <schonberg@adacore.com> + + * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): The + expression for a stream attribute is a name that may be overloaded + with other declarations. To determine whether it matches the + aspect at the freeze point, it is necessary to verify that one + of its interpretations matches. + +2012-06-14 Robert Dewar <dewar@adacore.com> + + * exp_ch7.adb, exp_util.adb, sem_aux.ads, exp_ch9.adb, + sem_ch10.adb, freeze.adb, sem_util.adb, exp_ch4.adb, + s-taprop-dummy.adb: Minor reformatting. + +2012-06-14 Vincent Pucci <pucci@adacore.com> + + * exp_attr.adb (Expand_N_Attribute_Reference): Lock_Free + attribute case added. + * par-prag.adb (Prag): Lock_Free pragma case added. + * sem_attr.adb (Analyze_Attribute_Reference): Lock_Free attribute + case added. + * sem_ch13.adb (Analyze_Aspect_Specifications): Record_Rep_Item + call added for Aspect_Lock_Free. + * sem_ch9.adb (Allows_Lock_Free_Implementation): New Lock_Free + error messages for subprogram bodies. + (Lock_Free_Disabled): New routine. + (Analyze_Protected_Body): Call to Lock_Free_Disabled added. + * sem_prag.adb (Analyze_Pragma): Lock_Free pragma case added. + * snames.adb-tmpl (Get_Pragma_Id): Name_Lock_Free case added. + (Is_Pragma_Name): Name_Lock_Free case added. + * snames.ads-tmpl: Attribute_Lock_Free and Pragma_Lock_Free added. + +2012-06-14 Ed Schonberg <schonberg@adacore.com> + + * a-coorma.adb, a-cborma.adb, a-cbhama.adb, a-ciorma.adb: Add missing + aliased keyword. + +2012-06-14 Bob Duff <duff@adacore.com> + + * lib.ads, lib.adb, sem.adb (Write_Unit_Info): Move this + procedure from Sem body to Lib spec, so it can be used for + debugging elsewhere. + +2012-06-14 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Check_Conformance): Add Ada 2012 check on mode + conformance: "aliased" must apply to both or neither formal + parameters. + +2012-06-14 Gary Dismukes <dismukes@adacore.com> + + * exp_ch9.adb: Minor reformatting. + +2012-06-14 Thomas Quinot <quinot@adacore.com> + + * freeze.adb (Freeze_Record_Type): Warn about useless bit order + specification [when there's no component clause] regardless + of whether the specified bit order is reversed or not. + +2012-06-14 Tristan Gingold <gingold@adacore.com> + + * raise-gcc.c (__gnat_personality_seh0): New function. + +2012-06-14 Tristan Gingold <gingold@adacore.com> + + * gnatname.adb (Gnatname): Make sure that dynamic table + argument_data is initialized. + +2012-06-14 Robert Dewar <dewar@adacore.com> + + * sem_aux.adb: Minor code reorganization. + +2012-06-14 Vincent Pucci <pucci@adacore.com> + + * einfo.adb einfo.ads (Get_Rep_Item): Removed. + (Get_Rep_Item_For_Entity): Removed. + (Get_Rep_Pragma): Removed. + (Get_Rep_Pragma_For_Entity): Removed. + (Has_Rep_Item): Removed. + (Has_Rep_Pragma): Removed. + (Has_Rep_Pragma_For_Entity): Removed. + * exp_ch9.adb (Expand_N_Task_Type_Declaration): + Has_Rep_Pragma_For_Entity replaced by Has_Rep_Pragma + and Get_Rep_Pragma_For_Entity replaced by Get_Rep_Pragma. + (Make_Task_Create_Call): Has_Rep_Pragma_For_Entity replaced + by Has_Rep_Pragma and Get_Rep_Pragma_For_Entity replaced by + Get_Rep_Pragma. + * exp_intr.adb: Dependency to Sem_Aux added for call to Get_Rep_Pragma. + * sem_aux.adb (Get_Rep_Item): New routine. + (Get_Rep_Pragma): New routine. + (Has_Rep_Item): New routine. + (Has_Rep_Pragma): New routine. + (Nearest_Ancestor): Minor reformatting. + * sem_aux.ads (Get_Rep_Item): New routine. + (Get_Rep_Pragma): New routine. + (Has_Rep_Item): New routine. + (Has_Rep_Pragma): New routine. + * sem_ch13.adb (Duplicate_Clause): Restore original error messages. + * sem_eval.adb (Subtypes_Statically_Match): Get_Rep_Item_For_Entity + replaced by Get_Rep_Item. + * sem_prag.adb (Analyze_Pragma): Restore original error messages. + (Check_Duplicate_Pragma): Restore original error messages. + +2012-06-14 Ed Schonberg <schonberg@adacore.com> + + * sem_util.adb (Is_Object_Reference): in Ada 2012, qualified + expressions are valid names. + +2012-06-14 Ed Schonberg <schonberg@adacore.com> + + * sem_ch10.adb (Analyze_Compilation_Unit): If the unit is an + instantiation do not emit warnings for obsolescent units. The + warnings belong on the corresponding generic. + +2012-06-14 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb: Update the usage of Node15. + (Return_Flag_Or_Transient_Decl): Removed. + (Set_Return_Flag_Or_Transient_Decl): Removed. + (Set_Status_Flag_Or_Transient_Decl): New routine. + (Status_Flag_Or_Transient_Decl): New routine. + (Write_Field15_Name): Update the output for variables and constants. + * einfo.ads: Remove attribute + Return_Flag_Or_Transient_Decl along with occurrences in nodes. + (Return_Flag_Or_Transient_Decl): Removed along with pragma Inline. + (Set_Return_Flag_Or_Transient_Decl): Removed along with pragma Inline. + (Set_Status_Flag_Or_Transient_Decl): New routine along with pragma + Inline. + (Status_Flag_Or_Transient_Decl): New routine along with pragma Inline. + * exp_ch4.adb (Create_Alternative): New routine. + (Expand_N_Conditional_Expression): Handle the case + where at least one of the conditional expression + alternatives prodices a controlled temporary by means of a function + call. + (Is_Controlled_Function_Call): New routine. + (Process_Transient_Object): Update the call to + Set_Return_Flag_Or_Transient_Decl. + * exp_ch6.adb (Enclosing_Context): New routine. + (Expand_N_Extended_Return_Statement): Update all calls to + Set_Return_Flag_Or_Transient_Decl. + (Expand_Ctrl_Function_Call): Prohibit the finalization of a controlled + function result when the context is a conditional expression. + * exp_ch7.adb (Process_Declarations): Update all calls to + Return_Flag_Or_Transient_Decl. Add processing for intermediate + results of conditional expressions where one of the alternatives + uses a controlled function call. + (Process_Object_Declaration): Update all calls to + Return_Flag_Or_Transient_Decl and rearrange the logic to process + "hook" objects first. + (Process_Transient_Objects): Update the call to + Set_Return_Flag_Or_Transient_Decl. + * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, + Boolean)): Update all calls to Return_Flag_Or_Transient_Decl. Add + detection for intermediate results of conditional expressions + where one of the alternatives uses a controlled function call. + +2012-06-13 Eric Botcazou <ebotcazou@adacore.com> + + Revert + 2012-05-19 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (Has_Thiscall_Convention): New macro. + (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the thiscall + calling convention + (get_minimal_subprog_decl): Likewise. + (gnat_first_param_is_class): New predicate. + +2012-06-12 Robert Dewar <dewar@adacore.com> + + * gcc-interface/Make-lang.in: Update dependencies. + * sem_ch9.ads, einfo.adb, einfo.ads, sem_prag.adb, freeze.adb, + sem_util.adb, sem_ch13.adb, sem_ch13.ads, exp_ch3.adb: Add comments. + Minor reformatting. + +2012-06-12 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Instantiate_Formal_Subprogram): Remove code that + implements AI05-0296, because the actual may be overloaded. + * sem_ch8.adb (Analyze_Subprogram_Renaming): and move it here, + to be applied once the actual subprogram is properly resolved. + +2012-06-12 Robert Dewar <dewar@adacore.com> + + * switch-c.adb, a-exexpr-gcc.adb: Minor reformatting. + +2012-06-12 Vincent Pucci <pucci@adacore.com> + + * checks.adb (Tag_Checks_Suppressed): Remove Kill_Tag_Checks check. + * einfo.adb (Universal_Aliasing): Apply to the implementation + base type instead of the base type. + (Get_Rep_Item_For_Entity): + Return a pragma if the pragma node is not present in the Rep + Item chain of the parent. + (Kill_Tag_Checks): Removed (unused flag). + (Set_Kill_Tag_Checks): Removed. + (Get_First_Rep_Item): New routine. + (Get_Rep_Pragma_For_Entity): New routine. + (Has_Rep_Item): New routine. + (Has_Rep_Pragma_For_Entity): New routine. + (Present_In_Rep_Item): New routine. + * einfo.ads (Kill_Tag_Checks): Removed. + (Set_Kill_Tag_Checks): Removed. + (Get_First_Rep_Item): New routine. + (Get_Rep_Pragma_For_Entity): New routine. + (Has_Rep_Item): New routine. + (Has_Rep_Pragma_For_Entity): New routine. + (Present_In_Rep_Item): New routine. + * exp_attr.adb, sem_attr.adb: Attribute_CPU, + Attribute_Dispatching_Domain and Attribute_Interrupt_Priority + case added. + * exp_ch13.adb (Expand_N_Attribute_Definition_Clause): For + attribute Storage_Size, insert the new assignement statement + after the Size variable declaration. + * exp_ch3.adb (Build_Init_Statements): Fill the CPU, + Dispatching_Domain, Priority and Size components with the Rep + Item expression (if any). + * exp_ch9.adb (Expand_N_Task_Type_Declaration): _CPU, + _Priority, _Domain fields are always present in the + corresponding record type. + (Find_Task_Or_Protected_Pragma): Removed. + (Get_Relative_Deadline_Pragma): New routine. + (Make_Initialize_Protection): Find_Task_Or_Protected_Pragma removed. + (Make_Task_Create_Call): Check CPU, Size or + Dispatching_Domain Rep Item is present using new routine Has_Rep_Item. + * freeze.adb (Freeze_All): Push_Scope_And_Install_Discriminants + and Uninstall_Discriminants_And_Pop_Scope calls added. + (Freeze_Entity): Evaluate_Aspects_At_Freeze_Point call added. + * sem_aux.adb (Nearest_Ancestor): Retrieve the nearest ancestor + for private derived types. + * sem_ch13.adb (Analyze_Aspect_Specifications): Clean-up + and reordering. Delay analysis for all aspects (except some + peculiar cases). + (Analyze_Attribute_Definition_Clause): + Attribute_CPU, Attribute_Dispatching_Domain, + Interrupt_Priority and Attribute_Priority cases added. + (Analyze_Freeze_Entity): Push_Scope_And_Install_Discriminants + and Uninstall_Discriminants_And_Pop_Scope calls added. + (Check_Aspect_At_Freeze_Point): Reordering and clean-up. + (Duplicate_Clause): Issue an explicit error msg when the current + clause duplicates an aspect specification, an attribute definition + clause or a pragma. + (Evaluate_Aspects_At_Freeze_Point): New routine. + * sem_ch13.ads (Evaluate_Aspects_At_Freeze_Point): New routine. + * sem_ch9.adb, sem_ch9.ads (Install_Discriminants): New routine. + (Push_Scope_And_Install_Discriminants): New routine. + (Uninstall_Discriminants): New routine. + (Uninstall_Discriminants_And_Pop_Scope): New routine. + * sem_prag.adb (Check_Duplicate_Pragma): Issue an explicit error + msg when the current pragma duplicates an aspect specification, + an attribute definition clause or a pragma. + (Analyze_Pragma): Remove use of flags Has_Pragma_CPU, + Has_Pragma_Priority and Has_Pragma_Dispatching_Domain. + * sem_util.adb (Compile_Time_Constraint_Error): Don't complain + about the type if the corresponding concurrent type doesn't come + from source. + * sinfo.adb, sinfo.ads (Has_Pragma_CPU): Removed. + (Has_Pragma_Dispatching_Domain): Removed. + (Has_Pragma_Priority): Removed. + (Has_Task_Info_Pragma): Removed. + (Has_Task_Name_Pragma): Removed. + (Set_Has_Pragma_CPU): Removed. + (Set_Has_Pragma_Dispatching_Domain): Removed. + (Set_Has_Pragma_Priority): Removed. + (Set_Has_Task_Info_Pragma): Removed. + (Set_Has_Task_Name_Pragma): Removed. + * snames.adb-tmpl (Get_Pragma_Id): Pragma_CPU, + Pragma_Dispatching_Domain and Pragma_Interrupt_Priority added. + (Is_Pragma_Name): Name_CPU, Name_Dispatching_Domain and + Name_Interrupt_Priority added. + * snames.ads-tmpl: Name_Dispatching_Domain, Name_CPU + and Name_Interrupt_Priority moved to the list of + Attribute_Name. Attribute_CPU, Attribute_Dispatching_Domain and + Attribute_Interrupt_Priority added. Pragma_Dispatching_Domain, + Pragma_CPU and Pragma_Interrupt_Priority moved to the end of + the Pragma_Name list. + +2012-06-12 Arnaud Charlet <charlet@adacore.com> + + * xref_lib.adb (Get_Full_Type): Add support for 'G'. + +2012-06-12 Tristan Gingold <gingold@adacore.com> + + * a-exexpr-gcc.adb (Unwind_Exception): Add 4 more private fields. + +2012-06-12 Fedor Rybin <frybin@adacore.com> + + * gnat_ugn.texi: Update doc on gnattest. + +2012-06-12 Robert Dewar <dewar@adacore.com> + + * sem_ch12.adb: Add comments. + +2012-06-12 Robert Dewar <dewar@adacore.com> + + * switch-c.adb, inline.adb, usage.adb, opt.ads: Minor reformatting. + +2012-06-12 Robert Dewar <dewar@adacore.com> + + * sem_ch12.adb: Minor reformatting. + +2012-06-12 Eric Botcazou <ebotcazou@adacore.com> + + * opt.ads (Inline_Level): New variable. + * gnat1drv.adb (Adjust_Global_Switches): Set it based on optimization + level if it has not been set by the user. + * switch-c.adb (Scan_Front_End_Switches): Accept -gnatn1 and -gnatn2 + and set Inline_Level accordingly. + * inline.adb (Add_Inlined_Body): Declate new Inline_Level_Type type. + (Must_Inline): Return Inline_Level_T instead of Boolean to indicate + whether the package of the inlined subprogram must be compiled. + If Inline_Level is set to 1, only compile packages of subprograms + directly called from the main unit. + * usage.adb (Usage): Adjust line for -gnatn switch. + * gnat_ugn.texi (Switches for gcc): Document -gnatn1 and -gnatn2. + +2012-06-12 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Instantiate_Formal_Subprogram): Do not apply + AI05-296 if the actual is overloaded. In this case The rule must + be applied after resolution, in Analyze_Subprogram_Renaming. + +2012-06-12 Robert Dewar <dewar@adacore.com> + + * stringt.adb: Minor reformatting. + +2012-06-12 Robert Dewar <dewar@adacore.com> + + * ali-util.adb, stringt.ads: Minor reformatting. + +2012-06-12 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch7.adb (Process_Declarations): Handle the case where + the original context has been wrapped in a block to avoid + interference between exception handlers and At_End handlers. + (Wrap_HSS_In_Block): Mark the block which contains the original + statements of the context as being a finalization wrapper. + * sinfo.adb (Is_Finalization_Wrapper): New routine. + (Set_Is_Finalization_Wrapper): New routine. + + * sinfo.ads: Add new attribute Is_Finalization_Wrapper applicable + to block statemnts. + (Is_Finalization_Wrapper): New routine with corresponding pragma Inline. + (Set_Is_Finalization_Wrapper): New routine with corresponding pragma + Inline. + +2012-06-12 Steve Baird <baird@adacore.com> + + * gnat1drv.adb (Adjust_Global_Switches): No longer need to set + Exception_Extra_Info in CodePeer_Mode. + +2012-06-12 Robert Dewar <dewar@adacore.com> + + * sem_dist.adb, exp_ch7.adb, sem_type.adb, exp_attr.adb, + sinfo.ads, sem_ch7.adb, exp_alfa.adb, sem_scil.adb, sem_ch12.adb, + sem_util.adb, sem_res.adb, sem_attr.adb, sem_elab.adb, exp_ch6.adb, + sem_ch4.adb, sem_warn.adb, scil_ll.adb, exp_cg.adb: Minor code + reorganization. + +2012-06-12 Eric Botcazou <ebotcazou@adacore.com> + + * s-tasini.ads: Minor fix in comment. + +2012-06-12 Thomas Quinot <quinot@adacore.com> + + * freeze.adb (Freeze_Record_Type): Warn on record with + Scalar_Storage_Order if there is no placed component. + +2012-06-12 Thomas Quinot <quinot@adacore.com> + + * sem_ch3.adb: Minor comment fix. + +2012-06-12 Vincent Celier <celier@adacore.com> + + * ali-util.adb (Time_Stamp_Mismatch): In minimal recompilation + mode, use Stringt Mark and Release to avoid growing the Stringt + internal tables uselessly. + * stringt.adb (Strings_Last): New global variable + (String_Chars_Last): New global variable. + (Mark, Release): New procedures. + * stringt.ads (Mark, Release) New procedures. + +2012-06-12 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch7.adb (Process_Transient_Objects): Renamed constant + Requires_Hooking to Must_Hook and replace all occurrences of the name. + (Requires_Hooking): New routine. Detect all contexts that require + transient variable export to the outer finalizer due to a potential + exception. + +2012-06-12 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb: Small adjustment. + +2012-06-12 Vincent Celier <celier@adacore.com> + + * vms_cmds.ads (Command_Type): New enumeration value Test + * vms_conv.adb (Initialize): Add component at index Test in + Command_List + * vms_data.ads (Test_Switches): New global variable for the + switches of gnattest, currently empty. + +2012-06-12 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Analyze_Subtype_Declaration): if an incomplete + type is tagged, so is a subtype of it. + * sem_ch12.adb (Validate_Actual_Subprogram): implement AI05-0296, + concerning freeze rules in the presence of formal incomplete + types: a formal abstract subprogram cannot have an incomplete + controlling type, and the profile of the actual subprogram does + not freeze if it includes an incomplete untagged type. + +2012-06-12 Robert Dewar <dewar@adacore.com> + + * a-direct.adb: Minor reformatting. + +2012-06-12 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Add missing documentation for -gnatw.v and + -gnatw.V. + +2012-06-12 Thomas Quinot <quinot@adacore.com> + + * sem_ch7.adb, sem_prag.adb, sem_ch12.adb, sem_ch4.adb, + sem_ch13.adb: Minor rewording of error messages for unchecked unions. + +2012-06-12 Robert Dewar <dewar@adacore.com> + + * lib-xref.ads: Minor reformatting. + +2012-06-12 Pascal Obry <obry@adacore.com> + + * a-direct.adb (Delete_File): Delete symbolic links silently + instead of raising the Name_Error exception when the symbolic + link is pointing to a non existent file. + +2012-06-12 Robert Dewar <dewar@adacore.com> + + * xref_lib.adb, sem_ch13.adb, lib-xref.adb: Minor reformatting. + +2012-06-12 Javier Miranda <miranda@adacore.com> + + * lib-xref.ads Adding missing documentation. + +2012-06-12 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch7.adb (Create_Finalizer): Add the + exception reraise mechanism at the very end of the finalizer + statements. This placement ensures that all objects are finalized, + the secondary stack mark released and aborts undeferred before + propagating an exception. + +2012-06-12 Ed Schonberg <schonberg@adacore.com> + + * sem_ch10.adb (Remove_Unit_From_Visibility): if the unit is a + wrapper package. remove from visibility the original subprogram + instance. + +2012-06-12 Javier Miranda <miranda@adacore.com> + + * sem_prag.adb (Process_Convention): Generate reference to entity + exported to foreign language. Needed for GPS navigation. + * xref_lib.adb (Parse_Identifier_Info): Parse exported entities. + * lib-xref (Output_References): Output exported entities. + +2012-06-12 Pascal Obry <obry@adacore.com> + + * prj-attr.adb: Add install package and corresponding attributes. + * snames.ads-tmpl (Name_Active): New constant. + (Name_Exec_Subdir): Likewise. + (Name_Install): Likewise. + (Name_Lib_Subdir): Likewise. + (Name_Project_Subdir): Likewise. + (Name_Sources_Subdir): Likewise. + +2012-06-12 Bob Duff <duff@adacore.com> + + * sem_res.adb (Check_Infinite_Recursion): + Suppress spurious warning on recursion after "raise with ...". + +2012-06-12 Thomas Quinot <quinot@adacore.com> + + * sem_prag.adb (Analyze_Pragma, case Unchecked_Union): Do + not crash on illegal unchecked union that is a null record. + +2012-06-12 Thomas Quinot <quinot@adacore.com> + + * exp_ch4.adb (Has_Inferable_Discriminants): Reorganize code to + treat implicit dereferences with a constrained unchecked union + nominal subtype as having inferable discriminants. + +2012-06-12 Robert Dewar <dewar@adacore.com> + + * sem_ch6.adb: Minor reformatting. + +2012-06-12 Eric Botcazou <ebotcazou@adacore.com> + + * gnat_ugn.texi: Couple of minor corrections. + +2012-06-12 Thomas Quinot <quinot@adacore.com> + + * sem_prag.adb (Check_Variant): An empty component list is not + illegal in an unchecked union variant. + +2012-06-12 Gary Dismukes <dismukes@adacore.com> + + * projects.texi: Remove comments. + +2012-06-12 Thomas Quinot <quinot@adacore.com> + + * back_end.adb (Scan_Back_End_Switches): Treat -fdump-scos as + synonym of -gnateS. + (gnat_post_options): Disable gimple-based SCO generator. + * gnat_ugn.texi: Document that -gnateS is an obsolete synonym + of -fdump-scos. + +2012-06-12 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Different_Generic_Profile): new predicate for + Find_Corresponding_Spec, to handle a rare case of accidental + overloading in an instance, when the profile of a subprogram body + that depends on a formal type becomes compatible with that of + a homonym whose profile in the generic mentions the actual type. + +2012-06-12 Thomas Quinot <quinot@adacore.com> + + * gnat1drv.adb: Minor reformatting. + +2012-06-12 Ed Schonberg <schonberg@adacore.com> + + * sem_util.adb (Build_Explicit_Dereference): If the expression + is an entity, ensure that the type of the expression is the same + as that of the entity. + +2012-06-12 Pat Rogers <rogers@adacore.com> + + * projects.texi: Corrected instances of the word "build" that + should be "built" instead. Other similar changes and minor + punctuation changes. + +2012-06-12 Eric Botcazou <ebotcazou@adacore.com> + + * sem_util.adb (Is_Atomic_Object): Return true for an atomic + component as well as a prefix which is an atomic component. + +2012-06-12 Ed Schonberg <schonberg@adacore.com> + + * exp_prag.adb (Expand_Pragma_Import_Or_Interface): revert previous + patch. The processing of interfacing aspects now generates a + proper Ada 2005 pragma. + * sem_prag.adb (Analyze_Pragma, cases Pragma_Export and + Pragma_Import): revert previous patch. The processing of + interfacing aspects now generates a proper Ada 2005 pragma. + * sem_ch13.adb (Analyze_Aspect_Specifications): generate proper + pragam for aspects Convention, Import and Export. Scan list + of aspects to collect link name and external name if present, + and verify that a complete pragma can be generated. + +2012-06-11 Olivier Hainque <hainque@adacore.com> + + * gcc-interface/Makefile.in (GNATLIBCFLAGS_FOR_C): Remove + $(PIC_FLAG_FOR_TARGET). + (gnatlib-shared-default): Add $(PIC_FLAG_FOR_TARGET) to + GNATLIBCFLAGS_FOR_C passed to gnatlib. + (gnatlib-shared-win32): Likewise. + (gnatlib-shared-darwin): Likewise. + (gnatlib-shared-dual-win32): Pass PIC_FLAG_FOR_TARGET to + gnatlib-shared-win32. + +2012-06-11 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Convert GNU_SIZE + to units before invoking allocatable_size_p on it. + Remove orphaned comment. Do not use ssize_int. + <E_Record_Subtype>: Traverse list in original order. Minor tweak. + (allocatable_size_p): Adjust and simplify. + (build_subst_list): Use consistent terminology throughout. + (build_variant_list): Likewise. Traverse list in original order. + (create_field_decl_from): Likewise. + (copy_and_substitute_in_size): Likewise. + (create_variant_part_from): Add comment about field list order. + * gcc-interface/utils.c (build_vms_descriptor): Do not use ssize_int. + * gcc-interface/utils2.c (build_allocator): Likewise. + +2012-06-11 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Identifier_to_gnu): Test Is_Elementary_Type + instead of Is_Scalar_Type for a constant with an address clause. + Do not return the underlying constant for a constant used by reference + if it holds the address of a constant and an lvalue is required. + +2012-06-11 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity): Do not specifically deal + with external constants wrt force_global here... + <E_Constant>: ...but here instead. + * gcc-interface/utils.c (gnat_pushdecl): Do not put external DECLs onto + the list of global DECLs. + +2012-06-11 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity): Translate the Esize on + entry only for elementary types and abort if it is too large. + <E_Record_Type>: Make sure the Esize is known before using it. + +2012-06-04 Steven Bosscher <steven@gcc.gnu.org> + + * gcc-interface/utils2.c: Do not include output.h. + * gcc-interface/Make-lang.in: Fix dependencies. + +2012-05-29 Michael Matz <matz@suse.de> + + * gcc-interface/utils.c (create_var_decl_1): Don't call expand_decl. + +2012-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (variant_desc): Rename 'record' to 'new_type'. + (build_variant_list): Adjust to above renaming. + (gnat_to_gnu_entity) <E_Record_Subtype>: Likewise. Give a unique name + to the type of the variant containers. + (create_variant_part_from): Likewise. Give a unique name to the type + of the variant part. + +2012-05-25 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/52362 + * link.c (__gnat_object_file_option): Set to "-Wl,@" for GNU linker. + (__gnat_using_gnu_linker): Delete. + * gnatlink.adb (Gnatlink): Declare Object_File_Option_Ptr here... + Declare Object_File_Option string constant and Using_GNU_response_file + boolean constant. + (Process_Binder_File): ...instead of here. Delete Using_GNU_Linker, + Opening and Closing local variables. Do not handle the GNU linker + specially. + (Write_RF): New procedure to write into the response file. Escape some + characters if a GNU response file is used. Keep track of error status. + Invoke Write_RF to write into the response file. Delete the file only + if the link was successful. + * mlib-utl.adb: Do not `with' package System. + (Gcc): Likewise. Declare Object_File_Option string constant and + Using_GNU_response_file boolean constant. + (Write_RF): Take a string instead of address and length. Escape some + characters if a GNU response file is used. + Invoke Write_RF to write into the response file. Delete the file only + if the link was successful. Do not warn if it cannot be deleted. + +2012-05-20 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils.c (gnat_write_global_declarations): Put a name + on the dummy global variable. + +2012-05-19 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (Has_Thiscall_Convention): New macro. + (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the thiscall + calling convention + (get_minimal_subprog_decl): Likewise. + (gnat_first_param_is_class): New predicate. + + * gcc-interface/misc.c (gnat_handle_option): Fix formatting. + * gcc-interface/Makefile.in: Likewise. + +2012-05-18 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: For an object at + global level with unconstrained nominal subtype and a non-fixed size, + make a variable for the size. + +2012-05-15 Andris Pavenis <andris.pavenis@iki.fi> + + PR ada/52494 + * s-taprop-dummy.adb (Specific): New package. + +2012-05-15 Olivier Hainque <hainque@adacore.com> + + * gcc-interface/Make-lang.in (COMMON_FLAGS_TO_PASS): Use WARN_CFLAGS + instead of trying to mimic it. + +2012-05-15 Robert Dewar <dewar@adacore.com> + + * sem_ch5.adb, sem_util.adb, s-stposu.adb, exp_ch4.adb: Minor + reformatting. + +2012-05-15 Geert Bosch <bosch@adacore.com> + + * uintp.adb (UI_Rem): Remove optimizations, as they are complex and are + not needed. + (Sum_Digits): Remove, no longer used. + (Sum_Double_Digits): Likewise. + +2012-05-15 Yannick Moy <moy@adacore.com> + + * aspects.ads: Minor typo. + +2012-05-15 Thomas Quinot <quinot@adacore.com> + + * gnat_rm.texi (Scalar_Storage_Order): Fix RM reference. + * sem_ch13.adb: Minor comment fix: incorrect RM reference. + +2012-05-15 Eric Botcazou <ebotcazou@adacore.com> + + * sem_prag.adb (Process_Atomic_Shared_Volatile): Propagate + atomicity from an object to its underlying type only if it + is composite. + +2012-05-15 Ed Schonberg <schonberg@adacore.com> + + * sem_ch5.adb (Analyze_Iterator_Specification): Set kind of + loop variable after pre-analysis of iterator name, to prevent + premature usage of loop variable. + +2012-05-15 Ed Schonberg <schonberg@adacore.com> + + * sem_util.adb (Is_Variable): In Ada 2012, an explicit + dereference that is a rewriting of an expression whose type has + a declared Implicit_Derenference aspect is a variable. + +2012-05-15 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch4.adb (Insert_Dereference_Action): Reimplemented. The + routine performs address and size adjustments for dereferences + of heap-allocated controlled objects. This manipulation is needed + in order to restore the original state of the memory at the time + it was allocated by the finalization machinery. + * rtsfind.ads: Add RE_Adjust_Controlled_Dereference to tables + RE_Id and RE_Unit_Table. + * sinfo.adb (Has_Dereference_Action): New routine. + (Set_Has_Dereference_Action): New routine. + * sinfo.ads: Add new semantic flag Has_Dereference_Action along + its association in nodes. + (Has_Dereference_Action): New routine and pragma Inline. + (Set_Has_Dereference_Action): New routine and pragma Inline. + * s-stposu.ads, s-stposu.adb (Adjust_Controlled_Dereference): New + routine. + +2012-05-15 Thomas Quinot <quinot@adacore.com> + + * uintp.adb (Image_Uint): Use UI_Div_Rem to get quotient and + remainder of U / Base in a single operation. + +2012-05-15 Robert Dewar <dewar@adacore.com> + + * exp_ch5.adb, inline.adb, sem_ch10.adb, prj.ads, sem_util.adb, + a-ngelfu.ads, exp_ch4.adb, exp_ch6.adb, aspects.ads, sem_ch6.adb, + vms_data.ads, exp_ch3.adb, prj-env.adb: Minor reformatting. + +2012-05-15 Thomas Quinot <quinot@adacore.com> + + * exp_ch4.adb (Has_Inferable_Discriminants): For a qualified + expression, use correct node for test on the subtype denoted by + the subtype mark. + +2012-05-15 Eric Botcazou <ebotcazou@adacore.com> + + * inline.adb (Scope_In_Main_Unit): Rename into... + (In_Main_Unit_Or_Subunit): ...this. Also return + true if the subprogram is within a subunit of the + main unit. + (Add_Inlined_Body): Adjust for above renaming. + (Add_Inlined_Subprogram): Likewise. Pass the subprogram directly. + (Analyze_Inlined_Bodies): Really set aside inlined subprograms + not handled by Add_Inlined_Body. + +2012-05-15 Ed Schonberg <schonberg@adacore.com> + + * sem_ch10.adb (Expand_With_Clause): In the context of a generic + package declaration, a private with-clause on a child unit implies + that the implicit with clauses on its parents are private as well. + +2012-05-15 Javier Miranda <miranda@adacore.com> + + * sem_ch6.adb (Is_Interface_Conformant): Add missing call to + Base_Type to handle subtypes. + * exp_ch6.adb (Expand_Call): For calls located in thunks handle + unchecked conversions of access types found in actuals. + * exp_disp.adb (Expand_Interface_Thunk): Add missing unchecked + conversion to actuals whose type is an access type. Done to + avoid reporting spurious errors. + +2012-05-15 Vincent Celier <celier@adacore.com> + + * prj-env.adb (Create_Mapping): Ignore sources that are + suppressed (Create_Mapping_File.Process): Ditto + * prj-nmsc.adb (Add_Source): Update to take into + account suppressed files that may hide inherited sources. + (Mark_Excluded_Sources): Mark excluded sources of the current + project as suppressed. + * prj.ads (Source_Data): New Boolean component Suppressed, + defaulted to False + +2012-05-15 Thomas Quinot <quinot@adacore.com> + + * exp_intr.adb: Minor reformatting. + +2012-05-15 Thomas Quinot <quinot@adacore.com> + + * gnat_rm.texi: Document attribute Scalar_Storage_Order. + +2012-05-15 Javier Miranda <miranda@adacore.com> + + * exp_ch3.adb (Build_Offset_To_Top): Modify the + expansion of the offset_to_top functions to ensure that their + profile is conformant with the profile specified in Ada.Tags. No + change in functionality. + +2012-05-15 Eric Botcazou <ebotcazou@adacore.com> + + * inline.adb (Subp_Info): Remove Count and Next_Nopred + components, add Processed component and move around Next component. + (Add_Call): Reverse meaning of Successors table to the natural one. + (Add_Inlined_Body): Do not inline a package if it is in the main unit. + (Add_Inlined_Subprogram): Do not add the subprogram to the list if the + package is in the main unit. Do not recurse on the successors. + (Add_Subp): Adjust to new contents of Subp_Info. + (Analyze_Inlined_Bodies): Do not attempt + to compute a topological order on the list of inlined subprograms, + but compute the transitive closure from the main unit instead. + (Get_Code_Unit_Entity): Always return the spec for a package. + +2012-05-15 Yannick Moy <moy@adacore.com> + + * aspects.ads: Minor addition of comments to provide info on + how to add new aspects. + +2012-05-15 Thomas Quinot <quinot@adacore.com> + + * osint.ads: Minor reformatting. + +2012-05-15 Thomas Quinot <quinot@adacore.com> + + * exp_ch5.adb, exp_pakd.adb, sem_util.adb, sem_util.ads + (Expand_Assign_Array): Handle the case of a packed bit array within a + record with reverse storage order (assign element by element in that + case). + (In_Reverse_Storage_Order_Record): New subprogram, + code extracted from Exp_Pakd. + +2012-05-15 Yannick Moy <moy@adacore.com> + + * a-ngelfu.ads: Add postconditions using Ada 2012 + aspect syntax, reflecting some of the RM requirements for these + functions, from Annex A.5.1 or G.2.4. + +2012-05-15 Thomas Quinot <quinot@adacore.com> + + * adaint.c: Minor fix: move misplaced comment. + +2012-05-15 Doug Rupp <rupp@adacore.com> + + * vms_data.ads: Enhance help for /IMMEDIATE_ERRORS to discourage + use by customers. + +2012-05-15 Tristan Gingold <gingold@adacore.com> + + * a-exextr.adb: Add comment. + +2012-05-15 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb: Minor reformatting (remove long dead code). + +2012-05-15 Ed Schonberg <schonberg@adacore.com> + + * aspects.adb, aspects.ads: Add aspects for Convention, Export, + External_Name, Import, and Link_Name. + * exp_prag.adb (Expand_Pragma_Import_Or_Interface): if the + pragma comes from an aspect specification, the entity is the + first argument. + * sem_prag.adb (Analyze_Pragma, cases Pragma_Export and + Pragma_Import): if the pragma comes from an aspect specification, + the entity is the first argument, and the second has the value + True by default. + * sem_ch13.adb (Analyze_Aspect_Specifications): generate pragam + for aspect Convention. Add placeholders for Link_Name and + External_Name. + +2012-05-15 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch9.adb (Expand_N_Asynchronous_Select): Extract the statements + of the abortable part and triggering alternative after being processed + for controlled objects. + (Expand_N_Timed_Entry_Call): Code and comment reformatting. + +2012-05-15 Robert Dewar <dewar@adacore.com> + + * sem_util.adb: Minor code reorganization. + +2012-05-15 Robert Dewar <dewar@adacore.com> + + * exp_ch7.adb, exp_ch11.adb, exp_ch11.ads: Minor reformatting. + +2012-05-15 Thomas Quinot <quinot@adacore.com> + + * sem_res.adb (Resolve): Enforce E.2.2(11/2) and E.2.2(12) for + 'Unrestricted_Access and 'Unchecked_Access (not just 'Access): + even in those cases, a remote access type may only designate a + remote subprogram. + +2012-05-15 Thomas Quinot <quinot@adacore.com> + + * sem_util.adb, sem_util.ads, sem_cat.adb: Minor refactoring. + (Enclosing_Lib_Unit_Node): Rename to Enclosing_Comp_Unit_Node. + +2012-05-15 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove obsolete + checks on nested inlined subprograms. + +2012-05-15 Tristan Gingold <gingold@adacore.com> + + * fe.h (Get_RT_Exception_Name): Declare. + +2012-05-15 Tristan Gingold <gingold@adacore.com> + + * raise-gcc.c (db_region_for): Use %p + cast to avoid warnings. + (get_region_description_for): Likewise. + (db_action_for): Likewise. + (get_call_site_action_for): Likewise. + (get_ttype_entry_for): Remove useless 'const'. + (PERSONALITY_FUNCTION): Add ATTRIBUTE_UNUSED on uw_exception_class. + +2012-05-15 Tristan Gingold <gingold@adacore.com> + + * a-exextr.adb (Unhandled_Exception_Terminate): Save occurrence + on the stack to avoid a dynamic memory allocation. + +2012-05-15 Bob Duff <duff@adacore.com> + + * exp_ch9.adb (Expand_N_Timed_Entry_Call): Move initialization of + E_Stats and D_Stats after Process_Statements_For_Controlled_Objects, + because those calls can destroy the Statements list. + +2012-05-15 Tristan Gingold <gingold@adacore.com> + + * fe.h (Get_RT_Exception_Name): Define. + * types.ads (RT_Exception_Code): Update comment. + * exp_ch11.adb, exp_ch11.ads (Get_RT_Exception_Name): New + procedure to get the name of the rcheck subprograms. + * a-except-2005.adb (Rcheck_xx): Rename. + * a-except.adb Likewise, but also keep the old Rcheck_nn routines + for bootstrap. + * arith64.c (__gnat_mulv64): Use __gnat_rcheck_CE_Overflow_Check + instead of __gnat_rcheck_10. + * gcc-interface/trans.c (build_raise_check): Use Get_RT_Exception_Name + to create the __gnat_rcheck routines name. + * gcc-interface/Make-lang.in: Update dependencies. + +2012-05-15 Tristan Gingold <gingold@adacore.com> + + * exp_ch7.adb (Build_Exception_Handler): Save current + occurrence only if -gnateE. + (Build_Object_Declaration): Declare E_Id only if -gnateE. + (Build_Raise_Statement): Call Raise_From_Controlled_Operation only if + -gnateE (else raise PE). + * s-soflin.adb (Save_Library_Occurrence): Handle null occurrence + access. + * a-except-2005.adb (Reraise_Library_Exception_If_Any): Call + Raise_From_Controlled_Operation only if the saved occurrence is + not null, otherwise raise PE. + +2012-05-15 Yannick Moy <moy@adacore.com> + + * exp_alfa.ads: Add comments describing the Alfa mode. + +2012-05-15 Tristan Gingold <gingold@adacore.com> + + * s-soflin.ads, s-soflin.adb (Save_Library_Occurrence): Parameter + E is now of type Exception_Occurrence_Access. + * exp_ch7.ads, exp_ch7.adb (Build_Exception_Handler): Adjust generated + call to Save_Library_Occurrence. + +2012-05-15 Thomas Quinot <quinot@adacore.com> + + * exp_ch4.adb (Rewrite_Coextension): Use Insert_Action to + insert temporary variable decl at the proper place in the tree. + +2012-05-15 Hristian Kirtchev <kirtchev@adacore.com> + + * g-calend.adb (Split_At_Locale): New routine. + (Time_Of_At_Locale): New routine. + * g-calend.ads (Split_At_Locale): New routine. + (Time_Of_At_Locale): New routine. + +2012-05-15 Gary Dismukes <dismukes@adacore.com> + + * a-except.ads: Minor reformatting. + +2012-05-15 Ed Schonberg <schonberg@adacore.com> + + * sem_ch5.adb (Analyze_Loop_Parameter_Specification): If the loop + parameter specification is part of a quantified expression, and it + already carries a type, do not repeat the analysis to preserve + type information: a range attribute reference may have been + rewritten as a range with static bounds, and its re-analysis may + type it as Integer by default, instead of the original index type. + +2012-05-15 Robert Dewar <dewar@adacore.com> + + * s-osprim-mingw.adb: Minor reformatting. + +2012-05-15 Arnaud Charlet <charlet@adacore.com> + + * a-except.adb, a-except.ads (Reraise_Library_Exception_If_Any): New. + Mark this unit preelaborate. + * s-soflin.ads: Make package Preelaborate. + +2012-05-15 Robert Dewar <dewar@adacore.com> + + * s-osprim-mingw.adb, sem_eval.adb, a-calend-vms.ads: Minor reformatting + +2012-05-15 Ed Schonberg <schonberg@adacore.com> + + * sem_eval.adb (Subtypes_Statically_Match): In Ada 2012, static + matching requires matching of static subtype predicates as well. + +2012-05-15 Ed Schonberg <schonberg@adacore.com> + + * sem_case.adb (Analyze_Choices): If the subtype of the + expression has a non-static predicate, the case alternatives + must cover the base type. + +2012-05-15 Tristan Gingold <gingold@adacore.com> + + * a-calend-vms.ads: Add pragma export to Split and Time_Of. + Merge comments from a-calend.ads to minimize differences. + +2012-05-15 Sergey Rybin <rybin@adacore.com frybin> + + * gnat_ugn.texi: gnatmetric: add a small example that demonstrates + the difference between control coupling and unit coupling. + +2012-05-15 Tristan Gingold <gingold@adacore.com> + + * bindgen.adb (Gen_Header): Remove code to emit LE_Set. + (Gen_Finalize_Library): Replace test with + a call to __gnat_reraise_library_exception_if_any. + * s-soflin.ads (Library_Exception): Do not export. + (Library_Exception_Set): Likewise. + * a-except-2005.ads, a-except-2005.adb + (Reraise_Library_Exception_If_Any): New procedure. + +2012-05-15 Geert Bosch <bosch@adacore.com> + + * sem_ch9.adb (Allows_Lock_Free_Implementation): out or in out + parameters can be access types as well, not just scalar types, + so relax the test to Is_Elementary_Type. + +2012-05-15 Bob Duff <duff@adacore.com> + + * s-atacco.ads s-atacco.adb: Replace pragma Elaborate_Body + with pragma No_Body. + (Xyz): Remove Xyz, which is apparently unnecessary. + +2012-05-15 Tristan Gingold <gingold@adacore.com> + + * a-calend-vms.adb: Complete previous change. + +2012-05-15 Bob Duff <duff@adacore.com> + + * s-win32.ads: Minor comment fix. + * s-osprim-mingw.adb: Minor editing. + +2012-05-15 Robert Dewar <dewar@adacore.com> + + * exp_ch9.adb, sem_ch9.adb, sem_ch13.adb: Minor reformatting. + +2012-05-15 Robert Dewar <dewar@adacore.com> + + * g-comlin.adb, g-comlin.ads: Minor reformatting. + +2012-05-15 Vincent Pucci <pucci@adacore.com> + + * aspects.adb, aspects.adb: Reordering of the Aspect_Idi list. New + aspect Aspect_Lock_Free. + * einfo.adb, einfo.ads: New flag Uses_Lock_Free (flag 188). + (Set_Uses_Lock_Free): New routine. + (Uses_Lock_Free): New routine. + * exp_ch7.adb (Is_Simple_Protected_Type): Return False for + lock-free implementation. + * exp_ch9.adb (Allows_Lock_Free_Implementation): Moved to Sem_Ch9. + (Build_Lock_Free_Unprotected_Subprogram_Body): Protected + procedure uses __sync_synchronise. Check both Object_Size + and Value_Size. + (Expand_N_Protected_Body): Lock_Free_Active + renames Lock_Free_On. + (Expand_N_Protected_Type_Declaration): + _Object field removed for lock-free implementation. + (Install_Private_Data_Declarations): Protection object removed + for lock-free implementation. + (Make_Initialize_Protection): + Protection object initialization removed for lock-free implementation. + * rtsfind.ads: RE_Atomic_Synchronize and RE_Relaxed added. + * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect_Lock_Free + analysis added. + * sem_ch9.adb (Allows_Lock_Free_Implementation): New routine. + (Analyze_Protected_Body): Allows_Lock_Free_Implementation call added. + (Analyze_Protected_Type_Declaration): + Allows_Lock_Free_Implementation call added. + (Analyze_Single_Protected_Declaration): Second analysis of + aspects removed. + * s-atopri.ads: Header added. + (Atomic_Synchronize): New routine. + +2012-05-15 Robert Dewar <dewar@adacore.com> + + * exp_ch7.ads: Add comment. + +2012-05-15 Hristian Kirtchev <kirtchev@adacore.com> + + * a-calend.adb (Day_Of_Week): The routine once again treats + all dates as historic. (Formatting_Operations.Split): All + calls to UTC_Time_Offset are now controlled through formal + parameter Is_Historic. (Formatting_Operations.Time_Of): + All calls to UTC_Time_Offset are now handled through + formal parameter Is_Historic. + (Split): Update the call to Formatting_Operations.Split. + (Time_Of): Update the call to Formatting_Operations.Time_Of. + (To_Ada_Time): Update the call to Formatting_Operations.Time_Of. + (To_Strict_Tm): Update the call to Formatting_Operations.Split. + * a-calend.ads (Split): Add new formal Is_Historic along with + comment on usage. This routine is now exported for the purposes + of GNAT.Calendar.Locale. + (Time_Of): Remove defaults. Add new + formal Is_Historic along with comment on usage. This routine is + now exported for the purposes of GNAT.Calendar.Locale. + * a-calend-vms.adb (Split): Update the call to + Formatting_Operations.Split. + (Time_Of): Update the call to Formatting_Operations.Time_Of. + * a-calend-vms.ads (Split): Add new formal Is_Historic along + with comment on usage. (Time_Of): Remove defaults. Add new + formal Is_Historic along with comment on usage. + * a-calfor.adb (Split): Update the call to + Formatting_Operations.Split. + (Time_Of): Update the call to Formatting_Operations.Time_Of. + +2012-05-15 Vincent Celier <celier@adacore.com> + + * prj-nmsc.adb (Add_Source): Always add the source if it is + excluded, to avoid incorrect duplicate checks. + +2012-05-15 Yannick Moy <moy@adacore.com> + + * sem_aux.ads: Correct typo. + * sem_eval.adb (Compile_Time_Known_Value): Return False in Alfa + mode for a deferred constant when outside of the scope of its + full view. + +2012-05-15 Emmanuel Briot <briot@adacore.com> + + * g-comlin.adb, g-comlin.ads (Define_Switch): Allow specifying the name + of the argument, for the automatic help message. + (Getopt): do not systematically initialize switches with string values + to the empty string, when the user has already specified a default. + +2012-05-14 Bernd Schmidt <bernds@codesourcery.com> + + * gcc-interface/utils.c (DEF_ATTR_STRING): New. + +2012-05-14 Manuel López-Ibáñez <manu@gcc.gnu.org> + + PR 53063 + * gcc-interface/misc.c: Include opts.h and options.h before tm.h. + (gnat_handle_option): Call lang-specific generated function. + +2012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org> + + * gcc-interface/lang.opt (I): Comment out help text with no effect. + (nostdinc): Comment out help text with no effect. + +2012-05-12 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Makefile.in (TOOLS_LIBS): Add ../../ggc-none.o. + +2012-05-11 Manuel López-Ibáñez <manu@gcc.gnu.org> + + PR 53063 + * gcc-interface/misc.c (gnat_parse_file): Move before ... + (gnat_handle_option): ... this. Use handle_generated_option. + +2012-05-10 Richard Guenther <rguenther@suse.de> + + * gcc-interface/cuintp.c (UI_From_gnu): Remove TYPE_IS_SIZETYPE use. + +2012-05-06 Tristan Gingold <gingold@adacore.com> + + * gcc-interface/trans.c (gigi): Decorate reraise_zcx_decl. + +2012-05-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: In the renaming + case, use the padded type if the renamed object has an unconstrained + type with default discriminant. + +2012-05-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Loop_Statement_to_gnu): Also handle invariant + conditions with only one bound. + (Raise_Error_to_gnu): Likewise. New function extracted from... + (gnat_to_gnu) <N_Raise_Constraint_Error>: ...here. Call above function + in regular mode only. + +2012-05-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/misc.c (gnat_post_options): Disable caret by default. + +2012-05-06 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/gigi.h (make_packable_type): Declare. + (make_type_from_size): Likewise. + (relate_alias_sets): Likewise. + (maybe_pad_type): Adjust. + (init_gnat_to_gnu): Delete. + (destroy_gnat_to_gnu): Likewise. + (init_dummy_type): Likewise. + (destroy_dummy_type): Likewise. + (init_gnat_utils): Declare. + (destroy_gnat_utils): Likewise. + (ceil_pow2): New inline function. + * gcc-interface/decl.c (gnat_to_gnu_entity): Use ceil_pow2. + <object>: Pass True for the final processing of alignment and size. + <E_Subprogram_Type>: Only create the TYPE_DECL for a padded return + type if necessary. + (round_up_to_align): Delete. + (ceil_alignment): Likewise. + (relate_alias_sets): Move to... + (make_aligning_type): Likewise. + (make_packable_type): Likewise. + (maybe_pad_type): Likewise. + (make_type_from_size): Likewise. + * gcc-interface/utils.c (MAX_BITS_PER_WORD): Delete. + (struct pad_type_hash): New type. + (pad_type_hash_table): New static variable. + (init_gnat_to_gnu): Merge into... + (init_dummy_type): Likewise. + (init_gnat_utils): ...this. New function. + (destroy_gnat_to_gnu): Merge into... + (destroy_dummy_type): Likewise. + (destroy_gnat_utils): ...this. New function. + (pad_type_hash_marked_p): New function. + (pad_type_hash_hash): Likewise. + (pad_type_hash_eq): Likewise. + (relate_alias_sets): ...here. + (make_aligning_type): Likewise. + (make_packable_type): Likewise. + (maybe_pad_type): Likewise. Change same_rm_size parameter into + set_rm_size; do not set TYPE_ADA_SIZE if it is false. Do not set + null as Ada size. Do not set TYPE_VOLATILE on the padded type. If it + is complete and has constant size, canonicalize it. Bail out earlier + if a warning need not be issued. + (make_type_from_size): Likewise. + <INTEGER_TYPE>: Bail out if size is too large + (gnat_types_compatible_p): Do not deal with padded types. + (convert): Compare main variants for padded types. + * gcc-interface/trans.c (gigi): Call {init|destroy}_gnat_utils. + (gnat_to_gnu): Do not convert at the end for a call to a function that + returns an unconstrained type with default discriminant. + (Attribute_to_gnu) <Attr_Size>: Simplify handling of padded objects. + * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Likewise. + Do not use the padded type if it is BLKmode and the inner type is + non-BLKmode. + +2012-05-02 Pascal Obry <obry@adacore.com> + + Revert + 2012-02-24 Dave Korn <dave.korn.cygwin@gmail.com> + + * gcc-interface/Makefile.in (WIN_SO_PREFIX [windows targets]): New + Windows-specific make variable. + (WIN_SO_INSTALL_DIR [windows targets]): Likewise. + (install-gnatlib): Respect the above during installation when set, + and also install any windows import library that has been built. + (gnatlib-shared-win32): Use WIN_SO_PREFIX to name output DLL and also + build a corresponding import library. + +2012-04-30 Jan Hubicka <jh@suse.cz> + + * gcc-interface/utils.c (rest_of_subprog_body_compilation): Update + comment. + (gnat_write_global_declarations): Use finalize_compilation_unit. + +2012-04-30 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity): In type annotation mode, + do not adjust the size of a tagged type if there is a representation + clause on it. Otherwise, round the adjustment up to the alignment + of the first field and use the appropriate helper routine. + (maybe_pad_type): Do not warn in type annotation mode on a tagged type. + (gnat_to_gnu_field): Do not error out under the same circumstances. + (annotate_rep): In type annotation mode, do not adjust the offset of + components of a tagged type with representation clause. Otherwise, + round the adjustment up to the alignment of the first field. + +2012-04-30 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils.c (finish_record_type): Force the traditional GCC + layout for bitfields on the type if it is packed or has a representation + clause and an alternate layout is available. + +2012-04-30 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/gigi.h (mark_out_of_scope): Delete. + (destroy_gnat_to_gnu): Declare. + (destroy_dummy_type): Likewise. + * gcc-interface/decl.c (mark_out_of_scope): Delete. + * gcc-interface/utils.c (destroy_gnat_to_gnu): New function. + (destroy_dummy_type): Likewise. + * gcc-interface/trans.c (gnat_validate_uc_list): New variable. + (gigi): Call validate_unchecked_conversion on gnat_validate_uc_list + after the translation is completed. Call destroy_gnat_to_gnu and + destroy_dummy_type at the end. + (Subprogram_Body_to_gnu): Do not call mark_out_of_scope. + (gnat_to_gnu) <N_Block_Statement>: Likewise. + <N_Validate_Unchecked_Conversion>: Do not process the node, only push + it onto gnat_validate_uc_list. + (validate_unchecked_conversion): New function. + +2012-04-26 Tristan Gingold <gingold@adacore.com> + + * gcc-interface/Make-lang.in: Update dependencies. + Remove s-traceb and tracebak objects from gnat1 and gnatbind (not used). + Remove s-tasdeb and s-vaflop rules (not used). + +2012-04-26 Olivier Hainque <hainque@adacore.com> + + * gcc-interface/targtyps.c (WIDEST_HARDWARE_FP_SIZE): Default to + DOUBLE_TYPE_SIZE instead of LONG_DOUBLE_TYPE_SIZE. + +2012-04-26 Hristian Kirtchev <kirtchev@adacore.com> + + * a-calend.adb (Day_Of_Week): Keep the internal + usage of UTC_Time_Offset consistent with Time_Of and Split. + +2012-04-26 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Do not freeze + the loop variable while preanalyzing a quantified expression. + +2012-04-26 Hristian Kirtchev <kirtchev@adacore.com> + + * a-calend.adb (Split, Time_Of): Rename parameter Is_Ada_05 + to Use_TZ to better illustrate its function. Update all + references to the parameter. + (To_Ada_Time): Update the call to Formatting_Operations.Time_Of. + * a-calend.ads (Split, Time_Of): Rename parameter Is_Ada_05 + to Use_TZ to better illustrate its function. Update the related + comment on usage. + * a-calend-vms.adb (Split, Time_Of): Rename parameter + Is_Ada_05 to Use_TZ to better illustrate its function. Update + all references to the parameter. + (To_Ada_Time): Update the call to Formatting_Operations.Time_Of. + * a-calend-vms.ads (Split, Time_Of): Rename parameter Is_Ada_05 + to Use_TZ to better illustrate its function. Update the related + comment on usage. + * a-calfor.adb (Split, Time_Of): Update the call to + Formatting_Operations.Time_Of. + * sysdep.c (__gnat_localtime_tzoff): Dereference pointer + "is_historic" and rewrite the check as a comparison. Add a + comment on flag values. + +2012-04-26 Robert Dewar <dewar@adacore.com> + + * exp_ch2.adb, sem_ch8.adb: Minor reformatting. + +2012-04-26 Vasiliy Fofanov <fofanov@adacore.com> + + * a-stzunb-shared.adb, gnat_ugn.texi, a-strunb-shared.adb, + a-strunb-shared.ads, uintp.adb, a-stwiun-shared.adb, + a-stwiun-shared.ads, a-cbhama.ads, vms_data.ads, a-cobove.adb, + a-convec.adb, sem_ch13.adb, a-cbhase.ads: Fix common misuses of the + word "then" where "than" should be used in English. + +2012-04-26 Robert Dewar <dewar@adacore.com> + + * sem_ch5.adb (Check_Unreachable_Code): Skip past pragmas. + +2012-04-26 Hristian Kirtchev <kirtchev@adacore.com> + + * s-finroo.ads: Remove with clause for + Ada.Streams. Type Root_Controlled is now abstract tagged null + record. Remove internal package Stream_Attributes. Root_Controlled + doesn't need stream attribute redeclaration and avoids the + dependency on streams. + +2012-04-26 Tristan Gingold <gingold@adacore.com> + + * adaint.c (to_host_path_spec): Removed (unused). + Minor reformatting. + +2012-04-26 Steve Baird <baird@adacore.com> + + * gnat_rm.texi Improve description of Valid_Scalars attribute. + +2012-04-26 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Can_Override_Operator): If the formal is a + generic type the operator cannot be overriding. + +2012-04-26 Ed Schonberg <schonberg@adacore.com> + + * sem_ch8.adb (Spec_Reloaded_For_Body): Check whether the type + is declared in a package specification, and current unit is the + corresponding package body. The use clauses themselves may be + within a nested package. + +2012-04-26 Bob Duff <duff@adacore.com> + + * exp_ch2.adb (Param_Entity): Take into account the case where + the type of the entry parameter has a representation clause. + +2012-04-26 Ed Schonberg <schonberg@adacore.com> + + * gnat_ugn.texi: Tweak dimensionality doc. + +2012-04-26 Robert Dewar <dewar@adacore.com> + + * sem_eval.adb: Minor reformatting. + +2012-04-26 Robert Dewar <dewar@adacore.com> + + * einfo.adb, einfo.ads, sem_res.adb, sem_ch4.adb, + sem_eval.adb: Minor reformatting. + +2012-04-26 Thomas Quinot <quinot@adacore.com> + + * freeze.adb: Minor change in error wording. + +2012-04-26 Ed Schonberg <schonberg@adacore.com> + + * gnat_ugn.texi: Documentation on dimensional analysis. + +2012-04-26 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb, einfo.ads: Remove synthesized attribute + Proper_First_Index along with its associations in various nodes. + (Proper_First_Index): Removed. + * sem_ch4.adb (Analyze_Slice): Alphabetize constants. Add new + local variable Index_Type. The index type of a string literal + subtype is that of the stored low bound. + * sem_eval (Get_Static_Length): Remove the use of Proper_First_Index. + * sem_res.adb (Resolve_Slice): Alphabetize constants. Add + new local variable Index_Type. The index type of a + string literal subtype is that of the stored low bound. + (Set_String_Literal_Subtype): Code reformatting. + +2012-04-26 Robert Dewar <dewar@adacore.com> + + * exp_aggr.adb: Minor reformatting. + +2012-04-26 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch7.adb (Expand_Cleanup_Actions): Update the call to + Requires_Cleanup_Actions. + * exp_util.adb (Requires_Cleanup_Actions (List_Id; Boolean; + Boolean)): Rename formal parameter For_Package to Lib_Level to + better reflect its purpose. Update the related comment and all + occurrences of For_Package in the body. + (Requires_Cleanup_Actions + (Node_Id; Boolean)): Add new formal parameter Lib_Level. Add + local constant At_Lib_Level to keep monitor whether the path + taken from the top-most context to the current construct involves + package constructs. Update all calls to Requires_Cleanup_Actions. + * exp_util.ads (Requires_Cleanup_Actions): Add new formal + parameter Lib_Level and associated comment. + +2012-04-26 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Process_Formals): If the type of the formal is + a non null access type, mark the generated subtype as having a + delayed freeze only if the designated type is not frozen yet. + +2012-04-26 Vincent Celier <celier@adacore.com> + + * prj-attr.adb: New package Clean with attributes + Object_Artifact_Extensions and Source_Artifact_Extensions. + * prj-nmsc.adb (Process_Clean): Process new package Clean + * prj.ads (Language_Config): New components + Clean_Object_Artifacts and Clean_Source_Artifacts. + * snames.ads-tmpl: New standard names Clean, + Object_Artifact_Extensions and Source_Artifact_Extensions. + +2012-04-26 Hristian Kirtchev <kirtchev@adacore.com> + + * einfo.adb (Proper_First_Index): Moved from Sem_Util. + * einfo.ads: Add new synthesized attribute Proper_First_Index + along with usage in nodes. + (Proper_First_Index): Moved from Sem_Util. + * sem_util.ads, sem_util.adb (Proper_First_Index): Moved to Einfo. + +2012-04-26 Gary Dismukes <dismukes@adacore.com> + + * layout.adb (Layout_Component_List): Test for the case of a + single variant and the size of its component list was computed + as an integer literal, and use that size (which is in bits) + as is rather than converting to storage units. + +2012-04-26 Robert Dewar <dewar@adacore.com> + + * exp_aggr.adb: Minor reformatting. + +2012-04-26 Robert Dewar <dewar@adacore.com> + + * sem_util.adb: Minor reformatting. + +2012-04-26 Thomas Quinot <quinot@adacore.com> + + * exp_aggr.adb, exp_pakd.adb (Setup_Inline_Packed_Array_Reference, + Packed_Array_Aggregate_Handled.Get_Component_Val): + Reverse bit numbering within PAT when Reverse_Storage_Order + applies to the enclosing record. + +2012-04-26 Thomas Quinot <quinot@adacore.com> + + * freeze.adb (Freeze_Record_Type): Improve error message for + Scalar_Storage_Order inconsistent with Bit_Order. + +2012-04-25 Gary Dismukes <dismukes@adacore.com> + + * exp_ch9.adb: Add comments on the usage of the + lock-free data structures. + +2012-04-25 Vincent Pucci <pucci@adacore.com> + + * exp_intr.adb (Expand_Shift): Convert the left + operand and the operator when the type of the call differs from + the type of the operator. + +2012-04-25 Geert Bosch <bosch@adacore.com> + + * stand.ads: Minor comment fix. + +2012-04-25 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch4.adb (Analyze_Slice): Handle the case where the prefix + is a string literal. Retrieve the first index from the base type + when slicing a string literal. + * sem_ch12.adb (Check_Private_View): Move the initialization + of the type inside the loop to reflect the changing index. + * sem_eval.adb (Eval_Relational_Op): Retrieve the first index + from the base type when dealing with a string literal. + * sem_res.adb (Resolve_Slice): Retrieve the first index from + the base type when slicing a string literal. + * sem_util.adb (Is_Internally_Generated_Renaming): New routine. + (Is_Object_Reference): String literals may act + as object references only when they are renamed internally. + (Proper_First_Index): New routine. + * sem_util.ads (Proper_First_Index): New routine. + +2012-04-25 Robert Dewar <dewar@adacore.com> + + * sem_ch3.adb, csinfo.adb, lib-writ.adb, sem_ch12.adb, + lib-xref.adb: Minor reformatting. + +2012-04-25 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch9.adb: Rename Lock_Free_Sub_Type + to Lock_Free_Subprogram. Remove type Subprogram_Id. + Rename LF_Sub_Table to Lock_Free_Subprogram_Table. + (Allow_Lock_Free_Implementation): Renamed to + Allows_Lock_Free_Implementation. Update the comment on + lock-free restrictions. Code clean up and restructuring. + (Build_Lock_Free_Protected_Subprogram_Body): Update the + profile and related comments. Code clean up and restructuring. + (Build_Lock_Free_Unprotected_Subprogram_Body): Update the + profile and related comments. Code clean up and restructuring. + (Comp_Of): Removed. + +2012-04-25 Vincent Celier <celier@adacore.com> + + * sem_ch12.adb (Inherit_Context): Compare library units, not + names of units, when checking if a unit is already in the context. + +2012-04-25 Thomas Quinot <quinot@adacore.com> + + * sem_ch3.adb: Reverse_Storage_Order must be propagated to + untagged derived record types. + +2012-04-25 Ed Schonberg <schonberg@adacore.com> + + * lib-xref.adb: Adjust position of end label. + +2012-04-22 Jan Hubicka <jh@suse.cz> + + * gcc-interface/utils.c (gnat_write_global_declarations): Do not mark + needed node. + +2012-04-20 Jan Hubicka <jh@suse.cz> + + * gcc-interface/utils.c (gnat_write_global_declarations): Update for new + force_output placement. + +2012-04-14 Jan Hubicka <jh@suse.cz> + + * gcc-interface/trans.c (finalize_nrv): Update field referenced for new + cgraph/varpool layout. + +2012-04-09 Mike Stump <mikestump@comcast.net> + + * a-assert.ads: Remove execute permission. + * a-chacon.ads: Likewise. + * a-coteio.ads: Likewise. + * a-envvar.ads: Likewise. + * a-exetim-mingw.ads: Likewise. + * a-fzteio.ads: Likewise. + * a-izteio.ads: Likewise. + * a-lcteio.ads: Likewise. + * a-llctio.ads: Likewise. + * a-scteio.ads: Likewise. + * a-suenco.ads: Likewise. + * a-suenst.ads: Likewise. + * a-suewst.ads: Likewise. + * a-suezst.ads: Likewise. + * a-tirsfi.ads: Likewise. + * a-wichha.ads: Likewise. + * a-zchara.ads: Likewise. + * a-zchhan.ads: Likewise. + * a-zchuni.ads: Likewise. + * a-zrstfi.ads: Likewise. + * aspects.ads: Likewise. + * g-byorma.ads: Likewise. + * g-decstr.ads: Likewise. + * g-encstr.ads: Likewise. + * g-spchge.ads: Likewise. + * g-u3spch.ads: Likewise. + * g-wispch.ads: Likewise. + * g-zspche.ads: Likewise. + * namet-sp.ads: Likewise. + * s-os_lib.ads: Likewise. + * s-regexp.ads: Likewise. + * s-regpat.ads: Likewise. + * s-string.ads: Likewise. + * s-tasloc.ads: Likewise. + * s-utf_32.ads: Likewise. + * sem_aux.ads: Likewise. + * a-assert.adb: Likewise. + * a-chacon.adb: Likewise. + * a-envvar.adb: Likewise. + * a-exetim-mingw.adb: Likewise. + * a-suenco.adb: Likewise. + * a-suenst.adb: Likewise. + * a-suewst.adb: Likewise. + * a-suezst.adb: Likewise. + * a-tirsfi.adb: Likewise. + * a-wichha.adb: Likewise. + * a-zchhan.adb: Likewise. + * a-zchuni.adb: Likewise. + * a-zrstfi.adb: Likewise. + * aspects.adb: Likewise. + * g-byorma.adb: Likewise. + * g-decstr.adb: Likewise. + * g-encstr.adb: Likewise. + * g-spchge.adb: Likewise. + * g-u3spch.adb: Likewise. + * g-wispch.adb: Likewise. + * g-zspche.adb: Likewise. + * namet-sp.adb: Likewise. + * s-except.adb: Likewise. + * s-inmaop-vxworks.adb: Likewise. + * s-os_lib.adb: Likewise. + * s-regexp.adb: Likewise. + * s-regpat.adb: Likewise. + * s-string.adb: Likewise. + * s-tasloc.adb: Likewise. + * s-utf_32.adb: Likewise. + * s-wchcon.adb: Likewise. + * sem_aux.adb: Likewise. + +2012-04-02 Robert Dewar <dewar@adacore.com> + + * s-atopri.ads: Minor reformatting. + +2012-04-02 Thomas Quinot <quinot@adacore.com> + + * sem_util.adb: Minor reformatting, minor code cleanup. + +2012-04-02 Ed Schonberg <schonberg@adacore.com> + + * lib-xref.adb (Generate_Reference): For a reference to an + operator symbol, set the sloc to point to the first character + of the operator name, and not to the initial quaote. + (Output_References): Ditto for the definition of an operator + symbol. + +2012-04-02 Vincent Celier <celier@adacore.com> + + * ali.adb (Scan_Ali): Recognize Z lines. Set + Implicit_With_From_Instantiation to True in the With_Record for + Z lines. + * ali.ads (With_Record): New Boolean component + Implicit_With_From_Instantiation, defaulted to False. + * csinfo.adb: Indicate that Implicit_With_From_Instantiation + is special + * lib-writ.adb (Write_ALI): New array Implicit_With. + (Collect_Withs): Set Implicit_With for the unit is it is not Yes. + (Write_With_Lines): Write a Z line instead of a W line if + Implicit_With is Yes for the unit. + * sem_ch12.adb (Inherit_Context): Only add a unit in the context + if it is not there yet. + * sinfo.ads: New flag Implicit_With_From_Instantiation (Flag12) + added. + +2012-04-02 Yannick Moy <moy@adacore.com> + + * osint.adb, osint.ads (Add_Default_Search_Dirs): Add library + search dirs in file specified with option -gnateO. + +2012-04-02 Robert Dewar <dewar@adacore.com> + + * sem_ch5.adb, exp_util.adb, sem_util.adb, exp_ch4.adb: Minor + reformatting. + +2012-04-02 Olivier Hainque <hainque@adacore.com> + + * g-sse.ads: Add x86-solaris and x86_64-darwin to the set of + platforms where the use of this spec is supported. Add current + year to the copyright notice. + * gcc-interfaces/Makefile.in: Add g-sse.o and g-ssvety.o to + EXTRA_GNATRTL_NONTASKING_OBJS on x86 32/64 targets that support + it and where they were missing (x86-solaris, x86-freebsd, + x86_64-freebsd, and x86-darwin). + +2012-04-02 Gary Dismukes <dismukes@adacore.com> + + * bindgen.adb (Gen_Ada_Init): When compiling for the AAMP small + library, where we no longer suppress the Standard_Library, + generate an empty body rather than the usual generation of + assignments to imported globals, since those aren't present in + the small library. + +2012-04-02 Ed Schonberg <schonberg@adacore.com> + + * sinfo.ads: Minor documentation fix. + +2012-04-02 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_res.adb (Resolve_Conditional_Expression): Add local variables + Else_Typ and Then_Typ. Add missing type conversions to the "then" and + "else" expressions when their respective types are scalar. + +2012-04-02 Vincent Pucci <pucci@adacore.com> + + * exp_ch9.adb: Reordering of the local subprograms. New Table + for the lock free implementation that maps each protected + subprograms with the protected component it references. + (Allow_Lock_Free_Implementation): New routine. Check if + the protected body enables the lock free implementation. + (Build_Lock_Free_Protected_Subprogram_Body): New routine. + (Build_Lock_Free_Unprotected_Subprogram_Body): New routine. + (Comp_Of): New routine. + * Makefile.rtl: Add s-atopri.o + * debug.adb: New compiler debug flag -gnatd9 for lock free + implementation. + * rtsfind.ads: RE_Atomic_Compare_Exchange_8, + RE_Atomic_Compare_Exchange_16, RE_Atomic_Compare_Exchange_32, + RE_Atomic_Compare_Exchange_64, RE_Atomic_Load_8, + RE_Atomic_Load_16, RE_Atomic_Load_32, RE_Atomic_Load_64, RE_Uint8, + RE_Uint16, RE_Uint32, RE_Uint64 added. + * s-atropi.ads: New file. Defines atomic primitives used + by the lock free implementation. + +2012-04-02 Emmanuel Briot <briot@adacore.com> + + * g-expect.adb (Expect_Internal): Fix leak of the input file descriptor. + +2012-04-02 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch4.adb (Expand_N_Quantified_Expression): Reimplemented. + The expansion no longer uses the copy of the original QE created + during analysis. + * sem.adb (Analyze): Add processing for loop parameter specifications. + * sem_ch4.adb (Analyze_Quantified_Expression): Reimplemented. The + routine no longer creates a copy of the original QE. All + constituents of a QE are now preanalyzed and resolved. + * sem_ch5.adb (Analyze_Iteration_Scheme): Remove the guard which + bypasses all processing when the iteration scheme is related to a + QE. Relovate the code which analyzes loop parameter specifications + to a separate routine. (Analyze_Iterator_Specification): + Preanalyze the iterator name. This action was originally + done in Analyze_Iteration_Scheme. Update the check which + detects an iterator specification in the context of a QE. + (Analyze_Loop_Parameter_Specification): New routine. This + procedure allows for a stand-alone analysis of a loop parameter + specification without the need of a parent iteration scheme. Add + code to update the type of the loop variable when the range + generates an itype and the context is a QE. + (Pre_Analyze_Range): Renamed to Preanalyze_Range. Update all references + to the routine. + * sem_ch5.ads: Code reformatting. + (Analyze_Loop_Parameter_Specification): New routine. + * sem_ch6.adb (Fully_Conformant_Expressions): Detect a case + when establishing conformance between two QEs utilizing different + specifications. + * sem_res.adb (Proper_Current_Scope): New routine. + (Resolve): Do not resolve a QE as there is nothing to be done now. + Ignore any loop scopes generated for QEs when detecting an expression + function as the scopes are cosmetic and do not appear in the tree. + (Resolve_Quantified_Expression): Removed. All resolution of + QE constituents is now performed during analysis. This ensures + that loop variables appearing in array aggregates are properly + resolved. + +2012-04-02 Ed Schonberg <schonberg@adacore.com> + + * sem_util.adb (Build_Default_Subtype): If the base type is + private and its full view is available, use the full view in + the subtype declaration. + +2012-04-02 Jose Ruiz <ruiz@adacore.com> + + * gnat_ugn.texi: Add some minimal documentation about how to + use GNATtest for cross platforms. + +2012-04-02 Vincent Celier <celier@adacore.com> + + * opt.ads (Object_Path_File_Name): New variable. + * prj-attr.adb: New Compiler attribute Object_Path_Switches. + * prj-nmsc.adb (Process_Compiler): Recognize new attribute + Object_Path_Switches. + * snames.ads-tmpl: New standard name Object_Path_Switches. + * switch-c.adb (Scan_Front_End_Switches): Recognize new switch + -gnateO= and put its value in Opt.Object_Path_File_Name. + +2012-04-02 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch7.adb (Process_Declarations): Detect a case where + a source object was initialized by another source object, + but the expression was rewritten as a class-wide conversion + of Ada.Tags.Displace. + * exp_util.adb (Initialized_By_Ctrl_Function): Removed. + (Is_Controlled_Function_Call): New routine. + (Is_Displacement_Of_Ctrl_Function_Result): Removed. + (Is_Displacement_Of_Object_Or_Function_Result): New routine. + (Is_Source_Object): New routine. + (Requires_Cleanup_Actions): Detect a case where a source object was + initialized by another source object, but the expression was rewritten + as a class-wide conversion of Ada.Tags.Displace. + * exp_util.ads (Is_Displacement_Of_Ctrl_Function_Result): Removed. + (Is_Displacement_Of_Object_Or_Function_Result): New routine. + +2012-04-02 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb (Resolve_Call): A call to an expression function + does not freeze if it appears in a different scope from the + expression function itself. Such calls appear in the generated + bodies of other expression functions, or in pre/postconditions + of subsequent subprograms. + +2012-04-02 Yannick Moy <moy@adacore.com> + + * lib-xref-alfa.adb: Code clean up. + +2012-04-02 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Analyze_Subprogram_Instantiation): Do not suppress + style checks, because the subprogram instance itself may contain + violations of syle rules. + * style.adb (Missing_Overriding): Check for missing overriding + indicator on a subprogram instance. + +2012-04-02 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch6.adb (Last_Implicit_Declaration): New routine. + (Process_PPCs): Insert the body of _postconditions after the + last internally generated declaration. This ensures that actual + subtypes created for formal parameters are visible and properly + frozen as _postconditions may reference them. + +2012-04-02 Robert Dewar <dewar@adacore.com> + + * einfo.adb (First_Component_Or_Discriminant) Now applies to + all types with discriminants, not just records. + * exp_attr.adb (Expand_N_Attribute): Add Scalar_Values handling + for arrays, scalars and non-variant records. + * sem_attr.adb (Analyze_Attribute): Handle Valid_Scalars + * sem_attr.ads (Valid_Scalars): Update description + * sem_util.ads, sem_util.adb (No_Scalar_Parts): New function. + +2012-03-31 Eric Botcazou <ebotcazou@adacore.com> + + Revert + 2012-03-25 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (SS_MARK_NAME): New define. + (gnat_to_gnu_entity) <E_Function>: Prepend leaf attribute on entities + whose name is SS_MARK_NAME. + +2012-03-30 Robert Dewar <dewar@adacore.com> + + * exp_ch5.adb, sem_util.adb, exp_ch4.adb: Minor comment updates. + +2012-03-30 Yannick Moy <moy@adacore.com> + + * lib-xref-alfa.adb (Add_Alfa_File): Treat possibly 2 units at the same + time, putting all scopes in the same Alfa file. + (Add_Alfa_Xrefs): Correct errors in comparison function. Correct value + of Def component. + (Collect_Alfa): Possibly pass 2 units to Add_Alfa_File. + +2012-03-30 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_util.adb (Is_Secondary_Stack_BIP_Func_Call): Handle a case where + a build-in-place call appears as Prefix'Reference'Reference. + +2012-03-30 Yannick Moy <moy@adacore.com> + + * lib-xref-alfa.adb: Minor refactoring to remove internal package. + +2012-03-30 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch5.adb (Analyze_Iteration_Scheme): Preanalyze the subtype + definition of a loop when the context is a quantified expression. + +2012-03-30 Vincent Celier <celier@adacore.com> + + * prj.ads: Minor comment update. + +2012-03-30 Yannick Moy <moy@adacore.com> + + * lib-xref-alfa.adb, alloc.ads, lib-xref.ads: Minor addition of + comments and refactoring. + +2012-03-30 Robert Dewar <dewar@adacore.com> + + * lib-xref.adb, lib-xref-alfa.adb: Minor reformatting & code + reorganization. + +2012-03-30 Yannick Moy <moy@adacore.com> + + * lib-xref-alfa.adb (Generate_Dereference): Use Get_Code_Unit + instead of Get_Source_Unit to get file for reference. + (Traverse_Compilation_Unit): Do not add scopes for generic units. + * lib-xref.adb (Generate_Reference): Use Get_Code_Unit instead + of Get_Source_Unit to get file for reference. + * sem_ch12.adb (Analyze_Package_Instantiation): Enable + instantiation in Alfa mode. + +2012-03-30 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch7.adb (Process_Declarations): Replace + the call to Is_Null_Access_BIP_Func_Call with + Is_Secondary_Stack_BIP_Func_Call. Update the related comment. + * exp_util.adb (Is_Null_Access_BIP_Func_Call): Removed. + (Is_Secondary_Stack_BIP_Func_Call): New routine. + (Requires_Cleanup_Actions): Replace + the call to Is_Null_Access_BIP_Func_Call with + Is_Secondary_Stack_BIP_Func_Call. Update the related comment. + * exp_util.ads (Is_Null_Access_BIP_Func_Call): Removed. + (Is_Secondary_Stack_BIP_Func_Call): New routine. + +2012-03-30 Yannick Moy <moy@adacore.com> + + * lib-xref-alfa.adb, lib-xref.adb: Code clean ups. + +2012-03-30 Gary Dismukes <dismukes@adacore.com> + + * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): For the case of a + loop entity which is rewritten as a renaming + of the indexed array, explicitly mark the entity as needing + debug info so that Materialize entity will be set later by + Debug_Renaming_Declaration when the renaming is expanded. + +2012-03-30 Robert Dewar <dewar@adacore.com> + + * sem_attr.ads: Update comment. + +2012-03-30 Vincent Celier <celier@adacore.com> + + * prj.ads: New Dependency_Kind: ALI_Closure. + +2012-03-30 Thomas Quinot <quinot@adacore.com> + + * exp_pakd.adb: Minor reformatting. + +2012-03-30 Yannick Moy <moy@adacore.com> + + * lib-xref-alfa.adb (Add_Alfa_File): Take into account possible absence + of compilation unit for unit in Sdep_Table. + +2012-03-30 Thomas Quinot <quinot@adacore.com> + + * freeze.adb (Freeze_Record_Type): For a type with reversed bit + order and reversed storage order, disable front-end relayout. + +2012-03-25 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Copy + the TYPE_PACKED flag from the base type. + +2012-03-25 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (SS_MARK_NAME): New define. + (gnat_to_gnu_entity) <E_Function>: Prepend leaf attribute on entities + whose name is SS_MARK_NAME. + +2012-03-25 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils.c (add_parallel_type): Take a TYPE instead of a + DECL and adjust. Move around. + (has_parallel_type): New predicate. + (rest_of_record_type_compilation): Return early if the type already + has a parallel type. + * gcc-interface/gigi.h (add_parallel_type): Adjust. + * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust for above changes. + +2012-03-25 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils.c (finish_record_type): Return early for padded + types and tidy up. + +2012-03-20 Arnaud Charlet <charlet@adacore.com> + + * hlo.ads, hlo.adb: Removed, no longer used. + * gcc-interface/Make-lang.in: Remove hlo.o. Update dependencies. + * gcc-interface/Makefile.in: Remove EXTRA_LIBGNAT_SRCS (temporarly) + and compute it from EXTRA_LIBGNAT_OBJS. + Clean up comments, reorder LIBGNAT_SRCS and LIBGNAT_OBJS. + +2012-03-20 Yannick Moy <moy@adacore.com> + + * gnat_rm.texi, sem_attr.ads: Update documentation. + +2012-03-19 Yannick Moy <moy@adacore.com> + + * sem_ch6.adb: Minor code clean up. + +2012-03-19 Vincent Celier <celier@adacore.com> + + * make.adb (Scan_Make_Arg): Make sure all significant -m switches + on the command line are counted. + +2012-03-19 Robert Dewar <dewar@adacore.com> + + * sem_elab.adb (Generate_Elab_Warnings): Fix spec, fix attribute + reference case + +2012-03-19 Robert Dewar <dewar@adacore.com> + + * par-ch4.adb (Check_Bad_Exp): New procedure + +2012-03-19 Robert Dewar <dewar@adacore.com> + + * exp_attr.adb, sem_attr.adb, sem_attr.ads, snames.ads-tmpl: Add + initial framework for Valid_Scalars attribute. + +2012-03-19 Robert Dewar <dewar@adacore.com> + + * scng.adb (Scan): Recognize incorrect preprocessor directive + +2012-03-19 Robert Dewar <dewar@adacore.com> + + * atree.adb (Allocate_Initialize_Node): Use Num_Extension_Nodes + * atree.ads (Num_Extension_Nodes): New variable + * debug.adb: New debug flag -gnatd.N + * gnat1drv.adb (Adjust_Global_Switches): Adjust + Num_Extension_Nodes if -gnatd.N set + +2012-03-19 Eric Botcazou <ebotcazou@adacore.com> + + * einfo.ads: Minor update to First_Rep_Item and Has_Gigi_Rep_Item + descriptions. + +2012-03-19 Robert Dewar <dewar@adacore.com> + + * opt.ads: Remove HLO_Active flag. + * sem.adb: Remove call of high level optimizer. + * sem.ads (New_Nodes_OK): Removed. + * sem_ch10.adb: Remove references to New_Nodes_OK. + * switch-c.adb: Remove handling of -gnatH switch. + +2012-03-19 Yannick Moy <moy@adacore.com> + + * sem_ch6.adb (Check_Subprogram_Contract): Do not emit warnings + on trivially True or False postconditions and Ensures components + of contract-cases. + +2012-03-19 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Fix index entry for -gnatei (now we have + ug_words entry). + +2012-03-19 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch3.adb (Get_Discriminant_Value): Instead of looking + at the immediate correcponsing discriminant, traverse a + potential chain of discriminants produced by type derivations. + (Root_Corresponding_Discriminant): Traverse a chain of inherited + discriminants and return the topmost discriminant. + +2012-03-19 Bob Duff <duff@adacore.com> + + * debug.adb: Minor comment change. + * gnat_ugn.texi: Update documentation for elaboration regarding + indirect calls. + +2012-03-19 Gary Dismukes <dismukes@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): In + the case of an object of a class-wide interface type, where the + declaration is rewritten as a renaming, call Set_Debug_Info_Needed + on the renaming entity so that Materialize_Entity will be + set. Also, change existing call (for other than interface cases) + to call Set_Debug_Info_Needed rather than Set_Needs_Debug_Info + (as specified for that flag). + +2012-03-19 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch4.adb (Analyze_Allocator): Detect an allocator generated + by the build-in-place machinery where the designated type is + indefinite, but the underlying type is not. Do not emit errors + related to missing initialization in this case. + +2012-03-19 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Add documentation for -gnateinnn switch. + * sem_elab.adb, put_alfa.adb, lib-xref-alfa.adb: Minor reformatting. + * sem_prag.adb: Minor comment update. + +2012-03-15 Robert Dewar <dewar@adacore.com> + + * errout.ads: Add entry for translating -gnateinn to + /MAX_INSTANTIATIONS for VMS. + * hostparm.ads (Max_Instantiations): Moved to Opt. + * opt.ads (Maximum_Instantiations): Moved from Hostparm, and renamed. + * sem_ch12.adb (Maximum_Instantiations): New name of + Max_Instantiations (Analyze_Package_Instantiation): Change error + msg for too many instantiations (mention -gnateinn switch). + * switch-c.adb (Scan_Front_End_Switches): Implement -gnateinn switch. + * switch.ads: Minor comment update. + * usage.adb (Usage): Output line for -maxeinn switch. + * vms_data.ads: Add entry for MAX_INSTANTIATIONS (-gnateinn). + +2012-03-15 Yannick Moy <moy@adacore.com> + + * alfa.ads Update the decription of ALI sections. + (Alfa_File_Record): Add a component Unit_File_Name to store the + unit file name for subunits. + * get_alfa.adb, put_alfa.adb Adapt to the possible presence of + a unit file name. + * lib-xref-alfa.adb (Add_Alfa_File): For subunits, retrieve the + file name of the unit. + +2012-03-15 Yannick Moy <moy@adacore.com> + + * sem_ch6.adb (Check_Subprogram_Contract): Do + not issue warning on missing 'Result in postcondition if all + postconditions and contract-cases already get a warning for only + referring to pre-state. + +2012-03-15 Bob Duff <duff@adacore.com> + + * debug.adb: Add new debug switch -gnatd.U, which disables the + support added below, in case someone trips over a cycle, and needs + to disable this. + * sem_attr.adb (Analyze_Access_Attribute): + Treat Subp'Access as a call for elaboration purposes. + * sem_elab.ads, sem_elab.adb (Check_Elab_Call): Add support + for Subp'Access. + +2012-03-15 Vincent Pucci <pucci@adacore.com> + + * sem.ads, sem.adb (Preanalyze): New routine. + * sem_ch4.adb (Analyze_Quantified_Expression): Call to the + Preanalyze routine in Sem added. Renaming of Needs_Expansion + into Need_Preanalysis. + * sem_ch6.adb (Preanalyze): Removed. + +2012-03-15 Robert Dewar <dewar@adacore.com> + + * sem_ch4.adb (Analyze_Quantified_Expression): Add comment. + * sem_prag.adb: Minor comment additions. + * sem_attr.adb (Check_First_Last_Valid): Make sure prefix type + is frozen. + +2012-03-15 Vincent Pucci <pucci@adacore.com> + + * sem_ch4.adb (Analyze_Quantified_Expression): + Preanalyze the condition when the quantified expression will be + further expanded. + +2012-03-15 Yannick Moy <moy@adacore.com> + + * sem_prag.adb, sem_util.adb, sem_util.ads, sem_attr.adb, sem_ch6.adb, + sem_warn.adb: Minor refactoring, renaming Case_Pragma in CTC_Pragma, + to refer to both Test_Case pragma and Contract_Case pragma (same + acronym as in Spec_CTC_List). + +2012-03-15 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb, sem_prag.ads, sem_util.ads, sem_attr.adb, sem_ch6.adb, + sem_warn.adb: Minor reformatting. + +2012-03-15 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_util.adb (Initialized_By_Ctrl_Function): Do not loop over + selector names as the function call always appears at the top selected + component. + +2012-03-15 Ed Schonberg <schonberg@adacore.com> + + * sem_ch12.adb (Validate_Access_Subprogram_Instance): keep + Mode_Conformance check for older versions of the language. + +2012-03-15 Yannick Moy <moy@adacore.com> + + * gnat_ugn.texi Document the extension of option -gnatw.t. + * sem_ch3.adb (Analyze_Declaration): Check for suspicious + contracts only after contract cases have been semantically + analyzed. + * sem_ch6.adb (Check_Subprogram_Contract): Consider also Ensures + components of contract cases for detecting suspicious contracts. + +2012-03-15 Yannick Moy <moy@adacore.com> + + * aspects.adb, aspects.ads (Aspect_Id): New GNAT aspect + Aspect_Contract_Case. + * gnat_rm.texi Document the new pragma/aspect + Contract_Case. Correct the documentation of the existing + pragma/aspect Test_Case with the new semantics. + * sem_attr.adb (Analyze_Attribute): Allow use of 'Result in the + Ensures component of a Contract_Case pragma. + * sem_ch13.adb (Analyze_Aspect_Specifications): Check new aspect + and translate it into a pragma. + (Check_Aspect_At_Freeze_Point): Take into account the new aspect. + * sem_ch3.adb, sinfo.adb, sinfo.ads Renaming of TC (for test case) + into CTC (for contract and test case). + * sem_ch6.adb (Process_PPCs): Generate Check pragmas from + Contract_Case pragmas, similarly to what is done already for + postconditions. + * sem_prag.adb, sem_prag.ads (Check_Contract_Or_Test_Case): + Renaming of Check_Test_Case. + (Analyze_Pragma, Sig_Flags): Take into account the new pragma. + * sem_util.adb, sem_util.ads Renaming to take into account the + new pragma, so that functions which applied only to Test_Case + now apply to both Test_Case and Contract_Case. + * par-prag.adb, sem_warn.adb, snames.ads-tmpl Take into account + the new pragma. + +2012-03-15 Robert Dewar <dewar@adacore.com> + + * sem_ch6.ads: Minor comment updates. + * sem_ch12.adb: Minor comment clarification. + +2012-03-15 Robert Dewar <dewar@adacore.com> + + * sem_ch5.adb: Minor reformatting. + +2012-03-15 Ed Schonberg <schonberg@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): When rewriting the + declaration of a class-wide object, retain the Ekind to prevent + subsequent misuse of constants. + +2012-03-15 Yannick Moy <moy@adacore.com> + + * gnat_rm.texi, gnat_ugn.texi: Minor correction of invariant + terminology. + +2012-03-15 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_util.adb (Initialized_By_Ctrl_Function): Add code to + process the case when a function call appears in object.operation + format. + +2012-03-15 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.ads, sem_ch6.adb (Check_Subtype_Conformant): add + Get_Inst formal, so that conformance within an instantiation + follows renamings of formals. This is similar to what is already + done in Check_Mode_conformant. + * sem_ch12.adb (Vailidate_Access_Subprogram_Instance): check that + formal and actual are subtype conformant. Previously only mode + conformance was required. + +2012-03-15 Robert Dewar <dewar@adacore.com> + + * par-ch6.adb, einfo.ads, sem_eval.adb, sem_eval.ads, + sem_case.adb: Minor reformatting. + +2012-03-15 Robert Dewar <dewar@adacore.com> + + * exp_attr.adb (Expand_N_Attribute_Reference): Add handling + of First_Valid/Last_Valid. + * sem_attr.adb (Check_First_Last_Valid): New procedure + (Analyze_Attribute): Add handling of First_Valid and Last_Valid + (Eval_Attribute): ditto. + * snames.ads-tmpl: Add entries for First_Valid and Last_Valid. + +2012-03-15 Ed Schonberg <schonberg@adacore.com> + + * exp_ch5.adb (Expand_Predicated_Loop): Suppress warnings on + loop variable, for the unusual case where the range has a single + element and the loop variable has no visible assignment to it. + +2012-03-15 Vincent Pucci <pucci@adacore.com> + + * exp_ch4.adb (Expand_N_Quantified_Expression): Expand the + original quantified expression node. + * sem_ch4.adb (Analyze_Quantified_Expression): Properly analyze + the quantified expression and preserve the original non-analyzed + quantified expression when an expansion is needed. + * sem_ch5.adb (Analyze_Iteration_Scheme): Special treatment + for quantified expressions. + (Analyze_Iterator_Specification): Special treatment for quantified + expressions. + +2012-03-15 Ed Falis <falis@adacore.com> + + * s-vxwork-ppc.ads: Update FP_CONTEXT so name of former pad + field matches VxWorks headers. + +2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * gcc-interface/Makefile.in (mips-sgi-irix6*): Remove. + + * a-intnam-irix.ads, mlib-tgt-specific-irix.adb, + s-intman-irix.adb, s-mastop-irix.adb, s-osinte-irix.adb, + s-osinte-irix.ads, s-proinf-irix-athread.adb, + s-proinf-irix-athread.ads, s-taprop-irix.adb, s-tasinf-irix.ads, + system-irix-n32.ads, system-irix-n64.ads, system-irix-o32.ads: + Remove. + + * adaint.c [__mips && __sgi]: Remove. + (__gnat_number_of_cpus) [__mips && __sgi]: Remove. + [IS_CROSS && !(__mips && __sgi)]: Remove. + * adaint.h [sgi && _LFAPI]: Remove. + * cstreams.c (__gnat_full_name) [sgi]: Remove. + * env.c (__gnat_unsetenv) [__mips && __sgi]: Remove. + (__gnat_clearenv) [__mips && __sgi]: Remove. + * errno.c (_SGI_MP_SOURCE): Remove. + * gsocket.h [sgi]: Remove. + * init.c: Remove IRIX reference. + [sgi]: Remove. + * link.c [sgi]: Remove. + * s-oscons-tmplt.c [__mips && __sgi] (IOV_MAX): Don't define. + (main) [__mips && __sgi] (MAX_tv_sec): Don't define. + (CLOCK_SGI_FAST, CLOCK_SGI_CYCLE): Remove. + * sysdep.c [sgi]: Remove. + (getc_immediate_common) [sgi]: Remove. + (__gnat_localtime_tzoff) [sgi]: Remove. + * terminals.c [__mips && __sgi] (IRIX): Don't define. + [IRIX] (USE_GETPTY): Don't define. + (allocate_pty_desc) [USE_GETPTY]: Remove. + + * g-traceb.ads: Remove IRIX reference. + * g-trasym.ads: Likewise. + * memtrack.adb: Likewise. + * s-interr-sigaction.adb: Likewise. + + * gnat_rm.texi (Implementation Advice): Remove SGI info. + (Implementation Defined Characteristics): Likewise. + * gnat_ugn.texi (Summary of Run-Time Configurations, mips-irix): + Remove. + (Irix-Specific Considerations): Remove. + +2012-03-13 Tristan Gingold <gingold@adacore.com> + + * gcc-interface/gigi.h (flag_vms_malloc64): Refine condition. + +2012-03-13 Tristan Gingold <gingold@adacore.com> + + * sysdep.c: Adjust condition after removal of __osf__. + +2012-03-12 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/gigi.h (shift_unc_components_for_thin_pointers): Kill. + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Remove call + to above function. + * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Pool_Address>: Adjust + handling of thin pointers. + <Attr_Descriptor_Size>: Likewise. + (gnat_to_gnu) <N_Free_Statement>: Likewise. + * gcc-interface/utils.c (shift_unc_components_for_thin_pointers): Kill. + (convert_to_fat_pointer): Adjust handling of thin pointers. + (convert) <POINTER_TYPE>: Likewise. + * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Likewise. + +2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * gcc-interface/Makefile.in (alpha*-dec-osf*): Remove. + * a-intnam-tru64.ads, mlib-tgt-specific-tru64.adb, + s-mastop-tru64.adb, s-osinte-tru64.adb, s-osinte-tru64.ads, + s-taprop-tru64.adb, s-tasinf-tru64.ads, s-taspri-tru64.ads, + system-tru64.ads: Remove. + + * adaint.c (__gnat_number_of_cpus) [__alpha__ && __osf__]: + Remove. + [IS_CROSS] [!(__alpha__ && __osf__)]: Remove. + * env.c [__alpha__ && __osf__]: Remove. + * gsocket.h (_OSF_SOURCE): Remove. + (HAVE_THREAD_SAFE_GETxxxBYyyy) [__osf__]: Remove. + * init.c [__alpha__ && __osf__]: Remove. + * link.c [__osf__]: Remove. + * s-oscons-tmplt.c [__alpha__ && __osf__]: Remove. + [__osf__ && !_SS_MAXSIZE]: Remove. + * sysdep.c [__osf__]: Remove. + * terminals.c [__alpha__ && __osf__]: Remove. + [OSF1]: Remove. + + * g-traceb.ads: Remove Tru64 reference. + * g-trasym.ads: Likewise. + * gnat_ugn.texi (Linking a Mixed C++ & Ada Program): Likewise. + (Summary of Run-Time Configurations): Likewise. + * memtrack.adb: Likewise. + +2012-03-12 Tristan Gingold <gingold@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_param): Use flag_vms_malloc64 + instead of TARGET_MALLOC64. + * gcc-interface/gigi.h (flag_vms_malloc64): Define instead + of TARGET_MALLOC64. + +2012-03-09 Robert Dewar <dewar@adacore.com> + + * a-direct.adb, comperr.adb, freeze.adb: Minor reformatting. + +2012-03-09 Arnaud Charlet <charlet@adacore.com> + + * s-taskin.adb (Initialize_ATCB): Set Task_Image_Len to + 0 so that we never access this field uninitialized (e.g. in + Task_Primitives.Operations.Enter_Task for the environment task). + +2012-03-09 Vincent Pucci <pucci@adacore.com> + + * exp_ch5.adb (Expand_Iterator_Loop): + Call to Expand_Iterator_Loop_Over_Array added. + (Expand_Iterator_Loop_Over_Array): New routine. Expansion of + "of" iterator loop over arrays. Multidimensional array case added. + +2012-03-09 Eric Botcazou <ebotcazou@adacore.com> + + * uintp.ads: Fix minor pasto in comment. + +2012-03-09 Vasiliy Fofanov <fofanov@adacore.com> + + * a-direct.adb: Do not strip the trailing directory separator + from path, as this is already done inside Normalize_Pathname; + doing it again produces the wrong result on Windows for the + drive's root dir (i.e. "X:\" becomes "X:"). + +2012-03-09 Thomas Quinot <quinot@adacore.com> + + * exp_attr.adb, freeze.adb, sem_attr.adb, aspects.adb, aspects.ads, + sem_ch13.adb, snames.ads-tmpl (Exp_Attr.Expand_N_Attribute_Reference): + Add Attribute_Scalar_Storage_Order. + (Sem_Attr.Analyze_Attribute, Eval_Attribute): Ditto. + (Aspects): Add Aspect_Scalar_Storage_Order (Snames): Add + Name_Scalar_Storage_Order and Attribute_Scalar_Storage_Order. + (Sem_Ch13.Analyze_Attribute_Definition_Clause): Add processing + for Scalar_Storage_Order. + (Freeze): If Scalar_Storage_Order is specified, check that it + is compatible with Bit_Order. + +2012-03-09 Robert Dewar <dewar@adacore.com> + + * s-osinte-linux.ads, sem_util.adb, s-taprop-linux.adb, exp_ch4.adb, + a-strsup.ads, sem_ch6.adb, a-stwisu.ads, exp_ch3.adb, + a-stzsup.ads: Minor reformatting. + +2012-03-09 Thomas Quinot <quinot@adacore.com> + + * s-ransee-vms.adb: Minor reformatting. + +2012-03-09 Arnaud Charlet <charlet@adacore.com> + + * comperr.adb (Delete_SCIL_Files): Fix handling of + N_Package_Renaming_Declaration and N_Generic_Package_Declaration. + +2012-03-09 Javier Miranda <miranda@adacore.com> + + * sem_ch6.adb (Check_Body_To_Inline): In AAMP and VM targets + use frontend inlining at all optimization levels. + * sem_util.adb (Must_Inline): In AAMP and VM targets, given that + there is no inlining support in the backend, use also frontend + inlining when compiling with optimizations enabled. + * exp_ch6.adb (Expand_Call): Minor code reorganization. + +2012-03-09 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/ada-tree.h (TYPE_VAX_FLOATING_POINT_P): Move around. + (TYPE_UNCONSTRAINED_ARRAY): Adjust comment. + * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Pool_Address>: Tidy + up. Add comment and use canonical predicate for thin pointers. + (gnat_to_gnu) <N_Free_Statement>: Tidy up and reorder. Add comment + and use canonical predicate for thin pointers. + * gcc-interface/utils.c (convert_to_fat_pointer): Remove superfluous + 'else' and use standard name. + (convert_to_thin_pointer): Delete. + (convert) <POINTER_TYPE>: Do the difference in sizetype directly and + change obsolete idioms. Do not call above function. + (unchecked_convert): Fix formatting. + * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: In the thin + pointer case, use byte_position to get the field position. + +2012-03-07 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set flags on the + DECL node built for a type which has a non-trivial equivalent type. + +2012-03-07 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/gigi.h (rest_of_type_decl_compilation): Delete. + * gcc-interface/decl.c (defer_finalize_level): Likewise. + (defer_finalize_list): Likewise. + (gnat_to_gnu_entity): Delete references to above variables and do not + call rest_of_type_decl_compilation. + (rest_of_type_decl_compilation): Delete. + (rest_of_type_decl_compilation_no_defer): Likewise. + * gcc-interface/utils.c (rest_of_record_type_compilation): Do not call + rest_of_type_decl_compilation. + (create_type_decl): Likewise. + (update_pointer_to): Likewise. + +2012-03-07 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Identifier_to_gnu): Don't unshare initializer. + (add_decl_expr): Mark external DECLs as used. + * gcc-interface/utils.c (convert) <CONSTRUCTOR>: Copy the vector. + +2012-03-07 Tristan Gingold <gingold@adacore.com> + + * s-ransee-vms.adb: New file. + * gcc-interface/Makefile.in: Use s-ransee-vms.adb on VMS. + * gcc-interface/Make-lang.in: Update dependencies. + +2012-03-07 Bob Duff <duff@adacore.com> + + * rtsfind.ads: Add support for finding Super_String types. + * sem_util.ads, sem_util.adb (Is_Bounded_String): New function + to determine whether a given type is a bounded string type. + (Is_Fully_Initialized_Type): Return True for bounded + string types, to suppress bogus warnings. + * exp_ch4.adb (Expand_Composite_Equality): Special case for bounded + strings: equality composes. This allows us to remove default values in + super strings. + * a-strsup.ads, a-stwisu.ads, a-stzsup.ads: Update comments. + * exp_ch3.adb (Expand_Freeze_Record_Type): Comment. + +2012-03-07 Robert Dewar <dewar@adacore.com> + + * sem_util.adb, exp_ch4.adb, exp_ch6.adb, sem_ch6.adb: Minor + reformatting. + +2012-03-07 Sergey Rybin <rybin@adacore.com frybin> + + * gnat_ugn.texi: gnatpp: fix paragraph about sources with + preprocessor directives. + +2012-03-07 Arnaud Charlet <charlet@adacore.com> + + * s-osinte-linux.ads, s-taprop-linux.adb (prctl): New function. + (Enter_Task): Call prctl when relevant. + +2012-03-07 Tristan Gingold <gingold@adacore.com> + + * s-osinte-vms.ads: pthread_mutex_setname_np: new function. + +2012-03-07 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Process_Formals): a generic subprogram with + a formal incomplete type does not require a freeze node. + +2012-03-07 Bob Duff <duff@adacore.com> + + * sem_util.ads: Minor reformatting. + +2012-03-07 Geert Bosch <bosch@adacore.com> + + * targparm.ads: New target parameter Atomic_Sync_Default, + defaulting to True. + * targparm.adb (Get_Target_Parameters): Add processing for + Atomic_Sync_Default. + * gnat1drv.adb (Adjust_Global_Switches): Adjust Supress_Options + based on ASD. + +2012-03-07 Javier Miranda <miranda@adacore.com> + + * sem_ch3.adb (Analyze_Object_Declaration): If the object + declaration has an init expression then stop the analysis of the + object declaration if the expression which initializes the object + is a call to an inlined function which returns an unconstrained + and has been expanded into a procedure call. + * sem_ch5.adb (Has_Call_Using_Secondary_Stack): Add missing + support to handle selected components. + * sem_ch6.ads (Cannot_Inline): Adding parameter Is_Serious plus + documentation. + * sem_ch6.adb (Check_And_Build_Body_To_Inline): New + subprogram which implements the checks required by the + new rules for frontend inlining and builds the body to inline. + (Analyze_Subprogram_Body_Helper): Move code that + checks inlining of subprogram that has nested subprogram + to Check_And_Build_Body_To_Inline. Replace call to + Build_Body_To_Inline by call to the new subprogram + Check_And_Build_Body_To_Inline. + (Cannot_Inline): New implementation. + * sem_ch12.adb (Analyze_Package_Instantiation.Must_Inline_Subp): + New subprogram. + * sem_util.ad[sb] (Must_Inline): New subprogram. + (Returns_Unconstrained_Type): New subprogram. + * sem_res.adb (Resolve_Call): Do not create a transient scope + for inlined calls. + * inline.ads (Analyzing_Inlined_Bodies): Remove unreferenced variable. + * inline.adb (Analyze_Inlined_Bodies, Initialize): Remove setting + to false the variable Analyzing_Inlined_Bodies. Fix comments. + * exp_ch4.adb (Expand_N_Allocator): Fix handling of finalization master. + * exp_ch6.ads (List_Inlining_Info): New subprogram. + * exp_ch6.adb (Expand_Call.Do_Inline): New subprogram. + (Expand_Call.Do_Inline_Always): New subprogram. + (In_Unfrozen_Instance): Move the declaration of this subprogram. + (Expand_Inlined_Call.Reset_Dispatching_Calls): New subprogram. + (Expand_Inlined_Call): Adding new support for inlining functions + that return unconstrained types. + (List_Inlining_Info): New subprogram. + * debug.adb Document flags -gnatd.j and -gnatd.k + * gnat1drv.adb Add call to generate the new listing of inlined + calls and calls passed to the backend. + +2012-03-07 Robert Dewar <dewar@adacore.com> + + * sem_ch5.adb, s-vaflop.adb, s-taprop-vms.adb, exp_ch6.adb, + s-gearop.adb, sem_ch6.adb, g-trasym.adb: Minor reformatting. + +2012-03-07 Javier Miranda <miranda@adacore.com> + + * a-ngrear.ads: Add documentation. + +2012-03-07 Tristan Gingold <gingold@adacore.com> + + * s-taprop-vms.adb (Create_Task): set thread name. + * s-osinte-vms.ads (pthread_attr_setname_np): Declare. + +2012-03-07 Arnaud Charlet <charlet@adacore.com> + + * g-trasym.adb: Minor reformatting. + +2012-03-07 Robert Dewar <dewar@adacore.com> + + * a-ngrear.ads: Minor addition of ??? comment. + +2012-03-07 Gary Dismukes <dismukes@adacore.com> + + * exp_ch4.adb (Apply_Accessibility_Check): Call + Remove_Side_Effects in the build-in-place case, to ensure that + we capture the call and don't end up with two calls. + +2012-03-07 Javier Miranda <miranda@adacore.com> + + * exp_ch6.adb (Expand_Inlined_Call): Skip inlining of functions + that return unconstrained types using an extended return statement + since the support for inlining these functions has not been yet + added to the frontend. + * s-vaflop.adb, s-vaflop-vms-alpha.adb: Code reorganization. + * a-ngrear.ads: Replace all the Inline_Always pragmas by pragma + Inline. + * a-ngrear.adb (Eigenvalues, Transpose): Restructured to use + extended return statement. + * a-strsup.adb, a-stzsup.adb, a-stwisu.adb (Concat, Super_Slice, + Super_To_String): Restructured to use extended return statement. + * a-chahan.adb (To_Basic, To_Lower, To_Upper): Restructured to + use extended return statement. + * s-gearop.adb (Diagonal, Matrix_Elementwise_Operation, + Vector_Elementwise_Operation, Matrix_Elementwise_Operation, + Matrix_Matrix_Scalar_Elementwise_Operation, + Vector_Vector_Elementwise_Operation, + Vector_Vector_Scalar_Elementwise_Operation, + Matrix_Scalar_Elementwise_Operation, + Vector_Scalar_Elementwise_Operation, + Scalar_Matrix_Elementwise_Operation, + Scalar_Vector_Elementwise_Operation, Matrix_Matrix_Product, + Matrix_Vector_Product, Outer_Product, Unit_Matrix, Unit_Vector, + Vector_Matrix_Product): Restructured to use extended return + statement. + +2012-03-07 Vincent Pucci <pucci@adacore.com> + + * sem_ch5.adb (One_Bound): Minor reformatting. + +2012-03-07 Tristan Gingold <gingold@adacore.com> + + * s-osinte-vms-ia64.adb, s-osinte-vms-ia64.ads, s-osinte-vms.adb, + s-osinte-vms.ads, gcc-interface/Makefile.in: Merge s-osinte-vms and + s-osinte-vms-ia64. + +2012-03-07 Ed Schonberg <schonberg@adacore.com> + + * checks.adb (Apply_Predicate_Check): Do not generate a predicate + check is the context is an internally generated type-specific + function. + * sem_ch6.adb (Process_PPCs); the formals of internally generated + type-specific functions do not get assertion checks. + +2012-03-07 Yannick Moy <moy@adacore.com> + + * gnat_rm.texi: Minor renaming of title. + * gnat_ugn.texi: Minor correction. + +2012-03-07 Vincent Pucci <pucci@adacore.com> + + * exp_ch4.adb (Expand_N_Quantified_Expression): Minor + reformating. + * sem_ch4.adb (Analyze_Quantified_Expression): Creation and + analysis of the iteration scheme added in all cases. + * sem_ch5.adb (Analyze_Iteration_Scheme): Minor reformating. + (Analyze_Iterator_Specification): Minor reformating. + * sem_res.adb (Resolve_Quantified_Expression): Resolution of + the condition added in all cases. + +2012-03-07 Thomas Quinot <quinot@adacore.com> + + * einfo.adb, einfo.ads: Add flag Reverse_Storage_Order. + +2012-03-07 Yannick Moy <moy@adacore.com> + + * gnat_rm.texi, gnat_ugn.texi: Rewording of GNAT UG and GNAT RM to + account for Ada 2012 assertions, and their pragma counterparts in GNAT. + +2012-03-07 Thomas Quinot <quinot@adacore.com> + + * exp_attr.adb, sem_attr.adb: Minor reformatting. + +2012-03-07 Bob Duff <duff@adacore.com> + + * hostparm.ads (Max_Instantiations): Increase parameter. + +2012-03-07 Bob Duff <duff@adacore.com> + + * par-prag.adb: Minor code rearrangement. + +2012-03-07 Bob Duff <duff@adacore.com> + + * a-strsup.ads, a-stwisu.ads, a-stzsup.ads (Super_String): + Remove default initial value for Data. It is no longer needed + because "=" now composes properly for untagged records. This + default has caused efficiency problems. + +2012-03-07 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb (Resolve_Actuals): If the actual is a selected + component of an anonymous access type, whose prefix is a variable, + treat the variable as if it may be modified by the call, to + suppress spurious warnings that a variable might be declared as + a constant. + +2012-03-07 Thomas Quinot <quinot@adacore.com> + + * einfo.adb, einfo.ads: Remove unused entity flags. + +2012-03-07 Eric Botcazou <ebotcazou@adacore.com> + + * gnat_ugn.texi (Inline Assembler): Fix swapping of Input and + Output operands throughout. + +2012-03-07 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch12.adb (Earlier): When two nodes come from the same + generic instantiation, compare their locations. Otherwise always + use the top level locations of the nodes. + +2012-03-07 Thomas Quinot <quinot@adacore.com> + + * einfo.ads, sem_prag.adb: Minor reformatting. + +2012-03-05 Jason Merrill <jason@redhat.com> + + * gcc-interface/Make-lang.in (doc/gnat_ugn.texi): Build xgnatugn + before using it. + +2012-03-04 Eric Botcazou <ebotcazou@adacore.com> + + * gnatvsn.ads (Library_Version): Bump to 4.8. + +2012-03-03 H.J. Lu <hongjiu.lu@intel.com> + + * init.c (__gnat_adjust_context_for_raise): Also check + "orq $0x0,(%esp)" for x32. + + * link.c (__gnat_default_libgcc_subdir): Set to libx32 for x32. + + * gcc-interface/Makefile.in (arch): Set to x32 if MULTISUBDIR + is /x32 and add support for x32. + +2012-02-29 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (components_to_record): Add ARTIFICIAL parameter + and set TYPE_ARTIFICIAL according to it. Adjust recursive call. + (gnat_to_gnu_entity) <E_Record_Type>: Adjust call to above function. + * gcc-interface/utils.c (rest_of_record_type_compilation): Do not + invoke rest_of_type_decl_compilation on the parallel type, if any. + +2012-02-29 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils.c (gnat_write_global_declarations): Make sure the + dummy global built for global types is preserved. + +2012-02-27 Tristan Gingold <gingold@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) [E_String_Type, + E_Array_Type]: Reuse dummy fat type for gnu_ptr_template and + gnu_template_type. + +2012-02-27 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Add checking. + (TYPE_BY_REFERENCE_P): New flag. + (TYPE_IS_BY_REFERENCE_P): New macro. + (TYPE_DUMMY_P): Add checking and remove VOID_TYPE. + (TYPE_IS_DUMMY_P): Adjust for above change. + * gcc-interface/decl.c (gnat_to_gnu_entity): Use TYPE_BY_REFERENCE_P + and TYPE_IS_BY_REFERENCE_P instead of TREE_ADDRESSABLE. + (gnat_to_gnu_param): Likewise. + (maybe_pad_type): Likewise. + (make_type_from_size): Use TYPE_IS_PACKED_ARRAY_TYPE_P. + * gcc-interface/misc.c (must_pass_by_ref): Use TYPE_IS_BY_REFERENCE_P + instead of TREE_ADDRESSABLE. + * gcc-interface/trans.c (finalize_nrv): Likewise. + (call_to_gnu): Likewise. Do not create a temporary for return values + with by-reference type here. + (gnat_to_gnu): Test TYPE_IS_DUMMY_P instead of TYPE_DUMMY_P. + (gnat_gimplify_expr) <ADDR_EXPR>: Don't do anything for non-constant + CONSTRUCTORs and calls. + * gcc-interface/utils.c (make_dummy_type): Get the equivalent type of + the underlying type and use it throughout. Use TYPE_IS_BY_REFERENCE_P + instead of TREE_ADDRESSABLE. + * gcc-interface/utils2.c (build_cond_expr): Deal with by-reference + types explicitly. + +2012-02-27 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Revert previous + change that creates a special VAR_DECL for debugging purposes. For an + aliased object with an unconstrained nominal subtype, make its type a + thin reference to the underlying object. + * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Deal with + expressions built for the initialization of above objects. + +2012-02-24 Dave Korn <dave.korn.cygwin@gmail.com> + + * gcc-interface/Makefile.in (WIN_SO_PREFIX [windows targets]): New + Windows-specific make variable. + (WIN_SO_INSTALL_DIR [windows targets]): Likewise. + (install-gnatlib): Respect the above during installation when set, + and also install any windows import library that has been built. + (gnatlib-shared-win32): Use WIN_SO_PREFIX to name output DLL and also + build a corresponding import library. + +2012-02-22 Robert Dewar <dewar@adacore.com> + + * exp_util.adb, make.adb, sem_dim.adb, sem_ch4.adb, exp_disp.adb: Minor + reformatting. + +2012-02-22 Geert Bosch <bosch@adacore.com> + + * g-bytswa-x86.adb, g-bytswa.adb, gcc-interface/Makefile.in: Remove + x86-specific version of byteswap and use GCC builtins instead. + +2012-02-22 Tristan Gingold <gingold@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) [E_String_Type, + E_Array_Type]: Translate component ealier. + +2012-02-22 Robert Dewar <dewar@adacore.com> + + * par-ch3.adb (P_Signed_Integer_Type_Definition): Specialize + error message for 'Range. + +2012-02-22 Pascal Obry <obry@adacore.com> + + * s-taprop-mingw.adb (Finalize_TCB): Do not wait on thread handle as + this is our own thread. + +2012-02-22 Sergey Rybin <rybin@adacore.com frybin> + + * tree_io.ads: Update ASIS_Version_Number because of the changes + in Snames. + +2012-02-22 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch7.adb (Create_Finalizer): Suppress elaboration checks on + stack-related finalizers. + +2012-02-22 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Analyze_Expression_Function): If the construct + is a completion, indicate that its formals are the formals of + a completion, and as such do not get a cross- reference entry. + (Analyze_Subprogram_Specification): Do not generate a definition + for the entity of an expression function, because it may be a + completion. Definition will be generated if needed when analyzing + the generated subprogram declaration. + +2012-02-22 Vincent Celier <celier@adacore.com> + + * make.adb (Check): When checking if an object file is in the + correct object directory, get the unit name from a previous call + to Check_Source_Info_In_ALI. + * makeutl.adb (Check_Source_Info_In_ALI): Return the name of + the unit when everything is OK, otherwise return No_Name. + * makeutl.ads (Check_Source_Info_In_ALI): Return Name_Id instead + of Boolean + +2012-02-22 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Find_Equality_Types, Try_One_Interp): In an + instance, the operator is visible if an operand is of some + numeric type which is not in use or directly visible, and the + other operand is a numeric literal. + +2012-02-22 Tristan Gingold <gingold@adacore.com> + + * init.c: Minor code clean up. + * gcc-interface/Make-lang.in: Update dependencies. + +2012-02-22 Arnaud Charlet <charlet@adacore.com> + + * gnatlink.adb (Gnatlink): Use -gnatcC in CodePeer_Node, + otherwise GCC will generate an object file. + +2012-02-22 Vincent Celier <celier@adacore.com> + + * projects.texi: Correct typo related to "**" in Source_Dirs. + +2012-02-22 Steve Baird <baird@adacore.com> + + * sem_prag.adb (Analyze_PPC_In_Decl_Part): Clean up generation of + error message text. + +2012-02-22 Vincent Pucci <pucci@adacore.com> + + * rtsfind.adb (Get_Unit_Name): Ada_Numerics_Child and + System_Dim_Child cases added. + * rtsfind.ads: Ada_Numerics, + Ada_Numerics_Generic_Elementary_Functions, System_Dim, + System_Dim_Float_IO and System_Dim_Integer_IO added to the list + of RTU_Id. Ada_Numerics_Child and System_Dim_Child added as + new RTU_Id subtypes. + * sem_dim.adb (Is_Dim_IO_Package_Entity): Use of + Rtsfind to verify the package entity is located either + in System.Dim.Integer_IO or in System.Dim.Float_IO. + (Is_Dim_IO_Package_Instantiation): Minor + changes. (Is_Elementary_Function_Call): Removed. + (Is_Elementary_Function_Entity): New routine. + (Is_Procedure_Put_Call): Is_Dim_IO_Package_Entity call added. + * snames.ads-tmpl: Name_Dim and Name_Generic_Elementary_Functions + removed. + +2012-02-22 Vincent Pucci <pucci@adacore.com> + + * sem_prag.adb: Minor reformatting. + +2012-02-22 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Find_Type_Name): When analyzing a private type + declaration that is the completion of a tagged incomplete type, do + not associate the class-wide type already created with the private + type to prevent order-of-elaboration issues in the back-end. + * exp_disp.adb (Find_Specific_Type): Find specific type of + a class-wide type, and handle the case of an incomplete type + coming either from a limited_with clause or from an incomplete + type declaration. Used when expanding a dispatchin call and + generating tag checks (minor refactoring). + +2012-02-22 Robert Dewar <dewar@adacore.com> + + * exp_ch5.adb: Add comment. + * sem_ch12.adb, exp_ch6.adb: minor reformatting + +2012-02-22 Ed Schonberg <schonberg@adacore.com> + + * freeze.adb (Freeze_Entity): Do not perform type layout within + a generic unit. + +2012-02-22 Eric Botcazou <ebotcazou@adacore.com> + + * init.c (__gnat_error_handler) [Linux]: Map SIGBUS to + Storage_Error. + +2012-02-22 Ed Schonberg <schonberg@adacore.com> + + * exp_ch5.adb (Expand_N_Assignment_Statement): Reject an + assignment to a classwide type whose type is limited, as + can happen in an instantiation in programs that run afoul or + AI05-0087. + +2012-02-17 Ed Schonberg <schonberg@adacore.com> + + * exp_ch6.adb (Legal_Copy): If layout is not + determined in the front-end, do not emit error message when + by-reference actual is potentially unaligned. + * gcc-interface/decl.c (gnat_to_gnu_field): Better error message for + illegal representation clause on tagged or aliased component, or on + by-reference type with forced alignment. + +2012-02-17 Nicolas Roche <roche@adacore.com> + + * gcc-interface/Makefile.in: Ensure FORCE_DEBUG_ADAFLAGS variables is + propagated by gnatlib-sjlj and gnatlib-zcx targets. + * gcc-interface/Make-lang.in: Update dependencies. + +2012-02-17 Thomas Quinot <quinot@adacore.com> + + * sem_ch12.adb (Analyze_Package_Instantiation): For an + instantiation in an RCI library unit, omit the instance body + if the RCI library unit is the instance itself (E.2.3(18)), + but include the body if the instantiation is within the RCI + declaration (12.3(12)). + +2012-02-17 Steve Baird <baird@adacore.com> + + * sem_prag.adb (Analyze_PPC_In_Decl_Part): Pre'Class and + Post'Class aspects can only be specified for a primitive operation + of a tagged type. + +2012-02-17 Yannick Moy <moy@adacore.com> + + * gnat_rm.texi: Minor shuffling. + +2012-02-17 Ed Schonberg <schonberg@adacore.com> + + * aspects.adb: Expression functions can carry pre/postconditions. + * par-ch6.adb (P_Subprogram): look for optional pre/postconditions + in an expression function. + * sem_prag (Check_Precondition_Postcondition): legal on expression + functions. + +2012-02-17 Vincent Pucci <pucci@adacore.com> + + * a-cdlili.adb, a-cidlli.adb, a-cihama.adb, a-cimutr.adb, + * a-ciorma.adb, a-cohama.adb, a-coinve.adb, a-comutr.adb, + * a-convec.adb, a-coorma.adb (Adjust): New routine. + (Constant_Reference): Increment Busy and Lock counters. + (Reference): Increase Busy and Lock counters. + (Finalize): New routine. + * a-cihase.adb, a-ciorse.adb, a-cohase.adb, a-coorse.adb: + (Adjust): New routine. (Constant_Reference): Increment Busy + and Lock counters. + (Finalize): New routine. + * a-cdlili.ads, a-cidlli.ads, a-cihama.ads, a-cihase.ads, + * a-cimutr.ads, a-ciorma.ads, a-ciorse.ads, a-cohama.ads, + * a-cohase.ads, a-coinve.ads, a-comutr.ads, a-convec.ads, + * a-coorma.ads, a-coorse: Controlled component added to the + reference types. + +2012-02-17 Robert Dewar <dewar@adacore.com> + + * restrict.adb (Check_Restriction): Add special handling for + No_Obsolescent_Features. + +2012-02-17 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_util.adb (Find_Finalize_Address): When dealing with an + internally built full view for a type with unknown discriminants, + use the original record type. + +2012-02-17 Robert Dewar <dewar@adacore.com> + + * sem_dim.adb: Minor reformatting. + +2012-02-17 Yannick Moy <moy@adacore.com> + + * gnat_rm.texi: Minor rewording. + +2012-02-17 Thomas Quinot <quinot@adacore.com> + + * sem_aggr.adb: Minor reformatting. + +2012-02-17 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Update doc for -gnatw.m to include 2*x case. + +2012-02-17 Vincent Pucci <pucci@adacore.com> + + * sem_dim.adb (Is_Dim_IO_Package_Entity): New routine. + (Is_Dim_IO_Package_Instantiation): Is_Dim_IO_Package_Entity + call added. + (Is_Procedure_Put_Call): Is_Dim_IO_Package_Entity + call added. + * s-dim.ads: Make package Pure. + +2012-02-17 Gary Dismukes <dismukes@adacore.com> + + * prj-nmsc.adb: Minor reformatting. + +2012-02-17 Yannick Moy <moy@adacore.com> + + * gnat_rm.texi: Update GNAT RM with a separate chapter on restrictions. + +2012-02-17 Yannick Moy <moy@adacore.com> + + * gnat_ugn.texi: Fix typos. + +2012-02-17 Pascal Obry <obry@adacore.com> + + * prj-nmsc.adb: prj-nmsc.adb (Check_Aggregated): Check that an + aggregate is not Externally_Built. + +2012-02-17 Ed Schonberg <schonberg@adacore.com> + + * sem_aggr.adb (Resolve_Record_Aggregate): If a composite + component has a box association, copy the default value using + the current scope as the scope of internal types, to prevent + scoping anomalies in gigi. + +2012-02-17 Robert Dewar <dewar@adacore.com> + + * sem_dim.adb, sem_dim.ads, s-tasren.adb, prj.adb, prj.ads, freeze.adb, + sem_res.adb, exp_ch4.adb, sinput.adb, sinput.ads, exp_aggr.adb, + exp_intr.adb, s-os_lib.adb: Minor reformatting. + +2012-02-17 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Is_Non_Overriding_Operation): Add warning if the + old operation is abstract, the relevant type is not abstract, + and the new subprogram fails to override. + +2012-02-15 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Identifier_to_gnu): Move block retrieving the + type of the result to the end and execute it for a deferred constant of + a discriminated type whose full view can be elaborated statically. + +2012-02-15 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (gnat_to_gnu) <N_Qualified_Expression>: If the + type is tagged, mark it as used for debugging purposes. + <N_Allocator>: Likewise for a qualified expression. + +2012-02-15 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (call_to_gnu): Create the temporary for the + return value in the by-reference return type case if this isn't the + expression of an object declaration. Tidy up. + +2012-02-09 Tristan Gingold <gingold@adacore.com> + + * gcc-interface/Makefile.in: Remove .sym rule (not used). + Remove adamsg.o object (requires native message compiler). + * init.c (CMA$_EXIT_THREAD, MTH$_FLOOVEMAT, SS$_INTDIV): Define as a + macro instead of as extern int. + (ADA$_ALREADY_OPEN, ADA$_CONSTRAINT_ERRO, ADA$_DATA_ERROR) + (ADA$_DEVICE_ERROR, ADA$_END_ERROR, ADA$_FAC_MODE_MISMAT) + (ADA$_IOSYSFAILED, ADA$_KEYSIZERR, ADA$_KEY_MISMATCH) + (ADA$_LAYOUT_ERROR, ADA$_LINEXCMRS, ADA$_MAXLINEXC) + (ADA$_MODE_ERROR, ADA$_MRN_MISMATCH, ADA$_MRS_MISMATCH) + (ADA$_NAME_ERROR, ADA$_NOT_OPEN, ADA$_ORG_MISMATCH) + (ADA$_PROGRAM_ERROR, ADA$_RAT_MISMATCH, ADA$_RFM_MISMATCH) + (ADA$_STAOVF, ADA$_STATUS_ERROR, ADA$_STORAGE_ERROR) + (ADA$_UNSUPPORTED, ADA$_USE_ERROR): Likewise. + (struct cond_except): Field cond is now an unsigned int. + (dec_ada_cond_except_table): Adjust. + (cond_except_table): Likewise. + (cond_resignal_table): Likewise. + (__gnat_default_resignal_p): Fix style. + +2012-02-08 Vincent Celier <celier@adacore.com> + + * gcc-interface/Make-lang.in: Add g-byorma.o to gnatbind objects + (g-buorma is now imported by sinput). + Update dependencies. + * scn.adb (Initialize_Scanner): Call Check_For_BOM + * sinput-p.adb (Source_File_Is_Subunit): Call Check_For_BOM + * sinput.adb: New procedure Check_For_BOM + * sinput.ads: New procedure Check_For_BOM + +2012-02-08 Vincent Pucci <pucci@adacore.com> + + * impunit.adb: Dimension package names updated + * Makefile.rtl: s-dim added + * sem_dim.adb (Is_Procedure_Put_Call): minor changes + (Is_Dim_IO_Package_Instantiation): minor changes + * sem_dim.ads: minor changes in comments + * snames.ads-tmpl: Name_Dim added Name_Dim_Float_IO and + Name_Dim_Integer_IO removed + * s-dim.ads: New package. Define the dimension terminology. + * s-diflio.adb, s-diinio.adb, s-dimkio.ads, s-dimmks.ads, + * s-dmotpr.ads: Package names updated. + * s-diflio.ads, s-diinio.ads: Documentation added and package + names updated. + +2012-02-08 Gary Dismukes <dismukes@adacore.com> + + * gcc-interface/utils2.c (build_call_alloc_dealloc_proc): Revise test + for storage pools to test for an underlying record type rather than + testing Is_Tagged_Type, so that simple storage pools will be handled + the same as normal Ada storage pools. + +2012-02-08 Yannick Moy <moy@adacore.com> + + * gnat_rm.texi: Minor reshuffling to place restriction at + appropriate place. + +2012-02-08 Bob Duff <duff@adacore.com> + + * warnsw.adb (Set_Warning_Switch): Set Warn_On_Suspicious_Modulus_Value + False for '-gnatwA', to suppress these warnings. + +2012-02-08 Vincent Celier <celier@adacore.com> + + * sinput-p.adb (Source_File_Is_Subunit): Check for BOM before + starting to scan, so that UTF8 encoding is taken into account. + +2012-02-08 Arnaud Charlet <charlet@adacore.com> + + * s-tasren.adb, s-tasren.ads (Internal_Complete_Rendezvous): New + function. + (Complete_Rendezvous): Now call Internal_Complete_Rendezvous. + (Exceptional_Complete_Rendezvous): Mark No_Return. + +2012-02-08 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.adb (Compile_Time_Known_Composite_Value): + New predicate to compute whether a composite value can be + evaluated at compile time. + (Component_Not_OK_For_Backend): Use Compile_Time_Known_Value for all + expressions of elementary type and Compile_Time_Known_Composite_Value + for all other expressions. + (Expand_Record_Aggregate): Convert to assignments in the case + of a type with mutable components if the aggregate cannot be + built statically. + +2012-02-08 Gary Dismukes <dismukes@adacore.com> + + * aspects.ads (type Aspect_Id): Add Simple_Storage_Pool_Type. + (Impl_Defined_Aspects): Add association for + Aspect_Simple_Storage_Pool_Type. + (Aspect_Names): Add + association for Aspect_Simple_Storage_Pool_Type. + * aspects.adb: + (Canonical_Aspect): Add association for Simple_Storage_Pool_Type. + * exp_attr.adb (Expand_N_Attribute_Reference): + Change name to Name_Simple_Storage_Pool_Type. + * exp_ch4.adb (Expand_N_Allocator): Change + name to Name_Simple_Storage_Pool_Type. + * exp_intr.adb (Expand_Unc_Deallocation): Change name to + Name_Simple_Storage_Pool_Type. * freeze.adb (Freeze_Entity): + Change names to Name_Simple_Storage_Pool_Type. * par-prag.adb: + Change names to Name_Simple_Storage_Pool_Type. * sem_attr.adb: + (Analyze_Attribute): Change name to Name_Simple_Storage_Pool_Type. + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): + Change name to Name_Simple_Storage_Pool_Type. + * sem_prag.adb: + (Analyze_Pragma): Change name to Name_Simple_Storage_Pool_Type. + (Sig_Flags): Change name to Name_Simple_Storage_Pool_Type. + * sem_res.adb (Resolve_Allocator): Change name to + Name_Simple_Storage_Pool_Type. * snames.ads-tmpl: + (Name_Simple_Storage_Pool_Type): New name constant. + (type Pragma_Id): Change name to Name_Simple_Storage_Pool_Type and + move to main pragma section because it no longer matches the + attribute name. + * snames.adb-tmpl (Get_Pragma_Id): Remove test for + Name_Simple_Storage_Pool. + (Is_Pragma_Name): Remove test for Name_Simple_Storage_Pool. + +2012-02-08 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Add some clarification to -gnatwA and -gnatws. + +2012-02-08 Pascal Obry <obry@adacore.com> + + * prj.adb (Compute_All_Imported_Projects): Use new + For_Project_And_Aggregated_Context to ensure proper context is + used for encapsulated aggregate libraries. + * prj-proc.adb (Recursive_Process): Call + Process_Aggregated_Projects earlier to ensure that all dependent + projects are set with the proper encapsulated status. + +2012-02-08 Pascal Obry <obry@adacore.com> + + * s-os_lib.adb (Normalize_Arguments): Properly escape last \ in null + terminated string. + +2012-02-08 Pascal Obry <obry@adacore.com> + + * prj.ads, prj.adb (For_Project_And_Aggregated_Context): New + generic routine with a context parameter. + +2012-02-08 Robert Dewar <dewar@adacore.com> + + * a-coinve.adb, sem_util.adb, sem_ch8.adb, a-cobove.adb, + a-convec.adb: Minor reformatting and code reorganization. + +2012-02-08 Steve Baird <baird@adacore.com> + + * sem_cat.adb (In_Preelaborated_Unit): A child + unit instantiation does not inherit preelaboration requirements + from its parent. + +2012-02-08 Gary Dismukes <dismukes@adacore.com> + + * aspects.ads (type Aspect_Id): Add Aspect_Simple_Storage_Pool. + (Impl_Defined_Aspects): Add entry for Aspect_Simple_Storage_Pool. + (Aspect_Argument): Add Name entry for Aspect_Simple_Storage_Pool. + (Aspect_Names): Add entry for Aspect_Simple_Storage_Pool. + * aspects.adb (Canonical_Aspect): Add entry for + Aspect_Simple_Storage_Pool. + * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of + Attribute_Simple_Storage_Pool in the same way as Storage_Pool + (add conversion, analyze/resolve). For the Storage_Size attribute, + for the simple pool case, locate and use the simple pool type's + Storage_Size function (if any), otherwise evaluate to zero. + * exp_ch4.adb (Expand_N_Allocator): In the case of an allocator + for an access type with an associated simple storage pool, + locate and use the pool type's Allocate. + * exp_intr.adb (Expand_Unc_Deallocation): In the case where the + access type has a simple storage pool, locate the pool type's + Deallocate procedure (if present) and use it as the procedure + to call on the Free operation. + * freeze.adb (Freeze_Entity): In the case of a full type for + a private type defined with pragma Simple_Storage_Pool, check + that the full type is also appropriate for the pragma. For + a simple storage pool type, validate that the operations + Allocate, Deallocate (if present), and Storage_Size + (if present) are defined with appropriate expected profiles. + (Validate_Simple_Pool_Op_Formal): New procedure + (Validate_Simple_Pool_Operation): New procedure Add with and + use of Rtsfind. + * par-prag.adb: Add Pragma_Simple_Storage_Pool to case statement + (no action required). + * sem_attr.adb (Analyze_Attribute): For the case of the + Storage_Pool attribute, give a warning if the prefix type has an + associated simple storage pool, and rewrite the attribute as a + raise of Program_Error. In the case of the Simple_Storage_Pool + attribute, check that the prefix type has an associated simple + storage pool, and set the attribute type to the pool's type. + * sem_ch13.adb (Analyze_Aspect_Specifications): Add + Aspect_Simple_Storage_Pool case choice. + (Analyze_Attribute_Definition_Clause): Add + Aspect_Simple_Storage_Pool to case for Ignore_Rep_Clauses + (no action). Add handling for Simple_Storage_Pool attribute + definition, requiring the name to denote a simple storage pool + object. + (Check_Aspect_At_Freeze_Point): For a simple storage pool + aspect, set the type to that of the name specified for the aspect. + * sem_prag.adb (Analyze_Pragma): Add handling for pragma + Simple_Storage_Pool, requiring that it applies to a library-level + type declared in a package declaration that is a limited private + or limited record type. + * sem_res.adb (Resolve_Allocator): Flag an attempt to call a + build-in-place function in an allocator for an access type with + a simple storage pool as unsupported. + * snames.ads-tmpl: Add Name_Simple_Storage_Pool. + (type Attribute_Id): Add Attribute_Simple_Storage_Pool. + (type Pragma_Id): Add Pragma_Simple_Storage_Pool. + * snames.adb-tmpl (Get_Pragma_Id): Handle case of + Name_Simple_Storage_Pool. + (Is_Pragma_Name): Return True for Name_Simple_Storage_Pool. + +2012-02-08 Cyrille Comar <comar@adacore.com> + + * projects.texi: Clarify doc for interfaces. + +2012-02-07 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Make-lang.in (GCC_LINKERFLAGS): New variable. + (GCC_LINK): Use it. + +2012-02-01 Tristan Gingold <gingold@adacore.com> + + * gcc-interface/trans.c (Loop_Statement_to_gnu): Use sizetype + instead of size_type_node. + +2012-01-30 Nicolas Roche <roche@adacore.com> + + * gcc-interface/Make-lang.in: Update dependencies. + * gcc-interface/Makefile.in: Use system-vxworks-system-ppc-mils.ads + when needed. + Remove Linker_Options -crtbe when building sjlj run-time. + +2012-01-30 Robert Dewar <dewar@adacore.com> + + * sem.adb (Analyze): Call Analyze_Mod for N_Op_Mod mode. + * sem_ch3.adb (Modular_Type_Declaration): Warn on mod value of + form 2 * small-literal. + * sem_ch4.adb (Analyze_Mod): New procedure (warn on suspicious + mod value). + * sem_ch4.ads (Analyze_Mod): New procedure. + +2012-01-30 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb: sem_ch6.adb (Analyze_Expression_Function): Copy + types and return expression when building spec for implicit + body, to preserve global references that may be present in an + instantiation. + +2012-01-30 Matthew Heaney <heaney@adacore.com> + + * a-convec.adb, a-coinve.adb, a-cobove.adb (Sort, + Reverse_Elements): Check for cursor tampering. + +2012-01-30 Ed Schonberg <schonberg@adacore.com> + + * sem_util.adb (Is_Fully_Initialized_Type): In Ada 2012, a + type with aspect Default_Value or Default_Component_Value is + fully initialized, and use of variables of such types do not + generate warnings. + +2012-01-30 Javier Miranda <miranda@adacore.com> + +PR ada/15846 + * sem_ch8.adb (Analyze_Subprogram_Renaming): + Handle self-renaming when the renamed entity is referenced using + its expanded name. + +2012-01-30 Vincent Celier <celier@adacore.com> + + * projects.texi: Add documentation for attribute Interfaces. + +2012-01-30 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch7.adb (Build_Finalizer_Call): Set loc again. + * exp_ch11.adb (Expand_At_End_Handler): Do not provide a source + location for the wrapped call to the original AT_END routine + and the subsequent return statement. + +2012-01-30 Pascal Obry <obry@adacore.com> + + * s-rannum.adb: Minor reformatting. + +2012-01-30 Hristian Kirtchev <kirtchev@adacore.com> + + * a-calend-vms.adb, a-calend.adb: Increment the number of leap seconds + to 25 and add the hard time value for 2012-06-30. + +2012-01-30 Robert Dewar <dewar@adacore.com> + + * a-strhas.ads, einfo.adb, einfo.ads, exp_ch7.adb, exp_ch9.adb, + freeze.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-proc.adb, s-llflex.ads, + s-ransee.adb, s-ransee.ads, sem_ch13.adb, sem_dim.adb, sem_prag.adb: + Minor reformatting/code reorganization. + +2012-01-30 Thomas Quinot <quinot@adacore.com> + + * s-rannum.adb, s-ransee.adb, s-ransee.ads (Get_Seed): Return + Unsigned_64 rather than Duration. + (System.Random_Numbers.Reset): Use full value of seed + (do not truncate sub-second bits). + +2012-01-30 Thomas Quinot <quinot@adacore.com> + + * sem_cat.adb, sem_ch12.adb: Minor reformatting. + +2012-01-30 Yannick Moy <moy@adacore.com> + + * gnat_ugn.texi: Minor correction of GNAT UG, to take into + account changes to -gnatwa and more recent warnings. + +2012-01-30 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch7.adb (Build_Finalizer_Call): Do not provide a source + location when creating a call to a finalizer. + * exp_ch11.adb (Expand_Exception_Handlers): Do not provide + a source location for the first actual of Save_Occurrence for + consistency sake. + +2012-01-30 Ed Schonberg <schonberg@adacore.com> + + * einfo.ads, einfo,adb: New attribute on scalar types: + Default_Aspect_Value New attribute on array types: + Default_Aspect_Component_Value Move attribute Related_Array_Object + to a different position to accomodate new aspect attributes. + * freeze.adb (Freeze_Entity): Use new attributes to retrieve value + of defaults set with an aspect specification, rather than using + the list of aspects attached to the type, to prevent issues with + partial views. + * sem_ch13.adb (Analyze_Aspect_Specifications): For aspects + Default_Value and Default_Component _Value, store corresponding + expression in type entity. + (Check_Aspect_At_End_Of_Declaration): If the default aspects + are declared on the full view, use the full view to resolve the + correseponding expression. + * exp_ch3.adb (Init_Component): Use attribute + Default_Aspect_Component_Value to perform default initialization, + rather than relying on the rep item list for the type. + (Get_Simple_Init_Val): Ditto. + +2012-01-30 Thomas Quinot <quinot@adacore.com> + + * a-strhas.ads: Document risk of collision attack. + +2012-01-30 Yannick Moy <moy@adacore.com> + + * gnat_ugn.texi: Minor update wrt warning switches. + +2012-01-30 Vincent Celier <celier@adacore.com> + + * prj-nmsc.adb (Check_Interfaces): Report an error when a + unit from Library_Interface is not a unit of the project. + +2012-01-30 Vincent Pucci <pucci@adacore.com> + + * sem_prag.adb (Make_Aspect_For_PPC_In_Gen_Sub_Decl): Parent + links fixed inside PPC pragmas. + * sem_ch12.adb: Move call to Make_Aspect_For_PPC_In_Gen_Sub_Decl. + +2012-01-30 Thomas Quinot <quinot@adacore.com> + + * s-ransee.ads: Minor reformatting. + +2012-01-30 Pascal Obry <obry@adacore.com> + + * prj.ads, prj.adb (For_Each_Source): Add support for skipping + sources coming from an encapsulated library. + +2012-01-30 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Process-Full_View): fix typo. + * sem_ch13.adb (Aalyze_Aspect_Specifications): if predicates + appear on a private type and the full view is available, ensure + existence of freeze node for full view. + (Build_Predicate_Function): Attach predicate function to both + views of a private type. + +2012-01-30 Vincent Celier <celier@adacore.com> + + * prj-nmsc.adb (Check_Interfaces): Compute the Lib_Interface_ALIs + for the project if either attribute Library_Interface or + Interfaces is declared. + (Check_Stand_Alone_Library): Use Lib_Interface_ALIs computed in + Check_Interfaces. + +2012-01-30 Pascal Obry <obry@adacore.com> + + * prj-proc.adb (Recursive_Process): Set From_Encapsulated_Lib + boolean value to true in the process list created by this routine. + * prj.ads (Project_List_Element): New field From_Encapsulated_Lib. + Continued work for KA06-021. + * prj.adb (Compute_All_Imported_Projects): Set + From_Encapsulated_Lib boolean flag. + +2012-01-30 Vincent Pucci <pucci@adacore.com> + + * sem_dim.adb (Expand_Put_Call_With_Dimension_Symbol): Minor + code clean up. + * s-diflio.ads: Minor change. + +2012-01-30 Javier Miranda <miranda@adacore.com> + + * exp_ch9.adb (Build_Dispatching_Requeue): Add missing call + to Get_Entry_Index. Required to generate code which provides + the correct value of Entry_Index in the target entry. + +2012-01-30 Nicolas Roche <roche@adacore.com> + + * system-vxworks-ppc.ads: Add pragma Linker_Options -crtbe to + fix issue with zcx on VxWorks5. + +2012-01-30 Pascal Obry <obry@adacore.com> + + * prj.ads, prj.adb (For_Every_Project_Imported): Remove + In_Aggregate_Lib. + (For_Every_Project_Imported_Context): New generic routine with + a context parameter. + * prj-nmsc.adb: Revert to use For_Every_Project_Imported Avoid + distributed complexity. + * prj-env.adb, prj-conf.adb, makeutl.adb, gnatcmd.adb: Ditto. + +2012-01-30 Thomas Quinot <quinot@adacore.com> + + * exp_aggr.adb (Expand_Record_Aggregate): After creating the + _parent aggregate for an extension aggregate, check whether it + requires delayed (top-down) expansion. + +2012-01-30 Vincent Pucci <pucci@adacore.com> + + * sem_dim.adb (Expand_Put_Call_With_Dimension_Symbol): Rewritten. + * snames.ads-tmpl: Name_Item and Name_Symbols added. + * s-diflio.adb, s-diflio.ads, s-diinio.adb, s-diinio.ads: Rename + and change the position of parameter Symbols in every Put routine. + * s-dimmks.ads: Convert long float type Mks_Type into long + long float. + * s-llflex.ads: Modifications in comments. + +2012-01-30 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch12.adb (Earlier): Do not use the + top level source locations of the two input nodes. + +2012-01-30 Robert Dewar <dewar@adacore.com> + + * einfo.ads, sem_prag.adb, sem_attr.adb, aspects.ads, + sem_cat.adb, sem_aggr.adb, exp_aggr.adb: Minor reformatting. + +2012-01-30 Robert Dewar <dewar@adacore.com> + + * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb: Minor reformatting. + +2012-01-30 Olivier Hainque <hainque@adacore.com> + + * sigtramp-ppcvxw.c (CFI_COMMON_REGS): Add rule for r1 back + + comments. + +2012-01-30 Thomas Quinot <quinot@adacore.com> + + * gnat_rm.texi, sem_dist.adb, sem_dist.ads, einfo.ads, sem_prag.adb, + sem_ch12.adb, sem_attr.adb, aspects.adb, aspects.ads, par-prag.adb, + sem_cat.adb, snames.ads-tmpl (Sem_Dist.Is_Valid_Remote_Object_Type): + New subprogram (extracted from + Sem_Cat.Validate_Remote_Access_Object_Type_Declaration). + (Einfo.Is_Remote_Types): Now applies to generic types. Update + documentation accordingly. + (Sem_Ch12.Analyze_Associations): A RACW type is acceptable as + actual for a formal type to which a pragma Remote_Access_Type + applies. + (Aspects, Par.Prag, Sem_Prag): Support for new pramga/aspect + Remote_Access_Type. + (Sem_Attr.Analyze_Attribute, case Stub_Type): Attribute can + be applied to a generic type if pragma Remote_Access_Type + applies, in which case the type of the attribute is + System.Partition_Interface.RACW_Stub_Type. + +2012-01-27 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set + an alignment on fields of the RETURN type built for the CICO mechanism. + +2012-01-27 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (gnat_to_gnu): Avoid making a SAVE_EXPR for + a call to a function that returns an unconstrained type with default + discriminant. Similarly, avoid doing the conversion to the nominal + result type in this case. + +2012-01-27 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/ada-tree.h (DECL_ALIASED_P): New flag. + * gcc-interface/decl.c (is_variable_size): Rename to... + (type_has_variable_size): ...this. + (adjust_packed): Adjust to above renaming. + (gnat_to_gnu_field): Set DECL_ALIASED_P on the field. + (field_is_artificial): New predicate. + (field_is_aliased): Likewise. + (field_has_self_size): Likewise. + (field_has_variable_size): Likewise. + (components_to_record): Record information for the final layout during + the first pass on fields. + If there is an aliased field placed after a field whose length depends + on discriminants, put all the fields of the latter sort, last. + +2012-01-27 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/gigi.h (get_minimal_subprog_decl): Declare. + * gcc-interface/decl.c (get_minimal_subprog_decl): New function. + * gcc-interface/trans.c (Attribute_to_gnu): Use it for the prefix of an + Access-like attribute in a dispatch table if the subprogram is public. + +2012-01-27 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/gigi.h (create_label_decl): Adjust. + * gcc-interface/utils.c (create_label_decl): Add GNAT_NODE parameter + and invoke gnat_pushdecl on it. Remove obsolete settings. + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Label>: Adjust call to + create_label_decl. + * gcc-interface/trans.c (gnat_to_gnu) <N_Null): Likewise. Ignore the + label for debugging purposes. + +2012-01-27 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: For an aliased + object with an unconstrained nominal subtype and if optimization isn't + enabled, create a special VAR_DECL for debugging purposes. + +2012-01-23 Robert Dewar <dewar@adacore.com> + + * sem_prag.ads, sem_prag.adb: Minor reformatting. + +2012-01-23 Robert Dewar <dewar@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specifications): Check for + language defined aspect applied to renaming or formal type + declaration (not permitted) + +2012-01-23 Matthew Heaney <heaney@adacore.com> + + * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Vet): Replaced + comment with pragma Assert. + +2012-01-23 Vincent Pucci <pucci@adacore.com> + + * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Call + to Make_Aspect_For_PPC_In_Gen_Sub_Decl added in ASIS mode. + * sem_prag.adb, sem_prag.ads (Make_Aspect_For_PPC_In_Gen_Sub_Decl): New + routine. In ASIS mode, convert any PPC pragmas into aspects in generic + subprogram declaration in order to enable the analysis of PPC boolean + expressions. + +2012-01-23 Robert Dewar <dewar@adacore.com> + + * sem_ch3.adb (Analyze_Object_Declaration): Properly + handle Current_Value for volatile variables (also propagate + Treat_As_Volatile from type to object). + +2012-01-23 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch12.adb (Install_Body): Detect the case + where the enclosing context is a package with a stub body that + has already been replaced by the actual body. In such cases, + the freeze node for the enclosing context must be inserted after + the real body. + +2012-01-23 Ed Schonberg <schonberg@adacore.com> + + * sem_prag.adb (Analyze_Pragma, case Debug): Freeze the called + subprogram before expanding the pragma into an if-statement with + a block, to ensure that when the subprogram is null its body is + properly generated before expansion. + +2012-01-23 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch12.adb (Analyze_Associations): Alphabetize local variables and + constants. Rename Actual_Types to Actuals_To_Freeze. Rename Next_Formal + to Saved_Formal. + Freeze all eligible subprograms which appear as actuals in + the instantiation. + (Has_Fully_Defined_Profile): New routine. + (Renames_Standard_Subprogram): New routine. + (Earlier): Add local variable N. Comment update. Do not use source + locations when trying to determine whether one node precedes another. + +2012-01-23 Gary Dismukes <dismukes@adacore.com> + + * exp_ch4.adb (Expand_Concatenate): In the case + where the result of a concatentation can be null, set the to + result have both the low and high bounds of the right operand (not + just the high bound, as was the case prior to this fix). Also, + fix the saved high bound setting (Last_Opnd_High_Bound) in the + empty string literal case (should have been low bound minus one, + rather than plus one). + +2012-01-23 Thomas Quinot <quinot@adacore.com> + + * scos.ads, put_scos.adb, get_scos.adb (Get_SCOs, Put_SCOs): Do not + omit statement SCOs for disabled pragmas. + +2012-01-23 Matthew Heaney <heaney@adacore.com> + + * a-cohase.ads, a-cihase.ads, a-cbhase.ads, a-coorse.ads, + a-ciorse.ads, a-cborse.ads, a-cohama.ads, a-cihama.ads, a-cbhama.ads, + a-coorma.ads, a-ciorma.ads, a-cborma.ads, a-cdlili.ads, a-cidlli.ads, + a-cbdlli.ads, a-convec.ads, a-coinve.ads, a-cobove.ads (Cursor'Read, + Cursor'Write): Declare in private part. + (Reference_Type'Read, Reference_Type'Write): Ditto. + (Constant_Reference_Type'Read, Constant_Reference_Type'Write): Ditto. + +2012-01-23 Robert Dewar <dewar@adacore.com> + + * a-catizo.ads, a-calend.adb, a-calend.ads, par-ch13.adb: Minor + reformatting. + +2012-01-23 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Declaration): Do not set the + Corresponding_Body on a defaulted null formal subprogram. + * sem_ch12.adb (Check_Formal_Package_Instance): No check needed + on a defaulted formal subprogram that is a null procedure. + +2012-01-23 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch9.adb: Update the comments involving pragma Implemented. + * sem_ch3.adb (Check_Pragma_Implemented (Entity_Id)): Add local + constant Subp_Alias and local variable Impl_Subp. Properly + handle aliases of synchronized wrappers. Code cleanup. + (Check_Pragma_Implemented (Entity_Id; Entity_Id)): Add + Name_Optional as part of the condition. + * sem_prag.adb (Analyze_Pragma): Add "Optional" as one of the + valid choices of implementation kind. + (Check_Arg_Is_One_Of): New routine. + * snames.ads-tmlp: Add Name_Optional. + +2012-01-23 Ed Schonberg <schonberg@adacore.com> + + * par-ch13.adb: Better error recovery in illegal aspect + specification. + +2012-01-23 Hristian Kirtchev <kirtchev@adacore.com> + + * a-calend.adb: Add with clause for Interfaces.C. Add constant + Unix_Max. + (Day_Of_Week): Call the internal UTC_Time_Offset. + (Split): Call the internal UTC_Time_Offset. + (Time_Of): Call the internal UTC_Time_Offset. + (Time_Zone_Operations.UTC_Time_Offset): Call internal UTC_Time_Offset. + (UTC_Time_Offset): New library-level routine. + * a-calend.ads (UTC_Time_Offset): Remove parameter + Is_Historic. Update related comment on usage. + * a-catizo.adb (UTC_Time_Offset): Removed. + (UTC_Time_Offset (Time)): Call Time_Zone_Operations.UTC_Time_Offset. + * a-caltizo.ads (UTC_Time_Offset): Removed. + (UTC_Time_Offset (Time)): Add back the default expression of parameter + Date. + +2012-01-23 Robert Dewar <dewar@adacore.com> + + * sprint.ads, sprint.adb (Sprint_Node_List): Add New_Lines parameter + (pg,po,ps): Make sure each entry starts on new line. + +2012-01-23 Hristian Kirtchev <kirtchev@adacore.com> + + * a-calend.ads, a-calend.adb: Define types int and int_Pointer. Update + the parameter profile of procedure localtime_tzoff and its associated + comment. + (Day_Of_Week): Do not treat the input date as historical + with respect to time zones. + (Split): Do not treat the input + date as historical with respect to time zones. (Time_Of): Do + not treat the input constituents as forming a historical date + with respect to time zones. + (UTC_Time_Offset): Add new formal + parameter Is_Historic. Add local variable Flag. Update the call + to localtime_tzoff. + * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): New routine. + (UTC_Time_Offset (Time)): Update the call to + Time_Zone_Operations.UTC_Time_Offset. + * sysdep.c (__gnat_localtime_tzoff): Update parameter + profile. Split the processing of offsets on Windows into two - one + part of historic time stamps and the other for the current time. + +2012-01-23 Robert Dewar <dewar@adacore.com> + + * a-calend.adb: Minor reformatting. + +2012-01-23 Ed Schonberg <schonberg@adacore.com> + + * exp_ch9.adb, sem_ch9.adb: Handle array of access to synchronized + interface in requeue statement. + +2012-01-23 Cyrille Comar <comar@adacore.com> + + * projects.texi: Remove references to main units and replace + with references to main programs to be coherent with the + documentation. + +2012-01-23 Robert Dewar <dewar@adacore.com> + + * s-utf_32.adb: Minor reformatting. + +2012-01-23 Vincent Celier <celier@adacore.com> + + * snames.ads-tmpl: Minor comment addition Indicate that + Name_Library_Encapsulated_Options is only used in gprbuild. + +2012-01-23 Robert Dewar <dewar@adacore.com> + + * sem_ch10.adb (Analyze_Subunit): Properly save/restore cunit + restrictions. + +2012-01-23 Ed Schonberg <schonberg@adacore.com> + + * snames.ads-tmpl: Add Name_Synchronization. + * aspects.ads, aspects.adb: Add Aspect_Synchronization to + enumeration type and related maps. + * sem_ch13.adb (Analyze_Aspect_Specifications): Handle Aspect + Synchronization, build corresponding pragma Implemented. + * sem_util.adb (Implementation_Kind): Handle both explicit and + implicit pragma_argument association to retrieve the given + synchronization mode. + +2012-01-23 Robert Dewar <dewar@adacore.com> + + * sem_ch10.adb, errout.adb: Minor reformatting. + +2012-01-23 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb (Resolve_Actuals): An actual in a call to an + Ada 2012 Reference function does not lead to a dangerous order + dependence. + +2012-01-23 Gary Dismukes <dismukes@adacore.com> + + * exp_util.adb (Is_Iterated_Container): Test + Is_Entity_Name when searching for calls to the default iterator, + to avoid blowing up on indirect calls which have an explicit + dereference as the call name. + +2012-01-23 Thomas Quinot <quinot@adacore.com> + + * errout.adb (Set_Msg_Node): For an N_Expanded_Name, output + the complete expanded name, rather than just its Selector_Name. + +2012-01-23 Thomas Quinot <quinot@adacore.com> + + * a-textio.adb (Put): Rewrite one-parameter Character version to + just call the two-parameter one with Current_Out. + +2012-01-23 Hristian Kirtchev <kirtchev@adacore.com> + + * freeze.adb (Check_Current_Instance): Issue an + error when the prefix of 'Unchecked_Access or 'Access does not + denote a legal aliased view of a type. + (Freeze_Record_Type): Do not halt the processing of record components + once the Has_Controlled_Component is set as this bypasses the remaining + checks. + (Is_Aliased_View_Of_Type): New routine. + +2012-01-23 Thomas Quinot <quinot@adacore.com> + + * errout.ads, freeze.adb: Minor reformatting. + +2012-01-23 Thomas Quinot <quinot@adacore.com> + + * sem_ch10.adb, sem_prag.adb: Remove redundant apostrophes in error + messages. + +2012-01-23 Olivier Hainque <hainque@adacore.com> + + * adadecode.c (__gnat_decode): Deal with empty input early, + preventing potential erroneous memory access later on. + +2012-01-21 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/46192 + * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: In the case of a + renaming, preserve the volatileness through the indirection, if any. + +2012-01-14 Andreas Schwab <schwab@linux-m68k.org> + + * gcc-interface/Makefile.in (OSCONS_EXTRACT): Add + $(GNATLIBCFLAGS). + +2012-01-10 Pascal Obry <obry@adacore.com> + + * prj-nmsc.adb (Check_Library_Attributes): + Kill check for object/source directories for aggregate libraries. + +2012-01-10 Matthew Heaney <heaney@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-cborma.adb, a-cborma.ads, a-cidlli.adb, a-cidlli.ads, a-cimutr.adb, + a-cimutr.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-comutr.adb, a-comutr.ads, a-ciorma.adb, a-cobove.adb, + a-ciorma.ads, a-cobove.ads, a-convec.adb, a-convec.ads, a-cohase.adb, + a-cohase.ads, a-cbdlli.adb, a-cbdlli.ads, a-cbmutr.adb, a-cbmutr.ads, + a-cbhase.adb, a-cbhase.ads (Reference, Constant_Reference): Declare + container parameter as aliased in/in out. + Code clean ups. + +2012-01-10 Bob Duff <duff@adacore.com> + + * s-os_lib.ads: Improve comment. + +2012-01-10 Geert Bosch <bosch@adacore.com> + + * s-gearop.adb (Forward_Eliminate): Avoid improper aliasing + for complex Scalar. + +2012-01-10 Bob Duff <duff@adacore.com> + + * sem_intr.adb (Check_Shift): Use RM_Size instead of Esize, when + checking that the 'Size is correct. If the type is "mod 2**12", + for example, it's illegal, but Esize is the 'Object_Size, which + will be something like 16 or 32, so the error ('Size = 12) was + not detected. + * gnat_rm.texi: Improve documentation of shift + and rotate intrinsics. + +2012-01-10 Pascal Obry <obry@adacore.com> + + * prj.adb (For_Every_Project_Imported): Fix + implementation to make sure we return each project only once + for aggragte libraries. It is fine to return a project twice for + aggregate projects, this was the case as a Project_Id is different + in each project tree. The new implementation use a table based on + the project name to ensure proper detection of duplicate project + in aggregate library. A new context is then created to continue + retrurning duplicate project for aggregate libraries. + +2012-01-09 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (call_to_gnu): Create the temporary for the + return value in the variable-sized return type case if the target is + an array with fixed size. However, do not create it if this is the + expression of an object declaration. + +2012-01-09 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (addressable_p) <COMPONENT_REF>: Fix thinko. + +2012-01-06 Robert Dewar <dewar@adacore.com> + + * a-wichha.ads, a-wichun.ads, a-zchhan.ads, a-zchuni.ads, + s-utf_32.ads: Add pragma Pure + * s-utf_32.adb: Suppress warnings on non-static constants (now + that this is Pure). + +2012-01-06 Bob Duff <duff@adacore.com> + + * s-rpc.ads (Read, Write): Add overriding indicators. + +2012-01-06 Robert Dewar <dewar@adacore.com> + + * gnat_rm.texi: Add documentation for conventions + Ada_Pass_By_Copy and Ada_Pass_By_Reference. + +2012-01-06 Gary Dismukes <dismukes@adacore.com> + + * a-tienio.adb (Put): Add exception message on + raise statements. Remove unneeded blocks and object declarations. + +2012-01-06 Robert Dewar <dewar@adacore.com> + + * sem_prag.adb: Minor reformatting. + +2012-01-06 Ed Schonberg <schonberg@adacore.com> + + * sinfo.ads, sinfo.adb (Has_Prefixed_Call): New flag to indicate + that a selected component within a generic unit has been resolved + as a prefixed call with local references. + * sem_ch3.adb (Is_Visible_Component): In an instance body a selected + component is always visible. + * sem_ch4.adb (Analyze_Selected_Component): If the node is a + prefixed call in an instance, do not look for visible components + of the type. + * sem_ch12.adb (Reset_Entity): If a selected component has resolved + to a prefixed call, mark the node accordingly when prefix and + selector are local references. + +2012-01-02 Eric Botcazou <ebotcazou@adacore.com> + + * gnatvsn.ads (Current_Year): Bump to 2012. + +Copyright (C) 2012 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. |