URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [ada/] [ChangeLog-2004] - Rev 744
Go to most recent revision | Compare with Previous | Blame | View Log
2004-12-30 Sohail Somani <sohail@sohailsomani.com>PR ada/19128* trans.c (gnat_to_gnu): Fix typo: Use correct return variable.2004-12-23 Eric Botcazou <ebotcazou@libertysurf.fr>* trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.* utils2.c (build_unary_op): Likewise.2004-12-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.2004-12-19 Richard Henderson <rth@redhat.com>* trans.c (gigi): Update gimplify_body call.2004-12-09 Nathan Sidwell <nathan@codesourcery.com>* decl.c (gnat_substitute_in_type): Remove SET_TYPE case.2004-12-07 Ed Falis <falis@adacore.com>* s-intman-vxworks.adb (Notify_Exception): removed useless check forcurrent task being suspended.* init.c (__gnat_clear_exception): added to reset VxWorks exceptioncount.(__gnat_map_signal): removed test for current task being suspended.2004-12-07 Gary Dismukes <dismukes@adacore.com>* a-exexpr.adb (Others_Value, All_Others_Value): Change initial valuesfrom 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bittargets (such as AAMP).2004-12-07 Ed Schonberg <schonberg@adacore.com>* atree.adb (Visit_Itype): Create a new name for the generated itype,because the back-end may otherwise treat it as a redefinition of theold symbol.2004-12-07 Eric Botcazou <ebotcazou@adacore.com>* back_end.adb (Scan_Back_End_Switches): Accept --param.* lang-specs.h: Accept --param.2004-12-07 Vincent Celier <celier@adacore.com>* make.adb (Check_Mains, Switches_Of): Adapt to name changes inpackage Prj (Current_Spec_Suffix => Ada_Spec_Suffix,Current_Body_Suffix => Ada_Body_Suffix).Take into account Externally_Built attribute.* clean.adb (In_Extension_Chain): Always return False when one of theparameter is No_Project.(Clean_Project): Adapt to changes in package Prj (Lang_Ada =>Ada_Language_Index).(Gnatclean): Adapt to change in package Prj.Pars (no parameterProcess_Languages for procedure Parse).* gnatcmd.adb (Carg_Switches): New table.(GNATCmd): Put all switches following -cargs in the Carg_Switches table.Adapt to name changes in package Prj (Current_Spec_Suffix =>Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).* mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: typeHeader_Num and function Hash are now declared in package Prj,not Prj.Com.* prj.adb (Suffix_Of): New function.(Set (Suffix)): New procedure.(Hash): One function moved from Prj.Com(Is_Present, Language_Processing_Data_Of): New functions(Set): Two new procedures(Add_Language_Name, Display_Language_Name): New procedures* prj.ads: (Suffix_Of): New function(Set (Suffix)): New procedureAdd several types and tables for multi-language support.(Header_Num): Type moved from Prj.Com(Hash): Two functions moved from Prj.Com(Is_Present, Language_Processing_Data_Of): New functions(Set): Two new procedures(Add_Language_Name, Display_Language_Name): New procedures(Naming): Component name changes:Current_Spec_Suffix => Ada_Spec_Suffix,Current_Body_Suffix => Ada_Body_Suffix. Add new components:Impl_Suffixes, Supp_Suffixes.(Project_Data): New components: Externally_Built, Supp_Languages,First_Language_Processing, Supp_Language_Processing, Default_Linker,Default_Linker_Path.* prj-attr.adb: Add new attributes Ada_Roots and Externally_Built andnew package Language_Processing with its attributes (Compiler_Driver,Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,Binder_Driver, Default_Linker).* prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.(Header_Num): Type moved to package Prj* prj-env.adb: Adapt to name changes in package Prj(Current_Spec_Suffix => Ada_Spec_Suffix,Current_Body_Suffix => Ada_Body_Suffix).* prj-ext.adb: Add the default project dir (<prefix>/log/gnat) bydefault to the project path, except the "-" is one of the directoriesin env var ADA_PROJECT_PATH.(Current_Project_Path): Global variable, replacing Project_Paththat was in the body of Prj.Part.(Project_Path): New function(Set_Project_Path): New procedureInitialize Current_Project_Path during elaboration of the packageRemove dependency on Prj.Com, no longer needed* prj-ext.ads (Project_Path): New function(Set_Project_Path): New procedure* prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when nosuffix is defined for language <lang>.(Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead ofaccessing directly the components of Naming.(Look_For_Sources): Use Set (Suffix) to set the suffix of a language.Reorganise of this package.Break procedure Check in several procedures.* prj-nmsc.ads: Replace all procedures (Ada_Check,Other_Languages_Check and Language_Independent_Check) with a singleprocedure Check.* prj-pars.ads, prj-pars.adb (Parse): Remove parameterProcess_Languages, no longer needed.* prj-part.adb (Project_Path): Move to the body of Prj.Ext asCurrent_Project_Path.Remove elaboration code, moved to the body of Prj.ExtUse new function Prj.Ext.Project_Path instead of old variableProject_Path.(Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.When comparing with project paths on the stack, first put the resolvedpath in canonical case.(Parse_Single_Project): Set the path name of the project file in thetree to the normalized path.* prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Removeparameter Process_Languages, no longer needed.(Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check andOther_Languages_Check.* prj-tree.ads (Project_Name_And_Node): New component Canonical_Pathto store the resolved canonical path of the project file.Remove dependency to Prj.Com, no longer needed* prj-util.adb: Adapt to name changes in package Prj(Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>Ada_Body_Suffix).* snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,Externally_Built, Include_Option, Language_Processing.* makegpr.adb: Numerous changes due to changes in packagesPrj and Prj.Nmsc.* gnatls.adb: Add the default project dir (<prefix>/log/gnat) bydefault to the project path, except whe "-" is one of the directoriesin env var ADA_PROJECT_PATH.(Gnatls): In verbose mode, add the new section "Project Search Path:"2004-12-07 Robert Dewar <dewar@adacore.com>* debug.adb: Document that -gnatdA automatically sets -gnatR3m* gnat1drv.adb (Gnat1drv): If debug flag A set, then automaticallyset -gnatR3m mode.* repinfo.adb (List_Rep_Info): Remove special handling of -gnatdAflag. No longer needed now that we handle this in gnat1drv.adb.* repinfo.ads: Minor reformatting2004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>Olivier Hainque <hainque@adacore.com>Eric Botcazou <ebotcazou@adacore.com>* decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type forTYPE_SIZE_UNIT of result type if SIZE is not specified.(make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creationof a bitfield, which we know is useless and causes trouble because ofalignment implications.* utils.c (create_var_decl): Set DECL_COMMON again on targets withoutBSS sections.(process_attributes): Clear DECL_COMMON again when a section attributeis present.(finish_record_type): Independently track if RECORD_TYPE has SIZE and/orSIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.(create_field_decl): Special case ADDRESSABLE negative to mean"no bitfield creation", to be used by make_aligning_type. Don'trestrict bitfield creation to !ADDRESSABLE any more, as some BLKmodefields claimed addressable still have to be bitfields. Usevalue_factor_p instead of a raw binop construction to check for theposition's alignment.2004-12-07 Geert Bosch <bosch@adacore.com>* eval_fat.adb: Revert previous change.2004-12-07 Thomas Quinot <quinot@adacore.com>Ed Schonberg <schonberg@adacore.com>* exp_ch4.adb (Expand_N_Indexed_Component): For an indexed componentwith an implicit dereference as its prefix, useInsert_Explicit_Dereference instead of merely rewriting the prefix intoan explicit dereference. This ensures that a reference to the originalprefix is generated, if appropriate.* sem_util.adb (Insert_Explicit_Dereference): When an implicitdereference is rewritten to an explicit one, generate a reference tothe entity denoted by its prefix using the original prefix node, sothe dereference can be properly recorded as a read of the denotedaccess value, if appropriate.* sem_warn.adb (Output_Unreferenced_Messages): Do not abstain fromemitting 'assigned but never read' warning on a variable on the basisthat it has an access type.(Check_References): Emit unreferenced warning when the scope is asubprogram body.2004-12-07 Robert Dewar <dewar@adacore.com>Ed Schonberg <schonberg@adacore.com>* exp_ch6.adb (Expand_Call): Add comment on handling of back endintrinsic* exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,leaving call unchanged.This deals with the case where the pragma Import specifiedan external name, to be handled by the back end.* sem_prag.adb (Process_Import_Or_Interface): Do not check validity ofsubprogram which is Imported with convention Intrinsic if anExternal_Name argument is specified.(Process_Import_Or_Interface): Properly diagnose link name argument.(Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusionwith Sem_Ch6.Cannot_Inline.(Process_Inline): Provide separate warning for inapplicable inlinepragma.(Cannot_Inline): Reject subprograms that have an at_end handler, so thattreatment is uniform on different targets.2004-12-07 Ed Schonberg <schonberg@adacore.com>* exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence ofconstruct is rewritten, preserve end label to permit source navigation.2004-12-07 Thomas Quinot <quinot@adacore.com>* exp_dist.adb (Specific_Build_General_Calling_Stubs,Specific_Build_Stub_Target): New subprograms.(Build_Subprogram_Calling_Stubs): Make this procedure independent fromthe PCS implementation used, using the above PCS-customized subprograms.Minor reformatting.(PolyORB_Support.Helpers): New subunit containing supporting subprogramsfor generation of DSA code targeted to the PolyORB PCS.(Add_Stub_Type): Rewrite to isolate the parts that are specific to oneimplementation of the partition communication subsystem in ancillarysubprograms.(Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,PolyORB_Support.Build_Stub_Type): New subrograms containing thePCS-specific part of Add_Stub_Type.(Insert_Partition_Check): Use runtime library function to performE.4(19) check.* rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref(RE_Same_Partition): New entity, from s-parint.* s-parint.ads, s-parint.adb (Same_Partition): New subprogram.2004-12-07 Gary Dismukes <dismukes@adacore.com>* gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:Output the copyright message on a separate line from the versionmessage.2004-12-07 Joel Brobecker <brobecker@adacore.com>* g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid acompile-time warning.2004-12-07 Robert Dewar <dewar@adacore.com>* g-regpat.adb: (Match): Change a misuse of or to or else2004-12-07 Ed Schonberg <schonberg@adacore.com>* lib-xref.adb:(Generate_Reference): Handle properly a reference to an entry formal,when an accept statement has a pragma Unreferenced for it.* sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flagand the Has_Pragma_Unreferenced flag for each formal before analyzingthe body, to ensure that warnings are properly emitted for each acceptstatement of a given task entry.2004-12-07 Vasiliy Fofanov <fofanov@adacore.com>* Makefile.in: Add support for foreign threads on VMS.2004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):Remove.(LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.* adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.* trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamedexception.(call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.2004-12-07 Robert Dewar <dewar@adacore.com>* nlists.adb (Prepend_Debug): Remove parameters and nest withinPrepend.(Remove_Next_Debug): Same fix* nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we domaintain back pointers now, though we did not used to, and commentswere out of date).(Prepend): Remove pragma Inline.(Remove_Next): Same cleanup2004-12-07 Thomas Quinot <quinot@adacore.com>* sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogramused to record an implicit dereference as a read operation on itsprefix when operating under -gnatc. Necessary to avoid spurious'variable assigned but never read' warnings in that mode.(Process_Indexed_Component, Analyze_Selected_Component): When the prefixis a non-overloaded implicit dereference, call the above subprogram toensure proper recording of references.2004-12-07 Gary Dismukes <dismukes@adacore.com>* sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needsto be resolved later as part of Analyze_Iteration_Scheme's call toMake_Index.2004-12-07 Ed Schonberg <schonberg@adacore.com>* sem_ch8.adb (Find_Type): If node is a reference to 'Base and theprefix is not a scalar type, place error message on prefix, not ontype entity.2004-12-07 Bernard Banner <banner@adacore.com>* vxaddr2line.adb: Add support for x86 vxworks2004-12-07 Thomas Quinot <quinot@adacore.com>* g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarifydocumentation of the behaviour of these functions when passed an IPaddress that has no record in the system hosts database and no reverserecord in the DNS.* cstand.adb, a-tags.ads: Fix typos in comment.2004-12-07 Robert Dewar <dewar@adacore.com>* exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,s-poosiz.ads: Minor reformatting* make.adb: Minor reformattingAdd some ??? comments asking for more comments* s-poosiz.adb: Minor reformattingAdd comments on alignment requirement* sinfo.ads: Remove obsolete comment and fix typo.2004-12-07 Vincent Celier <celier@adacore.com>Sergey Rybin <rybin@adacore.com>* gnat_ugn.texi: Update the section "The GNAT Driver and ProjectFiles" with the new tool and package names.Reformatting to suppress most of the warnings for line too longDocument the new section "Project Search Path:" in the output ofgnatls -v.Add gnatmetric section2004-12-07 Vincent Celier <celier@adacore.com>* vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and-gnatec= are not direct switches of gnatmetric. Changed -eis to -epsand -eit to -ept. Added qualifier/ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.2004-11-27 Andreas Schwab <schwab@suse.de>* Make-lang.in (ada/trans.o): Depend on $(EXPR_H).2004-11-25 Arnaud Charlet <charlet@adacore.com>* g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write frominternal implementation unit GNAT.Sockets.Thin,as their usage for sockets is non-portable (using the read and writefunctions from the system runtime library is fine on UNIX but won'twork under Windows).* mingw32.h: Update copyright notice.2004-11-25 Arnaud Charlet <charlet@adacore.com>* ada-tree.h: Minor reformatting of previous change to avoid lineslonger than 79 characters.2004-11-25 Olivier Hainque <hainque@adacore.com>* tb-gcc.c: GCC infrastructure based implementation of__gnat_backtrace.2004-11-24 Steven Bosscher <stevenb@suse.de>* misc.c (gnat_post_options): Don't clearflag_inline_functions.2004-11-22 Andrew Pinski <pinskia@physics.uc.edu>PR ada/17986* ada-tree.h (lang_tree_node): Set chain_next to be the chain of thetree.2004-11-21 Andreas Jaeger <aj@suse.de>* stylesw.adb: Change Style_Check_Subprogram_Order toStyle_Check_Order_Subprograms.2004-11-18 Arnaud Charlet <charlet@adacore.com>* adaint.h, adaint.c(__gnat_portable_spawn): Fix cast of spawnvp third parameterto avoid warnings.Add also a cast to kill another warning.(win32_no_block_spawn): Initialize CreateProcess's dwCreationFlagsparameter with the priority class of the parent process instead ofalways using the NORMAL_PRIORITY_CLASS.(__gnat_dup): New function.(__gnat_dup2): New function.(__gnat_is_symbolic_link): Enable the effective body of thisfunction when __APPLE__ is defined.* g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.Update comments.2004-11-18 Olivier Hainque <hainque@adacore.com>* a-exexpr.adb (Others_Value, All_Others_Value): New variables, theaddress of which may be used to represent "others" and "all others"choices in exception tables, instead of the current harcoded(void *)0 and (void *)1.(Setup_Exception): Do nothing in the GNAT SJLJ case.* gigi.h (others_decl, all_others_decl): New decls representing thenew Others_Value and All_Others_Value objects.(struct attrib): Rename "arg" component as "args", since GCC expects alist of arguments in there.* raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of thecorresponding objects exported by a-exexpr, instead of hardcoded dummyaddresses.* trans.c (Exception_Handler_to_gnu_zcx): Use the address ofothers_decl and all_others_decl instead of hardcoded dummy addressesto represent "others" and "all others" choices, which is cleaner andmore flexible with respect to the possible eh pointer encoding policies.* utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.(process_attributes): Account for the naming change of the "args"attribute list entry component.* decl.c (build_attr_list): Rename into prepend_attributes to allowcumulating attributes for different entities into a single list.(gnat_to_gnu_entity): Use prepend_attributes to build the list ofattributes for the current entity and propagate first subtypeattributes to other subtypes.<E_Procedure>: Attribute arguments are attr->args and notattr->arg any more.(build_attr_list): Ditto. Make attr->args a TREE_LIST when there is anargument provided, as this is what GCC expects. Use NULL_TREE insteadof 0 for trees.2004-11-18 Robert Dewar <dewar@adacore.com>* a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:Minor reformatting througout (including new function specs)Add ??? comments asking for clarification.2004-11-18 Thomas Quinot <quinot@adacore.com>* butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Removeincomplete duplicate implementation of this subprogram from butil.2004-11-18 Thomas Quinot <quinot@adacore.com>* exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. Thisprocedures factors the common processing for building an RPC receiverfor an RCI package or an RACW type.Stylistic cleanup: change '/= Empty' to 'Present ()'; move body ofBuild_Remote_Subprogram_Proxy_Type into proper alphabetical order.(Get_PCS_Name): New subprogram. Returns the name of the PCS currentlyin use.(Specific_Add_RACW_Features): New subprogram. PCS-specific part ofAdd_RACW_Features.(Specific_Add_RAST_Features): New subprogram. PCS-specific part ofAdd_RAST_Features.(Assign_Subprogram_Identifier): New subprogram. Provision for assigningdistribution subprogram identifiers that are either subprogram numbersor strings.(Get_Subprogram_Ids): New subprogram. Retrieve both the numeric andstring distribution identifiers assigned to a given subprogram.(Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.(Add_RAS_Dereference_TSS): Add comments.(Build_General_Calling_Stubs): Note that the RACW_Type formal parameteris not referenced yet because it will be used by the PolyORB DSAimplementation.(Insert_Partition_Check): Remove fossile code.(First_RCI_Subprogram_Id): Document this constant.(Add_RAS_Access_TSS): Correct the setting of the Etype of theRAS_Access TSS.(Get_Pkg_Name_String): Remove subprogram. Usage occurrences arereplaced with calls to Get_Library_Unit_Name_String. Previously therewere several instances of the same code in different locations in thecompiler; this checkin completes the replacement of all of theseinstances with calls to a common subprogram.Minor reformatting.* sem_dist.adb: Remove comment noting that RPC receiver generationshould be disabled for RACWs that implement RASs.(Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.* sem_util.ads, sem_util.adb (Has_Stream): New function(Get_Library_Unit_Name_String): New subprogram to retrieve the fullyqualified name of a library unit into the name buffer.(Note_Possible_Modification): Generate a reference onlyif the context comes from source.* snames.ads (PCS_Names): New subtype corresponding to names ofsupported implementations of the Partition Communication Subsystem(PCS) (i.e. the runtime library support modules for the distributedsystems annex).2004-11-18 Robert Dewar <dewar@adacore.com>Ed Schonberg <schonberg@adacore.com>* einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used(Has_Rep_Pragma): New function(Has_Attribute_Definition_Clause): New function(Record_Rep_Pragma): Moved here from sem_ch13.adb(Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma* sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb* exp_prag.adb: (Expand_Pragma_Common_Object): New procedure(Expand_Pragma_Psect_Object): New procedureThese procedures contain the revised and cleaned up processing forthese two pragmas. This processing was formerly in Sem_Prag, butis more appropriately moved here. The cleanup involves making surethat the pragmas are properly attached to the tree, and that nonodes are improperly shared.* sem_prag.adb: Move expansion of Common_Object and Psect_Objectpragmas to Exp_Prag, which is more appropriate.Attach these two pragmas to the Rep_Item chain Use Rep_Item chain tocheck for duplicates Remove use of Is_Psected flag, no longer needed.Use new Make_String_Literal function with string.* exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributesthat are functions return universal values, that have to be convertedto the context type.Use new Make_String_Literal function with string.(Get_Stream_Convert_Pragma): New function, replaces the use ofGet_Rep_Pragma, which had to be kludged to work in this case.* freeze.adb: Use new Has_Rep_Pragma function* exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literalfunction with string.Use new Has_Rep_Pragma function.* tbuild.ads, tbuild.adb (Make_String_Literal): New function, takesstring argument.2004-11-18 Robert Dewar <dewar@adacore.com>* errout.ads, errout.adb: (First_Sloc): New function* par-ch5.adb (P_Condition): Check for redundant parens is now a stylecheck (-gnatyx) instead of being included as a redundant constructwarning.* sem_ch6.adb: Change name Style_Check_Subprogram_Order toStyle_Check_Order_Subprograms.* style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,stylesw.adb: Add Style_Check_Xtra_Parens* usage.adb: Add line for -gnatyx (check extra parens)* vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx2004-11-18 Ed Schonberg <schonberg@adacore.com>Robert Dewar <dewar@adacore.com>* exp_ch4.adb (Expand_N_Selected_Component): If the component is thediscriminant of a constrained subtype, analyze the copy of thecorresponding constraint, because in some cases it may be onlypartially analyzed.Removes long-lived ??? comments.* exp_ch7.adb (Establish_Transient_Scope): Remove complex code thathandled controlled or secondary-stack expressions within theiteration_scheme of a loop.* sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluatebounds that may contain functions calls, to prevent memory leaks whenthe bound contains a call to a function that uses the secondary stack.(Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, togenerate temporaries for loop bounds that might contain function callsthat require secondary stack and/or finalization actions.* sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is aselected component and the selector is overloadable (not just afunction) treat as function call, Analyze_Call will disambiguate ifnecessary.(Analyze_Selected_Component): Do not generate an actual subtype for theselected component if expansion is disabled. The actual subtype is onlyneeded for constraint checks.(Analyze_Allocator): If restriction No_Streams is set, then donot permit objects to be declared of a stream type, or of acomposite type containing a stream.* restrict.ads: Remove the a-stream entry from Unit_Array, sinceNo_Streams no longer prohibits with'ing this package.* sem_ch3.adb (Build_Derived_Record_Type): If the parent type hasdiscriminants, but the parent base has unknown discriminants, there isno discriminant constraint to inherit. Such a discrepancy can arisewhen the actual for a formal type with unknown discriminants is asimilar private type whose full view has discriminants.(Analyze_Object_Declaration): If restriction No_Streams is set, thendo not permit objects to be declared of a stream type, or of acomposite type containing a stream.2004-11-18 Ed Schonberg <schonberg@adacore.com>* exp_dbug.ads: Update documentation to reflect simpler encoding forprotected operations.* exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix ingenerated name, it complicates decoding in gdb and hinders debuggingof protected operations.(Build_Barrier_Function_Specification): Set the Needs_Debug_Infoflag for the protected entry barrier function.(Build_Protected_Entry_Specification): Set the Needs_Debug_Infoflag for the protected entry function.2004-11-18 Nicolas Setton <setton@adacore.com>* expect.c: Define __unix__ when __APPLE__ is defined.* Makefile.in: Inform the value of the variable GMEM_LIB in theDarwin-specific section.* lang-specs.h: Change the placement of the %1 marker.Works around the fact that gcc adds -fPIC by default under Darwin.2004-11-18 Ed Schonberg <schonberg@adacore.com>* exp_pakd.adb (Convert_To_PAT_Type): After replacing the originaltype of the object with the packed array type, set the Analyzed flagon the object if it is an entity or simple indexed component, to avoidspurious type errors.2004-11-18 Gary Dismukes <dismukes@adacore.com>* gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on aseparate line from the version message.2004-11-18 Ed Falis <falis@adacore.com>* init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653vthreads.(init_float): Eliminate initialization of floating point status forAE653. The instructions have no effect for vThreads.2004-11-18 Vincent Celier <celier@adacore.com>* make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc whengnatbind is invoked with -shared.2004-11-18 Jose Ruiz <ruiz@adacore.com>* s-tposen.adb (Lock_Entry): Remove the code for raising Program_Errorfor Detect_Blocking which is redundant with the check done within theprocedure Protected_Single_Entry_Call.(Lock_Read_Only_Entry): Remove the code for raising Program_Error forDetect_Blocking which is redundant with the check done within theprocedure Protected_Single_Entry_Call.2004-11-18 Vincent Celier <celier@adacore.com>* makegpr.adb (Compile): Put the compiling switches (in packageCompiler and on the command line) immediately after "-c", instead ofat the end of the command line invocation of the compiler, whencompiling a non-Ada file.(Build_Global_Archive): When there is no need to rebuild the archive,set Global_Archive_Exists, so that the archive is passed to the linkerif one is needed.2004-11-18 Robert Dewar <dewar@adacore.com>Sergey Rybin <rybin@adacore.com>* gnat_ugn.texi:Remove extra paren check from list of checks for redundant constructsAdd documentation of new -gnatyx style check (check extra parens)Remove paragraph about gnatelim debug options.* gnat_rm.texi: Document that Ada.Streams now forbids creating streamobjects rather than forbidding dependencies on the package Ada.Streams.* sinfo.ads: Add ??? note that we should document pragmas passed toback end.* g-expect.ads: Fix a few typos in the comments.2004-11-09 Joseph S. Myers <joseph@codesourcery.com>* misc.c (gnat_handle_option): Use %< and %> for quoting inwarning message.2004-11-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>* a-numaux-x86.adb (Tan): Fix fdivp syntax.2004-11-07 Andreas Schwab <schwab@suse.de>* Makefile.in (install-gnatlib): Remove spurious hyphen.2004-11-02 Andrew Pinski <pinskia@physics.uc.edu>PR ada/18228* Makefile.in (darwin): Set soext to .dylib.2004-10-26 Vincent Celier <celier@gnat.com>Thomas Quinot <quinot@act-europe.fr>* g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:(C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags asthere is no use of GNAT.Sockets.Constants.Remove remaining pragma Import for C_WriteRemove C_Read and C_Write from internal implementation unitGNAT.Sockets.Thin, as their usage for sockets is non-portable (usingthe read and write functions from the system runtime library is fineon UNIX but won't work under Windows).* g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.(Check_Selector): Use C_Recv instead of C_Read.Selectors are the GNAT.Sockets abstraction to perform a select()call on a set of descriptors. To allow abortion of an ongoingselect operation, some data is written to a dedicated socket thatis always monitored.Under Windows, the write and read library functions cannot operateon sockets, so we need to use send and recv instead, which is portableacross all supported platforms.* g-socthi.ads: Remove C_Read and C_Write from internal implementationunit GNAT.Sockets.Thin, as their usage for sockets is non-portable(using the read and write functions from the system runtime library isfine on UNIX but won't work under Windows).2004-10-26 Nicolas Setton <setton@act-europe.fr>* mlib-tgt-darwin.adb: New file.* mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): Newsubprogram body.* Makefile.in: Add support for building shared libraries under Darwin.(EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containingthe low level EH init subprogram to be called from __gnat_initialize.* mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,indicates which options to pass to the archive indexer.* mlib-utl.adb: Add support for calling ranlib with additionaloptions. This is needed for instance under Mac OS X.(Ranlib_Options): New global variable, used to store the potentialoptions to pass to ranlib.(Ar): Use Ranlib_Options when spawning ranlib.(Initialize): Set the value of ranlib option.2004-10-26 Olivier Hainque <hainque@act-europe.fr>* s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12Kinstead of 8K, to reflect the real potential needs for stack-checkingin the ZCX case.2004-10-26 Pascal Obry <obry@gnat.com>* s-parame-mingw.adb (Default_Stack_Size): Add some comments.* s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. OnWindows only the initial thread stack size can be set so it is good tostart we a low stack size.The OS will adjust the size as needed.2004-10-26 Olivier Hainque <hainque@act-europe.fr>Nicolas Setton <setton@act-europe.fr>* expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with"__unix__" instead of "unix".The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so thesections were just mistakenly ignored. The former isimplicitely defined by gcc2.8, gcc3.2 and gcc3.4.Update #ifdef preprocessor macro to detect the symbol __hpux__ insteadof hpux. This prevents an unwanted definition of the symbolconvert_addresses in adaint.o.2004-10-26 Gary Dismukes <dismukes@gnat.com>* a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, forcompatibility with type Unwind_Word on 16-bit targets such as AAMP.2004-10-26 Cyrille Comar <comar@act-europe.fr>* a-filico.ads, a-filico.adb: fix incorrect header.2004-10-26 Javier Miranda <miranda@gnat.com>* a-ststio.ads: Fix typo in identifier2004-10-26 Thomas Quinot <quinot@act-europe.fr>* sem_ch4.adb: Minor reformatting.2004-10-26 Ed Schonberg <schonberg@gnat.com>* checks.adb (Expr_Known_Valid): If floating-point validity checks areenabled, check the result of unary and binary operations when theexpression is the right-hand side of an assignment.2004-10-26 Vincent Celier <celier@gnat.com>* clean.adb (Delete): Do not output warnings when in quiet output andnot in verbose mode.(Force_Deletions): New Boolean flag, defaulted to False(Delete): Only delete a file if it is writable, and whenForce_Deletions is True.(Parse_Cmd_Line): New switch -f: set Force_Deletions to True(Usage): Line for new switch -f(Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling ourown.2004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>* decl.c (gnat_to_gnu_field): Use the type of the inner object for aJM type only if its size matches that of the wrapper. When a size isprescribed and the field is not aliased, remove the wrapper of a JMtype only if the size is not greater than that of the packed array.(gnat_to_gnu_entity): Change the extension of packed array wrappersfrom LJM to JM.2004-10-26 Geert Bosch <bosch@gnat.com>* eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.(Succ): Re-implement using Scaling, Exponent and Ceiling attributes.(Pred): Implement in terms of Succ.2004-10-26 Ed Schonberg <schonberg@gnat.com>* exp_aggr.adb (Safe_Component): An aggregate component that is anunchecked conversion is safe for in-place use if the expression of theconversion is safe.(Expand_Array_Aggregate): An aggregate that initializes an allocator maybe expandable in place even if the aggregate does not come from source.(Convert_Array_Aggr_In_Allocator): New procedure to initialize thedesignated object of an allocator in place, rather than building itfirst on the stack. The previous scheme forces a full copy of the array,and may be altogether unsusable if the size of the array is too largefor stack allocation.2004-10-26 Robert Dewar <dewar@gnat.com>* exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for arraycompares if the component is atomic.* exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop forarray assignment if the component type is atomic.2004-10-26 Ed Schonberg <schonberg@gnat.com>Eric Botcazou <ebotcazou@act-europe.fr>* exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameteris aliased and is a by_reference type, do not pass by copy.(Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function todetect whether the call is in the right side of an assignment orthe expression of an object declaration. Recurse on componentassociation within aggregates.Call it in the condition that determines whether the temporary isnecessary for correct stack-checking.2004-10-26 Thomas Quinot <quinot@act-europe.fr>* exp_dist.adb (Build_General_Calling_Stubs): New formal parameterRACW_Type, used in the PolyORB version.Rename RCI_Info to RCI_Locator, for consistency between the PolyORBversion and the GARLIC version.* snames.ads, snames.adb, s-parint.ads, s-parint.adb:Rename RCI_Info to RCI_Locator for better consistency between theGARLIC and PolyORB versions of the distributed systems annex.(DSA_Implementation_Name): This enumeration lists the possibleimplementations of the Partition Communication Subsystem for theDistributed Systems Annex (DSA). The three available implementationsare the dummy stub implementation (No_DSA), and two versions based ontwo different distribution runtime libraries: GARLIC and PolyORB. Boththe GARLIC PCS and the PolyORB PCS are part of the GLADE distributiontechnology.Change the literal GLADE_DSA to GARLIC_DSA to accurately describethat organization.* rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistencybetween the GARLIC and PolyORB versions of the distributed systemsannex.Remove RE_Unbounded_Reclaim_Pool since it is unused.2004-10-26 Gary Dismukes <dismukes@gnat.com>* gnat1drv.adb: Suppress calling the back end whenFrontend_Layout_On_Target is true.2004-10-26 Thomas Quinot <quinot@act-europe.fr>* g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,Set_Read_Only): New subprograms.These new routines allow the user to set or unset the Owner executeand Owner write permission flags on a file.* makegpr.adb, mlib.adb, mlib-prj.adb: UseGNAT.OS_Lib.Set_Executable instead of rolling our own.2004-10-26 Matthew Gingell <gingell@gnat.com>* i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.2004-10-26 Pascal Obry <obry@gnat.com>* init.c (__gnat_error_handler) [Win32]: Instead of trying to read thememory before the faulting page we properly test the process readaccess for this address using appropriate Win32 routine.(HPUX sections): guard with "__hpux__" instead of "hpux".2004-10-26 Robert Dewar <dewar@gnat.com>* lib-xref.adb (Generate_Reference): Don't complain about reference toentry parameter if pragma Unreferenced set, since we do not properlyhandle the case of multiple parameters.2004-10-26 Vincent Celier <celier@gnat.com>* prj-env.adb: (Contains_ALI_Files): New Boolean function(Ada_Objects_Path.Add): For a library project, add to the object paththe library directory only if there is no object directory or if thelibrary directory contains ALI files.(Set_Ada_Paths.Add.Recursive_Add): Ditto2004-10-26 Vincent Celier <celier@gnat.com>* prj-nmsc.adb (Language_Independent_Check): Do not forbid virtualextension of library projects.* prj-part.adb: If env var ADA_PROJECT_PATH is not defined, projectpath defaults to ".:<prefix>/lib/gnat".(Parse): For an extending all project, allow direct import of a projectthat is virtually extended.* prj-proc.adb (Imported_Or_Extended_Project_From): If a project withthe specified name is directly imported, return its ID. Otherwise, ifan extension of this project is imported, return the ID of theextension.2004-10-26 Robert Dewar <dewar@gnat.com>* s-arit64.adb: (Le3): New function, used by Scaled_Divide(Sub3): New procedure, used by Scaled_Divide(Scaled_Divide): Substantial rewrite, avoid duplicated code, and alsocorrect more than one instance of failure to propagate carriescorrectly.(Double_Divide): Handle overflow case of largest negative numberdivided by minus one.* s-arit64.ads (Double_Divide): Document that overflow can occur inthe case of a quotient value out of range.Fix comments.2004-10-26 Robert Dewar <dewar@gnat.com>* s-bitops.adb (Bit_Eq): Remove redundant check.* s-bitops.ads: Minor comment updatesChange some occurrences of Address to System.Address* s-carsi8.ads: Fix minor cut-and-paste error in comments2004-10-26 Ed Schonberg <schonberg@gnat.com>* sem_attr.adb (Resolve_Attribute, case 'Access): Apply properaccessibility check to prefix that is a protected operation.2004-10-26 Ed Schonberg <schonberg@gnat.com>* sem_ch10.adb (Optional_Subunit): If file of expected subunit isempty, post message on stub.2004-10-26 Ed Schonberg <schonberg@gnat.com>Javier Miranda <miranda@gnat.com>* sem_ch12.adb (In_Main_Context): Predicate to determine whether thecurrent instance appears within a unit that is directly in the contextof the main unit.Used to determine whether the body of the instance should be analyzedimmediately after its spec, to make its subprogram bodies availablefor front-end inlining.(Analyze_Formal_Array_Type): Cleanup condition that checks that rangeconstraint is not allowed on the component type (AARM 12.5.3(3))2004-10-26 Cyrille Comar <comar@act-europe.fr>* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case'Storage_Pool): enhance, document & limit detection of non-sharableinternal pools.* impunit.adb: Make System.Pool_Global and System.Pool_Local visible.* s-pooglo.ads: Add more documentation now that this pool is properlydocumented.2004-10-26 Ed Schonberg <schonberg@gnat.com>* sem_ch3.adb (Complete_Private_Subtype): If the full view is a taskor protected type with discriminants, do not constrain thecorresponding record type if the subtype declaration has nodiscriminant constraints. This can be the case in source code, or inthe subtype declaration created to rename an actual type within aninstantiation.2004-10-26 Ed Schonberg <schonberg@gnat.com>* sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for adifferent kind of stub (possibly wrong name for file), do not checkfor conformance.(Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If bodyincludes call to some function that returns an unconstrained type, donot inline.2004-10-26 Ed Schonberg <schonberg@gnat.com>* sem_elab.adb (Check_Elab_Call): Do not check a call that does notappear in the code for the main unit. Dependencies among units in thecontext of the main unit are established when those other units arecompiled. Otherwise spurious elaboration constraints can generateincorrect elaboration circularities.2004-10-26 Thomas Quinot <quinot@act-europe.fr>Ed Schonberg <schonberg@gnat.com>* sem_util.adb (Is_Aliased_View): Defend against the case where thissubprogram is called with a parameter that is not an object name. Thissituation arises for some cases of illegal code, which is diagnosedlater, and in this case it is wrong to call Is_Aliased, as that mightcause a compiler crash.(Explain_Limited_Type): Refine previous fix to includeinherited components of derived types, to provide complete information.* exp_ch9.adb (Set_Privals): Set the Ekind of the actual object thatis the prival for a protected object.It is necessary to mark this entity as a variable, in addition toflagging it as Aliased, because Sem_Util.Is_Aliased_View has beenmodified to avoid checking the Aliased flag on entities that are notobjects. (Checking that flag for non-objects is erroneous and couldlead to a compiler crash).2004-10-26 Robert Dewar <dewar@gnat.com>* s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since ifX_Frac = 0.5, then we know that the number X must be positive.(Succ): Remove the same redundant test, and also fix the primary testto test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.Minor reformatting(Decompose): Add fuller comments to spec2004-10-26 Pascal Obry <obry@gnat.com>* tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptrvalidity (process must have read access). Set to 0 in all other cases.(STOP_FRAME): Now check for ptr validity to avoid a segmentationviolation on Win32.(VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid asegmentation violation.2004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>* trans.c (call_to_gnu): For an (in-)out parameter passed by referencewhose type is a constructed subtype of an aliased object with anunconstrained nominal subtype, convert the actual to the constructedsubtype before taking its address.2004-10-26 Vincent Celier <celier@gnat.com>* a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb(Is_Path_Name_Case_Sensitive): New function* a-direct.adb (To_Lower_If_Case_Insensitive): New procedure(Base_Name, Simple_Name, Current_Directory, Compose,Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive onthe result.2004-10-26 Cyrille Comar <comar@act-europe.fr>Vasiliy Fofanov <fofanov@act-europe.fr>Vincent Celier <celier@gnat.com>* gnat_ugn.texi: Generalize "finding memory problems" section into a"memory management issues" section and document some of the usefulmemory pools provided as part of the GNAT library.Remove "virtual" from declaration of A::method2 inthe simple example of Ada/C++ mixed system.Library Projects may be virtually extended: their virtual extensionsare not Library Projects.Added section on extending project hierarchies.2004-10-19 Aaron W. LaFramboise <aaronavay62@aaronwl.com>* adaint.c (__gnat_get_libraries_from_registry): Cast valueto LPBYTE.(__gnat_portable_spawn): Remove const.* mingw32.h (MAXPATHLEN): Check for previous definition.2004-10-17 Matthias Klose <doko@debian.org>* gnatvsn.ads: Set gnat library version to 4.0.2004-10-05 Vincent Celier <celier@gnat.com>* mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_22004-10-04 Laurent Guerby <laurent@guerby.net>PR ada/15156* Makefile.in: Define and use RANLIB_FLAGS.2004-10-04 Pascal Obry <obry@gnat.com>* tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on allother x86 platforms).2004-10-04 Olivier Hainque <hainque@act-europe.fr>* s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sensein general and triggers stack alignment adjustment for thread entrypoints on targets where this is necessary.2004-10-04 Bernard Banner <banner@gnat.com>PR ada/13897* Makefile.in: Add section for powerpc linuxAdd variant i-vxwork-x86.ads* i-vxwork-x86.ads, system-linux-ppc.ads: New files.2004-10-04 Olivier Hainque <hainque@act-europe.fr>* init.c (__gnat_initialize): Call an Ada subprogram to perform thetable registration calls when need be. Ensures no reference to the crtctors symbol are issued in the SJLJ case, which avoids possibleundefined symbol errors in the case of modules to be statically linkedwith the kernel.2004-10-04 Javier Miranda <miranda@gnat.com>* sem_ch4.adb (Try_Object_Operation): Reformat the code to expandin-line the code corresponding to subprogram Analyze_Actuals. Inaddition, analyze the actuals only in case of subprogram call.2004-10-04 Ed Falis <falis@gnat.com>* s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size2004-10-04 Sergey Rybin <rybin@act-europe.fr>* g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameterin the documentation.2004-10-04 Robert Dewar <dewar@gnat.com>* sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well asIF and CASE.(Analyze_Block_Statement): Add circuitry to detect following dead code(Check_Unreachable_Code): Handle case of block exit2004-10-04 Robert Dewar <dewar@gnat.com>* g-spipat.adb: (XMatch): Avoid warning for Logic_Error call(XMatchD): Avoid warning for Logic_Error call2004-10-04 Robert Dewar <dewar@gnat.com>* exp_ch4.adb (Is_Procedure_Actual): Correct so that this does notconsider expressions buried within a procedure actual to be an actual.This caused some blowups with uses of packed slices within a procedureactual.2004-10-04 Robert Dewar <dewar@gnat.com>* exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays nolonger need to be initialized to zero.(Get_Simple_Init_Val): Modular packed arrays no longer need to beinitialized to zero.* checks.adb (Expr_Known_Valid): Packed arrays are now alwaysconsidered valid, even if the representation is modular. That's correctnow that we no longer initialize packed modular arrays to zero.* exp_dbug.ads: Clarify documentation on handling of PAD and JMsuffixes. These are now documented as the only cases in which thedebugger ignores outer records.Previously, the spec allowed arbitrary suffixes for this purpose.Change name of LJM to JM for packed array pad recordsCreate separate section on packed array handling, and add a whole newset of comments to this section describing the situation with packedmodular types and justification requirements depending on endianness.2004-10-04 Robert Dewar <dewar@gnat.com>* a-except.adb: Add a comment for last change* einfo.ads: Minor spelling correction in comment* exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting* sem_ch11.adb: Fix a case of using | instead of \ for continuationmessages.* sem_util.ads: Minor comment update2004-10-04 Ed Schonberg <schonberg@gnat.com>* sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline asInline_Always when in Configurable_Run_Time mode.* sem_prag.adb (Process_Convention): If entity is an inheritedsubprogram, apply convention to parent subprogram if in same scope.(Analyze_Pragma, case Inline): Do not treat Inline as Inline_Alwayswhen in Configurable_Run_Time mode.2004-10-04 Ed Schonberg <schonberg@gnat.com>* sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity ofclass_wide type after component list has been inherited.2004-10-04 Ed Schonberg <schonberg@gnat.com>* sem_ch12.adb (Check_Generic_Actuals): New predicateDenotes_Previous_Actual, to handle properly the case of a privateactual that is also the component type of a subsequent array actual.The visibility status of the first actual is not affected when thesecond is installed.(Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, tomake fully recursive the treatment of formals of packages declaredwith a box.(Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undothe above on exit from an instantiation.(Denotes_Formal_Package): When called from Restore_Private_Views, ignorecurrent instantiation which is now complete.(Analyze_Package_Instantiation): No instantiated body is needed if themain unit is generic. Efficient, and avoid anomalies when a instanceappears in a package accessed through rtsfind.2004-10-04 Ed Schonberg <schonberg@gnat.com>* exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,do not generate a declaration for a temporary if the call is part of alibrary-level instantiation.2004-10-04 Ed Schonberg <schonberg@gnat.com>* sem_util.adb (Explain_Limited_Type): Ignore internal components whensearching for a limited component to flag.* exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure toexpansion of Input, to account for the fact that the implicit callgenerated by the attribute reference must freeze the user-definedstream subprogram. This is only relevant to 'Input, because it canappear in an object declaration, prior to the body of the subprogram.* sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so thatexpansion can proceed and further errors uncovered.(Minor clean up): Fix cases of using | instead of \ for continuationmessages.2004-10-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.* trans.c (assoc_to_constructor): Fix unused var warning if no checking.(gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.Use gcc_assert and gcc_unreachable.* decl.c (gnat_to_gnu_entity, case object): Check and process aspecified alignment before validating size.(gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create astripped-down declaration for the type of the inner field when makinga JM type.* utils.c (finish_record_type): Do not compute the size in unitsincrementally. Instead compute it once for the rep clause case.Use gcc_assert and gcc_unreachable.2004-10-04 Vincent Celier <celier@gnat.com>* a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid characterin file name.(Is_Valid_Path_Name): Take '/' as a directory separator.2004-10-04 Vincent Celier <celier@gnat.com>* prj-part.adb (Parse_Single_Project): Call Is_Extending_All(Extended_Project) only if Extended_Project is defined, to avoidassertion error.(Post_Parse_Context_Clause): Always call Set_Path_Name_Of with aresolved path.(Parse_Single_Project): Ditto.* prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not callAdd_To_Project_Path for virtual projects.2004-10-04 Vincent Celier <celier@gnat.com>* mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): Newparameter Options_2.* mlib-prj.ads, mlib-prj.adb (Build_Library): CallBuild_Dynamic_Library with an empty Options_2.* mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has nodefault anymore.* makegpr.adb (Get_Imported_Directories.add): Remove trailingdirectory separator, if any.(Gprmake): Do not allow mains on the command line for library projects.Do not attempt to link when the project is a library project.(Library_Opts): New table to store Library_Options.(Build_Library): If Library_Options is specified, pass these optionswhen building a shared library.2004-10-04 Jose Ruiz <ruiz@act-europe.fr>* s-tposen.adb (Service_Entry): The object must be always unlocked atthe end of this procedure now that the unlock operation was insertedby the expander.2004-10-04 Jose Ruiz <ruiz@act-europe.fr>* targparm.ads, targparm.adb (Targparm_Tags): Add PAS valuecorresponding to the Preallocated_Stacks flags in System.(Get_Target_Parameters): Including the processing forPreallocated_Stacks.* system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,system-vxworks-mips.ads, system-os2.ads, system-interix.ads,system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that isused to signal whether the compiler creates the required stacks anddescriptors for the different tasks (when True) or it is done by theunderlying operating system at run time (when False).It is initially set to False in all targets.* exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stackif it is supported by the target.(Make_Task_Create_Call): Pass the stack address if it has beenpreviously created. Otherwise pass a Null_Address.* snames.adb: Add _stack.* snames.ads: Add Name_uStack. Required to allow the expander tostatically allocated task stacks.* s-tarest.ads, s-tarest.adb (Create_Restricted_Task): AddStack_Address argument.Check that its value is equal to Null_Address because this target doesnot support the static stack allocation.2004-10-04 Thomas Quinot <quinot@act-europe.fr>* usage.adb: Change "pragma inline" to "pragma Inline" in informationand error messages2004-10-04 Thomas Quinot <quinot@act-europe.fr>* exp_dist.adb: Split declaration of asynchronous flag out ofAdd_RACW_Read_Attribute.Minor reformatting for better alignment with PolyORB version.Store the entity for the asynchronous flag of an RACW, rather than theexpression, in the asynchronous flags table. This will allow this flagto be used in other subprograms beside Add_RACW_Read_Attribute.2004-10-04 Thomas Quinot <quinot@act-europe.fr>* g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads: Add newsockets constant MSG_NOSIGNAL (Linux-specific).Add new sockets constant MSG_Forced_Flags, list of flags to be set onall Send operations.For Linux, set MSG_NOSIGNAL on all send operations to prevent themfrom trigerring SIGPIPE.Rename components to avoid clash with Ada 2005 possible reservedword 'interface'.(Check_Selector): When the select system call returns with an errorcondition, propagate Socket_Error to the caller.2004-10-01 Jan Hubicka <jh@suse.cz>* misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.2004-09-23 Robert Dewar <dewar@gnat.com>PR ada/17540* sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,instead do this at freeze time (we won't do it if there is an addressclause).Change "pragma inline" to "pragma Inline" in information and errormessages.Minor reformatting.* freeze.adb (Check_Address_Clause): Remove previous change, not theright way of doing things after all.(Freeze_Entity): For object, set Is_Public for imported entitiesunless there is an address clause present.2004-09-21 Olivier Hainque <hainque@act-europe.fr>* decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for adummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. Thisensures proper handling of types with rep clauses, which might havetheir TYPE_SIZE set already.2004-09-21 Robert Dewar <dewar@gnat.com>* decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modularpacked array types in both little- and big-endian cases. This changeensures that we no longer count on the unused bits being initializedfor such types (and in particular ensures that equality testing willonly read the relevant bits).Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_PThese changes mean that we no longer need to initialize small packedarrays.(gnat_to_gnu_entity) <E_Record_Subtype>: Apply the sameoptimization to an LJM field as to its parent field.* ada-tree.h, trans.c, utils.c, utils2.c:Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P2004-09-20 Jan Hubicka <jh@suse.cz>* utils.c (gnat_finalize): Remove.(end_subprog_body): Directly call cgraph_finalize_function;do not lower the nested functions.2004-09-20 Robert Dewar <dewar@gnat.com>PR ada/17540* freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Publicif an address clause is present, since that means that the Importshould be ignored.2004-09-20 Arnaud Charlet <charlet@act-europe.fr>* 5tsystem.ads: Removed, no longer used.2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>Zack Weinberg <zack@codesourcery.com>* ada-tree.def: Use tree_code_class enumeration constantsinstead of code letters.* ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:Update for new tree-class enumeration constants.2004-09-17 Vincent Celier <celier@gnat.com>* prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some privatecapabilities of the general project manager.2004-09-09 Vincent Celier <celier@gnat.com>* a-direct.ads: Add pragma Ada_05(Directory_Entry_Type): Give default value to component Kind to avoidnot initialized warnings.* a-direct.adb (Current_Directory): Remove directory separator at theend.(Delete_Directory, Delete_Tree): Raise Name_Error if Directory is notan existing directory.(Fetch_Next_Entry): Give default value to variable Kind to avoid warning(Size (String)): Function C_Size returns Long_Integer, not File_Size.Convert the result to File_Size.* prj.ads: (Project_Error): New exception* prj-attr.adb: Except in procedure Initialize, Fail comes fromPrj.Com, not from Osint.(Attrs, Package_Attributes): Tables moved to private part of spec(Add_Attribute, Add_Unknown_Package): Moved to new child packagePrj.Attr.PM.(Register_New_Package (Name, Attributes), Register_New_Attribute): RaisePrj.Project_Error after call to Fail.(Register_New_Package (Name, Id)): Set Id to Empty_Package after callingFail. Check that package name is not already in use.* prj-attr.ads: Comment updates to indicate that all subprograms may beused by tools, not only by the project manager, and to indicate thatexception Prj.Prj_Error may be raised in case of problem.(Add_Unknown_Package, Add_Attribute): Moved to new child packagePrj.Attr.PM.(Attrs, Package_Attributes): Table instantiations moved from the body tothe private part to be accessible from Prj.Attr.PM body.* prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Packagefrom new package Prj.Attr.PM.(Parse_Attribute_Declaration): Call Add_Attribute from new packagePrj.Attr.PM.* Makefile.in: Add prj-attr-pm.o to gnatmake object list* gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Checkinstead of Elaboration_Checks).* a-calend.adb: Minor reformatting2004-09-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* gigi.h (maybe_pad_type): New declaration.(create_subprog_type): New arg RETURNS_BY_TARGET_PTR.* ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.* cuintp.c: Convert to use buildN.* decl.c (maybe_pad_type): No longer static.(gnat_to_gnu_entity, case E_Function): Handle case of returning bytarget pointer.Convert to use buildN.* trans.c (call_to_gnu): Add arg GNU_TARGET; supportTYPE_RETURNS_BY_TARGET_PTR_P. All callers changed.(gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call onRHS.(gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.(gnat_gimplify_expr, case ADDR_EXPR): New case.Convert to use buildN.* utils2.c (gnat_build_constructor): Also set TREE_INVARIANT andTREE_READONLY for const.Convert to use buildN.* utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.(create_var_decl): Refine when TREE_STATIC is set.Convert to use buildN.2004-09-09 Gary Dismukes <dismukes@gnat.com>* gnat_ugn.texi: Delete text relating to checking of ali and objectconsistency.* a-except.adb (Rcheck_*): Add pragmas No_Return for each of theseroutines.2004-09-09 Jose Ruiz <ruiz@act-europe.fr>* gnat_ugn.texi: Add Detect_Blocking to the list of configurationpragmas recognized by GNAT.* gnat_rm.texi: Document pragma Detect_Blocking.* s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,raise Program_Error if called from a protected operation.* s-taprob.adb (Lock): When pragma Detect_Blocking is active increasethe protected action nesting level.(Lock_Read_Only): When pragma Detect_Blocking is active increase theprotected action nesting level.(Unlock): When pragma Detect_Blocking is active decrease the protectedaction nesting level.* s-taskin.adb (Initialize_ATCB): Initialize to 0 theProtected_Action_Nesting.* s-taskin.ads: Adding the field Protected_Action_Nesting to theCommon_ATCB record. It contains the dynamic level of protected actionnesting for each task. It is needed for checking whether potentiallyblocking operations are called from protected operations.(Detect_Blocking): Adding a Boolean constant reflecting whether pragmaDetect_Blocking is active or not in the partition.* s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,raise Program_Error if called from a protected operation.(Task_Entry_Call): When pragma Detect_Blocking is active, raiseProgram_Error if called from a protected operation.(Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raiseProgram_Error if called from a protected operation.* s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,raise Program_Error if called from a protected operation.* s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,raise Program_Error if called from a protected operation, and increasethe protected action nesting level.(Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raiseProgram_Error if called from a protected operation, and increase theprotected action nesting level.(Unlock_Entries): When pragma Detect_Blocking is active decrease theprotected action nesting level.* s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,raise Program_Error if called from a protected operation, and increasethe protected action nesting level.(Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raiseProgram_Error if called from a protected operation, and increase theprotected action nesting level.(Protected_Single_Entry_Call): When pragma Detect_Blocking is active,raise Program_Error if called from a protected operation.(Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking isactive, raise Program_Error if called from a protected operation.(Unlock_Entry): When pragma Detect_Blocking is active decrease theprotected action nesting level.* sem_util.adb (Check_Potentially_Blocking_Operation): Remove theinsertion of the statement raising Program_Error. The run timecontains the required machinery for handling that.* sem_util.ads: Change comment associated to procedureCheck_Potentially_Blocking_Operation.This procedure does not insert a call for raising the exception becausethat is currently done by the run time.* raise.h (__gnat_set_globals): Pass the detect_blocking parameter.* init.c: Add the global variable __gl_detect_blocking that indicateswhether pragma Detect_Blocking is active (1) or not (0). Needed formaking the pragma available at run time.(__gnat_set_globals): Pass and update the detect_blocking parameter.* lib-writ.adb (Write_ALI): Set the DB flag in the ali file ifpragma Detect_Blocking is active.* lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.* ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flagDB is found in the ali file. Any unit compiled with pragmaDetect_Blocking active forces its effect in the whole partition.* a-retide.adb (Delay_Until): Raise Program_Error if pragmaDetect_Blocking is active and delay is called from a protectedoperation.* bindgen.adb (Gen_Adainit_Ada): When generating the call to__gnat_set_globals, pass 1 as Detect_Blocking parameter if pragmaDetect_Blocking is active (0 otherwise).(Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1as Detect_Blocking parameter if pragma Detect_Blocking is active (0otherwise).2004-09-09 Thomas Quinot <quinot@act-europe.fr>* gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators toGNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hashpackage.* s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.(Register_Receiving_Stub): Add Subp_Info formal parameter.Update API in placeholder implemetation of s-parint to reflect changesin distribution runtime library.* sem_ch3.adb (Expand_Derived_Record): Rename toExpand_Record_Extension.* sem_disp.adb (Check_Controlling_Formals): Improve error message forprimitive operations of potentially distributed object types that havenon-controlling anonymous access formals.* sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): Newsubprogram.New implementation of expansion for remote access-to-subprogram types,based on the RACW infrastructure.This version of sem_dist is compatible with PolyORB/DSA as well asGLADE.* sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragmaAsynchrronous that applies to a remote access-to-subprogram type, markthe underlying RACW type as asynchronous.* link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and__gnat_using_gnu_linker to 1.* Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,g-pehage.adb: Rename GNAT.Perfect_Hash.Generators toGNAT.Perfect_Hash_Generators, and remove the emptyGNAT.Perfect_Hash package.* atree.adb: Minor reformatting* exp_ch3.adb (Expand_Derived_Record): Rename toExpand_Record_Extension.(Build_Record_Init_Proc.Build_Assignment): The default expression ina component declaration must remain attached at that point in thetree so New_Copy_Tree copies it if the enclosing record type is derived.It is therefore necessary to take a copy of the expression when buildingthe corresponding assignment statement in the init proc.As a side effect, in the case of a derived record type, we now see theoriginal expression, without any rewriting that could have occurredduring expansion of the ancestor type's init proc, and we do not needto go back to Original_Node.* exp_ch3.ads (Expand_Derived_Record): Rename toExpand_Record_Extension.* exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.Returns the RACW type used to implement a remote access-to-subprogramtype.(Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):New subprograms. Used to create a proxy tagged object for a remotesubprogram. The proxy object is used as the designated objectfor RAS values on the same partition (unless All_Calls_Remote applies).(Build_Get_Unique_RP_Call): New subprogram. Build a call toSystem.Partition_Interface.Get_Unique_Remote_Pointer.(Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):Renamed from Add_RAS_*_Attribute.(Add_Receiving_Stubs_To_Declarations): Generate a table of localsubprograms.New implementation of expansion for remote access-to-subprogram types,based on the RACW infrastructure.* exp_dist.ads (Copy_Specification): Update comment to note that thisfunction can copy the specification from either a subprogramspecification or an access-to-subprogram type definition.2004-09-09 Ed Schonberg <schonberg@gnat.com>* sem_type.adb (Disambiguate): Handle properly an accidental ambiguityin an instance, between an explicit subprogram an one inherited from atype derived from an actual.* exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do notadd a polling call if the subprogram is to be inlined by the back-end,to avoid repeated calls with multiple inlinings.* checks.adb (Apply_Alignment_Check): If the expression in the addressclause is a call whose name is not a static entity (e.g. a dispatchingcall), treat as dynamic.2004-09-09 Robert Dewar <dewar@gnat.com>* g-trasym.ads: Minor reformatting* exp_ch3.adb (Component_Needs_Simple_Initialization): Don't exceptpacked arrays, since unused bits are expected to be zero for acomparison.2004-09-09 Eric Botcazou <ebotcazou@act-europe.fr>* exp_pakd.ads: Fix an inacurracy and a couple of typos in the headcomment.2004-09-09 Pascal Obry <obry@gnat.com>* mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File toenable map file generation. Add the right option to generate the mapfile if Map_File is set to True.* gnatdll.adb (Gen_Map_File): New variable.(Syntax): Add info about new -m (Map_File) option.(Parse_Command_Line): Add support for -m option.(gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.Minor reformatting.2004-09-09 Laurent Pautet <pautet@act-europe.fr>* gnatls.adb: Add a very verbose mode -V. Such mode is required by thenew gnatdist implementation.Define a subpackage isolating the output routines specific to thisverbose mode.2004-09-09 Joel Brobecker <brobecker@gnat.com>* Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.* gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.2004-09-09 Cyrille Comar <comar@act-europe.fr>* opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compileinternal unit.* opt.ads: Add Ada_Version_Runtime constant used to decide whichversion of the language is used to compile the run time.2004-09-09 Arnaud Charlet <charlet@act-europe.fr>* sem_util.adb (Requires_Transient_Scope): Re-enable handlingof variable length temporaries for function return now that theback-end and gigi support it.2004-09-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.* trans.c (struct stmt_group): Delete field GLOBAL.(gnat_init_stmt_group): Do not initialize it.(call_to_gnu): Use save_expr, not protect_multiple_eval.(Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2(gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.(gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.(start_stmt_group): Likewise.(add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.* utils2.c (ggc.h): Include.(build_call_raise): Call build_int_cst, not build_int_2.* utils.c (gnat_init_decl_processing): Fix arg tobuild_common_tree_nodes.(create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.(gnat_define_builtin): Set built_in_decls.(init_gigi_decls): Call build_int_cst, not build_int_2.* ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.(GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.(GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.(TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,SET_TYPE_MODULE): Use them.(TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.(SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.(SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,SET_TYPE_ADA_SIZE): Likewise.(TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.(DECL_CONST_CORRESPONDING_VAR,SET_DECL_CONST_CORRESPONDING_VAR): Likewise.(DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.(TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.(TYPE_RM_SIZE_NUM): New macro.(TYPE_RM_SIZE): Modified to use above.* cuintp.c: (build_cst_from_int): New function.(UI_To_gnu): Use it.* decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.(make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.(gnat_substitute_in_type, case ARRAY_TYPE): If old had aMIN_EXPR for the size, copy it into new.2004-09-01 Robert Dewar <dewar@gnat.com>* exp_ch6.adb (Expand_Call): Properly handle validity checks forpacked indexed component where array is an IN OUT formal. Thisgenerated garbage code previously.* gnat_ugn.texi: Document -fverbose-asm* gnat-style.texi: Minor updates (note that boolean constants andvariables are joined with AND/OR rather than short circuit forms).2004-09-01 Ed Schonberg <schonberg@gnat.com>* exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe ifit is an upward conversion of an untagged type with no representationchange.2004-09-01 Thomas Quinot <quinot@act-europe.fr>* rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array toSystem.Partition_Interface.* checks.adb (Apply_Access_Checks): Do not generate checks whenexpander is not active (but check for unset reference to prefix ofdereference).* sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewritepragma Debug as an if statement with a constant condition, forconsistent treatment of entity references contained within theenclosed procedure call.2004-09-01 Vincent Celier <celier@gnat.com>* bindgen.adb: (Set_EA_Last): New procedure(Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedureSet_EA_Last.(Gen_Adafinal_Ada): If no finalization, adafinal does nothing(Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can belinked without errors.(Gen_Exception_Table_Ada): Correct bugs when generating code for arraysST and EA.(Gen_Exception_Table_C): Correct same bugs* vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches* g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,on Windows, make sure that the drive letter is in upper case.* g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that onWindows, when the drive letter is added and Case_Sensitive is True, thedrive letter is forced to upper case.* mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx optionsto Options_2 for the call to MLib.Utl.Gcc.* bld.adb (Put_Include_Project): Use '/', not '\' on Windows asdirectory separator when defining BASE_DIR.2004-09-01 Pascal Obry <obry@gnat.com>* gprcmd.adb (Extend): Do not output trailing directory separator. Thisis not needed and it confuses Windows GNU/make which does not reportdirectory terminated by a slash as a directory.(gprcmd): Idem for "pwd" internal command.* Makefile.generic: Use __GPRCOLON__ instead of pipe character intarget names rewrite to fix regressions with recent version ofGNU/make. Starting with GNU/make 3.80 the pipe character was nothandled properly anymore.2004-09-01 Andreas Schwab <schwab@suse.de>* Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.* raise.c [!IN_RTS]: Undef abort.2004-08-27 Nathan Sidwell <nathan@codesourcery.com>* utils2.c (build_allocator): Use ssize_int.* utils.c (gnat_init_decl_processing): Ada has a signed sizetype.2004-08-27 Andreas Schwab <schwab@suse.de>* Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.2004-08-25 Nathan Sidwell <nathan@codesourcery.com>Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.2004-08-25 Nathan Sidwell <nathan@codesourcery.com>* cuintp.c (UI_To_gnu): Adjust build_int_cst calls.* trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.* utils.c (init_gigi_decls): Likewise.* utils2.c (build_call_raise, build_allocator): Likewise.2004-08-24 Nathan Sidwell <nathan@codesourcery.com>* utils.c (gnat_init_decl_processing): Adjustbuild_common_tree_nodes call.2004-08-20 Nathan Sidwell <nathan@codesourcery.com>* utils2.c (build_allocator): Use build_int_cst for negativesize types.2004-08-18 Richard Henderson <rth@redhat.com>* misc.c (LANG_HOOKS_HONOR_READONLY): Remove.2004-08-16 Nathan Sidwell <nathan@codesourcery.com>* cuintp.c (UI_To_gnu): Be more conservative with build_int_cstcall.s* trans.c (Exception_Handler_to_gnu_sjlj): Likewise.(gnat_to_gnu): Likewise.2004-08-16 Pascal Obry <obry@gnat.com>* adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCCbackend prior to GCC 3.4. With GCC 3.4 we are using the GCC's sharedoption and not mdll anymore. Update comment.2004-08-16 Pascal Obry <obry@gnat.com>* bld.adb (Put_Include_Project): Properly handle directory separatorson Windows.2004-08-16 Ed Schonberg <schonberg@gnat.com>* sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize bydecreasing the number of allocated junk nodes while searching for theappropriate subprogram.2004-08-15 Nathan Sidwell <nathan@codesourcery.com>* cuintp.c (UI_To_gnu): Use build_int_cst..* trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.* utils.c (init_gigi_decls): Likewise.* utils2.c (build_call_raise): Likewise.2004-08-13 Olivier Hainque <hainque@act-europe.fr>* decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocatorfor a global aliased object with a variable size and an unconstrainednominal subtype, pretend there is no initializer if the one we have isincomplete, and avoid referencing an inexistant component in there. Thepart we have will be rebuilt anyway and the reference may confusefurther operations.2004-08-13 Thomas Quinot <quinot@act-europe.fr>* einfo.ads: Minor reformatting* lib-writ.adb (Output_Main_Program_Line): Do not set parameterrestrictions in the ALI if we only want to warn about violations.2004-08-13 Vincent Celier <celier@gnat.com>* ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to Falsewhen creating a new Unit_Record in table Units.* gnatls.adb (Output_Unit): In verbose mode, output the restrictionsthat are violated, if any.* prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do notadd directory separator if path already ends with a directory separator.2004-08-13 Ed Schonberg <schonberg@gnat.com>* rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefinedunit, this is an attempt to inline a construct that is not available inthe current restricted mode, so abort rather than trying to continue.* sem_ch3.adb (Build_Underlying_Full_View): If the new type hasdiscriminants that rename those of the parent, recover names oforiginal discriminants for the constraint on the full view of theparent.(Complete_Private_Subtype): Do not create a subtype declaration if thesubtype is an itype.* gnat_rm.texi: Added section on implementation of discriminatedrecords with default values for discriminants.2004-08-13 Ed Schonberg <schonberg@gnat.com>PR ada/15601* sem_res.adb (Make_Call_Into_Operator): Handle properly the case wherethe second operand is overloaded.2004-08-10 Richard Henderson <rth@redhat.com>* utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,add __builtin_alloca.2004-08-10 Richard Henderson <rth@redhat.com>* config-lang.in (boot_language): Yes.2004-08-09 Thomas Quinot <quinot@act-europe.fr>* g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrindfrom complaining on potential uninitialized reference.Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account fornew specification and test explicitly for non-zero return value.* g-socthi.ads (Is_Socket_In_Set): Declare imported function asreturning C.int, to avoid using a derived boolean type.* exp_ch5.adb (Make_Tag_Ctrl_Assignments): UseDuplicate_Subexpr_No_Checks in preference to direct use ofRemove_Side_Effects and New_Copy_Tree.Clear Comes_From_Source on prefix of 'Size attribute reference.* g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,g-socthi-vxworks.adb: Change calls toGNAT.Sockets.Thin.Is_Socket_In_Set to account for new specificationand test explicitly for non-zero return value.* g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:(Is_Socket_In_Set): Declare imported function as returning C.int, toavoid using a derived boolean type.2004-08-09 Albert Lee <lee@gnat.com>* system-irix-n32.ads: Refine tasking priority constants for IRIX.2004-08-09 Pascal Obry <obry@gnat.com>* gnat_ugn.texi: Document new way to build DLLs on Windows usingGCC's -shared option.* mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options intoOptions_2 parameter (options put after object files).2004-08-09 Olivier Hainque <hainque@act-europe.fr>* decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition toignore overflows on low and high bounds of an index to also account fordifferences in signedness between sizetype and gnu_index_subtype.These are as legitimate as the ones caused by a lower TYPE_PRECISIONon sizetype.2004-08-09 Robert Dewar <dewar@gnat.com>* s-solita.ads, s-solita.adb: Minor reformatting* gnat_rm.texi: Add documentation for pragma Profile (Restricted)Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to newobsolescent sectionAdd note that No_Implicit_Conditionals does not suppressrun time constraint checks.* vms_conv.ads: Minor reformatting* s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanupand necessary for following change).(Mark): Return new format Mark_Id containing sec stack address(Release): Use sec stack address from Mark_Id avoiding Self call* s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stackpointer (cleanup and necessary for following change).Define Mark_Id as record containing address of secondary stack, that wayRelease does not need to find the stack again, decreasing the number ofcalls to Self and improving efficiency.* sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference* sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value ofcase variable into the individual case branches when possible.* sem_ch11.adb: Minor reformatting* prj.ads: Correct spelling of suffixs* prj-nmsc.adb: Minor reformattingCorrect spelling suffixs throughout (also in identifiers)* freeze.adb: Minor spelling correction* exp_ch2.adb: Cleanups to handling of Current_Value(no functional effect).* bld.adb: Correct spelling of suffixs* einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument2004-08-09 Ed Schonberg <schonberg@gnat.com>PR ada/15408* sem_ch7.adb (Install_Private_Declarations): In the body of thepackage or of a child, private entities are both immediately_visibleand not hidden.2004-08-09 Ed Schonberg <schonberg@gnat.com>* sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,there are no range checks on the value of the literal.* exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node beingwrapped is the triggering alternative of an asynchronous select, actionstatements mustbe inserted before the select itself.* sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly thecase where the prefix is a protected function call.(Resolve_Attribute, case 'Access): The attribute reference on asubprogram is legal in a generic body if the subprogram is declaredelsewhere.2004-08-09 Vincent Celier <celier@gnat.com>* makegpr.adb (Build_Library): Link with g++ if C++ is one of thelanguages, otherwise building the library may fail with unresolvedsymbols.(Compile_Sources): Do not build libraries if -c switch is used* gnatlink.adb (Process_Args): New switches -M and -Mmap(Write_Usage): If map file creation is supported, output new switches-M and -Mmap.(Gnatlink): When -M is specified, add the necessary switch(es) to thegcc call, when supported.* Makefile.in: Added indepsw.o to the object list for gnatlinkSpecified the AIX, GNU/Linux and Windows versions of indepsw.adb* indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,indepsw.adb, indepsw.ads: New files.2004-08-09 Bernard Banner <banner@gnat.com>* system-vxworks-x86.ads, s-vxwork-x86.ads: New files.* Makefile.in: add section for vxworks x862004-08-09 Hristian Kirtchev <kirtchev@gnat.com>* exp_ch3.adb (Build_Init_Statements): Add extra condition to deal withper-object constrained components where the discriminant is of anAccess type.(Build_Record_Init_Proc): Add condition to prevent the inheritance ofthe parent initialization procedure for derived Unchecked_Unions.Instead, derived Unchecked_Unions build their own initializationprocedure.(Build_Variant_Record_Equality): Implement Unchecked_Union equality.Check the body of the subprogram for details.(Freeze_Record_Type): Prevent the inheritance of discriminant checkingfunctions for derived Unchecked_Union types by introducing a condition.Allow the creation of TSS equality functions for Unchecked_Unions.(Make_Eq_Case): Rename formal parameter Node to E in function signature.Add formal parameter Discr to function signature. Discr is used tocontrol the generated case statement for Unchecked_Union types.(Make_Eq_If): Rename formal parameter Node to E in function signature.* exp_ch4.adb (Build_Equality_Call): Implement equality calls forUnchecked_Unions.Check the body of the subprogram for details.(Expand_Composite_Equality): Augment composite type equality to includecorrect handling of Unchecked_Union components.(Expand_N_In): Add condition to detect illegal membership tests when thesubtype mark is a constrained Unchecked_Union and the expression lacksinferable discriminants, and build a Raise_Program_Error node.(Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Usedto detect types that contain components of unconstrained Unchecked_Unionsubtype. Add condition to detect equality between types that have anunconstrained Unchecked_Union component, and build a Raise_Program_Errornode. Add condition to detect equality between Unchecked_Union typesthat lack inferable discriminants, and build a Raise_Program_Error node.Otherwise build a TSS equality function call.(Expand_N_Type_Conversion): Add condition to detect illegal conversionsfrom a derived Unchecked_Union to an unconstrained non-Unchecked_Unionwith the operand lacking inferable discriminants, and build a Raise_Program_Error node.(Expand_Record_Equality): Remove guard that prevents Unchecked_Unioncomposite equality.(Has_Inferable_Discriminants): Implement new predicate for objects andexpressions of Unchecked_Union type. Check the body of subprogram fordetails.(Has_Unconstrained_UU_Components): Add functionComponent_Is_Unconstrained_UU. It is used to detect whether a singlecomponent is of an unconstrained Unchecked_Union subtype. Add functionVariant_Is_Unconstrained_UU. It is used to detect whether a singlecomponent inside a variant is of an unconstrained Unchecked_Union type.* exp_ch5.adb (Expand_Assign_Record): Add condition to copy theinferred discriminant values. Add condition to generate a casestatement with an inferred discriminant as the switch.(Make_Component_List_Assign): Introduce a Boolean flag that determinesthe behaviour of the subprogram in the presence of an Unchecked_Union.Add condition to trigger the usage of the inferred discriminant valueas the generated case statement switch.(Make_Field_Assign): Introduce a Boolean flag that determines thebehaviour of the subprogram in the presence of an Unchecked_Union. Addcondition to trigger the usage of the inferred discriminant value asthe right-hand side of the generated assignment.* exp_ch6.adb (Expand_Call): Add condition to skip extra actualparameter generation when dealing with Unchecked_Unions.* checks.adb (Apply_Discriminant_Check): Do not apply discriminantchecks for Unchecked_Unions.* einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint* exp_attr.adb (Expand_N_Attribute_Reference): ProduceRaise_Program_Error nodes for the execution of Read and Writeattributes of Unchecked_Union types and the execution of Input andOutput attributes of Unchecked_Union types that lack defaultdiscriminant values.* sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragmaUnchecked_Union. Add procedure Check_Component. It is used to inspectper-object constrained components of Unchecked_Unions for beingUnchecked_Unions themselves. Add procedure Check_Variant. It is used tocheck individual components withing a variant.* sem_res.adb (Resolve_Comparison_Op): Remove guard that preventscomparison of Unchecked_Unions.(Resolve_Equality_OP): Remove guard that prevents equality betweenUnchecked_Unions.* sem_util.adb (Build_Component_Subtype): Add guard to prevent creationof component subtypes for Unchecked_Union components.(Get_Actual_Subtype): Add condition that returs the Unchecked_Union typesince it is the actual subtype.* sem_ch12.adb (Instantiate_Type): Add condition to detect the correctpass of Unchecked_Union subtypes as generic actuals to formal typesthat lack known_discriminant_parts or that are derived Unchecked_Uniontypes, and do nothing. In any other case, produce an error message.* sem_ch3.adb (Analyze_Component_Declaration): Add functionContains_POC. It determines whether a constraint uses the discriminantof an enclosing record type.Add condition to detect per-object constrained component and set theappropriate flag.(Derived_Type_Declaration): Remove guard that prevents derivation fromUnchecked_Union types.(Process_Subtype): Remove quard that prevents the creation of Unchecked_Union subtypes.* sem_ch4.adb (Analyze_Selected_Component): Correct the detection ofreferences to Unchecked_Union discriminants.* sem_ch6.adb (Create_Extra_Formals): Add condition to skip extraformal generation when dealing with Unchecked_Unions.(Set_Actual_Subtypes): Add condition to prevent generation of actualsubtypes for Unchecked_Unions.* sem_ch7.adb (Analyze_Package_Specification): Add procedureInspect_Unchecked_Union_Completion. It is used to detect incorrectcompletions of discriminated partial views by Unchecked_Unions andproduce an error message.2004-08-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* trans.c (struct stmt_group): New field, GLOBAL.(global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.(struct elab_info): New struct.(elab_info_list, gnu_elab_proc_stack): New variables.(Compilation_Unit_to_gnu): New procedure.(gigi): Call it and also handle elaboration procs we've saved.(gnat_init_stmt_group): Don't set global_stmt_group; instead initializeglobal field from parent.(gnat_to_gnu): Get decl from gnu_elab_proc_stack.(gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.(start_stmt_group): Initialize global field from parent.(add_decl_expr): Set to global for current statement group.(gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, notpost.* utils.c (global_bindings_p): True when no current_function_decl; nolonger check current_binding_level.2004-08-09 Ben Brosgol <brosgol@gnat.com>* xgnatugn.adb: Added logic to deal with @ifset/@ifclear for editionchoice.* gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.2004-08-06 Andreas Schwab <schwab@suse.de>* utils.c (gnat_define_builtin): Remove second parameter ofmake_decl_rtl.(begin_subprog_body): Likewise.2004-07-26 Arnaud Charlet <charlet@act-europe.fr>* sem_util.adb (Requires_Transient_Scope): Temporarily disableoptimization, not supported by the tree-ssa back-end.2004-07-26 Olivier Hainque <hainque@act-europe.fr>* s-mastop-irix.adb: Update comments.* a-except.adb (Exception_Information): Raise Constraint_Error ifexception Id is Null_Id.This is required behavior, which is more reliably and clearly checkedat the top level interface level.2004-07-26 Javier Miranda <miranda@gnat.com>* exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initializationcall if a component has no default_expression and the box is used.* sem_aggr.adb (Resolve_Array_Aggregate): If a component has nodefault_expression and you use box, it behaves as if you had declared astand-alone object.(Resolve_Record_Aggregate): If a component has no default_expression andyou use box, it behaves as if you had declared a stand-alone object.* sem_ch10.adb (Install_Siblings): Do not make visible the privateentities of private-with siblings.2004-07-26 Ed Schonberg <schonberg@gnat.com>* sem_ch3.adb (Build_Underlying_Full_View): If this is the full viewfor a component of an itype, set the parent pointer for analysis,there is no list in which to insert it.* sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only forbona-fide renamings, not for inherited operations.* exp_ch4.adb (Expand_Allocator_Expression): If the allocator is anactual for a formal that is an access parameter, create localfinalization list even if the expression is not an aggregate.2004-07-26 Ed Schonberg <schonberg@gnat.com>PR ada/16213* sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):Diagnose properly illegal subprogram renamings that are library units.2004-07-26 Ed Schonberg <schonberg@gnat.com>PR ada/15588* sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a typeconversion rewritten as an unchecked conversion, check that originalexpression is a variable.* exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as anunchecked_conversion, create new node rather than rewriting in place,to preserve original construct.2004-07-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* gigi.h (gnat_expand_body): Deleted.* Make-lang.in: (trans.o): Depends on function.h.* misc.c: (gnat_expand_body): Moved to here.* trans.c (gnat_expand_body_1): Deleted.(gnat_expand_body): Moved from here.(gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.(add_stmt): Check for marked visited with global_bindings_p.(gnat_gimplify_expr, case COMPONENT_REF): New case.(gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.* utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in aVIEW_CONVERT_EXPR if not operation type.* utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD forfat pointer.* decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minorchanges: reformatting of negation operators, removing unneededinequality comparison with zero, converting equality comparisons withzero to negations, changing int/0/1 to bool/false/true, replace callsto gigi_abort with abort, and various other similar changes.2004-07-26 Vincent Celier <celier@gnat.com>* gnatcmd.adb (GNATCmd): Add processing for new built-in command"setup".* make.adb (Gnatmake): Fail when a library is not present and there isno object directory.* mlib-prj.adb (Check_Library): No need to check if the library needsto be rebuilt if there is no object directory, hence no object filesto build the library.* opt.ads (Setup_Projects): New Boolean flag.* prj-nmsc.adb (Locate_Directory): New parameter Project, Kind andLocation.Create directory when Kind /= "" and in "gnat setup". Report error ifdirectory cannot be created.(Ada_Check): Create library interface copy dir if it does not existand we are in "gnat setup".(Find_Sources): No error if in "gnat setup" and no Ada sources werefound.(Language_Independent_Check): Create object directory, exec directoryand/or library directory if they do not exist and we are in"gnat setup".* vms_conv.ads: (Command_Type): New command Setup.* vms_conv.adb (Initialize): Add Setup component of Cammand_List.* vms_data.ads: Add qualifiers/switches for new built-in command"setup".2004-07-25 Richard Henderson <rth@redhat.com>* utils.c (create_subprog_decl): Set DECL_ARTIFICIAL andDECL_IGNORED_P on RESULT_DECL.2004-07-20 Olivier Hainque <hainque@act-europe.fr>* a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamicallocation and potentially overflowing update withTailored_Exception_Information. Use the sec-stack free proceduralinterface to output Exception_Information instead.* a-except.adb (To_Stderr): New subprogram for character, and stringversion moved from a-exextr to be visible from other separate units.(Tailored_Exception_Information): Remove the procedural version,previously used by the default Last_Chance_Handler and not any more.Adjust various comments.* a-exexda.adb: Generalize the exception information proceduralinterface, to minimize the use of secondary stack and the need forlocal buffers when the info is to be output to stderr:(Address_Image): Removed.(Append_Info_Character): New subprogram, checking for overflows andoutputing to stderr if buffer to fill is of length 0.(Append_Info_String): Output to stderr if buffer to fill is of length 0.(Append_Info_Address, Append_Info_Exception_Name,Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,Append_Info_Basic_Exception_Traceback,Append_Info_Exception_Information): New subprograms.(Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.(Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,Exception_Info_Maxlength, Exception_Name_Length,Exception_Message_Length): New subprograms.(Exception_Information): Use Append_Info_Exception_Information.(Tailored_Exception_Information): UseAppend_Info_Basic_Exception_Information.Export services for the default Last_Chance_Handler.* a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable byother separate units.2004-07-20 Vincent Celier <celier@gnat.com>* clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.2004-07-20 Ed Schonberg <schonberg@gnat.com>* freeze.adb (Freeze_Entity): If entity is a discriminated record type,emit itype references for the designated types of component types thatare declared outside of the full record declaration, and that maydenote a partial view of that record type.2004-07-20 Ed Schonberg <schonberg@gnat.com>PR ada/15607* sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtypewhich is the designated type in an access component declaration, to thelist of incomplete dependents of the parent type, to avoid elaborationissues with out-of-scope subtypes.(Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from thefull view of the parent.2004-07-20 Ed Schonberg <schonberg@gnat.com>PR ada/15610* sem_ch8.adb (Find_Expanded_Name): If name is overloaded, rejectentities that are hidden, such as references to generic actualsoutside an instance.2004-07-20 Javier Miranda <miranda@gnat.com>* sem_ch4.adb (Try_Object_Operation): New subprogram that givessupport to the new notation.(Analyze_Selected_Component): Add call to Try_Object_Operation.2004-07-20 Jose Ruiz <ruiz@act-europe.fr>* s-taprob.adb: Adding the elaboration code required for initializingthe tasking soft links that are common to the full and the restrictedrun times.* s-tarest.adb (Init_RTS): Tasking soft links that are shared with therestricted run time has been moved to the packageSystem.Soft_Links.Tasking.* s-tasini.adb (Init_RTS): Tasking soft links that are shared with therestricted run time has been moved to the packageSystem.Soft_Links.Tasking.* Makefile.rtl: Add entry for s-solita.o in run-time library list.* s-solita.ads, s-solita.adb: New files.2004-07-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,Case_Statement_to_gnu): Split off from gnat_to_gnu.(Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,Exception_Handler_to_gnu_zcx): Likewise.2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>* gigi.h (builtin_function): Declare.2004-07-15 Robert Dewar <dewar@gnat.com>* makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minorreformatting* gnat_ugn.texi: Add instantiation of direct_io or sequential_io withaccess values as an example of a warning.* gnat_rm.texi: Document new attribute Has_Access_Values* gnat-style.texi: Document that box comments belong on nestedsubprograms* sem_util.ads (Has_Access_Values): Improved documentation* s-finimp.ads, s-finimp.adb: Fix spelling error in comment* sem_prag.adb (Check_Duplicated_Export_Name): New procedure(Process_Interface_Name): Call to this new procedure(Set_Extended_Import_Export_External_Name): Call to this new procedure* s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment* a-direio.ads, a-sequio.ads: Warn if Element_Type has access values* einfo.ads: Minor comment typo fixed2004-07-15 Jose Ruiz <ruiz@act-europe.fr>* snames.adb: Add _atcb.* snames.ads: Add Name_uATCB.* s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated(in the expanded code) when using the restricted run time.* s-tarest.ads (Create_Restricted_Task): Created_Task transformed intoa in parameter in order to allow ATCBs to be preallocated (in theexpanded code).* s-taskin.adb (Initialize_ATCB): T converted into a in parameter inorder to allow ATCBs to be preallocated. In case of error, the ATCB isdeallocated in System.Tasking.Stages.* s-taskin.ads (Initialize_ATCB): T converted into a in parameter inorder to allow ATCBs to be preallocated.* s-tassta.adb (Create_Task): In case of error the ATCB is deallocatedhere. It was previously done in Initialize_ATCB.* rtsfind.ads: Make the Ada_Task_Control_Block visible.* exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using theRestricted run time.* exp_ch3.adb: When using the Restricted run time, pass thepreallocated Ada_Task_Control_Block when creating a task.2004-07-15 Ed Schonberg <schonberg@gnat.com>* sem_util.adb (Normalize_Actuals): If there are no actuals on afunction call that is itself an actual in an enclosing call, diagnoseproblem here rather than assuming that resolution will catch it.* sem_ch7.adb (Analyze_Package_Specification): If the specification isthe local copy of a generic unit for a formal package, and the genericis a child unit, install private part of ancestors before compilingprivate part of spec.* sem_cat.adb (Validate_Categorization_Dependency): Simplify code touse scope entities rather than tree structures, to handle properlyparent units that are instances rewritten as bodies for inliningpurposes.* sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,Remove_Parents): Handle properly a parent unit that is aninstantiation, when the unit has been rewritten as a body for inliningpurposes.* par.adb (Goto_List): Global variable to collect goto statements in agiven unit, for use in detecting natural loops.* par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, foruse in detecting natural loops.* par-labl.adb (Find_Natural_Loops): Recognize loops create bybackwards goto's, and rewrite as a infinite loop, to improve localityof temporaries.* exp_util.adb (Force_Evaluation): Recognize a left-hand sidesubcomponent that includes an indexed reference, to prevent thegeneration of copies that would miscompile the desired assignmentstatement.(Build_Task_Image_Decls): Add a numeric suffix togenerated name for string variable, to avoid spurious conflicts withthe name of the type of a single protected object.* exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use aloop with an explicit exit statement, to avoid generating anout-of-range value with 'Succ leading to spurious constraint_errorswhen compiling with -gnatVo.2004-07-15 Thomas Quinot <quinot@act-europe.fr>* sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: itmight not be analyzed yet, even if its Etype is already set (case of anunchecked conversion built using Unchecked_Convert_To, for example).If the prefix has already been analyzed, this will be a nop anyway.* exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of acontroller type, or an assignment of a record type with controlledcomponents, copy only user data, and leave the finalization chainpointers untouched.2004-07-15 Vincent Celier <celier@gnat.com>* make.adb (Collect_Arguments): Improve error message when attemptingto compile a source not part of any project, when -x is not used.* prj.ads: (Defined_Variable_Kind): New subtype* prj-attr.adb (Register_New_Package): Two new procedures to registera package with or without its attributes.(Register_New_Attribute): Mew procedure to register a new attribute in apackage.New attribute oriented subprograms: Attribute_Node_Id_Of,Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,Next_Attribute.New package oriented subprograms: Package_Node_Id_Of,Add_Unknown_Package, First_Attribute_Of, Add_Attribute.* prj-attr.ads (Attribute_Node_Id): Now a private, self initializedtype.(Package_Node_Id): Now a private, self initialized type(Register_New_Package): New procedure to register a package with itsattributes.New attribute oriented subprograms: Attribute_Node_Id_Of,Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,Next_Attribute.New package oriented subprograms: Package_Node_Id_Of,Add_Unknown_Package, First_Attribute_Of, Add_Attribute.* prj-dect.adb (Parse_Attribute_Declaration,Parse_Package_Declaration): Adapt to new spec of Prj.Attr.* prj-makr.adb (Make): Parse existing project file before creatingother files. Fail if there was an error during parsing.* prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt tonew spec of Prj.Attr.* prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adaptto new spec of Prj.Attr.2004-07-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* utils2.c: Fix typo in comment.2004-07-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.* utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.2004-07-14 Andreas Schwab <schwab@suse.de>* trans.c (gnat_init_stmt_group): Remove duplicate definition.2004-07-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* decl.c: (gnat_to_gnu_entity, object case): Convert initializer toobject type.(gnat_to_gnu_entity, case E_Record_Subtype): Properly setTYPE_STUB_DECL.* misc.c (gnat_types_compatible_p): New function.(LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.(LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.* trans.c (gigi): Move processing of main N_Compilation_Unit here.(gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.(add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.(mark_visited): Don't mark dummy type.(tree_transform <N_Procedure_Call_Statement>): Unless this is an Inparameter, we must remove any LJM building from GNU_NAME.(gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.(pos_to_constructor): Use int_const_binop.(gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL ofPARM_DECL.* utils.c (gnat_init_decl_processing): Don't make two "void" decls.(gnat_pushlevel): Set TREE_USE on BLOCK node.(gnat_install_builtins): Add __builtin_memset.2004-07-13 Olivier Hainque <hainque@act-europe.fr>* decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointerfor a renaming, stabilize the initialization expression if we are at alocal level. At the local level, uses of the renaming may be performedby a direct dereference of the initializing expression, and we don'twant possible variables there to be evaluated for every use.* trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosingthem on the way. Account for the fact that we may introduce sideeffects in the process.2004-07-13 Richard Henderson <rth@redhat.com>* misc.c (default_pass_by_ref): Use pass_by_reference.2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>* misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.2004-07-08 Richard Henderson <rth@redhat.com>* trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Updatecommentary.2004-07-06 Vincent Celier <celier@gnat.com>* vms_conv.ads: Minor reformatting.Alphabetical order for enumerated values of type Command_Type, to havethe command in alphabetical order for the usage.* vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True forthe special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).* gnat_ugn.texi: Document new switch -dn for the GNAT driver.* makegpr.adb (Global_Archive_Exists): New global Boolean variable(Add_Archive_Path): Only add the global archive if there is one.(Build_Global_Archive): Set Global_Archive_Exists depending if there isor not any object file to put in the global archive, and don't builda global archive if there is none.(X_Switches): New table(Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches storedin the X_Switches table, if any.(Initialize): Make sure the X_Switches table is empty(Scan_Arg): Record -X switches in table X_Switches* opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.* make.adb: Minor comment fix* gnatname.adb (Gnatname): When not on VMS, and gnatname has beeninvoked with directory information, add the directory in front of thepath.* gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has beeninvoked with directory information, add the directory in front of thepath.* gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary fileswhen Keep_Temporary_Files is False.(GNATCmd): When not on VMS, and the GNAT driver has been invoked withdirectory information, add the directory in front of the path.When not on VMS, handle new switch -dn before the command to setKeep_Temporary_Files to True.(Non_VMS_Usage): Use lower case for the non VMS usage: this is valideverywhere.* gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has beeninvoked with directory information, add the directory in front of thepath.2004-07-06 Thomas Quinot <quinot@act-europe.fr>* snames.ads, snames.adb (Name_Stub): New name for the distributedsystems annex.* rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.* g-socket.adb (To_Timeval): Fix incorrect conversion ofSelector_Duration to Timeval for the case of 0.0.* exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste ofdocumentation from Evolve_And_Then.2004-07-06 Jose Ruiz <ruiz@act-europe.fr>* s-taprop-tru64.adb, s-taprop-os2.adb,s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.2004-07-06 Robert Dewar <dewar@gnat.com>* s-osinte-hpux.ads, s-osinte-freebsd.ads,s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,s-interr-sigaction.adb, s-taprop-irix-athread.adb,s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,a-tags.ads, bindgen.ads, checks.adb, checks.adb,csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,vms_data.ads: Minor reformatting,Fix bad box comment format.* gnat_rm.texi: Fix minor grammatical error* sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values* sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow manymore cases of discriminated records to be recognized as not needing asecondary stack.(Has_Access_Values): New function.* snames.h, snames.adb, snames.ads: New attribute Has_Access_Values* cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change nameSet_Prim_Alignment to Set_Elem_Alignment (more accurate correspondencewith LRM terminology).Change terminology in comments primitive type => elementary type.2004-07-06 Ed Schonberg <schonberg@gnat.com>PR ada/15602* sem_ch7.adb (Unit_Requires_Body): For a generic package, the formalparameters do not impose any requirements on the presence of a body.2004-07-06 Ed Schonberg <schonberg@gnat.com>PR ada/15593* sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not acompilation unit and is in an open scope at the point of instantiation,assume that a body may be present later.2004-07-06 Ed Schonberg <schonberg@gnat.com>* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):Improve error message when specified size is not supported.* sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogramis never a primitive operation.2004-07-05 Andreas Schwab <schwab@suse.de>* ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): UseRECORD_OR_UNION_CHECK.(TYPE_CONTAINS_TEMPLATE_P): Likewise.2004-07-04 Kelley Cook <kcook@gcc.gnu.org>* Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicitdependency on xgnatugn, instead build it via a submake.(ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.2004-07-04 Richard Henderson <rth@redhat.com>* utils2.c (gnat_mark_addressable): Don't put_var_into_stack.2004-07-01 Richard Henderson <rth@redhat.com>* trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.* utils.c (max_size): Likewise.2004-06-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,and rest_of_type_compilation; add arg to create_*_decl.(annotate_decl_with_node): Deleted.(gnat_to_gnu_entity, case E_Array_Type): Set location of fields.* gigi.h (get_decls, block_has_vars, pushdecl): Deleted.(get_current_block_context, gnat_pushdecl): New declarations.(gnat_init_stmt_group): Likewise.(create_var_decl, create_type_decl, create_subprog_decl): Add new arg.* misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.(LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.(gnat_init): Call gnat_init_stmt_group.* trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.(gnu_pending_elaboration_list): Deleted.(mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.(gigi): Rearrange initialization calls and move some to last above.(gnat_to_gnu): If statement and not in procedure, go into elab proc.Delete calls to add_decl_expr; add arg to create_*_decl.(gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.(gnat_to_gnu, case N_Subprogram_Body): Move some code tobegin_subprog_body and call it.Don't push and pop ggc context.(gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.(add_stmt): Remove handling of DECL_EXPR from here.If not in function, mark visited.(add_decl_expr): Put global at top level.Check for cases of DECL_INITIAL we have to handle here.(process_type): Add extra arg to create_type_decl.(build_unit_elab): Rework to just gimplify.* utils.c (pending_elaborations, elist_stack, getdecls): Deleted.(block_has_vars, mark_visited, add_pending_elaborations): Likewise.(get_pending_elaborations, pending_elaborations_p): Likewise.(push_pending_elaborations, pop_pending_elaborations): Likewise.(get_elaboration_location, insert_elaboration_list): Likewise.(gnat_binding_level): Renamed from ada_binding_level.(init_gnat_to_gnu): Don't clear pending_elaborations.(global_bindings_p): Treat as global if no current_binding_level.(set_current_block_context): New function.(gnat_pushdecl): Renamed from pushdecl; major rework.All callers changed.(create_type_decl, create_var_decl, create_subprog_decl): Add new arg.(finish_record_type): Call call pushdecl for stub decl.(function_nesting_depth): Deleted.(begin_subprog_body): Delete obsolete code.* utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.2004-06-28 Robert Dewar <dewar@gnat.com>* mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting* exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, todeal with problem of inefficient slices on machines with strictalignment, when the slice is a component of a composite.* checks.adb (Apply_Array_Size_Check): Do not special case 64-bitmachines, we need the check there as well.2004-06-28 Ed Schonberg <schonberg@gnat.com>* exp_ch5.adb (Expand_Assign_Array): Use correct condition todetermine safe copying direction for overlapping slice assignmentswhen component is controlled.* sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of aformal derived type in the actual for a formal package are visible inthe enclosing instance.2004-06-28 Ed Schonberg <schonberg@gnat.com>PR ada/15600* sem_util.adb (Trace_Components): Diagnose properly an illegalcircularity involving a private type whose completion includes aself-referential component.(Enter_Name): Use Is_Inherited_Operation to distinguish a sourcerenaming or an instantiation from an implicit derived operation.2004-06-28 Pascal Obry <obry@gnat.com>* mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix fromDLL.(Library_File_Name_For): Idem.2004-06-28 Matthew Gingell <gingell@gnat.com>* g-traceb.ads: Add explanatory note on the format of addressesexpected by addr2line.2004-06-28 Jerome Guitton <guitton@act-europe.fr>* Makefile.in: Force debugging information on s-tasdeb.adb,a-except.adb and s-assert.adb needed by the debugger.2004-06-28 Vincent Celier <celier@gnat.com>* make.adb (Collect_Arguments_And_Compile): Change Flag1 toNeed_To_Build_Lib.(Gnatmake): Ditto.* mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib* prj.adb: Minor reformatting(Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.* prj.ads: Comment updatesMinor reformatting(Project_Data): Change Flag1 to Need_To_Build_Lib.Remove Flag2: not used.* prj-dect.adb (Parse_Declarative_Items): Accept "null" as adeclaration.* gnat_ugn.texi: Put a "null;" declaration in one project file example* gnat_rm.texi: Document Empty declarations "null;".* makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives infront of the linker options.(Link_Foreign): Put the global archives and the libraries in front ofthe linker options.2004-06-28 Javier Miranda <miranda@gnat.com>* rtsfind.adb: (Get_Unit_Name): Fix typo in comment(RTU_Loaded): Code cleanup(Set_RTU_Loaded): New procedure to register as *loaded* explicitlywithed predefined units.* rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*explicitly withed predefined units.Fix typo in comment* sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*explicitly withed predefined units.2004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* ada-tree.def (DECL_STMT): Deleted.* ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.(DECL_STMT_VAR): Deleted.* decl.c: add_decl_stmt now add_decl_expr.* gigi.h: Likewise.* trans.c: Likewise.(gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.(gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.(add_stmt): Only handle padded type here.(add_stmt_with_node): Allow gnat_node to not be present.(gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.(gnat_gimplify_stmt, case DECL_STMT): Deleted.(gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,make a SAVE_EXPR for the entire fat pointer.* utils.c (pushdecl): Walk a DECL_EXPR in global case.(create_index_type): Make a DECL_EXPR.(end_subprog_body): Don't call allocate_struct_function here butdo clear cfun.2004-06-25 Pascal Obry <obry@gnat.com>* makegpr.adb (Build_Library): Remove parameter Lib_Address andRelocatable from Build_Dynamic_Library call.* gnat_ugn.texi: Change documentation about Library_Kind. Dynamic andRelocatable are now synonym.* Makefile.in: Use s-parame-mingw.adb on MingW platform.* mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.Remove parameter Lib_Address and Relocatable from Build_Dynamic_Librarycall.* mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameterLib_Address and Relocatable.(Default_DLL_Address): Removed.* mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:(Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.(Default_DLL_Address): Removed.* mlib-tgt-mingw.adb: Ditto.(Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.* s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to computethe initial thread stack size.* a-strmap.ads: Move package L to private part as it is not used inthe spec. Found while reading code.2004-06-25 Olivier Hainque <hainque@act-europe.fr>* tracebak.c: Introduce support for a GCC infrastructure basedimplementation of __gnat_backtrace.* raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception recordany more. Use accessors instead. This eases maintenance and relaxessome alignment constraints.(_GNAT_Exception structure): Remove the Ada specific fields(EID_For, Adjust_N_Cleanups_For): New accessors, exported bya-exexpr.adb.(is_handled_by, __gnat_eh_personality): Replace component references toexception structure by use of the new accessors.* init.c (__gnat_initialize): Adjust comments to match the justreverted meaning of the -static link-time option.* adaint.c (convert_addresses): Arrange not to define a stub formips-irix any more, as we now want to rely on a real version from arecent libaddr2line.* a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so thatthe personality routine can use them and not have to rely on a Ccounterpart of the record anymore. This simplifies maintenance andrelaxes the constraint of having Standard'Maximum_Alignment matchBIGGEST_ALIGNMENT.Update comments, and add a section on the common header alignment issue.2004-06-25 Geert Bosch <bosch@gnat.com>* a-ngelfu.adb (Tanh): Use full 20 digit precision for constants inpolynomial approximation. Fixes inconsistency with Cody/Waite algorithm.2004-06-25 Robert Dewar <dewar@gnat.com>* gnat_rm.texi: Fix section on component clauses to indicate that therestriction on byte boundary placement still applies for bit packedarrays.Add comment on stack usage from Initialize_Scalars* gnat_ugn.texi: Add documentation for -gnatyLnnn* stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option forlimiting nesting level.* usage.adb: Add line for -gnatyLnnn switch* g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,sem_ch13.adb, exp_aggr.adb: Minor reformatting* sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on basetype as well as on the subtype. This corrects a problem in freeze insetting alignments of atomic types.* sem_eval.ads: Minor comment typo fixed* par-util.adb (Push_Scope_Stack): Check for violation of max nestinglevel. Minor reformatting.* fname.adb (Is_Predefined_File_Name): Require a letter after theminus sign. This means that file names like a--b.adb will not beconsidered predefined.* freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containingrecord Test new flag and give diagnostic for bad component clause.(Freeze_Entity): Set alignment of array from component alignment incases where this is safe to do.* exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packedarrays.* cstand.adb: (Create_Standard): Set alignment of String to 1* einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary* exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generatedcode in the common constrained array cases.* a-storio.adb: Change implementation to avoid possible alignmentproblems on machines requiring strict alignment (data should be movedas type Buffer, not type Elmt).* checks.adb (Apply_Array_Size_Check): Improve these checks bykilling the overflow checks which we really do not need (64-bits isenough).2004-06-25 Vincent Celier <celier@gnat.com>* makegpr.adb (Is_Included_In_Global_Archive): New Boolean function(Add_Archives.Recursive_Add_Archives): Call Add_Archive_Pathinconditionally for the main project.(Recursive_Add_Archives.Add_Archive_Path): New procedure(Link_Executables.Check_Time_Stamps): New procedure(Link_Executables.Link_Foreign): New procedureChanges made to reduce nesting level of this package(Check): New procedure(Add_Switches): When not in quiet output, check that a switch is notthe concatenation of several valid switches. If it is, issue a warning.(Build_Global_Archive): If the global archive is rebuilt, linking needto be done.(Compile_Sources): Rebuilding a library archive does not implyrebuilding the global archive.(Build_Global_Archive): New procedure(Build_Library): New name for Build_Archive, now only for libraryproject(Check_Archive_Builder): New procedure(Create_Global_Archive_Dependency_File): New procedure(Gprmake): Call Build_Global_Archive before linking* makegpr.adb: Use Other_Sources_Present instead of Sources_Presentthroughout.(Scan_Arg): Display the Copyright notice when -v is used* gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)for gnatls.* vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNATCOMPILE.Add new GNAT LIST qualifier /FILES=Added qualifier /DIRECTORY= to GNAT METRICAdded qualifier /FILES= to GNAT METRICAdded qualifier /FILES to GNAT PRETTY* switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,to take into account both versions of the switch.* switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Shouldalways be the last switch to the gcc driver. Disable switch storing sothat switches automatically added by the gcc driver are not put in theALI file.* prj.adb (Project_Empty): Take into account changes in components ofProject_Data.* prj.ads (Languages_Processed): New enumaration value All_Languages.* prj.ads (Project_Data): Remove component Lib_Elaboration: neverused. Split Boolean component Ada_Sources_Present in two Booleancomponents Ada_Sources_Present and Other_Sources_Present.Minor reformatting* prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Presentinstead of Sources_Present.(Set_Ada_Paths.Add.Recursive_Add): Ditto* prj-nmsc.adb: Minor reformatting(Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme(Check_Ada_Naming_Scheme_Validity): New name of previous procedureCheck_Ada_Naming_Scheme.Change Sources_Present to Ada_Sources_Present or Other_Sources_Presentthroughout.* prj-part.adb (Post_Parse_Context_Clause): New Boolean parameterIn_Limited.Make sure that all cycles where there is at least one "limited with"are detected.(Parse_Single_Project): New Boolean parameter In_Limited* prj-proc.adb (Recursive_Check): When Process_Languages isAll_Languages, call first Prj.Nmsc.Ada_Check, thenPrj.Nmsc.Other_Languages_Check.* prj-proc.adb (Process): Use Ada_Sources_Present orOther_Sources_Present (instead of Sources_Present) depending onProcess_Languages.* lang-specs.h: Keep -g and -m switches in the same order, and as thelast switches.* lib.adb (Switch_Storing_Enabled): New global Boolean flag(Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled toFalse.(Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled isFalse.* lib.ads (Disable_Switch_Storing): New procedure.* make.adb: Modifications to reduce nesting level of this package.(Check_Standard_Library): New procedure(Gnatmake.Check_Mains): New procedure(Gnatmake.Create_Binder_Mapping_File): New procedure(Compile_Sources.Compile): Add switch -gnatez as the last option(Display): Never display -gnatez* Makefile.generic:When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)* gnatcmd.adb (Check_Project): New function(Process_Link): New procedure to reduce nesting depth(Check_Files): New procedure to reduce the nesting depth.For GNAT METRIC, include the inherited sources in extending projects.(GNATCmd): When GNAT LS is invoked with a project file and no files,add the list of files from the sources of the project file. If this listis too long, put it in a temp text files and use switch -files=(Delete_Temp_Config_Files): Delete the temp text file that containsa list of source for gnatpp or gnatmetric, if one has been created.(GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sourcesin the project file is too large, create a temporary text file thatlist them and pass it to the tool with "-files=<temp text file>".(GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch* gnatlink.adb (Gnatlink): Do not compile with --RTS= when thegenerated file is in not in Ada.* gnatls.adb: Remove all parameters And_Save that are no longer used.(Scan_Ls_Arg): Add processing for -files=(Usage): Add line for -files=* g-os_lib.adb (On_Windows): New global constant Boolean flag(Normalize_Pathname): When on Windows and the path starts with adirectory separator, make sure that the resulting path will start witha drive letter.* clean.adb (Clean_Archive): New procedure(Clean_Project): When there is non-Ada code, delete the global archive,the archive dependency files, the object files and their dependencyfiles, if they exist.(Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.2004-06-25 Thomas Quinot <quinot@act-europe.fr>* sinfo.ads: Fix typo in comment.* sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that usesthe TSS for remote access-to-subprogram types, since these TSS arealways present once the type has been analyzed.(RAS_E_Dereference): Same.* sem_attr.adb (Analyze_Attribute): When analysis of an attributereference raises Bad_Attribute, mark the reference as analyzed so thenode (and any children resulting from rewrites that could have occurredduring the analysis that ultimately failed) is not analyzed again.* exp_ch7.ads (Find_Final_List): Fix misaligned comment.* exp_dist.adb: Minor comment fix.* exp_ch4.adb (Expand_N_Allocator): For an allocator whose expectedtype is an anonymous access type, no unchecked deallocation of theallocated object can occur. If the object is controlled, attach it witha count of 1. This allows attachment to the Global_Final_List, ifno other relevant list is available.(Get_Allocator_Final_List): For an anonymous access type that isthe type of a discriminant or record component, the correspondingfinalisation list is the one of the scope of the type.2004-06-25 Ed Schonberg <schonberg@gnat.com>* sem_ch3.adb (Replace_Type): When computing the signature of aninherited subprogram, use the first subtype if the derived typedeclaration has no constraint.* exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an arraybefore applying previous optimization. Minor code cleanup.* exp_util.adb (Is_Possibly_Unaligned_Slice): If the component isplaced at the beginning of an unpacked record without explicitalignment, a slice of it will be aligned and does not need a copy whenused as an actual.2004-06-25 Ed Schonberg <schonberg@gnat.com>PR ada/15591PR ada/15592* sem_ch8.adb (Attribute_Renaming): Reject renaming if the attributereference is written with expressions mimicking parameters.2004-06-25 Hristian Kirtchev <kirtchev@gnat.com>PR ada/15589* sem_ch3.adb (Build_Derived_Record_Type): Add additional check toSTEP 2a. The constraints of a full type declaration of a derived recordtype are checked for conformance with those declared in thecorresponding private extension declaration. The message"not conformant with previous declaration" is emitted if an error isdetected.2004-06-25 Vasiliy Fofanov <fofanov@act-europe.fr>* g-traceb.ads: Document the need for -E binder switch in the spec.* g-trasym.ads: Document the need for -E binder switch in the spec.2004-06-25 Jose Ruiz <ruiz@act-europe.fr>* sem_prag.adb: Add handling of pragma Detect_Blocking.* snames.h, snames.ads, snames.adb: Add entry for pragmaDetect_Blocking.* s-rident.ads: Change reference to pragma Detect_Blocking.* targparm.ads, targparm.adb: Allow pragma Detect_Blocking insystem.ads.* opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)to indicate whether pragma Detect_Blocking is active.* par-prag.adb: Add entry for pragma Detect_Blocking.* rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bugof not handling WITH.Note that this replaces the previous update which was incorrect.2004-06-25 Javier Miranda <miranda@gnat.com>* sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of theuse-clauses to have a clean environment.* sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to forcethe installation of the use-clauses to stablish a clean environment incase of compilation of a separate unit; otherwise the call touse_one_package is protected by the barrier Applicable_Use.* sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to forcethe installation of the use-clauses to stablish a clean environment incase of compilation of a separate unit.(End_Use_Clauses): Minor comment cleanup.2004-06-25 Sergey Rybin <rybin@act-europe.fr>* gnat_ugn.texi: Add description of the gnatpp 'files' switch2004-06-23 Richard Henderson <rth@redhat.com>* trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.2004-06-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* decl.c (elaborate_expression, elaborate_expression_1): Argumentsnow bool instead of int.(gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.* trans.c (gnu_switch_label_stack): New function.(gnat_to_gnu, N_Object_Renaming_Declaration): Result is what theelaboration of renamed entity returns.(gnat_to_gnu, case N_Case_Statement): Add branches to end label.(add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.(gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.(gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE andDECL_SIZE_UNIT and simplify variable-sized case.(gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.(gnat_stabilize_reference): Add arg to COMPONENT_REF.(build_unit_elab): Disable for now.* utils.c (mark_visited): New function.(pushdecl): Walk tree to call it for global decl.(update_pointer_to): Update all variants of pointer and ref types.Add arg to COMPONENT_REF.(convert): Likewise.Move check for converting between variants lower down.* utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.(build_allocator): Don't force type of MODIFY_EXPR.(gnat_mark_addressable, case VAR_DECL): Unconditionally callput_var_into_stack.2004-06-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.* ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.* decl.c (gnat_to_gnu_entity): Also set force_global for importedsubprograms.* trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;all callers changed.(gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Changethe way that EXIT_STMT finds the loop label.(gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.(gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.(add_stmt): Use annotate_with_locus insted of setting directly.(pos_to_construct): Set TREE_PURPOSE of each entry to index.(gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.* utils.c (gnat_install_builtins): Install __builtin_memcmp.(build_vms_descriptor): Add extra args to ARRAY_REF.(convert): Use VIEW_CONVERT_EXPR between aggregate types.* utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):New cases.(build_binary_op): Don't make explicit CONVERT_EXPR.Add extra rgs to ARRAY_REF.2004-06-14 Pascal Obry <obry@gnat.com>* gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind onWindows. Fix minor typo.* mlib-tgt-mingw.adb: New implementation using the GCC -shared optionwhich is now supported on Windows. With this implementation using theLibrary Project feature is no different on Windows than on UNIX.2004-06-14 Vincent Celier <celier@gnat.com>* makegpr.adb (Compile_Sources): Nothing to do when there are nonon-Ada sources.* mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment* prj-part.adb (Parse_Single_Project): When a duplicate project name isfound, show the project name and the path of the previously parsedproject file.2004-06-14 Ed Schonberg <schonberg@gnat.com>* exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is anarray, avoid copying the actual before the call.2004-06-14 Thomas Quinot <quinot@act-europe.fr>* g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.Instead, allocate memory on worst-case alignment assumptions, and thenreturn an aligned address within the allocated zone.2004-06-14 Robert Dewar <dewar@gnat.com>* bindgen.adb (Gen_Adainit_Ada): Do not generate external references toelab entities in predefined units in No_Run_Time_Mode.(Gen_Adainit_C): Same fix(Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefinedunits in No_Run_Time_Mode(Gen_Elab_Calls_C): Same fix* symbols-vms-alpha.adb: Minor reformatting* g-debpoo.ads: Minor reformatting* lib.adb (In_Same_Extended_Unit): Version working on node id's* lib.ads (In_Same_Extended_Unit): Version working on node id's* lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unitworking on nodes.* make.adb: Minor reformatting* par-ch12.adb: Minor reformatting* par-prag.adb: Add dummy entry for pragma Profile_Warnings* prj-strt.adb: Minor reformatting* restrict.ads, restrict.adb: Redo handling of profile restrictions tobe more general.* sem_attr.adb: Minor reformatting* sem_ch7.adb: Minor reformatting* sem_elab.adb (Check_A_Call): Deal with problem of calling init procfor type in the same unit as the object declaration.* sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allowsstatic string expressions and not just string literals.Minor reformatting(Set_Warning): Reset restriction warning flag for restriction pragmaImplement pragma Profile_WarningsImplement pragma Profile (Restricted)Give obolescent messages for old restrictions and pragmas* snames.h, snames.ads, snames.adb: Add new entry for pragmaProfile_Warnings.* s-rident.ads: Add declarations for restrictions required by profileRestricted and profile Ravenscar.* targparm.ads, targparm.adb: Allow pragma Profile in system.ads* gnat_ugn.texi: Correct some missing entries in the list of GNATconfiguration pragmas.2004-06-11 Vincent Celier <celier@gnat.com>* mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R tognatsym, when symbol policy is Restricted.* mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R tognatsym, when symbol policy is Restricted.* symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,read the symbol file.(Finalize): Fail in symbol policy Restricted if a symbol in the originalsymbol file is not in the object files. Do not create a new symbol filewhen symbol policy is Restricted.* gnatbind.adb (Gnatbind): Initialize Snames, because Snames is usedin Scng.* gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policyRestricted.(Usage): Line for new switch -R* make.adb (Initialize): When the platform is not VMS, add thedirectory where gnatmake is invoked in the front of the path, ifgnatmake is invoked with directory information. Change the Scan_Argswhile loop to a for loop.(Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:if Depth is equal or greater than the proposed depth, there is nothingto do.(Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1instead of 0.* prj.ads: Add new symbol policy Restricted.* prj-dect.adb (Parse_Case_Construction): Call End_Case_Constructionwith the new parameters Check_All_Labels and Case_Location.* prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted(Library_Symbol_File needs to be defined).* prj-strt.adb (End_Case_Construction): New parameters Check_All_Labelsand Case_Location If Check_All_Labels is True, check that all values ofthe string type are used, and output warning(s) if they are not.* prj-strt.ads (End_Case_Construction): New parameters Check_All_Labelsand Case_Location.* gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"* gnat_ugn.texi: Update documentation about the library directory inLibrary Projects.* makegpr.adb (Display_Command): In verbose mode, also display thevalue of the CPATH env var, when the compiler is gcc.(Initialize): Change the Scan_Args while loop to a for loop(Compile_Individual_Sources): Change directory to object directorybefore compilations.* symbols.ads: New symbol policy Restricted.2004-06-11 Olivier Hainque <hainque@act-europe.fr>* a-except.adb (Raise_After_Setup family): Remove. The responsibilityis now taken care of internally in the Exception_Propagation packageand does not require clients assistance any more.* a-exexpr.adb (Is_Setup_And_Not_Propagated,Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): Newfunctions. Helpers to maintain a predicate required in the handling ofoccurrence transfer between tasks.This is now handled internally and does not require clients assistancefor the setup/propagate separation anymore.(Setup_Exception, Propagate_Exception): Simplify the Private_Dataallocation strategy, handle the Setup_And_Not_Propagated predicate anddocument.* s-taenca.adb (Check_Exception): Use raise_with_msg instead ofraise_after_setup, now that everything is handled internally within thesetup/propagation engine.2004-06-11 Hristian Kirtchev <kirtchev@gnat.com>* exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.Add additional conditions for the case of an actual being a simplename or literal. Improve inlining by preventing the generationof temporaries with a short lifetime (one use).2004-06-11 Hristian Kirtchev <kirtchev@gnat.com>PR ada/15587* einfo.ads: Minor comment updates for Has_Completion andE_Constant list of flags.* sem_ch3.adb (Analyze_Object_Declaration): Full constant declarationsand constant redeclarations now set the Has_Completion flag of theirdefining identifiers.* sem_ch7.adb (Analyze_Package_Spec): Add procedureInspect_Deferred_Constant_Completion.Used to detect private deferred constants that have not been completedeither by a constant redeclaration or pragma Import. Emits error message"constant declaration requires initialization expression".* sem_prag.adb (Process_Import_Or_Interface): An Import pragma nowcompletes a deferred constant.2004-06-11 Geert Bosch <bosch@gnat.com>* eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.* s-fatgen.adb (Gradual_Scaling): Correct off-by-one error incalculating exponent for scaling denormal numbers.(Leading_Part): Properly raise Constraint_Error for zero or negativeAdjustment.(Remainder): Properly raise Constraint_Error for zero divisor.2004-06-11 Thomas Quinot <quinot@act-europe.fr>* sem_util.adb: Minor reformatting.* exp_ch2.adb (Expand_Entry_Parameter): Generate an explicitdereference when accessing the entry parameter record.(Check_Array_Type): Always check for possible implicit dereference.(maybe_implicit_dereference): Rename to check_no_implicit_derefence.Abort if a pointer is still present (denoting that an implicitdereference was left in the tree by the front-end).* sem_attr.adb (Expand_Entry_Parameter): Generate an explicitdereference when accessing the entry parameter record.(Check_Array_Type): Always check for possible implicit dereference.(maybe_implicit_dereference): Rename to check_no_implicit_derefence.Abort if a pointer is still present (denoting that an implicitdereference was left in the tree by the front-end).2004-06-11 Emmanuel Briot <briot@act-europe.fr>* g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to errormessage, like the compiler itself does. Easier to parse the output.* g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.* gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names shouldbe base names, and not includes directories.2004-06-11 Arnaud Charlet <charlet@act-europe.fr>* Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),so that dependencies are properly taken into account by make.2004-06-11 Arnaud Charlet <charlet@act-europe.fr>PR ada/15622* s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic2004-06-11 Jerome Guitton <guitton@act-europe.fr>* Makefile.in (install-gnatlib): install target-specific run-time files.* Make-lang.in: Remove obsolete targets.2004-06-11 Ed Schonberg <schonberg@gnat.com>* par-ch12.adb (P_Generic): Add scope before analyzing subprogramspecification, to catch misuses of program unit names.* sem_res.adb (Resolve_Type_Conversion): Do not emit warnings onsuperfluous conversions in an instance.2004-06-11 Ed Schonberg <schonberg@gnat.com>PR ada/15403* sem_ch12.adb (Save_References): If operator node has been folded toenumeration literal, associated_node must be discarded.2004-06-11 Jose Ruiz <ruiz@act-europe.fr>* s-stchop-vxworks.adb: Add required pragma Convention toTask_Descriptor because it is updated by a C function.2004-06-08 Arnaud Charlet <charlet@act-europe.fr>PR ada/15568* Makefile.in: Remove target specific SO_OPT on IRIX2004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.(GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.(BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.(ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.(STMT_STMT, USE_STMT): New statement codes.(LOOP_STMT, EXIT_STMT): Make slight semantic changes.* ada-tree.h: Reflect above changes.(struct tree_loop_id): Deleted.(union lang_tree_node, struct lang_decl, struct lang_type):Now just contains a tree node; update macros using TYPE_LANG_SPECIFICand DECL_LANGUAGE_SPECIFIC to reflect these changes.(DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.(IS_ADA_STMT): New macro.* decl.c (annotate_decl_with_node): New function.(gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.(gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.Call add_stmt_with_node to do needed assignments.Add call to update setjmp buffer directly, not via EXPR_STMT.(maybe_variable): Argment GNAT_NODE deleted.* gigi.h (maybe_variable): Likewise.(make_transform, add_stmt_with_node, set_block_for_group): New.(gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.(set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.(discard_file_names, gnu_block_stack, gnat_to_code): Deleted.(set_lineno, set_lineno_from_sloc): Likewise.(record_code_position, insert_code_for): Likewise.(gnat_poplevel): Now returns void.(end_subprog_body): Now takes argument.* misc.c (cgraph.h, tree-inline.h): New includes.(gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.(gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.(LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.(LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.(gnat_parse_file): Don't set immediate_size_expand.Call cgraph functions.(gnat_expand_expr): Remove most cases.(record_code_position, insert_code_for): Remove from here.* trans.c (toplev.h, tree-gimple.h): Now included.(discard_file_names): Deleted.(gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.(first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.(struct stmt_group, current_stmt_group, stmt_group_free_list): New.(gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.(add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.(gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.(gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.(set_block_for_group, add_stmt_list): Likewise.(start_stmt_group): Renamed from start_block_stmt.(end_stmt_group): Likewise, from end_block_stmt.(build_stmt_group): Likewise, from build_block_stmt, also add arg.(gigi): Don't set discard_file_names or call set_lineno.Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.(tree_transform): Deleted, now renamed to be gnat_to_gnu.Numerous changes throughout to reflect new names and completefunction-at-a-time implementation.(gnat_expand_stmt): Delete or comment out all cases.(process_inlined_subprograms): Use add_stmt.(process_decls): Use gnat_to_gnu, not gnat_to_code, and don'tcall set_lineno; also remove unneeded block handling.(process_type): Remove unneeded block handling.(build_unit_elab): Remove calls to deleted functions.* utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.(tree-dump.h): Likewise.(struct ada_binding_level): Add field jmpbuf_decl.(gnat_define_builtin, gnat_install_builtins): New.(gnat_gimplify_function, gnat_finalize): Likewise.(gnat_poplevel): No longer return BLOCK, set it instead.Remove code dealing with nested functions.(gnat_init_decl_processing): Also set size_type_node.Call gnat_install_builtins.(create_var_decl): Don't set DECL_INIT_BY_ASSIGN.(create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.Remove special-case for "main".(end_subprog_body): Add arg and rework for tree-ssa.(convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.Add case for BOOLEAN_TYPE.* utils2.c (rtl.h): Now include.(build_call_raise): Test Debug_Flag_NN directly.(build_call_alloc_dealloc): Don't use local stack allocation for now.(gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.(gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.2004-06-07 Robert Dewar <dewar@gnat.com>* a-direct.ads, einfo.ads: Minor comment updates* s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.* s-interr-sigaction.adb: Remove unreferenced variable(Attached_Interrupts). Minor reformatting.Avoid use of variable I (replace by J).* par-ch10.adb: Fix text of one error message* checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada2005 support.2004-06-07 Doug Rupp <rupp@gnat.com>* mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb* s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb* mlib-tgt-vms-ia64.adb: New file.* Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adbAdd mlib-tgt-vms-ia64.adbRename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.Move to alpha specific ifeq section.Add VMS specific versions of symbols.adbRenaming of 5q vms files.* 5qsystem.ads renamed to system-vms_64.ads.2004-06-07 Vincent Celier <celier@gnat.com>* a-calend.ads: Add a GNAT Note comment after function Time_Of toexplain that when a time of day corresponding to the non existing houron the day switching to DST is specified, Split may return a differentvalue for Seconds.* gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similarto GNAT PRETTY.* g-os_lib.adb (OpenVMS): New Boolean value imported from System.(Normalize_Pathname): Only resolve VMS logical names when on VMS.* mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initializeto False.If Gtrasymobj_Needed is True, add the full path of g-trasym.obj tothe linking options.(Build_Library.Check_Libs): On VMS, if there is a dependency ong-trasym.ads, set Gtrasymobj_Needed to True.* prj-attr.adb: Add new package Metrics for gnatmetric* prj-nmsc.adb (Record_Other_Sources): Put source file names incanonical case to take into account files with upper case characters onWindows.(Ada_Check): Load the reference symbol file name in the name buffer tocheck it, not the symbol file name.* snames.ads, snames.adb: Add standard name Metrics (name of projectfile package for gnatmetric).* vms_conv.ads: Add Metric to Comment_Type* vms_conv.adb (Initialize): Add component dor Metric in Command_List* vms_data.ads: Add qualifiers for GNAT METRIC* makegpr.adb (Link_Executables): Take into account the switchesspecified in package Linker of the main project.2004-06-07 Thomas Quinot <quinot@act-europe.fr>* bindgen.adb (Set_Unit_Number): Units is an instance of Table, and sothe index of the last element is Units.Last, not Units.Table'Last(which is usually not a valid index within the actually allocatedstorage for the table).* exp_ch4.adb (Insert_Dereference_Action): Change predicate thatdetermines whether to generate a call to a checked storage poolDereference action.Generate such a call only for a dereference that either comes fromsource, or is the result of rewriting a dereference that comes fromsource.2004-06-07 Romain Berrendonner <berrendo@act-europe.fr>* bindgen.adb (Gen_Output_File): Add support for GAP builds.2004-06-07 Eric Botcazou <ebotcazou@act-europe.fr>(gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays atfile level, elaborate the stride for inner dimensions in alignmentunits, not bytes.* exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Alignedin a comment.2004-06-07 Javier Miranda <miranda@gnat.com>* exp_ch6.adb: Correct wrong modification in previous patch2004-06-07 Vasiliy Fofanov <fofanov@act-europe.fr>* g-trasym.ads: Corrected comment to properly reflect level of supporton VMS.2004-06-07 Hristian Kirtchev <kirtchev@gnat.com>* lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. Itincludes case of a variable referenced on the left hand side of anassignment, therefore remove redundant code. Variables and prefixes ofindexed or selected components are now marked as referenced on lefthand side. Warnings are now properly emitted when variables or prefixesare assigned but not read.* sem_warn.adb (Output_Unreferenced_Messages): Add additional checks toleft hand side referenced variables. Private access types do notproduce the warning "variable ... is assigned but never read".Add also additional checks to left hand side referenced variables.Aliased, renamed objects and access types do not produce the warning"variable ... is assigned but never read" since other entities may readthe memory location.2004-06-07 Jerome Guitton <guitton@act-europe.fr>* Makefile.in: In the powerpc/vxworks-specific section, restoreEXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removedby mistake).2004-06-07 Ed Schonberg <schonberg@gnat.com>* sem_ch4.adb (Remove_Abstract_Operations): Refine the removal ofpredefined operators.Removes spurious type errors from g-trasym-vms.adb.* sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator isdistinct from the operator appearing in the source, call appropriateroutine to insert conversions when needed, and complete resolution ofnode.(Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer ofinterpretations for rewritten right operand.(Set_Mixed_Mode_Operand): Handle properly a universal real operand whenthe other operand is overloaded and the context is a type conversion.2004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* ada-tree.def (BLOCK_STMT): Now has two operands.(BREAK_STMT): New.* ada-tree.h: (BLOCK_STMT_BLOCK): New macro.* gigi.h: (gnat_poplevel): Now returns a tree.* trans.c (end_block_stmt): Add arg; all callers changed.(tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.(start_block_stmt): Clear BLOCK_STMT_BLOCK.(add_stmt): Set TREE_TYPE.(gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.(gnat_expand_stmt, case BREAK_STMT): New case.* utils.c (gnat_poplevel): Return a BLOCK, if we made one.2004-06-07 Jose Ruiz <ruiz@act-europe.fr>* s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove theprocedure Set_Stack_Size that is not needed.2004-06-07 Sergey Rybin <rybin@act-europe.fr>* gnat_ugn.texi: Clarify the case when non-standard naming scheme isused for gnatpp input file and for the files upon which it depends2004-06-07 Ben Brosgol <brosgol@gnat.com>* gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter2004-06-07 Arnaud Charlet <charlet@act-europe.fr>* gnatvsn.ads: Bump version numbers appropriately.Add new build type.2004-06-07 Pascal Obry <obry@gnat.com>* gnat_ugn.texi: Improve comments about imported names and link nameson Windows. Add a note about the requirement to use -k gnatdll's optionwhen working with a DLL which has stripped stdcall symbols (no @nnsuffix).2004-05-27 Vincent Celier <celier@gnat.com>* vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP andCOMMENTS_LAYOUT=UNTOUCHED* symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb tosymbols-vms-alpha.adb2004-05-27 Thomas Quinot <quinot@act-europe.fr>* sem.ads: Clarify documentation on checks suppression.* einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.2004-05-27 Ed Schonberg <schonberg@gnat.com>* sem_util.adb (Is_Descendent_Of): Examine properly all ancestors inthe case of multiple derivations.(Is_Object_Reference): For a selected component, verify that the prefixis itself an object and not a value.* sem_ch12.adb (Same_Instantiated_Constant): New name forSame_Instantiated_Entity.(Same_Instantiated_Variable): Subsidiary toCheck_Formal_Package_Instance, to recognize actuals for in-out genericformals that are obtained from a previous formal package.(Instantiate_Subprogram_Body): Emit proper error whengenerating code and the proper body of a stub is missing.* sem_ch4.adb (Remove_Address_Interpretations): If the operation stillhas a universal interpretation, do the disambiguation here.* exp_ch4.adb (Expand_N_Type_Conversion,Expand_N_Unchecked_Type_Conversion): Special handling when target typeis Address, to avoid typing anomalies when Address is a visible integertype.* exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Addressto determine whether a subprogram should not be marked Pure, even whendeclared in a pure package.2004-05-27 Jose Ruiz <ruiz@act-europe.fr>* gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.* gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_LengthDocument No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.Update the documentation about the Ravenscar profile, following thedefinition found in AI-249.* sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking whensetting the Profile (Ravenscar). This must be done in addition tosetting the required restrictions.* rtsfind.ads: Add the set of operations defined in packageAda.Interrupts.* exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachmentrestriction.2004-05-27 Eric Botcazou <ebotcazou@act-europe.fr>lang-specs.h: Always require -c or -S and always redirect to /dev/nullif -gnatc or -gnats is passed.2004-05-27 Hristian Kirtchev <kirtchev@gnat.com>* sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count asa significant reference. Warnings are now properly emitted when adiscriminated type is not referenced.* lib-xref.adb (Generate_Reference): A deferred constant completion,record representation clause or record type discriminant does notproduce a reference to its corresponding entity. Warnings are nowproperly emitted when deferred constants and record types are notreferenced.2004-05-27 Geert Bosch <bosch@gnat.com>* Makefile.in: Use long version of libm routines on ia64 gnu/linux.Fixes ACATS Annex G tests.2004-05-27 Robert Dewar <dewar@gnat.com>* rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of nothandling WITH2004-05-27 Arnaud Charlet <charlet@act-europe.fr>* s-interr.adb (Server_Task): Take into account case of early returnfrom sigwait under e.g. linux.2004-05-27 Sergey Rybin <rybin@act-europe.fr>* gnat_ugn.texi: Add description for the new gnatpp options:-rnb - replace the original source without creating its backup copy-c0 - do not format comments2004-05-24 Geert Bosch <bosch@gnat.com>* a-numaux-x86.adb (Reduce): Reimplement using an approximation of Piwith 192 bits of precision, sufficient to reduce a double-extendedarguments X with a maximum relative error of T'Machine_Epsilon, for Xin -2.0**32 .. 2.0**32.(Cos, Sin): Always reduce arguments of 1/4 Pi or larger, to preventreduction by the processor, which only uses a 68-bit approximation ofPi.(Tan): Always reduce arguments and compute function either usingthe processor's fptan instruction, or by dividing sin and cos as needed.2004-05-24 Doug Rupp <rupp@gnat.com>* adaint.c (__gnat_readdir): Cast CRTL function retun value to avoidgcc error on 32/64 bit VMS.2004-05-24 Olivier Hainque <hainque@act-europe.fr>* init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,since this is what we get for stack overflows although not documentedas such.Document the issues which may require adjustments to our signalhandlers.2004-05-24 Ed Schonberg <schonberg@gnat.com>* inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to theenclosing dynamic scope if the instantiation is within a generic unit.2004-05-24 Arnaud Charlet <charlet@act-europe.fr>* exp_dbug.ads: Fix typo.* Makefile.in: s-osinte-linux-ia64.ads was misnamed.Rename it to its proper name: system-linux-ia64.ads(stamp-gnatlib1): Remove extra target specific run time files whensetting up the rts directory.2004-05-24 Javier Miranda <miranda@gnat.com>* einfo.ads, einfo.adb (Limited_Views): Removed.(Limited_View): New attribute that replaces the previous one. It isnow a bona fide package with the limited-view list through thefirst_entity and first_private attributes.* sem_ch10.adb (Install_Private_With_Clauses): Give support tolimited-private-with clause.(Install_Limited_Withed_Unit): Install the private declarations of alimited-private-withed package. Update the installation of the shadowentities according to the new structure (see Build_Limited_Views)(Build_Limited_Views): Replace the previous implementation of thelimited view by a package entity that references the first shadowentity plus the first shadow private entity (required for limited-private-with clause)(New_Internal_Shadow_Entity): Code cleanup.(Remove_Limited_With_Clause): Update the implementation to undo thenew work carried out by Build_Limited_Views.(Build_Chain): Complete documentation.Replace Ada0Y by Ada 0Y in commentsMinor reformating* sem_ch3.adb (Array_Type_Declaration): In case of anonymous accesstypes the level of accessibility depends on the enclosing typedeclaration.* sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadowentities. Complete documentation of previous change.2004-05-24 Robert Dewar <dewar@gnat.com>* namet.adb: Minor reformattingAvoid use of name I (replace by J)Minor code restructuring* sem_ch6.adb: Minor reformatting* lib-writ.adb: Do not set restriction as active if this is aRestriction_Warning case.* sem_prag.adb: Reset restriction warning flag if real pragmarestriction encountered.* s-htable.adb: Minor reformattingChange rotate count to 3 in Hash (improves hash for small strings)* 5qsystem.ads: Add comments for type Address (no literals allowed).* gnat_ugn.texi: Add new section of documentation "Code GenerationControl", which describes the use of -m switches.2004-05-24 Eric Botcazou <ebotcazou@act-europe.fr>trans.c (tree_transform) <N_Identifier>: Do the dereference directlythrough the DECL_INITIAL for renamed variables.2004-05-24 Arnaud Charlet <charlet@act-europe.fr>* s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads2004-05-19 Joel Brobecker <brobecker@gnat.com>* exp_dbug.ads: Correct comments concerning handling of overloading,since we no longer use $ anymore.2004-05-19 Sergey Rybin <rybin@act-europe.fr>* sem_ch10.adb (Optional_Subunit): When loading a subunit, do notignore errors if ASIS_Mode is set. This prevents creating ASIS treeswith illegal subunits.2004-05-19 Ed Schonberg <schonberg@gnat.com>* sem_ch6.adb (Check_Following_Pragma): When compiling a subprogrambody with front-end inlining enabled, check whether an inline pragmaappears immediately after the body and applies to it.* sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining isenabled and the pragma appears after the body of the subprogram.2004-05-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>Part of function-at-a-time conversion* misc.c (adjust_decl_rtl): Deleted.(LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):Define.* gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.(add_decl_stmt, add_stmt, block_has_vars): New functions.(gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.* decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmtwhen making a decl.(gnat_to_gnu_entity): Likewise.Use add_stmt to update setjmp buffer.Set TREE_ADDRESSABLE instead of calling put_var_into_stack andflush_addressof.No longer call adjust_decl_rtl.(DECL_INIT_BY_ASSIGN_P): New macro.(DECL_STMT_VAR): Likewise.* trans.c (gigi): Call start_block_stmt to make the outermostBLOCK_STMT.(gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):Call start_block_stmt and end_block_stmt temporarily.Use gnat_expand_stmt instead of expand_expr_stmt.(add_decl_stmt): New function.(tree_transform): Call it.(add_stmt): Also emit initializing assignment for DECL_STMT if needed.(end_block_stmt): Set type and NULL_STMT.(gnat_expand_stmt): Make recursize call instead of callingexpand_expr_stmt.(gnat_expand_stmt, case DECL_STMT): New case.(set_lineno_from_sloc): Do nothing if global.(gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.(start_block_stmt, add_stmt, end_block_stmt): New functions.(build_block_stmt): Call them.(gnat_to_code): Don't expand NULL_STMT.(build_unit_elab): Rename pushlevel and poplevel to gnat_* and changeargs.(tree_transform): Likewise.(tree_transform, case N_Null_Statement): Return NULL_STMT.(gnat_expand_stmt, case NULL_STMT): New case.(gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have noIF_STMT_TRUE.* utils2.c (gnat_mark_addressable, case VAR_DECL): Do not setTREE_ADDRESSABLE.* utils.c (create_var_decl): Do not call expand_decl orexpand_decl_init.Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPRhere.(struct e_stack): Add chain_next to GTY.(struct binding_level): Deleted.(struct ada_binding_level): New struct.(free_block_chain): New.(global_binding_level, clear_binding_level): Deleted.(global_bindings_p): Rework to see if no chain.(kept_level_p, set_block): Deleted.(gnat_pushlevel): Renamed from pushlevel and extensive reworked to usenew data structure and work directly on BLOCK node.(gnat_poplevel): Similarly.(get_decls): Look at BLOCK_VARS.(insert_block): Work directly on BLOCK node.(block_has_var): New function.(pushdecl): Rework for new binding structures.(gnat_init_decl_processing): Rename and rework calls to pushlevel andpoplevel.(build_subprog_body): Likewise.(end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.* ada-tree.def (DECL_STMT, NULL_STMT): New codes.* ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.(DECL_STMT_VAR): Likewise.2004-05-17 Robert Dewar <dewar@gnat.com>* restrict.ads, restrict.adb (Process_Restriction_Synonym): Newprocedure* sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handlingof restriction synonyums by usingRestrict.Process_Restriction_Synonyms.* snames.ads, snames.adb: Add entries for Process_Restriction_Synonym* s-restri.ads (Tasking_Allowed): Correct missing comment* s-rident.ads: Add entries for restriction synonyms* ali.adb: Fix some problems with badly formatted ALI files that canresult in infinite loops.* s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_IDto Task_Id (minor cleanup).2004-05-17 Vincent Celier <celier@gnat.com>* g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailingdirectory separator.* prj-proc.adb (Recursive_Process): Inherit attribute Languages fromproject being extended, if Languages is not declared in extendingproject.2004-05-17 Javier Miranda <miranda@gnat.com>* sem_ch10.adb (Install_Limited_Withed_Unit): Do not install thelimited view of a visible sibling.2004-05-14 Robert Dewar <dewar@gnat.com>* gnat_ugn.texi: Minor change to -gnatS documentation* sprint.adb: Remove some instances of Assert (False) and for thispurpose replace them by output of a ??? string.* checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragmaAssert (False).* lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unitflag processing. This was suppressing required dependencies inNo_Run_Time mode and is not needed since the binder does not generatereferences for things in libgnat anyway.* sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCCwarning.2004-05-14 Thomas Quinot <quinot@act-europe.fr>* gnat_ugn.texi: Document AIX-specific issue with initialization ofresolver library.* exp_ch4.adb (Insert_Dereference_Action): Do not generate dereferenceaction for the case of an actual parameter in an init proc call.2004-05-14 Ed Schonberg <schonberg@gnat.com>* sem_ch4.adb (Analyze_Selected_Component): If prefix is a protectedsubtype, check visible entities in base type.* exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanupactions if the object is a renaming.* sem_ch12.adb (Same_Instantiated_Entity): Predicate forCheck_Formal_Package_Instance, to determine more precisely when theformal and the actual denote the same entity.2004-05-14 Javier Miranda <miranda@gnat.com>* par-ch10.adb (P_Context_Clause): Complete documentation on AI-262* sem_ch10.adb (Analyze_With_Clause): After analyzed, the entitycorresponding to a private_with must be removed from visibility; itwill be made visible later, just before we analyze the private part ofthe package.(Check_Private_Child_Unit): Allow private_with clauses in publicsiblings.(Install_Siblings): Make visible the private entities of private-withedsiblings.(Install_Withed_Unit): Do not install the private withed unit if weare compiling a package declaration and the Private_With_OK flag wasnot set by the caller. These declarations will be installed later,just before we analyze the private part of the package.* sem_ch3.adb (Analyze_Object_Declaration): In case of errors detectedduring the evaluation of the expression that initializes the object,decorate it with the expected type to avoid cascade errors.Code cleanup.* sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a librarysubprogram we have to install the private_with clauses after itsspecification has been analyzed (as documented in AI-262.TXT).* sem_ch8.adb (Has_Private_With): New function. Determines if thecurrent compilation unit has a private with on a given entity.(Find_Direct_Name): Detect the Beaujolais problem described inAI-262.TXT* sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. Itprovides the functionality of the function Is_Ancestor that waspreviously available in sem_ch10. It has been renamed to avoidoverloading.* sprint.adb (Sprint_Node_Actual): Print limited_with clauses2004-05-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* utils.c (build_vms_descriptor): Use SImode pointers.2004-05-14 Vasiliy Fofanov <fofanov@act-europe.fr>* gnat_ugn.texi: Revised chapter "GNAT and Libraries".2004-05-14 GNAT Script <nobody@gnat.com>* Make-lang.in: Makefile automatically updated2004-05-14 Arnaud Charlet <charlet@act-europe.fr>Renaming of target specific files for clarity* Makefile.in: Rename GNAT target specific files.* 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,51osinte.adb, 51osinte.ads, 51system.ads,52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,56tpopsp.adb, 57system.ads, 58system.ads,5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.* a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,s-osinte-vms.ads, s-osinte-vxworks.adb,s-osinte-vxworks.ads, s-osprim-mingw.adb,s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,s-stchop-vxworks.adb, s-taprop-dummy.adb,s-taprop-hpux-dce.adb, s-taprop-irix.adb,s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,system-hpux.ads, system-interix.ads, system-irix-n32.ads,system-irix-o32.ads, system-linux-x86_64.ads,system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,system-unixware.ads, system-vms.ads, system-vms-zcx.ads,system-vxworks-alpha.ads, system-vxworks-m68k.ads,system-vxworks-mips.ads, system-vxworks-ppc.ads,system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace filesabove.2004-05-13 Zack Weinberg <zack@codesourcery.com>* trans.c (gnat_stabilize_reference_1): Remove case 'b'.2004-05-13 Diego Novillo <dnovillo@redhat.com>Merge from tree-ssa-20020619-branch.* config-lang.in (boot_language, build_by_default): Setto no.* utils.c (unchecked_convert): Use OEP_ONLY_CONST.(max_size): Add static chain op for call_expr.2004-05-12 Richard Sandiford <rsandifo@redhat.com>PR target/15331* 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.2004-05-11 Roger Sayle <roger@eyesopen.com>* utils.c (max_size): Use MIN_EXPR to find the minimum value of aCOND_EXPR.2004-05-10 Doug Rupp <rupp@gnat.com>* 5qsystem.ads: Remove Short_Address subtype declaration. Moved tosystem.aux_dec.* s-auxdec.ads: Add Short_Address subtype (moved here from System).* Makefile.in: [VMS]: Add translation for 5qauxdec.ads.* init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.Fixes undefined symbols in IA64 gnatlib.* 5vinmaop.adb: Reference s-auxdec for Short_Address.* 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtypeShort_Address). This will be moved to system.auxdec.2004-05-10 Thomas Quinot <quinot@act-europe.fr>* sem_util.adb: Replace test for presence of a node that is alwayspresent with a call to Discard_Node.* sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call toAnalyze on the library unit node after generation of distribution stubconstructs. The call was a no-op because Unit_Node has already beenAnalyzed, and the tree fragments for the distribution stubs areanalyzed as they are inserted in Exp_Dist.Update comment regarding to distribution stubs to reflect that wedo not generate stub in separate files anymore.* einfo.ads: Clarify the fact that a tagged private type has theE_Record_Type_With_Private Ekind.* erroutc.adb: Minor reformatting* erroutc.ads (Max_Msg_Length): Increase to cover possible largervalues if line length is increased using -gnatyM (noticed during codereading).* eval_fat.adb: Minor reformattingPut spaces around exponentiation operator2004-05-10 Ed Schonberg <schonberg@gnat.com>PR ada/15005* sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefixhas been rewritten as an explicit dereference, retrieve type oforiginal node to check for possibly unconstrained record type.2004-05-10 Ed Schonberg <schonberg@gnat.com>* exp_ch7.adb (Check_Visibly_Controlled): If given operation is notoverriding, use the operation of the parent unconditionally.* sem_ch4.adb (Remove_Address_Interpretations): Remove addressoperation when either operand is a literal, to avoid furtherambiguities.* sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited andoverridden by a previous explicit declaration, mark the previous entityas overriding.* sem_disp.adb (Check_Dispatching_Operation): New predicateIs_Visibly_Controlled, to determine whether a declaration of aprimitive control operation for a derived type overrides an inheritedone. Add warning if the explicit declaration does not override.2004-05-10 Vincent Celier <celier@gnat.com>* gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error insome cases when the sources are no longer present.* make.adb (Collect_Arguments): Fail if an external source, not partof any project need to be compiled, when switch -x has not beenspecified.* makeusg.adb: Document new switch -x* opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,defaulted to False.* switch-m.adb (Scan_Make_Switches): New switch -x* vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION forgnatmake switch -x.* gnat_ugn.texi: Document new gnatmake switch -x2004-05-10 Eric Botcazou <ebotcazou@act-europe.fr>* misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.* utils.c (create_var_decl): Do not modify the DECL_COMMON flag.(process_attributes): Likewise.2004-05-10 Joel Brobecker <brobecker@gnat.com>* s-inmaop.ads: Fix spelling mistake in one of the comments.2004-05-10 Robert Dewar <dewar@gnat.com>* gnat_ugn.texi: Document that for config pragma files, the maximumline length is always 32767.* gnat_rm.texi: For pragma Eliminate, note that concatenation of stringliterals is now allowed.* gnat-style.texi: Remove statement about splitting long lines beforean operator rather than after, since we do not follow this rule at all.Clarify rule (really lack of rule) for spaces around exponentiation* sem_elim.adb: Allow concatenation of string literals as well as asingle string literal for pragma arguments.* sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function* a-textio.adb (Terminate_Line): Do not add line feed if nothingwritten for append case.* frontend.adb: Changes to avoid checking max line length in configpragma files.* g-os_lib.ads: Minor reformatting* mlib-utl.adb: Do not define Max_Line_Length locally (definition waswrong in any case. Instead use standard value. Noticed during codereading.* opt.ads (Max_Line_Length): New field, used to implement removal oflimitation on length of lines when scanning config pragma files.* osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,makeutl.ads, makeutl.adb: Minor reformatting* scn.adb: Do not check line length while scanning config pragma filesDo not check line length while scanning out license information* scng.adb: Changes to avoid line length checks while parsing configpragma files.2004-05-10 GNAT Script <nobody@gnat.com>* Make-lang.in: Makefile automatically updated2004-05-05 Arnaud Charlet <charlet@act-europe.fr>* osint.adb (Find_Program_Name): Fix handling of VMS versionnumber.2004-05-05 Emmanuel Briot <briot@act-europe.fr>* g-os_lib.ads (Invalid_Time): New constant* adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Nowreturn OS_Time instead of time_t to match what is imported by Ada.Now return -1 if the file doesn't exist, instead of a random value2004-05-05 Robert Dewar <dewar@gnat.com>* usage.adb: Add line for -gnatR?s switch* sem_ch13.adb, exp_ch2.adb: Minor reformatting* g-regpat.ads, g-regpat.adb: Add documentation on handling of Sizeand for Match (Data_First, Data_last)* lib-writ.adb (Write_With_Lines): Ensure that correct index number iswritten when we are dealing with multi-unit files.2004-05-05 Jerome Guitton <guitton@act-europe.fr>* Makefile.in: Remove unused targets and variables.2004-05-05 Vincent Celier <celier@gnat.com>* switch-m.adb: New gnatmake switch -eI* vms_data.ads: Add VMS equivalents of new gnatclean swith -innn andof new gnatmake switch -eInnn.* makegpr.adb: Take into account new parameters Index and Src_Index inPrj.Util.* clean.adb: Implement support for multi-unit sources, including newswitch -i.* gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameterSrc_Index.* make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0(Extract_From_Q): New out parameter Index(Mark, Is_Marked): Subprograms moved to Makeutl(Switches_Of): New parameter Source_Index(Add_Switch): New parameter Index(Check): New parameter Source_Index(Collect_Arguments): New parameter Source_Index(Collect_Arguments_And_Compile): New parameter Source_Index(Compile): New parameter Source_IndexPut subprograms in alphabetical orderAdd support for multi-source sources, including in project files.* makeutl.ads, makeutl.adb (Unit_Index_Of): New function(Mark, Is_Marked, Delete_All_Marks): New subprograms, moved fromMake.* makeusg.adb: New gnatmake switch -eInnn* mlib-prj.adb (Build_Library): Add new parameter Src_Index to call toPrj.Util.Value_Of.* opt.ads (Main_Index): New variable, defaulted to 0.* osint.ads, osinte.adb (Add_File): New parameter Index(Current_Source_Index): New function* prj.adb: Take into account new components Index and Src_Index* prj.ads (String_Element): New component Index(Variable_Value): New component Index(Array_Element): New component Src_Index* prj-attr.adb: Indicate that optional index may be specified forattributes Main, Executable, Spec, Body and some of Switches.* prj-attr.ads (Attribute_Kind): New values for optional indexes(Attribute_Record): New component Optional_Index* prj-com.ads (File_Name_Data): New component Index* prj-dect.adb (Parse_Attribute_Declaration): Process optional index* prj-env.adb (Put): Output optional index* prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas andattributes Spec and Body.* prj-nmsc.adb: Process optional indexes* prj-pp.adb: Ouput "at" for optional indexes* prj-proc.adb: Take into account optional indexes* prj-strt.ads, prj-strt.adb (Terms): New Boolean parameterOptional_Index. For string literal,process optional index when Optional_Index is True.(Parse_Expresion): New Boolean parameter Optional_Index* prj-tree.ads, prj-tree.adb (Source_Index_Of): New function(Set_Source_Index_Of): New procedure* prj-util.adb (Executable_Of, Value_Of): Take into account optionalindex.* prj-util.ads (Executable_Of): New parameter Index(Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):New parameter Src_Index, defaulted to 0.2004-05-05 Ed Schonberg <schonberg@gnat.com>PR ada/15257* sem_ch3.adb (Access_Definition): If this is an access parameterwhose designated type is imported through a limited_with clause, donot add the enclosing subprogram to the list of private dependents ofthe type.2004-05-05 Ed Schonberg <schonberg@gnat.com>PR ada/15258* sem_ch6.adb (Base_Types_Match): True if one type is imported througha limited_with clause, and the other is its non-limited view.2004-05-05 Thomas Quinot <quinot@act-europe.fr>* cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.* exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: UseStand.Boolean_Literals to produce references to entitiesStandard_False and Standard_True from compile-time computed booleanvalues.* stand.ads (Boolean_Literals): New variable, provides the entityvalues for False and True, for use by the expander.2004-05-05 Doug Rupp <rupp@gnat.com>* 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype5vinmaop.adb: Unchecked convert Short_Address vice Address* adaint.c, raise.c: Caste CRTL function return valueto avoid gcc error on 32/64 bit IVMS.* Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS andtarget = IA64/VMS.* init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.* 5qsystem.ads (Address): Declare as Long_Integer(Short_Address): Declare as 32 bit subtype of AddressDeclare abstract address operations to avoid gratuitous ambiguities.2004-05-05 Jose Ruiz <ruiz@act-europe.fr>* gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)instead of the old Boolean_Entry_Barriers.Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.2004-05-05 GNAT Script <nobody@gnat.com>* Make-lang.in: Makefile automatically updated2004-05-03 Arnaud Charlet <charlet@act-europe.fr>* 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.2004-05-03 Olivier Hainque <hainque@act-europe.fr>PR ada/15152* exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm argumentsalone. Replacing object references by literals is inappropriate in aso low level context.2004-05-03 Arnaud Charlet <charlet@act-europe.fr>* a-exexpr.adb: Add comments2004-05-03 Joel Brobecker <brobecker@gnat.com>* a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us todeclare the Ancestor_Tags array in Type_Specific_Data with a small sizewithout risking a bounds check error when accessing one of itscomponents.(Type_Specific_Data): Define Ancestor_Tags as a small array.This prevents us from hitting a limitation during the debug infogeneration when using stabs.* a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as asmall array.This prevents us from hitting a limitation during the debug infogeneration when using stabs.2004-05-03 Eric Botcazou <ebotcazou@act-europe.fr>lang-specs.h: Remove -gnatz* from specs.2004-05-03 Vincent Celier <celier@gnat.com>* gprmake.adb, makegpr.ads, makegpr.adb: New files.* Make-lang.in, Makefile.in: Add gprmake2004-05-03 Thomas Quinot <quinot@act-europe.fr>* sem_aggr.adb: Fix typo in comment.2004-05-03 Robert Dewar <dewar@gnat.com>* make.adb: Minor reformatting* rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function* sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for addressso that it works when address is not a private type.* sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Dealproperly with rewritten unchecked conversions. This preventsorder-of-elaboration issues that can otherwise arise.(Minimum_Size): Don't check size of access types under VMS* sem_ch4.adb (Remove_Address_Interpretation): New circuit to removeinterpretations of integer literals as type System.Address.* sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function(Is_Descendent_Of): New function2004-05-03 Jose Ruiz <ruiz@act-europe.fr>* sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.* sem_res.adb: Use the new restriction Max_Entry_Queue_Length insteadof the old Max_Entry_Queue_Depth.* snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_LengthNo_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment* snames.ads: New entry for proper handling of Boolean_Entry_Barriers.New entry for proper handling of Max_Entry_Queue_Depth.New entry for proper handling of No_Dynamic_Interrupts.* s-rident.ads: Adding restriction Simple_Barriers (AI-00249) thatsupersedes the GNAT specific restriction Boolean_Entry_Barriers.Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedesthe GNAT specific restriction Max_Entry_Queue_Depth.Adding restriction No_Dynamic_Attachment (AI-00249) that supersedesthe GNAT specific restriction No_Dynamic_Interrupts.* restrict.ads, restrict.adb: Use the new restriction Simple_Barriersinstead of the old Boolean_Entry_Barriers.Use the new restriction No_Dynamic_Attachment instead of the oldNo_Dynamic_Interrupts.* exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) thatsupersedes the GNAT specific restriction Boolean_Entry_Barriers.* gnatbind.adb: Use the new restriction Max_Entry_Queue_Length insteadof the old Max_Entry_Queue_Depth.2004-05-03 GNAT Script <nobody@gnat.com>* Make-lang.in: Makefile automatically updated2004-04-29 Ed Schonberg <schonberg@gnat.com>* checks.adb (Enable_Range_Check): If the prefix of an index componentis an access to an unconstrained array, perform check unconditionally.2004-04-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* decl.c (gnat_to_gnu_field): Also call make_packable_type ifComponent_Clause.2004-04-29 Olivier Hainque <hainque@act-europe.fr>* init.c (__gnat_install_handler, __gnat_error_handler): Removealternate stack setting. There was no support for the tasking casesand the changes eventually caused a number of side-effect failures inthe non-tasking case too.2004-04-29 Eric Botcazou <ebotcazou@act-europe.fr>lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or-gnats is passed.2004-04-29 Vincent Celier <celier@gnat.com>* make.adb (Gnatmake): Increase max size of argument array forgnatbind for the potential addition of -F.If there are Stand-Alone Library projects, invoke gnatbind with -F tobe sure that elaboration flags will be checked.* switch-c.adb: Correct call to Scan_Pos for -gnateI2004-04-29 Thomas Quinot <quinot@act-europe.fr>* sem_warn.adb (Check_References): Move '<access-variable> may benull' warning out of under Warn_On_No_Value_Assigned.2004-04-29 Ed Falis <falis@gnat.com>* gnat_ugn.texi: Fixed texi error2004-04-29 Robert Dewar <dewar@gnat.com>* sem_ch4.adb (Remove_Abstract_Operations): Unconditionally removeabstract operations if they come from predefined files.* gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should beDynamic, not RM).* s-addope.adb: Correct obvious error in mod function2004-04-28 Andrew W. Reynolds <awreynolds@mac.com>* Makefile.in: Add target pairs for powerpc darwin*tasking support.* a-intnam-darwin.ads, s-osinte-darwin.adb,s-osinte-darwin.ads, system-darwin-ppc.ads: New files.2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>* Makefile.in: Add target macro definitions for s390*-linux*.* system-linux-s390.ads: New file.* system-linux-s390x.ads: New file.2004-04-28 Joseph S. Myers <jsm@polyomino.org.uk>* gnat_ugn.texi: Correct argument to @setfilename.2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>* a-exexpr.adb (Unwind_Word): New data type.(Unwind_Exception): Use it as type of Private1 and Private2.* raise.c (db_action_for): Fix debug printf.2004-04-27 Ed Schonberg <schonberg@gnat.com>* a-wtmoio.ads: Formal type must be a modular type, not a signedinteger type.2004-04-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* decl.c (gnat_to_gnu_entity, case object): Call__builtin_update_setjmp_buf.* gigi.h (update_setjmp_buf): Deleted.(ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.* misc.c: (update_setjmp_buf): Deleted.* trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queuearound block of RTL.* utils.c (init_gigi_decls): Initialize update_setjmp_buf.2004-04-26 Thomas Quinot <quinot@act-europe.fr>* sem_dist.adb, exp_dist.adb: When constructing a RAS value for a localsubprogram for which no pragma All_Calls_Remote applies, store theaddress of the real subprogram in the underlying record type, so localdereferences do not go through the PCS.2004-04-26 Robert Dewar <dewar@gnat.com>* i-c.ads: Add some type qualifications to avoid ambiguities whencompiling with s-auxdec.ads and a non-private address type.2004-04-26 Arnaud Charlet <charlet@act-europe.fr>* Makefile.rtl: Fix error in previous check-in:Add s-addope.o to non tasking object list (rather than tasking objectlist).2004-04-26 Javier Miranda <miranda@gnat.com>* sem_aggr.adb: Fix typo in comments(Resolve_Aggr_Expr): Propagate the type to the nested aggregate.Required to check the null-exclusion attribute.* sem_attr.adb (Resolve_Attribute): Check the accessibility level incase of anonymous access types in record and array components. For acomponent definition the level is the same of the enclosing compositetype.* sem_ch3.adb (Analyze_Component_Declaration): In case of componentsthat are anonymous access types the level of accessibility depends onthe enclosing type declaration. In order to have this information, setthe scope of the anonymous access type to the enclosing record typedeclaration.(Array_Type_Declaration): In case of components that are anonymousaccess types the level of accessibility depends on the enclosing typedeclaration. In order to have this information, set the scope of theanonymous access type to the enclosing array type declaration.* sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymousaccess type.* sem_ch8.adb (Analyze_Object_Renaming): Add check to verify thatrenaming of anonymous access-to-constant types allowed if and only ifthe renamed object is access-to-constant.* sem_util.adb (Type_Access_Level): In case of anonymous access typesthat are component_definition or discriminants of a nonlimited type,the level is the same as that of the enclosing component type.2004-04-26 Sergey Rybin <rybin@act-europe.fr>* sem_elim.adb: Some minor code reorganization from code reading. Fixmisprint in the function name (File_Name_Match).2004-04-23 Laurent Guerby <laurent@guerby.net>* Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including afterinstall.2004-04-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>* Make-lang.in (GNATBIND_OBJS): Add s-addope.o.2004-04-23 Emmanuel Briot <briot@act-europe.fr>* adaint.c (__gnat_try_lock): No longer requires that the parentdirectory be writable, the directory itself is enough.(gnat_is_absolute_path): Change profile, so that the call fromGNAT.OS_Lib can be made more efficient.* adaint.h (gnat_is_absolute_path): Change profile, so that the callfrom GNAT.OS_Lib can be made more efficient.* g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoidone copy of the file name. Found by code reading.2004-04-23 Vincent Celier <celier@gnat.com>* gnat_ugn.texi: Add documentation for gnatmake switch -eLCorrect documentation on gnatmake switches transmitted to the compiler* ali.ads: Minor comment fix2004-04-23 Javier Miranda <miranda@gnat.com>* sem_ch6.adb: (Confirming Types): Code cleanup* decl.c (gnat_to_gnu_entity): Give support to anonymous access tosubprogram types: E_Anonymous_Access_Subprogram_Type andE_Anonymous_Access_Protected_Subprogram_Type.2004-04-23 Thomas Quinot <quinot@act-europe.fr>* sem_dist.adb: Add a new paramter to the RAS_Access TSS indicatingwhether a pragma All_Calls_Remote applies to the subprogram on which'Access is taken.No functional change is introduced by this revision; the new parameterwill be used to allow calls to local RCI subprograms to be optimizedto not use the PCS in the case where no pragma All_Calls_Remote applies,as is already done in the PolyORB implementation of the DSA.* exp_dist.adb: Add a new paramter to the RAS_Access TSS indicatingwhether a pragma All_Calls_Remote applies to the subprogram on which'Access is taken.No functional change is introduced by this revision; the new parameterwill be used to allow calls to local RCI subprograms to be optimizedto not use the PCS in the case where no pragma All_Calls_Remote applies,as is already done in the PolyORB implementation of the DSA.2004-04-23 Robert Dewar <dewar@gnat.com>* Makefile.rtl: Add entry for s-addope.o in run time library list* Make-lang.in: Add entry for s-addope.o to GNAT1 objects* s-addope.ads, s-addope.adb: New files.* s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allowSystem.Address to be non-private and signed.* sem_elim.adb: Minor reformatting (fairly extensive)Some minor code reorganization from code readingAdd a couple of ??? comments2004-04-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* trans.c (tree_transform, build_unit_elab): Don't call getdecls.(tree_transform, case N_If_Statement): Remove non-determinism.* utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.2004-04-23 Sergey Rybin <rybin@act-europe.fr>* gnat_rm.texi: Small fixes in the changes made in the 'pragmaEliminate' section.* snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number isno longer used as a parameter name for Eliminate pragma).2004-04-22 Laurent Guerby <laurent@guerby.net>PR optimization/14984PR optimization/14985* trans.c (gigi): Fix non determinism leading to bootstrapcomparison failures.2004-04-21 Pascal Obry <obry@gnat.com>* adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])passed to spawnvp() to properly handle program pathname with spaces onWin32.2004-04-21 Emmanuel Briot <briot@act-europe.fr>* g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.(Allocate, Deallocate, Free_Physically): Make sure the tasks areunlocked in case of exceptions.2004-04-21 Joel Brobecker <brobecker@gnat.com>* gigi.h (get_target_no_dollar_in_label): Remove extern declaration.This function does not exist anymore.2004-04-21 Thomas Quinot <quinot@act-europe.fr>* gnatbind.adb, gnatlink.adb: Update name of imported C symbol.* link.c: Move variables to the __gnat name space.* Makefile.in: list link.o explicitly when needed.* mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.2004-04-21 Javier Miranda <miranda@gnat.com>* einfo.adb (Original_Access_Type): New subprogram(Set_Original_Access_Type): New subprogram(Write_Field21_Name): Write the name of the new field* einfo.ads (Original_Access_Type): New field present in access tosubprogram types.Addition of two new entities: E_Anonymous_Access_Subprogram_Type, andE_Anonymous_Access_Protected_Subprogram_Type.* lib-xref.adb (Output_One_Ref): Give support to anonymous access tosubprogram types.* lib-xref.ads (Xref_Entity_Letters): Initialize values correspondingto anonymous access to subprogram types.* sem_attr.adb (Resolve_Attribute): Give support to anonymous accessto subprogram types.* sem_ch3.adb (Access_Definition): Complete decoration of entitiescorresponding to anonymous access to subprogram types.(Analyze_Component_Declaration): Add new actual to the call tosubprogram replace_anonymous_access_to_protected_subprogram.(Array_Type_Declaration): Add new actual to the call to subprogramreplace_anonymous_access_to_protected_subprogram.(Process_Discriminants): Add new actual to the call to subprogramreplace_anonymous_access_to_protected_subprogram.(Replace_Anonymous_Access_To_Protected_Subprogram): New formal.* sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): Newformal.* sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymousaccess to subprogram types.* sem_util.adb (Has_Declarations): Addition of package_specificationnodes.2004-04-21 Ed Schonberg <schonberg@gnat.com>* sem_prag.adb (Make_Inline): If subprogram is a renaming, propagateinlined flags to renamed entity only if in current unit.2004-04-21 Thomas Quinot <quinot@act-europe.fr>* s-parint.ads: Add DSA implementation marker.* rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use thevalue of System.Partition_Interface.DSA_Implementation to determinewhat version of the distributed systems annex is available (noimplementation, GLADE, or PolyORB).2004-04-21 Joel Brobecker <brobecker@gnat.com>* targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.2004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make nodewith new type if alias sets differ.Fixes ACATS c41103b.2004-04-21 Vincent Celier <celier@gnat.com>* prj.ads: Remove FORTRAN as an accepted language: not tested yet.Add array Lang_Args for the language specific compiling argumentswitches.* gnat_ugn.texi: Explain in more details when a library is rebuilt.2004-04-21 Sergey Rybin <rybin@act-europe.fr>* gnat_rm.texi: Update the descripton of the Eliminate pragmaaccording to the recent changes in the format of the parameters of thepragma (replacing Homonym_Number with Source_Location).2004-04-19 Arnaud Charlet <charlet@act-europe.fr>* 5isystem.ads: Removed, unused.* gnat_rm.texi: Redo 1.13 change.2004-04-19 Robert Dewar <dewar@gnat.com>* s-stoele.ads: Clean up definition of Storage_Offset (the newdefinition is cleaner, avoids the kludge of explicit Standard operatorreferences, and also is consistent with a visible System.Address withno visible operations.* s-geveop.adb: Add declarations to avoid assumption of visibleoperations on type System.Address (since these might not be availableif Address is a non-private type for which the operationsare made abstract).* sem_eval.adb: Minor reformatting* s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minorreformatting (new function spec format).* s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,s-caun64.adb: Add declarations to avoid assumption of visibleoperations on type System.Address (since these might not be availableif Address is a non-private type for which the operations are madeabstract).* lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.* exp_intr.adb: Minor comment update* exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.* 5omastop.adb: Add declarations to avoid assumption of visibleoperations on type System.Address (since these might not be availableif Address is a non-private type for which the operationsare made abstract).2004-04-19 Vincent Celier <celier@gnat.com>* switch-m.adb: (Scan_Make_Switches): Process new switch -eL* prj-pars.ads (Parse): New Boolean parameter Process_Languages,defaulted to Ada.* prj-proc.adb (Process): New Boolean parameter Process_Languages,defaulted to Ada.Call Check with Process_Languages.(Check): New Boolean parameter Process_Languages. Call Recursive_Checkwith Process_Languages.(Recursive_Check): New Boolean parameter Process_Languages. CallNmsc.Ada_Check or Nmsc.Other_Languages_Check according toProcess_Languages.* prj-proc.ads (Process): New Boolean parameter Process_Languages,* prj-util.ads, prj-util.adb (Executable_Of): New Booleanparameter Ada_Main, defaulted to True.Check for Ada specific characteristics only when Ada_Main is True.* opt.ads: (Follow_Links): New Boolean flag for gnatmake* prj.adb: (Project_Empty): Add new Project_Data components.* prj.ads: New types and tables for non Ada languages.(Project_Data): New components Languages, Impl_Suffixes,First_Other_Source, Last_Other_Source, Imported_Directories_Switches,Include_Path, Include_Data_Set.* prj-env.ads, prj-env.adb: Minor reformatting* prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedurePut subprograms in alphabetical order* prj-pars.adb (Parse): New Boolean parameter Process_Languages,defaulted to Ada; Call Prj.Proc.Process with Process_Languages andOpt.Follow_Links.* mlib-prj.adb: Back out modification in last version, as they areincorrect.(Build_Library.Check_Libs): Remove useless pragma Warnings (Off)* make.adb: (Mains): Moved to package Makeutl(Linker_Opts): Moved to package Makeutl(Is_External_Assignment): Moved to package Makeutl(Test_If_Relative_Path): Moved to package Makeutl(Gnatmake): Move sorting of linker options to functionMakeutl.Linker_Options_Switches.* makeutl.ads, makeutl.adb: New files.* Makefile.in: Add makeutl.o to the object files for gnatmake* makeusg.adb: Add line for new switch -eL.* gnatls.adb (Image): New function.(Output_Unit): If in verbose mode, output the list of restrictionsspecified by pragmas Restrictions.* 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not useText_IO.* a-calend.adb (Split): Shift the date by multiple of 56 years, ifneeded, to put it in the range 1970 (included) - 2026 (excluded).(Time_Of): Do not shift Unix_Min_Year (1970).Shift the date by multiple of 56 years, if needed, to put it in therange 1970 (included) - 2026 (excluded).* adaint.h, adaint.c (__gnat_set_executable): New function.2004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* trans.c (tree_transform, case N_Subprogram_Body): Temporarily pushand pop GC context.(tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.(tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.(tree_transform, case N_Procedure_Call_Statement): Build a tree.(tree_transform, case N_Code_Statement): Likewise.(gnat_expand_stmt, case LABEL_STMT): Don't look atLABEL_STMT_FIRST_IN_EH.(gnat_expand_stmt, case ASM_STMT): New case.* utils2.c (build_unary_op): Properly set TREE_READONLY ofUNCONSTRAINED_ARRAY_REF.* utils.c (poplevel): Temporarily push/pop GC context around inlinefunction expansion.* decl.c (maybe_variable): Properly set TREE_READONLY ofUNCONSTRAINED_ARRAY_REF.(make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.* ada-tree.def: (ASM_STMT): New.* ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.(ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,ASM_STMT_INPUT): New.(ASM_STMT_CLOBBER): Likewise.2004-04-19 Thomas Quinot <quinot@act-europe.fr>* a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Usegeneral rcheck mechanism to raise Program_Error for E.4(18), insteadof a custom raiser in System.Partition_Interface.Part of general cleanup work before PolyORB integration.* snames.ads, snames.adb: Add new runtime library entities and namesfor PolyORB DSA.* sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist toexp_dist.(Build_Subprogram_Id): New subprogram provided by exp_distCode reorganisation in preparation for PolyORB integration.* exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist toexp_dist.(Build_Subprogram_Id): New subprogram provided by exp_dist* sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch inactual parameter types for call to dereference of anaccess-to-subprogram type.* rtsfind.ads: Add new runtime library entities and names for PolyORBDSA.* gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Valueinstead, which has the same behaviour here since we never pass it aNULL pointer.* link.c (run_path_option, Solaris case): Use -Wl, as for otherplatforms.* Makefile.in: adjust object file lists for gnatlink and gnatmaketo account for new dependency upon Interfaces.C.Strings + link.oFor x86 FreeBSD, use 86numaux.* make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved upfrom Mlib.Tgt to Mlib.* mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, nowtarget-independent.* mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Removetarget-specific versions of this subprogram, now implemented as atarget-independent function in Mlib.* 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb(Linker_Library_Path_Option): Remove target-specific versions of thissubprogram, now implemented as a target-independent function in Mlib.* atree.adb: (Allocate_Initialize_Node): New subprogram.Factors out node table slots allocation.(Fix_Parents): New subprogram.Encapsulate the pattern of fixing up parent pointers for syntacticchildren of a rewritten node.(New_Copy_Tree): Use New_Copy to copy non-entity nodes.(Rewrite): Use New_Copy when creating saved copy of original node.(Replace): Use Copy_Node to copy nodes.2004-04-19 Javier Miranda <miranda@gnat.com>* sprint.adb (Sprint_Node_Actual): Give support to the newAccess_To_Subprogram node available in Access_Definition nodes. Inaddition, give support to the AI-231 node fields: null-exclusion,all-present, constant-present.* sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram* sinfo.ads, sinfo.adb:New field Access_To_Subprogram_Definition in Access_Definition nodes* sem_ch6.adb (Process_Formals): Move here the code that creates anddecorates internal subtype declaration corresponding to thenull-excluding formal. This code was previously in Set_Actual_Subtypes.In addition, carry out some code cleanup on this code. In case ofaccess to protected subprogram callReplace_Anonymous_Access_To_Protected_Subprogram.(Set_Actual_Subtypes): Code cleanup.* sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call toFind_Type in case of anonymous access renamings. Add warning in case ofnull-excluding attribute used in anonymous access renaming.* sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): Newsubprogram* sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): Newsubprogram.(Access_Definition): In case of anonymous access to subprograms callthe corresponding semantic routine to decorate the node.(Access_Subprogram_Declaration): Addition of some comments indicatingsome code that probably should be added here. Detected by comparisonwith the access_definition subprogram.(Analyze_Component_Declaration): In case of access to protectedsubprogram call Replace_Anonymous_Access_To_Protected.(Array_Type_Declaration): In case of access to protected subprogram callReplace_Anonymous_Access_To_Protected_Subprogram.(Process_Discriminants): In case of access to protected subprogram callReplace_Anonymous_Access_To_Protected_Subprogram.* par.adb (P_Access_Definition): New formal that indicates if thenull-exclusion part was present.(P_Access_Type_Definition): New formal that indicates if the caller hasalready parsed the null-excluding part.* par-ch3.adb (P_Subtype_Declaration): Code cleanup.(P_Identifier_Declarations): Code cleanup and give support to renamingsof anonymous access to subprogram types.(P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.(P_Array_Type_Definition): Give support to AI-254.(P_Component_Items): Give support to AI-254.(P_Access_Definition): New formal that indicates if the header wasalready parsed by the caller.(P_Access_Type_Definition): New formal that indicates if the caller hasalready parsed the null-excluding part.* par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to thecall to P_Access_Definition.2004-04-19 Geert Bosch <bosch@gnat.com>* checks.adb (Apply_Float_Conversion_Check): New procedure to implementthe delicate semantics of floating-point to integer conversion.(Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.* eval_fat.adb (Machine_Mantissa): Moved to spec.(Machine_Radix): New function.* eval_fat.ads (Machine_Mantissa): Moved from body for use inconversion checks.(Machine_Radix): New function also for use in conversion checks.2004-04-19 Ed Schonberg <schonberg@gnat.com>* par-prag.adb (Source_File_Name_Project): Fix typo in error message.* exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyzeto decorate the access-to-protected subprogram and the equivalent type.* checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give supportto anonymous access to subprogram types.* exp_ch4.adb (Expand_N_In): Preserve Static flag beforeconstant-folding, for legality checks in contexts that require an RMstatic expression.* exp_ch6.adb (Expand_N_Function_Call): If call may generate largetemporary but stack checking is not enabled, increment serial numberto so that symbol generation is consistent with and without stackchecking.* exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate isindependent on whether stack checking is enabled, caller must checkthe corresponding flag.* sem_ch3.adb (Constrain_Index): Index bounds given by attributes needrange checks.(Build_Derived_Concurrent_Type): Inherit Is_Constrained flag fromparent if it has discriminants.(Build_Derived_Private_Type): Constructed full view doesnot come from source.(Process_Discriminants): Default discriminants on a tagged type arelegal if this is the internal completion of a private untaggedderivation.* sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needsno constraint checks, because it corresponds to an existing object.* sem_prag.adb (Process_Convention): Pragma appliesonly to subprograms in the same declarative part, i.e. the same unit,not the same scope.* sem_res.adb (Valid_Conversion): In an instance or inlined body,ignore type mismatch on a numeric conversion if expression comes fromexpansion.2004-04-19 Sergey Rybin <rybin@act-europe.fr>* sem_elim.adb (Process_Eliminate_Pragma): Remove the processing forHomonym_Number parameter, add processing for Source_Location parametercorresponding.(Check_Eliminated): Remove the check for homonym numbers, add the checkfor source location traces.* sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Numberwith Arg_Source_Location corresponding to the changes in the format ofthe pragma.* sem_prag.adb: (Analyze_Pragma): Changes in the processing ofEliminate pragma corresponding to the changes in the format of thepragma: Homonym_Number is replaced with Source_Location, two ways ofdistinguishing homonyms are mutially-exclusive.2004-04-19 Joel Brobecker <brobecker@gnat.com>* get_targ.ads (Get_No_Dollar_In_Label): Remove.* exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use ofNo_Dollar_In_Label, no longer necessary, as it is always True.(Strip_Suffixes): Likewise.2004-04-19 Gary Dismukes <dismukes@gnat.com>* s-stalib.ads (type Exception_Code): Use Integer'Size for exponent ofmodulus for compatibility with size clause on targets with 16-bitInteger.* layout.adb (Discrimify): In the case of private types, set Vtyp tofull type to fix type mismatches on calls to size functions fordiscriminant-dependent array components.2004-04-19 Jerome Guitton <guitton@act-europe.fr>* Makefile.in (gnatlib-zcx): New target, for building a ZCX run-timelib.2004-04-19 Pascal Obry <obry@gnat.com>* mdll-utl.adb (Locate): New version is idempotent.2004-04-17 Laurent Guerby <laurent@guerby.net>PR ada/14988 (partial)* impunit.adb: Fix typo.2004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>* Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,and install-rts-cert targets. Remove all gnatlib and gnattoolstargets and all other rts-* targets (moved to libada). Remove (now)unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.2004-04-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* trans.c (tree_transform): Shortcut returning error_mark_node forstatements in annotate_only_mode.(tree_transform, case N_Label, case N_Return_Statement,N_Goto_Statement): Make statement tree instead of generating code.(tree_transform, case N_Assignment_Statement): No longer checktype_annotate_only.(gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, caseRETURN_STMT): New.(first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):New fcns.(gnat_to_gnu): Collect any RTL generated and deal with it.(tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.(tree_transform case N_If_Statement): Rewrite to make IF_STMT.(gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.* ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.* ada-tree.def (EXPR_STMT): Fix typo in name.(BLOCK_STMT, IF_STMT): New nodes.* ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,LABEL_STMT_FIRST_IN_EH): New macros.(RETURN_STMT_EXPR): Likewise.* ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.2004-04-08 Thomas Quinot <quinot@act-europe.fr>* atree.ads: Correct documentation on extended nodes.* link.c: Set run_path_option for FreeBSD.2004-04-08 Vincent Celier <celier@gnat.com>* mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali isone of the ALI file, do not link with DEC lib.* par.adb Remove the last two characters ("%s" or "%b") when checkingif a language defined unit may be recompiled.2004-04-08 Ed Schonberg <schonberg@gnat.com>* sem_ch4.adb (Remove_Abstract_Operations): Improve error message whenremoval of abstract operation leaves no possible interpretation forexpression.* sem_eval.adb (Eval_Qualified_Expression): UseSet_Raises_Constraint_Error on node when needed, so that it does notget optimized away by subsequent optimizations.* sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations ofoperands even when they are not wrapped in a type conversion.2004-04-08 Olivier Hainque <hainque@act-europe.fr>* sem_prag.adb (Set_Exported): Warn about making static as result ofexport only when the export is coming from source. This may be notbe true e.g. on VMS where we expand export pragmas for exception codestogether with imported or exported exceptions, and we don't want theuser to be warned about something he didn't write.2004-04-08 Thomas Quinot <quinot@act-europe.fr>* sem_util.adb (Note_Possible_Modification): Reorganize to remove codeduplication between normal entities and those declared as renamings.No functional change.* s-fileio.ads (Form): Remove pragma Inline, as we cannot currentlyinline functions returning an unconstrained result.2004-04-08 Eric Botcazou <ebotcazou@act-europe.fr>* utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, toconform to what other front-ends do.2004-04-08 Doug Rupp <rupp@gnat.com>* 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init sharedlibraries.2004-04-06 Pascal Obry <obry@gnat.com>* adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.* osint.adb (Program_Name): Do not look past a directory separator.2004-04-06 Thomas Quinot <quinot@act-europe.fr>* atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).* exp_ch6.adb (Rewrite_Function_Call): Clarify documentation ofrequirement for preserving a copy of the original assignment node.* sinfo.ads: Update comment (Original_Tree -> Original_Node).2004-04-06 Olivier Hainque <hainque@act-europe.fr>(__gnat_initialize [Vxworks]): Enable references to the crtstuff bitswhen supported.2004-04-06 Ed Schonberg <schonberg@gnat.com>* sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes tooperator calls in functional notation, and applyUniversal_Interpretation to operands, not to their type.2004-04-06 Robert Dewar <dewar@gnat.com>* 5wdirval.adb: Minor reformatting2004-04-06 Ed Falis <falis@gnat.com>* gnat_rm.texi: Improve a reference to the GCC manual2004-04-05 Vincent Celier <celier@gnat.com>* adaint.h, adaint.c: Add function __gnat_named_file_length* impunit.adb: Add Ada.Directories to the list* Makefile.in: Add VMS and Windows versions ofAda.Directories.Validity package body.* Makefile.rtl: Add a-direct and a-dirval* mlib-tgt.ads: Minor comment update.* a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,a-direct.ads, a-direct.adb: New files.2004-04-05 Vincent Celier <celier@gnat.com>PR ada/13620* make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, notjust to the compiler.2004-04-05 Robert Dewar <dewar@gnat.com>* a-except.adb (Exception_Name_Simple): Make sure lower bound ofreturned string is 1.* ali-util.adb: Use proper specific form for Warnings (Off, entity)* eval_fat.ads: Minor reformatting* g-curexc.ads: Document that lower bound of returned string valuesis always one.* gnatlink.adb: Add ??? comment for previous change(need to document why this is VMS specific)* s-stoele.ads: Minor reformatting* tbuild.ads: Minor reformatting throughout (new function specs)* par-ch10.adb (P_Context_Clause): Handle comma instead of semicolonafter WITH.* scng.adb: Minor reformatting2004-04-05 Geert Bosch <bosch@gnat.com>* eval_fat.adb (Machine): Remove unnecessary suppression of warning.(Leading_Part): Still perform truncation to machine number if thespecified radix_digits is greater or equal to machine_mantissa.2004-04-05 Javier Miranda <miranda@gnat.com>* par-ch3.adb: Complete documentation of previous changeCorrect wrong syntax documentation of the OBJECT_DECLARATION rule(aliased must appear before constant).* par-ch4.adb: Complete documentation of previous change.* par-ch6.adb: Complete documentation of previous change.* sinfo.ads: Fix typo in commment.2004-04-05 Ed Schonberg <schonberg@gnat.com>* sem_ch3.adb (Inherit_Components): If derived type is private and hasstored discriminants, use its discriminants to constrain parent type,as is done for non-private derived record types.* sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implementAda 2005 AI-310: an abstract non-dispatching operation is not acandidate interpretation in an overloaded call.* tbuild.adb (Unchecked_Convert_To): Preserve conversion node ifexpression is Null and target type is not an access type (e.g. anon-private address type).2004-04-05 Thomas Quinot <quinot@act-europe.fr>* exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignmentstatement whose right-hand side is an inlined call, save a copy of theoriginal assignment subtree to preserve enough consistency forAnalyze_Assignment to proceed.* sem_ch5.adb (Analyze_Assignment): Remove a costly copy of thecomplete assignment subtree which is now unnecessary, as the expansionof inlined call has been improved to preserve a consistent assignmenttree. Note_Possible_Modification must be called onlyafter checks have been applied, or else unnecessary checks willbe generated.* sem_util.adb (Note_Possible_Modification): Reorganise the handlingof explicit dereferences that do not Come_From_Source:- be selective on cases where we must go back to the dereferencedpointer (an assignment to an implicit dereference must not berecorded as modifying the pointer);- do not rely on Original_Node being present (Analyze_Assignmentcalls Note_Possible_Modification on a copied tree).* sem_warn.adb (Check_References): When an unset reference to a pointerthat is never assigned is encountered, prefer '<pointer> may be null'warning over '<pointer> is never assigned a value'.2004-04-05 Ramon Fernandez <fernandez@gnat.com>* tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant withthe ABI.2004-04-05 Olivier Hainque <hainque@act-europe.fr>* 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option forlibexc. We currently don't reference anything in this library andlinking it in triggers linker warnings we don't want to see.* init.c: Update comments.2004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.* utils.c (create_field_decl): Likewise.* utils2.c (build_unary_op, gnat_build_constructor): Likewise.2004-04-02 Arnaud Charlet <charlet@act-europe.fr>* gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.Replace ifinfo by ifnottex, to make makeinfo --html happy again.Add info directory entry and category.2004-04-02 Jan Hubicka <jh@suse.cz>* utils.c: Include function.h(end_subprog_body): Clear DECL_STRUCT_FUNCTION.2004-04-01 Arnaud Charlet <charlet@act-europe.fr>PR ada/14150* Make-lang.in: Clean up generation of documentation* gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version* xgnatug.adb: Removed, replaced by xgnatugn.adb* xgnatugn.adb: Replaces xgnatug.adb* gnat_ug.texi: Removed, replaced by gnat_ugn.texi* gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version* gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,gnat_ug_wnt.texi: Removed.2004-04-01 Arnaud Charlet <charlet@act-europe.fr>* utils2.c: Update copyright notice.2004-04-01 Robert Dewar <dewar@gnat.com>* checks.adb: Minor reformatting throughoutNote that prev checkin added RM reference to alignment warning2004-04-01 Ed Schonberg <schonberg@gnat.com>* exp_aggr.adb (Get_Component_Val): Treat a string literal asnon-static when building aggregate for bit-packed array.* exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of afunction call that is itself the actual in a procedure call, buildtemporary for it.* exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side isa string literal, create a temporary for it, constant folding onlyhandles scalars here.2004-04-01 Vincent Celier <celier@gnat.com>* ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,Error_Msg_SP): New empty procedures to instantiate the Scanner.(Style, Scanner): Instantiations of Styleg and Scng to be able to scantokens.(Accumulate_Checksum, Initialize_Checksum): Remove procedures.(Get_File_Checksum): Use the instantiated scanner to scan all the tokensand get the checksum.* make.adb (Gnatmake): Do not insert into Q the Main_Source if it isalready in the Q.Increase the Marking_Label at the end of the Multiple_Main_Loop,instead of at the beginning.* osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'directly.(Osint package elaboration): Change Multi_Unit_Index_Character to '$' ifon VMS.* osint.ads (Multi_Unit_Index_Character): New Character global variable* osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,not '~' directly.* par.adb: Remove test on file name to detect language defined units.Add test on unit name, after parsing, to detect language defined unitsthat are not compiled with -gnatg (except System.RPC and its children)* par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan thefollowing units without style checking.* switch-c.adb: Change -gnatC to -gnateI* usage.adb: Document new switch -gnateInnn* scng.adb (Accumulate_Token_Checksum): New procedure(Scan): Call Accumulate_Token_Checksum after each identifier, reservedword or literal number.(Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteralnumbers.2004-04-01 Thomas Quinot <quinot@act-europe.fr>* a-tasatt.adb,g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,5vtpopde.adb: Add missing 'constant' keywords.2004-04-01 Javier Miranda <miranda@gnat.com>* par-ch4.adb: (P_Allocator): Code cleanup* sem_ch3.adb (Access_Definition): Properly set the null-excludingattribute.* sinfo.ads: Complete documentation of previous change2004-04-01 Pascal Obry <obry@gnat.com>* gnatlink.adb (Process_Binder_File): Remove duplicate linker optionsonly on VMS. This special handling was done because an old GNU/ld bugon Windows which has been fixed.2004-04-01 GNAT Script <nobody@gnat.com>* Make-lang.in: Makefile automatically updated2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* decl.c (gnat_to_gnu_entity, make_type_from_size):Use TYPE_UNSIGNED, not TREE_UNSIGNED.* trans.c (tree_transform, convert_with_check): Likewise.* utils.c (gnat_signed_or_unsigned_type): Likewise.(build_vms_descriptor, unchecked_convert): Likewise.* utils2.c (nonbinary_modular_operation): Likewise.2004-03-29 Javier Miranda <miranda@gnat.com>* checks.adb (Null_Exclusion_Static_Checks): New subprogram(Install_Null_Excluding_Check): Local subprogram that determines whetheran access node requires a runtime access check and if so inserts theappropriate run-time check.(Apply_Access_Check): Call Install_Null_Excluding check if required(Apply_Constraint_Check): Call Install_Null_Excluding check if required* checks.ads: (Null_Exclusion_Static_Checks): New subprogram* einfo.ads: Fix typo in comment* exp_ch3.adb (Build_Assignment): Generate conversion to thenull-excluding type to force the corresponding run-time check.(Expand_N_Object_Declaration): Generate conversion to the null-excludingtype to force the corresponding run-time check.* exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion tothe null-excluding type to force the corresponding run-time check.* exp_ch6.adb (Expand_Call): Do not generate the run-time check incase of access types unless they have the null-excluding attribute.* sprint.adb (Sprint_Node_Actual): Give support to the null-exclusingpart.* exp_util.ads: Fix typo in comment* par.adb (P_Null_Exclusion): New subprogram(P_Subtype_Indication): New formal that indicates if the null-excludingpart has been scanned-out and it was present* par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231* sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram(Aggregate_Constraint_Checks): Generate conversion to the null-excludingtype to force the corresponding run-time check(Resolve_Aggregate): Propagate the null-excluding attribute to the arraycomponents(Resolve_Array_Aggregate): Carry out some static checks(Resolve_Record_Aggregate.Get_Value): Carry out some static check* sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Nullattribute must be set only if specified by means of the null-excludingpart. In addition, we must also propagate the access-constant attributeif present.(Access_Subprogram_Declaration, Access_Type_Declaration,Analyze_Component_Declaration, Analyze_Object_Declaration,Array_Type_Declaration, Process_Discriminants,Analyze_Subtype_Declaration): Propagate the null-excluding attributeand carry out some static checks.(Build_Derived_Access_Type): Set the null-excluding attribute(Derived_Type_Declaration, Process_Subtype): Carry out some staticchecks.* sem_ch4.adb (Analyze_Allocator): Carry out some static checks* sem_ch5.adb (Analyze_Assignment): Carry out some static checks* sem_ch6.adb (Process_Formals): Carry out some static checks.(Set_Actual_Subtypes): Generate null-excluding subtype if thenull-excluding part was present; it is not required to be done here incase of anonymous access types.(Set_Formal_Mode): Ada 0Y allows anonymous access to have the nullvalue.* sem_res.adb (Resolve_Actuals): Carry out some static check(Resolve_Null): Allow null in anonymous access* sinfo.adb: New subprogram Null_Exclusion_PresentAll_Present and Constant_Present available on access_definition nodes* sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,object_declaration, derived_type_definition, component_definition,discriminant_specification, access_to_object_definition,access_function_definition, allocator, access_procedure_definition,access_definition, parameter_specification, All_Present andConstant_Present flags available on access_definition nodes.2004-03-29 Robert Dewar <dewar@gnat.com>* fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,sem_prag.adb: Updates to handle multiple units/file* par.adb: Change test for s-rpc to s-rp for detecting rpc and children* par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,sem_util.adb: Minor reformatting* sem_ch12.adb: Add comment for previous change2004-03-29 Laurent Pautet <pautet@act-europe.fr>* osint.adb (Executable_Prefix): Set Exec_Name to the currentexecutable name when not initialized. Otherwise, use its current value.* osint.ads (Exec_Name): Move Exec_Name from body to spec in order toinitialize it to another executable name than the current one. Thisallows to configure paths for an executable name (gnatmake) differentfrom the current one (gnatdist).2004-03-29 Ed Schonberg <schonberg@gnat.com>* exp_ch6.adb (Expand_Call): A call to a function declared in thecurrent unit cannot be inlined if it appears in the body of a withedunit, to avoid order of elaboration problems in gigi.* exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugginginformation for protected (wrapper) operation as well, to simplify gdbuse.* sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in aprotected body, indicate that the entity for the generated spec comesfrom source, to ensure that references are properly generated for it.(Build_Body_To_Inline): Do not inline a function that returns acontrolled type.* sem_prag.adb (Process_Convention): If subprogram is overloaded, onlyapply convention to homonyms that are declared explicitly.* sem_res.adb (Make_Call_Into_Operator): If the operation is a functionthat renames an equality operator and the operands are overloaded,resolve them with the declared formal types, before rewriting as anoperator.2004-03-29 GNAT Script <nobody@gnat.com>* Make-lang.in: Makefile automatically updated2004-03-25 Vasiliy Fofanov <fofanov@act-europe.fr>* memtrack.adb: Log realloc calls, which are treated as free followedby alloc.2004-03-25 Vincent Celier <celier@gnat.com>* prj-makr.adb (Process_Directories): Detect when a file containsseveral units. Do not include such files in the config pragmas orin the naming scheme.* prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.Resolve links only when not in Trusted_Mode.(Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):Do not resolve links for the display names.* prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do notresolve links when computing the display names.2004-03-25 Thomas Quinot <quinot@act-europe.fr>* sem_attr.adb (Check_Dereference): When the prefix of a 'Tagattribute reference does not denote a subtype, it can be anyexpression that has a classwide type, potentially after an implicitdereference. In particular, the prefix can be a view conversion fora classwide type (for which Is_Object_Reference holds), but it canalso be a value conversion for an access-to-classwide type. In thelatter case, there is an implicit dereference, and the original nodefor the prefix does not verify Is_Object_Reference.* sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A viewconversion of a discriminant-dependent component of a mutable objectis one itself.2004-03-25 Ed Schonberg <schonberg@gnat.com>* freeze.adb (Freeze_Entity): When an inherited subprogram isinherited, has convention C, and has unconstrained array parameters,place the corresponding warning on the derived type declaration ratherthan the original subprogram.* sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Defaultindication on renaming declaration, if formal has a box and actualis absent.* sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag todetermine whether to generate an implicit or explicit reference tothe renamed entity.* sinfo.ads, sinfo.adb: New flag From_Default, to indicate that asubprogram renaming comes from a defaulted formal subprogram in aninstance.2004-03-25 Gary Dismukes <dismukes@gnat.com>* sem_elab.adb (Check_Elab_Call): Refine loop that checks for defaultvalue expressions to ensure that calls within a component definitionwill be checked (since those are evaluated during the record type'selaboration).2004-03-25 Arnaud Charlet <charlet@act-europe.fr>* s-tpobop.adb: Code clean up:(Requeue_Call): Extract from PO_Service_Entries to remove duplicatedcode.(PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.2004-03-25 Jose Ruiz <ruiz@act-europe.fr>* Makefile.in: Clean up in the ravenscar run time.2004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass valueof No_Strict_Aliasing to build_pointer_type_for_mode.* utils.c (update_pointer_to): Walk pointer and ref chains.2004-03-22 Cyrille Comar <comar@act-europe.fr>* ali.ads: Fix Comment about Dynamic_Elab.* gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,Has_RACW, Is_Generic, etc.)(Output_Object, Gnatls): Take into account ALI files not attached toan object.2004-03-22 Vincent Celier <celier@gnat.com>* gprep.adb: Change all String_Access to Name_Id(Is_ASCII_Letter): new function(Double_File_Name_Buffer): New procedure(Preprocess_Infile_Name): New procedure(Process_Files): New procedure(Gnatprep): Check if output and input are existing directories.Call Process_Files to do the real job.2004-03-22 Robert Dewar <dewar@gnat.com>* prj-env.adb, prj-nmsc.ads, prj-proc.ads,s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.2004-03-22 Sergey Rybin <rybin@act-europe.fr>* scn.adb (Contains): Add check for EOF, is needed for a degeneratedcase when the source contains only comments.2004-03-22 Ed Schonberg <schonberg@gnat.com>* sem_ch10.adb (Analyze_Compilation_Unit): When generating adeclaration for a child subprogram body that acts as a spec, indicatethat the entity in the declaration needs debugging information.* sem_ch3.adb (Complete_Private_Subtype): Do not build an underlyingfull view if the subtype is created for a constrained record component;gigi has enough information to construct the record, and there is noplace in the tree for the declaration.* sem_ch6.adb (Build_Body_To_Inline): Use an internal name withoutserial number for the dummy body that is built for analysis, to avoidinconsistencies in the generation of internal names when compilingwith -gnatN.2004-03-22 Thomas Quinot <quinot@act-europe.fr>* sem_util.adb (Is_Object_Reference): A view conversion denotes anobject.2004-03-22 GNAT Script <nobody@gnat.com>* Make-lang.in: Makefile automatically updated2004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.* trans.c (tree_transform, emit_index_check): Likewise.* utils.c (build_template): Likewise.(max_size, convert): Remove handling of WITH_RECORD_EXPR.(maybe_unconstrained_array, unchecked_convert): Likewise.* utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.(build_unary_op): Likewise.(compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.(fill_vms_descriptor): Likewise.(build_call_alloc_dealloc): Likewise.ALIGN is unsigned.* gigi.h (build_call_alloc_dealloc): Alignment is unsigned.2004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>PR other/14630* gnat_ug.texi: Add info directory category and entry.* gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,gnat_ug_wnt.texi: Regenerate.2004-03-19 Arnaud Charlet <charlet@act-europe.fr>* ada-tree.h: Update copyright notice.Minor reformatting.2004-03-19 Olivier Hainque <hainque@act-europe.fr>* decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptionsas regular exception objects and not as mere integers representing thecondition code. The latter approach required some dynamics to mask offseverity bits, which did not fit well into the GCC table based model.(gnat_to_gnu_entity, objects): Don't supply an external name for VMSexception data objects. We don't it and it would conflict with the otherexternal symbol we have to generate for such exceptions.* trans.c (tree_transform, case N_Exception_Handler): Remove part ofthe special code for VMS exceptions, since these are now representedas regular exceptions objects.2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* decl.c (debug_no_type_hash): Remove.(gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.* misc.c (LANG_HOOK_HASH_TYPE): Redefine.2004-03-19 Laurent Guerby <laurent@guerby.net>* sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead ofaggregate, allows bootstrap from 3.3 on powerpc-darwin.2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.(TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.(TYPE_RM_SIZE_INT): Directly use type.values.(TREE_LOOP_ID): Clean up check.* decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): UseTYPE_VALUES, not TYPE_FIELDS.* trans.c (convert_with_check): Delay access of bounds of basetypeuntil sure is numeric.2004-03-18 Arnaud Charlet <charlet@act-europe.fr>* 5atpopsp.adb: Remove RTEMS from list of platforms using this file.Code clean up:* 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): UseSpecific.Set instead of direct call to e.g pthread_setspecific.2004-03-18 Thomas Quinot <quinot@act-europe.fr>* adaint.c: Update comments.* Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, andGNATLIB_SHARED for FreeBSD.2004-03-18 Jose Ruiz <ruiz@act-europe.fr>* init.c [VxWorks]: Do not fix the stack size for the environment task.When needed (stack checking) the stack size is retrievedfrom the VxWorks kernel.* Makefile.in: Flag -nostdinc is required when building the run timefor avoiding looking for files in the base compiler.Add the VxWorks specific version of the package body forSystem.Stack_checking.Operations (5zstchop.adb).* Make-lang.in: Add the object file forSystem.Stack_Checking.Operations.* Makefile.rtl: Add object file for the packageSystem.Stack_Checking.Operations.* s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.* s-stache.ads, s-stache.adb: Move the operations related to stackchecking from this package to package System.Stack_Checking.Operations.This way, stack checking operations are only linked in the finalexecutable when using the -fstack-check flag.2004-03-18 Doug Rupp <rupp@gnat.com>* Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).Reorganize ifeq's.* 5qsystem.ads, 5xcrtl.ads: New files.2004-03-18 Vincent Celier <celier@gnat.com>* prj.adb (Reset): Reset hash table Files_Htable* prj-env.adb (Source_Paths, Object_Paths): New tables.(Add_To_Source_Path, Add_To_Object_Path): New procedures, to replacethe procedures Add_To_Path_File.(Set_Ada_Paths): Accumulate source and object dirs in the tables,making sure that each directory is present only once and, for objectdirs, when a directory already present is added, the duplicate isremoved and the directory is always put as the last in the table.Write the path files at the end of these accumulations.* prj-nmsc.adb (Record_Source): Add source file name in hash tableFiles_Htable for all sources.* prj-proc.adb (Process): Remove restrictions between not directlyrelated extending projects.2004-03-18 Emmanuel Briot <briot@act-europe.fr>* prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.(Find_Sources): Minor speed optimization.* prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Newparameter Trusted_Mode.2004-03-18 Sergey Rybin <rybin@act-europe.fr>* scn.adb (Determine_License): Take into account a degenerated casewhen the source contains only comments.2004-03-18 Ed Schonberg <schonberg@gnat.com>* sem_warn.adb (Check_References): For a warning on a selectedcomponent that does not come from source, locate an uninitializedcomponent of the record type to produce a more precise error message.2004-03-15 Jerome Guitton <guitton@act-europe.fr>* 3zsoccon.ads: Fix multicast options.* s-thread.ads: Move unchecked conversion from ATSD_Access to Addressin the spec.2004-03-15 Robert Dewar <dewar@gnat.com>* sem_prag.adb: Make sure No_Strict_Aliasing flag is set right whenpragma used for a private type.* lib-xref.adb (Generate_Reference): Do not generate warning ifreference is in a different unit from the pragma Unreferenced.* 5vtpopde.adb: Minor reformattingFix casing of To_Task_ID* sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasingflag if we have an unchecked conversion to an access type in the sameunit.2004-03-15 Geert Bosch <bosch@gnat.com>* a-ngcoty.adb (Modulus): In alternate formula for large real orimaginary parts, use Double precision throughout.* a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not onlywe want to be able to compile run-time with -gnata for testing, butthis may also be instantiated in user code that is compiled with -gnata.2004-03-15 Olivier Hainque <hainque@act-europe.fr>* s-stalib.ads (Exception_Code): New type, to represent Import/Exportcodes. Having a separate type for this is useful to enforce consistencythroughout the various run-time units.(Exception_Data): Use Exception_Code for Import_Code.* s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix ofNatural and Integer in various places.(Register_VMS_Exception): Use Base_Code_In to compute the exception codewith the severity bits masked off.(Register_VMS_Exception): Handle the additional exception data pointerargument.* raise.c (_GNAT_Exception structure): Remove the handled_by_otherscomponent, now reflected by an exported accessor.(is_handled_by): New routine to compute whether the propagatedoccurrence matches some handler choice specification. Extracted out ofget_action_description_for, and expanded to take care of the VMSspecifities.(get_action_description_for): Use is_handled_by instead of an explicitcomplex condition to decide if the current choice at hand catches thepropagated occurrence.* raise.h (Exception_Code): New type for C.* rtsfind.ads (RE_Id, RE_Unit_Table): AddSystem.Standard_Library.Exception_Code, to allow references from thepragma import/export expander.* a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):New accessors to allow easy access to GNAT exception datacharacteristics.(GNAT_GCC_Exception record, Propagate_Exception): Get rid of theredundant Handled_By_Others component, helper for the personalityroutine which will now be able to call the appropriate exception dataaccessor instead.* cstand.adb (Create_Standard): Adjust the type of the Import_Codecomponent of Standard_Exception_Type to be the closest possible toException_Code in System.Standard_Library, that we cannot get at thispoint. Expand a ??? comment to notify that this type node shouldprobably be rewritten later on.* exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust theregistration call to include a pointer to the exception object in thearguments.* init.c (__gnat_error_handler): Use Exception_Code and Base_Code_Ininstead of int and explicit bitmasks.2004-03-15 Vincent Celier <celier@gnat.com>* vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHAREDequivalent to /STATIC and /NOSTATIC equivalent to /SHARED.* a-tasatt.adb (To_Access_Code): Remove this UC instantiation, nolonger needed now that it is in the spec ofSystem.Tasking.Task_Attributes.* adaint.h, adaint.c: (__gnat_create_output_file): New function* gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =* g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.* make.adb (Gnatmake): Do not check the executable suffix; it is beingtaken care of in Scan_Make_Arg.(Scan_Make_Arg): Add the executable suffix only if the argumentfollowing -o, in canonical case, does not end with the executablesuffix. When in verbose mode and executable file name does not endwith executable suffix, output the executable name, in canonical case.* s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasingto avoid warnings when instantiating Ada.Task_Attributes.Minor reformating.* mlib-prj.adb (Process_Imported_Libraries): Get the imported librariesin the correct order.* prj-makr.adb (Process_Directory): No longer use GNAT.Expect, butredirect standard output and error to a file for the invocation of thecompiler, then read the file.* prj-nmsc.adb (Find_Sources): Use the Display_Value for eachdirectory, instead of the Value.(Find_Source_Dirs): Remove useless code & comments.2004-03-15 Ed Schonberg <schonberg@gnat.com>* exp_ch3.adb (Freeze_Record_Type): If a primitive operation of atagged type is inherited, and the parent operation is not frozen yet,force generation of a freeze node for the inherited operation, so thecorresponding dispatch entry is properly initialized.(Make_Predefined_Primitive_Specs): Check that return type is Booleanwhen looking for user-defined equality operation.* exp_ch4.adb (Expand_Composite_Equality): Check that return type isboolean when locating primitive equality of tagged component.* exp_ch5.adb (Expand_Assign_Array): If the left-hand side is abit-aligned field and the right-hand side a string literal, introducea temporary before expanding assignment into a loop.* exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression forpriority in full, to ensure that any expanded subepxressions of it areelaborated in the scope of the init_proc.* exp_prag.adb (Expand_Pragma_Import): Search for initialization callafter object declaration, skipping over code that may have beengenerated for validity checks.* sem_ch12.adb (Validate_Private_Type_Instance): If type has unknowndiscriminants, ignore the known discriminants of its full view, ifany, to check legality.* sem_ch3.adb (Complete_Private_Subtype): Do not create constrainedcomponent if type has unknown discriminants.(Analyze_Private_Extension_Declaration): Discriminant constraint isnull if type has unknown discriminants.* sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate referencefor end label when present.* s-fileio.adb (Open): When called with a C_Stream, use given name fortemporary file, rather than an empty string.2004-03-15 Ed Falis <falis@gnat.com>* s-thread.adb: Removed, no longer used.2004-03-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* decl.c (target.h): Now include.(gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZEin new build_pointer_from_mode calls for non-fat/non-thin pointer.(validate_size): For POINTER_TYPE, get smallest size permitted onmachine.* fe.h: Sort Einfo decls and add Set_Mechanism.* Makefile.in: (LIBGNAT_SRCS): Remove types.h.(ada/decl.o): Depends on target.h.* trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not useFUNCTION_BOUNDARY; always use TYPE_ALIGN.2004-03-15 Thomas Quinot <quinot@act-europe.fr>* 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.* exp_ch4.adb (Expand_N_Indexed_Component): Do not callInsert_Dereference_Action when rewriting an implicit dereference intoan explicit one, this will be taken care of during expansion of theexplicit dereference.(Expand_N_Slice): Same. Always do the rewriting, even for the caseof non-packed slices, since the dereference action generated byexpansion of the explicit dereference is needed in any case.(Expand_N_Selected_Component): When rewriting an implicit dereference,analyze and resolve the rewritten explicit dereference so it is seenby the expander.(Insert_Dereference_Action): This procedure is now called only for theexpansion of an N_Explcit_Dereference_Node. Do insert a check even fordereferences that do not come from source (including explicitdereferences resulting from rewriting implicit ones), but do notrecursively insert a check for the dereference nodes contained withinthe check.(Insert_Dereference_Action): Clarify and correct comment.2004-03-08 Paolo Bonzini <bonzini@gnu.org>PR ada/14131Move language detection to the top level.* config-lang.in: Build by default.2004-03-05 Robert Dewar <dewar@gnat.com>* 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions* a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Moveunchecked conversion to spec to avoid warnings.* s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Idto Task_ID* 7stpopsp.adb: Correct casing in To_Task_ID call* a-strsea.ads, a-strsea.adb: Minor reformatting* einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing* errout.ads: Switch for VMS is now NO_STRICT_ALIASING.Adjust Max_Msg_Length to be clearly large enough.* fe.h: Define In_Same_Source_Unit* osint.adb: Add pragma Warnings Off to suppress warnings* g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to killaliasing warnings.* opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing* par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma* sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.* sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.* sem_prag.adb: Implement pragma No_Strict_Aliasing.* sinfo.ads: Remove obsolete comment on validate unchecked conversionnode. We now do generate them for gcc back end.* table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasingwarning.* sinput-c.adb: Fix bad name in header.Add pragma Warnings Off to suppress aliasing warning.* sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.* snames.h, snames.ads, snames.adb: Add entry for pragmaNo_Strict_Aliasing.2004-03-05 Vincent Celier <celier@gnat.com>* prj-com.ads: Add hash table Files_Htable to check when a file nameis already a source of another project.* prj-nmsc.adb (Record_Source): Before recording a new source, checkif its file name is not already a source of another project. Report anerror if it is.* gnatcmd.adb: When GNAT PRETTY is invoked with a project file and nosource file name, call gnatpp with all the sources of the main project.* vms_conv.adb (Initialize): GNAT PRETTY may be called with any numberof file names.* vms_data.ads: Correct documentation of new /OPTIMIZE keywordNO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:/RUNTIME_SYSTEM=, converted to --RTS=/NOTABS, converted to -notabs2004-03-05 Pascal Obry <obry@gnat.com>* make.adb: Minor reformatting.2004-03-05 Ed Schonberg <schonberg@gnat.com>Part of implemention of AI-262.* par-ch10.adb (P_Context_Clause): Recognize private with_clauses.* sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): Newprocedure.* sem_ch3.adb (Analyze_Component_Declaration): Improve error messagewhen component type is a partially constrained class-wide subtype.(Constrain_Discriminated_Type): If parent type has unknowndiscriminants, a constraint is illegal, even if full view hasdiscriminants.(Build_Derived_Record_Type): Inherit discriminants when deriving a typewith unknown discriminants whose full view is a discriminated record.* sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminantsflag, to handle properly derivations of tagged types with unknowndiscriminants.(Analyze_Package_Spec, Analyze_Package_Body): InstallPrivate_With_Clauses before analyzing private part or body.* einfo.ads: Indicate that both Has_Unknown_Discriminants andHas_Discriminants can be true for a given type (documentation).2004-03-05 Arnaud Charlet <charlet@act-europe.fr>* s-restri.ads: Fix license (GPL->GMGPL).* s-tassta.adb: Minor reformatting.* s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Levelby calls to Exit_One_ATC_Level, since additional clean up is performedby this function.* s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Levelby calls to Exit_One_ATC_Level, since additional clean up is performedby this function.2004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* trans.c: Reflect GCC changes to fix bootstrap problem.Add warning for suspicious aliasing unchecked conversion.2004-03-05 GNAT Script <nobody@gnat.com>* Make-lang.in: Makefile automatically updated2004-03-02 Emmanuel Briot <briot@act-europe.fr>* ali.adb (Read_Instantiation_Instance): Do not modify thecurrent_file_num when reading information about instantiations, sincethis corrupts files in later references.2004-03-02 Vincent Celier <celier@gnat.com>* bcheck.adb (Check_Consistency): Get the full path of an ALI filebefore checking if it is read-only.* bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in frontof SRC_DIRS and eliminate duplicates.* gprcmd.adb: Replace command "path" with command "path_sep" to returnthe path separator.(Usage): Document path_sep* Makefile.generic: For Ada and GNU C++ cases, link directly with theC++ compiler. No need for a script.Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with functionsubst.* prj-env.adb (For_All_Source_Dirs): Only add source dirs in projectwhere there are Ada sources.(Set_Ada_Paths): Only add to the include path the source dirs of projectwith Ada sources.(Add_To_Path): Add the Display_Values of the directories, not theirValues.* prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the projectdata.* prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Valueis not No_Name.(Find_Source_Dirs): Set Display_Value to a non canonicalized value, onlyValue is canonicalized.(Language_Independent_Check): Do not copy Value to Display_Value whencanonicalizing Value.* prj-part.adb (Post_Parse_Context_Clause): Compare canonical casedpath to find limited with cycles.(Parse_Single_Project): Use canonical cased path to find the end of awith cycle.2004-03-02 Ed Schonberg <schonberg@gnat.com>* sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunitand not a child unit.* sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present canappear in a with_clause.* decl.c (gnat_to_gnu_type): If entity is a generic type, which canonly happen in type_annotate mode, do not try to elaborate it.* exp_util.adb (Force_Evaluation): If expression is a selectedcomponent on the left of an assignment, use a renaming rather than atemporary to remove side effects.* freeze.adb (Freeze_Entity): Do not freeze a global entity within aninlined instance body, which is analyzed before the end of theenclosing scope.2004-03-02 Robert Dewar <dewar@gnat.com>* par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,sem_ch4.adb: Use new feature for substitution of keywords in VMS* errout.ads, errout.adb: Implement new circuit for substitution ofkeywords in VMS.* sem_case.adb (Analyze_Choices): Place message properly when case isa subtype reference rather than an explicit range.* sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting2004-03-02 Doug Rupp <rupp@gnat.com>* init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.2004-03-02 Thomas Quinot <quinot@act-europe.fr>* s-tporft.adb: Add missing locking around call to Initialize_ATCB.2004-03-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for aBLKmode bitfield.2004-02-25 Robert Dewar <dewar@gnat.com>* 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion tothe defining instance of the type to avoid aliasing problems.Fix copyright header. Fix bad comments in package header.* exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting2004-02-25 Ed Schonberg <schonberg@gnat.com>* exp_ch2.adb (Param_Entity): Handle properly formals that have beenrewritten as references when aliased through an address clause.* sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checkingwhether call can be interpreted as an indirect call to the result of aparameterless function call returning an access subprogram.2004-02-25 Arnaud Charlet <charlet@act-europe.fr>Code clean up:* exp_ch7.adb (Make_Clean): Remove generation of calls toUnlock[_Entries], since this is now done by Service_Entries directly.* exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.* s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedureRequeue_Call for better code readability. Change spec and update calls:PO_Service_Entries now unlock the PO on exit.(Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls toPO_Service_Entries.* s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.* s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.2004-02-25 Sergey Rybin <rybin@act-europe.fr>* exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding theprotected subprogram call and analyzing the result of such expandingin case when the called protected subprogram is eliminated.* sem_elim.adb (Check_Eliminated): Skip blocks when comparing scopenames.2004-02-25 Jerome Guitton <guitton@act-europe.fr>* Makefile.in: Clean ups.2004-02-23 Ed Schonberg <schonberg@gnat.com>* exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not createprotected operations if original subprogram is flagged as eliminated.(Expand_N_Subprogram_Body): For a protected operation, creatediscriminals for next operation before checking whether the operationis eliminated.* exp_ch9.adb (Expand_N_Protected_Body,Expand_N_Protected_Type_Declaration): Do not generate specs and bodiesfor internal protected operations if the original subprogram iseliminated.* sem_elim.adb (Check_Eliminated): Handle properly protected operationsdeclared in a single protected object.2004-02-23 Vincent Celier <celier@gnat.com>* prj-attr.adb: Make attribute Builder'Executable an associative array,case insensitive if file names are case insensitive, instead of astandard associative array.* prj-attr.adb (Initialize): For 'b' associative arrays, do not setthem as case insensitive on platforms where the file names are casesensitive.* prj-part.adb (Parse_Single_Project): Make sure, when checking ifproject file has already been parsed that canonical path are compared.2004-02-23 Robert Dewar <dewar@gnat.com>* sinput-c.ads: Correct bad unit title in header* freeze.adb: Minor reformatting2004-02-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* trans.c (tree_transform, case N_Procedure_Call_Statement): Fornonaddressable COMPONENT_REF that is removing padding that we aretaking the address of, take the address of the padded record insteadif item is variable size.2004-02-20 Robert Dewar <dewar@gnat.com>* bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting2004-02-20 Ed Schonberg <schonberg@gnat.com>* freeze.adb (Freeze_Record_Type): Generalize mechanism that generatesitype references for the constrained designated type of a componentwhose base type is already frozen.2004-02-20 Arnaud Charlet <charlet@act-europe.fr>* init.c (__gnat_error_handler [tru64]): Rewrite previous change toavoid GCC warnings.2004-02-20 Sergey Rybin <rybin@act-europe.fr>* sem_ch12.adb (Analyze_Formal_Package): Create a new definingidentifier for a phantom package that rewrites the formal packagedeclaration with a box. The Add semantic decorations for the definingidentifier from the original node (that represents the formal package).2004-02-19 Matt Kraai <kraai@alumni.cmu.edu>* Make-lang.in (ada/stamp-sdefault): Use the top levelmove-if-change.2004-02-19 Richard Henderson <rth@redhat.com>* misc.c (record_code_position): Add third build arg for RTL_EXPR.2004-02-18 Emmanuel Briot <briot@act-europe.fr>* ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so thatScan_ALI can be used for multiple ALI files without reinitializingbetween calls.2004-02-18 Robert Dewar <dewar@gnat.com>* debug.adb: Minor reformatting.2004-02-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SETto zero if there is an address clause.2004-02-18 Thomas Quinot <quinot@act-europe.fr>* exp_util.adb (Side_Effect_Free): Any literal is side effects free.2004-02-18 Gary Dismukes <dismukes@gnat.com>* layout.adb (Layout_Component_List): Revise generation of call todiscriminant-checking function to pass selections of all of the type'sdiscriminants rather than just the variant-controlling discriminant.2004-02-18 Olivier Hainque <hainque@act-europe.fr>* 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound tofail in the current setup and triggers spurious system error messages.Pretend it occurred and failed instead.2004-02-18 Vincent Celier <celier@gnat.com>* bld.adb: Mark FLDFLAGS as saved(Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS whenit is not the root project. Put each directory to beextended between double quotes to prevent it to be expanded on Windows.(Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processingthe project file. Set them back to their initial values if they have notbeen set in the project file.* gprcmd.adb: (Gprdebug, Debug): New global variables(Display_Command): New procedure(Usage): Document new command "linkopts"Call Display_Command when env var GPRDEBUG has the value "TRUE"Implement new command "linkopts"Remove quotes that may be around arguments for "extend"Always call Normalize_Pathname with arguments formatted for the platform* Makefile.generic: Link C/C++ mains with $(FLDFLAGS)Change @echo to @$(display) in target clean to be able to clean silently* Makefile.prolog: Save FLDFLAGS and give it an initial empty value* prj-part.adb (Project_Path_Name_Of): Do not put final result incanonical case.* prj-part.adb (Parse_Single_Project): Always call with From_Extended= Extending_All when current project is an extending all project.* vms_conv.adb (Output_File_Expected): New Boolean global variable,set to True only for LINK command, after Unix switch -o.(Process_Arguments): Set Output_File_Expected to True for LINK commandafter Unix switch -o. When Output_File_Expected is True, never add anextension to a file name.* 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to theoption file name, only to the --for-linker= switch.(Option_File_Name): If option file name do not end with ".opt", append"/OPTIONS".2004-02-18 GNAT Script <nobody@gnat.com>* Make-lang.in: Makefile automatically updated2004-02-17 Matt Kraai <kraai@alumni.cmu.edu>* Make-lang.in (stamp-sdefault): Do not depend onmove-if-change.2004-02-12 Zack Weinberg <zack@codesourcery.com>* config-lang.in: Disable Ada by default until probe logic fora bootstrap Ada compiler can be moved to the top level configurescript.2004-02-12 Olivier Hainque <hainque@act-europe.fr>* decl.c (components_to_record): Don't claim that the internal fieldswe make to hold the variant parts are semantically addressable, becausethey are not.* exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize andadjust the comment describing the modular type form when we can use it.(Install_PAT): Account for the Esiz renaming.* init.c (__gnat_error_handler for alpha-tru64): Arrange to clear thesc_onstack context indication before raising the exception to whichthe signal is mapped. Allows better handling of later signals possiblytriggered by the resumed user code if the exception is handled.2004-02-12 Arnaud Charlet <charlet@act-europe.fr>* 5zinit.adb: Removed, no longer used.2004-02-12 Robert Dewar <dewar@gnat.com>* ali.adb: Remove separating space between parameters on R line. Makesformat consistent with format used by the binder for Set_Globals call.* atree.ads, atree.adb: Minor reformatting (new function header format)* bindgen.adb: Add Run-Time Globals documentation section containingdetailed documentation of the globals passed from the binder file tothe run time.* gnatls.adb: Minor reformatting* init.c (__gnat_set_globals): Add note pointing to documentation inbindgen.* lib-writ.ads, lib-writ.adb: Remove separating space betweenparameters on R line.Makes format consistent with format used by the binder for Set_Globalscall.* osint.ads: Add 2004 to copyright noticeMinor reformatting* snames.ads: Correct capitalization of FIFO_Within_PrioritiesNoticed during code reading, documentation issue only* usage.adb: Remove junk line for obsolete C switchNoticed during code reading2004-02-12 Vincent Celier <celier@gnat.com>* bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmdextend for each directory, so that multiple /** directories areextended individually.(Recursive_Process): Set the default for LANGUAGES to ada* gprcmd.adb: Define new command "ignore", to do nothing.Implement new comment "path".* Makefile.generic: Suppress output when SILENT is setMake sure that when compiler for C/C++ is gcc, the correct -x switch isused, so that the correct compiler is invoked.When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/CXX_INCLUDE_PATH, to avoid failure with too long command lines.2004-02-12 Jerome Guitton <guitton@act-europe.fr>* Makefile.in: Clean ups and remove obsolete targets.2004-02-12 Ed Schonberg <schonberg@gnat.com>* exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similarpredicate declared in exp_util.* exp_util.adb: Add comments.* sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit fromvisibility before compiling context of the subunit.* sem_res.adb (Check_Parameterless_Call): If the context expects avalue but the name is a procedure, do not attempt to analyze as a call,in order to obtain more telling diagnostics.* sem_util.adb (Wrong_Type): Further enhancement to diagnose missing'Access on parameterless function calls.(Normalize_Actuals): For a parameterless function call with missingactuals, defer diagnostic until resolution of enclosing call.* sem_util.adb (Wrong_Type): If the context type is an access tosubprogram and the expression is a procedure name, suggest a missing'attribute.2004-02-10 Arnaud Charlet <charlet@act-europe.fr>,Nathanael Nerode <neroden@gcc.gnu.org>PR ada/6637PR ada/5911Merge with libada-branch:* config-lang.in: Build libada only when ada is built.2004-02-09 Ed Schonberg <schonberg@gnat.com>* exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equalityfor a tagged type, verify that both formals have the same type.* exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly thetemporary when the formal is an in-parameter and the actual a possiblyunaligned slice.* exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression evenwhen expansion is disabled, to ensure proper name capture withoverloaded literals. Condition can be of any boolean type, resolveaccordingly.* sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if therenaming is for a formal subprogram with a default operator name, andthere is a usable operator that is visible at the point ofinstantiation.2004-02-09 Robert Dewar <dewar@gnat.com>* ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a majorrewrite to ignore errors in ali files, intended to allow tools downwardcompatibility with new versions of ali files.* ali.ads: Add new parameter Ignore_Errors* bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimesduplicating the error message giving the file with restrictions.* debug.adb: Add debug flag I for gnatbind* errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes aroundoperators for the case where the operator is a defining operator.* exp_ch3.adb: Minor reformatting (new function spec format).* exp_ch4.adb: Add comment for previous change, and make minoradjustment to loop to always check for improper loop termination.Minor reformatting throughout (new function spec format).* gnatbind.adb: Implement -di debug flag for gnatbind* gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True* gnatls.adb: Call Scan_ALI with Ignore_Errors set to True* lib-load.adb: Fix bad assertion.Found by testing and code reading.Minor reformatting.* lib-load.ads: Minor reformatting.* lib-writ.adb: There is only one R line now.* lib-writ.ads: Add documentation on making downward compatible changesto ali files so old tools work with new ali files.There is only one R line now.Add documentation on format incompatibilities (with special GPS note)* namet.ads, namet.adb: (Is_Operator_Name): New procedure* par-load.adb: Minor reformatting* sem_ch8.adb: Fix to error message from last updateMinor reformatting and restructuring of code from last update* par-prag.adb, snames.adb, snames.ads, snames.h,sem_prag.adb: Implement pragma Profile.* stylesw.adb: Implement -gnatyN switch to turn off all style checkoptions.* usage.adb: Add line for -gnatyN switch* vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN2004-02-09 Albert Lee <lee@gnat.com>* errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX2004-02-09 Ed Schonberg <schonberg@gnat.com>* exp_ch3.adb (Build_Slice_Assignment): Handle properly case of nullslices.* exp_ch6.adb (Expand_Call): Do not inline a call when the subprogramis nested in an instance that is not frozen yet, to avoidorder-of-elaboration problems in gigi.* sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlinedbody the attribute is legal.2004-02-09 Robert Dewar <dewar@gnat.com>* s-rident.ads: Minor comment correction* targparm.adb: Remove dependence on uintp completely. There wasalways a bug in Make in that it called Targparm before initializingthe Uint package. The old code appeared to get away with this, butthe new code did not! This caused an assertion error in gnatmake.* targparm.ads: Fix bad comment, restriction pragmas with parametersare indeed fully supported.2004-02-06 Alan Modra <amodra@bigpond.net.au>* misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.2004-02-05 Kazu Hirata <kazu@cs.umass.edu>* ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPESwith targetm.calls.promote_prototypes.2004-02-04 Robert Dewar <dewar@gnat.com>* 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,ali.ads, gprcmd.adb: Minor reformatting* bindgen.adb: Output restrictions string for new style restrictionshandling* impunit.adb: Add s-rident.ads (System.Rident) ands-restri (System.Restrictions)* lib-writ.adb: Fix bug in writing restrictions string (last fewentries wrong)* s-restri.ads, s-restri.adb: Change name Restrictions toRun_Time_Restrictions to avoid conflict with package name.Add circuit to read and acquire run time restrictions.2004-02-04 Jose Ruiz <ruiz@act-europe.fr>* restrict.ads, restrict.adb: Use the new restrictionNo_Task_Attributes_Package instead of the old No_Task_Attributes.* sem_prag.adb: No_Task_Attributes is a synonym ofNo_Task_Attributes_Package.* snames.ads, snames.adb: New entry for proper handling ofNo_Task_Attributes.* s-rident.ads: Adding restriction No_Task_Attributes_Package(AI-00249) that supersedes the GNAT specific restrictionNo_Task_Attributes.2004-02-04 Ed Schonberg <schonberg@gnat.com>* sem_prag.adb:(Analyze_Pragma, case Warnings): In an inlined body, as in an instancebody, an identifier may be wrapped in an unchecked conversion.2004-02-04 Vincent Celier <celier@gnat.com>* lib-writ.ads: Comment update for the W lines* bld.adb: (Expression): An empty string list is static* fname-uf.adb: Minor comment update* fname-uf.ads: (Get_File_Name): Document new parameter May_Fail* gnatbind.adb: Initialize Cumulative_Restrictions with therestrictions on the target.2004-02-03 Kazu Hirata <kazu@cs.umass.edu>* ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead ofgen_rtx.2004-02-02 Arnaud Charlet <charlet@gnat.com>* Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.2004-02-02 Vincent Celier <celier@gnat.com>* gprcmd.adb (Check_Args): If condition is false, print the invokedcomment before the usage.Gprcmd: Fail when command is not recognized.(Usage): Document command "prefix"* g-md5.adb (Digest): Process last block.(Update): Do not process last block. Store remaining characters andlength in Context.* g-md5.ads (Update): Document that several call to update areequivalent to one call with the concatenated string.(Context): Add fields to allow new Update behaviour.* fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,defaulted to False.When May_Fail is True and no existing file can be found, return No_File.* 6vcstrea.adb: Inlined functions are now wrappers to implementationfunctions.* lib-writ.adb (Write_With_Lines): When body file does not exist, usespec file name instead on the W line.2004-02-02 Robert Dewar <dewar@gnat.com>* ali.adb: Read and acquire info from new format restrictions lines* bcheck.adb: Add circuits for checking restrictions with parameters* bindgen.adb: Output dummy restrictions dataTo be changed later* ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.* exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppressesthe warning message on access to possibly uninitialized variable S)Minor changes for new restrictions handling.* gnatbind.adb: Minor reformattingMinor changes for new restrictions handlingMove circuit for -r processing here from bcheck (cleaner)* gnatcmd.adb, gnatlink.adb: Minor reformatting* lib-writ.adb: Output new format restrictions lines* lib-writ.ads: Document new R format lines for new restrictionshandling.* s-restri.ads/adb: New files* Makefile.rtl: Add entry for s-restri.ads/adb* par-ch3.adb: Fix bad error messages starting with upper case letterMinor reformatting* restrict.adb: Major rewrite throughout for new restrictions handlingMajor point is to handle restrictions with parameters* restrict.ads: Major changes in interface to handle restrictions withparameters. Also generally simplifies setting of restrictions.* snames.ads/adb: New entry for proper handling of No_Requeue* sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasksrestriction counting.Other minor changes for new restrictions handling* sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.Restriction_Warnings now allows full parameter notationMajor rewrite of Restrictions for new restrictions handling2004-02-02 Javier Miranda <miranda@gnat.com>* par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Ysyntax rule for object renaming declarations.(P_Array_Type_Definition): Give support for the Ada 0Y syntax rule forcomponent definitions.* sem_ch3.adb (Analyze_Component_Declaration): Give support to accesscomponents.(Array_Type_Declaration): Give support to access components. In additionit was also modified to reflect the name of the object in anonymousarray types. The old code did not take into account that it is possibleto have an unconstrained anonymous array with an initial value.(Check_Or_Process_Discriminants): Allow access discriminant innon-limited types.(Process_Discriminants): Allow access discriminant in non-limited typesInitialize the new Access_Definition field in N_Object_Renaming_Declnode. Change Ada0Y to Ada 0Y in comments* sem_ch4.adb (Find_Equality_Types): Allow anonymous access types inequality operators.Change Ada0Y to Ada 0Y in comments* sem_ch8.adb (Analyze_Object_Renaming): Give support to accessrenamings Change Ada0Y to Ada 0Y in comments* sem_type.adb (Find_Unique_Type): Give support to the equalityoperators for universal access typesChange Ada0Y to Ada 0Y in comments* sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms* sinfo.ads (N_Component_Definition): Addition of Access_Definitionfield.(N_Object_Renaming_Declaration): Addition of Access_Definition fieldChange Ada0Y to Ada 0Y in comments* sprint.adb (Sprint_Node_Actual): Give support to the new syntax forcomponent definition and object renaming nodesChange Ada0Y to Ada 0Y in comments2004-02-02 Jose Ruiz <ruiz@act-europe.fr>* restrict.adb: Use the new restriction identifierNo_Requeue_Statements instead of the old No_Requeue for defining therestricted profile.* sem_ch9.adb (Analyze_Requeue): Check the new restrictionNo_Requeue_Statements.* s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)that supersedes the GNAT specific restriction No_Requeue. The later iskept for backward compatibility.2004-02-02 Ed Schonberg <schonberg@gnat.com>* lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundantpragma and fix incorrect ones.* sem_prag.adb For pragma Inline and pragma Pure_Function, emit awarning if the pragma is redundant.2004-02-02 Thomas Quinot <quinot@act-europe.fr>* 5staprop.adb: Add missing 'constant' keywords.* Makefile.in: use consistent value for SYMLIB onplatforms where libaddr2line is supported.2004-02-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* utils.c (end_subprog_body): Do not call rest_of_compilation if justannotating types.2004-02-02 Olivier Hainque <hainque@act-europe.fr>* init.c (__gnat_install_handler): Setup an alternate stack for signalhandlers in the environment thread. This allows proper propagation ofan exception on stack overflows in this thread even when the builtinABI stack-checking scheme is used without support for a stack reserveregion.* utils.c (create_field_decl): Augment the head comment about bitfieldcreation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_Phere, because the former is not accurate enough at this point.Let finish_record_type decide instead.Don't make a bitfield if the field is to be addressable.Always set a size for the field if the record is packed, to ensure thechecks for bitfield creation are triggered.(finish_record_type): During last pass over the fields, clearDECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this isnot covered by the calls to layout_decl. Adjust DECL_NONADDRESSABLE_Pfrom DECL_BIT_FIELD.2004-01-30 Kelley Cook <kcook@gcc.gnu.org>* Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).(doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.(doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.2004-01-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>* Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.* 5fsystem.ads (Functions_Return_By_DSP): Set to False.(ZCX_By_Default): Likewise.(Front_End_ZCX_Support): Likewise.* 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.(Initialize_Lock): Mark Level unreferenced.(Sleep): Mark Reason unreferenced.(Timed_Sleep): Likewise.(Wakeup): Likewise.(Exit_Task): Use Result.(Check_No_Locks): Mark Self_ID unreferenced.* 5gtasinf.adb (New_Sproc): Make Attr constant.(Bound_Thread_Attributes): Make Sproc constant.(New_Bound_Thread_Attributes): Likewise.2004-01-26 Ed Schonberg <schonberg@gnat.com>* exp_ch3.adb (Build_Slice_Assignment): New TSS procedure forone-dimensional array an slice assignments, when component type iscontrolled.* exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,component type is controlled, and control_actions are in effect, useTSS procedure rather than generating inline code.* exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensionalarrays with controlled components.2004-01-26 Vincent Celier <celier@gnat.com>* gnatcmd.adb (GNATCmd): Add specification of argument file on thecommand line for the non VMS case.* gnatlink.adb (Process_Binder_File): When building object file, ifGNU linker is used, put all object paths between quotes, to prevent lderror when there are unusual characters (such as '!') in the paths.* Makefile.generic: When there are sources in Ada and the main is inC/C++, invoke gnatmake with -B, instead of -z.* vms_conv.adb (Preprocess_Command_Data): New procedure, extractedfrom VMS_Conversion.(Process_Argument): New procedure, extracted from VMS_Conversion. Addspecification of argument file on the command line.2004-01-26 Bernard Banner <banner@gnat.com>* Makefile.in: Enable GMEM_LIB and SYMLIB for x86_642004-01-26 Ed Schonberg <schonberg@gnat.com>* snames.adb: Update copyright notice.Add info on slice assignment for controlled arrays.2004-01-23 Robert Dewar <dewar@gnat.com>* exp_aggr.adb: Minor reformatting* exp_ch9.adb: Minor code clean upMinor reformattingFix bad character in commentPR ada/13471* targparm.adb (Get_Target_Parameters): Give clean abort error onunexpected end of file, along with more detailed message.2004-01-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype ofPAT.* decl.c (copy_alias_set): New function.(gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.2004-01-23 Doug Rupp <rupp@gnat.com>* Makefile.in (install-gnatlib): Change occurrences of lib$$file tolib$${file} in case subsequent character is not a separator.2004-01-23 Vincent Celier <celier@gnat.com>* 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgccwhen the GCC version is at least 3.* make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_SwitchesRemove all "Opt.", to prepare for opt split* prj-part.adb (Parse_Single_Project): New Boolean out parameterExtends_All. Set to True when the project parsed is an extending allproject. Fails for importing an extending all project only when theimported project is an extending all project.(Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,depending on the value of Extends_All returned.* prj-proc.adb (Process): Check that no project shares its objectdirectory with a project that extends it, directly or indirectly,including a virtual project.Check that no project extended by another project shares its objectdirectory with another also extended project.* prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow forKind = N_With_Clause* prj-tree.ads: Minor reformattingIndicate that Flag2 also applies to N_With_Clause (Is_Extending_All).2004-01-23 Ed Schonberg <schonberg@gnat.com>* sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attributeapplies to a type with an incomplete view, use full view in Name ofclause, for consistency with uses of Get_Attribute_Definition_Clause.2004-01-23 Arnaud Charlet <charlet@act-europe.fr>* 5itaprop.adb (Set_Priority): Reset the priority to 0 when usingSCHED_RR, since other values are not supported by this policy.(Initialize): Move initialization of mutex attribute to packageelaboration, to prevent early access to this variable.* Makefile.in: Remove mention of Makefile.adalib, unused.* Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,1ssecsta.ads: Removed, unused.2004-01-21 Javier Miranda <miranda@gnat.com>* exp_aggr.adb (Build_Record_Aggr_Code): Do not build the masterentity if already built in the current scope.* exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entityreminder in internal scopes. Required for nested limited aggregates.2004-01-21 Doug Rupp <rupp@gnat.com>* Makefile.in (hyphen): New variable, default value '-'. Set to '_' onVMS. Replace all occurences of libgnat- and libgnarl- withlibgnat$(hyphen) and libgnarl$(hyphen).Fixed shared library build problem on VMS.2004-01-21 Robert Dewar <dewar@gnat.com>* mlib-prj.adb: Minor reformatting2004-01-21 Thomas Quinot <quinot@act-europe.fr>* prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing'constant' keywords for declaration of pointers that are not modified.* exp_pakd.adb: Fix English in comment.2004-01-21 Ed Schonberg <schonberg@gnat.com>PR ada/10889* sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,copy all attributes of the parent, including the foreign languageconvention.2004-01-21 Sergey Rybin <rybin@act-europe.fr>PR ada/10565* sem_ch9.adb (Analyze_Delay_Alternative): Add expression type checkfor 'delay until' statement.2004-01-20 Kelley Cook <kcook@gcc.gnu.org>* Make-lang.in: Replace $(docdir) with doc.(doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.infodoc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Updateto use consistent MAKEINFO rule.(ada.man, ada.srcman): Dummy entry.(ADA_INFOFILES): Define.(ada.info, ada.srcinfo): New rules.2004-01-19 Arnaud Charlet <charlet@act-europe.fr>* utils.c: Update copyright notice, missed in previous change.2004-01-19 Vincent Celier <celier@gnat.com>* mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to theargs if Bind is True. Set First_ALI, if not already done.(Build_Library): For Stand Alone Libraries, extract from one ALI filean eventual --RTS switch, for gnatbind, and all backend switches +--RTS, for linking.2004-01-19 Robert Dewar <dewar@gnat.com>* sem_attr.adb, memtrack.adb: Minor reformatting2004-01-19 Ed Schonberg <schonberg@gnat.com>* exp_ch6.adb (Expand_Call): Remove code to fold calls to functionsthat rename enumeration literals. This is properly done in sem_eval.* sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold callsto functions that rename enumeration literals.* sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls tofunctions that rename enumeration literals.2004-01-16 Kazu Hirata <kazu@cs.umass.edu>* Make-lang.in (utils.o): Depend on target.h.* utils.c: Include target.h.(process_attributes): Use targetm.have_named_sections insteadof ASM_OUTPUT_SECTION_NAME.2004-01-16 Andreas Jaeger <aj@suse.de>* Makefile.in: Add $(DESTDIR).2004-01-15 Olivier Hainque <hainque@act-europe.fr>* decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object sizealso when not defining if a Size clause applies. That information isnot to be ignored.2004-01-15 Arnaud Charlet <charlet@act-europe.fr>* Makefile.in (install-gnatlib, gnatlib-shared-default): Set upsymbolic links for the shared gnat run time when needed.2004-01-15 Vasiliy Fofanov <fofanov@act-europe.fr>* memtrack.adb (Gmem_Initialize): check that gmem.out could be openedfor writing, and terminate with an error message if not.2004-01-15 Ed Schonberg <schonberg@gnat.com>* sem_attr.adb (Resolve_Attribute, case 'Access): Remove spuriouswarning on an access to subprogram in an instance, when the targettype is declared in the same generic unit.(Eval_Attribute): If 'access is known to fail accessibility check,rewrite as a raise statement.2004-01-15 GNAT Script <nobody@gnat.com>* Make-lang.in: Makefile automatically updated2004-01-15 Kelley Cook <kcook@gcc.gnu.org>* Make-lang.in (ada.srcextra): Dummy entry.2004-01-14 Kelley Cook <kcook@gcc.gnu.org>* Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.2004-01-13 Ed Schonberg <schonberg@gnat.com>* exp_ch3.adb (Build_Assignment): Fix bug in handling of controlledcomponents that are initialized with aggregates.2004-01-13 Vincent Celier <celier@gnat.com>* gnatlink.adb (Process_Binder_File): To find directory of sharedlibgcc, if "gcc-lib" is not a subdirectory, look for the lastsubdirectory "lib" in the path of the shared libgnat or libgnarl.* make.adb (Gnatmake): If GCC version is at least 3, link with-shared-libgcc, when there is at least one shared library project.* opt.ads (GCC_Version): New integer constant.* adaint.c (get_gcc_version): New function.2004-01-13 Robert Dewar <dewar@gnat.com>* sem_dist.adb, sem_res.adb, sem_util.adb,sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting2004-01-13 Thomas Quinot <quinot@act-europe.fr>* s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in objectdeclarations.2004-01-12 Arnaud Charlet <charlet@act-europe.fr>* misc.c: Remove trailing spaces.Update copyright notice missed in previous change.PR ada/13572* bld.adb (Recursive_Process): Reference prefix/share/gnat instead ofprefix/share/make* Makefile.generic: Update copyright.Add license notice.* Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat insteadof prefix/share/make.* Makefile.prolog: Update copyright.Add license notice.2004-01-12 Laurent Pautet <pautet@act-europe.fr>* 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptrinstead of String.* g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Messagesignature.2004-01-12 Javier Miranda <miranda@gnat.com>* cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition ofComponent_Definition node.2004-01-12 Ed Falis <falis@gnat.com>* impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit2004-01-12 Thomas Quinot <quinot@act-europe.fr>* link.c: Change default libgnat kind to STATIC for FreeBSD.2004-01-12 Bernard Banner <banner@gnat.com>* Makefile.in: map 86numaux to a-numaux for x86_642004-01-12 Ed Schonberg <schonberg@gnat.com>* lib-xref.adb (Get_Type_Reference): If the type is the subtype entitygenerated to rename a generic actual, go to the actual itself, thesubtype is not a user-visible entity.* sem_ch7.adb (Uninstall_Declarations): If an entity in the visiblepart is a private subtype, reset the visibility of its full view, ifany, to be consistent.PR ada/13417* sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attemptto use a generic package G as a formal package for another genericdeclared within G.2004-01-12 Robert Dewar <dewar@gnat.com>* trans.c (Eliminate_Error_Msg): New procedure called to generate msg* usage.adb: Remove mention of obsolete -gnatwb switchNoticed during code reading2004-01-12 Jerome Guitton <guitton@act-europe.fr>* 1ssecsta.adb: Minor changes for -gnatwa warnings2004-01-12 GNAT Script <nobody@gnat.com>* Make-lang.in: Makefile automatically updated2004-01-09 Mark Mitchell <mark@codesourcery.com>* misc.c (gnat_expand_expr): Add alt_rtl parameter.2004-01-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>* link.c [sgi] (shared_libgnat_default): Change to STATIC.2004-01-05 Kelley Cook <kcook@gcc.gnu.org>* Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.Update comment and copyright date.* stamp-xgnatug: Delete.2004-01-05 Robert Dewar <dewar@gnat.com>* 1ssecsta.ads: Default_Secondary_Stack is not a constant since it maybe modified by the binder generated main program if the -D switch isused.* 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for allimported functions (since now we expect this to be done for importedfunctions)* 5vtaprop.adb: Add several ??? for sections requiring more commentsMinor reformatting throughout* 5zinit.adb: Minor reformattingAdd 2004 to copyright dateMinor changes to avoid -gnatwa warningsCorrect some instances of using OR instead of OR ELSE (noted whiledoing reformatting)* sprint.adb: Minor updates to avoid -gnatwa warnings* s-secsta.ads, s-secsta.adb:(SS_Get_Max): New function to obtain high water mark for ss stackDefault_Secondary_Stack is not a constant since it may be modified bythe binder generated main program if the -D switch is used.* switch-b.adb: New -Dnnn switch for binder* switch-c.adb:Make -gnatg imply all warnings currently in -gnatwa* vms_conv.adb: Minor reformattingAdd 2004 to copyright noticeAdd 2004 to printed copyright notice* 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,checks.adb, clean.adb, cstand.adb, einfo.ads,einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:Minor reformatting and code clean ups.Minor changes to prevent -gnatwa warnings* ali.adb: Minor reformatting and cleanup of codeAcquire new SS indication of secondary stack use from ali files* a-numaux.ads: Add Pure_Function pragmas for all imported functions(since now we expect this to be done for imported functions)* bindgen.adb: Generate call to modify default secondary stack size if-Dnnn switch given* bindusg.adb: Add line for new -D switch* exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriatereplacement name for Type_May_Have_Non_Bit_Aligned_Components!Add circuitry for both records and arrays to avoid gigiprocessing if the type involved has non-bit-aligned components* exp_ch5.adb (Expand_Assign_Array): Avoid assumption thatN_String_Literal node always references an E_String_Literal_Subtypeentity. This may not be true in the future.(Possible_Bit_Aligned_Component): Move processing ofComponent_May_Be_Bit_Aligned from exp_ch5 to exp_util* exp_ch6.adb (Expand_Thread_Body): Pick upDefault_Secondary_Stack_Size as variable so that we get value modifiedby possible -Dnnn binder parameter.* exp_util.adb (Component_May_Be_Bit_Aligned): New function.(Type_May_Have_Bit_Aligned_Components): New function.* exp_util.ads (Component_May_Be_Bit_Aligned): New function.(Type_May_Have_Bit_Aligned_Components): New function.* fe.h: (Set_Identifier_Casing): Fix prototype.Add declaration for Sem_Elim.Eliminate_Error_Msg.Minor reformatting.* freeze.adb (Freeze_Entity): Add RM reference to error message aboutimporting constant atomic/volatile objects.(Freeze_Subprogram): Reset Is_Pure indication for imported subprogramunless explicit Pure_Function pragma given, to avoid insidious bug ofcall to non-pure imported function getting eliminated.* gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformattingAdd 2004 to printed copyright notice* lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondarystack used.* Makefile.rtl: Add entry for g-sestin.og-sestin.ads: New file.* mdll.adb: Minor changes to avoid -gnatwa warnings* mlib-tgt.adb: Minor reformatting* opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)New switch Sec_Stack_Used (GNAT, GNATBIND)Make Default_Secondary_Stack_Size a variable instead of a constant,so that it can be modified by the new -Dnnn bind switch.* rtsfind.adb (Load_Fail): Give full error message in configurablerun-time mode if all_errors mode is set. This was not done in the caseof a file not found, which was an oversight.Note if secondary stack unit is used by compiler.* sem_elab.adb (Check_A_Call): Rewrite to avoid trying to putineffective elaborate all pragmas on non-visible packages (thishappened when a renamed subprogram was called). Now the elaborate allalways goes on the package containing the renaming rather than the onecontaining the renamed subprogram.* sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure(Process_Eliminate_Pragma): Add parameter to capture pragma location.* sem_eval.adb (Eval_String_Literal): Do not assume that string literalhas an Etype that references an E_String_Literal.(Eval_String_Literal): Avoid assumption that N_String_Literal nodealways references an E_String_Literal_Subtype entity. This may notbe true in the future.* sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capturepragma location.* sem_res.adb (Resolve): Specialize msg for function name used in proccall.2004-01-05 Ed Falis <falis@gnat.com>* g-debuti.adb: Replaced direct boolean operator with short-circuitform.2004-01-05 Vincent Celier <celier@gnat.com>* bld.adb: Minor comment updates(Process_Declarative_Items): Correct incorrect name (Index_Name insteadof Item_Name).* make.adb (Gnatmake): Special process for files to compile/check when-B is specified. Fail when there are only foreign mains in attributeMain of the project file and -B is not specified. Do not skip bind/linksteps when -B is specified.* makeusg.adb: Document new switch -B* opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag* switch-m.adb: (Scan_Make_Switches): Process -B switch* vms_data.ads: Add new GNAT PRETTY qualifier/FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff2004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* trans.c (tree_transform, case N_Free_Statement): Handle thin pointercase.* misc.c (gnat_printable_name): If VERBOSITY is 2, callSet_Identifier_Casing.* decl.c (gnat_to_gnu_entity, E_Function): Give error if return typehas size that overflows.2004-01-05 Gary Dismukes <dismukes@gnat.com>* exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid-gnatwa warning on static condition.2004-01-05 Doug Rupp <rupp@gnat.com>* link.c: (shared_libgnat_default) [VMS]: Change to STATIC.2004-01-05 Arnaud Charlet <charlet@act-europe.fr>* Makefile.in: Install ali files using INSTALL_DATA_DATE to preserveall attributes, including read-only attribute.2004-01-05 Pascal Obry <obry@gnat.com>* bindgen.adb (Gen_Object_Files_Options): Generate the new sharedlibrary naming scheme.* mlib-prj.adb (Build_Library): Generate different names for the staticor dynamic version of the GNAT runtime. This is needed to support thenew shared library naming scheme.(Process_Binder_File): Add detection of shared library in binder filebased on the new naming scheme.* gnatlink.adb (Process_Binder_File): Properly detect the new namingscheme for the shared runtime libraries.* Makefile.in:(LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new namingscheme.(install-gnatlib): Do not create symlinks for shared libraries.(gnatlib-shared-default): Idem.(gnatlib-shared-dual-win32): New target. Not used for now as theauto-import feature does not support arrays/records.(gnatlib-shared-win32): Do not create copy for the shared libraries.(gnatlib-shared-vms): Fix shared runtime libraries names.* osint.ads, osint.adb (Shared_Lib): New routine, returns the targetdependent runtime shared library name.2004-01-05 Vasiliy Fofanov <fofanov@act-europe.fr>* osint.adb (Read_Library_Info): Remove bogus check if ALI is olderthan the object.2004-01-05 Ed Schonberg <schonberg@gnat.com>* sem_ch4.adb (Analyze_Allocator): Check restriction on dynamicprotected objects when allocator has a subtype indication, not aqualified expression. Note that qualified expressions may have to bechecked when limited aggregates are implemented.* sem_prag.adb (Analyze_Pragma, case Import): If enclosing package ispure, emit warning.(Analyze_Pragma, case Pure_Function): If enclosing package is pure andsubprogram is imported, remove warning.2004-01-05 Geert Bosch <bosch@gnat.com>* s-poosiz.adb: Update copyright notice.(Allocate): Use Task_Lock to protect against concurrent access.(Deallocate): Likewise.2004-01-05 Joel Brobecker <brobecker@gnat.com>* s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???comment.Copyright (C) 2004 Free Software Foundation, Inc.Copying and distribution of this file, with or without modification,are permitted in any medium without royalty provided the copyrightnotice and this notice are preserved.
Go to most recent revision | Compare with Previous | Blame | View Log
