From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- gcc/ada/ChangeLog-2010 | 10088 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 10088 insertions(+) create mode 100644 gcc/ada/ChangeLog-2010 (limited to 'gcc/ada/ChangeLog-2010') diff --git a/gcc/ada/ChangeLog-2010 b/gcc/ada/ChangeLog-2010 new file mode 100644 index 000000000..6c1aa5932 --- /dev/null +++ b/gcc/ada/ChangeLog-2010 @@ -0,0 +1,10088 @@ +2010-12-31 Eric Botcazou + + * gcc-interface/decl.c (substitute_in_type): Do not deal with + LANG_TYPE, METHOD_TYPE or OFFSET_TYPE. + * gcc-interface/utils.c (handle_vector_size_attribute): Do not deal + with METHOD_TYPE or OFFSET_TYPE. + +2010-12-22 Nathan Froyd + + * gcc-interface/utils.c (handle_nonnull_attribute): Use prototype_p. + (handle_sentinel_attribute): Likewise. + +2010-12-20 Ralf Wildenhues + + PR bootstrap/47027 + * a-stwiun-shared.ads: Rewrap overlong comment line. + + * projects.texi: Fix typos. + * gnat_rm.texi: Likewise. + * gnat_ugn.texi: Likewise. + * sem_util.adb: Fix typo in variable, typos in comments. + * a-btgbso.adb: Fix typos in comments. + * a-cbdlli.adb, a-cbhase.ads, a-cdlili.adb, a-cobove.adb, + a-coinve.adb, a-convec.adb, a-direct.ads, a-strunb-shared.adb, + a-strunb-shared.ads, a-stuten.ads, a-stwiun-shared.adb, + a-stwiun-shared.ads, a-stzunb-shared.adb, a-stzunb-shared.ads, + a-suenco.adb, a-suenst.adb, a-suewst.adb, a-suezst.adb, ali.ads, + aspects.ads, atree.ads, binde.adb, bindgen.adb, checks.adb, + checks.ads, einfo.ads, err_vars.ads, errout.adb, errout.ads, + exp_aggr.adb, exp_attr.adb, exp_cg.adb, exp_ch3.adb, + exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, + exp_dbug.ads, exp_disp.adb, exp_fixd.ads, freeze.adb, + g-altive.ads, g-comlin.ads, g-excact.ads, g-mbdira.adb, + g-sechas.ads, g-sehash.ads, g-sha1.ads, g-sha224.ads, + g-sha256.ads, g-sha384.ads, g-sha512.ads, g-shsh32.ads, + g-shsh64.ads, g-socket.adb, g-socket.ads, g-sothco.ads, + gcc-interface/decl.c, gcc-interface/trans.c, + gcc-interface/utils2.c, gnat1drv.adb, init.c, inline.adb, + link.c, locales.c, make.adb, mingw32.h, namet.ads, osint.adb, + par-ch12.adb, par-ch13.adb, par-ch3.adb, par-ch4.adb, + par-prag.adb, par.adb, par_sco.adb, prepcomp.adb, + prj-conf.ads, prj-dect.adb, prj-env.adb, prj-env.ads, + prj-nmsc.adb, prj-tree.ads, prj-util.ads, prj.adb, prj.ads, + s-auxdec-vms-alpha.adb, s-auxdec-vms_64.ads, s-oscons-tmplt.c, + s-osinte-vxworks.ads, s-osprim-mingw.adb, s-regexp.adb, + s-stusta.adb, s-taprop-mingw.adb, s-taprop-solaris.adb, + scn.adb, scos.ads, sem.adb, sem_aggr.adb, sem_attr.adb, + sem_aux.adb, sem_aux.ads, sem_ch12.adb, sem_ch12.ads, + sem_ch13.adb, sem_ch13.ads, sem_ch3.adb, sem_ch4.adb, + sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_disp.adb, + sem_disp.ads, sem_eval.adb, sem_intr.adb, sem_prag.adb, + sem_res.adb, sem_scil.adb, sem_util.ads, sem_warn.adb, + sem_warn.ads, sinfo.ads, socket.c, styleg.adb, switch.ads, + sysdep.c, tb-alvxw.c, xoscons.adb: Likewise. + +2010-12-13 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : + Build a stub DECL for the dummy fat pointer type in the unconstrained + array case. + * gcc-interface/utils.c (update_pointer_to): Set the DECL_ORIGINAL_TYPE + for all the variants in the fat pointer case. + +2010-12-13 Eric Botcazou + + * gcc-interface/trans.c (can_be_lower_p): New predicate. + (Loop_Statement_to_gnu): Do not generate the entry condition if we know + that it will be true. + +2010-12-03 Joseph Myers + + * gcc-interface/lang.opt (k8): New option. + +2010-12-03 Alexandre Oliva + + * gnatvsn.adb (Gnat_Version_String): Don't overrun Ver_Len_Max. + * gnatvsn.ads (Ver_Len_Max): Bump up to 256. + * g-comver.adb (Ver_Len_Max): Likewise. + +2010-12-03 Laurynas Biveinis + + * gcc-interface/decl.c (struct subst_pair_d): Remove GTY tag. + (variant_desc_d): Likewise. + +2010-12-01 Joseph Myers + + * gcc-interface/misc.c (flag_compare_debug, flag_stack_check): + Undefine as macros then define as variables. + (gnat_post_options): Set variables from global_options. + +2010-11-27 Eric Botcazou + + PR ada/46574 + * gcc-interface/utils2.c (compare_elmt_bitpos): Fix typos. + +2010-11-27 Eric Botcazou + + PR ada/40777 + * gcc-interface/targtyps.c (get_target_double_scalar_alignment): Guard + use of TARGET_64BIT macro. + +2010-11-27 Eric Botcazou + + * s-osinte-linux.ads (sigset_t): Use unsigned_char subtype directly. + (unsigned_long_long_t): New modular type. + (pthread_cond_t): Add alignment clause. + +2010-11-27 Eric Botcazou + + * gnatvsn.adb (Version_String): Change type to C-like array of chars. + (Gnat_Version_String): Adjust to above change. + +2010-11-18 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Also + use return-by-invisible-reference if the return type is By_Reference. + Tidy up and skip the processing of the return type if it is void. + +2010-11-17 Joseph Myers + + * gcc-interface/misc.c (gnat_parse_file): Take no arguments. + +2010-11-17 Eric Botcazou + + * gcc-interface/trans.c (addressable_p): Rewrite obsolete paragraph in + head comment. + +2010-11-12 Joseph Myers + + * gcc-interface/Make-lang.in (ada/misc.o): Use $(OPTS_H). + * gcc-interface/misc.c (gnat_handle_option): Take location_t parameter. + +2010-11-10 Eric Botcazou + + * gcc-interface/trans.c (gigi): Don't set 'pure' flag on SJLJ routines. + * gcc-interface/utils2.c (compare_arrays): Add LOC parameter. Set it + directly on all the comparison expressions. + (build_binary_op): Pass input_location to compare_arrays. + +2010-11-10 Eric Botcazou + + * gcc-interface/trans.c (lvalue_required_p) ): Look + through it for elementary types as well. + : Adjust to above change. + : Likewise. + (gnat_to_gnu): Do not attempt to rewrite boolean literals. + +2010-11-10 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set DECL_ARTIFICIAL + on the reused DECL node coming from a renamed object. + Set DECL_IGNORED_P on the DECL node built for renaming entities if they + don't need debug info. + +2010-11-09 Eric Botcazou + + * gcc-interface/utils.c (save_gnu_tree): Improve comments. + (get_gnu_tree): Likewise. + +2010-11-09 Eric Botcazou + + * gcc-interface/decl.c (finish_fat_pointer_type): New function. + (gnat_to_gnu_entity) : Use it to build the fat pointer + type. + : Likewise. + +2010-11-02 Eric Botcazou + + * gcc-interface/gigi.h (add_stmt_force): Declare. + (add_stmt_with_node_force): Likewise. + * gcc-interface/trans.c (Attribute_to_gnu): Don't set TREE_SIDE_EFFECTS + on the SAVE_EXPR built for cached expressions of parameter attributes. + (Subprogram_Body_to_gnu): Force evaluation of the SAVE_EXPR built for + cached expressions of parameter attributes. + (add_stmt_force): New function. + (add_stmt_with_node_force): Likewise. + +2010-10-27 Eric Botcazou + + * gcc-interface/trans.c (gigi): Fix formatting issues. + (build_raise_check): Likewise. + (gnat_to_gnu): Likewise. + * gcc-interface/utils2.c (build_call_raise_range): Likewise. + (build_call_raise_column): Likewise. + +2010-10-26 Robert Dewar + + * exp_ch5.adb, exp_prag.adb, sem_ch3.adb, exp_atag.adb, layout.adb, + sem_dist.adb, exp_ch7.adb, exp_util.adb, exp_attr.adb, exp_ch9.adb, + sem_ch10.adb, checks.adb, sem_prag.adb, par-endh.adb, sem_ch12.adb, + exp_smem.adb, sem_attr.adb, exp_ch4.adb, exp_ch6.adb, exp_ch8.adb, + sem_ch6.adb, exp_disp.adb, exp_aggr.adb, exp_dist.adb, sem_ch13.adb, + par-ch3.adb, par-ch5.adb, exp_strm.adb, exp_ch3.adb: Minor reformatting + * opt.ads: Minor comment fix. + +2010-10-26 Vincent Celier + + * gnat_ugn.texi: Document option -s for gnatlink. + +2010-10-26 Robert Dewar + + * opt.ads: Move documentation on checksum stuff here from prj-nmsc + * prj-nmsc.adb (Process_Project_Level_Array_Attributes): Move + documentation on checksum versions to opt.ads. + +2010-10-26 Vincent Celier + + * opt.ads (Checksum_Accumulate_Token_Checksum): New Boolean flag, + defaulted to True. + (Checksum_GNAT_6_3): New name of Old_Checksums + (Checksum_GNAT_5_03): New name of Old_Old_Checksums + * prj-nmsc.adb (Process_Project_Level_Array_Attributes): Adapt to new + names of Opt flags. + Set Checksum_Accumulate_Token_Checksum to False if GNAT version is 5.03 + or before. + * scng.adb (Accumulate_Token_Checksum_GNAT_6_3): New name of procedure + Accumulate_Token_Checksum_Old. + (Accumulate_Token_Checksum_GNAT_5_03): New name of procedure + Accumulate_Token_Checksum_Old_Old. + (Nlit): Call Accumulate_Token_Checksum only if + Opt.Checksum_Accumulate_Token_Checksum is True. + (Scan): Ditto + +2010-10-26 Robert Dewar + + * sem_ch13.adb (Build_Invariant_Procedure): New calling sequence. + (Build_Invariant_Procedure): Properly handle analysis of invariant + expression with proper end-of-visible-decls visibility. + * sem_ch13.ads (Build_Invariant_Procedure): Changed calling sequence. + * sem_ch3.adb (Process_Full_View): Don't build invariant procedure + (too late). + (Analyze_Private_Extension_Declaration): Propagate invariant flags. + * sem_ch7.adb (Analyze_Package_Specification): Build invariant + procedures. + +2010-10-26 Vincent Celier + + * opt.ads (Old_Checksums, Old_Old_Checksums): New Boolean flags, + defaulted to False. + * prj-nmsc.adb (Process_Project_Level_Array_Attributes): When + processing attribute Toolchain_Version ("Ada"), set Opt.Old_Checksums + and Opt.Old_Old_Checksums depending on the GNAT version. + * scng.adb (Accumulate_Token_Checksum_Old): New procedure. + (Accumulate_Token_Checksum_Old_Old): New procedure. + (Scan): For keywords, when Opt.Old_Checksums is True, call one of the + alternative procedures Accumulate_Token_Checksum_Old or + Accumulate_Token_Checksum_Old_Old, instead of Accumulate_Token_Checksum. + +2010-10-26 Richard Kenner + + * gcc-interface/utils2.c (build_compound_expr): New function. + * gcc-interface/gigi.h (build_compound_expr): Declare it. + * gcc-interface/trans.c (Attribute_to_gnu, call_to_gnu): Use it. + (gnat_to_gnu, case N_Expression_With_Actions): Likewise. + +2010-10-26 Javier Miranda + + * sem_prag.adb (Process_Import_Or_Interface): Skip primitives of + interface types when processing all the entities in the homonym chain + that are declared in the same declarative part. + +2010-10-26 Ed Schonberg + + * sem_ch3.adb (Process_Range_In_Decl): If the range is part of a + quantified expression, the insertion point for range checks will be + arbitrarily far in the tree. + * sem_ch5.adb (One_Bound): Use Insert_Actions for the declaration of + the temporary that holds the value of the bounds. + * sem_res.adb (Resolve_Quantified_Expressions): Disable expansion of + condition until the full expression is expanded. + +2010-10-26 Robert Dewar + + * opt.ads: Comment fix. + * sem_cat.adb: Treat categorization errors as warnings in GNAT Mode. + * switch-c.adb: GNAT Mode does not set + Treat_Categorization_Errors_As_Warnings. + +2010-10-26 Ed Schonberg + + * sem_ch8.adb (Analyze_Subprogram_Renaming): Improve warning when an + operator renames another one with a different name. + +2010-10-26 Thomas Quinot + + * exp_ch4.adb, exp_pakd.adb: Minor reformatting. + +2010-10-26 Bob Duff + + * namet.adb: Improve hash function. + +2010-10-26 Thomas Quinot + + * sem_disp.adb: Minor reformatting. + +2010-10-26 Robert Dewar + + * sem_ch3.adb, sem_ch4.adb, sem_disp.adb, switch-c.adb: Minor + reformatting. + * gnat_ugn.texi: Document -gnateP switch. + +2010-10-26 Robert Dewar + + * opt.ads (Treat_Categorization_Errors_As_Warnings): New flag + * sem_cat.adb (Check_Categorization_Dependencies): + Use Check_Categorization_Dependencies + * switch-c.adb: GNAT Mode sets Treat_Categorization_Errors_As_Warnings + -gnateP sets Treat_Categorization_Errors_As_Warnings + * usage.adb: Add line for -gnateP switch + +2010-10-26 Javier Miranda + + * sem_ch3.adb (Add_Internal_Interface_Entities): Handle primitives + inherited from the parent that cover interface primitives. + (Derive_Progenitor_Subprograms): Handle primitives inherited from + the parent that cover interface primitives. + * sem_disp.adb (Find_Primitive_Covering_Interface): When searching in + the list of primitives of the type extend the test to include inherited + private primitives. + * sem_ch6.ads (Is_Interface_Conformant): Add missing documentation. + * sem_ch7.adb (Declare_Inherited_Private_Subprograms): Add missing + barrier to the loop searching for explicit overriding primitives. + * sem_ch4.adb (Analyze_Indexed_Component_Form): Add missing barrier + before accessing attribute Entity. + +2010-10-26 Bob Duff + + * make.adb: Call Namet.Finalize, so we can get statistics. + +2010-10-26 Geert Bosch + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Use the subprogram_body + node to determine wether the subprogram is a rewritten parameterized + expression. + +2010-10-26 Robert Dewar + + * opt.ads: Minor code reorganization. Alphabetize Warning switches. + +2010-10-26 Robert Dewar + + * sem_res.adb, xsinfo.adb: Minor reformatting. + +2010-10-26 Bob Duff + + * namet.adb (Finalize): More cleanup of statistics printouts. + +2010-10-26 Robert Dewar + + * ceinfo.adb: Minor reformatting. + +2010-10-26 Javier Miranda + + * sem_ch6.adb (Check_Overriding_Indicator, New_Overloaded_Entity): When + setting attribute Overridden_Operation do not reference the entities + generated by Derive_Subprograms but their aliased entity (which + is the primitive inherited from the parent type). + +2010-10-26 Bob Duff + + * namet.adb, namet.ads: Minor cleanup. + +2010-10-26 Arnaud Charlet + + * gcc-interface/Make-lang.in: Update dependencies. + +2010-10-26 Robert Dewar + + * einfo.ads, einfo.adb (Is_Base_Type): New function, use it where + appropriate. + * exp_ch6.adb, exp_dbug.adb, exp_disp.adb, freeze.adb, lib-xref.adb, + sem_aux.adb, sem_ch3.adb, sem_ch7.adb, sem_ch8.adb (Is_Base_Type): Use + this new abstraction where appropriate. + +2010-10-26 Ed Schonberg + + * sem_ch12.adb: Code clean up. + +2010-10-26 Paul Hilfinger + + * exp_dbug.ads: Document effect of 'pragma Unchecked_Union' on + debugging data. + +2010-10-26 Ed Schonberg + + * sem_util.adb (Note_Possible_Modification): If the target of an + assignment is the bound variable in an iterator, the domain of + iteration, i.e. array or container, is modified as well. + +2010-10-26 Bob Duff + + * Make-generated.in: Make the relevant make targets depend on + ceinfo.adb and csinfo.adb. + * csinfo.adb, ceinfo.adb: Make sure it raises an exception on failure, + so when called from xeinfo, the failure will be noticed. + * sinfo.ads: Update comments to reflect the fact that xsinfo runs csinfo + * xsinfo.adb, xeinfo.adb: Run ceinfo to check for errors. Close files. + +2010-10-26 Ed Schonberg + + * exp_ch4.adb: Set properly parent field of operands of concatenation. + +2010-10-26 Ed Schonberg + + * sem_res.adb (Check_Infinite_Recursion): A recursive call within a + conditional expression or a case expression should not generate an + infinite recursion warning. + +2010-10-26 Javier Miranda + + * einfo.ads, einfo.adb (Is_Overriding_Operation): Removed. + (Set_Is_Overriding_Operation): Removed. + * sem_ch3.adb (Check_Abstract_Overriding): Remove redundant call to + Is_Overriding_Operation. + * exp_ch7.adb (Check_Visibly_Controlled): Remove redundant call to + Is_Overriding_Operation. + * sem_ch7.adb (Declare_Inherited_Private_Subprograms): Remove redundant + call to Set_Is_Overriding_Operation. + * sem_util.adb (Collect_Primitive_Operations): Replace test on + Is_Overriding_Operation by test on the presence of attribute + Overridden_Operation. + (Original_Corresponding_Operation): Remove redundant call to attribute + Is_Overriding_Operation. + * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Remove + redundant call to Is_Overriding_Operation. + (Verify_Overriding_Indicator): Replace several occurrences of test on + Is_Overriding_Operation by test on the presence of attribute + Overridden_Operation. + (Check_Convention): Replace test on Is_Overriding_Operation by test on + the presence of Overridden_Operation. + (Check_Overriding_Indicator): Add missing decoration of attribute + Overridden_Operation. Minor code cleanup. + (New_Overloaded_Entity): Replace occurrence of test on + Is_Overriding_Operation by test on the presence of attribute + Overridden_Operation. Remove redundant setting of attribute + Is_Overriding_Operation plus minor code reorganization. + Add missing decoration of attribute Overridden_Operation. + * sem_elim.adb (Set_Eliminated): Replace test on + Is_Overriding_Operation by test on the presence of Overridden_Operation. + * sem_ch8.adb (Analyze_Subprogram_Renaming): Replace test on + Is_Overriding_Operation by test on the presence of + Overridden_Operation. Remove a redundant test on attribute + Is_Overriding_Operation. + * lib-xref.adb (Generate_Reference): Replace test on + Is_Overriding_Operation by test on the presence of Overridden_Operation. + (Output_References): Replace test on Is_Overriding_Operation by test on + the presence of Overridden_Operation. + * sem_disp.adb (Override_Dispatching_Operation): Replace test on + Is_Overriding_Operation by test on the presence of Overridden_Operation. + Add missing decoration of attribute Overridden_Operation. + +2010-10-26 Robert Dewar + + * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Properly check + RM 13.4.1(10). + +2010-10-26 Bob Duff + + * sem_res.adb (Resolve_Actuals): In case of certain + internally-generated type conversions (created by OK_Convert_To, so the + Conversion_OK flag is set), avoid fetching the component type when it's + not really an array type, but a private type completed by an array type. + +2010-10-26 Ed Schonberg + + * sem_ch5.adb: Adjust format of error message. + +2010-10-26 Robert Dewar + + * einfo.ads, einfo.adb (OK_To_Reference): Removed, no longer used. + * exp_util.adb (Side_Effect_Free): Put in safety barrier in code to + detect renamings to avoid problems with invariants. + * sem_ch13.adb (Replace_Type_References_Generic): New procedure + (Build_Invariant_Procedure): Use Replace_Type_Reference_Generic + (Build_Predicate_Function): Use Replace_Type_Reference_Generic + * sem_res.adb, sem_ch8.adb, sem_ch4.adb (OK_To_Reference): Remove + references, flag is no longer set. + +2010-10-26 Vincent Celier + + * prj.ads (Source_Data): New Boolean component Initialized, defaulted + to False, set to True when Source_Data is completely initialized. + * prj-env.adb: Minor comment fix. + +2010-10-26 Robert Dewar + + * sem_case.adb, sem_ch6.adb, sem_util.adb: Minor reformatting. + +2010-10-26 Ed Schonberg + + * sem_ch5.adb (Analyze_Iteration_Scheme): Diagnose attempt to use thew + form "for X in A" when A is an array object. This form is only intended + for containers. + * sem_eval.adb: Fix reference to non-existing field of type conversion + node. + * sem_case.adb (Check_Choices): Improve error reporting for overlapping + choices in case statements. + +2010-10-26 Gary Dismukes + + * exp_disp.adb (Expand_Interface_Actuals): When expanding an actual for + a class-wide interface formal that involves applying a displacement + conversion to the actual, check for the case of calling a build-in-place + function and handle generation of the implicit BIP parameters (call + Make_Build_In_Place_Call_In_Anonymous_Context). + Add with and use of Exp_Ch6. + +2010-10-26 Robert Dewar + + * sem_prag.adb, sem_cat.ads: Minor reformatting. + +2010-10-26 Sergey Rybin + + * vms_data.ads: Define VMS qualifier for gnatelim '--ignore' option + +2010-10-26 Thomas Quinot + + * sem_util.adb (Has_Preelaborable_Initialization.Check_Components): + For a discriminant, use Discriminant_Default_Value rather than + Expression (Declaration_Node (D)). + +2010-10-26 Geert Bosch + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Parameterized + expressions don't need a spec, even when style checks require + subprograms to have one. + +2010-10-26 Arnaud Charlet + + * gnatvsn.ads: Update comments. + +2010-10-26 Matthew Heaney + + * Makefile.rtl, impunit.adb: Add bounded hashed set and bounded hashed + map containers. + * a-cohata.ads: Add declaration of generic package for bounded hash + table types. + * a-chtgbo.ads, a-chtgbo.adb, a-chtgbk.ads, a-chtgbk.adb, a-cbhase.ads, + a-cbhase.adb, a-cbhama.ads, a-cbhama.adb: New files. + +2010-10-26 Ed Schonberg + + * sem_warn.adb: Improve warning message on overlapping actuals. + +2010-10-26 Thomas Quinot + + * sem_ch4.adb, exp_dist.adb: Minor reformatting. + +2010-10-26 Vincent Celier + + * makeusg.adb (Makeusg): Add lines for switches -vl, -vm and -vh. + +2010-10-26 Robert Dewar + + * exp_ch3.adb (Expand_N_Object_Declaration): Move generation of + predicate check to analyzer, since too much rewriting occurs in the + analyzer. + * sem_ch13.adb (Build_Predicate_Function): Change calling sequence, and + change the order in which things are done to fix several errors in + dealing with qualification of the type name. + (Build_Static_Predicate): Built static predicate after full analysis + of the body. This is necessary to fix several problems. + * sem_ch3.adb (Analyze_Object_Declaration): Move predicate check here + from expander, since too much expansion occurs in the analyzer to leave + it that late. + (Analyze_Object_Declaration): Change parameter Include_Null to new name + Include_Implicit in Is_Partially_Initialized_Type call. + (Analyze_Subtype_Declaration): Make sure predicates are proapagated in + some strange cases of internal subtype generation. + * sem_util.ads, sem_util.adb (Is_Partially_Initialized_Type): Change + Include_Null to Include_Implicit, now includes the case of + discriminants. + +2010-10-26 Sergey Rybin + + * gnat_rm.texi: Revise the documentation for pragma Eliminate. + +2010-10-26 Matthew Heaney + + * Makefile.rtl, impunit.adb: Added bounded list container. + * a-cbdlli.ads, a-cbdlli.adb: New file. + +2010-10-25 Eric Botcazou + + * gcc-interface/utils2.c: Include flags.h and remove prototypes. + (build_unary_op) : When not optimizing, fold the result + of the call to invert_truthvalue_loc. + * gcc-interface/Make-lang.in (utils2.o): Add $(FLAGS_H). + +2010-10-25 Eric Botcazou + + * gcc-interface/utils.c (update_pointer_to): Clear TYPE_POINTER_TO and + TYPE_REFERENCE_TO of the old type after redirecting its pointer and + reference types. + +2010-10-25 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not set + TREE_THIS_NOTRAP on the INDIRECT_REF node built for the template. + +2010-10-25 Jose Ruiz + + * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for powerpc-linux): + Reorganize target pairs so that it works on linux and ElinOS. + +2010-10-25 Pascal Obry + + * adaint.c (__gnat_file_time_name_attr): Use GetFileAttributesEx to get + the timestamp. A bit faster than opening/closing the file. + (__gnat_stat_to_attr): Remove kludge for Windows. + (__gnat_file_exists_attr): Likewise. + The timestamp is now retreived using GetFileAttributesEx as faster. + +2010-10-25 Javier Miranda + + * sem_ch3.adb (Derive_Interface_Subprogram): New subprogram. + (Derive_Subprograms): For abstract private types transfer to the full + view entities of uncovered interface primitives. Required because if + the interface primitives are left in the private part of the package + they will be decorated as hidden when the analysis of the enclosing + package completes (and hence the interface primitive is not visible + for dispatching calls). + +2010-10-25 Matthew Heaney + + * Makefile.rtl, impunit.adb: Added bounded set and bounded map + containers. + * a-crbltr.ads: Added declaration of generic package for bounded tree + types. + * a-rbtgbo.ads, a-rbtgbo.adb, a-rbtgbk.ads, a-rbtgbk.adb, a-btgbso.ads, + a-btgbso.adb, a-cborse.ads, a-cborse.adb, a-cborma.ads, a-cborma.adb: + New. + +2010-10-25 Thomas Quinot + + * sem_util.adb: Minor reformatting. + * usage.adb: Fix usage line for -gnatwh. + +2010-10-25 Thomas Quinot + + * sem_ch12.adb (Analyze_Package_Instantiation): For an + instantiation in an RCI spec, omit package body if instantiation comes + from source, even as a nested + package. + * exp_dist.adb (Add_Calling_Stubs_To_Declarations, + *_Support.Add_Receiving_Stubs_To_Declarations): Handle the case of + nested packages, package instantiations and subprogram instantiations. + +2010-10-25 Robert Dewar + + * exp_ch5.adb (Expand_Predicated_Loop): Remove code for loop through + non-static predicate, since we agree not to allow this. + (Expand_Predicated_Loop): Properlay handle false predicate (null + list in Static_Predicate field. + * sem_ch13.adb (Build_Static_Predicate): Extensive changes to clean up + handling of more general predicate forms. + +2010-10-25 Robert Dewar + + * sem_ch4.adb, sem_util.adb: Minor reformatting. + * sem_ch8.adb (Find_Selected_Component): Allow selection from instance + of type in predicate or invariant expression. + +2010-10-25 Pascal Obry + + * adaint.c (__gnat_stat_to_attr): Can set the timestamp on Windows now. + (f2t): New routine. + (__gnat_stat): Rewrite Win32 version. + +2010-10-25 Robert Dewar + + * sem_warn.adb, einfo.ads, exp_ch4.adb: Minor comment fix + * sem_case.adb: Comment clarification for loops through false + predicates. + * sem_util.adb: Minor reformatting + (Check_Order_Dependence): Fix bad double blank in error message + +2010-10-25 Ed Schonberg + + * sem_ch4.adb (Analyze_Membership_Op): in Ada_2012 a membership + operation can have a single alternative that is a value of the type. + Rewrite operation as an equality test. + +2010-10-25 Matthew Heaney + + * Makefile.rtl, impunit.adb: Added a-cobove (bounded vector container) + to lists. + * a-contai.ads: Added declaration of Capacity_Error exception. + * a-cobove.ads, a-cobove.adb: New files. + +2010-10-25 Thomas Quinot + + * uname.adb: Revert previous change, no longer needed after change + in par-ch10.adb. + +2010-10-25 Thomas Quinot + + * scos.ads: Minor comment fix. + +2010-10-25 Ed Schonberg + + * sem_ch5.adb (Analyze_Assignment_Statement): Check dangerous order + dependence. + * sem_ch6.adb (Analyze_Procedure_Call_Statement): Ditto. + * sem_res.adb (Analyze_Actuals): Add actual to list of actuals for + current construct, for subsequent order dependence checking. + (Resolve): Check order dependence on expressions that are not + subexpressions. + * sem_util.adb (Check_Order_Dependence): Code cleanup, to correspond + to latest version of AI05-144-2. + * sem_warn.adb (Warn_On_Overlapping_Actuals): Code cleanup. + +2010-10-25 Robert Dewar + + * sem_ch13.adb (Build_Static_Predicate): Moved out of + Build_Predicate_Function. + (Build_Static_Predicate): Complet rewrite for more general predicates + +2010-10-25 Richard Kenner + Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity, case E_Function): Allow + In Out/Out parameters for functions. + * gcc-interface/trans.c (gnu_return_var_stack): New variable. + (create_init_temporary): New static function. + (Subprogram_Body_to_gnu): Handle In Out/Out parameters for functions. + (call_to_gnu): Likewise. Use create_init_temporary in order to create + temporaries for unaligned parameters and return value. If there is an + unaligned In Out or Out parameter passed by reference, push a binding + level if not already done. If a binding level has been pushed and the + call is returning a value, create the call statement. + (gnat_to_gnu) : Handle In Out/Out parameters for + functions. + +2010-10-22 Ben Brosgol + + * gnat_rm.texi: Add chapter on Ada 2012 support. + +2010-10-22 Robert Dewar + + * sem_ch12.adb: Minor reformatting. + +2010-10-22 Thomas Quinot + + * exp_dist.adb: Mark missing case of nested package when expanding + stubs. + +2010-10-22 Ed Schonberg + + * par-ch10.adb: Discard incomplete with_clause. + +2010-10-22 Robert Dewar + + * checks.adb (Enable_Range_Check): Remove code suppressing range check + if static predicate present, not needed. + * exp_attr.adb (Expand_Pred_Succ): Check Suppress_Assignment_Checks flag + * exp_ch3.adb (Expand_N_Object_Declaration): Check + Suppress_Assignment_Checks flag. + * exp_ch4.adb (Expand_N_In): Make some corrections for proper handling + of ranges when predicates are present. + * exp_ch5.adb (Expand_Predicated_Loop): New procedure + (Expand_N_Assignment_Statement): Check Suppress_Assignment_Checks flag + (Expand_N_Loop_Statement): Handle loops over predicated types + * sem_case.adb (Analyze_Choices): Remove extra blank in error message. + * sem_ch13.adb (Build_Predicate_Function.Add_Call): Suppress info + message for inheritance if within a generic instance, not useful there! + (Build_Static_Predicate): Optimize test in predicate function + based on static ranges determined. + * sem_ch5.adb (Analyze_Iteration_Scheme): Error for loop through + subtype with non-static predicate. + * sinfo.ads, sinfo.adb (Suppress_Assignment_Checks): New flag. + +2010-10-22 Thomas Quinot + + * uname.adb (Get_Unit_Name.Add_Node_Name): If encountering an error + node in the unit name, propagate Program_Error to guard against + cascaded errors. + +2010-10-22 Javier Miranda + + * sem_ch8.adb (Find_Selected_Component): Do not generate a subtype for + selected components of dispatch table wrappers. + +2010-10-22 Ed Schonberg + + * exp_ch9.adb (Make_Initialize_Protection): A protected type that + implements an interface must be treated as if it has entries, to + support dispatching select statements. + +2010-10-22 Robert Dewar + + * sem_aggr.adb, sem_ch3.adb: Minor reformatting. + +2010-10-22 Javier Miranda + + * sem_aggr.adb (Resolve_Array_Aggregate.Add): If the type of the + aggregate has a non standard representation the attributes 'Val and + 'Pos expand into function calls and the resulting expression is + considered non-safe for reevaluation by the backend. Relocate it into + a constant temporary to indicate to the backend that it is side + effects free. + +2010-10-22 Ed Schonberg + + * sem_ch3.adb (Build_Concurrent_Derived_Type): Create declaration for + derived corresponding record type only when expansion is enabled. + +2010-10-22 Robert Dewar + + * sem_case.adb, sem_attr.adb (Bad_Predicated_Subtype_Use): Change order + of parameters. + * sem_ch13.adb (Build_Predicate_Function): Don't give inheritance + messages for generic actual subtypes. + * sem_ch9.adb, sem_res.adb, sem_util.adb, sem_util.ads, sem_ch3.adb + (Bad_Predicated_Subtype_Use): Use this procedure. + +2010-10-22 Robert Dewar + + * sem_ch5.adb: Minor reformatting. + +2010-10-22 Robert Dewar + + * a-except-2005.adb (Rmsg_18): New message text. + * a-except.adb (Rmsg_18): New message text. + * atree.adb (List25): New function + (Set_List25): New procedure + * atree.ads (List25): New function + (Set_List25): New procedure + * einfo.adb (Static_Predicate): Is now a list + (OK_To_Reference): Present in all entities + * einfo.ads (Static_Predicate): Is now a list + (OK_To_Reference): Applies to all entities + * exp_ch13.adb (Build_Predicate_Function): Moved to Sem_Ch13 + * sem_attr.adb (Bad_Attribute_For_Predicate): Call + Bad_Predicated_Subtype_Use. + * sem_case.ads, sem_case.adb: Major surgery to deal with predicated + subtype case. + * sem_ch13.adb (Build_Predicate_Function): Moved from Exp_Ch13 to + Sem_Ch13. + (Build_Static_Predicate): New procedure handles static predicates. + * sem_ch3.adb (Analyze_Subtype_Declaration): Delay freeze on subtype + with no constraint if ancestor subtype has predicates. + (Analyze_Variant_Part): New calling sequence for Analyze_Choices + * sem_ch4.adb (Junk_Operand): Don't complain about OK_To_Reference + entity. + (Analyze_Case_Expression): New calling sequence for Analyze_Choices + * sem_ch5.adb (Analyze_Case_Statement): New calling sequence for + Analyze_Choices. + * sem_util.ads, sem_util.adb (Bad_Predicated_Subtype_Use): New procedure + * types.ads (PE_Bad_Predicated_Generic_Type): Replaces + PE_Bad_Attribute_For_Predicate. + * atree.h: Add definition of List25. + +2010-10-22 Jerome Lambourg + + * gnatlink.adb (Process_Binder_File): Remove CLI-specific code, now + moved to dotnet-ld. + (Gnatlink): Remove CLI-specific code, moved to dotnet-ld + * bindgen.adb (Gen_Object_Files_Options): Do not issue -L switches with + the .NET compiler, useless and unsupported. + +2010-10-22 Robert Dewar + + * sem_util.ads (Get_Num_Lit_From_Pos): Fix errors in documentation, + this returns a Node_Id for a reference to the entity, not the entity + itself! + +2010-10-22 Ed Schonberg + + * sem_ch5.adb (Analyze_Iteration_Scheme): use Insert_Actions when + bounds require a temporary. + +2010-10-22 Robert Dewar + + * sem_ch4.adb: Minor reformatting. + * sinfo.ads: Minor comment fixes for Ada 2012 syntax. + +2010-10-22 Robert Dewar + + * par-ch5.adb: Minor reformatting. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-10-22 Robert Dewar + + * a-except.adb, a-except-2005.adb: Add new Rcheck entry. + * exp_ch13.adb (Add_Call): Make sure subtype is marked with + Has_Predicates set to True if it inherits predicates. + * sem_attr.adb: Handle 'First/'Last/'Range for predicated types + * types.ads (PE_Bad_Attribute_For_Predicate): New reason code + * types.h: Add new Rcheck entry. + * einfo.ads, einfo.adb (Static_Predicate): New field. + Minor code reorganization (file float routines in proper section) + Fix bad field name in comments. + +2010-10-22 Robert Dewar + + * sem_eval.adb (Subtypes_Statically_Compatible): Check null exclusion + case. + +2010-10-22 Vincent Celier + + * prj-conf.adb (Get_Config_Switches): Detect if there is at least one + declaration of IDE'Compiler_Command for one of the language in the main + project. + (Do_Autoconf): If there were at least one Compiler_Command declared and + no target, invoke gprconfig with --target=all instead of the normalized + host name. + +2010-10-22 Robert Dewar + + * par-ch4.adb: Update syntax in comments for Ada 2012. + * sinfo.ads: Update syntax in comments for Ada 2012 + * par-ch3.adb (Check_Restricted_Expression): Remove "in Ada 2012 mode" + from msg. + +2010-10-22 Gary Dismukes + + * sem_ch3.adb (Check_Or_Process_Discriminants): In Ada 2012, allow + limited tagged types to have defaulted discriminants. Customize the + error message for the Ada 2012 case. + (Process_Discriminants): In Ada 2012, allow limited tagged types to have + defaulted discriminants. Customize the error message for the Ada 2012 + case. + * sem_ch6.adb (Create_Extra_Formals): Suppress creation of the extra + formal for out formals of discriminated types in the case where the + underlying type is a limited tagged type. + * exp_attr.adb (Expand_N_Attribute_Reference, case + Attribute_Constrained): Return True for 'Constrained when the + underlying type of the prefix is a limited tagged type. + +2010-10-22 Thomas Quinot + + * sem_ch3.adb (Complete_Private_Subtype): The full view of the subtype + may already have a rep item chain inherited from the full view of the + base type, so do not overwrite it when propagating rep items from the + partial view of the subtype. + * sem_ch3.adb: Minor code reorganization. Minor reformatting. + +2010-10-22 Sergey Rybin + + * gnat_ugn.texi (gnatmetric): Remove description of debug option. + +2010-10-22 Tristan Gingold + + * adaint.c (__gnat_number_of_cpus): Add implementation for VMS. + +2010-10-22 Ed Schonberg + + * par-ch5.adb: Set properly starting sloc of loop parameter. + +2010-10-22 Ed Schonberg + + * sem_util.adb (May_Be_Lvalue): An actual in a function call can be an + lvalue in Ada2012, if the function has in-out parameters. + +2010-10-22 Robert Dewar + + * cstand.adb, einfo.adb, exp_attr.adb, sem_prag.adb, sem_vfpt.adb, + sem_ch10.adb: Minor reformatting. + +2010-10-22 Sergey Rybin + + * gnat_ugn.texi: Remove most of the content of gnatcheck chapter. + +2010-10-22 Ed Schonberg + + * sem_attr.adb: Handle indexed P'old. + +2010-10-22 Geert Bosch + + * cstand.adb (Build_Float_Type): Set Float_Rep according to platform. + * einfo.ads (Float_Rep): New attribute. + (Float_Rep_Kind): Move from body. Add comments. + * einfo.adb (Float_Rep_Kind): Move to spec + (Float_Rep): Now a real field instead of local function. + (Set_Float_Rep): New procedure to set floating point representation + (Set_Vax_Float): Remove. + (Write_Entity_Flags): Remove Vax_Float flag. + (Write_Field10_Name): Add E_Floating_Point_Type case for Float_Rep. + * exp_attr.adb (Attribute_Valid): Use case statement for representation + specific processing. + * sem_ch3.adb (Build_Derived_Numeric_Type, + Floating_Point_Type_Declaration): Set Float_Rep instead of Vax_Float + attribute. + * sem_util.ads, sem_util.adb (Is_AAMP_Float): Remove. + * sem_vfpt.adb (Set_D_Float, Set_F_Float, Set_G_Float, Set_IEEE_Long, + Set_IEEE_Short): Set Float_Rep instead of Vax_Float attribute. + +2010-10-22 Robert Dewar + + * sprint.adb: Minor reformatting. + +2010-10-22 Robert Dewar + + * exp_ch3.adb (Expand_N_Object_Declaration): Do required predicate + checks. + * sem_ch3.adb (Complete_Private_Subtype): Propagate predicates to full + view. + * sem_ch6.adb (Invariants_Or_Predicates_Present): New name for + Invariants_Present. + (Process_PPCs): Handle predicates generating post conditions + * sem_util.adb (Is_Partially_Initialized_Type): Add + Include_Null parameter. + * sem_util.ads (Is_Partially_Initialized_Type): Add + Include_Null parameter. + +2010-10-22 Sergey Rybin + + * gnat_ugn.texi (gnatelim): Add description for '--ignore' option + +2010-10-22 Thomas Quinot + + * sem_prag.adb (Check_First_Subtype): Specialize error messages for + case where argument is not a type. + +2010-10-22 Robert Dewar + + * exp_ch5.adb, par-ch4.adb, par-ch5.adb, sem_ch5.adb, sinfo.ads: Minor + reformatting. + +2010-10-22 Arnaud Charlet + + * a-locale.adb: Minor code clean up. + +2010-10-22 Thomas Quinot + + * exp_ch4.adb: Minor code reorganization and factoring. + +2010-10-22 Thomas Quinot + + * exp_ch5.adb, sem_ch5.adb, sinfo.ads, snames.ads-tmpl, par-ch5.adb: + Minor reformatting. + +2010-10-22 Geert Bosch + + * stand.ads: Fix typo in comment. + +2010-10-22 Ed Schonberg + + * sem_ch6.adb: Enable in-out parameter for functions. + +2010-10-22 Ed Schonberg + + * sem_ch4.adb (Analyze_Quantified_Expression): Handle properly loop + iterators that are transformed into container iterators after analysis. + * exp_ch4.adb (Expand_N_Quantified_Expression): Handle properly both + iterator forms before rewriting as a loop. + +2010-10-22 Brett Porter + + * a-locale.adb, a-locale.ads, locales.c: New files. + * Makefile.rtl: Add a-locale + * gcc-interface/Makefile.in: Add locales.c + +2010-10-22 Robert Dewar + + * sem_util.ads, sem_util.adb, sem_aux.ads, sem_aux.adb + (Is_Generic_Formal): Moved from Sem_Util to Sem_Aux. + +2010-10-22 Ed Schonberg + + * exp_ch5.adb (Expand_Iterator_Loop): New subprogram, implements new + iterator forms over arrays and containers, in loops and quantified + expressions. + * exp_util.adb (Insert_Actions): include N_Iterator_Specification. + * par-ch4.adb (P_Quantified_Expression): Handle iterator specifications. + * par-ch5.adb (P_Iterator_Specification): New subprogram. Modify + P_Iteration_Scheme to handle both loop forms. + * sem.adb: Handle N_Iterator_Specification. + * sem_ch5.adb, sem_ch5.ads (Analyze_Iterator_Specification): New + subprogram. + * sinfo.adb, sinfo.ads: New node N_Iterator_Specification. + N_Iteration_Scheme can now include an Iterator_Specification. Ditto + for N_Quantified_Expression. + * snames.ads-tmpl: Add names Cursor, Element, Element_Type, No_Element, + and Previous, to support iterators over predefined containers. + * sprint.adb: Handle N_Iterator_Specification. + +2010-10-22 Thomas Quinot + + * sem_prag.adb, sem_ch12.adb, sem_util.adb, sem_util.ads + (Is_Generic_Formal): Move from body of Sem_Ch12 to Sem_Util. + (Check_Arg_Is_Local_Name): Fix check in the case of a pragma appearing + immediately after a library unit. + (Analyze_Pragma, case Preelaborable_Initialization): Pragma may apply to + a formal derived type. + +2010-10-22 Geert Bosch + + * gcc-interface/Make-lang.in: Remove ttypef.ads + * checks.adb: Use Machine_Mantissa_Value and Machine_Radix_Value instead + of Machine_Mantissa and Machine_Radix. + * cstand.adb (P_Float_Range): Directly print the Type_Low_Bound and + Type_High_Bound of the type, instead of choosing constants from Ttypef. + (Set_Float_Bounds): Compute the bounds based on Machine_Radix_Value, + Machine_Emax_Value and Machine_Mantissa_Value instead of special-casing + each type. + * einfo.ads (Machine_Emax_Value, Machine_Emin_Value, + Machine_Mantissa_Value, Machine_Radix_Value, Model_Emin_Value, + Model_Epsilon_Value, Model_Mantissa_Value, Model_Small_Value, + Safe_Emax_Value, Safe_First_Value, Safe_Last_Value): Add new + synthesized floating point attributes. + * einfo.adb (Float_Rep): Determine the kind of floating point + representation used for a given type. + (Machine_Emax_Value, Machine_Emin_Value, Machine_Mantissa_Value, + Machine_Radix_Value): Implement based on Float_Rep_Kind of a type and + the number of digits in the type. + (Model_Emin_Value, Model_Epsilon_Value, Model_Mantissa_Value, + Model_Small_Value, Safe_Emax_Value, Safe_First_Value, Safe_Last_Value): + Implement new synthesized floating point attributes based on the various + machine attributes. + * eval_fat.ads: Remove Machine_Mantissa and Machine_Radix. + * eval_fat.adb (Machine_Mantissa, Machine_Radix): Remove. Use the + Machine_Mantissa_Value and Machine_Radix_Value functions instead. + * exp_vfpt.adb (VAXFF_Digits, VAXDF_Digits, VAXFG_Digits): Define local + constants, instead of using constants from Ttypef. + * gnat_rm.texi: Reword comments referencing Ttypef. + * sem_attr.ads: Reword comment referencing Ttypef. + * sem_attr.adb (Float_Attribute_Universal_Integer, + Float_Attribute_Universal_Real): Remove. + (Attribute_Machine_Emax, Attribute_Machine_Emin, + Attribute_Machine_Mantissa, Attribute_Model_Epsilon, + Attribute_Model_Mantissa, Attribute_Model_Small, Attribute_Safe_Emax, + Attribute_Safe_First, Attribute_Safe_Last, Model_Small_Value): Use + attributes in Einfo instead of Float_Attribute_Universal_Real and + Float_Attribute_Universal_Integer and all explicit constants. + * sem_util.ads, sem_util.adb (Real_Convert): Remove. + * sem_vfpt.adb (VAXDF_Digits, VAXFF_Digits, VAXGF_Digits, IEEEL_Digits, + IEEES_Digits): New local constants, in order to remove dependency on + Ttypef. + * tbuild.ads (Make_Float_Literal): New function. + * tbuild.adb (Make_Float_Literal): New function to create a new + N_Real_Literal, constructing it as simple as possible for best + output of constants in -gnatS. + * ttypef.ads: Remove. + +2010-10-22 Robert Dewar + + * checks.adb (Apply_Predicate_Check): Remove attempt at optimization + when subtype is the same, caused legitimate checks to be missed. + * exp_ch13.adb (Build_Predicate_Function): Use Nearest_Ancestor to get + inheritance from right entity. + * freeze.adb (Freeze_Entity): Use Nearest_Ancestor to freeze in the + derived type case if the ancestor type has predicates. + * sem_aux.ads, sem_aux.adb (Nearest_Ancestor): New function. + * sem_prag.adb (Check_Enabled): Minor code reorganization. + +2010-10-22 Arnaud Charlet + + * gcc-interface/utils.c, gcc-interface/gigi.h: Minor reformatting. + +2010-10-22 Thomas Quinot + + * einfo.ads (Declaration_Node): Clarify documentation, in particular + regarding what is returned for subprogram entities. + +2010-10-22 Arnaud Charlet + + * exp_attr.adb (Make_Range_Test): Generate a Range node instead of + explicit comparisons, generates simpler expanded code. + * a-except-2005.adb (Rcheck_06_Ext): New. + * gcc-interface/trans.c (gigi, gnat_to_gnu): Handle validity checks + like range checks. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-10-22 Robert Dewar + + * sem_ch3.adb (Array_Type_Declaration): Error for subtype wi predicate + for index type + (Constrain_Index): Error of subtype wi predicate in index constraint + * sem_ch9.adb (Analyze_Entry_Declaration): Error of subtype wi + predicate in entry family. + * sem_res.adb (Resolve_Slice): Error of type wi predicate in slice. + +2010-10-22 Javier Miranda + + * sem_util.ads, sem_util.adb (Collect_Parents): New subprogram. + (Original_Corresponding_Operation): New subprogram. + (Visible_Ancestors): New subprogram. + * sem_ch6.adb (New_Overloaded_Entity): Handle new case of dispatching + operation that overrides a hidden inherited primitive. + * sem_disp.adb (Find_Hidden_Overridden_Primitive): New subprogram. + (Check_Dispatching_Operation): if the new dispatching operation + does not override a visible primtive then check if it overrides + some hidden inherited primitive. + +2010-10-22 Ed Schonberg + + * sem_ch10.adb (Analyze_With_Clause): If the parent_unit_name in a with + clause is a child unit that denotes a renaming, replace the + parent_unit_name with a reference to the renamed unit, because the + prefix is irrelevant to subsequent visibility.. + +2010-10-22 Robert Dewar + + * einfo.ads, einfo.adb (Has_Predicates): Flag is now on all entities + (simplifies code). + * exp_ch13.adb (Build_Predicate_Function): Output info msgs for + inheritance. + * sem_ch13.adb (Analyze_Aspect_Specifications): Make sure we have a + freeze node for entities for which a predicate is specified. + (Analyze_Aspect_Specifications): Avoid duplicate calls + * sem_ch3.adb (Analyze_Full_Type_Declaration): Remove attempt to avoid + duplicate calls to Analye_Aspect_Specifications. + +2010-10-22 Thomas Quinot + + * a-exextr.adb, atree.ads, freeze.adb: Minor reformatting. + +2010-10-21 Robert Dewar + + * sem_ch3.adb: Minor reformatting. + +2010-10-21 Thomas Quinot + + * einfo.ads (Next_Girder_Discriminant): Remove obsolete description for + removed routine. + +2010-10-21 Nicolas Roche + + * gnatmem.adb, memroot.adb, memroot.ads, gmem.c, + gcc-interface/Makefile.in: Remove gnatmem specific files. + +2010-10-21 Thomas Quinot + + * sem_res.adb, exp_ch13.adb: Minor reformatting. + +2010-10-21 Thomas Quinot + + * sem_ch3.adb (Check_Or_Process_Discriminant): Reject illegal attempt + to provide a tagged full view as the completion of an untagged partial + view if the partial view has a discriminant with default. + +2010-10-21 Arnaud Charlet + + * gcc-interface/Make-lang.in: Update dependencies. + +2010-10-21 Robert Dewar + + * checks.ads, checks.adb (Apply_Predicate_Check): New procedure + Minor code reorganization. + * einfo.adb (Has_Predicates): Fix assertion. + * exp_ch13.adb (Build_Predicate_Function): Move from Sem_Ch13 spec to + Exp_Ch13 body. + (Expand_N_Freeze_Entity): Call build predicate function. + * exp_ch4.adb (Expand_N_Type_Conversion): Add predicate check. + * exp_ch5.adb (Expand_N_Assignment_Statement): Add predicate check. + * exp_prag.adb (Expand_Pragma_Check): Use all lower case for name of + check. + * freeze.adb (Freeze_Entity): Move building of predicate function to + Exp_Ch13. + * sem_ch13.adb (Build_Predicate_Function): Move from Sem_Ch13 to + Exp_Ch13. + * sem_ch13.ads (Build_Predicate_Function): Move from Sem_Ch13 to + Exp_Ch13. + * sem_ch3.adb (Analyze_Declarations): Remove call to build predicate + function. + * sem_res.adb (Resolve_Actuals): Apply predicate check. + +2010-10-21 Robert Dewar + + * einfo.ads, einfo.adb: Replace Predicate_Procedure by + Predicate_Functions. + * exp_ch4.adb (Expand_N_In): Handle predicates. + * exp_util.ads, exp_util.adb (Make_Predicate_Call): New function. + (Make_Predicate_Check): New function. + * freeze.adb (Freee_Entity): Build predicate function if needed. + * sem_ch13.adb (Build_Predicate_Function): New procedure. + (Analyze_Aspect_Specifications): No third argument for Predicate pragma + built from Predicate aspect. + * sem_ch13.ads (Build_Predicate_Function): New procedure. + * sem_ch3.adb: Add handling for predicates. + * sem_eval.adb (Eval_Membership_Op): Never static if predicate + functions around. + * sem_prag.adb (Analye_Pragma, case Predicate): Does not take a third + argument. + +2010-10-21 Robert Dewar + + * einfo.ads, einfo.adb: Add handling of predicates. + Rework handling of invariants. + * exp_ch3.adb, exp_ch4.adb, exp_util.adb, sem_ch6.adb: Minor changes to + handing of invariants. + * par-prag.adb: Add dummy entry for pragma Predicate + * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing for + Predicate aspects. + * sem_prag.adb: Add implementation of pragma Predicate. + * snames.ads-tmpl: Add entries for pragma Predicate. + +2010-10-21 Robert Dewar + + * elists.adb: Minor reformatting. + +2010-10-21 Geert Bosch + + * urealp.adb (UR_Write): Write hexadecimal constants with exponent 1 as + decimal constants, and write any others using the exponent notation. + Minor reformatting throughout + (Store_Ureal_Normalized): New function (minor code reorganization) + +2010-10-21 Robert Dewar + + * einfo.ads, xeinfo.adb: Minor reformatting. + * s-stalib.ads: Minor comment fixes. + +2010-10-21 Ed Schonberg + + * sem_ch6.adb (Enter_Overloaded_Entity): Refine warning message about + hiding, to remove noise warnings about hiding predefined operators. + +2010-10-21 Emmanuel Briot + + * g-comlin.adb (Add_Switch): Fix handling of switches with no separator + when the parameter has length 1. + +2010-10-21 Jose Ruiz + + * sem_prag.adb (Set_Ravenscar_Profile): Enforce the restrictions of no + dependence on Ada.Execution_Time.Timers, + Ada.Execution_Time.Group_Budget, and + System.Multiprocessors.Dispatching_Domains which are part of the + Ravenscar Profile. + * impunit.adb (Non_Imp_File_Names_05): Add the file "a-etgrbu" to the + list of Ada 2005 files for package Ada.Execution_Time.Group_Budgets. + (Non_Imp_File_Names_12): Add the file "s-mudido" to the list of Ada 2012 + files for package System.Mutiprocessors.Dispatching_Domains. + +2010-10-21 Tristan Gingold + + * ug_words, vms_data.ads: Define the VMS qualifier for -gnateE. + +2010-10-21 Thomas Quinot + + * sem_ch3.ads (Process_Discriminants): Clarify cases where this is + called for a completion. + +2010-10-21 Geert Bosch + + * uintp.ads: Expand image buffer to have enough room for 128-bit values + * urealp.ads (UR_Write): Write constants in base 16 in hexadecimal + notation; either as fixed point literal or in canonical radix 16 + floating point form. + +2010-10-21 Robert Dewar + + * a-cgaaso.ads, a-tags.ads, exp_ch3.adb, exp_attr.adb, exp_ch4.adb, + exp_ch3.ads, exp_ch7.adb, exp_ch9.adb, exp_disp.adb, exp_disp.ads, + exp_dist.adb, exp_util.adb, layout.adb, lib-xref.adb, lib.ads, + prep.adb, prj-strt.adb, s-ststop.adb, s-taskin.ads, s-tataat.ads, + sem_aggr.adb, sem_attr.adb, sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, + sem_ch4.ads, sem_ch5.adb, sem_res.adb, sem_util.adb, einfo.adb, + g-sothco.ads, make.adb: Minor reformatting + +2010-10-21 Vincent Celier + + * vms_data.ads: Add new qualifiers /SRC_INFO= and + /UNCHECKED_SHARED_LIB_IMPORTS for GNAT COMPILE. + Correct qualifier /SRC_INFO= for GNAT MAKE + +2010-10-21 Ed Schonberg + + * exp_aggr.adb (Flatten): An association for a subtype may be an + expanded name. + (Safe_Left_Hand_Side): An unchecked conversion is part of a safe + left-hand side if the expression is. + (Is_Safe_Index): new predicate + * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Indicate that the + generated Rep_To_Pos function is a Pure_Function. + +2010-10-21 Robert Dewar + + * gnat_rm.texi: Document Invariant pragma. + +2010-10-21 Javier Miranda + + * exp_ch5.adb: Update comment. + +2010-10-21 Robert Dewar + + * sem_ch13.adb (Build_Invariant_Procedure): Remove commented out code + for interfaces, since invariants are not allowed on interfaces in any + case. + +2010-10-21 Javier Miranda + + * sem_attr.adb (Resolve_Attribute): After replacing the range attribute + node with a range expression ensure that its evaluation will not have + side effects. + * exp_ch5.adb (Expand_Assign_Array): Propagate the Parent to the + unchecked conversion node generated to handle assignment of private + types. Required to allow climbing the subtree if Insert_Action is + invoked later. + +2010-10-21 Robert Dewar + + * par-ch3.adb (P_Interface_Type_Definition): Allow for possibility of + aspect clause presence terminating the type definition. + +2010-10-21 Robert Dewar + + * exp_ch4.adb, exp_intr.adb, par-ch4.adb, scn.adb, sem_ch4.adb, + sem_res.adb, sem_util.adb, sinfo.ads, a-except-2005.adb: Minor + reformatting. + * snames.ads-tmpl: Add note on Name_Some (not a reserved keyword). + +2010-10-21 Geert Bosch + + * ttypef.ads: Further cleanup of Safe_XXX float attributes. + +2010-10-19 Ed Schonberg + + * exp_ch4.adb, exp_ch4.ads (Expand_Quantified_Expression): New procedure + * exp_util.adb (Insert_Actions): Include Quantified_Expression. + * expander.adb: Call Expand_Qualified_Expression. + * par.adb: New procedure P_Quantified_Expression. Make + P_Loop_Parameter_Specification global for use in quantified expressions. + * par-ch3.adb (P_Subtype_Mark_Resync): Allow "some" as an identifier if + version < Ada2012. + * par-ch4.adb: New procedure P_Quantified_Expression. + * par-ch5.adb: P_Loop_Parameter_Specification is now global. + * scans.adb, scans.ads: Introduce token Some. For now leave as + unreserved. + * scn.adb (Scan_Reserved_Identifier): For earlier versions of Ada, + treat Some as a regular identifier. + * sem.adb: Call Analyze_Quantified_Expression. + * sem_ch4.adb, sem_ch4.ads: New procedure Analyze_Quantified_Expression. + * sem_ch5.adb, sem_ch5.ads: Analyze_Iteration_Scheme is public, for use + in quantified expressions. + * sem_res.adb: New procedure Resolve_Qualified_Expression. + * sinfo.adb, sinfo.ads: New node N_Quantified_Expression + * snames.ads-tmpl: New name Some. + * sprint.adb: Output quantified_expression. + +2010-10-19 Robert Dewar + + * a-exexda.adb: Minor reformatting + Minor code reorganization. + +2010-10-19 Robert Dewar + + * sem_eval.adb: Minor reformatting. + +2010-10-19 Tristan Gingold + + * exp_ch4.adb (Expand_N_And_Op, Expand_N_Or_Op, Expand_N_Xor_Op): Call + Expand_Intrinsic_Call if the function is intrinsic. + * exp_intr_adb (Expand_Binary_Operator): Handle VMS case for logical + binary operator on the unsigned_quadword record. + * exp_intr.ads (Expand_Intrinsic_Call): Update comments. + +2010-10-19 Geert Bosch + + * gnat_rm.texi (pragma Float_Representation): Fix typo. + +2010-10-19 Arnaud Charlet + + * switch-c.adb (Scan_Front_End_Switches): Add handling of -gnateE. + * fe.h (Exception_Extra_Info): Declare. + * usage.adb (usage): Add -gnateE doc. + * checks.adb (Install_Null_Excluding_Check): Use better sloc. + * sem_util.adb (Insert_Explicit_Dereference): Ditto. + * gnat_ugn.texi: Document -gnateE switch. + * a-except.adb (Set_Exception_C_Msg): New parameter Column. + * a-except-2005.adb (Set_Exception_C_Msg): New parameter Column. + (Raise_Constraint_Error_Msg): Ditto. + (Image): New helper function. + (Rcheck_00_Ext, Rcheck_05_Ext, Rcheck_12_Ext): New procedure with more + detailed exception information. + Adjust calls to Set_Exception_C_Msg and Raise_Constraint_Error_Msg. + * a-exexda.adb (Set_Exception_C_Msg): New parameter Column. + * opt.ads (Exception_Extra_Info): New flag. + * gcc-interface/utils.c (gnat_raise_decls_ext): New. + * gcc-interface/utils2.c (build_call_raise_range, + build_call_raise_column): New functions. + * gcc-interface/gigi.h (exception_info_kind, gnat_raise_decls_ext, + build_call_raise_range, build_call_raise_column): Declare. + gcc-interface/trans.c (build_raise_check): New function. + (gigi): Initialize gnat_raise_decls_ext. + (gnat_to_gnu): Add initial support for -gnateE switch. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-10-19 Geert Bosch + + * ttypef.ads: Change VAXDF_Last to be -VAXDF_First, as type is + symmetric. + +2010-10-19 Robert Dewar + + * atree.h (Field29): Fix incorrect definition. + * einfo.adb (Invariant_Procedure): New attribute + (Has_Invariants): New flag + (Has_Inheritable_Invariants): New flag + (OK_To_Reference): New flag + Minor code reorganization (use Next_Rep_Item function) + * einfo.ads (Invariant_Procedure): New attribute + (Has_Invariants): New flag + (Has_Inheritable_Invariants): New flag + (OK_To_Reference): New flag + * exp_ch3.adb (Expand_N_Object_Declaration): Add check for invariant + * exp_ch4.adb (Expand_N_Type_Conversion): Check invariant on type + conversion. Minor reformatting. + * exp_util.ads, exp_util.adb (Make_Invariant_Call): New procedure. + * opt.ads (List_Inherited_Aspects): New name for List_Inherited_Pre_Post + * par-prag.adb: Add dummy entry for pragma Invariant. + * sem_ch13.adb (Build_Invariant_Procedure): New procedure + (Analyze_Aspect_Specification): Add support for Invariant aspect + * sem_ch13.ads (Build_Invariant_Procedure): New procedure + * sem_ch3.adb (Build_Derived_Type): Propagate invariant information + (Process_Full_View): Deal with invariants, building invariant procedure + Minor reformatting + * sem_ch6.adb (Process_PPCs): Add processing of invariants + * sem_ch7.adb (Analyze_Package_Specification): Build invariant + procedures. + * sem_prag.adb: Implement pragma Invariant. + * sem_res.adb (Resolve_Entity_Name): Allow type reference if + OK_To_Reference set. + * sem_warn.adb (List_Inherited_Aspects): New name for + List_Inherited_Pre_Post. + * snames.ads-tmpl: Add entries for pragma Invariant. + * treepr.adb (Print_Entity_Information): Add handling of Field29. + * usage.adb: Warning .l/.L applies to invariant as well as pre/post. + +2010-10-19 Javier Miranda + + * par-ch4.adb: Update documentation of Ada 2012 syntax rules for + membership test. + +2010-10-19 Bob Duff + + * sem_attr.adb (Eval_Attribute): Implement Max_Alignment_For_Allocation + attribute. + * exp_attr.adb (Expand_N_Attribute_Reference): Add + Attribute_Max_Alignment_For_Allocation to the case statement. + * snames.ads-tmpl (Name_Max_Alignment_For_Allocation, + Attribute_Max_Alignment_For_Allocation): New attribute name. + +2010-10-19 Ed Schonberg + + * sem_ch3.adb (OK_For_Limited_Init_In_05): a call to an access to + parameterless function appears syntactically as an explicit dereference. + +2010-10-19 Thomas Quinot + + * sem_ch8.adb, sem_ch12.adb, opt.ads, sem_ch6.adb, sem_res.adb, + i-cexten.ads, exp_disp.adb, exp_ch4.adb, exp_ch9.adb: Minor reformatting + +2010-10-19 Thomas Quinot + + * sem_util.adb (Collect_Primitive_Operations): A function with an + anonymous access result designating T is a primitive operation of T. + +2010-10-19 Tristan Gingold + + * init.c: On Alpha/VMS, only adjust PC for HPARITH. + +2010-10-19 Tristan Gingold + + * sem_attr.adb (Eval_Attribute): Handle Attribute_Ref, which can be + evaluated on VMS. + +2010-10-19 Ed Schonberg + + * sem_ch12.adb (Check_Generic_Child_Unit): Handle properly the case of + an instantiation of a renaming of the implicit generic child that + appears within an instance of its parent. + +2010-10-19 Thomas Quinot + + * exp_ch9.adb: Minor reformatting. + * einfo.adb, einfo.ads, atree.adb, atree.ads, exp_dist.adb, atree.h: + (Referenced_Object): Remove unused entity attribute. + (Direct_Primitive_Operations): Move to Elist10, this is set for all + tagged types, including synchronous ones, so can't use field15 which is + used as Storage_Size_Variable for task types and Entry_Bodies_Array for + protected types. + (Add_RACW_Primitive_Declarations_And_Bodies): Remove bogus guard + against Concurrent_Types (we must handle the case of a RACW designating + a class-wide private synchronous type). + Use Direct_Primitive_Operations, not Primitive_Operations, since we + really want the former. + +2010-10-19 Bob Duff + + * sem_ch8.adb (Pop_Scope): Change "return;" to "raise Program_Error;". + +2010-10-19 Javier Miranda + + * exp_ch4.adb (Expand_Set_Membership.Make_Cond): Add missing support + for N_Range nodes. + +2010-10-19 Thomas Quinot + + * einfo.ads, atree.ads: Minor comment fixes. + +2010-10-18 Bob Duff + + * sinfo.ads, sinfo.adb: Modify comment about adding fields to be more + correct, and to be in a more convenient order. + (Default_Storage_Pool): New field of N_Compilation_Unit_Aux, for + recording the Default_Storage_Pool for a parent library unit. + * einfo.ads (Etype): Document the case in which Etype can be Empty. + * sem_prag.adb (Pragma_Default_Storage_Pool): Analyze the new + Default_Storage_Pool pragma. + * sem.ads (Save_Default_Storage_Pool): Save area for push/pop scopes. + * gnat_ugn.texi: Document Default_Storage_Pool as a new configuration + pragma. + * freeze.adb (Freeze_Entity): When freezing an access type, take into + account any Default_Storage_Pool pragma that applies. We have to do + this at the freezing point, because up until that point, a Storage_Pool + or Storage_Size clause could occur, which should override the + Default_Storage_Pool. + * par-prag.adb: Add this pragma to the list of pragmas handled entirely + during semantics. + * sem_ch8.adb (Push_Scope, Pop_Scope): Save and restore the + Default_Storage_Pool information. + * opt.ads (Default_Pool, Default_Pool_Config): New globals for recording + currently-applicable Default_Storage_Pool pragmas. + * opt.adb: Save/restore the globals as appropriate. + * snames.ads-tmpl (Name_Default_Storage_Pool, + Pragma_Default_Storage_Pool): New pragma name. + +2010-10-18 Vincent Celier + + * make.adb (Switches_Of): Put the spec and body suffix in canonical + case. + +2010-10-18 Ed Schonberg + + * sem_ch13.adb (Analyze_Aspect_Specifications): If subprogram is at the + library level, the pre/postconditions must be treated as global + declarations, i.e. placed on the Aux_Decl nodes of the compilation unit. + * freeze.adb (Freeze_Expression): If the expression is at library level + there is no enclosing record to check. + +2010-10-18 Javier Miranda + + * sem_ch3.ads (Find_Type_Name): Add documentation. + * sem_ch3.adb (Analyze_Full_Type_Declaration): Code cleanup because the + propagation of the class-wide entity is now done by routine + Find_Type_Name to factorize this code. + (Analyze_Private_Extension_Declaration): Handle private type that + completes an incomplete type. + (Tag_Mismatch): Add error message for tag mismatch in a private type + declaration that completes an incomplete type. + (Find_Type_Name): Handle completion of incomplete type by means of + a private declaration. Generate an error if a tagged incomplete type + is completed by an untagged private type. + * sem_ch7.adb (New_Private_Type): Handle private type that completes an + incomplete type. + * einfo.ads (Full_View): Add documentation. + +2010-10-18 Ed Schonberg + + * sem_ch12.adb (Analyze_Formal_Package_Declaration): If the package is + a renaming, generate a reference for it before analyzing the renamed + entity, to prevent spurious warnings. + +2010-10-18 Jose Ruiz + + * adaint.c (__gnat_pthread_setaffinity_np, + __gnat_pthread_attr_setaffinity_np): Remove wrappers, no longer needed. + * s-osinte-linux.ads (pthread_setaffinity_np, + pthread_attr_setaffinity_np): Remove use of wrappers. + * s-taprop-linux.adb (Create_Task, Initialize): Restore check to verify + whether the affinity functionality is available in the OS. + * gcc-interface/utils.c: Set TREE_STATIC on functions only when there + are defined. + +2010-10-18 Robert Dewar + + * einfo.ads, einfo.adb: Minor reformatting. + * gnat_ugn.texi, ug_words: Add missing entries, fix typos. + +2010-10-18 Emmanuel Briot + + * g-comlin.adb (Is_In_Config): When the switch accepts either a space + or equal, we output an equal every time. + +2010-10-18 Ed Schonberg + + * sem_res.adb (Resolve_Entry_Call): Handle call to an entry family + member when pre/post conditions are present. + * exp_ch9.adb (Build_PPC_Wrapper): The PPC_Wrapper for an entry family + includes an index parameter, and the name of the enclosed entry call is + an indexed component. + +2010-10-18 Robert Dewar + + * einfo.ads, einfo.adb: Minor reformatting. + +2010-10-18 Jose Ruiz + + * adaint.c (__gnat_pthread_setaffinity_np, + __gnat_pthread_attr_setaffinity_np): Add these wrappers which check the + availability of the underlying OS functionality before calling. + * s-osinte-linux.ads (pthread_setaffinity_np, + pthread_attr_setaffinity_np): Call a wrapper instead of the OS function + to perform a check of its availability. + * s-taprop-linux.adb (Create_Task): Remove the check to verify whether + the affinity functionality is available in the OS. Now done in a wrapper + * gcc-interface/Makefile.in: Remove vmshandler.asm, unused. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-10-18 Robert Dewar + + * sinfo.ads, sinfo.adb: Change Has_Pragma_CPU to Flag14 (Flag10 is + standard field). + +2010-10-18 Robert Dewar + + * s-stausa.adb, s-taprop-linux.adb, s-taprop-mingw.adb, s-tassta.ads: + Minor reformatting. + +2010-10-18 Robert Dewar + + * exp_strm.adb (Build_Elementary_Input_Call): Check + No_Default_Stream_Attributes. + (Build_Elementary_Write_Call): Check No_Default_Stream_Attributes + * s-rident.ads: Add restriction No_Default_Stream_Attributes + Put restriction No_Allocators_After_Elaboration in alpha order + +2010-10-18 Jose Ruiz + + * exp_ch9.adb (Expand_N_Task_Type_Declaration): Add field corresponding + to the affinity when expanding the task declaration. + (Make_Task_Create_Call): Add the affinity parameter to the call to + create task. + * sem_prag.adb (Analyze_Pragma): Add the analysis for pragma CPU, + taking into account the case when it applies to a subprogram (only for + main and with static expression) or to a task. + * par_prag.adb:(Prag): Make pragma CPU a valid one. + * snames.ads-tmpl (Name_uCPU, Name_CPU): Add these new name identifiers + used by the expander for handling the affinity parameter when creating + a task. + (Pragma_Id): Add Pragma_CPU as a valid one. + * rtsfind.ads (RTU_Id): Make System_Multiprocessors accesible. + (RE_Id, RE_Unit_Table): Make the entities RE_CPU_Range and + RE_Unspecified_CPU visible. + * sinfo.ads, sinfo.adb (Has_Pragma_CPU, Set_Has_Pragma_CPU): Add these + two subprograms to set/get the flag indicating whether there is a + pragma CPU which applies to the entity. + * lib.ads, lib.adb (Unit_Record, Default_Main_CPU, Main_CPU, + Set_Main_CPU): Add the field Main_CPU to Unit_Record to store the value + of the affinity associated to the main subprogram (if any). + Default_Main_CPU is used when no affinity is set. Subprograms + Set_Main_CPU and Main_CPU are added to set/get the affinity of the main + subprogram. + * ali.ads, ali.adb (ALIs_Record): Add field Main_CPU to contain the + value of the affinity of the main subprogram. + (Scan_ALI): Get the affinity of the main subprogram (encoded as C=XX in + the M line). + * lib-writ.ads, lib-writ.adb (M_Parameters): Encode the affinity of the + main subprogram in the M (main) line using C=XX. + * lib-load.adb (Create_Dummy_Package_Unit, Load_Main_Source, + Load_Unit): Add new field Main_CPU. + * bindgen.adb (Gen_Adainit_Ada, Gen_Adainit_C): Add the code to pass + the affinity of the main subprogram to the run time. + * s-taskin.ads (Common_ATCB): Add the field Base_CPU to store the + affinity. + (Unspecified_CPU): Add this constant to identify the case when no + affinity is set for tasks. + * s-taskin.adb (Initialize_ATCB): Store the value coming from pragma + CPU in the common part of the ATCB. + (Initialize): Store the value coming from pragma CPU (for the + environment task) in the common part of the ATCB. + * s-tassta.ads, s-tassta.adb (Create_Task): Add the affinity specified + by pragma CPU to the ATCB. + * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add the affinity + specified by pragma CPU to the ATCB. + * s-tporft.adb (Register_Foreign_Thread): Add the new affinity + parameter to the call to Initialize_ATCB. + * s-taprop-linux.adb (Create_Task): Change the attributes of the thread + to include the task affinity before creation. Additionally, the + affinity selected with Task_Info is also enforced changing the + attributes at task creation time, instead of changing it after creation. + (Initialize): Change the affinity of the environment task if required + by a pragma CPU. + * s-osinte-linux.ads (pthread_setaffinity_np): Instead of using a + wrapper to check whether the function is available or not, use a weak + symbol. + (pthread_attr_setaffinity_np): Add the import of this function which is + used to change the affinity in the attributes used to create a thread. + * adaint.c (__gnat_pthread_attr_setaffinity_np): Remove this wrapper. + It was used to check whether the pthread function was available or not, + but the use of a weak symbol handles this situation in a cleaner way. + * s-taprop-mingw.adb (Create_Task, Initialize): Change the affinity of + tasks (including the environment task) if required by a pragma CPU. + * s-taprop-solaris.adb (Enter_Task): Change the affinity of tasks + (including the environment task) if required by a pragma CPU. + * s-taprop-vxworks.adb (Create_Task, Initialize): Change the affinity + of tasks (including the environment task) if required by a pragma CPU. + * init.c (__gl_main_cpu): Make this value visible to the run time. It + will pass the affinity of the environment task. + +2010-10-18 Javier Miranda + + * einfo.adb (Direct_Primitive_Operations): Complete assertion. + +2010-10-18 Vincent Celier + + * prj.ads (Source_Data): New Boolean flag In_The_Queue. + +2010-10-18 Tristan Gingold + + * s-stausa.ads: Add the Top parameter to Initialize_Analyzer. + * s-stausa.adb: Use the top parameter. In Fill_Stack, use the + stack top if known. + * s-tassta.adb (Task_Wrapper): Call Initialize_Analyzer after Enter_Task + so that Pri_Stack_Info.Limit can be set and used. + +2010-10-18 Robert Dewar + + * einfo.ads: Minor reformatting. + * sem_res.adb (Resolve_Allocator): Add test for violating + No_Anonymous_Allocators. + +2010-10-18 Robert Dewar + + * prj-nmsc.adb, prj.adb, sem_res.adb: Minor reformatting. + +2010-10-18 Ed Schonberg + + * sem_util.adb (Insert_Explicit_Dereference): If operand is a selected + component, we generate a reference to the ultimate prefix when it is an + entity name. We must place the reference on the identifier for that + prefix, and not on the operand itself, to prevent spurious extra + references in the ali file. + +2010-10-18 Vincent Celier + + * projects.texi: Add documentation for attribute Ignore_Source_Sub_Dirs + +2010-10-18 Ed Schonberg + + * einfo.ads, einfo.adb: New attribute PPC_Wrapper for entries and entry + families. Denotes a procedure that performs pre/postcondition checks + and then performs the entry call. + * sem_res.adb (Resolve_Entry_Call): If the entry has + pre/postconditions, replace call with a call to the PPC_Wrapper of the + entry. + * exp_ch9.adb (Build_PPC_Wrapper): new procedure. + (Expand_N_Entry_Declaration, Expand_N_Protected_Type_Declaration): call + Build_PPC_Wrapper for all entries in task and protected definitions. + +2010-10-18 Tristan Gingold + + * init.c: Add __gnat_set_stack_guard_page and __gnat_set_stack_limit. + Implement stack limitation on VMS. + Minor reformatting. + +2010-10-18 Vincent Celier + + * prj.adb (Is_Compilable): Do not modify Source.Compilable until the + source record has been initialized. + +2010-10-18 Robert Dewar + + * einfo.adb: Minor code reorganization (Primitive_Operations is a + synthesized attribute routine and was in the wrong place). + +2010-10-18 Tristan Gingold + + * init.c: Indentation, and minor changes to more closely follow GNU + style rules. Make more variable statics. + +2010-10-18 Vincent Celier + + * prj.adb (Is_Compilable): On first call for a source, cache value in + component Compilable. + * prj.ads (Source_Data): New component Compilable, to cache the value + returned by function Is_Compilable. + +2010-10-18 Vincent Celier + + * prj-attr.adb: New project level attribute Ignore_Source_Sub_Dirs. + * prj-nmsc.adb (Expand_Subdirectory_Pattern): New string list parameter + Ignore. + (Recursive_Find_Dirs): Do not consider subdirectories listed in Ignore. + (Get_Directories): Call Find_Source_Dirs with the string list + indicated by attribute Ignore_Source_Sub_Dirs. + * snames.ads-tmpl: New standard name Ignore_Source_Sub_Dirs. + +2010-10-18 Javier Miranda + + * einfo.ads, einfo.adb (Primitive_Operations): New synthesized + attribute. + (Direct_Primitive_Operations): Renaming of old Primitive_Operations. + (Set_Direct_Primitive_Operations): Renaming of old + Set_Primitive_Operations. Update documentation + * sem_ch3.adb, exp_util.adb, sem_ch7.adb, sem_ch8.adb, exp_ch3.adb: + Replace occurrences of Set_Primitive_Operations by + Set_Direct_Primitive_Operations. + * sem_cat.adb (Validate_RACW_Primitives): No action needed for tagged + concurrent types. + * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not + process primitives of concurrent types. + * lib-xref.adb (Generate_Prim_Op_References): Minor code cleanup. + +2010-10-18 Eric Botcazou + + * exp_ch6.adb (Expand_N_Subprogram_Declaration): Use Freeze_Before. + (Expand_Protected_Object_Reference): Likewise. + * sem_attr.adb (Resolve_Attribute): Likewise. + * sem_ch3.adb (Analyze_Subtype_Declaration): Likewise. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Likewise. + +2010-10-18 Arnaud Charlet + + * g-comlin.adb (Get_Switches): Prevent dereferencing null Config. + +2010-10-18 Robert Dewar + + * aspects.ads, aspects.adb: Add entries for aspects + Read/Write/Input/Output. + * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing for + handling aspects Read/Write/Input/Output. + +2010-10-18 Robert Dewar + + * sem_util.adb (Note_Possible_Modification): Do not give warning for + use of pragma Unmodified unless we are sure this is a modification. + +2010-10-18 Tristan Gingold + + * sysdep.c: Add __gnat_get_stack_bounds. + * s-taprop-mingw.adb Call __gnat_get_stack_bounds to set Pri_Stack_Info. + +2010-10-18 Robert Dewar + + * a-assert.ads: Fix bad name in header. + * sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch10.adb: Minor + reformatting. + * exp_aggr.adb: Fix typo in comment. + +2010-10-18 Javier Miranda + + * exp_util.adb (Side_Effect_Free): Code clean up. + +2010-10-18 Ed Schonberg + + * sem_ch8.adb (Is_Primitive_Operator_In_Use): Renamed from + Is_Primitive_Operator. When ending the scope of a use package scope, a + primitive operator remains in use if the base type has a current use + (type) clause. + +2010-10-18 Javier Miranda + + * einfo.ads (Is_Dynamic_Support): Add missing support for limited + private types whose full-view is a task type. + * sem_util.adb (Enclosing_Subprogram): Add missing support for limited + private types whose full-view is a task type. + * exp_ch7.adb (Find_Final_List): Minor code cleanup replacing code by + function Nearest_Dynamic_Scope which provides the needed functionality. + +2010-10-18 Arnaud Charlet + + * sem_prag.adb (Set_Exported): Do not generate error when exporting a + variable with an address clause in codepeer mode. + +2010-10-18 Robert Dewar + + * g-trasym-vms-ia64.adb: Minor reformatting. + +2010-10-18 Thomas Quinot + + * sem_type.adb (Covers): If either argument is Standard_Void_Type and + the other isn't, return False early. + +2010-10-18 Ed Falis + + * s-vxwext-rtp.ads, s-vxext-rtp.adb: Adapt for missing APIs for RTPs in + VxWorks Cert. + +2010-10-18 Robert Dewar + + * sem_disp.ads: Minor comment update. + +2010-10-18 Robert Dewar + + * einfo.ads, einfo.adb (Spec_PPC_List): Is now present in Entries + * sem_ch3.adb (Analyze_Declarations): Add processing for delaying + visibility analysis of precondition and postcondition pragmas (and + Pre/Post aspects). + * sem_ch6.adb (Process_PPCs): Add handling of inherited Pre'Class + aspects. + * sem_ch7.adb (Analyze_Package_Specification): Remove special handling + of pre/post conditions (no longer needed). + * sem_disp.adb (Inherit_Subprograms): Deal with interface case. + * sem_prag.adb (Analyze_PPC_In_Decl_Part): Remove analysis of message + argument, since this is now done in the main processing for + pre/postcondition pragmas when they are first seen. + (Chain_PPC): Pre'Class and Post'Class now handled properly + (Chain_PPC): Handle Pre/Post aspects for entries + (Check_Precondition_Postcondition): Handle entry declaration case + (Check_Precondition_Postcondition): Handle delay of visibility analysis + (Check_Precondition_Postcondition): Preanalyze message argument if + present. + +2010-10-18 Robert Dewar + + * g-trasym-vms-ia64.adb, prj-nmsc.adb, prj.ads: Minor reformatting. + +2010-10-14 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Set + TREE_THIS_NOTRAP on the INDIRECT_REF node built for the template. + * gcc-interface/trans.c (Identifier_to_gnu): Set TREE_THIS_NOTRAP on + the INDIRECT_REF node built for objects used by reference. + * gcc-interface/utils2.c (build_binary_op): Add short-circuit for + constant result. Set TREE_THIS_NOTRAP on ARRAY_REF and ARRAY_RANGE_REF. + (gnat_stabilize_reference_1): Propagate the TREE_THIS_NOTRAP flag. + +2010-10-13 Richard Henderson + + * gcc-interface/misc.c (gnat_eh_personality): Update call to + build_personality_function. + * raise-gcc.c (PERSONALITY_FUNCTION): Change to match other languages; + use__gnat_personality_{v,sj}0. + +2010-10-12 Vincent Celier + + * prj-nmsc.adb (Add_Source): Put source in hash table Source_Files_HT + (Process_Exceptions_File_Based): Use hash table Source_Files_HT instead + of iterating through all sources of the project. + * prj.adb (Free): Reset hash table Source_Files_HT + (Reset): Reset hash table Source_Files_HT + * prj.ads (Source_Data): New component Next_With_File_Name + (Source_Files_Htable): New hash table + (Project_Tree_Data): New component Source_Files_HT + +2010-10-12 Tristan Gingold + + * g-trasym-vms-ia64.adb: Use the documented API. + * gcc-interface/Makefile.in: Always set NO_REORDER_ADAFLAGS. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-10-12 Thomas Quinot + + * rtsfind.ads, exp_dist.adb, exp_dist.ads (Build_General_Calling_Stubs, + PolyORB case): Request is now a controlled type: we can declare the + request on the stack, and we do not need explicit cleanup actions + anymore. + +2010-10-12 Bob Duff + + * s-rident.ads (Profile_Info): This variable is now constant. + +2010-10-12 Emmanuel Briot + + * g-comlin.adb, g-comlin.ads (Define_Switch): Put back (unused) + parameter Separator for backward compatibility. + +2010-10-12 Robert Dewar + + * sem_ch9.adb, par-ch9.adb, impunit.adb: Minor reformatting. + +2010-10-12 Vincent Celier + + * debug.adb: Put detailed documentation for gnatmake switch -dm. + +2010-10-12 Vincent Celier + + * gnat1drv.adb: When the compiler is invoked for a spec that needs aw + body, do not generate an ALI file if neither -gnatc nor -gnatQ is used. + +2010-10-12 Arnaud Charlet + + * g-comlin.adb (Foreach_Switch): Make this procedure generic to avoid + using 'Access. + +2010-10-12 Robert Dewar + + * debug.adb: Add comment. + * gnatcmd.adb, sem_ch6.adb, switch-m.adb: Minor reformatting. + +2010-10-12 Javier Miranda + + * exp_util.adb (Side_Effect_Free): Return true for object renaming + declarations that were previously generated by Remove_Side_Effects. + +2010-10-12 Emmanuel Briot + + * xref_lib.adb (Get_Full_Type): Display "private variable" instead of + "???" when an entity is defined as "*" in the ALI file. + * g-comlin.ads, g-comlin.adb: Fix handling of null parameters. + Minor reformatting. + +2010-10-12 Emmanuel Briot + + * g-comlin.adb, g-comlin.ads (Display_Help, Getopt, Current_Section, + Set_Usage): New subprograms. + (Define_Switch): Change profile to add support for help messages and + long switches. + +2010-10-12 Javier Miranda + + * sem_ch6.adb (New_Overloaded_Entity): Add missing decoration of + attribute Overridden_Operation in predefined dispatching primitives. + +2010-10-12 Emmanuel Briot + + * g-comlin.adb, g-comlin.ads (Add_Switch): Raise an exception when a + command line configuration exists and we specify an invalid section. + +2010-10-12 Robert Dewar + + * sem_ch6.adb (Process_PPCs): Fix error in inheriting Pre'Class when no + exception messages are generated. + (Process_PPCs): Fix error in inheriting Pre'Class. + +2010-10-12 Jose Ruiz + + * gnatcmd.adb: Use response file for GNATstack. + (Check_Files): Pass the list of ci files for GNATstack using a response + file to avoid problems with command line length. + Factor out the code handling response file into a new procedure named + Add_To_Response_File. + +2010-10-12 Vincent Celier + + * debug.adb: For gnatmake, document the meaning of -dm + * make.adb (Gnatmake): If -dm is used, indicate the maximum number of + simultaneous compilations. + * switch-m.adb (Scan_Make_Switches): Allow -j0, meaning as many + simultaneous compilations as the number of processors. + +2010-10-12 Joseph Myers + + * gcc-interface/Make-lang.in (ada/misc.o): Use $(OPTIONS_H) + instead of options.h. + +2010-10-12 Robert Dewar + + * gnat_rm.texi: Clarify that 'Old can be used in preconditions and + postcondition pragmas. + +2010-10-12 Robert Dewar + + * errout.ads, erroutc.adb: The # insertion now handles from in place of + at. + * exp_prag.adb (Expand_Pragma_Check): Suppress generated default + message if new switch Exception_Locations_Suppressed is set. + (Expand_Pragma_Check): Revised wording for default message for case + of precondition or postcondition. + * namet.ads, namet.adb (Build_Location_String): New procedure. + * opt.ads (List_Inherited_Pre_Post): New flag. + * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Add call to + list inherited pre/post aspects. + * sem_ch13.adb (Analyze_Aspect_Specification): Improve generation of + messages for precondition/postcondition cases. + * sem_ch6.adb (Process_PPCs): General cleanup, and list inherited PPC's + if flag List_Inherited_Pre_Post is set True. + (Process_PPCs): Add initial handling for inherited preconditions + (List_Inherited_Pre_Post_Aspects): New procedure + * sem_ch6.ads (List_Inherited_Pre_Post_Aspects): New procedure + * sem_disp.adb (Inherited_Subprograms): New function + * sem_disp.ads (Inherited_Subprograms): New function + * sem_prag.adb (Check_Duplicate_Pragma): Clean up handling of + pre/postcondition. + (Check_Precondition_Postcondition): Check for inherited aspects + * sem_warn.adb: Process -gnatw.l/w.L setting List_Inherited_Pre_Post + * sinfo.ads, sinfo.adb (Split_PPC): New flag. + * sinput.ads, sinput.adb (Build_Location_String): New function. + * usage.adb: Add line for -gnatw.l/-gnatw.L + +2010-10-12 Javier Miranda + + * exp_util.adb (Remove_Side_Effects): Remove wrong code. + +2010-10-12 Arnaud Charlet + + * xref_lib.adb: Add handling of j/J letters. + +2010-10-12 Pascal Obry + + * adaint.c (__gnat_number_of_cpus): Add implementation for Windows. + +2010-10-12 Arnaud Charlet + + * make.adb (Globalize): New procedure. + (Compile): Set Do_Codepeer_Globalize_Step when -gnatC is used. + (Gnatmake): Call Globalize when needed. + (Process_Restrictions_Or_Restriction_Warnings): Ignore Restrictions + pragmas in CodePeer mode. + (Adjust_Global_Switches): Set No_Initialize_Scalars in CodePeer mode, + to generate simpler and consistent code. + +2010-10-12 Bob Duff + + * exp_util.adb (Remove_Side_Effects): Disable previous change, + can cause side effects to be duplicated. + +2010-10-12 Robert Dewar + + * sem_ch6.adb (Process_PPCs): Handle inherited postconditions. + +2010-10-12 Arnaud Charlet + + * exp_disp.adb (Set_All_DT_Position): Disable emit error message on + abstract inherited private operation in CodePeer mode. + +2010-10-12 Thomas Quinot + + * a-exetim.ads: Minor reformatting. + * g-socket.ads (Port_Type): Better definition corresponding to the + actual standard range. + * exp_ch5.adb: Add comment. + * sem_aux.adb: Minor reformatting. + +2010-10-12 Ed Schonberg + + * sem_ch12.adb (Copy_Generic_Node): If node is a string literal, remove + string_literal_subtype so that a new one can be constructed in the + scope of the instance. + +2010-10-12 Robert Dewar + + * exp_ch9.adb (Has_Pragma_Priority): New name for Has_Priority_Pragma + * gnat_rm.texi (pragma Suppress_All): Document new placement rules + * par-prag.adb (P_Pragma, case Suppress_All): Set + Has_Pragma_Suppress_All flag. + * sem_prag.adb (Has_Pragma_Priority): New name for Has_Priority_Pragma + (Analyze_Pragma, case Suppress_All): Remove placement check + (Process_Compilation_Unit_Pragmas): Use Has_Pragma_Suppress_All flag + * sem_prag.ads (Process_Compilation_Unit_Pragmas): Update documentation + * sinfo.adb (Has_Pragma_Suppress_All): New flag + (Has_Pragma_Priority): New name for Has_Priority_Pragma + * sinfo.ads (Has_Pragma_Suppress_All): New flag + (Has_Pragma_Priority): New name for Has_Priority_Pragma + +2010-10-12 Arnaud Charlet + + * lib-xref.ads: Mark j/J as reserved for C++ classes. + +2010-10-12 Jose Ruiz + + * a-exetim-default.ads, a-exetim-posix.adb: New. + * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for linux): Use the + POSIX Realtime support to implement CPU clocks. + (EXTRA_GNATRTL_TASKING_OBJS for linux): Add the a-exetim.o object + to the tasking library. + (THREADSLIB): Make the POSIX.1b Realtime Extensions library (librt) + available for shared libraries. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-10-12 Robert Dewar + + * sem_ch13.adb (Analyze_Aspect_Specifications): For Pre/Post, break + apart expressions with AND THEN clauses into separate pragmas. + * sinput.ads, sinput.adab (Get_Logical_Line_Number_Img): New function. + +2010-10-12 Robert Dewar + + * par-ch13.adb (P_Aspect_Specifications): Fix handling of 'Class + aspects. + * sem_ch13.adb (Analyze_Aspect_Specifications): Fix bad Sloc on aspects + * sem_prag.adb (Fix_Error): Only change pragma names for pragmas from + aspects. + (Check_Optional_Identifier): Handle case of direct arguments + (Chain_PPC): Test for abstract case, giving appropriate messages + * sinfo.ads, sinfo.adb (Class_Present): Allowed on N_Pragma node + +2010-10-12 Robert Dewar + + * par-endh.adb (Check_End): Don't swallow semicolon or aspects after + END RECORD. + * sem_attr.adb (Eval_Attribute): Code clean up. + +2010-10-12 Robert Dewar + + * par-ch12.adb (P_Formal_Private_Type_Definition): Improve error + messages and recovery for case of out of order Abstract/Tagged/Private + keywords. + * par-ch3.adb (P_Type_Declaration): Improve error messages and recovery + for case of out of order Abstract/Tagged/Private keywords. + +2010-10-12 Ed Schonberg + + * inline.adb (Analyze_Inlined_Bodies): Restrict previous change to case + where child unit is main unit of compilation. + +2010-10-12 Robert Dewar + + * aspects.ads, aspects.adb (Move_Aspects): New procedure. + * atree.ads, atree.adb: (New_Copy): Does not copy aspect specifications + * sinfo.ads, par-ch3.adb, par-ch6.adb, par-ch7.adb, par-ch9.adb, + par-endh.adb, par-ch13.adb, par-ch12.adb: Modify grammar to include + aspect specifications. + Recognize aspect specifications for all cases + * par.adb: Recognize aspect specifications for all cases + * sem_ch12.ads, sem_ch12.adb (Copy_Generic_Node): Copies aspect + specifications. + * sem_ch3.adb (Analyze_Subtype_Declaration): Improve patch to freeze + generic actual types (was missing some guards before). + * sem_ch9.adb (Analyze_Single_Protected_Declaration): Copy aspects to + generated object + (Analyze_Single_Task_Declaration): Copy aspects to generated object + +2010-10-12 Eric Botcazou + + * usage.adb (usage): Adjust line for -gnatn switch. + +2010-10-12 Robert Dewar + + * sem_attr.adb (Eval_Attribute): Only leave change active for aspect + spec case. + +2010-10-12 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Declaration): If this is a + declaration of a null procedure resolve the types of the profile of the + generated null body now. + +2010-10-11 Robert Dewar + + * debug.adb: Remove d.A flag to delay address clause (not needed any + more). Add d.A flag to enable tree read/write of aspect spec hash table + * sem_ch13.adb (Analyze_Aspect_Specifications): Properly delay address + clause. + (Rep_Item_Too_Late): No need for special processing for delayed rep + items (and it caused difficulties in the address case). + * tree_gen.adb: Only write aspect spec hash table if -gnatd.A is set + * tree_in.adb: Only write aspect spec hash table if -gnatd.A is set + +2010-10-11 Pat Rogers + + * gnat_ugn.texi: Minor editing. + +2010-10-11 Nathan Froyd + + * gcc-interface/utils2.c (gnat_build_constructor): Use VEC_qsort. + +2010-10-11 Robert Dewar + + * g-htable.ads (Get_First): New procedural version for Simple_HTable + (Get_Next): New procedural version for Simple_HTable + * s-htable.adb (Get_First): New procedural version for Simple_HTable + (Get_Next): New procedural version for Simple_HTable + * s-htable.ads (Get_First): New procedural version for Simple_HTable + (Get_Next): New procedural version for Simple_HTable + +2010-10-11 Ed Schonberg + + * sem_aggr.adb (Propagate_Discriminants): To gather the components of a + variant part, use the association list of the subaggregate, which + already includes the values of the needed discriminants. + +2010-10-11 Robert Dewar + + * aspects.ads, aspects.adb: Changes to accomodate aspect delay + (Tree_Write): New procedure. + * atree.ads, atree.adb: Flag3 is now Has_Aspects and applies to all + nodes. + * atree.h: Flag3 is now Has_Aspects and applies to all nodes + * debug.adb: Add debug flag gnatd.A + * einfo.adb (Has_Delayed_Aspects): New flag + (Get_Rep_Item_For_Entity): New function + * einfo.ads (Has_Delayed_Aspects): New flag + (Get_Rep_Item_For_Entity): New function + * exp_ch13.adb (Expand_N_Freeze_Entity): Insert delayed aspects into + tree. + * exp_ch3.adb, exp_ch6.adb, exp_ch9.adb, exp_disp.adb: New calling + sequence for Freeze_Entity. + * freeze.ads, freeze.adb (Freeze_Entity): Takes node rather than source + ptr. All calls are changed to this new interface. + (Freeze_And_Append): Same change + (Freeze_Entity): Evaluate deferred aspects + * sem_attr.adb: New calling sequence for Freeze_Entity + (Eval_Attribute): Don't try to evaluate attributes of unfrozen types + when we are in spec expression preanalysis mode. + * sem_ch10.adb: New calling sequence for Freeze_Entity + * sem_ch11.adb: Simplify analysis of aspect specifications now that the + flag Has_Aspects applies to all nodes (no need to save aspects). + * sem_ch12.adb: Simplify analysis of aspect specifications now that the + flag Has_Aspects applies to all nodes (no need to save aspects). + * sem_ch13.adb (Analyze_Aspect_Specifications): Major rewrite to + accomodate delaying aspect evaluation to the freeze point. + (Duplicate_Clause): Simplify using Get_Rep_Item_For_Entity, and also + accomodate delayed aspects. + (Rep_Item_Too_Late): Deal with delayed aspects case + * sem_ch13.ads (Rep_Item_Too_Late): Document handling of delayed + aspects. + * sem_ch3.adb (Analyze_Subtype_Declaration): Make sure that generic + actual types are properly frozen (this is needed because of the new + check in Eval_Attribute that declines to evaluate attributes + for unfrozen types). + Simplify analysis of aspect specifications now that the flag + Has_Aspects applies to all nodes (no need to save aspects). + * sem_ch3.ads (Preanalyze_Spec_Expression): Note use for delayed + aspects. + * sem_ch5.adb: Simplify analysis of aspect specifications now that the + flag Has_Aspects applies to all nodes (no need to save aspects). + New calling sequence for Freeze_Entity. + * sem_ch9.adb, sem_ch7.adb, sem_ch6.adb: Simplify analysis of aspect + specifications now that the flag Has_Aspects applies to all nodes + (no need to save aspects). + New calling sequence for Freeze_Entity + * sem_prag.adb (Check_Duplicate_Pragma): Simplify using + Get_Rep_Item_For_Entity + (Get_Pragma_Arg): Moved to Sinfo + * sinfo.ads, sinfo.adb (Aspect_Rep_Item_: New field + (Is_Delayed_Aspect): New flag + (Next_Rep_Item): Document use for aspects + (Get_Pragma_Arg): Moved here from Sem_Prag + * sprint.adb (Sprint_Aspect_Specifications): Now called after semicolon + is output and removes semicolon (simplifies interface). + (Sprint_Node_Actual): Simplify handling of aspects now that Has_Aspects + applies to any node. + * tree_gen.adb: Write contents of Aspect_Specifications hash table + * tree_in.adb: Read and initialize Aspect_Specifications hash table + * treepr.adb (Print_Node): Print Has_Aspects flag + (Print_Node): Print Aspect_Specifications in Has_Aspects set + * xtreeprs.adb: Remove obsolete references to Flag1,2,3 + +2010-10-11 Robert Dewar + + * aspects.ads, aspects.adb: Major revision of this package for 2nd + stage of aspects implementation. + * gcc-interface/Make-lang.in: Add entry for aspects.o + * gcc-interface/Makefile.in: Add aspects.o to GNATMAKE_OBJS + * par-ch13.adb (Aspect_Specifications_Present): New function + (P_Aspect_Specifications): New procedure + * par-ch3.adb (P_Type_Declaration): Handle aspect specifications + (P_Derived_Type_Def_Or_Private_Ext_Decl): Handle aspect specifications + (P_Identifier_Declarations): Handle aspect specifications + (P_Component_Items): Handle aspect specifications + (P_Subtype_Declaration): Handle aspect specifications + * par-ch6.adb (P_Subprogram): Handle aspect specifications + * par-ch9.adb (P_Entry_Declaration): Handle aspect specifications + * par.adb (Aspect_Specifications_Present): New function + (P_Aspect_Specifications): New procedure + * sem.adb (Analyze_Full_Type_Declaration): New name for + Analyze_Type_Declaration. + (Analyze_Formal_Package_Declaration): New name (add _Declaration) + (Analyze_Formal_Subprogram_Declaration): New name (add _Declaration) + (Analyze_Protected_Type_Declaration): New name (add _Declaration) + (Analyze_Single_Protected_Declaration): New name (add _Declaration) + (Analyze_Single_Task_Declaration): New name (add _Declaration) + (Analyze_Task_Type_Declaration): New name (add _Declaration) + * sem_cat.adb (Analyze_Full_Type_Declaration): New name for + Analyze_Type_Declaration. + * sem_ch11.adb (Analyze_Exception_Declaration): Analyze aspect + specifications. + * sem_ch12.adb (Analyze_Formal_Object_Declaration): Handle aspect + specifications. + (Analyze_Formal_Package_Declaration): New name (add _Declaration) + (Analyze_Formal_Package_Declaration): Handle aspect specifications + (Analyze_Formal_Subprogram_Declaration): New name (add _Declaration) + (Analyze_Formal_Subprogram_Declaration): Handle aspect specifications + (Analyze_Formal_Type_Declaration): Handle aspect specifications + (Analyze_Generic_Package_Declaration): Handle aspect specifications + (Analyze_Generic_Subprogram_Declaration): Handle aspect specifications + (Analyze_Package_Instantiation): Handle aspect specifications + (Analyze_Subprogram_Instantiation): Handle aspect specifications + * sem_ch12.ads (Analyze_Formal_Package_Declaration): New name (add + _Declaration). + (Analyze_Formal_Subprogram_Declaration): New name (add _Declaration) + * sem_ch13.adb (Analyze_Aspect_Specifications): New procedure + (Duplicate_Clause): New function, calls to this function are added to + processing for all aspects. + * sem_ch13.ads (Analyze_Aspect_Specifications): New procedure + * sem_ch3.adb (Analyze_Full_Type_Declaration): New name for + Analyze_Type_Declaration. + * sem_ch3.ads (Analyze_Full_Type_Declaration): New name for + Analyze_Type_Declaration. + * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Analyze aspect + specifications. + (Analyze_Subprogram_Declaration): Analyze aspect specifications + * sem_ch7.adb (Analyze_Package_Declaration): Analyze aspect + specifications. + (Analyze_Private_Type_Declaration): Analyze aspect specifications + * sem_ch9.adb (Analyze_Protected_Type_Declaration): Analyze aspect + specifications. + (Analyze_Protected_Type_Declaration): New name (add _Declaration) + (Analyze_Single_Protected_Declaration): Analyze aspect specifications + (Analyze_Single_Protected_Declaration): New name (add _Declaration) + (Analyze_Single_Task_Declaration): Analyze aspect specifications + (Analyze_Single_Task_Declaration): New name (add _Declaration) + (Analyze_Task_Type_Declaration): Analyze aspect specifications + (Analyze_Task_Type_Declaration): New name (add _Declaration) + * sem_ch9.ads (Analyze_Protected_Type_Declaration): New name (add + _Declaration). + (Analyze_Single_Protected_Declaration): New name (add _Declaration) + (Analyze_Single_Task_Declaration): New name (add _Declaration) + (Analyze_Task_Type_Declaration): New name (add _Declaration) + * sem_prag.adb: Use Get_Pragma_Arg systematically so that we do not + have to generate unnecessary pragma argument associations (this matches + the doc). + Throughout do changes to accomodate aspect specifications, including + specializing messages, handling the case of not going through all + homonyms, and allowing for cancellation. + * sinfo.ads, sinfo.adb: Clean up obsolete documentation for Flag1,2,3 + (Aspect_Cancel): New flag + (From_Aspect_Specification): New flag + (First_Aspect): Removed flag + (Last_Aspect): Removed flag + * sprint.adb (Sprint_Aspect_Specifications): New procedure + (Sprint_Node_Actual): Add calls to Sprint_Aspect_Specifications + +2010-10-11 Bob Duff + + * sem_res.adb (Resolve_Actuals): Minor change to warning messages so + they match in Ada 95, 2005, and 2012 modes, in the case where the + language didn't change. Same thing for the run-time exception message. + +2010-10-11 Javier Miranda + + * debug.adb Document that switch -gnatd.p enables the CIL verifier. + +2010-10-11 Robert Dewar + + * s-htable.adb: Minor reformatting. + +2010-10-11 Javier Miranda + + * debug.adb: Update comment. + +2010-10-11 Vincent Celier + + * gnatcmd.adb (GNATCmd): Set Opt.Unchecked_Shared_Lib_Imports to True + unconditionally as for "gnat make" the projects are not processed in + the GNAT driver. + +2010-10-11 Ed Schonberg + + * sem_ch10.ads, sem_ch10.adb (Load_Needed_Body): Add parameter to + suppress semantic analysis of the body when inlining, prior to + verifying that the body does not have a with_clause on a descendant + unit. + * inline.adb (Analyze_Inlined_Bodies): Do not inline a body if it has a + with_clause on a descendant. + (Scope_In_Main_Unit): Simplify. + +2010-10-11 Robert Dewar + + * exp_ch6.adb, freeze.adb: Minor reformatting. + +2010-10-11 Vincent Celier + + * gnatcmd.adb (GNATCmd): For all tools other than gnatmake, allow + shared library projects to import projects that are not shared library + projects. + +2010-10-11 Javier Miranda + + * debug.adb: Document that switch -gnatd.o generates the CIL listing. + +2010-10-11 Arnaud Charlet + + * sem_prag.adb (Process_Suppress_Unsuppress): Only ignore + Suppress/Unsuppress pragmas in codepeer mode on user code. + +2010-10-11 Javier Miranda + + * exp_ch6.adb (Expand_Call): For VM platforms, add missing expansion of + tag check in case of dispatching call through "=". + +2010-10-11 Ed Schonberg + + * sem_ch3.adb (Access_Subprogram_Declaration): In Ada2012 an incomplete + type is legal in the profile of any basic declaration. + * sem_ch6.adb (Analyze_Return_Type, Process_Formals): In Ada2012 an + incomplete type, including a limited view of a type, is legal in the + profile of any subprogram declaration. + If the type is tagged, its use is also legal in a body. + * sem_ch10.adb (Install_Limited_With_Clause): Do not process context + item if misplaced. + (Install_Limited_Withed_Unit): Refine legality checks when both the + limited and the non-limited view of a package are visible in the + context of a unit. + If this is not an error case, the limited view is ignored. + freeze.adb (Freeze_Entity): In Ada2012, an incomplete type is legal in + access to subprogram declarations + +2010-10-11 Robert Dewar + + * exp_ch6.adb: Code clean up. + * exp_util.adb: Minor reformatting. + +2010-10-11 Arnaud Charlet + + * sem_ch3.adb, exp_ch6.adb + (Make_Build_In_Place_Call_In_Anonymous_Context, + Make_Build_In_Place_Call_In_Assignment, + Make_Build_In_Place_Call_In_Object_Declaration): Fix calls to + Add_Task_Actuals_To_Build_In_Place_Call in case of No_Task_Hierarchy + restriction. + (Access_Definition): Add missing handling of No_Task_Hierarchy. + +2010-10-11 Javier Miranda + + * exp_util.adb (Remove_Side_Effects): No action needed for renamings of + class-wide expressions. + +2010-10-11 Arnaud Charlet + + * xr_tabls.adb, sem_res.adb: Minor reformatting + +2010-10-11 Arnaud Charlet + + * gnat_rm.texi, exp_attr.adb, sem_attr.adb, sem_attr.ads, + snames.ads-tmpl (Analyze_Attribute, Expand_N_Attribute_Reference): Add + handling of Attribute_Ref. Add missing blanks in some error messages. + (Attribute_Ref, Name_Ref): Declare. + Document 'Ref attribute. + +2010-10-11 Robert Dewar + + * sem_attr.adb: Minor reformatting. + +2010-10-11 Javier Miranda + + * sem_ch8.adb (Attribute_Renaming): Add missing check to avoid loading + package System.Aux_Dec in VM platforms. + +2010-10-11 Arnaud Charlet + + * sem_prag.adb (Process_Suppress_Unsuppress): Ignore + Suppress/Unsuppress pragmas in codepeer mode. + (Analyze_Pragma [Pragma_Suppress_All]): Do not generate error message + in codepeer mode. + * einfo.ads: Fix typo. + +2010-10-11 Emmanuel Briot + + * sinfo.adb: Use GNAT.HTable rather than System.HTable. + * prj-nmsc.adb: Minor reformatting. + +2010-10-11 Thomas Quinot + + * sem_attr.adb (Type_Key): Code simplification. + +2010-10-11 Tristan Gingold + + * gcc-interface/utils2.c (maybe_wrap_malloc): Fix crash when allocating + very large object on VMS. + +2010-10-11 Javier Miranda + + * sem_ch10.adb (Analyze_With_Clause): Add missing test to ensure + availability of attribute Instance_Spec. + +2010-10-11 Arnaud Charlet + + * gnat1drv.adb (Adjust_Global_Switches): Disable codepeer mode if + checking syntax only or in ASIS mode. + +2010-10-11 Ed Schonberg + + * sem_ch6.adb (Check_Delayed_Subprogram): Abstract subprograms may also + need a freeze node if some type in the profile has one. + * gcc-interface/trans.c (case N_Abstract_Subprogram_Declaration): If + entity has a freeze node, defer elaboration. + +2010-10-11 Emmanuel Briot + + * prj-nmsc.adb (Check_Aggregate_Project): Add support for finding all + aggregated projects. + +2010-10-11 Ed Schonberg + + * sem_res.adb (Resolve_Entry_Call): Generate 's' reference for entry + call. + * sem_ch6.adb: Diagnose additional error condition. + +2010-10-11 Bob Duff + + * par.adb (Par): Clarify wording of certain error messages. + +2010-10-11 Gary Dismukes + + * sem_disp.adb (Check_Dispatching_Operation): Revise test for warning + about nondispatching subprograms to use In_Same_List (reducing use of + Parent links). + +2010-10-11 Ed Schonberg + + * xr_tabls.adb, sem_res.adb, lib-xref.adb, lib-xref.ads: Use s for + reference in a static call. + +2010-10-11 Steve Baird + + * exp_attr.adb (Expand_N_Attribute_Reference, case Type_Key): Type_Key + attribute should always be transformed into a string literal in + Analyze_Attribute. + * par-ch4.adb: Type_Key attribute's type is String; update value of + Is_Parameterless_Attribute constant to reflect this. + * sem_attr.adb (Analyze_Attribute): Recognize Type_Key attribute and + rewrite it as a string literal (attribute value is always known + statically). + * snames.ads-tmpl: Add entries for Type_Key attribute. + +2010-10-11 Ed Schonberg + + * lib-xref.adb (Output_References): Common handling for objects and + formals of an anonymous access type. + +2010-10-11 Eric Botcazou + + * make.adb (Scan_Make_Arg): Also pass -O to both compiler and linker. + +2010-10-11 Ed Schonberg + + * sem_ch6.adb: Fix check for illegal equality declaration in Ada2012 + +2010-10-11 Gary Dismukes + + * sem_disp.adb (Check_Dispatching_Operation): When testing for issuing + a warning about subprograms of a tagged type not being dispatching, + limit this to cases where the tagged type and the subprogram are + declared within the same declaration list. + +2010-10-11 Jerome Lambourg + + * projects.texi, prj-attr.adb: Add new attribute documentation_dir. + +2010-10-11 Bob Duff + + * par-ch9.adb, sem_aggr.adb, exp_ch5.adb, sem_ch3.adb, impunit.adb, + impunit.ads, sem_ch5.adb, sem_type.adb, exp_imgv.adb, exp_util.adb, + switch-c.adb, exp_attr.adb, exp_ch9.adb, par-ch11.adb, usage.adb, + sem_ch9.adb, sem_ch10.adb, scng.adb, checks.adb, sem_prag.adb, + sem_ch12.adb, par-ch2.adb, freeze.adb, par-ch4.adb, sem_util.adb, + sem_res.adb, sem_attr.adb, par-ch6.adb, exp_ch4.adb, exp_ch6.adb, + sem_ch4.adb, exp_ch8.adb, par-ch10.adb, sem_ch6.adb, par-prag.adb, + exp_disp.adb, par-ch12.adb, sem_ch8.adb, snames.adb-tmpl, opt.ads, + exp_aggr.adb, sem_cat.adb, sem_ch13.adb, par-ch3.adb, exp_strm.adb, + exp_cg.adb, lib-xref.adb, sem_disp.adb, exp_ch3.adb: Use Ada_2005 + instead of Ada_05 (Ada_Version_Type). + +2010-10-11 Bob Duff + + * sem_aggr.adb, impunit.adb, impunit.ads, switch-c.adb, usage.adb, + sem_ch10.adb, sem_prag.adb, sem_ch12.adb, par-ch4.adb, par-ch6.adb, + par-ch8.adb, exp_ch4.adb, sem_ch4.adb, sem_ch6.adb, par-prag.adb, + opt.ads, par-ch3.adb, lib-xref.adb: Use Ada_2012 instead of Ada_12 + (Ada_Version_Type). + +2010-10-11 Javier Miranda + + * exp_util.adb (Safe_Prefixed_Reference): If the prefix is an explicit + dereference then do not exclude dereferences of access-to-constant + types to handle them as constant view of variables (and hence remove + side effects when required). + * sem_res.adb (Resolve_Slice): Ensure that side effects in the bounds + are properly handled. + +2010-10-11 Robert Dewar + + * sem_prag.adb, sem_aggr.adb, sprint.adb: Minor reformatting. + +2010-10-11 Javier Miranda + + * exp_ch5.ads, exp_ch6.ads (Expand_N_Extended_Return_Statement): Moved + to exp_ch6. + (Expand_N_Simple_Return_Statement): Moved to exp_ch6. + * exp_ch5.adb, exp_ch6.adb (Expand_Non_Function_Return): Moved to + exp_ch6. + (Expand_Simple_Function_Return): Move to exp_ch6. + (Expand_N_Extended_Return_Statement): Moved to exp_ch6. + (Expand_N_Simple_Return_Statement): Moved to exp_ch6. + +2010-10-11 Robert Dewar + + * snames.ads-tmpl: Add names for aspects. + * aspects.ads, aspects.adb: New. + * gcc-interface/Make-lang.in: Update dependencies. +2010-10-11 Ed Schonberg + + * exp_ch6.adb (Expand_Actuals): If an actual is the current instance of + a task type, it must be replaced with a reference to Self. + +2010-10-11 Vincent Celier + + * adaint.h: Add prototype for function __gnat_create_output_file_new. + +2010-10-11 Javier Miranda + + * sem_aggr.adb (Collect_Aggr_Bounds): Remove side effects of collected + aggregate bounds. + +2010-10-11 Arnaud Charlet + + * sem_prag.adb (Check_Interrupt_Or_Attach_Handler): Do not emit error + for AI05-0033 in CodePeer mode. + +2010-10-11 Robert Dewar + + * atree.h, atree.ads, atree.adb (Flag3): New flag (replaces Unused_1) + * csinfo.adb: Aspect_Specifications is a new special field + * einfo.adb (Flag3): New unused flag + * exp_util.adb (Insert_Actions): Add processing for + N_Aspect_Specification. + * sem.adb: Add entry for N_Aspect_Specification. + * sinfo.ads, sinfo.adb (N_Aspect_Specification): New node + (Has_Aspect_Specifications): New flag + (Permits_Aspect_Specifications): New function + (Aspect_Specifications): New function + (Set_Aspect_Specifications): New procedure + * sprint.adb (Sprint_Node): Put N_At_Clause in proper alpha order + (Sprint_Node): Add dummy entry for N_Aspect_Specification + * treepr.adb (Flag3): New flag to be listed + +2010-10-11 Vincent Celier + + * adaint.c: Minor reformatting. + +2010-10-11 Robert Dewar + + * sem_ch6.adb, s-htable.ads: Minor reformatting. + +2010-10-11 Ed Schonberg + + * sem_ch4.adb (Analyze_Selected_Component): If the selector is + invisible in an instantiation, and both the formal and the actual are + private extensions of the same type, look for the desired component in + the proper view of the parent type. + +2010-10-11 Vincent Celier + + * adaint.c (__gnat_number_of_cpus): Add implementation for Solaris, + AIX, Tru64, Darwin, IRIX and HP-UX. + +2010-10-11 Robert Dewar + + * a-textio.adb: Minor reformatting + +2010-10-11 Robert Dewar + + * a-suesen.ads, a-suenst.ads, + a-suesen.adb, a-suenst.adb, + a-suewse.adb, a-suewst.adb, + a-suewse.ads, a-suewst.ads, + a-suezse.ads, a-suezst.ads, + a-suezse.adb, a-suezst.adb: New name for string encoding packages. + * impunit.adb: New names for string encoding units + * Makefile.rtl: New names for string encoding units + * rtsfind.ads: Minor code reorganization. + +2010-10-11 Ed Schonberg + + * exp_ch5.adb: Code clean up. + +2010-10-11 Ed Schonberg + + * sem_ch6.adb (Check_Limited_Return): Specialize warning on limited + returns when in a generic context. + (Analyze_Function_Return): ditto. + +2010-10-11 Robert Dewar + + * s-multip.ads: Fix header. + * sem_ch3.adb, s-multip.adb, a-tigeli.adb: Minor reformatting. + +2010-10-11 Vincent Celier + + * Makefile.rtl: Add s-multip. + * adaint.c: New function __gnat_number_of_cpus, implemented for Linux, + defaulting to 1 for other platforms. + * adaint.h: New function __gnat_number_of_cpus. + * impunit.adb (Non_Imp_File_Names_12): New file list for Ada 2012, + with a single component "s-multip". + * impunit.ads (Kind_Of_Unit): New enumerated value Ada_12_Unit for Ada + 2012. + * rtsfind.ads (RTU_Id): New enumerated value System_Multiprocessors + * s-multip.ads, s-multip.adb: New Ada 2012 package. + * sem_ch10.adb (Analyze_With_Clause): Check also Ada 2012 units. + +2010-10-11 Javier Miranda + + * a-textio.adb: Move new implementation of Get_Line to a subunit. + * a-tigeli.adb: New subunit containing the implementation of Get_Line. + +2010-10-11 Ed Schonberg + + * sem_aux.adb: Code clean up. + +2010-10-11 Robert Dewar + + * sem_ch3.adb, sem_aux.adb, sem_ch6.adb: Minor reformatting + +2010-10-11 Robert Dewar + + * einfo.adb, atree.h, atree.ads, atree.adb: Define seven new flags + Flag248-Flag254. Define new field Field29. + +2010-10-10 Olivier Hainque + Eric Botcazou + + * gcc-interface/lang.opt (gdwarf+): Remove. + * gcc-interface/gigi.h (get_parallel_type): Likewise + * gcc-interface/misc.c (gnat_dwarf_extensions): Likewise. + (gnat_handle_option): Remove OPT_gdwarfplus case. + (gnat_post_options): Remove setting of use_gnu_debug_info_extensions + from gnat_dwarf_extensions. + * gcc-interface/trans.c (gigi): Remove -gdwarf+ initializations. + * gcc-interface/utils.c (get_parallel_type): Remove. + +2010-10-10 Eric Botcazou + + * gcc-interface/trans.c (gnat_to_gnu) : Use + invert_truthvalue_loc instead of invert_truthvalue. + * gcc-interface/utils2.c (build_binary_op) : Likewise. + (build_unary_op) : Likewise. + +2010-10-10 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Add + assertion on the types of the parameters. Use KIND local variable. + : Likewise. + +2010-10-10 Eric Botcazou + + * gcc-interface/ada-tree.h (DECL_BY_DOUBLE_REF_P): New macro. + * gcc-interface/gigi.h (annotate_object): Add BY_DOUBLE_REF parameter. + * gcc-interface/decl.c (annotate_object): Likewise and handle it. + (gnat_to_gnu_entity): Adjust calls to annotate_object. + (gnat_to_gnu_param): If fat pointer types are passed by reference on + the target, pass them by explicit reference. + * gcc-interface/misc.c (default_pass_by_ref): Fix type of constant. + * gcc-interface/trans.c (Identifier_to_gnu): Do DECL_BY_DOUBLE_REF_P. + (Subprogram_Body_to_gnu): Adjust call to annotate_object. + (call_to_gnu): Handle DECL_BY_DOUBLE_REF_P. + * gcc-interface/utils.c (convert_vms_descriptor): Add BY_REF parameter + and handle it. + (build_function_stub): Iterate on the parameters of the subprogram in + lieu of on the argument types. Adjust call to convert_vms_descriptor. + +2010-10-09 Eric Botcazou + + * gcc-interface/misc.c: Delete prototypes. + (gnat_init_options): Use local variable. + (lang_hooks): Move to the end of the file. + +2010-10-08 Joseph Myers + + * gcc-interface/misc.c (gnat_init_options_struct): New. Split out + from gnat_init_options. + (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define. + +2010-10-08 Ed Schonberg + + * sem_aux.adb: Cleanup Is_Immutably_Limited_Type. + +2010-10-08 Robert Dewar + + * exp_ch3.adb: Minor reformatting. + * exp_ch5.adb: Add comment. + +2010-10-08 Robert Dewar + + * sem_prag.adb (Check_Duplicate_Pragma): Check for entity match + * gcc-interface/Make-lang.in: Update dependencies. + * einfo.ads: Minor reformatting. + +2010-10-08 Ed Schonberg + + * exp_ch5.adb, sem_ch3.adb, exp_ch7.adb, exp_util.adb, sem_aux.adb, + sem_aux.ads, exp_ch4.adb, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb, + exp_ch3.adb: Change Is_Inherently_Limited_Type to + Is_Immutably_Limited_Type to accord with new RM terminology. + * sem_aux.adb (Is_Immutably_Limited_Type): A type that is a descendant + of a formal limited private type is not immutably limited in a generic + body. + +2010-10-08 Robert Dewar + + * sem_prag.adb (Check_Duplicate_Pragma): New procedure + Add calls to this new procedure where appropriate + +2010-10-08 Vincent Celier + + * a-textio.adb (Get_Chunk): Code clean up. + +2010-10-08 Robert Dewar + + * a-strbou.ads, a-strfix.adb, a-strfix.ads, a-strsea.adb, a-strsea.ads, + a-strsup.adb, a-strsup.ads, a-strunb-shared.adb, a-strunb-shared.ads, + a-strunb.adb, a-strunb.ads, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads, + a-stwise.adb, a-stwise.ads, a-stwisu.adb, a-stwisu.ads, + a-stwiun-shared.adb, a-stwiun-shared.ads, a-stwiun.adb, a-stwiun.ads, + a-stzbou.ads, a-stzfix.adb, a-stzfix.ads, a-stzsea.adb, a-stzsea.ads, + a-stzsup.adb, a-stzsup.ads, a-stzunb-shared.adb, a-stzunb-shared.ads, + a-stzunb.adb, a-stzunb.ads (Find_Token): New version with From + parameter. + +2010-10-08 Robert Dewar + + * sem_cat.adb (Check_Categorization_Dependencies): Remote types + packages can depend on preleborated packages. + +2010-10-08 Robert Dewar + + * sem_prag.adb (Check_Interrupt_Or_Attach_Handler): Pragmas + Interrupt_Handler and Attach_Handler not allowed in generics. + +2010-10-08 Robert Dewar + + * ali.adb: Set Allocator_In_Body if AB parameter present on M line + * ali.ads (Allocator_In_Body): New flag + * bcheck.adb (Check_Consistent_Restrictions): Handle case of main + program violating No_Allocators_After_Elaboration restriction. + * gnatbind.adb (No_Restriction_List): Add entries for + No_Anonymous_Allocators, and No_Allocators_After_Elaboration. + * lib-load.adb: Initialize Has_Allocator flag + * lib-writ.adb: Initialize Has_Allocator flag + (M_Parameters): Set AB switch if Has_Allocator flag set + * lib-writ.ads: Document AB flag on M line + * lib.adb (Has_Allocator): New function + (Set_Has_Allocator): New procedure + * lib.ads (Has_Allocator): New function + (Set_Has_Allocator): New procedure + (Has_Allocator): New flag in Unit_Record + * sem_ch4.adb (Analyze_Allocator): Add processing for + No_Allocators_After_Elaboration. + +2010-10-08 Geert Bosch + + * a-textio.adb (Get_Line): Rewrite to use fgets instead of fgetc. + +2010-10-08 Javier Miranda + + * sem_prag.adb (Analyze_Pragma): Relax semantic rule of + Java_Constructors because in the JRE library we generate occurrences + in which the "this" parameter is not the first formal. + +2010-10-08 Robert Dewar + + * par-ch3.adb: Minor reformatting. + +2010-10-08 Javier Miranda + + * exp_disp.adb (Make_DT): Do not generate dispatch tables for CIL/Java + types. + +2010-10-08 Robert Dewar + + * par-ch8.adb (P_Use_Type_Clause): Recognize ALL keyword in Ada 2012 + mode. + * sinfo.adb (Use_Type_Clause): Add All_Present flag. + * sinfo.ads (Use_Type_Clause): Add All_Present flag. + * s-rident.ads: Add entry for No_Allocators_After_Elaboration, + No_Anonymous_Allocators. + +2010-10-08 Vincent Celier + + * bindgen.adb (Gen_Restrictions_Ada): No new line after last + restriction, so that the last comma is always replaced with a left + parenthesis. + +2010-10-08 Javier Miranda + + * sem_prag.adb (Analyze_Pragma): Add specific check on the type of the + first formal of delegates. + +2010-10-08 Robert Dewar + + * sem_aggr.adb: Minor reformatting. + +2010-10-08 Robert Dewar + + * exp_imgv.adb (Expand_Image_Attribute): Handle special calling + sequence for soft hyphen for Character'Image case. + * rtsfind.ads (Image_Character_05): New entry + * s-imgcha.adb (Image_Character_05): New procedurew + * s-imgcha.ads (Image_Character_05): New procedure + * s-imgwch.adb (Image_Wide_Character): Deal with Ada 2005 soft hyphen + case. + * s-valcha.adb (Value_Character): Recognize SOFT_HYPHEN for 16#AD# + * sem_attr.adb (Eval_Attribute, case Width): Handle soft_hyphen name + properly. + +2010-10-08 Robert Dewar + + * sem_attr.adb (Eval_Attribute, case Width): Avoid ludicrous long loop + for case of Wide_[Wide_]Character. + +2010-10-08 Robert Dewar + + * exp_ch3.adb: Minor reformating + Minor code reorganization. + +2010-10-08 Javier Miranda + + * sem_prag.adb (Analyze_Pragma): Add missing checks on wrong use of + pragmas CIL_Constructor and Java_Constructor. + * exp_ch3.adb (Expand_Freeze_Record_Type): Do not generate the + predefined primitives for CIL/Java tagged types. + +2010-10-08 Robert Dewar + + * sem_ch6.adb: Minor reformatting. + +2010-10-08 Robert Dewar + + * gnat1drv.adb: Add call to Validate_Independence. + * par-prag.adb: Add dummy entries for Independent, + Independent_Componentsa. + * sem_ch13.adb (Validate_Independence): New procedure + (Initialize): Initialize address clause and independence check tables + * sem_ch13.ads (Independence_Checks): New table + (Validate_Independence): New procedure + * sem_prag.adb: Add processing for pragma Independent[_Components] + * snames.ads-tmpl: Add entries for pragma Independent[_Components] + +2010-10-08 Ed Schonberg + + * sem_aggr.adb (Propagate_Discriminants): When expanding an aggregate + component with box initialization, if the component is a variant record + use the values of the discriminants to select the proper variant for + further box initialization. + +2010-10-08 Thomas Quinot + + * xsnames.adb: Remove obsolete file. + * make.adb, sem_ch8.adb, einfo.ads: Minor reformatting. + +2010-10-08 Ed Schonberg + + * exp_aggr.adb: Complete previous change. + +2010-10-08 Ed Schonberg + + * sem_ch6.adb (Check_Return_Subtype): The subtype indication in an + extended return must match statically the return subtype of the + enclosing function if the type is an elementary type or if it is + constrained. + +2010-10-08 Vincent Celier + + * prj-nmsc.adb (Add_Source): Report all duplicate units and source file + names. Do not report the same duplicate unit several times. + * prj.ads (Source_Data): New Boolean component Duplicate_Unit, + defaulted to False, to avoid reporting the same unit as duplicate + several times. + +2010-10-08 Ed Schonberg + + * sem_aggr.adb (Resolve_Array_Aggregate): If the expression in an + others choice is a literal, analyze it to enable later optimizations. + * exp_aggr.adb (Expand_Record_Aggregate): An aggregate with static size + and components can be handled by the backend even if it is of a limited + type. + +2010-10-08 Arnaud Charlet + + * a-rttiev.adb (task Timer): Since this package may be elaborated + before System.Interrupt, we need to call Setup_Interrupt_Mask + explicitly to ensure that this task has the proper signal mask. + +2010-10-08 Robert Dewar + + * freeze.adb (Freeze_Entity): For array case, move some processing for + pragma Pack, Component_Size clause and atomic/volatile components here + instead of trying to do the job in Sem_Ch13 and Freeze. + * layout.adb: Use new Addressable function + * sem_ch13.adb (Analyze_Attribute_Representation_Clause, case + Component_Size): Move some handling to freeze point in + Freeze.Freeze_Entity. + * sem_prag.adb (Analyze_pragma, case Pack): Move some handling to + freeze point in Freese.Freeze_Entity. + * sem_util.ads, sem_util.adb (Addressable): New function. + +2010-10-08 Robert Dewar + + * sprint.adb: Minor reformatting. + +2010-10-08 Javier Miranda + + * exp_ch4.adb (Real_Range_Check): Declare temporary as constant. + +2010-10-08 Robert Dewar + + * sem_ch3.adb: Minor reformatting. + +2010-10-08 Vincent Celier + + * ali-util.adb (Get_File_Checksum): Make sure that external_as_list is + not a reserved word. + * prj-proc.adb (Expression): Process string list external references. + * prj-strt.adb (External_Reference): Parse external_as_list external + references. + * prj-tree.ads (Expression_Kind_Of): Allowed for N_External_Value nodes + (Set_Expression_Kind_Of): Ditto + * prj.adb (Initialize): Set external_as_list as a reserved word + * projects.texi: Document new string external reference + external_as_list. + * scans.ads (Token_Type): New token Tok_External_As_List + * snames.ads-tmpl: New standard name Name_External_As_List + +2010-10-08 Thomas Quinot + + * sem_prag.adb: Minor reformatting. + +2010-10-08 Ed Schonberg + + * sem_ch3.adb (Derived_Type_Declaration): In the private part of an + instance, it is legal to derive from a non-limited actual when the + formal type is untagged limited. + * sem_ch12.adb (Instantiate_Type): For a formal private type, use + analyzed formal as Generic_Parent_Type, to simplify later checks. + +2010-10-08 Ed Schonberg + + * sem_res.adb (Insert_Default): If default value is already a + raise_constraint_error do not rewrite it as new raise node, to prevent + infinite loops in the warning removal machinery. + +2010-10-08 Robert Dewar + + * sem_util.adb, sem_prag.adb: Minor reformatting + +2010-10-08 Hristian Kirtchev + + * gnat_rm.texi: Remove the section on pragma Implemented_By_Entry. + Add section on pragma Implemented. + +2010-10-08 Ed Schonberg + + * sem_ch3.adb (Derive_Subprogram): If an abstract extension has a + concrete parent with a concrete constructor, the inherited constructor + is abstract even if the derived type is a null extension. + +2010-10-08 Thomas Quinot + + * sem_ch4.adb: Minor reformatting. + +2010-10-08 Hristian Kirtchev + + * einfo.adb: Flag 232 (formerly Implemented_By_Entry) is now unused. + (Implemented_By_Entry): Removed. + (Set_Implemented_By_Entry): Removed. + (Write_Entity_Flags): Remove the output for Implemented_By_Entry. + * einfo.ads: Remove Implemented_By_Entry and its usage in entities. + (Implemented_By_Entry): Removed along with its associated pragma. + (Set_Implemented_By_Entry): Removed along with its associated pragma. + * exp_ch9.adb: Alphabetize with and use clauses of Exp_Ch9. + (Build_Dispatching_Call_Equivalent): New routine. + (Build_Dispatching_Requeue): New routine. + (Build_Dispatching_Requeue_To_Any): New routine. + (Build_Normal_Requeue): New routine. + (Build_Skip_Statement): New routine. + (Expand_N_Requeue_Statement): Rewritten. The logic has been split into + several subroutines. + * par-prag.adb: Replace Pragma_Implemented_By_Entry by + Pragma_Implemented. + * sem_ch3.adb (Check_Abstract_Overriding): Perform checks concerning + pragma Implemented. + (Check_Pragma_Implemented): New routines. + (Inherit_Pragma_Implemented): New routine. + * sem_ch9.adb (Analyze_Requeue): Update the predicate which detects a + dispatching requeue. + * sem_prag.adb: Update array Sig_Flags by removing Implemented_By_Entry + and adding Implemented. + (Ada_2012_Pragma): New routine. + (Analyze_Pragma, case Implemented): Perform all necessary checks + concerning pragma Implemented and register the pragma as a + representation item with the procedure_LOCAL_NAME. + (Analyze_Pragma, case Implemented_By_Entry): Removed. + * sem_util.adb (Implementation_Kind): New routine. + * sem_util.ads (Implementation_Kind): New routine. + * snames.ads-tmpl: Remove Name_Implemented_By_Entry and add + Name_Implemented. Remove pragma name Pragma_Implemented_By_Entry and + add Pragma_Implemented. Add special names By_Any, By_Entry and + By_Protected_Procedure. + +2010-10-08 Javier Miranda + + * exp_ch3.adb (Expand_Freeeze_Record_Type): Code cleanup: remove local + variable Has_Static_DT by invocation of function Building_Static_DT. + +2010-10-08 Vincent Celier + + * g-dirope.adb (Remove_Dir): Do not change the current directory when + doing a recursive remove of a subdirectory. + +2010-10-08 Javier Miranda + + * exp_ch6.ad (Freeze_Subprogram): Factorize code. + * exp_disp.adb (Make_Secondary_DT): Factorize code. + (Make_DT): Factorize code. + +2010-10-08 Robert Dewar + + * sem_ch4.adb: Minor reformatting. + +2010-10-08 Robert Dewar + + * sem_ch6.adb (Check_Conformance): Check null exclusion match for full + conformance. + +2010-10-08 Thomas Quinot + + * sem_ch12.adb (Instantiate_Object): Rename Formal_Id to Gen_Obj, for + consistency with Gen_T in Instantiate_Type. + Introduce constant A_Gen_Obj to avoid repeated queries for + Defining_Identifier (Analyzed_Formal). + +2010-10-08 Vincent Celier + + * prj-nmsc.adb: Minor comment fix. + +2010-10-07 Robert Dewar + + * sem_prag.adb, sem_ch13.adb: Implement AI05-0012-1/02. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-10-07 Ed Schonberg + + * sem_ch12.ad: (Instantiate_Object): For an in-out formal of a child + unit, if the type of the formal is declared in a parent unit and is not + a formal itself, the actual must be located from an enclosing parent + instance by normal visibility. + +2010-10-07 Ed Schonberg + + * sem_ch4.adb (Analyze_Allocator): In Ada 2012, a null_exclusion + indicator is illegal for an uninitialized allocator. + +2010-10-07 Robert Dewar + + * sem_prag.adb (Analyze_Attribute_Definition_Clause, case + Component_Size): Complete previous change. + +2010-10-07 Vincent Celier + + * scng.adb (Scan): Call Accumulate_Token_Checksum for Tok_Identifier, + even for keywords, to avoid having the checksum to depend on the Ada + version. + +2010-10-07 Gary Dismukes + + * sem_aggr.adb, sem_ch12.adb, sem_ch6.adb, par-ch5.adb, + exp_ch3.adb: Minor reformatting. + +2010-10-07 Robert Dewar + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case + Component_Size): It is now illegal to give an incorrect component size + clause in the case of aliased or atomic components. + * sem_prag.adb (Analyze_Pragma, case Pack): It is now illegal to give + an effective pragma Pack in the case of aliased or atomic components. + +2010-10-07 Steve Baird + + * exp_ch4.adb (Expand_N_Allocator): Do not bypass expansion + in the case of a violation of an active No_Task_Hierarchy restriction. + +2010-10-07 Ed Schonberg + + * sem_ch12.adb (Validate_Derived_Type_Instance): If a formal derived + type is non-limited, an actual for it cannot be limited. + +2010-10-07 Robert Dewar + + * einfo.ads (No_Pool_Assigned): Update documentation. + * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case + Storage_Size): We only set No_Pool_Assigned if the expression is a + static constant and zero. + * sem_res.adb (Resolve_Allocator): Allocation from empty storage pool + should be an error not a warning. + +2010-10-07 Ed Schonberg + + * exp_aggr.adb (Expand_Array_Aggregate): Recognize additional cases + where an aggregate in an assignment can be built directly into the + target, and does not require the creation of a temporary that may + overflow the stack. + +2010-10-07 Ed Schonberg + + * sem_aggr.adb (Analyze_Record_Aggregate): In Ada2012, a choice list + in a record aggregate can correspond to several components of + anonymous access types, as long as the designated subtypes match. + +2010-10-07 Robert Dewar + + * gnat_rm.texi, exp_util.adb, sinfo.adb, sinfo.ads, sem_ch12.adb, + sem.adb, gnat_ugn.texi, sem_util.ads, par-ch6.adb, targparm.ads, + restrict.adb, sem_ch6.adb, sem_ch6.ads, sprint.adb, i-c.ads: Change + spelling parametrize(d) => parameterize(d). + +2010-10-07 Robert Dewar + + * sem_ch12.adb: Add comment. + * sem_ch6.adb: Minor reformatting. + +2010-10-07 Robert Dewar + + * par-ch3.adb, par-ch6.adb, par-ch7.adb, par-ch9.adb, par-ch10.adb: Add + Pexp to Pf_Rec constants + (P_Subprogram): Expression is always enclosed in parentheses + * par.adb (Pf_Rec): add Pexp flag for parametrized expression + * sinfo.ads (N_Parametrized_Expression): Expression must be in parens + +2010-10-07 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Specification): Implement Ada2012 + checks on functions that return an abstract type or have a controlling + result whose designated type is an abstract type. + (Check_Private_Overriding): Implement Ada2012 checks on functions + declared in the private part, if an abstract type is involved. + * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): In Ada2012, + reject a generic function that returns an abstract type. + * exp_ch5.adb (Expand_Simple_Function_Return): in Ada2012, if a + function has a controlling access result, check that the tag of the + return value matches the designated type of the return expression. + +2010-10-07 Robert Dewar + + * par-ch6.adb: Fix error in handling of parametrized expressions. + * par-ch4.adb (P_Name): Allow qualified expression as name in Ada 2012 + mode. + (P_Simple_Expression): Better message for qualified expression prefix + * s-crc32.adb: Minor reformatting. + * exp_intr.adb (Expand_Unc_Deallocation): Remove test for empty + storage pool (this test is moved to Sem_Intr). + * sem_intr.adb (Check_Intrinsic_Call): Add check for deallocation from + empty storage pool, moved here from Exp_Intr and made into error. + (Check_Intrinsic_Call): Remove assumption in generating not-null free + warning that the name of the instantiation is Free. + * sinput.adb (Tree_Read): Document use of illegal free call allowed in + GNAT mode. + * types.ads: Remove storage size clauses from big types (since we may + need to do deallocations, which are now illegal for empty pools). + +2010-10-07 Sergey Rybin + + * gnat_ugn.texi: Add missing word. + +2010-10-07 Robert Dewar + + * exp_util.adb (Insert_Actions): Add handling of + N_Parametrized_Expression. + * par-ch6.adb (P_Subprogram): Add parsing of parametrized expression + * sem.adb: Add entry for N_Parametrized_Expression + * sem_ch6.adb (Analyze_Parametrized_Expression): New procedure + * sem_ch6.ads (Analyze_Parametrized_Expression): New procedure + * sinfo.ads, sinfo.adb: Add N_Parametrized_Expression + * sprint.adb (Sprint_Node): Add handling for N_Parametrized_Expression + * par-ch4.adb: Minor reformatting. + +2010-10-07 Robert Dewar + + * scng.adb (Skip_Other_Format_Characters): New procedure + (Start_Of_Wide_Character): New procedure + (Scan): Use Start_Of_Wide_Character where appropriate + (Scan): Improve error message for other_format chars in identifier + (Scan): Allow other_format chars between tokens + +2010-10-07 Javier Miranda + + * exp_util.adb (Safe_Prefixed_Reference): When removing side effects, + Add missing support for explicit dereferences. + +2010-10-07 Robert Dewar + + * par-ch10.adb, par-ch3.adb, par.adb: Minor reformatting. + +2010-10-07 Robert Dewar + + * exp_disp.adb, exp_dist.adb, exp_util.ads, exp_util.adb, + exp_ch11.adb: Rename Full_Qualified_Name to Fully_Qualified_Name_String + * sem_util.adb, sem_util.ads (Full_Qualified_Name): Moved to + Exp_Util.Fully_Qualified_Name_String. + +2010-10-07 Robert Dewar + + * rtsfind.ads: Add entry for Ada.Real_Time.Timing_Events.Set_Handler + * sem_res.adb (Resolve_Call): A call to + Ada.Real_Time.Timing_Events.Set_Handler violates restriction + No_Relative_Delay (AI-0211). + +2010-10-07 Ed Schonberg + + * sem_ch10.adb: Small change in error message. + +2010-10-07 Robert Dewar + + * tbuild.ads: Minor reformatting. + +2010-10-07 Robert Dewar + + * gnatcmd.adb, make.adb, prj-nmsc.adb, sem_elab.adb: Minor reformatting + +2010-10-07 Arnaud Charlet + + * exp_ch11.adb (Expand_N_Exception_Declaration): Update comments. + +2010-10-07 Robert Dewar + + * sem_res.adb: Minor reformatting + +2010-10-07 Olivier Ramonat + + * gnat_ugn.texi: Minor editing. + * opt.ads: Document that scripts rely on specific formats in opt.ads + +2010-10-07 Robert Dewar + + * a-wichun.ads, a-wichun.adb (To_Lower_Case): New function + (To_Upper_Case): Fix to be inverse of To_Lower_Case + * a-zchuni.ads, a-zchuni.adb (To_Lower_Case): New function + (To_Upper_Case): Fix to be inverse of To_Lower_Case + +2010-10-07 Robert Dewar + + * a-wichha.adb, a-wichha.ads, a-zchhan.adb, a-zchhan.ads: New file. + * impunit.adb: Add entries for a-wichha/a-zchhan + * Makefile.rtl: Add entries for a-wichha/a-zchhan + +2010-10-07 Vincent Celier + + * make.adb (Check): Call Check_Source_Info_In_ALI with Project_Tree + * makeutl.adb (Check_Source_Info_In_ALI): If there is at least one + replaced source, check that none of the replaced sources are in the + dependencies. + * makeutl.ads (Check_Source_Info_In_ALI): New parameter Tree + * prj-nmsc.adb (Remove_Source): New parameter Tree. If the source is + replaced with a source with a different file name, put it in the hash + table Replaced_Sources. + (Add_Source): Call Remove_Source with Data.Tree. If there is at least + one replaced source, check if it has the same file name as the current + source; if it has, remove it from the hash table Replaced_Sources. + * prj.adb (Reset): Reset hash table Tree.Replaced_Sources + * prj.ads (Replaced_Source_HTable): New hash table + (Project_Tree_Data): New components Replaced_Sources and + Replaced_Source_Number. + +2010-10-07 Ed Schonberg + + * sem_elab.adb (Check_A_Call): After inserting elaboration check, set + proper flag to prevent a double elaboration check on the same call. + * exp_util.adb (Insert_Actions): If the enclosing node is an + Expression_With_Actions and it has been analyzed already, find + insertion point further up in the tree. + +2010-10-07 Hristian Kirtchev + + * sem_ch13.adb (Analyze_Record_Representation_Clause): Alphabetize all + local variables. Remove the general restriction which prohibits the + application of record rep clauses to Unchecked_Union types. Add Ada + 2012 check to detect improper naming of an Unchecked_Union + discriminant in record rep clause. + * sem_prag.adb: Add with and use clause for Exp_Ch7. + (Analyze_Pragma): Unchecked_Union case: Propagate the Unchecked_Union + type to all invocations of Check_Component and Check_Variant. + (Check_Component): Add formal parameters UU_Typ and In_Variant_Part. + Rewritten. Add Ada 2012 check to detect improper use of formal + private types and private extensions as component types of an + Unchecked_Union declared inside a generic body. + (Check_Variant): Add formal parameter UU_Typ. Propagate the + Unchecked_Union type to all calls of Check_Component. Signal that the + current component comes from the variant part of an Unchecked_Union + type. + (Inside_Generic_Body): New routine. + +2010-10-07 Ed Schonberg + + * exp_ch4.adb (Expand_Composite_Equality): When looking for a primitive + equality operation for a record component, verify that both formals + have the same type, and the result type is boolean. + +2010-10-07 Vincent Celier + + * gnatcmd.adb (Check_Files): When looking for the .ci file for a + binder generated file, look for both b~xxx and b__xxx as gprbuild + always uses b__ as the prefix of such files. + +2010-10-07 Thomas Quinot + + * sem_res.adb: Minor reformatting. + +2010-10-07 Arnaud Charlet + + * debug.adb: Update -gnatd.J documentation. + +2010-10-07 Robert Dewar + + * gnat_rm.texi: Document handling of invalid values + * s-utf_32.ads, s-utf_32.adb (UTF_To_Lower_Case): Fix implementation + to match new spec. + (UTF_To_Upper_Case): New function. + +2010-10-07 Robert Dewar + + * sem_attr.adb: Minor reformatting. + * einfo.ads, einfo.adb (Is_Ada_2012_Only): New flag + * itypes.adb (Create_Null_Excluding_Itype): Set Is_Ada_2012_Only flag + properly. + * lib-xref.adb (Generate_Reference): Warn on use of Ada 2012 entity in + non-Ada 2012 mode. + * opt.ads (Warn_On_Ada_2012_Compatibility): New flag + * sem_ch3.adb (Analye_Subtype_Declaration): Inherit Is_Ada_2012_Only + * sem_ch7.adb (Preserve_Full_Attributes): Preserve Is_Ada_2012_Only + flag. + * sem_prag.adb (Analyze_Pragma, case Ada_12/Ada_2012): Allow form with + argument. + * sem_type.adb (Disambiguate): Deal with Is_Ada_2012_Only. + * sem_warn.adb (Warn_On_Ada_2012_Compatibility): New flag, treated + same as 2005 flag. + +2010-10-07 Javier Miranda + + * a-tags.ads: Use new support for pragma Ada_2012 with function + Type_Is_Abstract. + +2010-10-07 Ed Schonberg + + * par-ch5.adb (P_Sequence_Of_Statements): In Ada2012 a label can end a + sequence of statements. + +2010-10-07 Vincent Celier + + * gnatcmd.adb (Check_Files): Only add a .ci files if it exists + +2010-10-07 Javier Miranda + + * a-tags.ads, a-tags.adb (Type_Is_Abstract): New subprogram. + * rtsfind.ads (RE_Type_Is_Abstract): New entity. + * exp_disp.adb (Make_DT): Initialize TSD component Type_Is_Abstract. + +2010-10-07 Arnaud Charlet + + * sem_ch12.adb (Mark_Context): Removed, no longer needed. + (Analyze_Package_Instantiation): No longer analyze systematically a + generic body in CodePeer mode. + * freeze.adb, sem_attr.adb: Update comments. + +2010-10-05 Robert Dewar + + * par-ch5.adb (Test_Statement_Required): Allow all pragmas in Ada 2012 + mode. + +2010-10-05 Pascal Obry + + * gnat_rm.texi: Fix typo. + +2010-10-05 Arnaud Charlet + + * gnat_ugn.texi: Add note about identifiers with same name and + -fdump-ada-spec. + +2010-10-05 Robert Dewar + + * sem_ch4.adb: Minor reformatting. + * a-direct.ads: Minor comment update. + +2010-10-05 Javier Miranda + + * sem_ch3.adb (Add_Internal_Interface_Entities): Removing code that is + no longer required after change in New_Overloaded_Entity. + * sem_ch6.adb (New_Overloaded_Entity): Code reorganization to isolate + the fragment of code that handles derivations of interface primitives. + Add missing dependence on global variable Inside_Freezing_Actions to + ensure the correct management of internal interface entities. + * sem_ch13.adb (Analyze_Freeze_Entity): Add missing increase/decrease + of the global variable Inside_Freezing_Actions to ensure that internal + interface entities are well handled by New_Overloaded_Entity. + * sem_disp.adb (Find_Primitive_Covering_Interface): Add documentation + and complete the algorithm to catch hidden primitives derived of + private type that covers the interface. + * sem_disp.ads (Find_Primitive_Covering_Interface): Add missing + documentation. + +2010-10-05 Robert Dewar + + * prj-util.adb, prj-util.ads, prj.ads, s-vxwext-rtp.adb, sem_ch4.adb, + sem_ch7.adb, sem_res.adb, sem_type.adb: Minor reformatting. + Minor code reorganization (use Nkind_In). + +2010-10-05 Ed Schonberg + + * sem_ch10.adb (Analyze_Task_Body_Stub): Diagnose duplicate stub for + task. + +2010-10-05 Vincent Celier + + * gnatbind.adb: If the main library file is not for a suitable main + program, change the error message. + +2010-10-05 Vincent Celier + + * a-direct.ads: Minor spelling error fixes in comments. + * gnat_rm.texi: Add three entries in "Implementation Defined + Characteristics" for the interpretations of the Form parameters in + Ada.Directories. + +2010-10-05 Robert Dewar + + * exp_ch3.adb, exp_ch5.adb, exp_disp.adb, exp_dist.adb, gnatlink.adb, + makeutl.adb, par-ch6.adb, prj-dect.adb, prj-env.adb, prj-env.ads, + prj-ext.adb, prj-nmsc.adb, prj-part.adb, prj-pp.ads: Minor code + reorganization. + Minor reformatting. + +2010-10-05 Ed Schonberg + + * sem_res.adb (Check_Parameterless_Call): If the prefix of 'Address is + an explicit dereference of an access to function, the prefix is not + interpreted as a parameterless call. + +2010-10-05 Ed Schonberg + + * exp_attr.adb: For 'Read and 'Write, use full view of base type if + private. + +2010-10-05 Vincent Celier + + * make.adb (Switches_Of): Allow wild cards in index of attributes + Switches. + * prj-util.adb (Value_Of): When Allow_Wildcards is True, use the index + of the associative array as a glob regular expression. + * prj-util.ads (Value_Of (Index, In_Array)): New Boolean parameter + Allow_Wildcards, defaulted to False. + (Value_Of (Name, Attribute_Or_Array_Name)): Ditto + * projects.texi: Document that attribute Switches () may + use wild cards in the index. + +2010-10-05 Robert Dewar + + * a-direct.adb, a-direct.ads, back_end.adb, checks.adb, + einfo.adb: Minor reformatting. + * debug.adb: Remove obsolete documentation for d.Z flag. + +2010-10-05 Vincent Celier + + * vms_data.ads: Add VMS qualifier /SRC_INFO= corresponding to gnatmake + switch --create-info-file=. + * gnat_ugn.texi: Add documentation for new gnatmake switch + --source-info= + +2010-10-05 Ed Schonberg + + * sem_ch3.adb: Do not elaborate type definition if syntax error. + +2010-10-05 Javier Miranda + + * sprint.adb (Sprint_Node_Actual): Improve output of subprogram bodies + to generate the full-qualified names of its corresponding spec. + This facilitates locating the corresponing body when reading + the DG output. + +2010-10-05 Thomas Quinot + + * exp_dist.adb (Make_Helper_Function_Name): For a tagged type, use + canonical name without serial number only if the helper is becoming a + primitive of the type. + +2010-10-05 Javier Miranda + + * exp_disp.adb (Make_DT): Minor code reorganization. + +2010-10-05 Ed Schonberg + + * par-ch6.adb: improve recovery with extra paren in function spec. + +2010-10-05 Quentin Ochem + + * prj-tree.ads: Project_Path is now aliased. + +2010-10-05 Thomas Quinot + + * checks.adb: Minor reformatting. + +2010-10-05 Eric Botcazou + + * mlib-tgt-specific-mingw.adb (No_Argument_List): Delete. + (Shared_Libgcc): New aliased variable. + (Shared_Libgcc_Switch): New constant. + (Build_Dynamic_Library): Pass Shared_Libgcc_Switch to the compiler + * gcc-interface/Makefile.in (gnatlib-shared-win32): Pass -shared-libgcc + to the compiler. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-10-05 Vincent Celier + + * prj-part.adb (Parse_Simple_Project): When checking if a child project + imports its parent project, also look in projects being extended by + imported projects. + +2010-10-05 Eric Botcazou + + * gnat_ugn.texi: Adjust instructions in G.10 Building DLLs with GNAT. + +2010-10-05 Javier Miranda + + * exp_cg.adb (Slot_Number): Add support to handle aliased entities. + (Generate_CG_Output): Switch -gnatd.Z is no longer needed to + activate this output. + +2010-10-05 Arnaud Charlet + + * back_end.adb (Call_Back_End): Generate an error message when scil + generation is enabled, and no scil back-end (by default) is available. + +2010-10-05 Javier Miranda + + * debug.adb: Update documentation since -gnatd.Z is no longer required + to generate the call-graph information. + +2010-10-05 Javier Miranda + + * exp_ch5.adb (Expand_Simple_Function_Return): Rewrite expansion of a + runtime access check by an equivalent expansion that causes + no problems in the VM backend. The original expansion was + not good for the VM backends because when Tagged_Type_Expansion + is disabled the attribute Access_Disp_Table is not available. + +2010-10-05 Ed Schonberg + + * sem_type.adb (Covers): In a dispatching context, T1 covers T2 if T2 + is class-wide and T1 is its specific type. + +2010-10-05 Ed Schonberg + + * einfo.adb: Add guard to Is_String_Type to prevent cascaded errors. + +2010-10-05 Vincent Celier + + * back_end.ads: Minor spelling error correction. + +2010-10-05 Arnaud Charlet + + * switch-c.adb, gnat1drv.adb (Scan_Front_End_Switches): Disable + warnings when -gnatC is specified here so that warnings can be + re-enabled explicitly. + (Adjust_Global_Switches): No longer suppress warnings. + +2010-10-05 Vincent Celier + + * makeutl.adb: Minor reformatting. + +2010-10-05 Ed Schonberg + + * sem_ch4.adb: add guard in Analyze_One_Call to prevent crash when a + non-discrete type appears as an actual in a call. + +2010-10-05 Vincent Celier + + * make.adb (Scan_Make_Arg): Take into account new switch + --source-info=file. + * makeusg.adb: Add line for new switch --source-info=file. + * makeutl.ads (Source_Info_Option): New constant String for new builder + switch. + * prj-conf.adb: Put subprograms in alphabetical order + (Process_Project_And_Apply_Config): Read/write an eventual source info + file, if necessary. + * prj-nmsc.adb (Look_For_Sources.Get_Sources_From_Source_Info): New + procedure. + (Look_For_Sources): If a source info file was successfully read, get + the source data from the data read from the source info file. + * prj-util.adb (Source_Info_Table): New table + (Source_Info_Project_HTable): New hash table + (Create): New procedure + (Put (File), Put_Line): New procedures + (Write_Source_Info_File): New procedure + (Read_Source_Info_File): New procedure + (Initialize): New procedure + (Source_Info_Of): New procedure + (Next): New procedure + (Close): When file is an out file, fail if the buffer cannot be written + or if the file cannot be close successfully. + (Get_Line): Fail if file is an out file + * prj-util.ads (Create): New procedure + (Put (File), Put_Line): New procedures + (Write_Source_Info_File): New procedure + (Read_Source_Info_File): New procedure + (Source_Info_Data): New record type + (Source_Info_Iterator): New private type + (Initialize): New procedure + (Source_Info_Of): New procedure + (Next): New procedure + * prj.ads (Project_Tree_Data): New components Source_Info_File_Name and + Source_Info_File_Exists. + +2010-10-05 Ed Schonberg + + * exp_ch4.adb: Fix typo. + +2010-10-05 Thomas Quinot + + * lib-writ.adb: Minor reformatting. + +2010-10-05 Javier Miranda + + * sem_ch3.adb (Access_Definition): Remove useless code. + +2010-10-05 Emmanuel Briot + + * prj-env.adb, prj-env.ads (Set_Path): New subprogram. + (Deep_Copy): Removed, not used. + +2010-10-05 Javier Miranda + + * sem_ch3.adb (Add_Internal_Interface_Entities): Code reorganization: + move code that searches in the list of primitives of a tagged type for + the entity that will be overridden by user-defined routines. + * sem_disp.adb (Find_Primitive_Covering_Interface): Move here code + previously located in routine Add_Internal_Interface_Entities. + * sem_disp.ads (Find_Primitive_Covering_Interface): Update docs. + * sem_ch6.adb (New_Overloaded_Entity): Add missing check on + availability of attribute Alias. + +2010-10-05 Ed Falis + + * s-taprop-vxworks.adb, s-osinte-vxworks.adb, s-osinte-vxworks.ads, + s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.adb, s-vxwext-rtp.ads: + Move definition of intContext to System.OS_Interface. + Add necessary variants in System.VxWorks.Extensions. + +2010-10-05 Doug Rupp + + * s-asthan-vms-alpha.adb: On VMS, a task using + pragma AST_Entry exhibits a memory leak when the task terminates + because the vector allocated for the AST interface is not freed. Fixed + by making the vector a controlled type. + +2010-10-05 Emmanuel Briot + + * prj-nmsc.adb (Expand_Subdirectory_Pattern): Check that the prefix in + a "**" pattern properly exists, and report an error otherwise. + +2010-10-05 Emmanuel Briot + + * prj-env.ads: Use GNAT.OS_Lib rather than System.OS_Lib. + +2010-10-05 Emmanuel Briot + + * prj-nmsc.adb, prj-err.adb (Expand_Subdirectory_Pattern): New + subprogram. + Extract some code from Get_Directories, to share with the handling + of aggregate projects (for the Project_Files attributes) + +2010-10-05 Emmanuel Briot + + * gnatcmd.adb, prj-proc.adb, prj-part.adb, prj-ext.adb, prj-ext.ads, + switch-m.adb, clean.adb, prj-nmsc.adb, prj-nmsc.ads, prj-env.adb, + prj-env.ads, prj-tree.adb, prj-tree.ads (Project_Search_Path): New + type. + +2010-10-05 Eric Botcazou + + * exp_ch5.adb (Make_Field_Expr): Revert previous change (removed). + +2010-10-05 Emmanuel Briot + + * prj-dect.adb, prj-nmsc.adb, prj-attr.adb, snames.ads-tmpl + (Aggregate projects): added support for parsing aggregate projects. + In particular, check the presence and value of the new attributes + related to aggregate projects, ie Project_Files, Project_Path + and External. + (Check_Attribute_Allowed, Check_Package_Allowed, + Rename_Obsolescent_Attributes): new subprogram, extracting code + from existing subprogram to keep their sizes smaller. + (Check_Aggregate_Project, Check_Abstract_Project, + Check_Missing_Sources): new subprograms + (Check): remove comments that duplicated either the name of the + following subprogram call, or the comment on that subprogram. + * prj-part.adb (Check_Extending_All_Imports): New subprogram, extracted + from Parse_Single_Project. + (Check_Aggregate_Imports): new subprogram. + +2010-10-05 Vincent Celier + + * make.adb (Check): When compiling with -gnatc, recompile if the ALI + file has not been generated for the current source, for example if it + has been generated for the spec, but we are compiling the body. + +2010-10-05 Bob Duff + + * xgnatugn.adb: Remove unused procedure. + +2010-10-04 Vincent Celier + + * a-direct.adb (Copy_File): Interpret the Form parameter and call + System.OS_Lib.Copy_File to do the work accordingly. Raise Use_Error if + the Form parameter contains an incorrect value for field preserve= or + mode=. + * a-direct.ads (Create_Directory, Create_Path): Indicate that the Form + parameter is ignored. + (Copy_File): Indicate the interpretation of the Form parameter. + +2010-10-04 Vincent Celier + + * make.adb (Gnatmake): When there are no foreign languages declared and + a main in attribute Main of the main project does not exist or is a + source of another project, fail immediately before attempting + compilation. + +2010-10-04 Javier Miranda + + * exp_disp.ads (Convert_Tag_To_Interface): New function which must be + used to convert a node referencing a tag to a class-wide interface + type. + * exp_disp.adb (Convert_Tag_To_Interface): New function. + (Expand_Interface_Conversion): Replace invocation of + Unchecked_Conversion by new function Convert_Tag_To_Interface. + (Write_DT): Add support for null primitives. + * exp_ch3.adb (Expand_N_Object_Declaration): For tagged type objects, + cleanup code that handles interface conversions and avoid unchecked + conversion of referenced tag components. + * exp_ch5.adb (Expand_N_Assignment_Statement): Code cleanup. Avoid + unrequired conversions when generating a dispatching call to _assign. + * sprint.adb (Write_Itype): Fix wrong output of not null access itypes. + +2010-10-04 Ed Schonberg + + * exp_ch4.adb (Expand_N_Op_Not): Handle properly both operands when the + parent is a binary boolean operation and the operand is an unpacked + array. + (Build_Boolean_Array_Proc_Call): If the operands are both negations, + the operands of the rewritten node are the operands of the negations, + not the negations themselves. + +2010-10-04 Robert Dewar + + * sem_ch13.adb (Set_Biased): New procedure, now used throughout, adds + name of entity to biased warning msg. + (Analyze_Enumeration_Representation_Clause): Remove attempt to use + biased rep (wrong and never worked anyway). + +2010-10-04 Arnaud Charlet + + * sem_elab.adb: Minor reformatting. + +2010-10-04 Ed Schonberg + + * exp_ch4.adb (Expand_N_Null): Handle properly the case of a subtype of + an access_to_protected subprogram type, and convert null value into + corresponding aggregate. + +2010-10-04 Eric Botcazou + + * gnat_ugn.texi: Clarify first point of 7.1.5 about pragma Inline. + +2010-10-04 Eric Botcazou + + * make.adb (Scan_Make_Arg): Pass -Oxxx switches to the linker as well. + * gnatlink.adb (Gnatlink): Filter out -Oxxx switches for CLI, RTX and + AAMP. + +2010-10-04 Eric Botcazou + + * sem_ch4.adb (Analyze_Indexed_Component_Form): Remove redundant test + for N_Operator_Symbol. + (Indicate_Name_And_Type): Likewise. + * sem_ch8.adb (Analyze_Subprogram_Renaming): Likewise. + * sem_res.adb (Resolve): Likewise. + * sem_type.adb (Add_One_Interp): Likewise. + (Disambiguate): Likewise. + +2010-10-04 Vincent Celier + + * osint.adb (Read_Library_Info_From_Full): If object timestamp is less + than ALI file timestamp, return null. + +2010-10-04 Vincent Celier + + * prj-makr.adb (Finalize): Invoke Pretty_Print with Max_Length of 79. + * prj-pp.adb (Pretty_Print): New parameter Max_Line_Length, that + replaces global constant with the same name. When a line is too long, + indent properly the next continuation line. + * prj-pp.ads (Pretty_Print): New parameter Max_Line_Length with a range + from 50 to 255, defaulted to 255, to indicate the maximum length of + lines in the project file. + +2010-10-04 Eric Botcazou + + * sem_ch7.adb (Analyze_Package_Body_Helper) : New + Check_Subprogram_Ref function and Check_Subprogram_Refs instantiation + of Traverse_Func on it to look for subprogram references in a body. + Call Check_Subprogram_Refs on the body of inlined subprograms at the + outer level and keep clearing the Is_Public flag of subprograms as long + as it returns OK. Do not look at anything else than subprograms once + an inlined subprogram has been seen. + +2010-10-04 Javier Miranda + + * exp_cg.adb (Expand_N_Assignment_Statement): Restore tag check when + the target object is an interface. + * sem_disp.adb (Propagate_Tag): If the controlling argument is an + interface type then we generate an implicit conversion to force + displacement of the pointer to the object to reference the secondary + dispatch table associated with the interface. + +2010-10-04 Robert Dewar + + * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Set + Enumeration_Rep_Expr to point to the literal, not the identifier. + (Analyze_Enumeration_Representation_Clause): Improve error message for + size too small for enum rep value + (Analyze_Enumeration_Representation_Clause): Fix size test to use + proper size (RM_Size, not Esize). + +2010-10-04 Robert Dewar + + * s-taprop-vxworks.adb, sem_res.adb: Minor reformatting. + +2010-10-04 Javier Miranda + + * exp_cg.adb (Write_Call_Info): Code clean up. + +2010-10-04 Arnaud Charlet + + * s-taprop-mingw.adb (Create_Task): Initialize Thread_Id field to 0. + +2010-10-04 Robert Dewar + + * exp_cg.adb: Minor code reorganization + Minor reformatting. + * exp_ch5.adb, prj-nmsc.adb: Minor reformatting. + +2010-10-04 Bob Duff + + * sem_res.adb (Resolve_Type_Conversion): If a type conversion is needed + to make a qualified expression into a name (syntax-wise), then do not + consider it redundant. + +2010-10-04 Thomas Quinot + + * sem_warn.ads: Fix typo. + +2010-10-04 Javier Miranda + + * exp_cg.adb (Is_Predefined_Dispatching_Operation): Handle suffix in + TSS names. + (Write_Call_Info): Add missing support for renamed primitives. + +2010-10-04 Thomas Quinot + + * exp_ch5.adb (Make_Field_Expr): New subprogram, to factor duplicated + code between Make_Component_List_Assign and Make_Field_Assign. + +2010-10-04 Vincent Celier + + * prj-nmsc.adb (Get_Directories): For non extending projects that + declare that they have no sources, do not create a non existing object + or exec directory if builder switch -p is used. + +2010-10-04 Sergey Rybin + + * gnat_ugn.texi (gnatcheck): Change the description of the report file + format. + +2010-10-04 Ed Falis + + * s-taprop-vxworks.adb (Is_Task_Context): Import VxWorks intContext to + determine whether Set_True is called from a task or an ISR. + (Set_True): test for being in a task context before trying to + dereference Defer_Abort or Undefer_Abort. + +2010-10-04 Robert Dewar + + * sem_res.adb, sinput-l.adb: Minor reformatting. + +2010-10-04 Hristian Kirtchev + + * exp_ch5.adb (Expand_N_Assignment_Statement): Do not generate a tag + check when the target object is an interface since the expression of + the right hand side must only cover the interface. + +2010-10-04 Vincent Celier + + * frontend.adb: Set Lib.Parsing_Main_Extended_Source to True before + loading the main source, so that if it is preprocessed and -gnateG is + used, the preprocessed file is written. + * lib.ads (Analysing_Subunit_Of_Main): New global variable to indicate + if a subunit is from the main unit when it is loaded. + * sem_ch10.adb (Analyze_Proper_Body): Set Lib.Analysing_Subunit_Of_Main + to True before loading a subunit. + * sem_ch12.adb (Copy_Generic_Node): Set Lib.Analysing_Subunit_Of_Main + to True when the main is a generic unit before loading one of its + subunits. + * sinput-l.adb (Load_File): If -gnateG is used, write the preprocessed + file only for the main unit (spec, body and subunits). + +2010-10-04 Vincent Celier + + * sinput-l.adb (Load_File): Do not fail when switch -gnateG is + specified and the processed file cannot be written. Just issue a + warning and continue. + +2010-10-04 Thomas Quinot + + * sem_res.adb: Minor reformatting. + +2010-10-04 Ed Schonberg + + * sem_ch8.adb (Analyze_Subprogram_Renaming): If the renamed operation + is an overridden inherited operation, the desired operation is the + overriding one, which is the alias of the visible one. + +2010-10-04 Ed Schonberg + + * sem_ch6.adb (Find_Corresponding_Spec): Check that the wrapper body is + present before deleting from the tree, when an inherited function with + a controlling result that returns a null extension is overridden by a + later declaration or body. + +2010-10-04 Gary Dismukes + + * checks.adb: Update comment. + +2010-09-30 Joseph Myers + + * gcc-interface/misc.c (optimize, optimize_size): Undefine as macros + and define as variables. + (gnat_post_options): Set optimize and optimize_size variables. + +2010-09-29 Joel Sherrill + + * g-socket.adb: Move pragma to disable warnings in case multiple errnos + are not defined by target. + +2010-09-29 Eric Botcazou + + * gcc-interface/utils.c (handle_leaf_attribute): Fix long line. + +2010-09-28 Richard Henderson + + * gcc-interface/misc.c (gnat_eh_personality): Use + targetm.except_unwind_info. + +2010-09-28 Jan Hubicka + + * gcc-interface/utils.c (handle_leaf_attribute): New function. + (gnat_internal_attribute_tables): Add leaf. + +2010-09-22 Joseph Myers + + * gcc-interface/lang.opt (-all-warnings, -include-barrier, + -include-directory, -include-directory=, -no-standard-includes, + -no-standard-libraries): New. + +2010-09-20 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Replace calls to + build_array_type with calls to build_nonshared_array_type. + (substitute_in_type): Likewise. + * gcc-interface/misc.c (LANG_HOOKS_HASH_TYPES): Delete. + (LANG_HOOKS_TYPE_HASH_EQ): Define. + (gnat_post_options): Add 'static' keyword. + (gnat_type_hash_eq): New static function. + * gcc-interface/utils.c (fntype_same_flags_p): New function. + (create_subprog_type): Call it. + (create_index_type): Call build_nonshared_range_type and tidy up. + (create_range_type): Likewise. + * gcc-interface/gigi.h (fntype_same_flags_p): Declare. + +2010-09-19 Eric Botcazou + + * gcc-interface/trans.c (gnat_pushdecl): Do not do anything special + for PARM_DECLs. + (end_subprog_body): If the body is a BIND_EXPR, make its associated + block the top-level one. + (build_function_stub): Build a statement group for the whole function. + * gcc-interface/utils.c (Subprogram_Body_to_gnu): If copy-in/copy-out + is used, create the enclosing block early and process first the OUT + parameters. + +2010-09-19 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do + not generate debug info for individual enumerators. + +2010-09-19 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Use record + type instead of enumeral type as the dummy type built for the template + type of fat pointers. + +2010-09-19 Eric Botcazou + + * gcc-interface/gigi.h (get_elaboration_procedure): Declare. + (gnat_zaplevel): Likewise. + * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force global + binding level for an external constant. + : Force the local context and create a fake scope before + translating the defining expression of an external constant. + : Treat external constants at the global level explicitly for + renaming declarations. + (elaborate_expression_1): Force the variable to be static if the + expression is global. + * gcc-interface/trans.c (get_elaboration_procedure): New function. + (call_to_gnu): Use it. + (gnat_to_gnu): Likewise. + : Do not test Is_Public to force the creation of + an initialization variable. + (add_decl_expr): Discard the statement if the declaration is external. + * gcc-interface/utils.c (gnat_pushdecl): Do not put the declaration in + the current block if it is external. + (create_var_decl_1): Do not test Is_Public to set TREE_STATIC. + (gnat_zaplevel): New global function. + +2010-09-19 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Explicitly test _LEVEL + variables against zero in all cases. + (rest_of_type_decl_compilation): Likewise. + * gcc-interface/trans.c (gigi): Pass properly typed constants to + create_var_decl. + (call_to_gnu): Fix formatting. + (Handled_Sequence_Of_Statements_to_gnu): Likewise. + (Exception_Handler_to_gnu_zcx): Likewise. + (gnat_to_gnu) : Short-circuit handling of + constant + expressions in presence of a freeze node. + +2010-09-19 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Look into + expressions for external constants that are aggregates. + * gcc-interface/utils2.c (build_simple_component_ref): If the field + is an inherited component in an extension, look through the extension. + +2010-09-10 Vincent Celier + + * projects.texi: Add documentation for package extensions + Add some documentation for attributes Leading_Library_Options and + Linker'Leading_Switches. + +2010-09-10 Ed Schonberg + + * exp_util.adb (Expand_Subtype_From_Expression): When expansion is + disabled, compute subtype for all string types. + +2010-09-10 Robert Dewar + + * gnat_ugn.texi: Add documentation for -gnatw.s/S + * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case + Component_Size): Implement warning on overriden size clause. + (Analyze_Record_Representation_Clause): Implement warning on overriden + size clause. + * sem_warn.ads, sem_warn.adb (Warn_On_Overridden_Size): New flag + (-gnatw.s/S). + * ug_words: Add entries for -gnatw.s/S. + * vms_data.ads, usage.adb: Add line for -gnatw.s/-gnatw.S. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-09-10 Vincent Celier + + * prj-dect.adb (Parse_Package_Declaration): Allow a package to extend + a package with the same name from an imported or extended project. + * prj-proc.adb (Process_Declarative_Items): Process package extensions + +2010-09-10 Bob Duff + + * exp_ch6.adb (Expand_Call): Do not perform a null_exclusion check on + 'out' parameters. + +2010-09-10 Robert Dewar + + * sem.adb: Minor reformatting. + +2010-09-10 Bob Duff + + * s-os_lib.ads, g-expect.ads: Add comments. + +2010-09-10 Robert Dewar + + * exp_ch5.adb: Minor reformatting. + +2010-09-10 Thomas Quinot + + * scos.ads: Add comments. + +2010-09-10 Vincent Celier + + * gnatcmd.adb (Get_Closure): Remove useless invocation of Close. + +2010-09-10 Hristian Kirtchev + + * exp_ch7.adb, exp_ch6.adb (Expand_Call): Establish a transient scope + for a controlled build-in-place function call which appears in an + anonymous context. The transient scope ensures that the intermediate + function result is cleaned up after the master is left. + (Make_Build_In_Place_Call_In_Anonymous_Context): Remove the creation + of the transient scope. This is now done in Exand_Call which covers + additional cases other than secondary stack release. + +2010-09-10 Arnaud Charlet + + * sem.adb (Do_Unit_And_Dependents): Add guard. + +2010-09-10 Robert Dewar + + * exp_ch5.adb: Update comments. + * exp_dist.adb: Minor reformatting. + +2010-09-10 Robert Dewar + + * sem_ch13.adb (Check_Record_Representation_Clause): Implement record + gap warnings. + * sem_warn.ads, sem_warn.adb (Warn_On_Record_Holes): New warning flag. + * usage.adb: Add lines for -gnatw.h/H + * gnat_ugn.texi: Add documentation for J519-010 + Warn on record holes/gaps + * ug_words: Add entries for -gnatw.h/-gnatw.H + * vms_data.ads: Add entries for [NO]AVOIDGAPS + +2010-09-10 Gary Dismukes + + * sem_ch6.adb: Update comment. + +2010-09-10 Ed Schonberg + + * sem_ch3.adb (Build_Derived_Private_Type): Mark generated declaration + of full view analyzed after analyzing the corresponding record + declaration, to prevent spurious name conflicts with original + declaration. + +2010-09-10 Jerome Lambourg + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): In the VM case, + just issue a warning, but continue with the normal processing. + +2010-09-10 Robert Dewar + + * exp_attr.adb, prj-nmsc.adb, sem_ch4.adb, sem_res.adb: Minor + reformatting. + +2010-09-10 Thomas Quinot + + * exp_dist.adb (Build_From_Any_Call, Build_To_Any_Call, + Build_TypeCode_Call): For a subtype inserted for the expansion of a + generic actual type, go to the underlying type of the original actual + type. + +2010-09-10 Ed Schonberg + + * exp_ch5.adb (Expand_Assign_Array_Loop): In CodePeer mode, place a + guard around the increment statement, to prevent an off-by-one-value + on the last iteration. + +2010-09-10 Vincent Celier + + * sem_aggr.adb, exp_prag.adb, sem_ch3.adb, exp_attr.adb, + sem_res.adb, sem_attr.adb, sem_elab.adb, sem_ch4.adb, exp_disp.adb, + exp_aggr.adb, exp_dist.adb: Change all mentions of "at run-time" to + "at run time" in comments and error/warning messages. + +2010-09-10 Ed Schonberg + + * exp_cg.adb: Handle properly bodies without specs. + +2010-09-10 Emmanuel Briot + + * prj-nmsc.adb (Find_Source_Dirs): When a source directory is not + present, and the user requested to either ignore this or display a + warning (as opposed to an error), we still need to register the + directory. + +2010-09-10 Robert Dewar + + * errout.adb: Remove tests of Parsing_Main_Subunit, since this test is + now done in In_Extended_Main_Source_Unit. + * errout.ads (Compiler_State[_Type]): Moved from Errout to Lib + (Parsing_Main_Subunit): Moved from Errout to Lib and renamed + as Parsing_Main_Extended_Source. + * frontend.adb: Set Parsing_Main_Extended_Source True for parsing main + unit. + * lib-load.adb (Load_Unit): Add PMES parameter + Set PMES appropriately in all calls to Load_Unit + * lib-load.ads (Load_Unit): Add PMES parameter + * lib.adb (In_Extended_Main_Source_Unit): When called with + Compiler_State set to Parsing, test new flag + Compiling_Main_Extended_Source. + * lib.ads (Compiler_State[_Type]): Moved from Errout to Lib + (Parsing_Main_Subunit): Moved from Errout to Lib and renamed + as Parsing_Main_Extended_Source + * par-load.adb (Load): Set PMES properly in call to Load_Unit + +2010-09-10 Ed Schonberg + + * exp_cg.adb: Use proper entity to handle overloads. + * sem_res.adb (Check_Parameterless_Call): An operator node without + actuals cannot be a call, and must be treated as a string. + +2010-09-10 Robert Dewar + + * frontend.adb: Minor reformatting. + +2010-09-10 Robert Dewar + + * par-ch4.adb (P_Conditional_Expression): Use P_Condition for condition + * par-ch5.adb (P_Condition): Move from body to spec + * par.adb (Ch5.P_Condition): Move from body to spec + +2010-09-10 Ed Schonberg + + * exp_cg.adb (Write_Call_Info): If a type that has been registered in + the call table is private, use its full view to generate information + on its operations. + +2010-09-10 Jose Ruiz + + * exp_cg.adb (Is_Predefined_Dispatching_Operation): When trying the + pattern matching to detect predefined primitive operations take into + account that there can be an extra suffix related to body-nested + package entities. + +2010-09-10 Ed Schonberg + + * s-pooglo.ads: Add overriding indicators. + +2010-09-10 Vincent Celier + + * vms_data.ads: Add new GNAT BIND qualifiers /32_MALLOC (for -H32) and + /64_MALLOC (for -H64). + +2010-09-10 Robert Dewar + + * errout.adb (Error_Msg_Internal): Test Parsing_Main_Subunit flag + (Error_Msg_NW): Test Parsing_Main_Subunit flag + * errout.ads (Parsing_Main_Subunit): New flag + * lib-load.adb (Load_Unit): Set Parsing_Main_Subunit flag + * par-ch6.adb: Minor style fix (remove redandant parentheses) + * par-ch9.adb: Minor style fix (remove redundant parens) + * par-load.adb: (Load): Deal with setting Parsing_Main_Subunit + +2010-09-10 Vincent Celier + + * make.adb (Create_Binder_Mapping_File): Remove procedure. Replaced by + function of the same name in Makeutl. + (Gnatmake): Call function Create_Binder_Mapping_File in Makeutl, instead + of removed procedure when creating a binder mapping file. + * makeutl.adb (Create_Binder_Mapping_File): New function. Was a + procedure in Make. + * makeutl.ads (Create_Binder_Mapping_File): New function + +2010-09-10 Jose Ruiz + + * exp_cg.adb (Is_Predefined_Dispatching_Operation): Add the "__" scope + separator when trying the pattern matching to detect predefined + primitive operations. + +2010-09-10 Robert Dewar + + * bindgen.adb, atree.adb: Minor reformatting. + +2010-09-10 Ben Brosgol + + * ug_words, gnat_ugn.texi: Revised "Transitioning to 64-Bit GNAT for + OpenVMS" section. + +2010-09-10 Doug Rupp + + * bindgen.adb: Minor comment fix for -H switch. + +2010-09-10 Ed Schonberg + + * exp_cg.adb (Register_CG_Node): Determine enclosing subprogram or + library unit now, by traversing tree before context is expanded. + (Write_Call_Info): Use enclosing unit name directly. + * exp_ch9.adb (Expand_N_Accept_Statement): Attach generated block to + tree earlier, to ensure that subsequent declarations are analyzed in a + connected structure. + * exp_intr.adb (Expand_Unc_Deallocation): Ditto for generated statement + list. + +2010-09-10 Robert Dewar + + * symbols-processing-vms-alpha.adb: Minor reformatting. + +2010-09-10 Jerome Lambourg + + * bindgen.adb (Gen_Adainit_Ada): In .NET, don't call + __gnat_install_handler in case the binder is called with -n. + +2010-09-10 Ed Schonberg + + * exp_ch6.adb (Make_Build_In_Place_In_Object_Declaration): Use proper + sloc for renaming declaration and set Comes_From_Source properly to + ensure that references are properly generated for an object declaration + that is built in place. + +2010-09-10 Tristan Gingold + + * symbols-processing-vms-alpha.adb: Allow gnatsym to work as a cross + tool. + * gcc-interface/Make-lang.in: Install gnatsym when cross compiling. + * gcc-interface/Makefile.in: gnat.hlp is now generated by + Make-generated.in + +2010-09-10 Bob Duff + + * exp_pakd.adb (Expand_Bit_Packed_Element_Set): For things like ""X(J) + := ...;", remove side effects from the right-hand side, because they + might affect the value of the left-hand side, but the left-hand side is + first READ (so we can do shifting and masking) and then written back, + which would cause the side effects to be incorrectly overwritten. + +2010-09-10 Robert Dewar + + * sem_ch4.adb: Minor reformatting. + * exp_ch6.adb: Add comment on testing limited on full type + * gnat_rm.texi: Add documentation on Pure_Function. + +2010-09-10 Vincent Celier + + * prj-nmsc.adb (Add_Source): Allow an Ada source to have the same name + as a source of another project and of another language. + +2010-09-10 Robert Dewar + + * exp_ch3.adb (Expand_N_Object_Declaration): Defend against previous + errors. + * freeze.adb (Check_Unsigned_Type): Ditto. + * sem_aggr.adb (Resolve_Aggr_Expr): Ditto. + * sem_ch3.adb (Convert_Scalar_Bounds): Ditto. + (Set_Scalar_Range_For_Subtype): Ditto. + * sem_eval.adb (Subtypes_Statically_Match): Ditto. + +2010-09-10 Robert Dewar + + * repinfo.adb (List_Type_Info): List Small and Range for fixed-point + types. + * sprint.adb (Write_Ureal_With_Col_Check_Sloc): Use square brackets + rather than parens for fixed constants. + * sprint.ads: Use square brackets rather than parens for fixed constants + * urealp.adb (UR_Write): Use square brackets rather than parens + (UR_Write): Add Brackets argument + (UR_Write): Add many more special cases to output literals + * urealp.ads (UR_Write): Use square brackets rather than parens + (UR_Write): Add Brackets argument + +2010-09-10 Robert Dewar + + * sem_ch4.adb: Minor reformatting. + +2010-09-10 Richard Guenther + + * gcc-interface/utils.c (create_index_type): Use build_range_type. + +2010-09-10 Arnaud Charlet + + * vms_cmds.ads: New. + +2010-09-10 Eric Botcazou + + * exp_dbug.ads: Mention enhanced encoding for array types. + +2010-09-10 Jerome Lambourg + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Size clause are + unsupported in VM targets. Display a warning in this case. + +2010-09-10 Ed Schonberg + + * sprint.adb (Sprint_Node_Actual, case N_Derived_Type_Definition): Do + not reset Sloc when printing keyword "new". + +2010-09-10 Vincent Celier + + * gnatcmd.adb (GNATCmd): Put the command line in environment variable + GNAT_DRIVER_COMMAND_LINE. + +2010-09-10 Ed Schonberg + + * sem.adb (Do_Unit_And_Dependents): if Withed_Body is set on a context + clause, process the body at once. + +2010-09-10 Ed Schonberg + + * sem_res.adb (Resolve_Type_Conversion): Do not warn on a redundant + conversion is the expression is a qualified expression used to + disambiguate a function call. + +2010-09-10 Vincent Celier + + * prj-nmsc.adb (Add_Source): Allow an Ada source to have the same name + as a source of another project and of another language. + +2010-09-10 Robert Dewar + + * prj-util.adb: Minor reformatting. + +2010-09-10 Eric Botcazou + + * exp_disp.adb: Minor reformatting. + +2010-09-10 Arnaud Charlet + + * sem_prag.adb (Analyze_Pragma): Ignore Inline_Always pragma in + CodePeer mode. + +2010-09-10 Thomas Quinot + + * sem_res.adb: Minor reformatting. + * exp_ch9.adb, rtsfind.ads, exp_ch4.adb, exp_ch3.adb: Do not hardcode + magic constants for task master levels (instead, reference + named numbers from System.Tasking). + +2010-09-10 Eric Botcazou + + * gnatvsn.ads (Ver_Prefix): New constant string. + * bindgen.adb (Gen_Output_File_Ada): Use it in lieu of hardcoded value. + (Gen_Output_File_C): Likewise. + * g-comver.adb (Ver_Prefix): Add cross-reference to Gnatvsn.Ver_Prefix + in comment. + +2010-09-10 Ed Schonberg + + * sem.adb (Walk_Library_Items): Do not traverse children of the main + unit, to prevent spurious circularities in the walk order. + (Depends_On_Main): Use elsewhere to prevent circularities when the body + of an ancestor of the main unit depends on a child of the main unit. + +2010-09-10 Robert Dewar + + * gnatlink.adb, prj-ext.adb, prj-util.adb, s-tporft.adb, + sem_ch3.adb: Minor reformatting. + +2010-09-10 Ed Schonberg + + * sem_ch3.adb (Derive_Subprograms): An interface primitive operation + that is a renaming must be derived like any other primitive operation, + the renamed operation is not relevant to the derivation. + +2010-09-10 Robert Dewar + + * sem_aux.ads: Add comment for Is_Inherently_Limited_Type. + * checks.adb: Minor reformatting. + +2010-09-10 Robert Dewar + + * gnat_ugn.texi: Add section on intent of style checking options. + +2010-09-10 Arnaud Charlet + + * xref_lib.adb (Get_Full_Type): Fix handling of 'a' char. + +2010-09-10 Ed Schonberg + + * sem_ch3.adb: Improve error message on derivation from class-wide type + +2010-09-10 Steve Baird + + * gnat1drv.adb (Adjust_Global_Switches): Enable Expression_With_Actions + generation when Generate_SCIL is True. + +2010-09-10 Geert Bosch + + * gnatlink.adb (Check_ Existing_Executable): New procedure for checking + validity of executable name and removing any existing executable + (Gnatlink): Call Check_Existing_Executable. + +2010-09-10 Arnaud Charlet + + * s-tporft.adb, s-taskin.ads (Register_Foreign_Thread): Move + initialization of Task_Alternate_Stack here, cleaner since in case of + ranvescar, Restricted_Ada_Task_Control_Block is not initialized + implicitly. + +2010-09-10 Thomas Quinot + + * s-fileio.adb, a-dirval.adb: Minor reformatting. + +2010-09-10 Emmanuel Briot + + * prj-util.adb (Executable_Of): Fix CE when the project does not + contain a Builder package. + +2010-09-10 Vincent Celier + + * prj-ext.adb (Initialize_Project_Path): Add /lib/gpr/ + to the project path, if Prefix and Target_Name are defined. + * prj-tree.ads (Project_Node_Tree_Data): New component Target_Name + +2010-09-10 Ed Schonberg + + * checks.adb (Ensure_Valid): If the expression is a boolean expression + or short-circuit operation, do no emit a validity check: only the + elementary operands of the expression need checking. + +2010-09-10 Ben Brosgol + + * gnat_rm.texi: Document Short_Descriptors. + +2010-09-10 Arnaud Charlet + + * s-taprop-linux.adb, s-taskin.ads (Task_Alternate_Stack): Default + initialize to Null_Address. + (Enter_Task): Do not set up an alternate stack for foreign threads. + +2010-09-10 Robert Dewar + + * opt.adb (Short_Descriptors): New flag + (Short_Descriptors_Config): New flag + * opt.ads (Short_Descriptors): New flag + (Short_Descriptors_Config): New flag + * par-prag.adb: Add dummy entry for Short_Descriptors pragma + * sem_prag.adb (Set_Mechanism_Value): Deal with Short_Descriptors. + (Analyze_Pragma): Implement Short_Descriptors pragma + * snames.ads-tmpl: Add entry for Short_Descriptors pragma + +2010-09-10 Emmanuel Briot + + * prj-util.adb, prj-util.ads (Executable_Of): Take into account the + project's Executable_Suffix. + +2010-09-10 Robert Dewar + + * g-pehage.ads: Minor reformatting + + * gnat_ugn.texi: Clarifying comment on -gnatyc + * exp_ch6.adb (Expand_N_Subprogram_Body): Reset Is_Pure if limited + arguments. + +2010-09-10 Tristan Gingold + + * Make-generated.in (gnat.hlp): New rule. + +2010-09-10 Emmanuel Briot + + * prj-util.adb, prj-util.ads (Executable_Of): New parameter + Include_Suffix. + +2010-09-10 Robert Dewar + + * einfo.adb: Minor code cleanup: Add assertion to + Set_Corresponding_Protected_Entry. + +2010-09-10 Bob Duff + + * g-pehage.ads, g-pehage.adb (Produce): Add a new flag to allow sending + the output to standard output. + +2010-09-09 Vincent Celier + + * gnat_ugn.texi: Add documentation for new gnatmake switch + --create-map-file. + * make.adb (Map_File): New global variable to store the value of switch + --create-map-file. + (Gnatmake): Add switch -M to gnatlink if switch --create-map-file has + been specified. + (Scan_Make_Arg): Recognize switch --create-map-file + * makeutl.ads (Create_Map_File_Switch): New constant string for new + gnatmake and gprbuild switch --create-map-file. + +2010-09-09 Robert Dewar + + * sinput-p.ads: Minor comment update. + +2010-09-09 Arnaud Charlet + + * s-tpobop.adb, s-taenca.adb (Wait_For_Completion_With_Timeout): Reset + Entry_Call.State if needed so that the call is marked as cancelled by + Check_Pending_Actions_For_Entry_Call. + (Timed_Protected_Entry_Call): Adjust calls to Defer/Under_Abort, since + this procedure may be called from a controlled operation + (Initialize/Finalize). + +2010-09-09 Vadim Godunko + + * impunit.adb: Correct spelling of package's name in the comment. + +2010-09-09 Robert Dewar + + * gnatcmd.adb, gnatlink.adb, sem_ch12.adb, sem_eval.adb, sinput-p.adb: + Minor reformatting + +2010-09-09 Robert Dewar + + * impunit.adb: Add entry for a-izteio. + * checks.adb: Add comment. + * debug.adb, exp_disp.adb: Minor reformatting. + * exp_dbug.ads: Minor reformatting throughout (pack block comments). + +2010-09-09 Ed Schonberg + + * sem_eval.adb (Is_Same_Value): Two occurrences of the same + discriminant cannot be assumed to be the same value because they may + refer to bounds of a component of two different instances of a + discriminated type. + +2010-09-09 Gary Dismukes + + * checks.adb (Apply_Arithmetic_Overflow_Check): When converting the + operands of an operator to the type of an enclosing conversion, rewrite + the operator so the conversion can't be flagged as redundant. + Remove useless assignments to Typ and Rtyp. + +2010-09-09 Eric Botcazou + + * gnat_ugn.texi: Fix another long line. + +2010-09-09 Bob Duff + + * sem_warn.adb (Output_Reference_Error): Don't warn for renames read + but never assigned. + +2010-09-09 Matthew Heaney + + * a-convec.adb, a-coinve.adb (Clear, Delete, Delete_Last, Finalize, + Merge, Insert, Insert_Space, Move, Reserve_Capacity, Generic_Sorting, + Replace_Element, Reverse_Elements, Swap): Change exception message to + correctly indicate kind of tampering (cursor or element). + * a-cdlili.adb, a-cidlli.adb (Clear, Delete, Delete_First, Delete_Last, + Merge, Generic_Sorting, Insert, Move, Reverse_Elements, Splice, + Swap_Links, Replace_Element, Swap): Ditto. + * a-coorse.adb, a-ciorse.adb (Include, Replace, Replace_Element): Ditto + * a-coorma.adb, a-ciorma.adb (Include, Replace, Replace_Element): Ditto + * a-coormu.adb, a-ciormu.adb (Replace_Element): Ditto + * a-chtgke.adb (Delete_Key_Sans_Free, Generic_Conditional_Insert, + Generic_Replace_Element): Ditto + * a-chtgop.adb (Clear, Move, Reserve_Capacity): Ditto + * a-cohama.adb, a-cihama.adb (Delete, Include, Replace, + Replace_Element): Ditto. + * a-cohase.adb, a-cihase.adb (Delete, Difference, Intersection, + Symmetric_Difference, Union, Include, Replace): Ditto + +2010-09-09 Ed Schonberg + + * sprint.adb (Write_Id): If the parent node is an expanded name, check + that its entity_or_associated_node is an entity before writing it out. + * exp_disp.adb (Make_Tags); if a type is declared in C++ and has no + constructors, there is no need for a dispatch table pointer because the + table is fully inherited from the C++ code. + +2010-09-09 Thomas Quinot + + * projects.texi: Fix wrong identifiers on package end lines in project + files examples. + * exp_ch6.adb: Minor reformatting. + +2010-09-09 Tristan Gingold + + * gnatcmd.adb, vms_conv.ads: Extract Command_Type. + +2010-09-09 Eric Botcazou + + * gnat_ugn.texi: Fix description of -O3 optimization level. + +2010-09-09 Yannick Moy + + * a-cihama.adb, a-cohama.adb: Fix comments. + +2010-09-09 Arnaud Charlet + + * i-cexten.ads: Add comments. + (Signed_128): New type, used by some C bindings. + * debug.adb: Update comment. + +2010-09-09 Sergey Rybin + + * gnat_ugn.texi: For ASIS tools (gnatpp, gnatcheck, gnatelim, + gnatmetric and gnatstub) add a note that '-gnat05' should be used if + the tool should process Ada 2005 sources. + +2010-09-09 Ed Schonberg + + * sem_ch12.adb (Remove_Parent): If the scope containing the child + instance is a block, examine the enclosing scope to determine if it is + a parent instance. + +2010-09-09 Doug Rupp + + * sem_prag.adb (pragma Ident): Pass --identification= vice + IDENTIFICATION= + * gnatlink.adb (Linker_Options): Look for --identification= vice + IDENTIFICATION= + +2010-09-09 Gary Dismukes + + * exp_attr.adb (Expand_N_Attribute_Reference, case Attribute_Old): When + inserting and analyzing the object declaration for the temporary object + created to hold a 'Old value, push the scope for the subprogram where + the object is inserted, so that its Scope (and that of related objects) + will be set properly. + +2010-09-09 Vincent Celier + + * prj.adb (Get_Object_Directory): Return object directory display name + * adaint.c (__gnat_get_file_names_case_sensitive): When environment + variable GNAT_FILE_NAME_CASE_SENSITIVE has a value of "0" or "1", + return this value, otherwise return the default for the platform. + +2010-09-09 Arnaud Charlet + + * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update + dependencies. Remove handling of gnatlbr. + Do not remove s-stratt-xdr for the run-time when installing. + +2010-09-09 Robert Dewar + + * sem_attr.adb: Minor reformatting. + +2010-09-09 Thomas Quinot + + * socket.c (__gnat_socket_ioctl): On Darwin, the req parameter is an + unsigned long, not an int. + +2010-09-09 Vincent Celier + + * make.adb, mlib-prj.adb, prj.adb, prj-nmsc.adb, mlib-tgt.adb, + prj-conf.adb, prj-env.adb: Use Display_Name instead of Name whenever + we are not checking for equality of path or file names. + +2010-09-09 Ed Schonberg + + * exp_util.adb (Remove_Side_Effects): If the expression is a packed + array reference, reset the Analyzed flag so that it is properly + expanded when the resulting object declaration is analyzed. + +2010-09-09 Vincent Celier + + * sinput-p.adb (Source_File_Is_Subunit): Return False if X is + No_Source_File. + +2010-09-09 Ramon Fernandez + + * sysdep.c: The wrSbc8548 BSP in MILS doesn't know anything about the + VX_SPE_TASK option, so disable it. + +2010-09-09 Ed Schonberg + + * sem.adb (Walk_Library_Items): Traverse context of subunits of the + main unit. + (Is_Subunit_Of_Main): Handle null nodes properly. + +2010-09-09 Robert Dewar + + * par-ch2.adb: Update comments. + +2010-09-09 Ben Brosgol + + * gnat_rm.texi: Minor wordsmithing of section on pragma Ordered. + +2010-09-09 Arnaud Charlet + + * par-ch2.adb (Scan_Pragma_Argument_Association): In CodePeer mode, + do not generate an error for compatibility with legacy code. + ignored when generating SCIL. + * sem_attr.adb (Resolve_Attribute): Ignore AI-229 in CodePeer mode. + +2010-09-09 Thomas Quinot + + * s-strxdr.adb, gnat_rm.texi, s-stratt-xdr.adb, s-stratt.ads: Rename + s-strxdr.adb to s-stratt-xdr.adb + +2010-09-09 Robert Dewar + + * ali-util.adb (Obsolescent_Check): Removed. + * gprep.adb (Obsolescent_Check): Removed. + Remove Obsolescent_Check parameter in Scng instantiation + * prj-err.adb (Obsolescent_Check): Removed. + * prj-err.ads (Obsolescent_Check): Removed. + Remove Obsolescent_Check parameter in Scng instantiation + * scans.ads (Based_Literal_Uses_Colon): New flag + * scn.adb (Obsolscent_Check_Flag): Removed + (Obsolscent_Check): Removed + (Set_Obsolescent_Check): Removed + (Post_Scan): Add handling for obsolescent features + * scn.ads (Obsolscent_Check): Removed + (Set_Obsolescent_Check): Removed + (Post_Scan): Can no longer be inlined + Remove Obsolescent_Check from instantiation of Scng + * scng.adb (Nlit): Set Based_Literal_Uses_Colon + (Nlit): Remove handling of obsolescent check + (Scan, case '%'): Remove handling of obsolescent check + (Scan, case '|'): Call Post_Scan + (Scan, case '!'): Remove handling of obsolescent check, call Post_Scan + * scng.ads Remove Obsolescent_Check argument from Scng generic + (Post_Scan): Now called for Tok_Vertical_Bar + * sinput-l.adb: Remove calls to Set_Obsolescent_Check + +2010-09-09 Doug Rupp + + * gnatlbr.adb: Removed. + * gnat_rm.texi, ug_words, gnat_ugn.texi: Remove mention of gnatlbr. + +2010-09-09 Robert Dewar + + * sem_res.adb (Resolve_Type_Conversion): Catch more cases of redundant + conversions. + +2010-09-09 Vincent Celier + + * gnatlbr.adb: Remove redundant conversions. + +2010-09-09 Vincent Celier + + * prj-proc.adb: Minor comment spelling error fix. + * osint.ads (Env_Vars_Case_Sensitive): Use function + Get_Env_Vars_Case_Sensitive, not Get_File_Names_Case_Sensitive to + compute value. + +2010-09-09 Ed Schonberg + + * sem_res.adb (Resolve_Equality_Op): Implement Ada2012 rule for + resolution of conditional expressions whose dependent expressions are + anonymous access types. + +2010-09-09 Robert Dewar + + * a-ststio.adb: Minor code reorganization. + * s-direio.adb, prj.adb, prj-nmsc.adb, sem_type.adb: Remove redundant + conversion. + * types.ads: Minor reformatting. + * binde.adb, vms_conv.adb, gnatls.adb, s-strxdr.adb, uintp.adb: Remove + redundant conversions. + * output.adb: Minor reformatting. + * sem_ch8.adb (Find_Type): Test for redundant base applies to user + types. + * opt.ads: Add pragma Ordered for Verbosity_Level. + * prj.ads: Add pragma Ordered for type Verbosity. + +2010-09-09 Vincent Celier + + * osint.adb (Canonical_Case_File_Name): Use procedure To_Lower in + System.Case_Util + (Canonical_Case_Env_Var_Name): Ditto + +2010-09-09 Bob Duff + + * g-pehage.adb (Allocate): Initialize the allocated elements of IT. + +2010-09-09 Robert Dewar + + * cstand.adb: Mark Boolean and Character types as Ordered + * einfo.adb (Has_Pragma_Ordered): New flag + * einfo.ads (Has_Pragma_Ordered): New flag + * g-calend.ads: Mark Day_Name as Ordered + * opt.ads: Mark Ada_Version_Type as Ordered + (Warn_On_Unordered_Enumeration_Type): New flag + * par-prag.adb: Add procdessing for pragma Ordered + * s-ficobl.ads (Read_File_Mode): New subtype + * s-fileio.adb: Use Read_File_Mode instead of explicit ranges + * s-taskin.ads: Mark Entry_Call_State as ordered + * sem_ch3.adb (Build_Derived_Enumeration_Type): Inherit + Has_Pragma_Ordered. + * sem_ch6.ads: Mark Conformance_Type as Ordered + * sem_prag.adb: Implement pragma Ordered + * sem_res.adb (Bad_Unordered_Enumeration_Reference): New function + (Resolve_Comparison_Op): Diagnose unordered comparison + (Resolve_Range): Diagnose unordered range + * sem_warn.adb (Warn_On_Unordered_Enumeration_Type): New flag (from + -gnatw.u/U) + * snames.ads-tmpl: Add entry for pragma Ordered + * style.ads (Check_Enumeration_Subrange): Removed + * styleg.adb (Check_Enumeration_Subrange): Removed + * styleg.ads (Check_Enumeration_Subrange): Removed + * stylesw.adb: Remove handling of -gnatyE switch + * stylesw.ads: (Style_Check_Enumeration_Subranges): Removed + * vms_data.ads: Remove -gnatyE entries + Add -gnatw.u entries + * ug_words: Entries for -gnatw.u and -gnatw.U + * gnat_ugn.texi: Document -gnatw.u/-gnatw.U switches + * gnat_rm.texi: Document pragma Ordered. + * s-tasren.adb: Avoid unnecessary comparison on unordered enumeration. + * s-tpobop.adb: Remove comparison on unordered enumeration type. + +2010-09-09 Vincent Celier + + * adaint.c: New function __gnat_get_env_vars_case_sensitive, returns 0 + for VMS and Windows, and 1 for all other platforms. + * adaint.h: New function __gnat_get_env_vars_case_sensitive + * osint.ads, osint.adb (Canonical_Case_Env_Var_Name): New procedure. + * prj-ext.adb (Add): Call Canonical_Case_Env_Var_Name instead of + Canonical_Case_File_Name, as we are dealing with environment variables, + not files. + +2010-09-09 Robert Dewar + + * sem_util.adb: Minor reformatting + +2010-09-09 Vincent Celier + + * vms_data.ads: Add documentation for S_Make_Single. + +2010-09-09 Ed Schonberg + + * sem_util.adb (Same_Object): include formal parameters. + +2010-09-09 Vincent Celier + + * make.adb (Queue): New package implementing a new impementation of the + queue, taking into account the new switch --single-compile-per-obj-dir. + * makeutl.ads (Single_Compile_Per_Obj_Dir_Switch): New constant String + for gnatmake and gprbuild new switch --single-compile-per-obj-dir. + * opt.ads (One_Compilation_Per_Obj_Dir): New Boolean flag, defauted to + False. + * switch-m.adb (Scan_Make_Switches): Take into account new gnatmake + switch --single-compile-per-obj-dir. + * vms_data.ads: Add qualifier SINGLE_COMPILE_PER_OBJ_DIR for gnatmake + switch --single-compile-per-obj-dir. + * gnat_ugn.texi: Add documentation for new gnatmake switch + --single-compile-per-obj-dir. + +2010-09-09 Ed Schonberg + + * einfo.adb, einfo.ads: Clarify use of Corresponding_Protected_Entry. + +2010-09-09 Javier Miranda + + * sem_ch3.adb (Is_Progenitor): Relocated to sem_type. + (Replace_Type): Code cleanup. + * sem_type.ads, sem_type.adb (Is_Progenitor): Relocated from sem_ch3 + +2010-09-09 Thomas Quinot + + * exp_ch8.adb: Minor reformatting. + +2010-09-09 Ed Schonberg + + * exp_ch9.adb, einfo.adb, einfo.ads: New attribute + Corresponding_Protected_Entry. + +2010-09-09 Ed Schonberg + + * exp_ch3.adb (Build_Untagged_Equality): Do not set alias of implicit + inequality, it is always rewritten as the negation of the corresponding + equality operation. + * exp_ch8.adb (Expand_N_Subprogram_Renaming): If the subprogram renames + the predefined equality of an untagged record, create a body at the + point of the renaming, to capture the current meaning of equality for + the type. + +2010-09-09 Robert Dewar + + * sem.adb, sem_warn.adb: Minor reformatting. + +2010-09-09 Ed Schonberg + + * sem_ch6.adb: Improve error message on untagged equality. + * sem.adb (Semantics): Include subprogram bodies that act as spec. + +2010-09-09 Javier Miranda + + * sem_ch13.adb, exp_ch13.adb: Undo previous change, unneeded. + +2010-09-09 Robert Dewar + + * sem_ch13.adb, sem_ch6.adb, exp_ch3.adb: Minor reformatting. + +2010-09-09 Robert Dewar + + * einfo.adb (Is_Aggregate_Type): New function. + * einfo.ads (Aggregate_Kind): New enumeration subtype + (Is_Aggregate_Type): New function. + * sem_type.adb (Is_Array_Class_Record_Type): Removed, replaced by + Is_Aggregate_Typea. + +2010-09-09 Robert Dewar + + * exp_ch11.adb, frontend.adb, sem_attr.adb, sem_ch10.adb, sem_ch3.adb, + sem_ch4.adb, sem_ch9.adb, sem_res.adb: Use Restriction_Check_Needed + where appropriate. + * restrict.ads, restrict.adb: Ditto. + (Restriction_Check_Needed): New function + +2010-09-09 Ed Schonberg + + * exp_ch9.ads (Find_Master_Scope): New function, extracted from + Build_Master_Entity, to find the proper scope for the master entity of + a type that may contain tasks, in the presence of transient scopes. + * exp_ch9.adb (Build_Master_Entity) Use new function. + * exp_ch3.adb (Build_Class_Wide_Master): ditto. + +2010-09-09 Vincent Celier + + * prj-attr.adb: Add new attributes Leading_Library_Options and + Linker'Leading_Switches. + * snames.ads-tmpl: Add new standard names Leading_Library_Options and + Leading_Switches. + +2010-09-09 Javier Miranda + + * sem_ch3.adb (Derive_Subprogram): The code that checks if a + dispatching primitive covers some interface primitive is incomplete. + Replace such code by the invocation of a new subprogram that provides + this functionality. + * sem_ch6.ads (Is_Interface_Conformant): Add missing documentation. + * sem_ch6.adb (Check_Missing_Return): Minor reformating + (Check_Convention): Complete if-statement conditition when reporting + errors (to avoid assertion failure). + * sem_ch13.adb (Make_Null_Procedure_Specs): This routine was previously + located in exp_ch3. Relocated inside Analyze_Freeze_Entity. + (Analyze_Freeze_Entity): Invoke routine that adds the spec of non + overridden null interface primitives. + * sem_type.adb (Is_Ancestor): If the parent of the partial view of a + private type is an interface then use the parent of its full view to + climb to its ancestor type. + * sem_disp.ads, sem_disp.adb (Covers_Some_Interface): New subprogram. + (Check_Dispatching_Operation): Extend assertion to handle wrappers of + null interface primitives. + (Is_Null_Interface_Primitive): New subprogram. + * exp_ch3.adb (Make_Null_Procedure_Specs): Removed. + (Expand_Freeze_Record_Type): Do not generate specs of null interface + subprograms because they are now generated by Analyze_Freeze_Entity. + +2010-09-09 Robert Dewar + + * a-calfor.adb, sem_ch3.adb: Minor reformatting. + +2010-09-09 Robert Dewar + + * bindgen.adb (Gen_Restrictions_Ada): Avoid explicit enumeration ranges + (Gen_Restrictions_C): Avoid explicit enumeration ranges + (Set_String_Replace): New procedure + * casing.ads (Known_Casing): New subtype declaration + * prj-attr.ads (All_Case_Insensitive_Associative_Array): New subtype + declaration + * prj-dect.adb (Parse_Attribute_Declaration): Avoid enumeration range + * prj-nmsc.adb (Check_Naming): Avoid unnecessary enumeration range + * prj-strt.adb (Attribute_Reference): Avoid enumeration range test + * prj.adb (Known_Casing): Moved to Casing spec (avoid enum range) + * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Avoid enumeration + ranges. + * sem_res.adb (Resolve_Range): Check for enumeration subrange style + rule. + * sem_type.adb (Is_Array_Class_Record_Type): New. + * style.ads (Check_Enumeration_Subrange): New procedure + * styleg.adb (Check_Enumeration_Subrange): New procedure + * styleg.ads (Check_Enumeration_Subrange): New procedure + * stylesw.adb Add handling for Style_Check_Enumeration_Subranges + * stylesw.ads (Style_Check_Enumeration_Subranges): New flag + * usage.adb: Add line for -gnatyE + * vms_data.ads: Add entries for [NO]ENUMERATION_RANGES + Add missing entry for NOBOOLEAN_OPERATORS + * gnat_ugn.texi: Add documentation for -gnatyE + +2010-09-09 Robert Dewar + + * namet.adb (Initialize): Is now a dummy procedure + (Reinitialize): New procedure + Call Reinitialize from package initialization + * namet.ads (Initialize): Is now a dummy procedure + (Reinitialize): New procedure + * clean.adb, gnat1drv.adb, gnatbind.adb, gnatcmd.adb, gnatlink.adb, + gnatls.adb, gprep.adb, make.adb, prj-makr.adb: Remove obsolete call to + Namet.Initialize. + +2010-09-09 Bob Duff + + * sem_elab.adb, s-os_lib.ads: Minor comment fixes. + +2010-09-09 Robert Dewar + + * s-bitops.adb (Raise_Error): Add exception message + +2010-09-09 Robert Dewar + + * par-ch5.adb (Test_Statement_Required): Deal with Ada 2012 allowing no + null statement after label. + * sinfo.ads: Minor comment updates. + +2010-09-09 Robert Dewar + + * nlists.ads, nlists.adb (In_Same_List): New function. + Use Node_Or_Entity_Id where appropriate. + * par-labl.adb, sem_ch6.adb, sem_type.adb: Use In_Same_List. + +2010-09-09 Robert Dewar + + * restrict.ads, restrict.adb (Check_Wide_Character_Restriction): New + procedure. + * sem_ch3.adb: Use Check_Wide_Character_Restriction + (Enumeration_Type_Declaration): Check violation of No_Wide_Characters + * sem_ch8.adb (Find_Direct_Name): Check violation of No_Wide_Characters + (Find_Expanded_Name): Check violation of No_Wide_Characters + +2010-09-09 Robert Dewar + + * par-ch5.adb: Minor reformatting. + +2010-09-09 Robert Dewar + + * prj-env.adb: Minor code reorganization. + * par-ch3.adb: Minor reformatting. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-09-09 Ed Schonberg + + * exp_ch9.adb (Build_Activation_Chain_Entity): The construct enclosing + a task declaration can be an entry body. + +2010-09-09 Javier Miranda + + * exp_disp.adb (Make_DT): Decorate as "static" variables containing + tags of library level tagged types. + (Make_Tags): Disable backend optimizations about aliasing for + declarations of access to dispatch tables. + +2010-09-09 Ed Schonberg + + * sem_ch12.adb (Reset_Entity): If the entity is an itype created as a + subtype for a null-excluding access type, recover the original + subtype_mark to get the proper visibility on the original name. + +2010-09-09 Ed Schonberg + + * exp_ch3.adb (Build_Untagged_Equality): For Ada2012, new procedure to + create the primitive equality operation for an untagged record. The + operation is the predefined equality if no record component has a + user-defined equality, or if there is a user-defined equality for the + type as a whole, or when the type is derived and it has an inherited + equality. Otherwise the body of the operations is built as for tagged + types. + (Expand_Freeze_Record_Type): Call Build_Untagged_Equality when needed. + (Make_Eq_Body): New function to create the expanded body of the + equality operation for tagged and untagged records. In both cases the + operation composes, and the primitive operation of each record + component is used to generate the equality function for the type. + * exp_ch4.adb (Expand_Composite_Equality): In Ada2012, if a component + has an abstract equality defined, replace its call with a + Raise_Program_Error. + * sem_ch6.adb (New_Overloaded_Entity): if Ada2012, verify that a + user-defined equality operator for an untagged record type does not + happen after type is frozen, and appears in the visible part if partial + view of type is not limited. + +2010-09-09 Tristan Gingold + + * gnatlbr.adb: Make Create_Directory more portable: use __gnat_mkdir. + +2010-09-09 Bob Duff + + * gnat_ugn.texi: Remove incorrect statement about -E being the default. + +2010-09-09 Pascal Obry + + * gnat_ugn.texi: Update doc on windows related topics. + +2010-09-09 Geert Bosch + + * s-fatgen.adb: Update comments. + +2010-09-09 Robert Dewar + + * par-ch4.adb (Box_Error): New procedure. + +2010-09-09 Thomas Quinot + + * sem.adb: Minor reformatting. + +2010-09-09 Pascal Obry + + * prj-env.adb: Style fix, use /and then/ and /or else/. + * gnat_ugn.texi: Fix typos. + +2010-09-03 Joseph Myers + + PR ada/45499 + * gcc-interface/misc.c (gnat_init_options): Allow options with + empty canonical form. Generate a single save_argv element from -I + options. + +2010-08-30 Eric Botcazou + + * gcc-interface/utils.c (gnat_pushdecl): Remove test for PARM_DECLs. + Attach fake PARM_DECLs to the topmost block of the function. + +2010-08-30 Eric Botcazou + + * gcc-interface/trans.c (call_to_gnu): Also force the return slot opt + for the call to a function whose return type was unconstrained. + +2010-08-30 Olivier Hainque + + * gcc-interface/decl.c (FOREIGN_FORCE_REALIGN_STACK): New macro, + replacement for FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN. + (gnat_to_gnu_entity) : Use it. + +2010-08-21 Eric Botcazou + + * tracebak.c: Fix typo in comment. + +2010-08-20 Nathan Froyd + + * gcc-interface/decl.c: Use FOR_EACH_VEC_ELT. + * gcc-interface/trans.c: Likewise. + * gcc-interface/utils.c: Likewise. + +2010-08-18 Eric Botcazou + + * tracebak.c (i386): Use GCC unwinder on Linux with GCC > 4.5. + +2010-08-10 Robert Dewar + + * sem_ch8.adb, sem_ch8.ads: Change name Write_Scopes to ws. + * sem_util.adb: Minor reformatting. + +2010-08-10 Javier Miranda + + * sem_aggr.adb (Resolve_Extension_Aggregate): Warn on the use of C++ + constructors that leave the object partially initialized. + * exp_atag.ads, exp_atags.adb (Build_Inherit_CPP_Prims): New subprogram + that copies from parent of Typ the dispatch table slots of inherited + C++ primitives. It handles primary and secondary dispatch tables. + * einfo.adb (Related_Type): Moved from Node26 to Node27. Required to + use this attribute with E_Variable entities. + (Set_Is_Tag): Relax assertion to allow its use with variables that + store tags. + (Set_Related_Type): Relax assertion to allow its use with variables + that store the tag of a C++ class. + (Write_26_Field_Name): Remove Related_Type. + (Write_27_Field_Name): Add Related_Type. + * einfo.ads (Related_Type): Moved from Node26 to Node27. Available also + with E_Variable entities. + * sem_prag.adb (CPP_Constructor): Warn on duplicated occurrence of this + pragma. + * sem_util.adb (Search_Tag): Add missing support for CPP types. + (Enclosing_CPP_Parent): New subprogram. + (Has_Suffix): New subprogram. + * sem_util.ads (Enclosing_CPP_Parent): New subprogram that returns the + closest ancestor of a type that is a C++ type. + (Has_Suffix): New subprogram. Used in assertions to check the suffix of + internal entities. + * sem_attr.adb (Analyze_Access_Attribute): Check wrong use of current + instance in derivations of C++ types. + * exp_tss.adb (CPP_Init_Proc): New subprogram. + (Is_CPP_Init_Proc): New subprogram. + (Set_TSS): Handle new C++ init routines. + * exp_tss.ads (TSS_CPP_Init): New TSS name. For initialization of C++ + dispatch tables. + (CPP_Init_Proc): New subprogram. + (Is_CPP_Init_Proc): New subprogram. + * exp_disp.adb (CPP_Num_Prims): New subprogram. + (Has_CPP_Constructors): New subprogram. + (Make_Secondary_DT, Make_DT): For derivations of CPP types, do not + initialize slots located in the C++ part of the dispatch table. + (Make_Tags): For CPP types declare variables used by the IP routine to + store the C++ tag values after the first invocation of the C++ + constructor. + (Build_CPP_Init_DT): New subprogram. + (Set_CPP_Constructors): New implementation that builds an IP for each + CPP constructor. These IP are wrappers of the C++ constructors that, + after the first invocation of the constructor, read the C++ tags from + the object and save them locally. These copies of the C++ tags are used + by the IC routines to initialize tables of Ada derivations of CPP + types. + (Write_DT): Indicate what primitives are imported from C++ + * exp_disp.ads (CPP_Num_Prims): New subprogram. + (Has_CPP_Constructors): New subprogram. + * exp_aggr.adb (Build_Record_Aggr_Code): For derivations of C++ types + invoke the IC routine to inherit the slots of the parents. + * sem_ch13.adb (Analyze_Freeze_Entity): Add new warnings on CPP types. + * exp_ch3.adb (Is_Variable_Size_Array): New subprogram. + (Is_Variable_Size_Record): Factorize code calling + Is_Variable_Size_Array. + (Build_CPP_Init_Procedure): New subprogram that builds the tree + corresponding to the procedure that initializes the C++ part of the + dispatch table of an Ada tagged type that is a derivation of a CPP + type. + (Build_Init_Procedure): Adding documentation plus code reorganization + to leave more clear the construction of the IP with C++ types. + (Expand_Freeze_Record_Type): Delay call to Set_CPP_Constructors because + it cannot be called after Make_Tags has been invoked. + (Inherit_CPP_Tag): Removed. + (Init_Secondary_Tags): For derivations of CPP types, warn on tags + located at variable offset. + * freeze.ads: Minor reformating. + * sem_ch8.adb (Write_Scopes): Add pragma export. Required to have it + available in gdb. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-08-10 Robert Dewar + + * a-chahan.ads: Add comments on handling of obsolescent entries. + * opt.ads: Add Ada_2005 and Ada_2012 renamings for versions. + * restrict.adb (Check_Obsolescent_2005_Entity): New procedure. + * restrict.ads (Check_Obsolescent_2005_Entity): New procedure. + * sem_attr.adb (Analyze_Access_Attribute): Call + Check_Obsolescent_2005_Entity to check for access to obsolescent + Ada.Characters.Handling subprogram. + (Analyze_Attribute, case Class): Applying Class to untagged incomplete + type is obsolescent in Ada 2005. + (Analyze_Attribute, case Constrained): Better placement of flag when + flagged as obsolescent feature. + (Analyze_Attribute, case Storage_Size): Use with tasks is obsolescent + * sem_ch10.adb (Analyze_With_Clause): With of renamings such as Text_IO + is an obsolescent feature. + * sem_ch11.adb (Analyze_Raise_Statement): Numeric_Error is obsolescent + feature. + * sem_ch8.adb (Analyze_Subprogram_Renaming): Call + Check_Obsolescent_2005_Entity to check for renaming obsolete + Ada.Characters.Handling subprogram. + * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): Check + for obsolescent restrictions in Ada 2005. + (Analyze_Pragma, case Suppress): Entity arg is obsolescent in Ada 2005 + (Analyze_Pragma, case Interface): Interface is obsolescent in Ada 2005 + * sem_res.adb (Resolve_Call): Call Check_Obsolescent_2005_Entity to + check for obsolescent references to Ada.Characters.Handling subprograms + +2010-08-10 Robert Dewar + + * einfo.adb, einfo.ads: Fix bad -gnatdt output for incomplete type. + +2010-08-10 Robert Dewar + + * errout.ads: Add VMS table entries for 2005, 12, 2012 switches + * par-ch4.adb: Change wording of Ada 2012 messages + * vms_data.ads: Add VMS entries for /2005, /12, /2012 + +2010-08-10 Robert Dewar + + * a-suenco.adb (Convert): Fix bug in UTF-16 to UTF-8 conversion for + codes in the range 16#80#..16#7FF#. + * sem_ch10.adb: Minor reformatting. + +2010-08-10 Arnaud Charlet + + * gnat1drv.adb (Scan_Front_End_Switches): Always perform semantics and + generate ali files in CodePeer mode, so that a gnatmake -c -k will + proceed further when possible + * freeze.adb (Freeze_Static_Object): Fix thinko. Do not generate error + messages when ignoring representation clauses (-gnatI). + +2010-08-10 Ed Schonberg + + * exp_ch4.adb (Expand_N_Selected_Component): Do not attempt to + constant-fold discriminant reference if the constraint is an object + with non-static expression. Expression may contain volatile references + in the presence of renamings. + +2010-08-10 Vincent Celier + + * prj-proc.adb (Get_Attribute_Index): If Index is All_Other_Names, + returns Index. + * prj-strt.adb (Attribute_Reference): Recognize 'others' as a valid + index for an associative array where it is allowed. + +2010-08-10 Thomas Quinot + + * exp_attr.adb: Add comments. + +2010-08-10 Jerome Lambourg + + * adaint.c (__gnat_get_file_names_case_sensitive): return 0 on darwin. + +2010-08-09 Nathan Froyd + + * gcc-interface/utils.c (gnat_poplevel): Use blocks_nreverse. + +2010-08-09 Eric Botcazou + + * gcc-interface/utils.c (build_vms_descriptor32): Fix formatting. + (build_vms_descriptor): Likewise. + +2010-08-08 Nathan Froyd + + * gcc-interface/utils.c (make_descriptor_field): Add tree parameter. + (build_vms_descriptor32): Adjust calls to it for new parameter. + (build_vms_descriptor): Likewise. + +2010-08-08 Nathan Froyd + + * gcc-interface/decl.c (rec_variant): Declare. Declare a VEC of it. + (build_variant_list): Take and return a VEC instead of a tree. + (create_variant_part_from): Take a VEC instead of a tree for + variant_list. Adjust accordingly. + (gnat_to_gnu_entity): Adjust for changes to previous functions. + +2010-08-07 Nathan Froyd + + * gcc-interface/decl.c (gnat_to_gnu_entity): Use XALLOCAVEC instead + of alloca. + (components_to_record): Likewise. + * gcc-interface/trans.c (gnat_to_gnu): Likewise. + * gcc-interface/utils.c (max_size): Likewise. + (build_vms_descriptor32): Likewise. + (build_vms_descriptor): Likewise. + +2010-08-07 Nathan Froyd + + * gcc-interface/decl.c (subst_pair): Declare. Declare a VEC of it. + (build_subst_list): Return a VEC instead of a tree. + (build_variant_list): Take a VEC for subst_list. Adjust + accordingly. + (create_field_decl_from): Likewise. + (create_variant_part_from): Likewise. + (copy_and_substitute_in_size): Likewise. + (gnat_to_gnu_entity): Adjust for new interface to build_subst_list. + Free the built vector. + +2010-08-06 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not build an + allocator for large imported objects. + +2010-08-05 Robert Dewar + + * gnat1drv.adb: Minor reformatting. + +2010-08-05 Ed Schonberg + + * sem.adb (Do_Unit_And_Dependents): If some parent unit is an + instantiation, process its body before the spec of the main unit, + because it may contain subprograms invoked in the spec of main. + * einfo.ads: Add documention of delayed freeze. + +2010-08-05 Vincent Celier + + * prj-nmsc.adb (Process_Linker): Take into account new values for + attribute Response_File_Format. + * prj.ads (Response_File_Format): New enumeration values GCC_GNU, + GCC_Object_List and GCC_Option_List. + +2010-08-05 Ed Schonberg + + * exp_ch4.adb (Expand_N_Selected_Component): Do not constant-fold a + selected component that denotes a discriminant if it is the + discriminant of a component of an unconstrained record type. + +2010-08-05 Ed Schonberg + + * exp_util.adb (Insert_Actions): If the action appears within a + conditional expression that is already analyzed, insert action further + out. + +2010-08-05 Robert Dewar + + * exp_ch4.adb: Minor reformatting. + +2010-08-05 Thomas Quinot + + * exp_ch4.adb: Minor reformatting + * gnat1drv.adb: Minor reformatting. + Minor code reorganization (use Nkind_In). + +2010-08-05 Ed Schonberg + + * exp_util.ads, exp_util.adb (Needs_Constant_Address): New predicate to + determine whether the expression in an address clause for an + initialized object must be constant. Code moved from freeze.adb. + (Remove_Side_Effects): When the temporary is initialized with a + reference, indicate that the temporary is a constant as done in all + other cases. + * freeze.adb (Check_Address_Clause): use Needs_Constant_Address. + * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address): + If object does not need a constant address, remove side effects from + address expression, so it is elaborated at the point of the address + clause and not at the freeze point of the object, so that elaboration + order is respected. + +2010-08-05 Vincent Celier + + * prj.adb (Is_Compilable): Return False for header files of non Ada + languages. + +2010-08-05 Emmanuel Briot + + * prj-nmsc.adb: The Missing_Source_Files flag also considers a missing + exec directory as a warning rather than an error. + +2010-08-05 Thomas Quinot + + * sem_ch6.adb, gnat1drv.adb, exp_ch6.adb, sem_eval.adb: Minor + reformatting. + +2010-08-05 Steve Baird + + * exp_util.adb (Remove_Side_Effects): An access value which designates + a volatile object of a nonvolatile type is prohibited. + Do not call Make_Reference to construct a reference to such an object. + +2010-08-05 Robert Dewar + + * a-suezse.adb, a-suezse.ads, a-suezen.adb, a-suezen.ads: Removed. + * a-suewse.adb, a-suewse.ads, a-suesen.adb, a-suesen.ads, + a-suewen.adb, a-suewen.ads: New files. + * Makefile.rtl, impunit.adb: Update implementation of Ada 2012 string + encoding packages. + * sem_elab.adb: Minor reformatting. + +2010-08-05 Arnaud Charlet + + * sem_ch8.adb (Use_One_Type): Protect against empty scopes. + * exp_util.adb (Component_May_Be_Bit_Aligned): Prevent assert failure + in case of null Comp. + +2010-08-05 Robert Dewar + + * errout.adb, a-suewen.adb, a-suezen.adb: Minor reformatting. + +2010-08-05 Gary Dismukes + + * sem_ch4.adb (Analyze_Allocator): Flag errors on allocators of a + nested access type whose designated type has tasks or is a protected + object when the restrictions No_Task_Hierarchy or + No_Local_Protected_Objects apply. Add ??? comment. + * sem_ch9.adb (Analyze_Protected_Type): Give a warning when a protected + type is not a library-level type and No_Local_Protected_Objects applies. + (Analyze_Task_Type): Give a warning when a task type is not a + library-level type and No_Task_Hierarchy applies. + +2010-08-05 Arnaud Charlet + + * sem.adb: Minor reformatting + * sem_ch4.adb (Analyze_Reference): Disable error message in CodePeer + mode, not useful. + +2010-08-04 Eric Botcazou + + * gcc-interface/decl.c: Do not undefine IN_GCC_FRONTEND and do not + include expr.h. + (gnat_to_gnu_entity) : Force address of -1 at the tree level + for the debug-only entity. + * gcc-interface/Make-lang.in (ada/decl.o): Adjust dependencies. + +2010-08-03 Joseph Myers + + * gcc-interface/lang-specs.h: Don't pass -a options. + +2010-07-28 Joseph Myers + + * gcc-interface/misc.c (gnat_init_options): Ignore erroneous + options. Check canonical_option_num_elements on options copied. + +2010-07-27 Joseph Myers + + * gcc-interface/misc.c (gnat_handle_option): Update prototype and + return value type. Don't check for missing arguments here. + +2010-07-27 Joseph Myers + + * gcc-interface/misc.c (gnat_option_lang_mask): New. + (gnat_init_options): Update prototype. Reconstruct argv array + from decoded options. + +2010-07-23 Eric Botcazou + + * gcc-interface/utils.c (update_pointer_to): In the unconstrained array + case, merge the alias set of the old pointer type. + +2010-07-23 Eric Botcazou + + * gcc-interface/utils.c (gnat_types_compatible_p): Revert latest change + and recurse only for multidimensional array types instead. + +2010-07-22 Eric Botcazou + + PR ada/44892 + * gcc-interface/utils.c (convert): Fix thinko in test. + (unchecked_convert): When converting from a scalar type to a type with + a different size, pad to have the same size on both sides. + +2010-07-22 Eric Botcazou + + * gcc-interface/utils.c (gnat_types_compatible_p): Don't require strict + equality for the component type of array types. + +2010-07-15 Nathan Froyd + + * gcc-interface/decl.c: Carefully replace TREE_CHAIN with DECL_CHAIN. + * gcc-interface/trans.c: Likewise. + * gcc-interface/utils.c: Likewise. + * gcc-interface/utils2.c: Likewise. + +2010-07-13 Laurent GUERBY + + PR bootstrap/44458 + * gcc-interface/targtyps.c: Include tm_p.h. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-07-09 Eric Botcazou + + * gcc-interface/trans.c (gnat_gimplify_expr) : Deal with + CALL_EXPR. + +2010-07-08 Manuel López-Ibáñez + + * gcc-interface/utils.c: Include diagnostic-core.h in every file + that includes toplev.h. + +2010-07-03 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : + Branch to common code handling the alignment of discrete types. + : Likewise. + : Likewise. + +2010-07-02 Eric Botcazou + + * gcc-interface/misc.c (gnat_handle_option): Do not populate gnat_argv. + (gnat_handle_option): Allocate only one element for gnat_argv. + (gnat_init): Do not populate gnat_argv. + +2010-06-30 Manuel López-Ibáñez + + * gcc-interface/trans.c: Do not include tree-flow.h. + * gcc-interface/Make-lang.in: Adjust dependencies. + +2010-06-29 Nathan Froyd + + * gcc-interface/gigi.h (gnat_build_constructor): Take a VEC instead + of a TREE_LIST. Update comment. + * gcc-interface/trans.c (gigi): Build a VEC instead of a TREE_LIST. + Adjust call to gnat_build_constructor. + (Attribute_to_gnu): Likewise. + (gnat_to_gnu): Likewise. + (pos_to_constructor): Likewise. + (extract_values): Likewise. + * gcc-interface/utils.c (build_template): Likewise. + (convert_vms_descriptor64): Likewise. + (convert_vms_descriptor32): Likewise. + (convert_to_fat_pointer): Likewise. + (convert): Likewise. + (unchecked_convert): Likewise. + * gcc-interface/decl.c (gnat_to_gnu_entity): Likewise. + * gcc-interface/utils2.c (build_allocator): Likewise. + (fill_vms_descriptor): Likewise. + (gnat_build_constructor): Take a VEC instead of a TREE_LIST. + (compare_elmt_bitpos): Adjust for parameters being constructor_elts + instead of TREE_LISTs. + +2010-06-28 Steven Bosscher + + * gcc-interface/misc.c: Do not include except.h. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-06-27 Eric Botcazou + + * gcc-interface/trans.c: Include tree-flow.h. + (gnu_switch_label_stack): Delete. + (Case_Statement_to_gnu): Do not emit the goto at the end of a case if + its associated block cannot fall through. Do not emit the final label + if no cases branch to it. + * gcc-interface/Make-lang.in (ada/trans.o): Add $(TREE_FLOW_H). + +2010-06-23 Thomas Quinot + + * exp_attr.adb (Expand_Access_To_Protected_Op): When rewriting a + reference to a protected subprogram outside of the protected's scope, + ensure the corresponding external subprogram is frozen before the + reference. + +2010-06-23 Ed Schonberg + + * sem_prag.adb: Fix typo in error message. + * sem.adb: Refine previous change. + +2010-06-23 Robert Dewar + + * impunit.adb, a-suewen.adb, a-suewen.ads, a-suenco.adb, a-suenco.ads, + a-suezen.adb, a-suezen.ads, a-stuten.adb, a-stuten.ads, Makefile.rtl: + Implement Ada 2012 string encoding packages. + +2010-06-23 Arnaud Charlet + + * a-stwiun-shared.adb, a-stwiun-shared.ads, a-stzunb-shared.adb, + a-stzunb-shared.ads, a-swunau-shared.adb, a-swuwti-shared.adb, + a-szunau-shared.adb, a-szuzti-shared.adb, a-strunb-shared.adb, + a-strunb-shared.ads, a-stunau-shared.adb, a-suteio-shared.adb: New + files. + * gcc-interface/Makefile.in: Enable use of above files. + +2010-06-23 Ed Schonberg + + * sem_ch13.adb (Check_Constant_Address_Clauses): Do not check legality + of address clauses if if Ignore_Rep_Clauses is active. + * freeze.adb (Check_Address_Clause): If Ignore_Rep_Clauses is active, + remove address clause from tree so that it does not reach the backend. + +2010-06-23 Arnaud Charlet + + * exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Valid]): Do not + expand 'Valid from user code in CodePeer mode, will be handled by the + back-end directly. + +2010-06-23 Bob Duff + + * g-comlin.ads: Minor comment improvements. + +2010-06-23 Ed Schonberg + + * sem_res.adb (Uses_SS): The expression that initializes a controlled + component of a record type may be a user-defined operator that is + rewritten as a function call. + +2010-06-23 Bob Duff + + * g-comlin.ads, sem_ch13.adb: Minor comment fix. + +2010-06-23 Eric Botcazou + + * exp_ch11.adb (Expand_Local_Exception_Handlers): Propagate the end + label to the new sequence of statements. Set the sloc of the raise + statement onto the new goto statements. + +2010-06-23 Robert Dewar + + * a-stuten.ads, a-stuten.adb: New files. + * impunit.adb: Add engtry for Ada.Strings.UTF_Encoding (a-stuten.ads) + * Makefile.rtl: Add entry for a-stuten (Ada.Strings.UTF_Encoding) + +2010-06-23 Robert Dewar + + * gnat_ugn.texi: Add documentation of -gnat12 switch + Add documentation of -gnatX switch. + +2010-06-23 Ed Schonberg + + * inline.ads: Include the current Ada_Version in the info for pending + instance bodies, so that declaration and body are compiled with the + same Ada_Version. + * inline.adb: Move with_clause for Opt to spec. + * sem_ch12.adb (Analyze_Package_Instantiation, + Analyze_Subprogram_Instantiation): Save current Ada_Version in + Pending_Instantiation information. + (Instantiate_Package_Body, Instantiate_Subprogram_Body, + Inline_Package_Body): Use the Ada_Version present in the body + information. + +2010-06-23 Robert Dewar + + * usage.adb: Add documentation for -gnat12 switch. + * errout.ads: Add VMS alias entry for -gnat12 switch + * gnat_rm.texi: Add documentation for pragma Ada_12 and Ada_2012 + Add documentation for pragma Extensions_Allowed. + * opt.ads: Add entry for Ada 2012 mode. + * sem_ch4.adb, par-ch3.adb, par-ch4.adb: Use new Ada 2012 mode for 2012 + features. + * sem_prag.adb, par-prag.adb: Add processing for pragma Ada_12 and + Ada_2012. + * sem_ch13.adb: Add handling for Ada 2012 mode. + * snames.ads-tmpl: Add entries for pragma Ada_2012 and Ada_12. + * switch-c.adb: Add handling for -gnat12 switch. + Implement -gnat2005 and -gnat2012. + * usage.adb: Add documentation for -gnat12 switch. + * vms_data.ads: Add /12 switch for Ada 2012 mode. + +2010-06-23 Arnaud Charlet + + * exp_ch4.adb (Expand_N_Allocator): Fix potential crash when using + No_Task_Hierarchy restriction. Add comment. + * exp_ch9.adb, exp_ch3.adb: Update comments. + +2010-06-23 Robert Dewar + + * sem_ch5.adb (Process_Bounds): Remove some junk initializations. + * sem_res.adb: Add comments. + * sem_util.adb: Minor reformatting. Add comments. + Change increment on Actuals_In_Call table. + * opt.ads: Minor: add 'constant'. + +2010-06-23 Javier Miranda + + * exp_disp.adb (Make_DT): Initialize the Size_Func component of the + TSD to Null_Address if No_Dispatching_Calls is active. + +2010-06-23 Vincent Celier + + * a-comlin.ads: Indicate that use of this package is not supported + during the elaboration of an auto-initialized Stand-Alone Library. + +2010-06-23 Ed Schonberg + + * exp_util.adb (Is_Possibly_Misaligned_Object): Do not rely on an + alignment clause on a record type to determine if a component may be + misaligned. The decision must be taken in the back-end where target + alignment information is known. + +2010-06-23 Arnaud Charlet + + * gnat1drv.adb (Adjust_Global_Switches): Enable some restrictions + systematically in CodePeer mode to simplify generated code. + * restrict.adb (Check_Restriction): Do nothing in CodePeer mode. + * exp_ch4.adb (Expand_N_Allocator): Generate proper code when + No_Task_Hierarchy is set instead of crasshing. + +2010-06-23 Thomas Quinot + + * sem_util.adb: Minor code cleanup: test for proper entity instead of + testing just Chars attribute when checking whether a given scope is + System. + * exp_ch4.adb, einfo.adb: Minor reformatting. + +2010-06-23 Vincent Celier + + PR ada/44633 + * switch-m.adb (Normalize_Compiler_Switches): Take into account + switches -gnatB, -gnatD=nn, -gnatG (incuding -gnatG=nn), -gnatI, + -gnatl=file, -gnatS, -gnatjnn, -gnateI=nn and -gnatWx. + +2010-06-23 Ed Schonberg + + * sem_res.adb (Resolve_Membership_Op): If left operand is a mixed mode + operation with a universal real operand, and the right operand is a + range with universal bounds, find unique fixed point that may be + candidate, and warn appropriately. + +2010-06-23 Ed Schonberg + + * sem_res.adb (Resolve_Intrinsic_Operator): Add guards to handle + properly the rare cases where VMS operators are visible through + Extend_System, but the default System is being used and Address is a + private type. + * sem_util.adb: Widen predicate Is_VMS_Operator. + +2010-06-23 Vincent Celier + + * switch-m.adb (Normalize_Compiler_Switches): Take into account -gnatC + and -gnateS. + +2010-06-23 Olivier Hainque + + * einfo.adb (Has_Foreign_Convention): Consider Intrinsic with + Interface_Name as foreign. These are GCC builtin imports for + which Ada specific processing doesn't apply. + +2010-06-23 Thomas Quinot + + * sem_ch12.adb: Minor reformatting. + +2010-06-23 Ed Schonberg + + * sem_util.adb (Is_VMS_Operator): Use scope of system extension to + determine whether an intrinsic subprogram is VMS specific. + +2010-06-23 Hristian Kirtchev + + * treepr.adb (Print_Entity_Info): Output the contents of Field28 if it + is present in the entity. + +2010-06-23 Arnaud Charlet + + * xr_tabls.adb, xref_lib.adb: Update to latest lib-xref.ads + Fix handling of parameters. + Add protection against unexpected cases. + * sem_ch6.adb (Create_Extra_Formals): Use suffix "L" instead of "A" for + access level, since "A" suffix is already used elsewhere. Similarly, + use suffix "O" instead of "C" for 'Constrained since "C" suffix is used + for xxx'Class. + +2010-06-23 Thomas Quinot + + * sem_util.adb, sem_util.ads: Minor reformatting. + +2010-06-23 Vincent Celier + + * prj.ads (Gprclean_Flags.Missing_Source_Files): Set to Error to keep + the previous behavior of gprclean when there are missing files. + +2010-06-23 Ed Schonberg + + * sem_ch12.adb (Load_Body_Of_Generic): In CodePeer mode, a missing + generic body is not a fatal error. + (Mark_Context): Handle properly names of child units. + * sem.adb (Walk_Library_Items.Do_Action): Remove assertion on + instantiations. + +2010-06-23 Vincent Celier + + * ali.adb (Scan_ALI): When ignoring R lines, do not skip the next + non-empty line. + +2010-06-23 Bob Duff + + * g-pehage.ads, g-pehage.adb: Switch default optimization mode to + Memory_Space, because CPU_Time doesn't seem to provide any significant + speed advantage in practice. Cleanup: Get rid of constant + Default_Optimization; doesn't seem to add anything. Use case + statements instead of if statements; seems cleaner. + +2010-06-23 Olivier Hainque + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Use + Wshadow instead of Wextra to guard warning on absence of internal + builtin decl for an import. Fix use of quote in warning text. + (intrin_arglists_compatible_p): Remove processing of integer trailing + args on the Ada side. Fix use of literal > in warning text. + (intrin_return_compatible_p): Never warn on "function imported as + procedure". Defer the void/void case to the common type compatibility + check. + (gnat_to_gnu_param): Use void_ptr GCC type for System.Address argument + of GCC builtin imports. + +2010-06-23 Olivier Hainque + + * gcc-interface/decl.c (intrin_types_incompatible_p): New function, + helper for ... + (intrin_arglists_compatible_p, intrin_return_compatible_p): New + functions, helpers for ... + (intrin_profiles_compatible_p): New function, replacement for ... + (compatible_signatures_p): Removed. + (gnat_to_gnu_entity) : If -Wextra, warn on + attempt to bind an unregistered builtin function. When we have + one, use it and warn on profile incompatibilities. + +2010-06-23 Arnaud Charlet + + * gcc-interface/Make-lang.in: Update dependencies. + +2010-06-23 Ed Schonberg + + * sem_util.adb (Mark_Coextensions): If the expression in the allocator + for a coextension in an object declaration is a concatenation, treat + coextension as dynamic. + +2010-06-23 Javier Miranda + + * sem_ch3.adb (Add_Internal_Interface_Entities): Ensure that the + internal entities are added to the scope of the tagged type. + (Derive_Subprograms): Do not stop derivation when we find the first + internal entity that has attribute Interface_Alias. After the change + done to Override_Dispatching_Operations it is no longer true that + these primirives are always located at the end of the list of + primitives. + * einfo.ads (Primitive_Operations): Add documentation. + * exp_disp.adb (Write_DT): Improve output adding to the name of the + primitive a prefix indicating its corresponding tagged type. + * sem_disp.adb (Override_Dispatching_Operations): If the overridden + entity covers the primitive of an interface that is not an ancestor of + this tagged type then the new primitive is added at the end of the list + of primitives. Required to fulfill the C++ ABI. + +2010-06-23 Javier Miranda + + * atree.ads (Set_Reporting_Proc): New subprogram. + * atree.adb: Remove dependency on packages Opt and SCIL_LL. + (Allocate_Initialize_Node, Replace, Rewrite): Replace direct calls + to routines of package Scil_ll by indirect call to the registered + subprogram. + (Set_Reporting_Proc): New subprogram. Used to register a subprogram + that is invoked when a node is allocated, replaced or rewritten. + * scil_ll.adb (Copy_SCIL_Node): New routine that takes care of copying + the SCIL node. Used as argument for Set_Reporting_Proc. + (Initialize): Register Copy_SCIL_Node as the reporting routine that + is invoked by atree. + +2010-06-23 Thomas Quinot + + * sem_ch3.ads: Minor reformatting. + +2010-06-23 Ed Schonberg + + * sem_ch12.adb (Analyze_Package_Instantiation): In CodePeer mode, + always analyze the generic body and instance, because it may be needed + downstream. + (Mark_Context): Prepend the with clauses for needed generic units, so + they appear in a better order for CodePeer. + * sem_util.adb, sem_util.ads: Prototype code for AI05-0144. + +2010-06-23 Emmanuel Briot + + * prj.ads, prj-nmsc.adb (Error_Or_Warning): New subprogram. + +2010-06-23 Robert Dewar + + * g-pehage.adb, exp_ch13.adb: Minor reformatting. + +2010-06-23 Thomas Quinot + + * a-tags.ads: Fix description of TSD structure. + +2010-06-23 Ed Schonberg + + * sem_ch12.adb (Mark_Context): When indicating that the body of a + generic unit is needed prior to the unit containing an instantiation, + search recursively the context of the generic to add other generic + bodies that may be instantiated indirectly through the current instance. + +2010-06-23 Robert Dewar + + * freeze.adb: Minor reformatting. + +2010-06-23 Bob Duff + + * g-pehage.adb (Trim_Trailing_Nuls): Fix the code to match the comment. + +2010-06-23 Vincent Celier + + * make.adb (Compile_Sources): Complete previous change. + +2010-06-23 Ed Schonberg + + * sem_ch6.adb (Add_Extra_Formal): Use suffix "C" in the name of the + Constrained extra formal. + +2010-06-23 Ed Schonberg + + * exp_ch13.adb (Expand_Freeze_Actions): If validity checks and + Initialize_Scalars are enabled, compile the generated equality function + for a composite type with full checks enabled, so that validity checks + are performed on individual components. + +2010-06-23 Emmanuel Briot + + * prj.adb, prj.ads, prj-nmsc.adb (Processing_Flags): New flag + Missing_Source_Files. + +2010-06-23 Robert Dewar + + * exp_ch3.adb, exp_util.adb: Minor reformatting. + +2010-06-23 Jose Ruiz + + * a-reatim.adb, a-retide.adb: Move the initialization of the tasking + run time from Ada.Real_Time.Delays to Ada.Real_Time. This way, calls to + Clock (without delays) use a run time which is properly initialized. + +2010-06-23 Vincent Celier + + * make.adb: Do not set Check_Readonly_Files when setting Must_Compile, + when -f -u and a main is specified on the command line. However, + attempt to compile even when the ALI file is read-only when + Must_Compile is True. + +2010-06-23 Thomas Quinot + + * checks.adb, g-pehage.adb, cstand.adb: Minor code factorization. + +2010-06-23 Javier Miranda + + * sem_ch3.adb (Add_Internal_Interface_Entities): Generate internal + entities for parent types that are interfaces. Needed in generics to + handle formals that implement interfaces. + (Derive_Subprograms): Add assertion for derivation of tagged types that + do not cover interfaces. For generics, complete code that handles + derivation of type that covers interfaces because the previous + condition was weak (it required only name consistency; arguments were + not checked). Add new code to locate primitives covering interfaces + defined in generic units or instantiatons. + * sem_util.adb (Has_Interfaces): Add missing support for derived types. + * sem_ch6.adb (Check_Overriding_Indicator): Minor code cleanups. + * exp_disp.adb (Make_Select_Specific_Data_Table): Skip primitives of + interfaces that are parents of the type because they share the primary + dispatch table. + (Register_Primitive): Do not register primitives of interfaces that + are parents of the type. + * sem_ch13.adb (Analyze_Freeze_Entity): Add documentation. + * exp_cg.adb (Write_Type_Info): When displaying overriding of interface + primitives skip primitives of interfaces that are parents of the type. + +2010-06-23 Ed Schonberg + + * sem_attr.adb (Eval_Attribute): If the prefix is an array, the + attribute cannot be constant-folded if an index type is a formal type, + or is derived from one. + * checks.adb (Determine_Range): ditto. + +2010-06-23 Arnaud Charlet + + * gnat_ugn.texi, gnatxref.adb: Add support for --ext switch. + +2010-06-23 Bob Duff + + * g-pehage.ads, g-pehage.adb (Put): Fix off-by-one bug. + (Insert): Disallow nul characters. + (misc output routines): Assert no nul characters. + +2010-06-23 Ed Schonberg + + * exp_ch4.adb: Use predefined unsigned type in all cases. + +2010-06-23 Bob Duff + + * s-rannum.adb (Reset): Avoid overflow in calculation of Initiator. + * g-pehage.ads: Minor comment fixes. + * g-pehage.adb: Minor: Add some additional debugging printouts under + Verbose flag. + +2010-06-23 Robert Dewar + + * binde.adb (Better_Choice): Always prefer Pure/Preelab. + (Worse_Choice): Always prefer Pure/Preelab. + +2010-06-23 Vincent Celier + + * a-reatim.adb: Call System.OS_Primitives.Initialize during elaboration + +2010-06-23 Robert Dewar + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Properly handle + checking returns in generic case. + (Check_Missing_Return): New procedure. + +2010-06-23 Robert Dewar + + * bindgen.adb, switch-b.adb: Minor reformatting. + +2010-06-23 Javier Miranda + + * frontend.adb (Frontend): Add call to initialize the new package + SCIL_LL. + * exp_ch7.adb (Wrap_Transient_Expression): Remove call to + Adjust_SCIL_Node. + (Wrap_Transient_Statement): Remove call to Adjust_SCIL_Node. + * sem_ch5.adb (Analyze_Iteration_Scheme.Process_Bounds): Remove call to + Adjust_SCIL_Node. + * exp_util.adb (Insert_Actions): Remove code for + N_SCIL_Dispatch_Table_Object_Init and N_SCIL_Tag_Init nodes. + (Remove_Side_Effects): Remove calls to Adjust_SCIL_Node. + * sinfo.adb (SCIL_Entity, SCIL_Tag_Value): Remove checks on + N_SCIL_Tag_Init and N_SCIL_Dispatch_Table_Object_Init in the assertion. + (SCIL_Related_Node, Set_SCIL_Related_Node): Removed. + * sinfo.ads (SCIL_Related_Node): Field removed. + (N_SCIL_Dispatch_Table_Object_Init): Node removed. + (N_SCIL_Tag_Init): Node removed. + * sem_scil.ads, sem_scil.adb (Adjust_SCIL_Node): Removed. + (Check_SCIL_Node): New implementation. + (Find_SCIL_Node): Removed. + * sem.adb (Analyze): Remove management of + N_SCIL_Dispatch_Table_Object_Init and N_SCIL_Tag_Init nodes. + * sem_util.adb (Insert_Explicit_Dereference): Remove call to + Adjust_SCIL_Node. + * exp_ch4.adb (Expand_N_In): Code cleanup: remove call to + Set_SCIL_Related_Node and avoid adding the SCIL node before the + referenced node using Insert_Action because this is not longer + required. + (Expand_Short_Circuit_Operator): Remove call to SCIL node. + * exp_ch6.adb (Expand_Call): Remove call to Adjust_SCIL_Node. + * sem_ch4.adb (Analyze_Type_Conversion): Remove call to + Adjust_SCIL_Node. + * exp_disp.adb (Expand_Dispatching_Call): Minor code reorganization + because we no longer require to generate the SCIL node before the call. + (Make_DT): Remove generation of SCI_Dispatch_Table_Object_Init node. + Remove calls to Set_SCIL_Related_Node and avoid adding the SCIL + nodes before the referenced node using Insert_Action because this + is not longer required. + * atree.adb (Allocate_Initialize_Node, Replace, Rewrite): Add call to + update the SCIL_Node field. + * sprint.adb (Sprint_Node_Actual): Remove code for + N_SCIL_Dispatch_Table_Object_Init and N_SCIL_Tag_Init nodes. + * treepr.adb (Print_Node): Print the SCIL node field (if available). + * exp_ch3.adb (Build_Init_Procedure): Remove generation of + SCIL_Tag_Init nodes. + * scil_ll.ads, scil_ll.adb: New files. + * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update + dependencies. + +2010-06-23 Robert Dewar + + * sem_ch6.adb: Minor reformatting. + +2010-06-23 Doug Rupp + + * bindusg.adb (Display): Write -Hnn line. + * bindgen.adb (Gen_Adainit_Ada): Write Heap_Size to binder file as + necessary. + * init.c (__gl_heap_size): Rename from __gl_no_malloc_64 and change + valid values to 32 and 64. + (GNAT$NO_MALLOC_64): Recognize TRUE, 1, FALSE, and 0 in addition to + ENABLE, DISABLE as valid settings. + * switch-b.adb (Scan_Binder_Switches): Process -Hnn switch. + * opt.ads (Heap_Size): New global variable. + * gcc-interface/utils2.c (maybe_wrap_malloc): Remove mostly redundant + TARGET_MALLOC64 check. Fix comment. + +2010-06-23 Robert Dewar + + * sem_ch6.adb, exp_ch4.adb, s-rannum.ads, sem.adb, sem_ch12.adb: Minor + reformatting. Add comments. + * errout.adb (Finalize): Properly adjust warning count when deleting + continuations. + +2010-06-22 Robert Dewar + + * errout.adb (Finalize): Set Prev pointers. + (Finalize): Delete continuations for deletion by warnings off(str). + * erroutc.ads: Add Prev pointer to error message structure. + +2010-06-22 Ed Schonberg + + * sem.adb (Do_Unit_And_Dependents): If the spec of the main unit is a + child unit, examine context of parent units to locate instantiated + generics whose bodies may be needed. + * sem_ch12.adb: (Mark_Context): if the enclosing unit does not have a + with_clause for the instantiated generic, examine the context of its + parents, to set Withed_Body flag, so that it can be visited earlier. + * exp_ch4.adb (Expand_N_Op_Not): If this is a VMS operator applied to + an unsigned type, use a type of the proper size for the intermediate + value, to prevent alignment problems on unchecked conversion. + +2010-06-22 Geert Bosch + + * s-rannum.ads Change Generator type to be self-referential to allow + Random to update its argument. Use "in" mode for the generator in the + Reset procedures to allow them to be called from the Ada.Numerics + packages without tricks. + * s-rannum.adb: Use the self-referencing argument to get write access + to the internal state of the random generator. + * a-nudira.ads: Make Generator a derived type of + System.Random_Numbers.Generator. + * a-nudira.adb: Remove use of 'Unrestricted_Access. + Put subprograms in alpha order and add headers. + * g-mbdira.ads: Change Generator type to be self-referential. + * g-mbdira.adb: Remove use of 'Unrestricted_Access. + +2010-06-22 Robert Dewar + + * freeze.adb: Minor reformatting + Minor code reorganization (use Nkind_In and Ekind_In). + +2010-06-22 Bob Duff + + * gnat1drv.adb (Gnat1drv): Remove the messages that recommend using + -gnatc when a file is compiled that we cannot generate code for, not + helpful and confusing. + +2010-06-22 Vincent Celier + + * switch-m.adb (Normalize_Compiler_Switches): Process correctly + switches -gnatknn. + +2010-06-22 Paul Hilfinger + + * s-rannum.adb: Replace constants with commented symbols. + * s-rannum.ads: Explain significance of the initial value of the data + structure. + +2010-06-22 Ed Schonberg + + * a-ngcoty.adb: Clarify comment. + +2010-06-22 Gary Dismukes + + * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Return without + expansion for indexing packed arrays with small power-of-2 component + sizes when the target is AAMP. + (Expand_Packed_Element_Reference): Return without expansion for + indexing packed arrays with small power-of-2 component sizes when the + target is AAMP. + +2010-06-22 Geert Bosch + + * exp_ch4.adb (Expand_N_In): Do not substitute a valid check for X in + Float'Range. + +2010-06-22 Robert Dewar + + * g-mbdira.adb, g-mbflra.adb, a-nuflra.adb, a-nudira.adb: Minor comment + updates. + +2010-06-22 Doug Rupp + + * system-vms.ads, system-vms-zcx.ads: Remove old unused VMS system + packages. + * system-vms_64.ads, system-vms-ia64.ads: Minor reformatting. + (pragma Ident): Add a default ident string in the private part. + +2010-06-22 Robert Dewar + + * cstand.adb: Minor reformatting. + +2010-06-22 Ed Schonberg + + * freeze.adb (Build_And_Analyze_Renamed_Body): For expansion purposes, + recognize the Shift and Rotation intrinsics that are known to the + compiler but have no interface name. + +2010-06-22 Geert Bosch + + * a-ngcoty.adb ("*"): Rewrite complex multiplication to use proper + scaling in case of overflow or NaN results. + +2010-06-22 Robert Dewar + + * cstand.adb: Complete previous change. + * g-dirope.ads: Add comment. + * s-stchop.adb, sfn_scan.adb: Minor reformatting. + +2010-06-22 Ed Schonberg + + * cstand.adb: Add tree nodes for pragma Pack on string types. + +2010-06-22 Javier Miranda + + * einfo.ads, einfo.adb (Last_Formal): New synthesized attribute. + * exp_util.adb (Find_Prim_Op): Use new attribute to locate the last + formal of a primitive. + * exp_disp.adb (Is_Predefined_Dispatching_Operation, + Is_Predefined_Dispatching_Alias): Use new attribute to locate the last + formal of a primitive. + * exp_cg.adb (Is_Predefined_Dispatching_Operation): Use new attribute + to obtain the last formal of a primitive. + +2010-06-22 Geert Bosch + + * sysdep.c, init.c, adaint.c, cstreams.c: Remove conditional code + depending on __EMX__ or MSDOS being defined. + * i-cstrea.ads, gnat_rm.texi: Remove mentions of OS/2, DOS and Xenix. + * a-excpol-abort.adb: Update comment indicating users of the file. + * xref_lib.adb, sfn_scan.adb: Remove mention of OS/2, replace NT by + Windows. + * env.c: Remove empty conditional for MSDOS. + * s-stchop.adb, g-dirope.ads, s-fileio.adb, osint.ads: Remove mention + of OS/2 in comment. + +2010-06-22 Robert Dewar + + * s-rannum.adb: Minor reformatting. + +2010-06-22 Javier Miranda + + * sem_aux.adb, sem_aux.ads, sem_util.adb, sem_util.ads, sem_elim.adb, + exp_cg.adb: Minor code reorganization: Move routine Ultimate_Alias from + package Sem_Util to package Sem_Aux. + +2010-06-22 Javier Miranda + + * exp_disp.adb (Make_Secondary_DT, Make_DT): Minor code cleanup: + remove useless restriction on imported routines when building the + dispatch tables. + +2010-06-22 Robert Dewar + + * cstand.adb (Create_Standard): Set Has_Pragma_Pack for standard string + types. + +2010-06-22 Javier Miranda + + * sem_ch4.adb (Collect_Generic_Type_Ops): Protect code that handles + generic subprogram declarations to ensure proper context. Add missing + support for generic actuals. + (Try_Primitive_Operation): Add missing support for concurrent types + that have no Corresponding_Record_Type. Required to diagnose errors + compiling + generics or when compiling with no code generation (-gnatc). + * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Do not build + the corresponding record type. + * sem_disp.ads, sem_disp.adb (Check_Dispatching_Operation): Complete + documentation. Do minimum decoration when processing a primitive of a + concurrent tagged type that covers interfaces. Required to diagnose + errors in the Object.Operation notation compiling generics or under + -gnatc. + * exp_ch9.ads, exp_ch9.adb (Build_Corresponding_Record): Add missing + propagation of attribute Interface_List to the corresponding record. + (Expand_N_Task_Type_Declaration): Code cleanup. + (Expand_N_Protected_Type_Declaration): Code cleanup. + +2010-06-22 Matthew Heaney + + * a-convec.adb, a-coinve.adb: Removed 64-bit types Int and UInt. + +2010-06-22 Paul Hilfinger + + * s-rannum.adb (Random_Float_Template): Replace with unbiased version + that is able to produce all representable floating-point numbers in the + unit interval. Remove template parameter Shift_Right, no longer used. + * gnat_rm.texi: Document the period of the pseudo-random number + generator under the description of its algorithm. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-06-22 Thomas Quinot + + * exp_aggr.adb (Rewrite_Discriminant): Fix predicate used to identify + reference to discriminant (can be an expanded name as well as an + identifier). + +2010-06-22 Ed Schonberg + + * exp_ch6.adb: Clarify comment. + +2010-06-22 Geert Bosch + + * exp_imgv.adb (Expand_Image_Attribute): Treat ordinary fixed point + with decimal small as decimal types, avoiding FP arithmetic. + (Has_Decimal_Small): New function. + * einfo.ads, einfo.adb (Aft_Value): New synthesized attributed for + fixed point types. + * sem_attr.adb (Eval_Attribute): Remove Aft_Value function and update + callers to call the new function in Einfo that takes the entity as + parameter. + +2010-06-22 Robert Dewar + + * sem_ch3.adb, sem_ch8.adb: Minor reformatting. + +2010-06-22 Thomas Quinot + + * sem_elab.adb: Minor reformatting. + +2010-06-22 Vincent Celier + + * gnatsym.adb: Put the object files in the table in increasing + aphabetical order of base names. + +2010-06-22 Ed Schonberg + + * sem_ch8.adb (Set_Entity_Or_Discriminal): New procedure used by + Find_Direct_Name and Find_Expanded_Name, to replace a discriminant with + the corresponding discriminal within a record declaration. + +2010-06-22 Thomas Quinot + + * exp_aggr.adb (Rewrite_Discriminant): Rewriting must occur only for an + expression referring to a discriminal of the type of the aggregate (not + a discriminal of some other unrelated type), and the prefix in the + generated selected component must come from Lhs, not Obj. + +2010-06-22 Thomas Quinot + + * sem_ch3.adb (Build_Derived_Record_Type): Fix predicate determining + when to freeze the parent type. + +2010-06-22 Robert Dewar + + * s-rannum.adb, a-nudira.adb, types.ads, freeze.adb, sem_aggr.adb, + exp_aggr.adb: Minor reformatting. + * gnat_rm.texi: Document GNAT.MBBS_Discrete_Random and + GNAT.MBSS_Float_Random. + * g-mbdira.adb, g-mbflra.adb, g-mbdira.ads, g-mbflra.ads: Fix header. + +2010-06-22 Paul Hilfinger + + * a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-nuflra.ads, + gnat_rm.texi, impunit.adb, Makefile.rtl, s-rannum.adb + (Random_Float_Template, Random): New method of creating + uniform floating-point variables that allow the creation of all machine + values in [0 .. 1). + + * g-mbdira.adb, g-mbflra.adb, g-mbdira.ads, g-mbflra.ads: New file. + +2010-06-22 Gary Dismukes + + * sem_ch5.adb (Analyze_Assignment): Revise test for illegal assignment + to abstract targets to check that the type is tagged and comes from + source, rather than only testing for targets of interface types. Remove + premature return. + +2010-06-22 Vincent Celier + + * vms_data.ads: Modify the declarations of qualifiers + /UNCHECKED_SHARED_LIB_IMPORTS to allow the generation of gnat.hlp + without error. + +2010-06-22 Ed Schonberg + + * exp_ch6.adb (Is_Build_In_Place_Function): Predicate is false if + expansion is disabled. + +2010-06-22 Robert Dewar + + * makeusg.adb: Minor reformatting. + +2010-06-22 Robert Dewar + + * types.ads: (Dint): Removed, no longer used anywhere. + * uintp.adb (UI_From_CC): Use UI_From_Int, range is sufficient. + (UI_Mul): Avoid use of UI_From_Dint. + (UI_From_Dint): Removed, not used. + * uintp.ads (UI_From_Dint): Removed, not used. + (Uint_Min/Max_Simple_Mul): New constants. + +2010-06-22 Vincent Celier + + * clean.adb (Parse_Cmd_Line): Recognize switch + --unchecked-shared-lib-imports. + (Usage): Add line for switch --unchecked-shared-lib-imports + * makeusg.adb: Add line for switch --unchecked-shared-lib-imports + * makeutl.ads: (Unchecked_Shared_Lib_Imports): New constant string + moved from GPR_Util. + * switch-m.adb (Scan_Make_Switches): Recognize switch + --unchecked-shared-lib-imports. + * vms_data.ads: Add VMS qualifiers /UNCHECKED_SHARED_LIB_IMPORTS. + * gnat_ugn.texi: Add documentation for new switch + --unchecked-shared-lib-imports. Add also documentation for --subdirs. + +2010-06-22 Javier Miranda + + * sem_prag.adb, sem_util.adb, sem_util.ads, sem_attr.adb, exp_ch6.adb, + exp_disp.adb, sem_eval.adb, exp_dist.adb lib-xref.adb: Code cleanup, + this patch replaces duplication of code that traverses the chain of + aliased primitives by a call to routine Ultimate_Alias that + provides this functionality. + +2010-06-22 Arnaud Charlet + + * fmap.adb, opt.ads, osint.adb, osint.ads, output.ads, scng.adb, + sinput-c.adb, switch-m.ads, tree_io.ads: Use simpler form of + Warnings Off/On. + +2010-06-22 Thomas Quinot + + * einfo.ads: Minor reformatting. + +2010-06-22 Javier Miranda + + * exp_disp.adb (Expand_Interface_Thunk): Do not generate thunk of + eliminated primitives. + (Make_DT): Avoid referencing eliminated primitives. + (Register_Primitive): Do not register eliminated primitives in the + dispatch table. Required to add this functionality when the program is + compiled without static dispatch tables (-gnatd.t) + +2010-06-22 Emmanuel Briot + + * fmap.adb, scng.adb, switch-m.ads, sinput-c.adb, opt.ads, output.ads, + tree_io.ads, osint.adb, osint.ads: Use configuration pragmas to prevent + warnings on use of internal GNAT units. + +2010-06-22 Jose Ruiz + + * s-taprop-vxworks.adb (Set_Priority): Update comments. + +2010-06-22 Paul Hilfinger + + * s-rannum.adb: Make stylistic change to remove mystery constant in + Extract_Value. Image_Numeral_Length: new symbolic constant. + +2010-06-22 Ed Schonberg + + * einfo.ads, einfo.adb: Make Is_Protected_Interface, + Is_Synchronized_Interface, Is_Task_Interface into computable + predicates, to free three flags in entity nodes. + * sem_ch3.adb: Remove setting of these flags. + +2010-06-22 Robert Dewar + + * uintp.adb, osint.adb, prj-conf.adb, prj-part.adb, prj.adb: Minor + reformatting. + * s-taprop-vxworks.adb: Add comment for Set_Priority. + * impunit.adb (Map_Array): Add entries for s-htable.ads and s-crc32.ads + * projects.texi: Move @cindex to the left margin, since otherwise we + are missing entries in the index. + +2010-06-22 Emmanuel Briot + + * prj-part.adb, prj.adb, tempdir.ads, makeutl.adb: Use + packages from the GNAT hierarchy instead of System when possible. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-06-22 Jose Ruiz + + * s-taprop-vxworks.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. + +2010-06-22 Vincent Celier + + * projects.texi: Minor spelling error fixes. + Minor reformatting. + +2010-06-22 Emmanuel Briot + + * prj-part.adb, prj-ext.adb, prj.adb, makeutl.adb, prj-conf.adb: Remove + warnings for some with clauses. + +2010-06-22 Robert Dewar + + * errout.adb (Unwind_Internal_Type): Improve handling of First_Subtype + test to catch more cases where first subtype is the results we want. + * sem_res.adb (Make_Call_Into_Operator): Don't go to First_Subtype in + error case, since Errout will now handle this correctly. + * gcc-interface/Make-lang.in: Add Sem_Aux to list of GNATBIND objects. + Update dependencies. + +2010-06-22 Arnaud Charlet + + * exp_ch4.adb (Expand_Allocator_Expression): Set Related_Node properly + when calling Make_Temporary. + +2010-06-22 Ed Schonberg + + * sem_ch3.adb (Access_Subprogram_Declaration): An anonymous access to + subprogram can be associated with an entry body. + +2010-06-22 Robert Dewar + + * scos.ads: Add note on membership test handling. + +2010-06-22 Vincent Celier + + * projects.texi: Minor spelling fixes. + Minor reformatting. + +2010-06-22 Paul Hilfinger + + * s-rannum.adb: Correct off-by-one error in Extract_Value. + +2010-06-22 Vincent Celier + + * mlib-prj.adb (Display): In non verbose mode, truncate after fourth + argument. + * mlib-utl.adb (Gcc): In non verbose mode, truncate the display of the + gcc command if it is too long. + +2010-06-22 Robert Dewar + + * errout.adb (Set_Msg_Node): Fix incorrect reference to node. + +2010-06-22 Arnaud Charlet + + * exp_ch6.adb (Expand_Actuals): Use Actual as the related node when + calling Make_Temporary. + +2010-06-22 Robert Dewar + + * sem_res.adb, sem_aux.adb, errout.adb: Minor reformatting. + +2010-06-22 Ed Schonberg + + * sem_res.adb: Additional special-case for VMS. + +2010-06-22 Vincent Celier + + * gnatsym.adb: Minor comment fix. + +2010-06-22 Vincent Celier + + * prj-nmsc.adb (Process_Naming_Scheme): Initialize Lib_Data_Table. + +2010-06-22 Robert Dewar + + * par-ch4.adb (P_Name): Recognize 'Mod attribute in Ada 95 mode + * sem_attr.adb (Attribute_05): Add Name_Mod so that 'Mod recognized in + Ada 95 mode as an implementation defined attribute. + +2010-06-22 Vincent Celier + + * bindusg.adb (Display): Update line for -R + * switch-b.adb (Scan_Binder_Switches): Allow generation of the binder + generated files when -R is used. + +2010-06-22 Vincent Celier + + * prj-nmsc.adb (Lib_Data_Table): New table. + (Check_Library_Attributes): Check if the same library name is used in + two different projects that do not extend each other. + +2010-06-22 Robert Dewar + + * lib-writ.ads, errout.adb, einfo.adb, einfo.ads: Minor reformatting. + +2010-06-22 Vincent Celier + + * adaint.c (__gnat_locate_regular_file): If a directory in the path is + empty, make it the current working directory. + +2010-06-22 Thomas Quinot + + * sem_ch3.adb (Build_Derived_Record_Type): When deriving a tagged + private type with discriminants, make sure the parent type is frozen. + +2010-06-22 Eric Botcazou + + * exp_attr.adb (Expand_N_Attribute_Reference) : Deal + with packed array references specially. + * exp_ch4.adb (Expand_N_Indexed_Component): Do not convert a reference + to a component of a bit packed array if it is the prefix of 'Bit. + * exp_pakd.ads (Expand_Packed_Bit_Reference): Declare. + * exp_pakd.adb (Expand_Packed_Bit_Reference): New procedure. Expand a + 'Bit reference, where the prefix involves a packed array reference. + (Get_Base_And_Bit_Offset): New helper, extracted from... + (Expand_Packed_Address_Reference): ...here. Call above procedure to + get the outer object and offset expression. + +2010-06-22 Thomas Quinot + + * exp_attr.adb, lib-writ.ads, bindgen.adb: Minor reformatting. + * einfo.adb (Related_Expression, Set_Related_Expression): Add + assertions. + +2010-06-22 Javier Miranda + + * sem_ch3.adb (Add_Internal_Interface_Entities): Minor code + reorganization to properly check if the operation has been inherited as + an abstract operation. + +2010-06-22 Ed Falis + + * s-osinte-vxworks.ads: Complete previous change. + +2010-06-22 Thomas Quinot + + * sem_res.adb: Add comment. + * projects.texi, gnat_ugn.texi: Remove macro. + +2010-06-22 Vincent Celier + + * prj-attr.adb: Remove project level attribute Main_Language. + +2010-06-22 Robert Dewar + + * switch-b.adb, osint-b.adb: Minor reformatting. + +2010-06-22 Pascal Obry + + * g-socthi-mingw.adb (C_Sendmsg): Do not attempt to send data from a + vector if previous send was not fully successful. If only part of + the vector data was sent, we exit the loop. + +2010-06-22 Thomas Quinot + + * sem_res.adb (Make_Call_Into_Operator): Use First_Subtype for better + error reporting with generic types. + +2010-06-22 Thomas Quinot + + * bindgen.adb, bindusg.adb, gnatbind.adb, gnat_ugn.texi, opt.ads, + osint-b.adb, osint-b.ads, output.adb, output.ads, switch-b.adb, + vms_data.ads: Add a new command line switch -A to gnatbind to output + the list of all ALI files for the partition. + +2010-06-22 Arnaud Charlet + + * s-osinte-vxworks.ads: Fix casing. + * s-vxwext-kernel.ads, s-vxwext-rtp.ads: Complete previous + change: Interfaces.C does not provide a long_long type. + +2010-06-22 Emmanuel Briot + + * gnat_ugn.texi, projects.texi: Preprocess projects.texi for VMS and + native user's guide, since this document contains the two versions. + * gcc-interface/Make-lang.in: Update doc dependencies. + +2010-06-22 Robert Dewar + + * sem_ch3.adb: Minor reformatting. Minor code reorganization. + +2010-06-22 Emmanuel Briot + + * gnat_ugn.texi, projects.texi: Remove toplevel menu, since we should + not build this file on its own (only through gnat_ugn.texi). + Remove macro definitions and insert simpler version in gnat_ugn.texi. + +2010-06-22 Robert Dewar + + * ali-util.ads: Minor comment update. + * g-socthi-mingw.adb: Minor reformatting. + +2010-06-22 Ed Falis + + * s-osinte-vxworks.ads: Take sigset_t definition of System.VxWorks.Ext. + * s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads: Define sigset_t + for specific versions of VxWorks. + +2010-06-22 Emmanuel Briot + + * gnat_rm.texi, gnat_ugn.texi, projects.texi: Remove all project files + related sections from user's guide and reference manual, since they + have now been merged together into a separate document (projects.texi). + This removes a lot of duplication where attributes where described + in several places. + The grammar for the project files is now in each of the sections + (packages,expressions,...) instead of being duplicates in two other + sections (one in the user's guide that contained the full grammar, + and various sections in the rm that contained extracts of the same + grammar). + Added the full list of all supported attributes, since existing lists + were incomplete + Rename "associative array" into "indexed attribute" + Remove sections that were duplicates ("External References in + Project Files" and "External Values", and "Project Extensions" + for instance). The list of valid packages in project files is now in + a single place. + +2010-06-22 Ed Schonberg + + * sem_ch3.adb (Add_Internal_Interface_Entities): If + Find_Primitive_Covering_Interface does not find the operation, it may + be because of a name conflict between the inherited operation and a + local non-overloadable name. In that case look for the operation among + the primitive operations of the type. This search must succeed + regardless of visibility. + +2010-06-22 Pascal Obry + + * g-socthi-mingw.adb: Properly honor MSG_WAITALL in recvmsg. + (C_Recvmsg): Propely honor the MSG_WAITALL flag in Windows + recvmsg emulation. + +2010-06-22 Robert Dewar + + * sem_ch4.adb (Analyze_Conditional_Expression): Defend against + malformed tree. + * sprint.adb (Sprint_Node_Actual, case N_Conditional_Expression): + Ditto. + +2010-06-22 Arnaud Charlet + + * s-intman-vxworks.ads: Code clean up. + +2010-06-22 Thomas Quinot + + * sem_res.adb (Resolve_Slice): When the prefix is an explicit + dereference, construct actual subtype of designated object to generate + proper bounds checks. + +2010-06-22 Thomas Quinot + + * ali-util.adb, ali-util.ads, gnatbind.adb (Read_ALI): Rename to + Read_Withed_ALIs, which is more descriptive. + +2010-06-22 Pascal Obry + + * g-sothco.ads: Minor reformatting. + * g-socthi-mingw.adb: Remove part of work on the C_Recvmsg and + C_Sendmsg implementation. + (C_Sendmsg): Do not use lock (not needed). + (C_Recvmsg): Likewise and also do not wait for incoming data. + +2010-06-22 Ed Schonberg + + * uintp.adb: Fix scope error in operator call. + +2010-06-22 Vincent Celier + + * makeutl.adb (Executable_Prefix_Path): on VMS, return "/gnu/". + * prj-conf.adb (Get_Or_Create_Configuration_File): On VMS, if + autoconfiguration is needed, fail indicating that no config project + file can be found, as there is no autoconfiguration on VMS. + +2010-06-22 Ed Schonberg + + * sem_res.adb (Make_Call_Into_Operator): Diagnose an incorrect scope + for an operator in a functional notation, when operands are universal. + +2010-06-22 Arnaud Charlet + + * gcc-interface/Make-lang.in: Update dependencies. + +2010-06-22 Robert Dewar + + * sem_aggr.adb (Resolve_Record_Aggregate): Do style check on component + name. + * sem_ch10.adb (Analyze_Subunit): Do style check on parent unit name. + * sem_ch8.adb (Find_Direct_Name): For non-overloadable entities, do + style check. + * sem_res.adb (Resolve_Entity_Name): Do style check for enumeration + literals. + +2010-06-22 Vincent Celier + + * make.adb (Scan_Make_Arg): No longer pass -nostdlib to the compiler as + it has no effect. Always pass -nostdlib to gnatlink, even on VMS. + +2010-06-22 Pascal Obry + + * g-socthi-mingw.adb: Fix implementation of the vectored sockets on + Windows. + (C_Recvmsg): Make sure the routine is atomic. Also fully + fill vectors in the proper order. + (C_Sendmsg): Make sure the routine is atomic. + +2010-06-22 Robert Dewar + + * sem_ch8.adb: Update comment. + * sem_res.adb: Minor code reorganization (use Ekind_In). + +2010-06-22 Ed Schonberg + + * sem_ch8.adb (Add_Implicit_Operator): If the context of the expanded + name is a call, use the number of actuals to determine whether this is + a binary or unary operator, rather than relying on later information + to resolve the overload. + +2010-06-22 Robert Dewar + + * sem_ch10.adb, sem_aggr.adb: Minor reformatting. + +2010-06-22 Robert Dewar + + * sem_ch3.adb, sem_disp.adb: Minor code fixes. + * sem_eval.adb: Minor reformatting. + +2010-06-22 Vincent Celier + + * make.adb (Scan_Make_Arg): When invoked with -nostdlib, pass -nostdlib + to gnatlink, except on Open VMS. + * osint.adb (Add_Default_Search_Dirs): Do not suppress the default + object directories if -nostdlib is used. + +2010-06-22 Robert Dewar + + * sem_util.adb (Is_Delegate): Put in proper alpha order. + * sem_eval.adb: Minor reformatting. + +2010-06-22 Robert Dewar + + * g-expect-vms.adb, sem_res.adb: Minor reformatting. + * exp_aggr.adb: Minor comment changes and reformatting. + * sem_eval.adb (Find_Universal_Operator_Type): Put in proper alpha + order. + * sem_util.ads: Add some missing pragma Inline's. + +2010-06-22 Thomas Quinot + + * sem_util.adb (Build_Actual_Subtype): Record original expression in + Related_Expression attribute of the constructed subtype. + * einfo.adb, einfo.ads (Underlying_View): Move to Node28 to free up + Node24 on types for... + (Related_Expression): Make attribute available on types as well. + +2010-06-22 Gary Dismukes + + * exp_util.adb (Find_Interface_ADT): Retrieve Designated_Type instead + of Directly_Designated_Type when the type argument is an access type. + (Find_Interface_Tag): Retrieve Designated_Type instead of + Directly_Designated_Type when the type argument is an access type. + (Has_Controlled_Coextensions): Retrieve Designated_Type instead of + Directly_Designated_Type of each access discriminant. + * sem_res.adb (Resolve_Type_Conversion): Retrieve Designated_Type + instead of Directly_Designated_Type when the operand and target types + are access types. + +2010-06-22 Thomas Quinot + + * exp_aggr.adb (Flatten): Return False if one choice is statically + known to be out of bounds. + +2010-06-22 Ed Schonberg + + * sem_res.adb (Resolve_Call): If the call is rewritten as an indexed of + a parameterless function call, preserve parentheses of original + expression, for proper handling by pretty printer. + * sem_attr.adb (Analyze_Attribute, case 'Old): Add guard to Process + procedure, to handle quietly identifiers that have no entity names. + * exp_util.adb (Get_Current_Value_Condition): If the parent of an + elsif_part is missing, it has been rewritten as a nested if, and there + is no useful information on the current value of the variable. + +2010-06-22 Gary Dismukes + + * sem_ch3.adb (Build_Discriminal): Set default scopes for newly created + discriminals to the current scope. + * sem_util.adb (Find_Body_Discriminal): Remove setting of discriminal's + scope, which could overwrite a different already set value. + +2010-06-22 Ed Schonberg + + * sem_res.adb (Valid_Conversion): If expression is a predefined + operator, use sloc of type of interpretation to improve error message + when operand is of some derived type. + * sem_eval.adb (Is_Mixed_Mode_Operand): New function, use it. + +2010-06-22 Emmanuel Briot + + * g-expect-vms.adb (Expect_Internal): No longer raises an exception, so + that it can set out parameters as well. When a process has died, reset + its Input_Fd to Invalid_Fd, so that when using multiple processes we + can find out which process has died. + +2010-06-22 Thomas Quinot + + * sem_eval.adb (Find_Universal_Operator_Type): New + subprogram to identify the operand type of an operator on universal + operands, when an explicit scope indication is present. Diagnose the + case where such a call is ambiguous. + (Eval_Arithmetic_Op, Eval_Relational_Op, Eval_Unary_Op): + Use the above to identify the operand type so it can be properly + frozen. + * sem_res.adb (Make_Call_Into_Operator): Remove bogus freeze of operand + type, done in an arbitrary, possibly incorrect type (the presence of + some numeric type in the scope is checked for legality, but when more + than one such type is in the scope, we just pick a random one, not + necessarily the expected one). + * sem_utils.ads, sem_utils.adb (Is_Universal_Numeric_Type): New utility + subprogram. + +2010-06-22 Robert Dewar + + * sem_eval.adb: Minor reformatting. + +2010-06-22 Robert Dewar + + * exp_ch4.adb (Expand_N_Conditional_Expression): Use + Expression_With_Actions to clean up the code generated when folding + constant expressions. + +2010-06-22 Vincent Celier + + * g-expect-vms.adb: Add new subprograms Free, First_Dead_Process and + Has_Process. + +2010-06-22 Vincent Celier + + * prj-nmsc.adb (Find_Sources): When a source from a multi-unit file is + found, check if it's path has aready been found, whatever its index. + +2010-06-22 Robert Dewar + + * atree.adb, gnatbind.adb: Minor reformatting. + Minor code reorganization. + +2010-06-21 Robert Dewar + + * exp_ch4.adb (Expand_N_Conditional_Expression): Fold if condition + known at compile time. + +2010-06-21 Gary Dismukes + + * atree.adb: Fix comment typo. + +2010-06-21 Ed Schonberg + + * sem_eval.adb (Test_Ambiguous_Operator): New procedure to check + whether a universal arithmetic expression in a conversion, which is + rewritten from a function call with an expanded name, is ambiguous. + +2010-06-21 Vincent Celier + + * prj-nmsc.adb (Name_Location): New Boolean component Listed, to record + source files in specified list of sources. + (Check_Package_Naming): Remove out parameters Bodies and Specs, as they + are never used. + (Add_Source): Set the Location of the new source + (Process_Exceptions_File_Based): Call Add_Source with the Location + (Get_Sources_From_File): If an exception is found, set its Listed to + True + (Find_Sources): When Source_Files is specified, if an exception is + found, set its Listed to True. Remove any exception that is not in a + specified list of sources. + * prj.ads (Source_Data): New component Location + +2010-06-21 Vincent Celier + + * gnatbind.adb (Closure_Sources): Global table, moved from block. + +2010-06-21 Thomas Quinot + + * sem_res.adb: Minor reformatting. + * atree.adb: New debugging hook "rr" for node rewrites. + +2010-06-21 Robert Dewar + + * g-expect.ads, g-expect.adb: Minor reformatting. + +2010-06-21 Emmanuel Briot + + * s-regpat.adb (Next_Pointer_Bytes): New named constant. Code clean up. + +2010-06-21 Arnaud Charlet + + * gcc-interface/Make-lang.in: Update dependencies. + +2010-06-21 Thomas Quinot + + * bindgen.ads: Update comments. + +2010-06-21 Vincent Celier + + * gnatbind.adb: Suppress dupicates when listing the sources in the + closure (switch -R). + +2010-06-21 Emmanuel Briot + + * s-regpat.adb (Link_Tail): Fix error when size of the pattern matcher + is too small. + +2010-06-21 Emmanuel Briot + + * g-expect.adb, g-expect.ads (First_Dead_Process, Free, Has_Process): + New subprograms. + (Expect_Internal): No longer raises an exception, so that it can set + out parameters as well. When a process has died, reset its Input_Fd + to Invalid_Fd, so that when using multiple processes we can find out + which process has died. + +2010-06-21 Robert Dewar + + * s-regpat.adb, s-tpoben.adb, sem_attr.adb, sem_util.adb, sem_util.ads, + checks.adb, sem_res.adb: Minor reformatting. Add comments. + +2010-06-21 Ed Schonberg + + * sem_ch6.adb (New_Overloaded_Entity): If the new entity is a + rederivation associated with a full declaration in a private part, and + there is a partial view that derives the same parent subprogram, the + new entity does not become visible. This check must be applied to + interface operations as well. + +2010-06-21 Thomas Quinot + + * checks.adb: Add comments. + * prj-nmsc.adb: Minor reformatting. + +2010-06-21 Thomas Quinot + + * sem_ch9.adb, checks.adb, sem_util.adb, sem_util.ads, sem_res.adb, + sem_attr.adb (Get_E_First_Or_Last): Use attribute references on E to + extract bounds, to ensure that we get the proper captured values, + rather than an expression that may have changed value since the point + where the subtype was elaborated. + (Find_Body_Discriminal): New utility subprogram to share code + between... + (Eval_Attribute): For the case of a subtype bound that references a + discriminant of the current concurrent type, insert appropriate + discriminal reference. + (Resolve_Entry.Actual_Index_Type.Actual_Discriminant_Ref): For a + requeue to an entry in a family in the current task, use corresponding + body discriminal. + (Analyze_Accept_Statement): Rely on expansion of attribute references + to insert proper discriminal references in range check for entry in + family. + +2010-06-21 Emmanuel Briot + + * s-regpat.adb (Compile): Fix handling of big patterns. + +2010-06-21 Robert Dewar + + * a-tifiio.adb: Minor reformatting. + +2010-06-21 Pascal Obry + + * prj-nmsc.adb (Search_Directories): Use the non-translated directory + path to open it. + +2010-06-21 Javier Miranda + + * exp_cg.adb (Write_Call_Info): Fill the component sourcename using the + external name. + +2010-06-21 Ed Schonberg + + * exp_ch4.adb (Expand_Concatenate): If an object declaration is created + to hold the result, indicate that the target of the declaration does + not need an initialization, to prevent spurious errors when + Initialize_Scalars is enabled. + +2010-06-21 Ed Schonberg + + * a-tifiio.adb (Put): In the procedure that performs I/O on a String, + Fore is not bound by line length. The Fore parameter of the internal + procedure that performs the operation is an integer. + +2010-06-21 Thomas Quinot + + * sem_res.adb, checks.adb: Minor reformatting. + +2010-06-21 Emmanuel Briot + + * s-regpat.adb (Next_Instruction, Get_Next_Offset): Removed, merged + into Get_Next. + (Insert_Operator_Before): New subprogram, avoids duplicated code + (Compile): Avoid doing two compilations when the pattern matcher ends + up being small. + +2010-06-21 Emmanuel Briot + + * s-regpat.adb: Improve debug traces + (Dump): Change output format to keep it smaller. + +2010-06-21 Javier Miranda + + * exp_cg.adb (Generate_CG_Output): Disable redirection of standard + output to the output file when this routine completes its work. + +2010-06-20 Eric Botcazou + + * gcc-interface/trans.c (Subprogram_Body_to_gnu): Use while instead of + for loop. Call build_constructor_from_list directly in the CICO case. + +2010-06-18 Ed Schonberg + + * freeze.adb (Build_And_Analyze_Renamed_Body): If the renaming + declaration appears in the same unit and ealier than the renamed + entity, retain generated body to prevent order-of-elaboration issues in + gigi. + +2010-06-18 Arnaud Charlet + + * s-tpoben.adb: Update comments. + +2010-06-18 Robert Dewar + + * debug.adb: Minor comment change. + +2010-06-18 Javier Miranda + + * exp_cg.adb: Code clean up. + * debug.adb: Complete documentation of switch -gnatd.Z. + * gcc-interface/misc.c (callgraph_info_file): Declare. + +2010-06-18 Javier Miranda + + * exp_cg.adb (Homonym_Suffix_Length): Minor code reorganization. + +2010-06-18 Thomas Quinot + + * sprint.ads: Minor reformatting. + * output.ads: Update obsolete comment. + +2010-06-18 Ed Schonberg + + * freeze.adb (Build_And_Analyze_Renamed_Body): if the renamed entity is + an external intrinsic operation (e.g. a GCC numeric function) indicate + that the renaming entity has the same characteristics, so a call to it + is properly expanded. + +2010-06-18 Javier Miranda + + * exp_cg.adb, exp_cg.ads, exp_disp.adb, gnat1drv.adb: Add initial + support for dispatch table/callgraph info generation. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-06-18 Robert Dewar + + * exp_ch6.adb: Minor reformatting. + * gnatname.adb: Add comment. + +2010-06-18 Vincent Celier + + * gnatname.adb (Scan_Args): When --and is used, make sure that the + dynamic tables in the newly allocated Argument_Data are properly + initialized. + +2010-06-18 Eric Botcazou + + * gnat1drv.adb: Fix comment. + +2010-06-18 Ed Schonberg + + * exp_ch6.adb (Expand_Inlined_Call): If the inlined subprogram is a + renaming, re-expand the call with the renamed subprogram if that one + is marked inlined as well. + +2010-06-18 Gary Dismukes + + * gnat1drv.adb (Adjust_Global_Switches): Enable + Use_Expression_With_Actions for AAMP and VM targets. + +2010-06-18 Vincent Celier + + * prj-nmsc.adb (Process_Linker): Recognize response file format GCC. + +2010-06-18 Thomas Quinot + + * exp_ch4.adb: Minor reformatting. + +2010-06-18 Javier Miranda + + * debug.ads Add documentation on -gnatd.Z. + +2010-06-18 Ed Schonberg + + * sem_elim.adb: Proper error message on improperly eliminated instances + +2010-06-18 Vincent Celier + + * prj.ads (Response_File_Format): New value GCC. + +2010-06-18 Thomas Quinot + + * gnat1drv.adb: Minor reformatting. + +2010-06-18 Robert Dewar + + * make.adb, sem_cat.adb: Minor reformatting. + * sem_eval.adb: Fix typos. + +2010-06-18 Pascal Obry + + * prj-nmsc.adb: Fix source filenames casing in debug output. + +2010-06-18 Robert Dewar + + * gnatcmd.adb: Minor reformatting. + +2010-06-18 Robert Dewar + + * sem_eval.adb (Eval_Conditional_Expression): Result is static if + condition and both sub-expressions are static (and result is selected + expression). + +2010-06-18 Robert Dewar + + * g-pehage.adb: Minor reformatting + +2010-06-18 Pascal Obry + + * prj-nmsc.adb (Search_Directories): Insert canonical filenames into + source hash table. + +2010-06-18 Arnaud Charlet + + * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update + dependencies. Fix target pairs on darwin. + (gnatlib-sjlj, gnatlib-zcx): Pass THREAD_KIND. + +2010-06-18 Pascal Obry + + * make.adb, prj-nmsc.adb: Fix source filenames casing in debug output. + +2010-06-18 Vincent Celier + + * gnatcmd.adb: For gnatcheck, add -gnatec= switch for a global + configuration pragmas file and, if -U is not used, for a local one. + +2010-06-18 Ed Schonberg + + * sem_elim.adb (Check_Eliminated): Use full information on entity name + when it is given in the pragma by a selected component. + (Check_For_Eliminated_Subprogram): Do no emit error if within a + instance body that is itself within a generic unit. + * sem_ch12.adb (Analyze_Subprogram_Instance): If the subprogram is + eliminated, mark as well the anonymous subprogram that is its alias + and appears within the wrapper package. + +2010-06-18 Bob Duff + + * g-pehage.ads, g-pehage.adb (Produce): Clean up some of the code. + Raise an exception if the output file cannot be opened. Add comments. + +2010-06-18 Thomas Quinot + + * sem_cat.adb (Validate_Object_Declaration): A variable declaration is + not illegal per E.2.2(7) if it occurs in the private part of a + Remote_Types unit. + +2010-06-18 Arnaud Charlet + + * par-ch9.adb, sem_aggr.adb, sem_ch3.adb, layout.adb, sem_ch4.adb, + sem_ch5.adb, sem_mech.adb, exp_util.adb, par-ch10.adb, sem_ch6.adb, + par-ch11.adb, sem_ch7.adb, par-prag.adb, exp_disp.adb, par-ch12.adb, + sem_ch8.adb, style.adb, sem_ch9.adb, sem_ch10.adb, prep.adb, + sem_warn.adb, par-util.adb, scng.adb, sem_eval.adb, checks.adb, + sem_prag.adb, sem_ch12.adb, styleg.adb, sem_ch13.adb, par-ch3.adb, + par-tchk.adb, freeze.adb, sfn_scan.adb, par-ch4.adb, sem_util.adb, + sem_res.adb, par-ch5.adb, lib-xref.adb, sem_attr.adb, par-ch6.adb, + sem_disp.adb, prepcomp.adb, par-ch7.adb, sem_elab.adb, exp_ch4.adb, + errout.ads: Update comments. Minor reformatting. + + * g-spipat.adb, a-swunau.adb, a-swunau.ads, g-spitbo.adb, + a-szunau.adb, a-szunau.ads, a-stunau.adb, a-stunau.ads, + a-strunb.adb (Big_String. Big_String_Access): New type. + + * par-labl.adb, restrict.adb, s-osinte-hpux-dce.ads, sem_ch11.adb, + exp_pakd.adb, s-filofl.ads, par-endh.adb, exp_intr.adb, sem_cat.adb, + sem_case.adb, exp_ch11.adb, s-osinte-linux.ads: Fix copyright notices. + +2010-06-18 Geert Bosch + + * i-forbla-darwin.adb: Include -lgnala and -lm in linker options for + Darwin. + +2010-06-18 Robert Dewar + + * gnat1drv.adb (Adjust_Global_Switches): Set Use_Expression_With_Actions + true for gcc. + +2010-06-18 Robert Dewar + + * sprint.adb: Minor format change for N_Expression_With_Actions. + * repinfo.adb: Minor reformatting. + +2010-06-18 Ed Schonberg + + * sem_elim.adb (Check_Eliminated): If within a subunit, use + Defining_Entity to obtain the name of the entity in the proper body, to + properly handle both separate packages and subprograms. + +2010-06-18 Emmanuel Briot + + * prj-nmsc.adb (Check_File): New parameter Display_Path. + +2010-06-18 Thomas Quinot + + * g-socket.adb, g-socket.ads (Null_Selector): New object. + +2010-06-18 Pascal Obry + + * gnat_ugn.texi: Minor clarification. + +2010-06-18 Emmanuel Briot + + * prj-nmsc.adb (Find_Source_Dirs): Minor refactoring to avoid duplicate + code when using the project dir as the source dir. + (Search_Directories): use the normalized name for the source directory, + where symbolic names have potentially been resolved. + +2010-06-18 Robert Dewar + + * exp_ch4.adb (Expand_N_Conditional_Expression): Clear Actions field + when we create N_Expression_With_Actions node. + (Expand_Short_Circuit): Ditto. + +2010-06-18 Robert Dewar + + * exp_util.adb: Minor reformatting. + +2010-06-18 Thomas Quinot + + * types.ads: Clean up obsolete comments + * tbuild.adb: Minor reformatting. + * exp_ch5.adb, sem_intr.adb, sem_ch10.adb, rtsfind.adb, s-shasto.adb, + exp_strm.adb, aa_drive.adb: Minor reformatting. + * sem_res.adb (Is_Predefined_Operator): An operator that is an imported + intrinsic with an Interface_Name denotes an imported back-end builtin, + and must be rewritten into a call, not left in the tree as an operator, + so return False in that case. + +2010-06-18 Eric Botcazou + + * exp_util.adb (Remove_Side_Effects): Make a copy for an allocator. + +2010-06-18 Robert Dewar + + * scos.ads: Add proposed output for case expression + +2010-06-18 Jose Ruiz + + * gnat_ugn.texi: Document that, when using the RTX compiler to generate + RTSS modules, we need to use the Microsoft linker. + +2010-06-18 Robert Dewar + + * checks.adb (Safe_To_Capture_In_Parameter_Value): Deal with case + expression (cannot count on a particular branch being executed). + * exp_ch4.adb (Expand_N_Case_Expression): New procedure. + * exp_ch4.ads (Expand_N_Case_Expression): New procedure. + * exp_util.adb (Insert_Actions): Deal with proper insertion of actions + within case expression. + * expander.adb (Expand): Add call to Expand_N_Case_Expression + * par-ch4.adb Add calls to P_Case_Expression at appropriate points + (P_Case_Expression): New procedure + (P_Case_Expression_Alternative): New procedure + * par.adb (P_Case_Expression): New procedure + * par_sco.adb (Process_Decisions): Add dummy place holder entry for + N_Case_Expression. + * sem.adb (Analyze): Add call to Analyze_Case_Expression + * sem_case.ads (Analyze_Choices): Also used for case expressions now, + this is a documentation change only. + * sem_ch4.ads, sem_ch4.adb (Analyze_Case_Expression): New procedure. + * sem_ch6.adb (Fully_Conformant_Expressions): Add handling of case + expressions. + * sem_eval.ads, sem_eval.adb (Eval_Case_Expression): New procedure. + * sem_res.adb (Resolve_Case_Expression): New procedure. + * sem_scil.adb (Find_SCIL_Node): Add processing for + N_Case_Expression_Alternative. + * sinfo.ads, sinfo.adb (N_Case_Expression): New node. + (N_Case_Expression_Alternative): New node. + * sprint.adb (Sprint_Node_Actual): Add processing for new nodes + N_Case_Expression and N_Case_Expression_Alternative. + +2010-06-18 Robert Dewar + + * par-ch7.adb, sem_warn.adb, types.ads, par-ch3.adb: Minor + reformatting. + * gnat1drv.adb: Fix typo. + +2010-06-18 Robert Dewar + + * par-prag.adb (Prag, case Style_Checks): All_Checks sets gnat style + for -gnatg. + * sem_prag.adb (Analyze_Pragma, case Style_Checks): All_Checks sets + gnat style for -gnatg. + * gnat_rm.texi: Add documentation for ALL_CHECKS in GNAT mode. + +2010-06-18 Thomas Quinot + + * sem_eval.adb (Test_In_Range): New subprogram, factoring duplicated + code between... + (Is_In_Range, Is_Out_Of_Range): Reimplement in terms of call to + Test_In_Range. + +2010-06-18 Robert Dewar + + * sprint.adb: Minor change in output format for expression wi actions. + * par-ch3.adb: Minor code reorganization. Minor reformatting. + * sem_ch5.adb: Minor comment fix. + +2010-06-18 Robert Dewar + + * debug.adb: New debug flag -gnatd.L to control + Back_End_Handles_Limited_Types. + * exp_ch4.adb (Expand_N_Conditional_Expression): Let back end handle + limited case if Back_End_Handles_Limited_Types is True. + (Expand_N_Conditional_Expression): Use N_Expression_With_Actions to + simplify expansion if Use_Expression_With_Actions is True. + * gnat1drv.adb (Adjust_Global_Switches): Set + Back_End_Handles_Limited_Types. + * opt.ads (Back_End_Handles_Limited_Types): New flag. + +2010-06-18 Ed Schonberg + + * sem_res.adb (Rewrite_Operator_As_Call): Do not rewrite user-defined + intrinsic operator if expansion is not enabled, because in an + instantiation the original operator must be present to verify the + legality of the operation. + +2010-06-18 Robert Dewar + + * exp_disp.adb, sem_ch12.adb: Minor reformatting + +2010-06-18 Ed Schonberg + + * exp_util.adb (Make_Subtype_From_Expr): If the unconstrained type is + the class-wide type for a private extension, and the completion is a + subtype, set the type of the class-wide type to the base type of the + full view. + +2010-06-18 Robert Dewar + + * g-socket.ads, sem_aggr.adb, einfo.ads, sem_elim.adb, + sem_intr.adb, sem_eval.adb: Minor reformatting + +2010-06-18 Ed Schonberg + + * sem_type.adb (Is_Ancestor): If either type is private, examine full + view. + +2010-06-18 Thomas Quinot + + * g-socket.adb, g-socket.ads (Check_Selector): Make Selector an IN + parameter rather than IN OUT. + +2010-06-18 Ed Schonberg + + * exp_ch6.adb: Add extra guard. + +2010-06-18 Gary Dismukes + + * sem_util.adb (Object_Access_Level): For Ada 2005, determine the + accessibility level of a function call from the level of the innermost + enclosing dynamic scope. + (Innermost_Master_Scope_Depth): New function to find the depth of the + nearest dynamic scope enclosing a node. + +2010-06-18 Tristan Gingold + + * adaint.c: Make ATTR_UNSET static as it is not used outside this file. + +2010-06-18 Thomas Quinot + + * g-socket.ads: Minor reformatting. + +2010-06-18 Vincent Celier + + * make.adb (Must_Compile): New Boolean global variable + (Main_On_Command_Line): New Boolean global variable + (Collect_Arguments_And_Compile): Do compile if Must_Compile is True, + even when the project is externally built. + (Start_Compile_If_Possible): Compile in -aL directories if + Check_Readonly_Files is True. Do compile if Must_Compile is True, even + when the project is externally built. + (Gnatmake): Set Must_Compile and Check_Readonly_Files to True when + invoked with -f -u and one or several mains on the command line. + (Scan_Make_Arg): Set Main_On_Command_Line to True when at least one + main is specified on the command line. + +2010-06-18 Ed Schonberg + + * sem_ch6.adb (Build_Body_For_Inline): Handle + extended_return_statements. + * exp_ch6.adb (Expand_Inlined_Call): when possible, inline a body + containing extented_return statements. + * exp_util.adb (Make_CW_Equivalent_Type): If the root type is already + constrained, do not build subtype declaration. + +2010-06-18 Robert Dewar + + * sem_res.adb (Analyze_Indexed_Component, Analyze_Selected_Component): + Warn on assigning to packed atomic component. + +2010-06-18 Robert Dewar + + * sem_util.ads: Minor reformatting + * einfo.ads, einfo.adb: Minor doc clarification (scope of decls in + Expression_With_Actions). + * snames.ads-tmpl: Minor comment fix + +2010-06-18 Robert Dewar + + * sem_prag.adb (Diagnose_Multiple_Pragmas): New procedure + (Set_Imported): Use Import_Interface_Present to control message output + * sinfo.ads, sinfo.adb (Import_Interface_Present): New flag + * gnat_rm.texi: Document that we can have pragma Import and pragma + Interface for the same subprogram. + +2010-06-18 Robert Dewar + + * lib-xref.adb (Generate_Reference): Fix bad reference to + Has_Pragma_Unreferenced (clients should always use Has_Unreferenced). + +2010-06-17 Eric Botcazou + + * gcc-interface/trans.c (set_gnu_expr_location_from_node): New static + function. + (gnat_to_gnu) : New case. + Use set_gnu_expr_location_from_node to set location information on the + result. + +2010-06-17 Arnaud Charlet + + * gcc-interface/Make-lang.in: Update dependencies. + +2010-06-17 Ed Schonberg + + * sem_util.adb (Is_Atomic_Object): Predicate does not apply to + subprograms. + +2010-06-17 Robert Dewar + + * gnat_rm.texi, gnat_ugn.texi: Clean up documentation on warning and + style check messages. + * sem_res.adb (Resolve_Call): Don't call + Check_For_Eliminated_Subprogram if we are analyzing within a spec + expression. + +2010-06-17 Robert Dewar + + * debug.adb: Add documentation for debug flags .X and .Y + * exp_ch4.adb (Expand_Short_Circuit_Operator): Use + Use_Expression_With_Actions. + * gnat1drv.adb (Adjust_Global_Switches): Set + Use_Expression_With_Actions. + * opt.ads (Use_Expression_With_Actions): New switch. + +2010-06-17 Robert Dewar + + * exp_intr.adb: Minor code reorganization (use UI_Max) + * sem_intr.adb: use underlying type to check legality. + * einfo.adb (Known_Static_Esize): False for generic types + (Known_Static_RM_Size): False for generic types + * einfo.ads (Known_Static_Esize): False for generic types + (Known_Static_RM_Size): False for generic types + +2010-06-17 Robert Dewar + + * exp_ch4.ads: Minor code reorganization (specs in alpha order). + +2010-06-17 Robert Dewar + + * debug.adb: New debug flag -gnatd.X to use Expression_With_Actions + node when expanding short circuit form with actions present for right + opnd. + * exp_ch4.adb: Minor reformatting + (Expand_Short_Circuit_Operator): Use new Expression_With_Actions node + if right opeand has actions present, and debug flag -gnatd.X is set. + * exp_util.adb (Insert_Actions): Handle case of Expression_With_Actions + node. + * nlists.adb (Prepend_List): New procedure + (Prepend_List_To): New procedure + * nlists.ads (Prepend_List): New procedure + (Prepend_List_To): New procedure + * sem.adb: Add processing for Expression_With_Actions + * sem_ch4.adb (Analyze_Expression_With_Actions): New procedure + * sem_ch4.ads (Analyze_Expression_With_Actions): New procedure + * sem_res.adb: Add processing for Expression_With_Actions. + * sem_scil.adb: Add processing for Expression_With_Actions + * sinfo.ads, sinfo.adb (N_Expression_With_Actions): New node. + * sprint.ads, sprint.adb: Add processing for Expression_With_Actions + +2010-06-17 Doug Rupp + + * sem_intr.adb (Check_Intrinsic_Operator): Check that the types + involved both have underlying integer types. + * exp_intr.adb (Expand_Binary_Operator) New subprogram to expand a call + to an intrinsic operator when the operand types or sizes are not + identical. + * s-auxdec-vms_64.ads: Revert "+" "-" ops back to Address now that + 64/32 Address/Integer works. + +2010-06-17 Ed Schonberg + + * sem_ch12.adb (Mark_Context): Refine placement of Withed_Body flag, so + that it marks a unit as needed by a spec only if the corresponding + instantiation appears in that spec (and not in the corresponding body). + * sem_elim.adb (Check_Eliminated): If we are within a subunit, the name + in the pragma Eliminate has been parsed as a child unit, but the + current compilation unit is in fact the parent in which the subunit is + embedded. + +2010-06-17 Vincent Celier + + * gnat_rm.texi: Fix typo + +2010-06-17 Robert Dewar + + * sem_util.adb: Minor reformatting + +2010-06-17 Ed Schonberg + + * sem.adb (Do_Withed_Unit): if the unit in the with_clause is a generic + instance, the clause now denotes the instance body. Traverse the + corresponding spec because there may be no other dependence that will + force the traversal of its own context. + +2010-06-17 Ed Schonberg + + * sem_ch10.adb (Is_Ancestor_Unit): Subsidiary to + Install_Limited_Context_Clauses, to determine whether a limited_with in + some parent of the current unit designates some other parent, in which + case the limited_with clause must not be installed. + (In_Context): Refine test. + +2010-06-17 Gary Dismukes + + * sem_util.adb (Collect_Primitive_Operations): In the of an untagged + type with a dispatching equality operator that is overridden (for a + tagged full type), don't include the overridden equality in the list of + primitives. The overridden equality is detected by testing for an + Aliased field that references the overriding equality. + +2010-06-17 Robert Dewar + + * freeze.adb: Minor reformatting. + +2010-06-17 Joel Brobecker + + * gnat_ugn.texi: Add a section introducing gdbserver. + +2010-06-17 Thomas Quinot + + * sem_res.adb, sem_ch4.adb, s-stoele.adb, par-labl.adb: Minor + reformatting. + +2010-06-17 Ed Schonberg + + * sem_aggr.adb (Valid_Ancestor_Type): handle properly the case of a + constrained discriminated parent that is a private type. + (Analyze_Record_Aggregate): when collecting inherited discriminants, + handle properly an ancestor type that is a constrained private type. + +2010-06-17 Ed Schonberg + + * sem_util.adb (Enclosing_Subprogram): If the called subprogram is + protected, use the protected_subprogram_body only if the original + subprogram has not been eliminated. + +2010-06-17 Ed Schonberg + + * freeze.adb (Freeze_Expression): The designated type of an + access_to_suprogram type can only be frozen if all types in its profile + are fully defined. + +2010-06-17 Robert Dewar + + * par.adb: Minor comment fix + * sem_aggr.adb, sem_ch3.adb: Minor reformatting + +2010-06-17 Doug Rupp + + * s-auxdec-vms_64.ads: Revert Integer to Long_Integer change, instead + change Address to Short_Address in functions where both must be the + same size for intrinsics to work. + +2010-06-17 Thomas Quinot + + * sem_ch4.adb (Analyze_Selected_Component): A selected component may + not denote a (private) component of a protected object. + +2010-06-17 Bob Duff + + * par-labl.adb (Try_Loop): Test whether the label and the goto are in + the same list. + +2010-06-17 Joel Brobecker + + * gnat_ugn.texi: Update the documentation about GDB re: exception + catchpoints. + +2010-06-17 Arnaud Charlet + + * gnatvsn.ads: Bump to 4.6 version. + +2010-06-17 Ed Schonberg + + * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): The + designated type of the generated pointer is the type of the original + expression, not that of the function call itself, because the return + type may be an untagged derived type and the function may be an + inherited operation. + +2010-06-17 Robert Dewar + + * exp_ch4.adb: Minor reformatting. + +2010-06-17 Ed Schonberg + + * sinfo.ads, sinfo.adb (Inherited_Discriminant): New flag on + N_Component_Association nodes, to indicate that a component association + of an extension aggregate denotes the value of a discriminant of an + ancestor type that has been constrained by the derivation. + * sem_aggr.adb (Discr_Present): use Inherited_Discriminant to prevent a + double expansion of the aggregate appearing in a context that delays + expansion, to prevent double insertion of discriminant values when the + aggregate is reanalyzed. + +2010-06-17 Arnaud Charlet + + * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Do not use + Allocator as the Related_Node of Return_Obj_Access in call to + Make_Temporary below as this would create a sort of infinite + "recursion". + +2010-06-17 Ben Brosgol + + * gnat_ugn.texi: Update gnatcheck doc. + +2010-06-17 Ed Schonberg + + * sem_ch3.adb (Build_Incomplete_Type_Declaration): If there is an + incomplete view of the type that is not tagged, and the full type is a + tagged extension, create class_wide type now, and warn that the + incomplete view should be tagged as well. + +2010-06-17 Vincent Celier + + * gnatcmd.adb (Non_VMS_Usage): Do not issue usage for gnat sync. + Update the last line of the usage, indicating what commands do not + accept project file switches. + * vms_conv.adb: Do not issue usage line for GNAT SYNC + * vms_data.ads: Fix errors in the qualifiers /LOGFILE and /MAIN of + GNAT ELIM. + * gnat_ugn.texi: Document the relaxed rules for library directories in + externally built library projects. + +2010-06-17 Doug Rupp + + * s-auxdec-vms_64.ads: Make boolean and arithmetic operations intrinsic + where possible. + * s-auxdec-vms-alpha.adb: Remove kludges for aforemention. + * gcc-interface/Makefile.in: Update VMS target pairs. + +2010-06-17 Vasiliy Fofanov + + * adaint.c: Reorganized in order to avoid use of GetProcessId to stay + compatible with Windows NT 4.0 which doesn't provide this function. + +2010-06-17 Vincent Celier + + * ali-util.adb (Time_Stamp_Mismatch): In Verbose mode, if there is + different timestamps but the checksum is the same, issue a short + message saying so. + +2010-06-17 Arnaud Charlet + + * s-interr.adb (Finalize): If the Abort_Task signal is set to system, + it means that we cannot reset interrupt handlers since this would + require potentially sending the abort signal to the Server_Task. + +2010-06-17 Ed Schonberg + + * exp_ch4.adb: expand NOT for VMS types. + * sem_util.adb: Use OpenVMS_On_Target for IS_VMS_Operator. + +2010-06-17 Sergey Rybin + + * vms_data.ads: Add qualifier for '--no-elim-dispatch' gnatelim option. + * gnat_ugn.texi (gnatelim): add description for --no-elim-dispatch + option. + +2010-06-17 Ed Schonberg + + * exp_ch6.adb (Expand_Call): Do not expand a call to an internal + protected operation if the subprogram has been eliminated. + +2010-06-17 Vincent Celier + + * prj-nmsc.adb (Check_Library_Attributes): Allow the different + directories associated with a library to be any directory when the + library project is externally built. + +2010-06-17 Vincent Celier + + * make.adb (Check): If switch -m is used, deallocate the memory that + may be allocated when computing the checksum. + +2010-06-17 Eric Botcazou + + * g-socthi-mingw.adb (C_Recvmsg): Add 'use type' clause for C.size_t; + (C_Sendmsg): Likewise. + +2010-06-17 Thomas Quinot + + * sem_res.adb: Update comments. + +2010-06-17 Vincent Celier + + * back_end.adb (Scan_Compiler_Arguments): Process last argument + +2010-06-17 Robert Dewar + + * exp_ch3.adb, exp_ch6.adb, exp_smem.adb, exp_util.adb: Use Ekind_In. + * layout.adb, freeze.adb: Use Make_Temporary. + +2010-06-17 Jerome Lambourg + + * exp_ch11.adb (Expand_N_Raise_Statement): Expand raise statements in + .NET/JVM normally as this is now perfectly supported by the backend. + +2010-06-17 Pascal Obry + + * gnat_rm.texi: Fix minor typo, remove duplicate blank lines. + +2010-06-17 Vincent Celier + + * make.adb (Collect_Arguments_And_Compile): Create include path file + only when -x is specified. + (Gnatmake): Ditto + * opt.ads (Use_Include_Path_File): New Boolean flag, initialized to + False. + * prj-env.adb (Set_Ada_Paths): New Boolean parameters Include_Path and + Objects_Path, defaulted to True. Only create include path file if + Include_Path is True, only create objects path file if Objects_Path is + True. + * prj-env.ads (Set_Ada_Paths): New Boolean parameters Include_Path and + Objects_Path, defaulted to True. + * switch-m.adb (Scan_Make_Switches): Set Use_Include_Path_File to True + when -x is used. + +2010-06-17 Ed Schonberg + + * exp_disp.adb (Build_Interface_Thunk): Use base type of formal to + determine whether it has the controlling type, when the formal is an + access parameter. + +2010-06-17 Eric Botcazou + + * s-crtl.ads (ssize_t): New type. + (read): Fix signature. + (write): Likewise. + * g-socthi.ads: Add 'with System.CRTL' clause. Remove ssize_t and + 'use type' directive for C.size_t, add one for System.CRTL.ssize_t. + (C_Recvmsg): Replace ssize_t with System.CRTL.ssize_t. + (C_Sendmsg): Likewise. + * g-socthi.adb (Syscall_Recvmsg): Likewise. + (Syscall_Sendmsg): Likewise. + (C_Recvmsg): Likewise. + (C_Sendmsg): Likewise. + * g-socthi-mingw.ads: Add 'with System.CRTL' clause. Remove ssize_t + and 'use type' directive for C.size_t, add one for System.CRTL.ssize_t. + (C_Recvmsg): Replace ssize_t with System.CRTL.ssize_t. + (C_Sendmsg): Likewise. + * g-socthi-mingw.adb (C_Recvmsg): Likewise. + (C_Sendmsg): Likewise. + * g-socthi-vms.ads: Add 'with System.CRTL' clause. Remove ssize_t and + 'use type' directive for C.size_t, add one for System.CRTL.ssize_t. + (C_Recvmsg): Replace ssize_t with System.CRTL.ssize_t. + (C_Sendmsg): Likewise. + * g-socthi-vms.adb (C_Recvmsg): Likewise. + (C_Sendmsg): Likewise. + * g-socthi-vxworks.ads Add 'with System.CRTL' clause. Remove ssize_t + and 'use type' directive for C.size_t, add one for System.CRTL.ssize_t. + (C_Recvmsg): Replace ssize_t with System.CRTL.ssize_t. + (C_Sendmsg): Likewise. + * g-socthi-vxworks.adb (C_Recvmsg): Likewise. + (C_Sendmsg): Likewise. + * g-sercom-linux.adb (Read): Use correct types to call 'read'. + (Write): Likewise to call 'write'. + * s-os_lib.adb (Read): Use correct type to call System.CRTL.read. + (Write): Use correct type to call System.CRTL.write. + * s-tasdeb.adb (Write): Likewise. + +2010-06-17 Vincent Celier + + * prj-proc.adb (Copy_Package_Declarations): Change argument name + Naming_Restricted to Restricted. If Restricted is True, do not copy the + value of attribute Linker_Options. + +2010-06-17 Eric Botcazou + + * gcc-interface/trans.c (push_stack, pop_stack): Delete. + (Case_Statement_to_gnu): Adjust. + (Loop_Statement_to_gnu): Likewise. + (Subprogram_Body_to_gnu): Likewise. + (Handled_Sequence_Of_Statements_to_gnu): Likewise. + (Compilation_Unit_to_gnu): Likewise. + +2010-06-17 Robert Dewar + + * exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb, exp_prag.adb, + exp_sel.adb, exp_util.adb, sem_ch10.adb, sem_ch12.adb, sem_ch13.adb, + sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch8.adb, sem_ch9.adb, + sem_dist.adb, sem_util.adb: Use Make_Temporary + * itypes.ads, tbuild.ads: Minor comment update + * exp_ch9.adb, exp_dist.adb: Minor reformatting + +2010-06-17 Thomas Quinot + + * exp_imgv.adb, exp_ch7.ads: Minor reformatting. + +2010-06-17 Robert Dewar + + * exp_ch9.adb, exp_disp.adb, exp_dist.adb: Use Make_Temporary. + +2010-06-17 Thomas Quinot + + * sprint.adb (pg): Set Dump_Freeze_Null, to be consistent with -gnatdg. + +2010-06-17 Robert Dewar + + * exp_ch6.adb, exp_ch7.adb, exp_ch5.adb: Use Make_Temporary + * tbuild.ads (Make_Temporary): More comment updates + * tbuild.adb: Minor reformatting + +2010-06-17 Robert Dewar + + * checks.adb, exp_aggr.adb, exp_atag.adb, exp_attr.adb, exp_ch11.adb, + exp_ch3.adb, exp_ch4.adb: Minor code reorganization. + Use Make_Temporary. + * tbuild.ads, tbuild.adb (Make_Temporary): Clean up, use Entity_Id + instead of Node_Id. + (Make_Temporary): Add more extensive documentation + +2010-06-17 Robert Dewar + + * sem_intr.adb, sem_prag.adb, sem_res.adb, sem_type.adb, sem_util.adb, + sem_warn.adb, sem_eval.adb: Minor reformatting. Use Ekind_In. + (Set_Slice_Subtype): Explicitly freeze the slice's itype at the point + where the slice's actions are inserted. + (Decompose_Expr): Account for possible rewriting of slice bounds + resulting from side effects suppression caused by the above freezing, + so that folding of bounds is preserved by such rewriting. + +2010-06-17 Robert Dewar + + * einfo.ads, einfo.adb (Get_Record_Representation_Clause): New + function. + * freeze.adb (Freeze_Record_Type): Add call to + Check_Record_Representation_Clause. + * sem_ch13.adb (Check_Record_Representation_Clause): New function + (Analyze_Record_Representation_Clause): Split out overlap code into + this new function. + (Check_Component_Overlap): Moved inside + Check_Record_Representation_Clause. + * sem_ch13.ads (Check_Record_Representation_Clause): New function. + +2010-06-17 Robert Dewar + + * back_end.adb, sem_res.adb, switch-c.adb, sem_scil.adb: Minor + reformatting. + * sem_attr.adb, sem_cat.adb, sem_disp.adb, sem_elab.adb, sem_elim.adb, + sem_eval.adb: Use Ekind_In + +2010-06-17 Ed Schonberg + + * sem_ch8.adb: better error message for illegal inherited discriminant + +2010-06-17 Vincent Celier + + * bindusg.adb: Remove lines for -A and -C + * gnat_ugn.texi: Remove all documentation and examples of switches -A + and -C for gnatbind and gnatlink. + * gnatlink.adb (Usage): Remove lines for -A and -C + * switch-b.adb (Scan_Binder_Switches): Issue warning when switch -C is + specified. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-06-17 Vincent Celier + + * back_end.adb (Scan_Compiler_Arguments): Put all arguments in new + local Argument_List variable Args. + * switch-c.adb (Scan_Front_End_Switches): New Argument_List argument + Args. + (Switch_Subsequently_Cancelled): New Argument_List argument Args. Look + for subsequent switches in Args. + * switch-c.ads (Scan_Front_End_Switches): New Argument_List argument + Args. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-06-17 Robert Dewar + + * einfo.adb: Minor code fix, allow E_Class_Wide_Type for + Equivalent_Type to match documentation. + +2010-06-17 Robert Dewar + + * sem_ch6.adb, sem_ch7.adb: Minor reformatting. + * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_ch10.adb, sem_ch12.adb, + sem_ch4.adb, sem_ch8.adb, sem_ch13.adb: Make use of Ekind_In. + +2010-06-17 Thomas Quinot + + * sem_res.adb (Set_Slice_Subtype): Always freeze the slice's itype. + +2010-06-17 Thomas Quinot + + * freeze.adb (Freeze_Expression): Short circuit operators are valid + freeze node insertion points. + +2010-06-17 Robert Dewar + + * switch-c.ads, switch-c.adb, sem_ch13.adb: Minor reformatting. + * sem_ch12.adb: Add pragmas Assert and Check to previous change. + +2010-06-17 Gary Dismukes + + * layout.adb (Layout_Type): Broaden test for setting an array type's + Component_Size to include all scalar types, not just discrete types + (components of real types were missed). + * sem_ch3.adb (Constrain_Index): Add missing setting of First_Literal + on the itype created for an index (consistent with Make_Index and + avoids possible Assert_Failures). + +2010-06-17 Robert Dewar + + * atree.ads, atree.adb: Add 6-parameter version of Ekind_In + * einfo.adb: Minor code reformatting (use Ekind_In) + +2010-06-17 Robert Dewar + + * sem_warn.adb (Test_Ref): Abandon scan if access subprogram parameter + found. + +2010-06-17 Vincent Celier + + * back_end.adb: Minor comment updates + * switch-c.adb: Remove dependencies on gcc C sources + * gcc-interface/Make-lang.in: Add a-comlin.o to the object file list + for the compiler. + +2010-06-17 Ed Schonberg + + * sem_ch12.adb: propagate Pragma_Enabled flag to generic. + * get_scos.adb: Set C2 flag in decision entry of pragma to 'e'. + * par_sco.ads, par_sco.adb (Set_SCO_Pragma_Enabled): New procedure + Remove use of Node field in SCOs table + (Output_Header): Set 'd' to initially disable pragma entry + * put_scos.adb (Put_SCOs): New flag indicating if pragma is enabled + * scos.ads, scos.adb: Remove Node field from internal SCOs table. + Use C2 field of pragma decision header to indicate enabled. + * sem_prag.adb: Add calls to Set_SCO_Pragma_Enabled. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-06-17 Vincent Celier + + * back_end.adb (Next_Arg): Moved to procedure Scan_Compiler_Arguments + (Scan_Compiler_Arguments): Call Scan_Front_End_Switches with Next_Arg + (Switch_Subsequently_Cancelled): Function moved to the body of Switch.C + * back_end.ads (Scan_Front_End_Switches): Function moved to the body of + Switch.C. + * switch-c.adb: Copied a number of global declarations from + back_end.adb. + (Len_Arg): New function copied from back_end.adb + (Switch_Subsequently_Cancelled): New function moved from back_end.adb + (Scan_Front_End_Switches): New parameter Arg_Rank used to call + Switch_Subsequently_Cancelled. + * switch-c.ads (Scan_Front_End_Switches): New parameter Arg_Rank. + * gcc-interface/Makefile.in: Add line so that shared libgnat is linked + with -lexc on Tru64. + +2010-06-17 Robert Dewar + + * prj.ads, prj.adb: Minor reformatting + +2010-06-17 Thomas Quinot + + * put_scos.adb: Do not generate a blank line in SCOs when omitting the + CP line for a disabled pragma. + +2010-06-17 Emmanuel Briot + + * prj-proc.adb, prj.adb, prj.ads (Check_Or_Set_Typed_Variable): New + subprogram. + (Process_Declarative_Item): An invalid value in an typed variable + declaration is no longer always fatal. + +2010-06-16 Arnaud Charlet + + * get_scos.adb, par_sco.adb, par_sco.ads, put_scos.adb, scos.adb, + scos.ads, exp_ch4.adb, sem_warn.adb: Code clean up, update + documentation. + +2010-06-16 Javier Miranda + + * exp_disp.adb (Expand_Dispatching_Call): Adjust the decoration of the + node referenced by the SCIL node of dispatching "=" to skip the tags + comparison. + +2010-06-16 Ed Schonberg + + * sem_ch5.adb (Analyze_Exit_Statement): Return if no enclosing loop, + to prevent cascaded errors and compilation aborts. + +2010-06-16 Robert Dewar + + * back_end.adb (Switch_Subsequently_Cancelled): New function + Move declarations to package body level to support this change + * back_end.ads (Switch_Subsequently_Cancelled): New function + * gnat_ugn.texi: Document -gnat-p switch + * switch-c.adb (Scan_Front_End_Switches): Implement -gnat-p switch + * ug_words: Add entry for -gnat-p (UNSUPPRESS_ALL) + * usage.adb: Add line for -gnat-p switch + * vms_data.ads: Add entry for UNSUPPRESS_ALL (-gnat-p) + +2010-06-16 Robert Dewar + + * sem_warn.adb (Check_Infinite_Loop_Warning): Declaration counts as + modification. + +2010-06-16 Robert Dewar + + * exp_disp.adb: Minor reformatting + +2010-06-16 Ed Schonberg + + * sem_ch3.adb (Complete_Private_Subtype): Inherit class_wide type from + base type only if it was not previously created for the partial view. + +2010-06-16 Thomas Quinot + + * tbuild.ads: Minor comment fix + +2010-06-15 Nathan Froyd + + * gcc-interface/trans.c (gnu_stack_free_list): Delete. + (gnu_except_ptr_stack): Change type to VEC. Update comment. + (gnu_elab_proc_stack): Likewise. + (gnu_return_label_stack): Likewise. + (gnu_loop_label_stack): Likewise. + (gnu_switch_label_stack): Likewise. + (gnu_constraint_label_stack): Likewise. + (gnu_storage_error_label_stack): Likewise. + (gnu_program_error_label_stack): Likewise. + (push_exception_label_stack): Take a VEC ** instead of a tree *. + (push_stack): Likewise. Remove unused second parameter. Update + callers. + (pop_stack): Take a VEC * instead of a tree *. Update callers. + (gigi): Initialize stacks as VECs. + (Identifier_to_gnu): Use VEC_last instead of TREE_VALUE. + (Case_Statement_to_gnu): Likewise. + (Subprogram_Body_to_gnu): Likewise. + (call_to_gnu): Likewise. + (Exception_Handler_to_gnu_sjlj): Likewise. + (gnat_to_gnu): Likewise. + (get_exception_label): Likewise. + +2010-06-14 Ed Schonberg + + * sem_ch3.adb (Build_Derived_Record_Type): if derived type is an + anonymous base generated when the parent is a constrained discriminated + type, propagate interface list to first subtype because it may appear + in a current instance within the extension part of the derived type + declaration, and its own subtype declaration has not been elaborated + yet. + * exp_disp.adb (Build_Interface_Thunk): Use base type of formal to + determine whether it has the controlling type. + +2010-06-14 Jerome Lambourg + + * exp_ch11.adb (Expand_N_Raise_Statement): Make sure that the explicit + raise of CE, SE and PE have the reason correctly set and are properly + expanded before stopping the expansions of .NET/JVM exceptions. + +2010-06-14 Robert Dewar + + * opt.ads (Check_Policy_List): Add some clarifying comments + * sem_prag.adb (Analyze_Pragma, case Check): Set Pragma_Enabled flag + on rewritten Assert pragma. + +2010-06-14 Gary Dismukes + + * sem_ch6.adb (Check_Overriding_Indicator): Add a special check for + controlled operations, so that they will be treated as overriding even + if the overridden subprogram is marked Is_Hidden, as long as the + overridden subprogram's parent subprogram is not hidden. + +2010-06-14 Robert Dewar + + * debug.adb: Entry for gnatw.d no longer specific for while loops + * einfo.adb (First_Exit_Statement): New attribute for E_Loop + * einfo.ads (First_Exit_Statement): New attribute for E_Loop + * sem_ch5.adb (Analyze_Loop_Statement): Check_Infinite_Loop_Warning has + new calling sequence to include test for EXIT WHEN. + (Analyze_Exit_Statement): Chain EXIT statement into exit statement + chain + * sem_warn.ads, sem_warn.adb (Check_Infinite_Loop_Warning): Now handles + EXIT WHEN case. + * sinfo.adb (Next_Exit_Statement): New attribute of N_Exit_Statement + node. + * sinfo.ads (N_Pragma): Correct comment on Sloc field (points to + PRAGMA, not to pragma identifier). + (Next_Exit_Statement): New attribute of N_Exit_Statement node + +2010-06-14 Robert Dewar + + * sem_res.adb (Resolve_Short_Circuit): Fix sloc of "assertion/check + would fail" msg. + +2010-06-14 Robert Dewar + + * par-ch2.adb (Scan_Pragma_Argument_Association): Clarify message for + missing pragma argument identifier. + +2010-06-14 Robert Dewar + + * atree.ads, atree.adb (Ekind_In): New functions. + +2010-06-14 Robert Dewar + + * exp_ch4.adb (Expand_N_Op_Expon): Optimize 2**N in stand alone context + +2010-06-14 Robert Dewar + + * usage.adb (Usage): Redo documentation of -gnatwa. + +2010-06-14 Ed Schonberg + + * sem_ch8.adb (Find_Type): The attribute 'class cannot be applied to + an untagged incomplete type that is a limited view. + +2010-06-14 Sergey Rybin + + * gnat_ugn.texi: Add description of '-cargs gcc_switches' to gnatstub + and gnatppa. + +2010-06-14 Thomas Quinot + + * exp_ch4.adb (Expand_Short_Circuit_Operator): New subprogram, + factoring duplicated code between... + (Expand_N_And_Than, Expand_N_Or_Else): Remove duplicated code. + * a-envvar.ads: Minor reformatting + +2010-06-14 Arnaud Charlet + + * ali.adb, ali.ads, lib-xref.ads: Document new '+' letter for C/C++ + static entities. + (Scan_ALI): Take into account new Visibility field. + (Visibility_Kind): New type. + (Xref_Entity_Record): Replace Lib field by Visibility. + + * gcc-interface/Make-lang.in: Update dependencies. + +2010-06-14 Pascal Obry + + * raise.h: Remove unused defintions. + +2010-06-14 Bob Duff + + * par-ch10.adb (P_Subunit): If the next token after "separate(X)" is + Tok_Not or Tok_Overriding, call P_Subprogram. We had previously given + the incorrect error "proper body expected". + * par-ch6.adb (P_Subprogram): Suppress "overriding indicator not + allowed here" error in case of subunits, which was triggered by the + above change to P_Subunit. + +2010-06-14 Sergey Rybin + + * gnat_ugn.texi, vms_data.ads: Update gnatelim doc. + +2010-06-14 Thomas Quinot + + * lib-util.adb: Minor code reorganization. + +2010-06-14 Robert Dewar + + * ali.adb (Scan_ALI): Implement reading and storing of N lines + (Known_ALI_Lines): Add entry for 'N' (notes) + * ali.ads (Notes): New table to store Notes information + * alloc.ads: Add entries for Notes table + * lib-util.adb (Write_Info_Int): New procedure + (Write_Info_Slit): New procedure + (Write_Info_Uint): New procedure + * lib-util.ads (Write_Info_Int): New procedure + (Write_Info_Slit): New procedure + (Write_Info_Uint): New procedure + * lib-writ.adb (Write_Unit_Information): Output N (notes) lines + * lib-writ.ads: Update documentation for N (Notes) lines + * lib.adb (Store_Note): New procedure + * lib.ads (Notes): New table + (Store_Note): New procedure + * sem_prag.adb: Call Store_Note for affected pragmas + +2010-06-14 Thomas Quinot + + * socket.c: Fix wrong condition in #ifdef + * g-socket.adb, g-sothco.ads: Functions imported from socket.c that + take or return char* values can't use Interfaces.C.Strings.chars_ptr, + because on VMS this type is a 32-bit pointer which is not compatible + with the default for C pointers for code compiled with gcc on that + platform. + +2010-06-14 Ed Schonberg + + * sem_util (Is_VMS_Operator): New predicate to determine whether an + operator is an intrinsic operator declared in the DEC system extension. + * sem_res.adb (Resolve_Logical_Op): operation is legal on signed types + if the operator is a VMS intrinsic. + * sem_eval.adb (Eval_Logical_Op): Operation is legal and be + constant-folded if the operands are signed and the operator is a VMS + intrinsic. + +2010-06-14 Robert Dewar + + * g-socket.adb, gnatcmd.adb: Minor reformatting. + +2010-06-14 Pascal Obry + + * s-finimp.adb: Fix typo. + * raise.h: Remove duplicate blank line. + +2010-06-14 Vincent Celier + + * prj-nmsc.adb (Add_Sources): Always set the object file and the + switches file names, as the configuration of the language may change + in an extending project. + (Process_Naming_Scheme): For sources of projects that are extended, set + the configuration of the language from the highest extending project + where the language is declared. + +2010-06-14 Gary Dismukes + + * sem_res.adb (Resolve_Call): For infinite recursion check, test + whether the called subprogram is inherited from a containing + subprogram. + (Same_Or_Aliased_Subprograms): New function + +2010-06-14 Ed Schonberg + + * sem_ch8.adb (End_Use_Type): Before indicating that an operator is not + use-visible, check whether it is a primitive for more than one type. + +2010-06-14 Robert Dewar + + * sem_ch3.adb (Copy_And_Swap): Copy Has_Pragma_Unmodified flag. + + * sem_ch7.adb (Preserve_Full_Attributes): Preserve + Has_Pragma_Unmodified flag. + +2010-06-14 Thomas Quinot + + * g-sttsne-locking.adb, g-sttsne-locking.ads, g-sttsne.ads, + g-sttsne-vxworks.adb, g-sttsne-dummy.ads: Removed. Mutual exclusion is + now done in GNAT.Sockets if necessary. + * gsocket.h, g-socket.adb, g-sothco.ads (GNAT.Sockets.Get_XXX_By_YYY): + Ensure mutual exclusion for netdb operations if the target platform + requires it. + (GNAT.Sockets.Thin_Common): New binding for getXXXbyYYY, treating + struct hostent as an opaque type to improve portability. + * s-oscons-tmplt.c, socket.c: For the case of Vxworks, emulate + gethostbyYYY using proprietary VxWorks API so that a uniform interface + is available for the Ada side. + * gcc-interface/Makefile.in: Remove g-sttsne-* + * gcc-interface/Make-lang.in: Update dependencies. + +2010-06-14 Vincent Celier + + * gnatcmd.adb (Mapping_File): New function. + +2010-06-14 Javier Miranda + + * sem_ch3.adb (Derive_Subprograms): Remove over-restrictive assertion. + +2010-06-14 Arnaud Charlet + + * ali.adb: Fix typo. + * s-auxdec-vms-alpha.adb, scng.ads: Minor reformatting. + +2010-06-14 Ed Schonberg + + * sem_ch12.adb: Make Mark_Context transitive, and apply to subprogram + instances. + + * sem_ch8.adb (Find_Expanded_Name): If a candidate compilation unit in + the context does not have a homonym of the selector, emit default + error message. + +2010-06-14 Robert Dewar + + * sem.adb, sem_ch12.adb, sem_util.adb: Minor reformatting and + comment addition. + +2010-06-14 Arnaud Charlet + + * lib-xref.ads: Doc updates: + - Allocate 'Q' for #include entity kind + - Free 'Z' + - Allocate 'g' for regular macros + - Allocate 'G' for function-like macros + +2010-06-14 Ed Schonberg + + * sinfo.ads, sinfo.adb (Withed_Body): New attribute of a with_clause. + Indicates that there is an instantiation in the current unit that + loaded the body of the unit denoted by the with_clause. + * sem_ch12.adb (Mark_Context): When instanting a generic body, check + whether a with_clause in the current context denotes the unit that + holds the generic declaration, and mark the with_clause accordingly. + (Instantiate_Package_Body): call Mark_Context. + * sem.adb (Process_Bodies_In_Context): Use Withed_Body to determine + whether a given body should be traversed before the spec of the main + unit. + +2010-06-14 Ed Falis + + * sysdep.c: Fix 653 build against vThreads headers. + +2010-06-14 Robert Dewar + + * sinfo.ads: Minor reformatting. + +2010-06-14 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Body): Do not check conformance when + the spec has been generated for a body without spec that carries an + Inline_Always pragma. + +2010-06-14 Arnaud Charlet + + * lib-xref.ads: Documentation change: allocate 'Z' letter to C/C++ + macro. + +2010-06-14 Jerome Lambourg + + * exp_dbug.adb (Debug_Renaming_Declaration): Do not output any debug + declaration for VMs, as those are useless and might lead to duplicated + local variable names in the generated code. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-06-14 Robert Dewar + + * opt.ads, sem.adb, sem_elab.adb: Minor reformatting + +2010-06-14 Robert Dewar + + * exp_aggr.adb (Has_Address_Clause): Moved to Exp_Util, and there it + is renamed as Has_Following_Address_Clause. + * exp_ch3.adb (Needs_Simple_Initialization): Add Consider_IS argument + to allow the caller to avoid Initialize_Scalars having an effect. + (Expand_N_Object_Declaration): Do not do Initialize_Scalars stuff for + scalars with an address clause specified. + * exp_ch3.ads (Needs_Simple_Initialization): Add Consider_IS argument + to allow the caller to avoid Initialize_Scalars having an effect. + * exp_util.adb (Has_Following_Address_Clause): Moved here from Exp_Aggr + (where it was called Has_Address_Clause). + * exp_util.ads (Has_Following_Address_Clause): Moved here from Exp_Aggr + (where it was called Has_Address_Clause). + * freeze.adb (Warn_Overlay): Suppress message about overlaying causing + problems for Initialize_Scalars (since we no longer initialize objects + with an address clause. + +2010-06-14 Robert Dewar + + * exp_prag.adb (Expand_Pragma_Check): Set Loc of generated code from + condition. + +2010-06-14 Gary Dismukes + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set Debug_Info_Needed + on the entity of an implicitly generated postcondition procedure. + +2010-06-14 Thomas Quinot + + * sem_ch7.adb (Preserve_Full_Attributes): Propagate + Discriminant_Constraint elist from full view to private view. + +2010-06-14 Robert Dewar + + * sem_res.adb: Minor reformatting. + +2010-06-14 Ed Schonberg + + * sem.adb: New version of unit traversal. + + * sem_elab.adb (Check_Internal_Call): Do not place a call appearing + within a generic unit in the table of delayed calls. + +2010-06-14 Robert Dewar + + * gnatcmd.adb, sem_util.adb, exp_ch3.adb: Minor reformatting + +2010-06-14 Ed Schonberg + + * sem_ch12.adb (Save_References): If an identifier has been rewritten + during analysis as an explicit dereference, keep the reference implicit + in the generic, but preserve the entity if global. This prevents + malformed generic trees in the presence of some nested generics. + +2010-06-14 Sergey Rybin + + * gnat_ugn.texi: For the GNAT driver, clarify the effect of calling the + tool with '-files=' option. Also fix some small errors (wrong brackets) + +2010-06-14 Vincent Celier + + * gnatbind.adb: Call Scan_ALI with Directly_Scanned set to True for all + the ALI files on the command line. + + * ali.adb (Scan_ALI): Set component Directly_Scanned of the unit(s) to + the same value as the parameter of the same name. + * ali.ads (Scan_ALI): New Boolean parameter Directly_Scanned, defaulted + to False. + * bindgen.adb (Gen_Versions_Ada): Never emit version symbols for + Stand-Alone Library interfaces. When binding Stand-Alone Libraries, + emit version symbols only for the units of the library. + (Gen_Versions_C): Ditto. + +2010-06-14 Gary Dismukes + + * sem_ch4.adb: Fix typo. + +2010-06-14 Vasiliy Fofanov + + * s-oscons-tmplt.c (IOV_MAX): redefine on Tru64 and VMS since the + vector IO doesn't work at default value properly. + +2010-06-14 Doug Rupp + + * s-stoele.adb: Remove unnecessary qualification of To_Address for VMS. + +2010-06-14 Vincent Celier + + * gnatcmd.adb (Check_Files): Do not invoke the tool with all the + sources of the project if a switch -files= is used. + +2010-06-14 Thomas Quinot + + * exp_attr.adb: Minor reformatting. + +2010-06-14 Gary Dismukes + + * gnat_ugn.texi: Minor typo fixes and wording changes. + +2010-06-14 Ed Schonberg + + * sem_ch4.adb (Analyze_One_Call): If the call has been rewritten from a + prefixed form, do not re-analyze first actual, which may need an + implicit dereference. + * sem_ch6.adb (Analyze_Procedure_Call): If the call is given in + prefixed notation, the analysis will rewrite the node, and possible + errors appear in the rewritten name of the node. + * sem_res.adb: If a call is ambiguous because its first parameter is + an overloaded call, report list of candidates, to clarify ambiguity of + enclosing call. + +2010-06-14 Doug Rupp + + * s-auxdec-vms-alpha.adb: New package body implementing legacy + VAX instructions with Asm insertions. + * s-auxdec-vms_64.ads: Inline VAX queue functions + * s-stoele.adb: Resolve some ambiguities in To_Addresss with s-suxdec + that show up only on VMS. + * gcc-interface/Makefile.in: Provide translation for + s-auxdec-vms-alpha.adb. + +2010-06-14 Olivier Hainque + + * initialize.c (VxWorks section): Update comments. + +2010-06-14 Robert Dewar + + * a-convec.adb, sem_prag.adb, checks.adb: Minor reformatting. + +2010-06-14 Eric Botcazou + + * init.c: Code clean up. + +2010-06-14 Ed Schonberg + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Address): Do + not insert address clause in table for later validation if type of + entity is generic, to prevent possible spurious errors. + + * sem_ch8.adb: Code clean up. + +2010-06-14 Ben Brosgol + + * gnat_ugn.texi: Expanded @ovar macro inline to solve problem with + texi2pdf and texi2html. + Document how to change scheduling properties on HP-UX. + +2010-06-14 Thomas Quinot + + * g-socket.ads: Remove misleading comments. + +2010-06-14 Jerome Lambourg + + * sem_prag.adb (Check_Duplicated_Export_Name): Remove check for + CLI_Target as this prevents proper detection of exported names + duplicates when the exported language is different to CIL. + (Process_Interface_Name): Add check for CIL convention exports, + replacing the old one from Check_Duplicated_Export_Name. + +2010-06-14 Matthew Heaney + + * a-coinve.adb, a-convec.adb (operator "&"): Check both that new length + and new last satisfy constraints. + (Delete_Last): prevent overflow for subtraction of index values + (To_Vector): prevent overflow for addition of index values + +2010-06-14 Ed Schonberg + + * sem_ch4.adb (Complete_Object_Operation): After analyzing the + rewritten call, preserve the resulting type to prevent spurious errors, + when the call is implicitly dereferenced in the context of an in-out + actual. + + * checks.adb (Apply_Discriminant_Check): If the target of the + assignment is a renaming of a heap object, create constrained type for + it to apply check. + +2010-06-14 Pascal Obry + + * prj-proc.adb: Fix copy of object directory for extending projects. + +2010-06-14 Jose Ruiz + + * init.c (__gnat_alternate_stack): Define this space for PowerPC linux + (__gnat_install_handler, PowerPC linux): Activate the alternative + signal stack. + +2010-06-13 Gerald Pfeifer + + * gnat_rm.texi: Move to GFDL version 1.3. + * gnat-style.texi: Ditto. + * gnat_ugn.texi: Ditto. + +2010-06-12 Kai Tietz + + PR ada/43731 + * gcc-interface/Makefile.in: Add rules for multilib x86/x64 + mingw targets. + +2010-06-11 Alexandre Oliva + + * gcc-interface/utils.c (update_pointer_to): Initialize last. + +2010-06-09 Eric Botcazou + + * gcc-interface/ada-tree.h: Fix formatting nits. + +2010-06-08 Laurynas Biveinis + + * gcc-interface/utils.c (init_gnat_to_gnu): Use typed GC + allocation. + (init_dummy_type): Likewise. + (gnat_pushlevel): Likewise. + + * gcc-interface/trans.c (Attribute_to_gnu): Likewise. + (Subprogram_Body_to_gnu): Likewise. + (Compilation_Unit_to_gnu): Likewise. + (start_stmt_group): Likewise. + (extract_encoding): Likewise. + (decode_name): Likewise. + + * gcc-interface/misc.c (gnat_printable_name): Likewise. + + * gcc-interface/decl.c (annotate_value): Likewise. + + * gcc-interface/ada-tree.h (struct lang_type): Add variable_size + GTY option. + (struct lang_decl): Likewise. + (SET_TYPE_LANG_SPECIFIC): Use typed GC allocation. + (SET_DECL_LANG_SPECIFIC): Likewise. + +2010-06-04 Eric Botcazou + + * gnatlink.adb (gnatlink): Remove support for -fsjlj switch. + * gcc-interface/lang-specs.h: Likewise. + +2010-06-03 H.J. Lu + + PR c++/44294 + * gcc-interface/decl.c (MAX_FIXED_MODE_SIZE): Removed. + +2010-06-01 Arnaud Charlet + + * gnat_ugn.texi: Improve doc on -fdump-ada-spec, mention limitations. + +2010-05-30 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Reuse the + TYPE_DECL of the equivalent type instead of building a new one. + +2010-05-30 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust warning message. + Fix nits in comments. + * gcc-interface/misc.c (gnat_init_gcc_eh): Likewise. + * gcc-interface/trans.c (gigi): Likewise. + (Attribute_to_gnu): Likewise. + (Case_Statement_to_gnu): Likewise. + (gnat_to_gnu): Adjust warning message. + * gcc-interface/utils.c (create_var_decl_1): Fix nits in comments. + (build_vms_descriptor32): Likewise. + +2010-05-27 Steven Bosscher + + * gcc-interface/decl.c: Pretend to be a backend file by undefining + IN_GCC_FRONTEND (still need rtl.h here). + +2010-05-26 Steven Bosscher + + * gcc-interface/trans.c: Do not include rtl.h, insclude libfuncs.h. + (gigi): Adjust call to set_stack_check_libfunc. + +2010-05-26 Steven Bosscher + + * gcc-interface/utils.c: Do not include rtl.h. + +2010-05-25 Steven Bosscher + + * gcc-interface/utils.c: Do not include function.h, pointer-set.h, + and gimple.h. Explain why rtl.h has to be included. + (handle_vector_size_attribute): Call reconstruct_complex_type directly. + * gcc-interface/targtyps.c: Do not include tm_p.h + * gcc-interface/utils2.c: Do not include flags.h. + * gcc-interface/trans.c: Do not include expr.h. Include rtl.h instead, + and explain why it has to be included. + * gcc-interface/misc.c: Do not include expr.h, libfuncs.h, cgraph.h, + and optabs.h. + Include function.h and explain why. Explain why except.h is included. + (enumerate_modes): Remove unused function. + * gcc-interface/gigi.h (enumerate_modes): Remove prototype. + * gcc-interface/Make-lang.in: Update dependencies. + +2010-05-25 Joseph Myers + + * gcc-interface/misc.c (internal_error_function): Add context + parameter. Use it to access show_column flag and instead of using + global_dc. Call warn_if_plugins. + * gcc-interface/Make-lang.in (ada/misc.o): Update dependencies. + +2010-05-19 Eric Botcazou + + * gcc-interface/misc.c (LANG_HOOKS_DEEP_UNSHARING): Redefine. + * gcc-interface/trans.c (unshare_save_expr): Delete. + (gigi): Do not unshare trees under SAVE_EXPRs here. + +2010-05-18 Nathan Froyd + + * gcc-interface/trans.c (call_to_gnu): Use build_call_vec instead of + build_call_list. + * gcc-interface/utils.c (build_function_stub): Likewise. + +2010-05-16 Manuel López-Ibáñez + + * gcc-interface/misc.c (gnat_handle_option): Remove special logic + for Wuninitialized without -O. + +2010-05-16 Eric Botcazou + + * gcc-interface/gigi.h (enum standard_datatypes): Add new value + ADT_exception_data_name_id. + (exception_data_name_id): New define. + * gcc-interface/trans.c (gigi): Initialize it. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Use the standard + exception type for standard exception definitions. Do not make them + volatile. + : Equate fields of types associated with an exception + definition to those of the standard exception type. + +2010-05-13 Andreas Schwab + + * tracebak.c (__gnat_backtrace): Mark top_stack with ATTRIBUTE_UNUSED. + +2010-05-12 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Tidy up + code, improve comments and fix formatting nits. + +2010-05-12 Eric Botcazou + + * gcc-interface/utils.c (update_pointer_to): Return early if the old + pointer already points to the new type. Chain the old pointer and its + variants at the end of new pointer's chain after updating them. + +2010-05-10 Eric Botcazou + + * exp_disp.adb (Make_Tags): Mark the imported view of dispatch tables + built for interfaces. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Use + imported_p instead of Is_Imported when considering constants. + Do not promote alignment of exported objects. + : Strip all suffixes for dispatch table entities. + +2010-05-08 Eric Botcazou + + * exp_disp.adb (Make_Tags): Mark the imported view of dispatch tables. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Make imported + constants really constant. + : Strip the suffix for dispatch table entities. + +2010-05-08 Eric Botcazou + + * gcc-interface/decl.c (make_aligning_type): Declare the type. + +2010-05-08 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Create variables for size + expressions of variant part of record types declared at library level. + +2010-05-08 Eric Botcazou + + * gcc-interface/gigi.h (create_field_decl): Move PACKED parameter. + * gcc-interface/utils.c (create_field_decl): Move PACKED parameter. + (rest_of_record_type_compilation): Adjust call to create_field_decl. + (make_descriptor_field): Likewise and pass correctly typed constants. + (build_unc_object_type): Likewise. + (unchecked_convert): Likewise. + * gcc-interface/decl.c (elaborate_expression_2): New static function. + (gnat_to_gnu_entity): Use it to make alignment factors explicit. + Adjust call to create_field_decl. + (make_aligning_type): Likewise. + (make_packable_type): Likewise. + (maybe_pad_type): Likewise. + (gnat_to_gnu_field): Likewise. + (components_to_record): Likewise. + (create_field_decl_from): Likewise. + (create_variant_part_from): Remove superfluous test. + * gcc-interface/trans.c (gigi): Adjust call to create_field_decl. + +2010-05-08 Eric Botcazou + + * gcc-interface/gigi.h (build_unc_object_type): Add DEBUG_INFO_P param. + (build_unc_object_type_from_ptr): Likewise. + * gcc-interface/utils.c (build_unc_object_type): Add DEBUG_INFO_P param + and pass it to create_type_decl. Declare the type. Simplify. + (build_unc_object_type_from_ptr): Add DEBUG_INFO_P parameter and pass + it to build_unc_object_type. + * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust to above change. + * gcc-interface/trans.c (Attribute_to_gnu): Likewise. + (gnat_to_gnu): Likewise. + * gcc-interface/utils2.c (build_allocator): Likewise. + +2010-05-07 Eric Botcazou + + PR 40989 + * gcc-interface/misc.c (gnat_handle_option): Fix long line. + +2010-05-06 Rainer Orth + + * gcc-interface/Makefile.in: Removed mips-sgi-irix5* support. + +2010-05-06 Manuel López-Ibáñez + + PR 40989 + * gcc-interface/misc.c (gnat_handle_option): Add argument kind. + +2010-05-02 Giuseppe Scrivano + + * gnathtml.pl: Use 755 as mask for new directories. + +2010-04-28 Eric Botcazou + + * gcc-interface/trans.c (gnat_gimplify_expr) : Uniquize + constant constructors before taking their address. + +2010-04-25 Eric Botcazou + + * exp_dbug.ads: Fix outdated description. Mention link between XVS + and XVZ objects. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Set + XVZ variable as unit size of XVS type. + (maybe_pad_type): Likewise. + +2010-04-25 Eric Botcazou + + * gcc-interface/trans.c (gnat_to_gnu) : Do not + use memmove if the array type is bit-packed. + +2010-04-18 Eric Botcazou + + * gcc-interface/misc.c (gnat_init): Remove second argument in call to + build_common_tree_nodes. + +2010-04-18 Ozkan Sezer + + * gsocket.h: Make sure that winsock2.h is included before windows.h. + +2010-04-17 Eric Botcazou + + * gcc-interface/utils2.c (build_unary_op) : Do not + issue warning. + +2010-04-17 Eric Botcazou + + * uintp.h (UI_Lt): Declare. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do the size + computation in sizetype. + : Use unified handling for all index types. Do not + generate MAX_EXPR-based expressions, only COND_EXPR-based ones. Add + bypass for PATs. + (annotate_value): Change test for negative values. + (validate_size): Apply test for negative values on GNAT nodes. + (set_rm_size): Likewise. + * gcc-interface/misc.c (gnat_init): Set unsigned types for sizetypes. + * gcc-interface/utils.c (rest_of_record_type_compilation): Change test + for negative values. + (max_size) : Do not reassociate a COND_EXPR on the LHS. + (builtin_type_for_size): Adjust definition of signed_size_type_node. + * gcc-interface/utils2.c (compare_arrays): Optimize comparison of + lengths against zero. + +2010-04-17 Eric Botcazou + + * back-end.adb (Call_Back_End): Pass Standard_Character to gigi. + * gcc-interface/gigi.h (gigi): Add standard_character parameter. + (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE, + LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE, + LONG_DOUBLE_TYPE_SIZE, SIZE_TYPE): Delete. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Call + rm_size. + * gcc-interface/misc.c (gnat_init): Set signedness of char as per + flag_signed_char. Tag sizetype with "size_type" moniker. + * gcc-interface/trans.c (gigi): Add standard_character parameter. + Remove useless built-in types. Equate unsigned_char_type_node to + Standard.Character. Use it instead of char_type_node throughout. + (Attribute_to_gnu): Likewise. + (gnat_to_gnu): Likewise. + * gcc-interface/utils2.c (build_call_raise): Likewise. + +2010-04-17 Eric Botcazou + + * gcc-interface/gigi.h (enum standard_datatypes): Add new values + ADT_sbitsize_one_node and ADT_sbitsize_unit_node. + (sbitsize_one_node): New macro. + (sbitsize_unit_node): Likewise. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Fix + latent bug in the computation of subrange_p. Fold wider_p predicate. + (cannot_be_superflat_p): Use an explicitly signed 64-bit type to do + the final comparison. + (make_aligning_type): Build real negation and use sizetype throughout + the offset computation. + (maybe_pad_type): Do not issue the warning when the new size expression + is too complex. + (annotate_value) : Simplify code handling negative values. + * gcc-interface/misc.c (gnat_init): Initialize sbitsize_one_node and + sbitsize_unit_node. + * gcc-interface/trans.c (Attribute_to_gnu) : Fold + double negation. + (gnat_to_gnu) : Likewise. + * gcc-interface/utils.c (convert): Use sbitsize_unit_node. + * gcc-interface/utils2.c (compare_arrays): Compute real lengths and use + constants in sizetype. Remove dead code and tweak comments. Generate + equality instead of inequality comparisons for zero length tests. + +2010-04-16 Eric Botcazou + + * gcc-interface/gigi.h (gnat_init_decl_processing): Delete. + * gcc-interface/decl.c (gnat_to_gnu_entity): Constify a few variables. + : Do not create the fake PARM_DECL if no debug info is needed. + Do not create the corresponding VAR_DECL of a CONST_DECL for debugging + purposes if no debug info is needed. + Fix formatting. Reorder and add comments. + * gcc-interface/trans.c (gnat_to_gnu) : Constify + variable and remove obsolete comment. + * gcc-interface/utils.c (convert_vms_descriptor64): Tweak comment. + (convert_vms_descriptor32): Likewise. + (convert): Remove dead code. + : Pass the field instead of its name to build + the reference to the P_ARRAY pointer. + : Likewise. + (maybe_unconstrained_array) : Likewise. + (gnat_init_decl_processing): Delete, move contents to... + * gcc-interface/misc.c (gnat_init): ...here. + +2010-04-16 Eric Botcazou + + * gcc-interface/trans.c (unchecked_conversion_nop): Handle function + calls. Return true for conversion from a record subtype to its type. + +2010-04-16 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Use boolean_type_node in + lieu of integer_type_node for boolean operations. + (choices_to_gnu): Likewise. + * gcc-interface/trans.c (Attribute_to_gnu): Likewise. + (Loop_Statement_to_gnu): Likewise. + (establish_gnat_vms_condition_handler): Likewise. + (Exception_Handler_to_gnu_sjlj): Likewise. + (gnat_to_gnu): Likewise. + (build_unary_op_trapv): Likewise. + (build_binary_op_trapv): Likewise. + (emit_range_check): Likewise. + (emit_index_check): Likewise. + (convert_with_check): Likewise. + * gcc-interface/utils.c (convert_vms_descriptor64): Likewise. + (convert_vms_descriptor32): Likewise. + (convert_vms_descriptor): Likewise. + * gcc-interface/utils2.c (nonbinary_modular_operation): Likewise. + (compare_arrays): Use boolean instead of integer constants. + (build_binary_op) : New case. Check that the result type + is a boolean type. + : Remove obsolete assertion. + : Check that the result type is a boolean type. + : Delete. + : Check that the result type is a boolean type. + (build_unary_op): Use boolean_type_node in lieu of integer_type_node + for boolean operations. + (fill_vms_descriptor): Likewise. Fix formatting nits. + +2010-04-16 Eric Botcazou + + * gcc-interface/ada-tree.def (LOOP_STMT): Change to 4-operand nodes. + * gcc-interface/ada-tree.h (LOOP_STMT_TOP_COND, LOOP_STMT_BOT_COND): + Merge into... + (LOOP_STMT_COND): ...this. + (LOOP_STMT_BOTTOM_COND_P): New flag. + (LOOP_STMT_TOP_UPDATE_P): Likewise. + * gcc-interface/trans.c (can_equal_min_or_max_val_p): New function. + (can_equal_min_val_p): New static inline function. + (can_equal_max_val_p): Likewise. + (Loop_Statement_to_gnu): Use build4 in lieu of build5 and adjust to + new LOOP_STMT semantics. Use two different strategies depending on + whether optimization is enabled to translate the loop. + (gnat_gimplify_stmt) : Adjust to new LOOP_STMT semantics. + +2010-04-16 Eric Botcazou + + * uintp.adb (UI_From_Dint): Remove useless code. + (UI_From_Int): Likewise. + * uintp.h: Reorder declarations. + (UI_From_gnu): Declare. + (UI_Base): Likewise. + (Vector_Template): Likewise. + (Vector_To_Uint): Likewise. + (Uint_0): Remove. + (Uint_1): Likewise. + * gcc-interface/gigi.h: Tweak comments. + * gcc-interface/cuintp.c (UI_From_gnu): New global function. + * gcc-interface/decl.c (maybe_pad_type): Do not warn if either size + overflows. + (annotate_value) : Call UI_From_gnu. + * gcc-interface/trans.c (post_error_ne_num): Call post_error_ne. + (post_error_ne_tree): Call UI_From_gnu and post_error_ne. + * gcc-interface/utils.c (max_size) : Do not special-case + TYPE_MAX_VALUE. + +2010-04-16 Eric Botcazou + + * gcc-interface/decl.c (make_type_from_size) : Just copy + TYPE_NAME. + * gcc-interface/trans.c (smaller_packable_type_p): Rename into... + (smaller_form_type_p): ...this. Change parameter and variable names. + (call_to_gnu): Use the nominal type of the parameter to create the + temporary if it's a smaller form of the actual type. + (addressable_p): Return false if the actual type is integral and its + size is greater than that of the expected type. + +2010-04-15 Eric Botcazou + + * gcc-interface/cuintp.c (UI_To_gnu): Fix long line. + * gcc-interface/gigi.h (MARK_VISITED): Skip objects of constant class. + (process_attributes): Delete. + (post_error_ne_num): Change parameter name. + * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force debug info + with -g3. Remove a couple of obsolete lines. Minor tweaks. + If type annotating mode, operate on trees to compute the adjustment to + the sizes of tagged types. Fix long line. + (cannot_be_superflat_p): Tweak head comment. + (annotate_value): Fold local constant. + (set_rm_size): Fix long line. + * gcc-interface/trans.c (Identifier_to_gnu): Rework comments. + (Attribute_to_gnu): Fix long line. + : Remove useless assertion. + Reorder statements. Use size_binop routine. + (Loop_Statement_to_gnu): Use build5 in lieu of build_nt. + Create local variables for the label and the test. Tweak comments. + (Subprogram_Body_to_gnu): Reset cfun to NULL. + (Compilation_Unit_to_gnu): Use the Sloc of the Unit node. + (process_inlined_subprograms): Integrate into... + (Compilation_Unit_to_gnu): ...this. + (gnat_to_gnu): Fix long line. + (post_error_ne_num): Change parameter name. + * gcc-interface/utils.c (process_attributes): Static-ify. + : Set input_location before proceeding. + (create_type_decl): Add comment. + (create_var_decl_1): Process the attributes after adding the VAR_DECL + to the current binding level. + (create_subprog_decl): Likewise for the FUNCTION_DECL. + (end_subprog_body): Do not reset cfun to NULL. + (build_vms_descriptor32): Fix long line. + (build_vms_descriptor): Likewise. + (handle_nonnull_attribute): Likewise. + (convert_vms_descriptor64): Likewise. + * gcc-interface/utils2.c (fill_vms_descriptor): Fix long line. + (gnat_protect_expr): Fix thinko. + +2010-04-15 Eric Botcazou + + * gcc-interface/trans.c (gigi): Set DECL_IGNORED_P on EH functions. + (gnat_to_gnu) : Restore the value of input_location + before translating the top-level node. + (lvalue_required_p) : Return 1 if !constant. + : Likewise. + : Likewise. + : Likewise. + (call_to_gnu): Remove kludge. + (gnat_to_gnu) : When not optimizing, force labels + associated with user returns to be preserved. + (gnat_to_gnu): Add special code to deal with boolean rvalues. + * gcc-interface/utils2.c (compare_arrays): Set input_location on all + comparisons. + (build_unary_op) : Call build_fold_addr_expr. + : Call build_fold_indirect_ref. + +2010-04-15 Joel Sherrill + + * g-socket.adb: A target can have multiple missing errno's. This + will result in multiple errno's being defined as -1. Because of this + we can not use a case but must use a series of if's to avoid + a duplicate case error in GNAT.Sockets.Resolve_Error. + +2010-04-15 Eric Botcazou + + * gcc-interface/trans.c (call_to_gnu): Open a nesting level if this is + a statement. Otherwise, if at top-level, push the processing of the + elaboration routine. In the misaligned case, issue the error messages + again on entry and create the temporary explicitly. Do not issue them + for CONSTRUCTORs. + For a function call, emit the range check if necessary. + In the copy-in copy-out case, create the temporary for the return + value explicitly. + Do not unnecessarily convert by-ref parameters to the formal's type. + Remove obsolete guards in conditions. + (gnat_to_gnu) : For a function call, pass the + target to call_to_gnu in all cases. + (gnat_gimplify_expr) : Remove handling of SAVE_EXPR. + (addressable_p) : Return false if not static. + : New case. + * gcc-interface/utils2.c (build_unary_op) : Fold a compound + expression if it has unconstrained array type. + (gnat_mark_addressable) : New case. + (gnat_stabilize_reference) : Stabilize operands on an + individual basis. + +2010-04-15 Eric Botcazou + + * gcc-interface/trans.c (gigi): Do not start statement group. + (Compilation_Unit_to_gnu): Set current_function_decl to NULL. + Start statement group and push binding level here... + (gnat_to_gnu) : ...and not here. + Do not push fake contexts at top level. Remove redundant code. + (call_to_gnu): Rename a local variable and constify another. + * gcc-interface/utils.c (gnat_pushlevel): Fix formatting nits. + (set_current_block_context): Set it as the group's block. + (gnat_init_decl_processing): Delete unrelated init code. + (end_subprog_body): Use NULL_TREE. + +2010-04-15 Eric Botcazou + + * gcc-interface/trans.c (call_to_gnu): Do not unnecessarily force + side-effects of actual parameters before the call. + +2010-04-15 Eric Botcazou + + * gcc-interface/decl.c (validate_size): Reorder, remove obsolete test + and warning. + (set_rm_size): Reorder and remove obsolete test. + +2010-04-14 Eric Botcazou + + * gcc-interface/gigi.h: Reorder declarations and tweak comments. + (gigi): Adjust ATTRIBUTE_UNUSED markers. + * gcc-interface/gadaint.h: New file. + * gcc-interface/trans.c: Include it in lieu of adaint.h. Reorder. + (__gnat_to_canonical_file_spec): Remove declaration. + (number_names): Delete. + (number_files): Likewise. + (gigi): Adjust. + * gcc-interface/Make-lang.in (ada/trans.o): Adjust dependencies to + above change. + +2010-04-14 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Fix + comment. + * gcc-interface/trans.c (process_freeze_entity): Use local copy of + Ekind. Return early for class-wide types. Do not compute initializer + unless necessary. Reuse the tree for an associated class-wide type + only if processing its root type. + +2010-04-13 Joel Sherrill + + * gsocket.h: Run-time can no longer be built without network + OS headers available. Changing RTEMS GNAT build procedure to + reflect this and letting run-time build use network .h files. + +2010-04-13 Duncan Sands + + * gcc-interface/misc.c (gnat_eh_type_covers): Remove. + * gcc-interface/trans.c (Exception_Handler_to_gnu_zcx): Update comment. + +2010-04-13 Eric Botcazou + + * gcc-interface/gigi.h (standard_datatypes): Add ADT_parent_name_id. + (parent_name_id): New macro. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Use it. + * gcc-interface/trans.c (gigi): Initialize it. + (lvalue_required_p) : New case. + : Likewise. + : Likewise. + * gcc-interface/utils.c (convert): Try to properly upcast tagged types. + +2010-04-13 Eric Botcazou + + * gcc-interface/ada-tree.h (TYPE_BY_REFERENCE_P): Delete. + (DECL_CONST_ADDRESS_P): New macro. + (SET_DECL_ORIGINAL_FIELD_TO_FIELD): Likewise. + (SAME_FIELD_P): Likewise. + * gcc-interface/decl.c (constructor_address_p): New static function. + (gnat_to_gnu_entity) : Set DECL_CONST_ADDRESS_P according to + the return value of above function. + (gnat_to_gnu_entity) : Force BLKmode for all types + passed by reference. + : Likewise. + Set TREE_ADDRESSABLE on the type if it passed by reference. + (make_packable_type): Use SET_DECL_ORIGINAL_FIELD_TO_FIELD. + (create_field_decl_from): Likewise. + (substitute_in_type): Likewise. + (purpose_member_field): Use SAME_FIELD_P. + * gcc-interface/misc.c (must_pass_by_ref): Test TREE_ADDRESSABLE. + * gcc-interface/trans.c (lvalue_required_p): Add ADDRESS_OF_CONSTANT + parameter and adjust recursive calls. + : New case. + : Return 1 if the object is of a class-wide type. + Adjust calls to lvalue_required_p. Do not return the initializer of a + DECL_CONST_ADDRESS_P constant if an lvalue is required for it. + (call_to_gnu): Delay issuing error message for a misaligned actual and + avoid the associated back-end assertion. Test TREE_ADDRESSABLE. + (gnat_gimplify_expr) : Handle non-static constructors. + * gcc-interface/utils.c (make_dummy_type): Set TREE_ADDRESSABLE if the + type is passed by reference. + (convert) : Convert in-place in more cases. + * gcc-interface/utils2.c (build_cond_expr): Drop TYPE_BY_REFERENCE_P. + (build_simple_component_ref): Use SAME_FIELD_P. + +2010-04-12 Eric Botcazou + + * gcc-interface/trans.c (Identifier_to_gnu): Use boolean variable. + (call_to_gnu): Test gigi's flag TYPE_BY_REFERENCE_P instead of calling + front-end's predicate Is_By_Reference_Type. Use consistent order and + remove ??? comment. Use original conversion in all cases, if any. + * gcc-interface/utils.c (make_dummy_type): Minor tweak. + (convert): Use local copy in more cases. + : Remove deactivated code. + (unchecked_convert): Use a couple of local copies. + +2010-04-11 Eric Botcazou + + * gcc-interface/trans.c (lvalue_required_for_attribute_p): New static + function. + (lvalue_required_p) : Call it. + (gnat_to_gnu) : Prevent build_component_ref from + folding the result only if lvalue_required_for_attribute_p is true. + * gcc-interface/utils.c (maybe_unconstrained_array): Pass correctly + typed constant to build_component_ref. + (unchecked_convert): Likewise. + * gcc-interface/utils2.c (maybe_wrap_malloc): Likewise. + (build_allocator): Likewise. + +2010-04-11 Eric Botcazou + + * gcc-interface/utils2.c (build_cond_expr): Take the address and + dereference if the result type is passed by reference. + +2010-04-11 Eric Botcazou + + * gcc-interface/trans.c (Case_Statement_to_gnu): Bool-ify variable. + (gnat_to_gnu) : When not optimizing, generate a + goto to the next statement. + +2010-04-09 Eric Botcazou + + * gcc-interface/gigi.h (maybe_variable): Delete. + (protect_multiple_eval): Likewise. + (maybe_stabilize_reference): Likewise. + (gnat_save_expr): Declare. + (gnat_protect_expr): Likewise. + (gnat_stabilize_reference): Likewise. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Use + gnat_stabilize_reference. + (maybe_variable): Delete. + (elaborate_expression_1): Use gnat_save_expr. + * gcc-interface/trans.c (Attribute_to_gnu): Use gnat_protect_expr. + (call_to_gnu): Pass NULL to gnat_stabilize_reference. + (gnat_to_gnu) : Use gnat_save_expr. + : Use gnat_protect_exp. + : Pass NULL to gnat_stabilize_reference. + : Use gnat_protect_expr. + Pass NULL to gnat_stabilize_reference. + (build_unary_op_trapv): Use gnat_protect_expr. + (build_binary_op_trapv): Likewise. + (emit_range_check): Likewise. + (emit_index_check): Likewise. + (convert_with_check): Likewise. + (protect_multiple_eval): Move to utils2.c file. + (maybe_stabilize_reference): Merge into... + (gnat_stabilize_reference): ...this. Move to utils2.c file. + (gnat_stabilize_reference_1): Likewise. + * gcc-interface/utils.c (convert_to_fat_pointer): Use gnat_protect_expr + instead of protect_multiple_eval. + * gcc-interface/utils2.c (compare_arrays): Likewise. + (nonbinary_modular_operation): Likewise. + (maybe_wrap_malloc): Likewise. + (build_allocator): Likewise. + (gnat_save_expr): New function. + (gnat_protect_expr): Rename from protect_multiple_eval. Early return + in common cases. Propagate TREE_READONLY onto dereferences. + (gnat_stabilize_reference_1): Move from trans.c file. + (gnat_stabilize_reference): Likewise. + +2010-04-09 Eric Botcazou + + * gcc-interface/gigi.h (gnat_mark_addressable): Rename parameter. + * gcc-interface/decl.c (maybe_variable): Do not set TREE_STATIC on _REF + node. Use the type of the operand to set TREE_READONLY. + * gcc-interface/trans.c (Identifier_to_gnu): Do not set TREE_STATIC on + _REF node. Do not overwrite TREE_READONLY. + (call_to_gnu): Rename local variable and fix various nits. In the + copy-in/copy-out case, build the SAVE_EXPR manually. + (convert_with_check): Call protect_multiple_eval in lieu of save_expr + and fold the computations. + (protect_multiple_eval): Always save entire fat pointers. + (maybe_stabilize_reference): Minor tweaks. + (gnat_stabilize_reference_1): Likewise. Do not deal with tcc_constant, + tcc_type and tcc_statement. + * gcc-interface/utils.c (convert_to_fat_pointer): Call + protect_multiple_eval in lieu of save_expr. + (convert): Minor tweaks. + (maybe_unconstrained_array): Do not set TREE_STATIC on _REF node. + (builtin_type_for_size): Call gnat_type_for_size directly. + * gcc-interface/utils2.c (contains_save_expr_p): Delete. + (contains_null_expr): Likewise + (gnat_build_constructor): Do not call it. + (compare_arrays): Deal with all side-effects, use protect_multiple_eval + instead of gnat_stabilize_reference to protect the operands. + (nonbinary_modular_operation): Call protect_multiple_eval in lieu of + save_expr. + (maybe_wrap_malloc): Likewise. + (build_allocator): Likewise. + (build_unary_op) : Do not set TREE_STATIC on _REF node. + (gnat_mark_addressable): Rename parameter. + +2010-04-08 Eric Botcazou + + * gcc-interface/ada-tree.h (TYPE_RETURNS_UNCONSTRAINED_P): Rename into. + (TYPE_RETURN_UNCONSTRAINED_P): ...this. + (TYPE_RETURNS_BY_REF_P): Rename into. + (TYPE_RETURN_BY_DIRECT_REF_P): ...this. + (TYPE_RETURNS_BY_TARGET_PTR_P): Delete. + * gcc-interface/gigi.h (create_subprog_type): Adjust parameter names. + (build_return_expr): Likewise. + * gcc-interface/decl.c (gnat_to_gnu_entity) : + Rename local variables. If the return Mechanism is By_Reference, pass + return_by_invisible_ref_p to create_subprog_type instead of toggling + TREE_ADDRESSABLE. Test return_by_invisible_ref_p in order to annotate + the mechanism. Use regular return for contrained types with non-static + size and return by invisible reference for unconstrained return types + with default discriminants. Update comment. + * gcc-interface/trans.c (Subprogram_Body_to_gnu): If the function + returns by invisible reference, turn the RESULT_DECL into a pointer. + Do not handle DECL_BY_REF_P in the CICO case here. + (call_to_gnu): Remove code handling return by target pointer. For a + function call, if the return type has non-constant size, generate the + assignment with an INIT_EXPR. + (gnat_to_gnu) : Remove dead code in the CICO case. + If the function returns by invisible reference, build the copy return + operation manually. + (add_decl_expr): Initialize the variable with an INIT_EXPR. + * gcc-interface/utils.c (create_subprog_type): Adjust parameter names. + Adjust for renaming of macros. Copy the node only when necessary. + (create_subprog_decl): Do not toggle TREE_ADDRESSABLE on the return + type, only change DECL_BY_REFERENCE on the RETURN_DECL. + (convert_from_reference): Delete. + (is_byref_result): Likewise. + (gnat_genericize_r): Likewise. + (gnat_genericize): Likewise. + (end_subprog_body): Do not call gnat_genericize. + * gcc-interface/utils2.c (build_binary_op) : New case. + (build_return_expr): Adjust parameter names, logic and comment. + +2010-04-07 Eric Botcazou + + * exp_pakd.adb (Create_Packed_Array_Type): Always use a modular type + if the size is small enough. Propagate the alignment if there is an + alignment clause on the original array type. + * gcc-interface/decl.c (gnat_to_gnu_entity) + Deal with under-aligned packed array types. Copy the size onto the + justified modular type and don't lay it out again. Likewise for the + padding type built for other under-aligned subtypes. + * gcc-interface/utils.c (finish_record_type): Do not set a default mode + on the type. + +2010-04-07 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Set default + alignment on the RETURN type built for the Copy-In Copy-Out mechanism. + +2010-04-07 Eric Botcazou + + * gcc-interface/trans.c (call_to_gnu): In the return-by-target-ptr case + do not set the result type if there is a specified target and do not + convert the result in any cases. + (protect_multiple_eval): Make direct SAVE_EXPR for CALL_EXPR. + (maybe_stabilize_reference) : Merge with CALL_EXPR. + +2010-03-10 Eric Botcazou + + * gcc-interface/Makefile.in (SPARC/Solaris): Use sparcv8plus. + +2010-02-27 Eric Botcazou + + PR ada/42253 + * gcc-interface/utils2.c (build_binary_op) : Assert that fat + pointer base types are variant of each other. Apply special treatment + for null to fat pointer types in all cases. + +2010-01-28 Pascal Obry + + * s-win32.ads: Add some missing constants. + +2010-01-28 Vincent Celier + + * prj-attr-pm.adb (Add_Attribute): Do nothing if To_Package is + Unknown_Package. + +2010-01-28 Robert Dewar + + * gnat_rm.texi: Minor correction + +2010-01-27 Pascal Obry + + * g-awk.adb: ensure that an AWK session is reusable. + +2010-01-27 Vasiliy Fofanov + + * g-regist.adb (For_Every_Key): Fix previous change. + Minor reformatting. + +2010-01-27 Thomas Quinot + + * lib-writ.ads: Current version of spec for new N (note) ALI lines + +2010-01-27 Yannick Moy + + * a-cdlili.adb (Insert): Correct exception message when cursor + designates wrong list. + +2010-01-27 Vincent Celier + + * gnatcmd.adb: When there is only one main specified, the package + support Switches (
) and attribute Switches is specified for the + main, use these switches, instead of Default_Switches ("Ada"). + +2010-01-27 Robert Dewar + + * sem_prag.adb, par-prag.adb, snames.ads-tmpl: pragma Dimension initial + implementation. + * exp_disp.adb: Minor reformatting + +2010-01-27 Tristan Gingold + + * seh_init.c: Use __ImageBase instead of _ImageBase. + +2010-01-27 Javier Miranda + + * exp_disp.ads, exp_disp.adb (Expand_Interface_Thunk): Modify the + profile of interface thunks. The type of the controlling formal is now + the covered interface type (instead of the target tagged type). + +2010-01-27 Sergey Rybin + + * gnat_rm.texi, gnat_ugn.texi: Update gnatcheck doc. + +2010-01-27 Robert Dewar + + * sinput.ads, sinput.adb (Sloc_Range): Applies to all nodes, formal + changed from Expr to N. + +2010-01-26 Thomas Quinot + + * gnat_ugn.texi: Adjust documentation of -gnatz switches. + * usage.adb: Replace line for -gnatz with two lines for -gnatzc and + -gnatzr. + +2010-01-26 Vincent Celier + + * prj-attr.adb: Add new attribute Library_Install_Name_Option + Replace attribute Run_Path_Origin_Supported with Run_Path_Origin + * prj-nmsc.adb (Process_Project_Level_Simple_Attributes): Process + attributes Run_Path_Option and Library_Install_Name_Option. + * prj.ads (Project_Configuration): Replace component + Run_Path_Origin_Supported with component Run_Path_Origin. Add new + component Library_Install_Name_Option. + * snames.ads-tmpl: Add new standard name Library_Install_Name_Option + Replace Run_Path_Origin_Supported with Run_Path_Origin + +2010-01-26 Ed Schonberg + + * sem_ch8.adb (Use_One_Package): Within an instance, an actual package + is not hidden by a homograph declared in another actual package. + +2010-01-26 Robert Dewar + + * par_sco.adb (Traverse_Declarations_Or_Statements): Only generate + decisions for pragmas Assert, Check, Precondition, Postcondition if + -gnata set. + * scos.ads: Update comments. + * get_scos.adb, put_scos.adb: Minor fix to code reading statement SCOs. + Also remove obsolete code for CT (exit point) SCOs. + +2010-01-26 Thomas Quinot + + * switch-c.adb: Fix handling of -gnatz* + +2010-01-26 Robert Dewar + + * par_sco.adb (Traverse_Declarations_Or_Statements): Separate F/W + qualifiers for FOR/WHILE loops + * scos.ads: Use separate type letters F/W for for/while loops + +2010-01-26 Robert Dewar + + * get_scos.adb (Get_SCOs): Implement new form of CS entries (multiple + entries per line, one for each statement in the sequence). + * par_sco.adb (Traverse_Declarations_Or_Statements): Increase array + size from 100 to 10_000 for SC_Array to avoid any real possibility of + overflow. Output decisions in for loops. + Exclude labels from CS lines. + * scos.ads: Clarify that label is not included in the entry point + +2010-01-26 Robert Dewar + + * par_sco.adb (Traverse_Declarations_Or_Statments): Implement new + format of statement sequence SCO entries (one location/statement). + * put_scos.adb (Put_SCOs): Implement new format of CS lines + * scos.ads: Update comments. + * sem_eval.adb: Minor reformatting. + +2010-01-26 Robert Dewar + + * par_sco.ads, par_sco.adb (Set_Statement_Entry): New handling of exits + (Extend_Statement_Sequence): New procedures + (Traverse_Declarations_Or_Statements): New handling for exits. + +2010-01-26 Robert Dewar + + * par_sco.adb (Traverse_Declarations_Or_Statements): Add processing for + Case. + +2010-01-26 Robert Dewar + + * par_sco.adb (Is_Logical_Operator): Exclude AND/OR/XOR + * scos.ads: Clarify handling of logical operators + +2010-01-26 Arnaud Charlet + + * s-tpoben.adb: Update comments. + +2010-01-26 Robert Dewar + + * freeze.adb (Set_Small_Size): Don't set size if alignment clause + present. + +2010-01-26 Robert Dewar + + * scos.ads: Clean up documentation, remove obsolete XOR references +2010-01-26 Vincent Celier + + * gnat_ugn.texi: Complete documentation on the restrictions for + combined options in -gnatxxx switches. + Fix typo. + +2010-01-26 Arnaud Charlet + + * s-tpoben.adb (Initialize_Protection_Entries): If a PO is created from + a controlled operation, abort is already deferred at this point, so we + need to use Defer_Abort_Nestable. + +2010-01-26 Vincent Celier + + * prj-conf.adb (Get_Config_Switches): Check for a default language for + a project extending a project with no languages. + +2010-01-26 Vincent Celier + + * switch-c.adb (Scan_Front_End_Switches): Take into account options + that follow -gnatef. + Allow -gnateG to be followed by other options. + +2010-01-26 Robert Dewar + + * s-commun.ads, s-osprim-mingw.adb, s-stchop-vxworks.adb, sem_aggr.adb, + s-vxwext.adb, sem_ch10.adb, sem_eval.adb, sem_prag.adb: Minor + reformatting. + +2010-01-26 Vasiliy Fofanov + + * g-regist.adb, g-regist.ads (For_Every_Key): New generic procedure + that allows to iterate over all subkeys of a key. + +2010-01-26 Ed Falis + + * sysdep.c: enable NFS for VxWorks MILS + * env.c: enable __gnat_environ for VxWorks MILS + * gcc-interface/Makefile.in: Add VxWorks MILS target pairs. + +2010-01-25 Bob Duff + + * sem_aggr.adb (Resolve_Array_Aggregate): Check for the case where this + is an internally-generated positional aggregate, and the bounds are + already correctly set. We don't want to overwrite those bounds with + bounds determined by context. + +2010-01-25 Robert Dewar + + * g-sercom.ads, gnatcmd.adb, gnatlink.adb, a-ststio.adb, exp_ch6.adb, + exp_ch9.adb, g-sechas.ads: Minor reformatting. + +2010-01-25 Thomas Quinot + + * s-commun.adb (Last_Index): Count must be converted to SEO (a signed + integer type) before subtracting 1, otherwise the computation may wrap + (because size_t is modular) and cause the conversion to fail. + +2010-01-25 Ed Falis + + * sysdep.c, init.c: Adapt to support full run-time on VxWorks MILS. + +2010-01-25 Vincent Celier + + * prj-attr.adb: New attribute Run_Path_Origin_Required + * prj-nmsc.adb (Process_Project_Level_Simple_Attributes): Process new + attribute Run_Path_Origin_Required. + * prj.ads (Project_Configuration): New component + Run_Path_Origin_Supported. + * snames.ads-tmpl: New standard name Run_Path_Origin_Required + +2010-01-25 Ed Schonberg + + * sem_aggr.adb (Resolve_Array_Aggregate): If the bounds in a choice + have errors, do not continue resolution of the aggregate. + * sem_eval.adb (Eval_Indexed_Component): Do not attempt to evaluate if + the array type indicates an error. + +2010-01-25 Bob Duff + + * sinfo.ads: Minor comment fixes. + +2010-01-25 Bob Duff + + * exp_ch4.adb, exp_aggr.adb: Minor comment fixes and code clean up. + +2010-01-25 Arnaud Charlet + + * gnatvsn.ads (Current_Year): Update. + +2010-01-25 Florian Villoing + + * gnat_ugn.texi: Fix typo. + +2010-01-25 Thomas Quinot + + * scos.ads: Update specification. + +2010-01-25 Ed Schonberg + + * sem_ch6.adb (Process_PPCs): If a postcondition is present and the + enclosing subprogram has no previous spec, attach postcondition + procedure to the defining entity for the body. + +2010-01-25 Ed Schonberg + + * exp_aggr.adb (Build_Record_Aggr_Code); Do not generate call to + initialization procedure of the ancestor part of an extension aggregate + if it is an interface type. + +2010-01-25 Vincent Celier + + * gnatlink.adb (Process_Binder_File): The directory for the shared + version of libgcc in the run path options is found in the subdirectory + indicated by __gnat_default_libgcc_subdir. + * link.c: Declare new const char * __gnat_default_libgcc_subdir for + each platform. + +2010-01-25 Ed Schonberg + + * sem_prag.adb: More flexible pragma Annotate. + +2010-01-22 Eric Botcazou + + * system-linux-armel.ads (Stack_Check_Probes): Set to True. + * system-linux-armeb.ads (Stack_Check_Probes): Likewise. + +2010-01-18 Eric Botcazou + + * gcc-interface/utils.c (create_var_decl_1): Fix formatting nits. + +2010-01-18 Jan Hubicka + + PR middle-end/42068 + * gcc-interface/utils.c (create_var_decl_1): Do not set COMMON flag for + unit local variables. + +2010-01-17 Laurent GUERBY + + * gcc-interface/Makefile.in: Fix typo in arm*-*-linux-gnueabi. + +2010-01-11 Mikael Pettersson + + * gcc-interface/Makefile.in: Add arm*-*-linux-gnueabi. + * system-linux-armeb.ads, system-linux-armel.ads: New files. + +2010-01-09 Simon Wright + + PR ada/42626 + * gcc-interface/Makefile.in (gnatlib-shared-darwin): Add missing + end-quote. + + + +Copyright (C) 2010 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. -- cgit v1.2.3