URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [ada/] [ChangeLog-2011] - Rev 764
Go to most recent revision | Compare with Previous | Blame | View Log
2011-12-23 Pascal Obry <obry@adacore.com>* prj.ads (For_Every_Project_Imported): Add In_Aggregate_Libparameter to generic formal procedure.* prj.adb (For_Every_Project_Imported): Update accordingly.(Recursive_Check): Likewise. Do not parse imported project foraggregate library. This is needed as the imported projects arethere just to handle dependencies.(Look_For_Sources): Likewise.(Recursive_Add): Likewise.* prj-env.adb, prj-conf.adb, makeutl.adb, gnatcmd.adb:Add In_Aggregate_Lib parameter to routines used withFor_Every_Project_Imported generic procedure.* prj-nmsc.adb (Tree_Processing_Data): Add In_Aggregate_Lib field.(Check): Move where it is used. Fix implementationto not check libraries that are inside aggregate libraries.(Recursive_Check): Add In_Aggregate_Lib parameter.2011-12-23 Ed Schonberg <schonberg@adacore.com>* sem_ch7.adb (Analyze_Package_Body, Has_Referencer): A genericpackage is a referencer regardless of whether there is asubsequent subprogram with an Inline pragma.2011-12-23 Geert Bosch <bosch@adacore.com>* sem_ch3.adb (Can_Derive_From): Check matching Float_Rep on VMS.2011-12-23 Pascal Obry <obry@adacore.com>* gnatcmd.adb, prj.adb, prj-nmsc.adb: Minor reformatting.2011-12-22 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Create the objectsassociated with exception handling unconditionally.(Build_Adjust_Statements): Create the objects associated withexception handling unconditionally.(Build_Components): Create the objects associated with exceptionhandling unconditionally.(Build_Finalize_Statements): Create the objects associated withexception handling unconditionally.(Build_Initialize_Statements): Create the objects associated withexception handling unconditionally.(Build_Object_Declarations): Set the proper location of the datarecord when exception propagation is forbidden.2011-12-22 Gary Dismukes <dismukes@adacore.com>* a-tienio.adb (Put): Test validity of Item parameters beforeapplying Image, and raise Constraint_Error for invalid values.2011-12-22 Bob Duff <duff@adacore.com>* a-stwima.ads (Initialize,Adjust,Finalize): Add overriding indicators.* a-ststio.ads (AFCB_Allocate,AFCB_Close,AFCB_Free,Read,Write): Addoverriding indicators.2011-12-22 Arnaud Charlet <charlet@adacore.com>* s-osinte-hpux-dce.ads: Update header to GPLv32011-12-22 Ed Schonberg <schonberg@adacore.com>* a-cohase.ads, a-cohase.adb: Update to latest RM version. Addaspect Constant_Reference to set type, and correspondingfunctions.* a-cihama.ads, a-cihama.adb: Update to latest RM version. Addfunction Reference to provide a proper element iterator constructover indefinite maps.2011-12-22 Ed Schonberg <schonberg@adacore.com>* exp_attr.adb (Expand_N_Attribute, case 'Access): Do not insertimplicit conversion on prefix of Unrestricted_Access when prefixis an explicit dereference.2011-12-22 Vincent Pucci <pucci@adacore.com>* sem_dim.adb: Addressed all ??? comments. Replacement of warnings byerrors using continuation marks.(Error_Dim_Msg_For_?): Renaming of Error_Dim_For_?.2011-12-22 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, sem_ch3.ads, sem_prag.adb: Minor code clean up.2011-12-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>* s-oscons-tmplt.c [__alpha__ && __osf__] (_XOPEN_SOURCE): Define.2011-12-21 Javier Miranda <miranda@adacore.com>* sem_ch3.ads, sem_ch3.adb (Check_CPP_Type): New subprogram.(Process_Full_View): Invoke Check_CPP_Type if processing thefull-view of a CPP type.* sem_prag.adb (Process_Import_Or_Interface): Add missing supportfor importing a CPP type that has an incomplete declaration. Moveto new routine Check_CPP_Type the code that verifies thatcomponents of imported CPP types do not have default expressions.2011-12-21 Vincent Celier <celier@adacore.com>* prj-nmsc.adb (Report_No_Sources): Remove argument Lang. Reportno sources even for languages that are not allowed.(Add_Source): Get the source even when the language is not allowed.2011-12-21 Robert Dewar <dewar@adacore.com>* sem_ch6.adb (Process_Formals): Add defensive code.2011-12-21 Ed Schonberg <schonberg@adacore.com>* sem_ch7.adb, sem_ch13.adb (Analyze_Package_Specification): Build theinvariant procedure of a type declaration that is a completion and hasaspect specifications.(Build_Invariant_Procedure): If the procedure is built for atype declaration that is a completion, analyze body expliitlybecause all private declarations have been already analyzed.2011-12-21 Claire Dross <dross@adacore.com>* a-cfdlli.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb,a-cofove.adb: Minor reformating on formal containers2011-12-21 Vincent Celier <celier@adacore.com>* makeutl.adb (Mains.Complete_Mains.Do_Complete): Removeany main that is not in the list of restricted languages.(Insert_Project_Sources.Do_Insert): Only add sources of languagesin the list of restricted languages.2011-12-21 Ed Schonberg <schonberg@adacore.com>* sem_res.adb (Valid_Conversion): A type conversion is valid whenthe target type is an anonymous access type and the operand is arewriting of an allocator. The conversion is typically insertedwhen the designated type is an interface.2011-12-21 Ed Schonberg <schonberg@adacore.com>* exp_ch9.adb (Establish_Task_Master): If the enclosing blockhas no declarations, create new declarative list for it.2011-12-21 Matthew Heaney <heaney@adacore.com>* a-rbtgbk.adb (Generic_Conditional_Insert): Fixed incorrect comment.2011-12-21 Yannick Moy <moy@adacore.com>* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do notignore representation attributes in Alfa mode, since formalverification backend does not depend on actual physicalrepresentation, but code may still refer to attribute values.2011-12-21 Yannick Moy <moy@adacore.com>* par-ch13.adb (P_Aspect_Specifications): Recognize the caseswhere a comma between two aspects is missing, or erroneouslyreplaced by a semicolon, issue an error and proceed with nextaspect.* par.adb, sinfo.ads: Fix typos.2011-12-21 Ed Schonberg <schonberg@adacore.com>* sem_util.adb (Mark_Coextensions): A coextension for anobject that is part of the expression in a return statement,or part of the return object in an extended return statement,must be allocated dynamically.2011-12-21 Matthew Heaney <heaney@adacore.com>* a-crbtgk.adb (Generic_Conditional_Insert): Fixed incorrect comment.2011-12-21 Ed Schonberg <schonberg@adacore.com>* sem_ch5.adb (Analyze_Iterator_Specification): If the nameof an element iterator is not an entity name we introduce alocal renaming declaration for it. To prevent spurious warningson parameterless function calls that return a container, whenexpansion is disabled (either explicitly or because of a previouserrors) the name must be marked as not coming from source.2011-12-21 Arnaud Charlet <charlet@adacore.com>* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Separatehandling in CodePeer mode and only ignore Component_Sizeattribute.2011-12-21 Robert Dewar <dewar@adacore.com>* sem_ch6.adb (Process_Formals): Set proper mechanism forformals whose types have conventions Ada_Pass_By_Copy orAda_Pass_By_Reference.2011-12-21 Arnaud Charlet <charlet@adacore.com>* gnat1drv.adb (Gnat1Drv): Always delete old scil files inCodePeer mode.2011-12-21 Robert Dewar <dewar@adacore.com>* comperr.adb: Minor reformatting.2011-12-21 Ed Schonberg <schonberg@adacore.com>* aspects.ads: New table Base_Aspect, to indicate that an aspectis defined on a base type.* aspects.adb (Find_Aspect): If the aspect is a Base_Aspect,examine the representation items of the base type.2011-12-21 Pascal Obry <obry@adacore.com>* gnat_ugn.texi, prj.ads, prj-nmsc.adb, prj-attr.adb, projects.texi,snames.ads-tmpl: Use Encapsulated instead of Fully Standalone library.2011-12-21 Pascal Obry <obry@adacore.com>* adaint.c (__gnat_is_executable_file_attr) [_WIN32]: Add parenthesesto kill warning.2011-12-21 Arnaud Charlet <charlet@adacore.com>* comperr.adb (Delete_SCIL_Files): Also delete .scilx files.Fix implementation for child packages and package specs.(Delete_SCIL_Files.Decode_Name_Buffer): New function.2011-12-21 Robert Dewar <dewar@adacore.com>* err_vars.ads, a-cdlili.adb, a-cfdlli.ads, prj.adb, prj-nmsc.adb,a-cbdlli.adb, a-cbdlli.ads, a-cfdlli.adb: Minor reformatting.2011-12-21 Vincent Pucci <pucci@adacore.com>* s-diflio.adb, s-diflio.ads, s-diinio.adb, s-diinio.ads,s-llflex.ads: Fix header.2011-12-21 Thomas Quinot <quinot@adacore.com>* thread.c, s-oscons-tmplt.c, init.c (pthread_condattr_setclock): ForAIX 5.2, define as a dummy weak symbol in init.c.(CLOCK_RT_Ada): Set to CLOCK_MONOTONIC on all versions of AIX.2011-12-21 Thomas Quinot <quinot@adacore.com>* snames.ads-tmpl, sem_ch8.adb: Minor reformatting.* sem_prag.adb: Minor comment clarification.2011-12-21 Vincent Celier <celier@adacore.com>* prj-nmsc.adb (Report_No_Sources): New argument Lang for thelanguage name as a Name_Id. Do not report no sources if languageis not allowed.(Add_Source): Do not add source if language is not allowed.* prj.adb (Add_Restricted_Language): New procedure(Is_Allowed_Language): New function* prj.ads (Add_Restricted_Language): New procedure(Is_Allowed_Language): New function2011-12-21 Robert Dewar <dewar@adacore.com>* exp_ch5.adb, sem_dim.adb, sem_dim.ads, sem_ch12.adb, prj-conf.adb:Minor reformatting.2011-12-21 Claire Dross <dross@adacore.com>* a-cfdlli.ads (Constant_Indexing, Default_Iterator,Iterator_Element): Added to type List.(Not_No_Element, List_Iterator_Interfaces, Iterate,Constant_Reference_Type, Constant_Reference): New.* a-cfdlli.adb (type Iterator, Finalize, First, Last, Next,Previous, Iterate, Not_No_Element, Constant_Reference): New.2011-12-21 Gary Dismukes <dismukes@adacore.com>* gnat_ugn.texi: Minor reformatting.2011-12-21 Ed Schonberg <schonberg@adacore.com>* exp_ch5.adb (Expand_Iterator_Loop): The cursor operationHas_Element is the formal of Iterator_Interfaces, and withinthe instantion of this package it is a renaming of some localfunction with an unrelated name. Retrieve the operation fromthe instance itself, not from the container package.2011-12-21 Vincent Pucci <pucci@adacore.com>* exp_ch6.adb (Expand_Call): Expand_Put_Call_With_Dimension_Stringreplaced by Expand_Put_Call_With_Dimension_Symbol* sem_ch12.adb (Analyze_Package_Instantiation): New check forSystem.Dim_Float_IO and System.Dim_Integer_IO instantiation.* sem_ch3.adb (Analyze_Declarations): RemovedRemove_Dimension_In_Declaration call.* sem_dim.adb: Update comments. Redefine therepresentation of a Rational. Propagate all changes involvingdata structures and types throughout the pakage. Output thedimension aggregates for each error messages.("/"): Rational constructor "/" removed for Whole operands.("/"): New rational operation "/" for Rational operands.("*"): Operation "*" between Rational and Int removed.("abs"): New unary operator "abs" for Rational.(Analyze_Aspect_Dimension_System): Reorganized.(Analyze_Dimension_Identifier): Removed.(Copy_Dimensions): Removed.(Create_Rational_From_Expr): New Boolean parameter.(Dimensions_Msg_Of): New routine. Returna string with the dimensions of the parameter.(From_Dimension_To_String_Of_Symbols): Renaming ofFrom_Dimension_To_String_Id.* sem_dim.ads: Update comments.(Is_Dim_IO_Package_Instantiation): New routine.(Remove_Dimension_In_Declaration): Removed.* sem_res.adb (Resolve_Op_Expon): Reorganized calls ofEval_Op_Expon_For_Dimensioned_Type and Eval_Op_Expon.* s-diflio.ads, s-diinio.ads: Update comments.2011-12-21 Pascal Obry <obry@adacore.com>* prj-attr.adb, snames.ads-tmpl: Add Library_Standalone,Library_Fully_Standalone_Options andLibrary_Fully_Standalone_Supported attributes.* prj-nmsc.adb (Check_Library): Update check to take intoaccount fully standalone libraries. Such shared libraries canonly depend on static libraries.(Check_Stand_Alone_Library): Add support for fully standalone libraries.(Process_Project_Level_Simple_Attributes): Store value forconfiguration attribute Library_Fully_Standalone_Supported.* prj.ads, makeutl.adb (Standalone): New enumeration type.(Project_Data): Standalone_Library now of type Standlone.(Project_Configuration): Add Lib_Fully_Standalone_Supportedfield.(Default_Project_Config): Initialize new Lib_Fully_Standalone_Supportedfield.* clean.adb (Clean_Project): Adjust to new type for Standalone.* make.adb (Library_Phase): Adjust to new type for Standalone.(Gnatmake): Likewise.* mlib-prj.adb (Build_Library): Adjust to new type forStandalone.2011-12-21 Thomas Quinot <quinot@adacore.com>* gnatls.adb (Gnatls): Call Set_Standard_Error at startup, and thenSet_Standard_Output just before producing normal (non-diagnostic)output.* gnatcmd.adb (Gnatcmd): Call Set_Standard_Error at initialization(and again after parsing project files).2011-12-21 Vincent Celier <celier@adacore.com>* prj-conf.adb (Do_Autoconf): When the object directory doesnot exist, create auto.cgpr in the directory where temporaryfiles are created.2011-12-20 Ed Schonberg <schonberg@adacore.com>* sem_ch12.adb (Insert_Freeze_Node_For_Instance): Furtherrefinements on the placement of a freeze node for a packageinstantiation, when the generic appears within a previousinstantiation in the same unit.If the current instance is withinthe one that contains the generic, the freeze node for thecurrent one must appear in the current declarative part. Dittoif the current instance is within another package instance. Inthese cases the freeze node of the previous instance is is notrelevant. New predicate Enclosing_Body simplifies the process.(Freeze_Subprogram_Body): Rename Enclosing_Body toEnclosing_Package_Body, to prevent confusion with subprogram ofsame name elsewhere.(Install_Body): Recognize enclosing subprogram bodies to determinewhether freeze_node belongs in current declarative list.2011-12-20 Robert Dewar <dewar@adacore.com>* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Allowattribute definition clause for renaming if generated internallyand generate duplicate clause to apply to renamed object.(Rep_Item_Too_Late): Only diagnose source level entities* prj-nmsc.adb: Minor reformatting.* gcc-interface/Make-lang.in: Update dependencies.2011-12-20 Bob Duff <duff@adacore.com>* opt.ads (List_Inherited_Aspects): Default to False(i.e. -gnatw.L is the default).* usage.adb: Document new default for -gnatw.L.* gnat_ugn.texi: Document -gnatw.l and -gnatw.L switches.* warnsw.adb (Set_Warning_Switch): Do not includeList_Inherited_Aspects in -gnatwa.2011-12-20 Ed Schonberg <schonberg@adacore.com>* checks.adb (Apply_Type_Conversion_Checks): For a discrete typewith predicates, indicate unconditionally that a range checkis needed.* exp_ch4.adb (Expand_N_In): When the membership test is rewrittento incorporate a call to a predicate function, analyze expressionwith checks suppressed, to prevent infinite recursion.2011-12-20 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch11.adb (Find_Local_Handler): Guard thesearch over individual exception choices in case the list ofhandlers contains other (possibly illegal) constructs.2011-12-20 Gary Dismukes <dismukes@adacore.com>* sem_ch8.adb (Find_Type): Test taggednessof the Available_Type when checking for an illegal use of anincomplete type, when the incomplete view is a limited view ofa type. Remove redundant Is_Tagged test.2011-12-20 Hristian Kirtchev <kirtchev@adacore.com>* exp_util.adb: Add with and use clause for Aspects.(Is_Finalizable_Transient): Objects which denote Ada containersin the context of iterators are not considered transients. Suchobject must live for as long as the loop is around.(Is_Iterated_Container): New routine.2011-12-20 Hristian Kirtchev <kirtchev@adacore.com>* exp_imgv.adb (Expand_Width_Attribute): Add atype conversion from the enumeration subtype to its base subtype.2011-12-20 Hristian Kirtchev <kirtchev@adacore.com>* sem_ch4.adb (Operator_Check): Update the call toIs_Dimensioned_Type.* sem_dim.adb: Remove with and use clause for Namet.Sp. Reorganizeall type declarations and datastructures involved. Propagateall changes involving data structures and types throughoutthe pakage. Alphabetize all subprograms. Add ??? comments.(AD_Hash): Removed.(Analyze_Aspect_Dimension): Rewritten. Thisroutine now does all its checks in one pass rather thantwo. Refactor code. The error message are now in a more GNAT-ish style.(Create_Rational_From_Expr): This is now a function.(Get_Dimensions): Removed.(Get_Dimensions_String_Id): Removed.(Dimensions_Of): New rouitne.(Exists): New routines.(Is_Invalid): New routine.(Permits_Dimensions): Removed.(Present): Removed.(Set_Symbol): New routine.(System_Of): New routine.* sem_dim.ads: Rewrite the top level description of thepackage. Alphabetize subprograms. Add various comments onsubprogram usage. Add ??? comments.(Is_Dimensioned_Type):Renamed to Has_Dimension_System.* sem_res.adb (Resolve_Op_Expon): Update the call to Is_Dimensioned_Type2011-12-20 Ed Schonberg <schonberg@adacore.com>* sem_ch13.adb (Check_Indexing_Functions): The return type of anindexing function can be the default element type, and does notneed to be a reference type.* sem_ch4.adb (Try_Container_Indexing): Ditto.2011-12-20 Robert Dewar <dewar@adacore.com>* a-cdlili.ads, sem_cat.adb, sem_ch10.adb: Minor reformatting.2011-12-20 Bob Duff <duff@adacore.com>* s-taprop-mingw.adb (Yield): Do_Yield is no longer Unreferenced.2011-12-20 Vincent Pucci <pucci@adacore.com>* impunit.adb: s-dimkio, s-dimmks and s-dmotpr defined as GNATDefined Additions to System.* Makefile.rtl: s-dimkio, s-dimmks and s-dmotpr added.* s-dimkio.ads, s-dimmks.ads, s-dmotpr.ads: New files.2011-12-20 Gary Dismukes <dismukes@adacore.com>* sem_ch4.adb (Traverse_Homonyms): Allow a homonym to match whenwithin an instance, even if the homonym is marked Is_Hidden atthis point.2011-12-20 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, sem_ch5.adb, s-diinio.adb, s-diinio.ads, sem_dim.adb,sem_dim.ads, sem_res.adb, s-stposu.adb, s-stposu.ads, sem_ch4.adb,s-diflio.adb, s-diflio.ads, exp_disp.adb, s-llflex.ads: Minorreformatting.* aspects.ads: Dimension[_Aspects] are GNAT defined.2011-12-20 Robert Dewar <dewar@adacore.com>* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Checkrenaming case.2011-12-20 Thomas Quinot <quinot@adacore.com>* sem_cat.adb, sem_ch10.adb (Analyze_With_Clause): For a WITH clause ona child unit that is an illegal instantiation, mark the WITH clause inerror.(Install_Siblings, Validate_Categorization_Dependency): Guardagainst WITH clause marked as in error.2011-12-20 Hristian Kirtchev <kirtchev@adacore.com>* sem_res.adb (Resolve_Allocator): Warning on allocationof tasks on a subpool and rewrite the allocator into a raiseProgram_Error statement.* s-stposu.ads, s-stposu.adb: Code reformatting.(Create_Subpool): Remove formal parameter Storage_Size.(Default_Subpool_For_Pool): Add the default implementation of thisroutine.(Set_Pool_Of_Subpool): Rename formal parameter Pool to To. Updateall the uses of the parameter.2011-12-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>* gcc-interface/Makefile.in (%86 linux%):(LIBGNAT_TARGET_PAIRS_32): Split off from LIBGNAT_TARGET_PAIRS.(LIBGNAT_TARGET_PAIRS_64): New.(LIBGNAT_TARGET_PAIRS): Add either depending on multilib.2011-12-18 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_param): Add comment about doublereference and DECL_POINTS_TO_READONLY_P.* gcc-interface/trans.c (Identifier_to_gnu) <by_ref>: Always set theTREE_READONLY flag on the first dereference of a double dereference.2011-12-15 Arnaud Charlet <charlet@adacore.com>* a-numaux-vms.ads, s-asthan-vms-ia64.adb, s-auxdec-vms-ia64.adb,s-memory-vms_64.adb, s-memory-vms_64.ads, s-osinte-vms-ia64.adb,s-osinte-vms-ia64.ads, s-tasdeb-vms.adb: New files.2011-12-15 Vincent Pucci <pucci@adacore.com>* aspects.adb, aspects.ads Aspect_Dimension andAspect_Dimension_System added* exp_ch6.adb (Expand_Call): Expand_Put_Call_With_Dimension_Stringcase added* gcc-interface/Make-lang.in: s-llflex, sem_dim added.* impunit.adb :s-diflio and s-diinio defined as GNAT DefinedAdditions to System.* Makefile.rtl: s-diflio, s-diinio and s-llflex added* par-prag.adb, sem_prag.adb: Pragma_Dimension removed* rtsfind.ads: Expon_LLF added* sem_aggr.adb (Resolve_Aggregate): handles aggregate forAspect_Dimension case* sem_attr.adb (Resolve_Attribute): analyze dimension forattribute* sem_ch10.adb (Analyze_With_Clause): Avoid the warning messagesdue to the use of a GNAT library for Dimension packages* sem_ch13.adb (Analyze_Aspect_Specifications):Aspect_Dimension and Aspect_Dimension_System cases added(Check_Aspect_At_Freeze_Point): Aspect_Dimension andAspect_Dimension_System cases added* sem_ch2.adb (Analyze_Identifier): analyze dimension foridentifier* sem_ch3.adb (Analyze_Component_Declaration): analyze dimensionfor component declaration (Analyze_Object_Declaration): analyzedimension for object declaration (Analyze_Subtype_Declaration):analyze dimension for subtype declaration* sem_ch4.adb (Operator_Check): checks exponent is a rationalfor dimensioned operand for a N_Op_Expon* sem_ch5.adb (Analyze_Assignment): analyze dimension forassignment (Analyze_Statements): removal of dimensions in allstatements* sem_ch6.adb (Analyze_Return_Statement): analyze dimension forreturn statement* sem_ch8.adb (Analyze_Object_Renaming): analyze dimension forobject renaming* sem_dim.adb, sem_dim.ads (Analyze_Aspect_Dimension):analyze the expression for aspect dimension and store thevalues in a Htable.(Analyze_Aspect_Dimension_System): analyzethe expression for aspect dimension system and store the newsystem in a Table.(Analyze_Dimension): propagates dimension(Expand_Put_Call_With_Dimension_String): add the dimensionstring as a suffix of the numeric value in the output(Has_Dimension): return True if the node has a dimension(Remove_Dimension_In_Declaration): removal of dimension in theexpression of the declaration.(Remove_Dimension_In_Statement): removal of dimension in statement* sem_res.adb (Resolve): analyze dimension if the nodehas already been analyzed.(Resolve_Arithmetic_Op): analyzedimension for arithmetic op.(Resolve_Call): analyze dimension for function call.(Resolve_Comparison_Op): analyze dimension for comparison op.(Resolve_Equality_Op): analyze dimension for equality op.(Resolve_Indexed_Component): analyze dimension for indexed component.(Resolve_Op_Expon): analyze dimension for op expon.(Resolve_Selected_Component): analyze dimensionfor selected component.(Resolve_Slice): analyze dimension for slice.(Resolve_Unary_Op): analyze dimension for unary op(Resolve_Type_Conversion): analyze dimension for type conversion(Resolve_Unchecked_Type_Conversion): analyze dimension forunchecked type conversion* snames.ads-tmpl Name_Dimension, Name_Dimension_System,Name_Dim_Float_IO, Name_Dim_Integer_IO,Name_Generic_Elementary_Functions, Name_Sqrt added.Pragma_Dimension removed* s-diflio.adb, s-diflio.ads New GNAT library generic packagefor dimensioned float type IO* s-diinio.adb, s-diinio.ads New GNAT library generic packagefor dimensioned integer type IO* s-llflex.ads (Expon_LLF): exponentiation routine for long longfloats operand and exponent2011-12-15 Robert Dewar <dewar@adacore.com>* sem_aggr.adb: Minor comment addition.2011-12-15 Bob Duff <duff@adacore.com>* s-tasren.adb (Task_Count): Do not call Yield; E'Count is not atask dispatching point.* s-taprop-mingw.adb (Yield): Do not yield if Do_Yield is False.2011-12-15 Robert Dewar <dewar@adacore.com>* sigtramp-ppcvxw.c, sigtramp.h: Fix header.2011-12-15 Javier Miranda <miranda@adacore.com>* exp_attr.adb (Expand_N_Attribute_Reference): For 'alignmentapplied to a class-wide type under VM targets generate code whichinvokes the function Get_Alignment to retrieve the value of thealignment from the TSD.* rtsfind.ads (RE_Get_Alignment): New entity.2011-12-15 Robert Dewar <dewar@adacore.com>* g-comlin.adb: Fix header.2011-12-15 Tristan Gingold <gingold@adacore.com>* gnatls.adb: Fix typo.2011-12-15 Ed Falis <falis@adacore.com>* s-tpopsp-vxworks.adb: Update comment.2011-12-15 Ed Schonberg <schonberg@adacore.com>* sem_aggr.adb (Resolve_Array_Aggregate, Resolve_Aggr_Expr); Ifthe component type has predicates, generate corresponding check.(Resolve_Record_Aggregate, Resolve_Aggr_Expr): Ditto.2011-12-13 Cesar Strauss <cestrauss@gmail.com>Eric Botcazou <ebotcazou@adacore.com>PR ada/49084* types.h (Byte): Change typedef to 'unsigned char'.* atree.h (struct Flag_Word): Use Byte for 'convention' field.2011-12-12 Robert Dewar <dewar@adacore.com>* s-taprop-mingw.adb: Minor reformatting.2011-12-12 Nicolas Roche <roche@adacore.com>* gcc-interface/Make-lang.in: Update dependencies.Add gnattools4 target when building tools in canadian mode2011-12-12 Javier Miranda <miranda@adacore.com>* exp_disp.adb (Make_VM_TSD): Complete previous patch.2011-12-12 Bob Duff <duff@adacore.com>* s-tpobop.adb: Use named notation.* g-bytswa.ads, s-taprop.ads: Minor comment fix.2011-12-12 Arnaud Charlet <charlet@adacore.com>* make.adb: Minor comment update.2011-12-12 Robert Dewar <dewar@adacore.com>* freeze.adb, s-taprop-mingw.adb, exp_disp.adb, sem_ch13.adb: Minorreformatting.2011-12-12 Robert Dewar <dewar@adacore.com>* sem_ch6.adb, gnatls.adb: Minor reformatting.2011-12-12 Ed Schonberg <schonberg@adacore.com>* freeze.adb (Freeze_Entity): If a type declared in a genericcontext has predicates, generate a freeze node for it.* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): If expressionhas not been analyzed yet, entity has not been frozen, so analyzeit now.2011-12-12 Javier Miranda <miranda@adacore.com>* exp_disp.adb (Make_VM_TSD): Generate code to store the value of'alignment in the TSD.2011-12-12 Bob Duff <duff@adacore.com>* s-taprop-mingw.adb (Yield): Do not delay 1 millisecond in Annex Dmode.2011-12-12 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch4.adb (Expand_N_Allocator): Update the master of ananonymous access-to-controlled type to utilize the heterogeneousmaster associated with the current unit.2011-12-12 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (Analyze_Expression_Function): If the functionis not a completion, pre-analyze the expression now to preventspurious visibility on later entities. The body is inserted atthe end of the current declaration list or package to preventearly freezing, but the visibility is established at the pointof definition.2011-12-12 Bob Duff <duff@adacore.com>* sem.adb, sem.ads: Add debugging routines.2011-12-12 Tristan Gingold <gingold@adacore.com>* gnatls.adb: (gnatls): Also add the objects dir in search list.2011-12-12 Robert Dewar <dewar@adacore.com>* exp_atag.adb, exp_atag.ads, exp_util.adb, exp_attr.adb,sem_ch13.adb: Minor reformatting.2011-12-12 Gary Dismukes <dismukes@adacore.com>* sem_ch7.adb (Uninstall_Declarations): Don'tapply check for incomplete types used as a result type for anaccess-to-function type when compiling for Ada 2012 or later.* sem_ch6.adb (Analyze_Subprogram_Declaration):Specialize error message for interface subprograms that arenot declared abstract nor null (functions can't be declared asnull). Also, remove "(Ada 2005)" from message.2011-12-12 Robert Dewar <dewar@adacore.com>* sem_prag.adb (GNAT_Pragma): Check comes from source.2011-12-12 Robert Dewar <dewar@adacore.com>* gnatls.adb: Minor reformatting.2011-12-12 Javier Miranda <miranda@adacore.com>* a-tags.ads (Alignment): New TSD field.(Max_Predef_Prims): Value lowered to 15 (or 9 in case ofconfigurable runtime) Update documentation of predefinedprimitives since Alignment has been removed.* exp_disp.ads Update documentation of slots of dispatchingprimitives.* exp_disp.adb (Default_Prim_Op_Position): Update slotvalues since alignment is no longer a predefined primitive.(Is_Predefined_Dispatch_Operation): Remove _alignment.(Is_Predefined_Internal_Operation): Remove _alignment.(Make_DT): Update static test on the value stored in a-tags.adsfor Max_Predef_Prims; store the value of 'alignment in the TSD.* exp_atag.ads, exp_atag.adb (Build_Get_Alignment): New subprogramthat retrieves the alignment from the TSD* exp_util.adb (Build_Allocated_Deallocate_Proc): For deallocationof class-wide types obtain the value of alignment from the TSD.* exp_attr.adb (Expand_N_Attribute_Reference): For 'alignmentapplied to a class-wide type invoke Build_Get_Alignment togenerate code which retrieves the value of the alignment fromthe TSD.* rtsfind.ads (RE_Alignment): New Ada.Tags entity* sem_ch13.adb (Analyze_Attribute_Definition_Clause): For taggedtypes if the value of the alignment is bigger than the Maximumalignment then set the value of the alignment to the Maximumalignment and report a warning.* exp_ch3.adb (Make_Predefined_Primitive_Specs): Do not generatespec of _alignment.(Predefined_Primitive_Bodies): Do not generate body of _alignment.2011-12-12 Gary Dismukes <dismukes@adacore.com>* freeze.adb (Freeze_Expression): Allow freezing of staticscalar subtypes that are prefixes of an attribute, even if notyet marked static. Such attributes will get marked as staticlater in Eval_Attribute (as called from Resolve_Attribute).* sem_attr.adb (Eval_Attribute): Remove wrong code that does anearly return for attribute prefixes that are unfrozen source-leveltypes. This code was incorrectly bypassing folding of unfrozenstatic subtype attributes in default expressions (the executableexample in the now-deleted comment was in fact illegal).2011-12-12 Robert Dewar <dewar@adacore.com>* a-coinve.adb, sem_res.adb, prj-nmsc.adb, a-cobove.adb, a-convec.adb,gnatls.adb, sem_ch13.adb, prj-env.adb, prj-env.ads: Minor reformatting.2011-12-12 Tristan Gingold <gingold@adacore.com>* gsocket.h: Adjust previous patch.2011-12-12 Thomas Quinot <quinot@adacore.com>* exp_disp.adb: Minor reformatting.2011-12-12 Tristan Gingold <gingold@adacore.com>* gnatls.adb (Search_RTS): New procedure.(Scan_Ls_Arg): Move code that search the RTS.(Gnatls): search the RTS later.* prj-env.ads, prj-env.adb (Get_Runtime_Path): New function.2011-12-12 Ed Falis <falis@adacore.com>* sysdep.c: Fix treatment of VxWorks task options so that run-timesbuilt with __SPE__ get option VX_SPE_TASK while others get VX_FP_TASK.2011-12-12 Bob Duff <duff@adacore.com>* sem_type.adb, sem_type.ads, sem_ch4.adb, treepr.adb, treepr.ads:Minor cleanup and fiddling with debug printouts.2011-12-12 Vincent Celier <celier@adacore.com>* prj-nmsc.adb (Get_Directories): For a non extending project,always get a declared object and/or exec directory if it alreadyexists, even when there are no sources, but do not create them.2011-12-12 Bob Duff <duff@adacore.com>* sem_res.adb (Resolve): Deal with the case where an abstractoperator is called with operands of type universal_integer.2011-12-12 Thomas Quinot <quinot@adacore.com>* par_sco.adb: Minor fix to dominance marker referencing WHILEdecision.2011-12-12 Tristan Gingold <gingold@adacore.com>* mlib-tgt-specific-xi.adb: (Get_Target_Prefix): Simplify code.2011-12-12 Thomas Quinot <quinot@adacore.com>* par_sco.adb: Adjust dominant marker for branches of CASEstatements.2011-12-12 Thomas Quinot <quinot@adacore.com>* gsocket.h, s-oscons-tmplt.c: Ensure we do not include any systemheader file prior to redefining FD_SETSIZE.2011-12-12 Ed Schonberg <schonberg@adacore.com>* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Ina generic context the aspect expressions may not have beenpreanalyzed if there was no previous freeze point, so theexpressions must be preanalyzed now, and there is no conformanceto check for visibility changes.2011-12-12 Matthew Heaney <heaney@adacore.com>* a-convec.adb, a-coinve.adb, a-cobove.adb (Iterator): Usesubtype Index_Type'Base for Index component (Finalize): Removeunnecessary access check (First, Last): Cursor return valuedepends on iterator index value (Iterate): Use start position asiterator index value (Next, Previous): Forward to correspondingcursor-based operation.* a-cborma.adb (Iterate): Properly initialize iterator object (with 0as node index).2011-12-12 Robert Dewar <dewar@adacore.com>* par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Minor reformatting.2011-12-12 Steve Baird <baird@adacore.com>* sem_ch3.adb (Check_Completion): Improve a comment.2011-12-12 Tristan Gingold <gingold@adacore.com>* cstand.adb: Minor comment fix.2011-12-11 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils2.c (gnat_build_constructor): Test the TREE_STATICflag of elements to compute that of the constructor.2011-12-11 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_param): Set the restrict qualifieron references built for parameters which aren't specifically by-ref.2011-12-11 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: If there is analignment set on a renaming, assert that the renamed object is alignedenough as to make it possible to honor it.2011-12-11 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (gigi): Initialize the linemap earlier.2011-12-06 Dave Korn <dave.korn.cygwin@gmail.com>* gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS [windows targets]):Correctly detect cygwin, which no longer has the '32' suffix, and useappropriate implementations of the sockets and memory packages.* sysdep.c (WIN_SETMODE): New define to choose the correct spelling ofsetmode/_setmode for MinGW and Cygwin, respectively.(__gnat_set_binary_mode [windows targets]): Use the above, and enablethe windows version for Cygwin as well as MinGW.(__gnat_set_text_mode [windows targets]): Likewise.(__gnat_ttyname [windows targets]): Provide a Cygwin implementationin addition to the MinGW version.(__gnat_is_windows_xp): Make available to Cygwin as well as MinGW.(__gnat_get_stack_bounds): Likewise.2011-12-05 Bob Duff <duff@adacore.com>* sem_ch4.adb: Minor comment fix.2011-12-05 Robert Dewar <dewar@adacore.com>* gnat_ugn.texi: Add documentation for -gnatw.e.2011-12-05 Bob Duff <duff@adacore.com>* treepr.adb (pn): Print something useful forElmt_Ids. Add Write_Eol to 'when others' case, so the outputwill be seen immediately in gdb.2011-12-05 Ed Schonberg <schonberg@adacore.com>* lib-writ.adb (Output_Main_Program_Line): A generic subprogramis never a main program.2011-12-05 Thomas Quinot <quinot@adacore.com>* par_sco.adb: Various minor adjustments to dominance markersgeneration.2011-12-05 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (Analyze_Expression_Function): If the function isa completion, generate a body reference for its defining entity,before rewriting the node as a body.* sem_util.adb (Defining_Entity): Add entry for expressionfunction.2011-12-05 Bob Duff <duff@adacore.com>* sem_ch3.adb (Derive_Progenitor_Subprograms): Add Ultimate_Aliasto the Comes_From_Source check, to deal properly with the caseof indirect inheritance of "=".2011-12-05 Thomas Quinot <quinot@adacore.com>PR ada/51307* s-oscons-tmplt.c: On HP-UX, CLOCK_REALTIME is an enum literal,not a macro.2011-12-05 Thomas Quinot <quinot@adacore.com>* par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Generate dominanceinformation in SCOs.2011-12-02 Eric Botcazou <ebotcazou@adacore.com>Thomas Quinot <quinot@adacore.com>* gcc-interface/Makefile.in (INCLUDES): Remove $(srcdir)/config.(INCLUDES_FOR_SUBDIR): Add $(fsrcdir) except for VxWorks.Add thread.c to LIBGNAT_SRCS so that a symlink is created in ada/rts,which allows the file to be installed in adainclude.* gcc-interface/Make-lang.in: Update dependencies.2011-12-02 Javier Miranda <miranda@adacore.com>* sem_ch3.adb (Constrain_Access): Undo previouspatch for this routine. Required since the RM rule 3.7.1(7/3)applies to all access types.2011-12-02 Bob Duff <duff@adacore.com>* sem_ch6.adb: Minor comment fix.2011-12-02 Joel Sherrill <joel.sherrill@oarcorp.com>* s-tpopsp-rtems.adb: Use ATCB_Key rather than RTEMS_Ada_Self variablefor consistency with other ports.* s-osinte-rtems.adb: Add body for dummy implementation ofpthread_rwlockattr_setkind_np().* s-osinte-rtems.ads: Add missing clock and rwlock bindings.* terminals.c: Add __rtems__ conditionals to account for differencesin termios implementation.2011-12-02 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, sem_attr.adb, a-comutr.adb, a-cbmutr.adb,a-cbmutr.ads: Minor reformatting.2011-12-02 Hristian Kirtchev <kirtchev@adacore.com>* exp_dbug.adb: Comment reformatting.(Get_External_Name): Use Reset_Buffers to reset the contents ofName_Buffer and Homonym_Numbers.(Qualify_All_Entity_Names): Reset the contents of Name_Buffer andHomonym_Numbers before creating a new qualified name for a particularentity.(Reset_Buffers): New routine.2011-12-02 Matthew Heaney <heaney@adacore.com>* a-cbmutr.ads (No_Node): Moved declaration from body to spec* a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Iterator): Derivesfrom Root_Iterator.(Child_Iterator): Derives from Root_Iterator.(Finalize): Implemented as an override operation for Root_Iterator.(First): Return value depends on Subtree component.(Last): Component was renamed from Parent to Subtree.(Next): Checks parameter value, and uses simplified loop.(Iterate): Forwards to Iterate_Subtree.(Iterate_Children): Component was renamed from Parent to Subtree.(Iterate_Subtree): Checks parameter value2011-12-02 Robert Dewar <dewar@adacore.com>* usage.adb: Add lines for -gnatw.n and -gnatw.N(atomic sync info msgs).2011-12-02 Steve Baird <baird@adacore.com>* sem_ch3.adb (Check_Completion): An Ada 2012generic formal type doesn't require a completion.2011-12-02 Eric Botcazou <ebotcazou@adacore.com>* sem_util.adb (Set_Debug_Info_Needed): Also set the flag on thepacked array type if it is to be set on the array type used torepresent it.2011-12-02 Robert Dewar <dewar@adacore.com>* gnat_rm.texi: Eliminate confusing use of type name.2011-12-02 Thomas Quinot <quinot@adacore.com>* sem_ch10.adb (Analyze_Compilation_Unit): For a library subprogrambody that acts as spec, do not create a shallow copy of the contextclause for the synthetized spec (instead, use the same list asin the body).2011-12-02 Bob Duff <duff@adacore.com>* gnat_ugn.texi: Clarify usage of -p binder switch.2011-12-02 Javier Miranda <miranda@adacore.com>* sem_util.ads, sem_util.adb, sem_aux.ads, sem_aux.adb(Effectively_Has_Constrained_Partial_View): Moved to sem_aux(In_Generic_Body): Moved to sem_aux.(Unit_Declaration_Node): Moved to sem_aux.* einfo.ads (Effectively_Has_Constrained_Partial_View): Completedocumentation.* exp_attr.adb, live.adb, sem_ch10.adb, checks.adb, sem.adb,rtsfind.adb, sem_attr.adb, sem_elab.adb, exp_ch4.adb, sem_ch4.adb,exp_ch13.adb: Add with-clause on Sem_Aux.2011-12-02 Yannick Moy <moy@adacore.com>* sem_util.adb (Unique_Name): Reach through Unique_Entity toget the name of the entity.(Unique_Entity): Correct case for subprogram stubs.2011-12-02 Yannick Moy <moy@adacore.com>* sem_ch3.adb (Check_Initialization): Do not emit warning oninitialization of limited type object in Alfa mode.2011-12-02 Robert Dewar <dewar@adacore.com>* sinfo.ads: Minor reformatting.* gnat_ugn.texi: Fix confusion in use of term "type name".2011-12-02 Robert Dewar <dewar@adacore.com>* sem_ch6.adb: Minor change in error message.2011-12-02 Robert Dewar <dewar@adacore.com>* sem_ch9.adb, prj-part.adb, vms_data.ads, sem_ch8.adb: Minorreformatting.2011-12-02 Javier Miranda <miranda@adacore.com>* sem_ch3.adb (Constrain_Access): Enable on Ada 2005 mode thestatic check of the rule of general access types whose designatedtype has discriminants.* sem_util.ads, sem_util.adb(Effectively_Has_Constrained_Partial_View): New subprogram.(In_Generic_Body): New subprogram.* einfo.ads (Has_Constrained_Partial_View): Adding documentation.* sem_prag.adb (Inside_Generic_Body): Removed. Replaced by newsubprogram In_Generic_Body.* exp_attr.adb, checks.adb, sem_attr.adb, exp_ch4.adb,sem_ch4.adb: In addition, this patch replaces the occurrences ofHas_Constrained_Partial_View byEffectively_Has_Constrained_Partial_View.2011-12-02 Matthew Heaney <heaney@adacore.com>* a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Iterator): RenamePosition component.(Finalize): Remove unnecessary access check.(First): Forward to First_Child.(Last): Forward to Last_Child.(Iterate): Check preconditions for parent node parameter.(Next): Forward to Next_Sibling.(Previous): Forward to Previous_Sibling.2011-12-02 Robert Dewar <dewar@adacore.com>* a-coinve.adb, a-coorma.adb, freeze.adb, a-coorse.adb, a-comutr.adb,a-coormu.adb, a-convec.adb: Minor reformatting.2011-12-02 Matthew Heaney <heaney@adacore.com>* a-coormu.ads, a-ciormu.ads: Declare iterator factory function.* a-ciormu.adb, a-ciormu.adb (Iterator): Declare concreteIterator type.(Finalize): Decrement busy counter.(First, Last): Cursor return value depends on iterator node value.(Iterate): Use start position as iterator node value.(Next, Previous): Forward to corresponding cursor-based operation.2011-12-02 Robert Dewar <dewar@adacore.com>* a-cborma.adb, a-cbhama.adb, a-cbdlli.adb, a-cbmutr.adb,a-cbhase.adb, a-cdlili.adb, a-cihama.adb, a-ciorse.adb, a-cidlli.adb,a-cimutr.adb, a-cihase.adb, a-cohama.adb, a-cborse.adb,a-ciorma.adb, a-cobove.adb: Minor reformatting.2011-12-01 Jakub Jelinek <jakub@redhat.com>PR bootstrap/51201* gcc-interface/Make-lang.in: Initialize RTS_DIR with = instead of :=.2011-11-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>* s-taprop-tru64.adb (Create_Task): Use Unrestricted_Access.2011-11-23 Thomas Quinot <quinot@adacore.com>* thread.c, s-oscons-tmplt.c: Generate __gnat_pthread_condattr_setuponly on platforms where this is required, as determined bys-oscons.h.2011-11-23 Ed Schonberg <schonberg@adacore.com>* sem_ch9.adb: No check on entry index if error on index.2011-11-23 Gary Dismukes <dismukes@adacore.com>* sem_ch6.adb (Analyze_Return_Statement): Improve error messages forreturn statements nested inside an extended_return_statement.* gcc-interface/Make-lang.in: Update dependencies.* gcc-interface/Makefile.in (MISCLIB): Add -lutil for BSD targets.2011-11-23 Ed Schonberg <schonberg@adacore.com>* freeze.adb (Freeze_All_Ent): An incomplete type is notfrozen by a subprogram body that does not come from source.2011-11-23 Pascal Obry <obry@adacore.com>* s-oscons-tmplt.c: Add PTY_Library constant. It containsthe library for pseudo terminal support.* g-exptty.ads: Add pseudo-terminal library into a Linker_Optionspragma.2011-11-23 Ed Schonberg <schonberg@adacore.com>* sem_ch9.adb: No check on entry family index if generic.2011-11-23 Thomas Quinot <quinot@adacore.com>* sem_ch9.adb, s-taprop.ads, s-taprop-hpux-dce.adb, s-taprop-irix.adb,s-taprop-posix.adb, s-taprop-rtx.adb, s-taprop-solaris.adb,s-taprop-tru64.adb, s-taprop-vxworks.adb: Move dependency onSystem.OS_Constants from shared spec ofSystem.Tasking.Primitive_Operations to the specific body variantsthat really require this dependency.2011-11-23 Ed Schonberg <schonberg@adacore.com>* sem_ch8.adb (Analyze_Subprogram_Renaming_Declaration):If the declaration has aspects, analyze them so they can beproperly rejected.2011-11-23 Hristian Kirtchev <kirtchev@adacore.com>* a-comutr.adb, a-coorma.adb, a-coorse.adb, a-convec.adb, a-cihase.adb,a-cimutr.adb, a-coinve.adb, a-ciorma.adb, a-ciorse.adb, a-cobove.adb,a-cohama.adb, a-cihama.adb, a-cidlli.adb, a-cdlili.adb, a-cbhama.adb,a-cbhase.adb, a-cbmutr.adb, a-cborma.adb, a-cborse.adb, a-cbdlli.adb:Add with and use clause for Ada.Finalization. TypeIterator and Child_Iterator are now derived from Limited_Controlled.(Finalize): New routine.(Iterate): Add a renaming of counter Busy andincrement it. Update the return aggregate.(Iterate_Children): Add a renaming ofcounter Busy and increment it. Update the return aggregate.(Iterate_Subtree): Add a renaming of counter Busy and incrementit. Update the return aggregate.* a-cdlili.ads, a-cidlli.ads: Type List_Access is now a general accesstype.* a-cihama.ads: Type Map_Access is now a general access type.* a-comutr.ads, a-cimutr.ads: Use type Natural for the two locksassociated with the tree.* a-cohama.ads: Type Map_Access is now a general access type.* a-coinve.ads, a-convec.ads: Type Vector_Access is now a generalaccess type.* exp_ch5.adb (Expand_Iterator_Loop): Do not create a blockto wrap the loop as this is done at an earlier step, duringanalysis. The declarations of the iterator and the cursor usethe usual Insert_Action mechanism when added into the tree.* sem_ch5.adb (Analyze_Loop_Statement): Remove local constantLoop_Statement and replace all respective uses by N. Add localconstant Loc. Preanalyze the loop iterator to discover whetherit is a container iterator and if it is, wrap the loop in ablock. This ensures that any controlled temporaries producedby the iteration scheme share the same lifetime of the loop.(Is_Container_Iterator): New routine.(Is_Wrapped_In_Block): New routine.(Pre_Analyze_Range): Move spec and body to the library level.2011-11-23 Sergey Rybin <rybin@adacore.com frybin>* gnat_ugn.texi, vms_data.ads: Add documentation for new gnatpp optionthat controls casing of type and subtype names.2011-11-23 Yannick Moy <moy@adacore.com>* sem_ch3.adb: Minor addition of comments.2011-11-23 Thomas Quinot <quinot@adacore.com>* prj-part.adb (Extension_Withs): New global variable,contains the head of the list of WITH clauses from the EXTENDSALL projects for which virtual packages are being created.(Look_For_Virtual_Projects_For): When recursing throughan EXTENDS ALL, add the WITH clauses of the extendingproject to Extension_Withs. When adding a project to theVirtual_Hash, record the associated Extension_Withs list.(Create_Virtual_Extending_Project): Add a copy of the appropriateExtension_Withs to the virtual project.2011-11-23 Thomas Quinot <quinot@adacore.com>* mlib-tgt-specific-vxworks.adb: Minor reformatting.2011-11-23 Thomas Quinot <quinot@adacore.com>* Make-generated.in (Sdefault.Target_Name): Set to$(target_noncanonical) instead of $(target) for consistency.2011-11-23 Matthew Heaney <heaney@adacore.com>* a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Iterator): DeclaredIterator type as limited (First, Last): Cursor return valuedepends on iterator node value (Iterate): Use start position asiterator node value (Next, Previous): Forward to correspondingcursor-based operation.2011-11-23 Matthew Heaney <heaney@adacore.com>* a-coorse.ads, a-ciorse.ads, a-cborse.ads (Set_Iterator_Interfaces):Renamed from Ordered_Set_Iterator_Interfaces.* a-coorse.adb, a-ciorse.adb, a-cborse.adb (Iterator): DeclaredIterator type as limited (First, Last): Cursor return valuedepends on iterator node value (Iterate): Use start position asiterator node value (Next, Previous): Forward to correspondingcursor-based operation.* a-cohase.ads, a-cohase.adb: Implemented forward iterator.* a-cihase.adb, a-cbhase.adb (Iterator): Removed unnecessarynode component (First, Next): Forward call to correspondingcursor-based operation (Iterate): Representation of iterator nolonger has node component2011-11-23 Hristian Kirtchev <kirtchev@adacore.com>* exp_intr.adb (Expand_Unc_Deallocation): Ensure that thedereference has a proper type before the side effect removalmechanism kicks in.* sem_ch3.adb (Analyze_Subtype_Declaration): Handle a rare casewhere the base type of the subtype is a private itype createdto act as the partial view of a constrained record type. Thisscenario manifests with equivalent class-wide types for recordswith unknown discriminants.2011-11-23 Jerome Guitton <guitton@adacore.com>* s-osprim-vxworks.adb (Clock): Use Clock_RT_Ada.2011-11-23 Thomas Quinot <quinot@adacore.com>* s-oscons-tmplt.c: Fix unbalanced preprocessor directives Minorreformatting/reorganization.2011-11-23 Thomas Quinot <quinot@adacore.com>* g-htable.ads: Remove old comments.2011-11-23 Thomas Quinot <quinot@adacore.com>* exp_imgv.adb: Minor reformatting.2011-11-23 Robert Dewar <dewar@adacore.com>* sem_ch9.adb (Analyze_Entry_Declaration): Check for entryfamily bounds out of range.2011-11-23 Matthew Heaney <heaney@adacore.com>* a-cohama.adb, a-cihama.adb, a-cbhama.adb (Iterator): Declaretype as limited, and remove node component.(First, Next): Forward call to corresponding cursor-based operation.(Iterate): Representation of iterator no longer has node component.2011-11-23 Yannick Moy <moy@adacore.com>* exp_util.adb: Revert previous change to remove side-effects in Alfamode, which is not the correct thing to do for renamings.2011-11-23 Thomas Quinot <quinot@adacore.com>* s-osinte-hpux.ads, s-taprop-vxworks.adb, s-taprop-tru64.adb,s-osinte-vxworks.ads, s-osinte-aix.ads, s-osinte-lynxos.ads,s-osinte-solaris-posix.ads, s-taprop-solaris.adb, a-exetim-posix.adb,s-osinte-irix.ads, s-osinte-solaris.ads, s-oscons-tmplt.c,s-taprop-irix.adb, s-osinte-hpux-dce.ads, Makefile.rtl,s-osinte-tru64.ads, s-osinte-darwin.ads, s-taprop.ads,s-osinte-freebsd.ads, s-osinte-lynxos-3.ads, s-taprop-hpux-dce.adb,s-taprop-posix.adb: Remove hard-coded clock ids;instead, generate them in System.OS_Constants.(System.OS_Constants.CLOCK_RT_Ada): New constant denoting theid of the clock providing Ada.Real_Time.Monotonic_Clock.* thread.c: New file.(__gnat_pthread_condattr_setup): New function. For platforms whereCLOCK_RT_Ada is not CLOCK_REALTIME, set appropriate conditionvariable attribute.2011-11-23 Yannick Moy <moy@adacore.com>* sem_ch3.adb: Restore the use of Expander_Active instead ofFull_Expander_Active, so that the evaluation is forced in Alfamode too. Otherwise, we end up with an unexpected insertion in aplace where it is not supposed to happen, on default parametersof a call.2011-11-23 Thomas Quinot <quinot@adacore.com>* prj-pp.adb, prj-pp.ads: Minor new addition: wrapper procedure "wpr"for Pretty_Print, for use from within gdb.2011-11-23 Ed Schonberg <schonberg@adacore.com>* exp_ch5.adb (Expand_Iterator_Loop): Wrap the expanded loopand the cursor declarations in a block, so that the loop variableis local to the construct.2011-11-23 Matthew Heaney <heaney@adacore.com>* a-coorma.ads, a-ciorma.ads, a-cborma.ads (Iterate): Returnstype Reversible_Iterator'Class.* a-coorma.adb, a-ciorma.adb, a-cborma.adb (Iterator):Declare type as limited.(First, Last): Return value depends on iterator's start node value.(Next, Previous): Call corresponding Cursor-based operation.(Iterate): Indicate whether complete or partial iteration2011-11-23 Robert Dewar <dewar@adacore.com>* errout.adb: Minor reformattin (Finalize): Take templates intoaccount for warning suppression.* errout.ads (Set_Specific_Warning_Off): Add Used parameter.* erroutc.adb: Minor reformatting (Finalize): Take generictemplates into account for warning suppress.* erroutc.ads (Set_Specific_Warning_Off): Add Used parameter.* sem_prag.adb: Minor reformatting (Analyze_Pragma,case Warnings): Provide Used parameter in call toSet_Specific_Warnings_Off (to deal with generic template case).2011-11-23 Pascal Obry <obry@adacore.com>* sem_prag.adb (Process_Convention): Better error message forstdcall convention on dispatching calls.2011-11-23 Gary Dismukes <dismukes@adacore.com>* sem_ch4.adb, sem_ch13.adb: Minor reformatting.2011-11-23 Javier Miranda <miranda@adacore.com>* exp_ch6.adb (Expand_Simple_Function_Return): Add missingimplicit type conversion when the returned object is allocatedin the secondary stack and the type of the returned object isan interface. Done to force generation of displacement of the"this" pointer.2011-11-23 Pascal Obry <obry@adacore.com>* impunit.adb: Add g-exptty and g-tty units.2011-11-23 Robert Dewar <dewar@adacore.com>* exp_imgv.adb: Minor code reorganization (use Make_Temporary).2011-11-23 Robert Dewar <dewar@adacore.com>* exp_util.adb, par-ch6.adb, sem_res.adb, par-util.adb: Minorreformatting.2011-11-23 Yannick Moy <moy@adacore.com>* sem_ch13.adb (Analyze_Aspect_Specifications): Place error online of precondition/ postcondition/invariant.2011-11-23 Pascal Obry <obry@adacore.com>* g-exptty.ads, g-exptty.adb, g-tty.ads, g-tty.adb,terminals.c: New files.Makefile.rtl: Add these new files.* gnat_rm.texi: Add documentation for GNAT.Expect.TTY.* gcc-interface/Makefile.in: Add g-exptty, g-tty, terminals.o* gcc-interface/Make-lang.in: Update dependencies.2011-11-21 Robert Dewar <dewar@adacore.com>* exp_imgv.adb (Expand_Width_Attribute): Handle case of Discard_Names.* sem_attr.adb (Eval_Attribute, case Width): Ditto.2011-11-21 Thomas Quinot <quinot@adacore.com>* sinfo.ads: Minor reformatting.2011-11-21 Yannick Moy <moy@adacore.com>* exp_util.adb: Minor reformatting. Update comments.2011-11-21 Robert Dewar <dewar@adacore.com>* exp_prag.adb, exp_util.adb, sinfo.ads, sem_res.adb, s-stposu.adb,sem_attr.adb, s-stposu.ads, s-taprop-solaris.adb, s-taprop-irix.adb,sem_ch6.adb: Minor reformatting.2011-11-21 Arnaud Charlet <charlet@adacore.com>* s-taprop-irix.adb, s-taprop-solaris.adb (Create_Task): UseUnrestricted_Access to deal with fact that we properly detect theerror if Access is used.* gcc-interface/Make-lang.in: Update dependencies.2011-11-21 Yannick Moy <moy@adacore.com>* exp_prag.adb (Expand_Pragma_Check): Place error on first characterof expression.* sem_res.adb (Resolve_Short_Circuit): Place error on firstcharacter of expression.2011-11-21 Yannick Moy <moy@adacore.com>* exp_util.adb (Remove_Side_Effects): Do nothing in Alfa mode.2011-11-21 Hristian Kirtchev <kirtchev@adacore.com>* exp_attr.adb (Expand_N_Attribute_Reference, caseMax_Size_In_Storage_Elements): Account for the size of thehidden list header which precedes controlled objects allocatedon the heap.* rtsfind.ads: Add RE_Header_Size_With_Padding to the runtimetables.* sinfo.adb (Header_Size_Added): New routine.(Set_Header_Size_Added): New routine.* sinfo.ads: Add flag Controlled_Header_Added along withassociated comment.(Header_Size_Added): New inlined routine.(Set_Header_Size_Added): New inlined routine.* s-stposu.adb (Allocate_Any_Controlled): UseHeader_Size_With_Padding to calculate the propersize of the header.(Deallocate_Any_Controlled): UseHeader_Size_With_Padding to calculate the proper sizeof the header. (Header_Size_With_Padding): New routine.(Nearest_Multiple_Rounded_Up): Removed along with its uses.* s-stposu.ads (Header_Size_With_Padding): New routine.2011-11-21 Ed Schonberg <schonberg@adacore.com>* aspects.adb: Aspect specifications are allowed on renamingdeclarations* par-ch6.adb (P_Subprogram): Parse aspect specifications in asubprogram renaming declaration2011-11-21 Tristan Gingold <gingold@adacore.com>* env.c: Remove unused declaration.2011-11-21 Pascal Obry <obry@adacore.com>* s-os_lib.ads: Minor style fix.2011-11-21 Pascal Obry <obry@adacore.com>* adaint.c (__gnat_dup2): When fd are stdout, stdin or stderr andidentical, do nothing on Windows XP.2011-11-21 Yannick Moy <moy@adacore.com>* sem_ch3.adb (Constrain_Index, Process_Range_Expr_In_Decl):Use Full_Expander_Active instead of Expander_Active to controlthe forced evaluation of expressions for the sake of generatingchecks.2011-11-21 Thomas Quinot <quinot@adacore.com>* init.c: On FreeBSD, stack checking failures may raise SIGBUS.2011-11-21 Tristan Gingold <gingold@adacore.com>* sysdep.c (mode_read_text, mode_write_text, mode_append_text,mode_read_binary, mode_write_binary, mode_append_binary,mode_read_text_plus, mode_write_text_plus, mode_append_text_plus,mode_read_binary_plus, mode_write_binary_plus,mode_append_binary_plus): Remove unused declarations.2011-11-21 Yannick Moy <moy@adacore.com>* gnat_rm.texi: Minor rewording.2011-11-21 Hristian Kirtchev <kirtchev@adacore.com>* exp_imgv.adb (Expand_Width_Attribute): Emitan error message rather than a warning when pragma Discard_Namesprevents the computation of 'Width. Do not emit an error throughthe use of RE_Null.2011-11-21 Javier Miranda <miranda@adacore.com>* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Addimplicit type conversion when the type of the allocator is aninterface. Done to force generation of displacement of the "this"pointer when required.2011-11-21 Ed Schonberg <schonberg@adacore.com>* sinfo.ads, sinfo.adb: Corresponding_Spec applies to expressionfunctions, and is set when the expression is a completion of aprevious declaration.* sem_ch6.adb (Analyze_Expression_Function): To determine properlywhether an expression function completes a previous declaration,use Find_Corresponding_Spec, as when analyzing a subprogram body.2011-11-21 Steve Baird <baird@adacore.com>* sem_util.adb (Deepest_Type_Access_Level): Improve comment.(Type_Access_Level): Improve comment.2011-11-21 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/Makefile.in (INCLUDES_FOR_SUBDIR): Add $(fsrcdir) bymeans of -iquote unconditionally.2011-11-21 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, sem_util.adb, sem_res.adb, sem_attr.adb: Minorreformatting.2011-11-21 Arnaud Charlet <charlet@adacore.com>* s-taprop-posix.adb (Create_Task): Use Unrestricted_Accessto deal with fact that we properly detect the error if Accessis used.2011-11-21 Steve Baird <baird@adacore.com>* sem_util.ads: Update comment describing functionDeepest_Access_Level.* sem_util.adb (Deepest_Type_Access_Level): Return Int'Last for ageneric formal type.(Type_Access_Level): Return library levelfor a generic formal type.* sem_attr.adb (Resolve_Attribute): Replace two Type_Access_Levelcalls with calls to Deepest_Type_Access_Level.* sem_ch3.adb (Analyze_Component_Declaration): replace aType_Access_Level call with a call to Deepest_Type_Access_Level.* sem_res.adb (Resolve_Allocator.Check_Allocator_Discrim_Accessibility):Replace three Type_Access_Level calls with calls toDeepest_Type_Access_Level.(Resolve_Allocator): Replace a Type_Access_Level call with a call toDeepest_Type_Access_Level.(Valid_Conversion.Valid_Array_Conversion): Replace aType_Access_Level call with a call to Deepest_Type_Access_Level.2011-11-21 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, s-taprop-vms.adb, opt.ads: Minor reformatting.2011-11-21 Robert Dewar <dewar@adacore.com>* sinput.ads: Minor comment fix.2011-11-21 Robert Dewar <dewar@adacore.com>* exp_attr.adb (Expand_N_Attribute_Reference, case First_Bit,Last_Bit, Position): Handle 2005 case.2011-11-21 Robert Dewar <dewar@adacore.com>* s-atocou-builtin.adb (Decrement): Use Unrestricted_Accessto deal with fact that we properly detect the error if Accessis used.(Increment): Same fix.* s-taprop-linux.adb (Create_Task): Use Unrestricted_Accessto deal with fact that we properly detect the error if Accessis used.* sem_util.adb (Is_Volatile_Object): Properly record that A.B isvolatile if the B component is volatile. This affects the checkfor passing such a by reference volatile actual to a non-volatileformal (which should be illegal)2011-11-21 Robert Dewar <dewar@adacore.com>* freeze.adb (Freeze_Enumeration_Type): Make sure to set bothsize and alignment for foreign convention enumeration types.* layout.adb (Set_Elem_Alignment): Redo setting of alignmentwhen size is set.2011-11-21 Yannick Moy <moy@adacore.com>* checks.adb (Apply_Access_Check, Apply_Arithmetic_Overflow_Check,Apply_Discriminant_Check, Apply_Divide_Check,Apply_Selected_Length_Checks, Apply_Selected_Range_Checks,Build_Discriminant_Checks, Insert_Range_Checks, Selected_Length_Checks,Selected_Range_Checks): Replace reference to Expander_Activewith reference to Full_Expander_Active, so that expansion ofchecks is not performed in Alfa mode2011-11-21 Tristan Gingold <gingold@adacore.com>* s-taprop-vms.adb (Create_Task): Use Unrestricted_Access to deal withfact that we properly detect the error if Access is used.2011-11-21 Hristian Kirtchev <kirtchev@adacore.com>* par-ch4.adb (P_Quantified_Expression): Add an Ada 2012 check.2011-11-21 Hristian Kirtchev <kirtchev@adacore.com>* exp_imgv.adb: Add with and use clause for Errout.(Expand_Width_Attribute): Emit a warning when inconfigurable run-time mode to provide a better diagnostic message.2011-11-21 Hristian Kirtchev <kirtchev@adacore.com>* s-finmas.adb (Finalize): Add comment concerning double finalization.2011-11-21 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (Access_Definition): If the access definitionis itself the return type of an access to function definitionwhich is ultimately the return type of an access to subprogramdeclaration, its scope is the enclosing scope of the ultimateaccess to subprogram.2011-11-21 Steve Baird <baird@adacore.com>* sem_res.adb (Valid_Conversion): If a conversion was legalin the body of a generic, then the corresponding conversion islegal in the expanded body of an instance of the generic.2011-11-21 Robert Dewar <dewar@adacore.com>* sem_ch3.adb: Minor reformatting.2011-11-21 Robert Dewar <dewar@adacore.com>* s-utf_32.adb (Is_UTF_32_Line_Terminator): Recognize NEL asline terminator.* sinput.ads: Add section on Handling of Source Line Terminators.* types.ads (Line_Terminator): Adjust comments.2011-11-21 Robert Dewar <dewar@adacore.com>* frontend.adb (Frontend): Capture restrictions from config files* lib-load.adb (Load_Unit): Save/set/restore restriction pragmainformation* lib-xref.adb (Generate_Reference): Fix handling of obsolescentreferences. This was noticed during debugging, but it is notknown if it causes real bugs.* restrict.ads, restrict.adb: New routines to save/set/restorenon-partition-wide restrictions.* s-rident.ads: Comment changes for new handling ofNo_Elaboration_Code* sem.adb (Sem): Save/Set/Restore non-partition-wide restrictions* sem_ch10.adb (Analyze_Compilation_Unit): Remove incompleteattempt to save/restore non-partition-wide restrictions (nowthis work is all done in Sem).* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):Special handling for restriction No_Elaboration_Code.2011-11-21 Robert Dewar <dewar@adacore.com>* gnat_ugn.texi: Document new handling of restrictions pragmas.2011-11-21 Pascal Obry <obry@adacore.com>* s-taprop-linux.adb (Initialize_Lock): Do not allocate a condattribute as not needed.2011-11-21 Robert Dewar <dewar@adacore.com>* sem_prag.adb: Minor reformatting.2011-11-21 Pascal Obry <obry@adacore.com>* gnat_rm.texi: Document restriction for stdcall convention ondispatching calls.2011-11-21 Pascal Obry <obry@adacore.com>* sem_prag.adb (Process_Convention): A dispatching call cannothave a stdcall calling convention.2011-11-21 Pascal Obry <obry@adacore.com>* s-taprop-linux.adb (Initialize_Lock): Do not allocate amutex attribute as not needed.(Initialize_TCB): Likewise.(Initialize): Likewise.2011-11-21 Robert Dewar <dewar@adacore.com>* sem_ch6.adb (Is_Public_Subprogram_For): New procedure(Process_PPCs): Invariants only apply to public subprograms.2011-11-21 Robert Dewar <dewar@adacore.com>* sem_util.adb, sem_util.ads, sem_attr.adb, restrict.adb,restrict.ads: Fix for No_Implicit_Aliasing in the renames case.2011-11-21 Robert Dewar <dewar@adacore.com>* a-finali.ads: Use pragma Pure_12 for this unit* aspects.adb: Add aspect Pure_12* aspects.ads: Add aspect Pure_12* opt.ads: Add note on Pure_12* par-prag.adb: Add dummy entry for Pure_12* sem_prag.adb: Implement Pure_12 pragma* snames.ads-tmpl: Add Entry for Pure_122011-11-21 Sergey Rybin <rybin@adacore.com frybin>* vms_data.ads: Add qualifiers for new gnatpp options'--call_threshold' and '--par_threshold".* gnat_ugn.texi: Add description for new gnatpp options'--call_threshold' and '--par_threshold".2011-11-21 Robert Dewar <dewar@adacore.com>* lib.ads: Minor reformatting.2011-11-21 Robert Dewar <dewar@adacore.com>* lib-load.ads: Add comment.2011-11-21 Gary Dismukes <dismukes@adacore.com>* sem_elab.adb: Minor reformatting2011-11-21 Robert Dewar <dewar@adacore.com>* exp_ch6.adb: Minor reformatting.2011-11-21 Ed Schonberg <schonberg@adacore.com>* sem_ch12.adb (Check_Formal_Package_Instance): If a formalsubprogram of the formal package is covered by an othersassociation with a box initialization, no check is neededagainst the actual in the instantiation of the formal package.2011-11-21 Robert Dewar <dewar@adacore.com>* sem_elab.adb (Check_Internal_Call_Continue): Suppress junkelab warning from within precondition/postcondition etc.2011-11-21 Ed Schonberg <schonberg@adacore.com>* exp_ch6.adb (Expand_Actuals): In Ada 2012, a function callwith out parameters may generate assignments to force constraintchecks. These checks must be properly placed in the code after thedeclaration or statement that contains the call.2011-11-21 Fedor Rybin <frybin@adacore.com>* gnat_ugn.texi: Adding info on current gnattest limitations ansupport of -X option.2011-11-21 Robert Dewar <dewar@adacore.com>* a-cfdlli.adb, a-cbdlli.adb: Minor reformatting.2011-11-20 Robert Dewar <dewar@adacore.com>* exp_ch6.adb, exp_util.adb: Minor reformatting2011-11-20 Eric Botcazou <ebotcazou@adacore.com>* sinfo.ads (Reference): Document that it is OK to setIs_Known_Non_Null on a temporary initialized to a N_Referencenode.2011-11-20 Matthew Heaney <heaney@adacore.com>* a-cbdlli.adb, a-cfdlli.adb (Move): Set Last component to 0for Source list.2011-11-20 Eric Botcazou <ebotcazou@adacore.com>* exp_ch6.adb (Make_Build_In_Place_Call_In_Assignment):Declare NEW_EXPR local variable and attach thetemporary to it. Set Is_Known_Non_Null on the temporary.(Make_Build_In_Place_Call_In_Object_Declaration): Likewise.* exp_util.adb (Remove_Side_Effects): Set Is_Known_Non_Null onthe temporary created to hold the 'Reference of the expression,if any.* checks.adb (Install_Null_Excluding_Check): Bail out for theGet_Current_Excep.all.all idiom generated by the expander.2011-11-20 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (struct language_function): Add GNAT_RET.(f_gnat_ret): New macro.(struct nrv_data): Add GNAT_RET.(finalize_nrv_unc_r): New helper function.(finalize_nrv): Add GNAT_RET parameter. Copy it into DATA. If thefunction returns unconstrained, use finalize_nrv_unc_r as callback.(return_value_ok_for_nrv_p): Test the alignment of RET_OBJ only ifRET_OBJ is non-null.(Subprogram_Body_to_gnu): Pass GNAT_RET to finalize_nrv.(gnat_to_gnu) <N_Return_Statement>: In the return-unconstrained case,if optimization is enabled, record candidates for the Named ReturnValue optimization.2011-11-20 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (Subprogram_Body_to_gnu): Add comment.(gnat_to_gnu) <N_Return_Statement>: Add 'else' to avoid doing a uselesstest. Tweak default case.<N_Goto_Statement>: Use better formatting.* gcc-interface/utils2.c (maybe_wrap_malloc): Use INIT_EXPR instead ofMODIFY_EXPR to initialize the storage.(build_allocator): Likewise.2011-11-20 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Adjustcall to components_to_record.(components_to_record): Add FIRST_FREE_POS parameter. For the variantpart, reuse enclosing union even if there is a representation clauseon the Unchecked_Union. If there is a variant part, compute the newfirst free position, if any. Adjust call to self. Use a single fielddirectly only if it hasn't got a representation clause or is placed atoffset zero. Create the variant part at offset 0 if all the fieldsdown to this level have a rep clause. Do not chain the variant partimmediately and adjust downstream.Do not test ALL_REP before moving the fields without rep clause to theprevious level. Call create_rep_part to create the REP part and forcea minimum size on it if necessary. Do not chain it immediately.Create a fake REP part if there are fields without rep clause that needto be laid out starting from FIRST_FREE_POS.At the end, chain the REP part and then the variant part.(create_rep_part): New function.(get_rep_part): Minor tweak.* gcc-interface/utils.c (tree_code_for_record_type): Minor tweak.2011-11-18 Iain Sandoe <iains@gcc.gnu.org>PR target/50678* init.c (__gnat_error_handler) [Darwin]: Move workaround to thebug filed as radar #10302855 from __gnat_error_handler to...(__gnat_adjust_context_for_raise) [Darwin]: ...here. New function.(HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE) [Darwin]: Define.2011-11-18 Tristan Gingold <gingold@adacore.com>Iain Sandoe <iains@gcc.gnu.org>PR target/49992* mlib-tgt-specific-darwin.adb (Archive_Indexer_Options): Remove.* gcc-interface/Makefile.in (darwin): Remove ranlib special-casing.2011-11-12 Iain Sandoe <iains@gcc.gnu.org>* gcc-interface/Makefile.in (stamp-gnatlib-$(RTSDIR)): Don't links-oscons.ads.(OSCONS_CPP, OSCONS_EXTRACT): New.(./bldtools/oscons/xoscons): New target.($(RTSDIR)/s-oscons.ads): Likewise.(gnatlib): Depend on $(RTSDIR)/s-oscons.ads.* gcc-interface/Make-lang.in (ada/s-oscons.ads) Remove as dependency.* Make-generated.in: Remove machinery to generate xoscons andada/s-oscons.ads.2011-11-10 Eric Botcazou <ebotcazou@adacore.com>* fe.h (Serious_Errors_Detected): New macro.* gcc-interface/gigi.h (build_atomic_load): Declare.(build_atomic_store): Likewise.* gcc-interface/trans.c (atomic_sync_required_p): New predicate.(call_to_gnu): Add ATOMIC_SYNC parameter. Use local variable.Build an atomic load for an In or In Out parameter if needed.Build an atomic store for the assignment of an Out parameter if needed.Build an atomic store to the target if ATOMIC_SYNC is true.(present_in_lhs_or_actual_p): New predicate.(gnat_to_gnu) <N_Identifier>: Build an atomic load if needed.<N_Explicit_Dereference>: Likewise.<N_Indexed_Component>: Likewise.<N_Selected_Component>: Likewise.<N_Assignment_Statement>: Adjust call to call_to_gnu.Build an atomic store to the LHS if needed.<N_Function_Call>: Adjust call to call_to_gnu.* gcc-interface/utils2.c: Include toplev.h.(resolve_atomic_size): New static function.(build_atomic_load): New function.(build_atomic_store): Likewise.* gcc-interface/Make-lang.in (ada/utils2.o): Add toplev.h.2011-11-07 Olivier Hainque <hainque@adacore.com>* sigtramp-ppcvxw.c: Add general comments.(CFI_COMMON_REGS): Remove rule for r1, as in other unwinders. Addrules for r2 to r13, plus CTR and XER.(CFA_REG): New, register number used to hold the local CFA.(CFI_DEF_CFA, SIGTRAMP_BODY): Use it.Make that 15, not 14, with documentation.(TCR): Undef before definition, preventing conflict with reg number inVxWorks headers.2011-11-07 Robert Dewar <dewar@adacore.com>* exp_util.ads, exp_alfa.adb, a-cohama.adb, a-cohama.ads, sem_ch4.adb,aspects.ads, exp_ch8.adb, exp_ch8.ads, atree.ads: Minor reformatting.* gcc-interface/Make-lang.in: Update dependencies.2011-11-07 Ed Schonberg <schonberg@adacore.com>* exp_ch6.adb: A tagged type is a legal actual for an aliasedformal.2011-11-07 Pascal Obry <obry@adacore.com>* g-socket.adb, g-socket.ads: Minor reformatting.2011-11-07 Robert Dewar <dewar@adacore.com>* sem_res.adb (Resolve_Actuals): Minor error message improvement.2011-11-07 Robert Dewar <dewar@adacore.com>* gnat_ugn.texi: Add discussion of default mode handling ofsource representation with no -gnatW option given, in particularnoting that NEL (next line) is not recognized in this context.2011-11-07 Yannick Moy <moy@adacore.com>* sem_util.adb (Note_Possible_Modification): In Alfa mode,generate a reference for a modification even when the modificationdoes not come from source.2011-11-07 Ed Schonberg <schonberg@adacore.com>* exp_ch5.adb (Expand_Iterator_Loop): For the "of" iterator form,use the indexing attributes rather than the Element function,to obtain variable references.* sem_ch4.adb (Try_Container_Indexing): Code cleanup. UseFind_Aspect rather than iterating over representationitems. Improve error message.* a-cohama.adb, a-cohama.ads Update to latest RM, with two versionsof Reference functions.2011-11-07 Yannick Moy <moy@adacore.com>* sem_util.adb (Unique_Entity): For a parameter on a subprogrambody that has a corresponding parameter on the subprogramdeclaration, define the unique entity as being the declarationone.2011-11-07 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (Analyze_Return_Type): In Ada 2012 mode, if thereturn type of a function is the class-wide type of an incompletetype T, T can be a Taft-amendment type and does not have to becompleted in the current private part.2011-11-07 Ed Schonberg <schonberg@adacore.com>* aspects.ads (Inherited_Aspect): Map that indicates type aspectsthat are inherited by default, and apply to the class-wide typeas well.* aspects.adb (Find_Aspect): If the entity is class-wide and theaspect is inherited, use the aspect of the specific type.2011-11-07 Hristian Kirtchev <kirtchev@adacore.com>* exp_alfa.adb: Remove with and use clause forExp_Ch8. Add with and use clause for Exp_Util.Remove local constant Disable_Processing_Of_Renamings.(Expand_Alfa_N_Object_Renaming_Declaration): The expansion ofobject renamings has been reenabled.(Expand_Possible_Renaming):The expansion of identifier and expanded names has beenreenabled. Perform the substitutions only for entities thatdenote an object.* exp_ch8.ads, exp_ch8.adb (Evaluate_Name): Moved to Exp_Util.* exp_util.adb (Evaluate_Name): Moved from Exp_Ch8.(Remove_Side_Effects): Alphabetize local variables. Add a guardto avoid the infinite expansion of an expression in Alfa mode. Addprocessing for function calls in Alfa mode.* exp_util.ads (Evaliate_Name): Moved from Exp_Ch8.2011-11-07 Ed Schonberg <schonberg@adacore.com>* freeze.adb (Freeze_Entity): If the entity is an access tosubprogram whose designated type is itself a subprogram type,its own return type must be decorated with size information.2011-11-04 Arnaud Charlet <charlet@adacore.com>* gcc-interface/Make-lang.in: Update dependencies.2011-11-04 Robert Dewar <dewar@adacore.com>* sprint.adb (Sprint_Node_Actual, case Qualified_Expression):Avoid junk semicolon after argument of machine code Asm operand.2011-11-04 Robert Dewar <dewar@adacore.com>* exp_ch11.adb (Generate_Push_Pop): Inhibit push/pop nodes inCodePeer mode or if restriction No_Exception_Handlers is present.* exp_ch6.adb (Expand_N_Subprogram_Body): (Inhibit push/popnodes in CodePeer mode or if restriction No_Exception_Handlersis present.2011-11-04 Robert Dewar <dewar@adacore.com>* s-tassta.adb, atree.ads, errout.adb, sinput.adb: Minor reformatting.2011-11-04 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (Analyze_Subprogram_Specification): Thespecification is legal if it is a function that returns anabstract type, if it comes from an attribute renaming of a streamattribute of an abstract type.2011-11-04 Gary Dismukes <dismukes@adacore.com>* exp_util.adb (Is_Possibly_Unaligned_Object): In case of indexedcomponents, check whether recursively check whether the prefixdenotes an unaligned object.2011-11-04 Ed Schonberg <schonberg@adacore.com>* sem_prag.adb (Analyze_Pragma, case Debug): The argument ofthe pragma is legal if it is an expanded name that denotes aprocedure that be can called without parameters.2011-11-04 Eric Botcazou <ebotcazou@adacore.com>* gnat_ugn.texi (Performance Considerations) <Vectorizationof loops>: New sub-section. <Other Optimization Switches>:Minor tweak.2011-11-04 Robert Dewar <dewar@adacore.com>* gnat_rm.texi: Minor reformatting.2011-11-04 Matthew Heaney <heaney@adacore.com>* a-convec.adb, a-coinve.adb, a-cobove.adb (Merge): Raise PEwhen Target and Source denote same non-empty object* a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Merge): Ditto2011-11-04 Robert Dewar <dewar@adacore.com>* exp_attr.adb: Minor reformatting.2011-11-04 Ed Schonberg <schonberg@adacore.com>* exp_ch5.adb (Expand_Assign_Record): Do not generate adiscriminant assignment within an initialization proc if therecord is an unchecked union, as it can only come from theinitialization of an unchecked union component.2011-11-04 Robert Dewar <dewar@adacore.com>* gnat_ugn.texi: Minor reformatting.2011-11-04 Robert Dewar <dewar@adacore.com>* par-labl.adb (Rewrite_As_Loop): Generate info msg rather thanwarning message.2011-11-04 Robert Dewar <dewar@adacore.com>* exp_ch4.adb: Minor code reorganization (remove junk obsoletevar Save_Space).2011-11-04 Hristian Kirtchev <kirtchev@adacore.com>* exp_alfa.adb: Add local constantDisable_Processing_Of_Renamings;(Expand_Alfa_N_Object_Renaming_Declaration): Disablethe name evaluation of object renamings for now.(Expand_Potential_Renaming): Do not perform the substitutionfor now.* exp_util.adb (Remove_Side_Effects): Remove processing forfunctions with side effects in Alfa mode.2011-11-04 Gary Dismukes <dismukes@adacore.com>* bindgen.adb (Gen_Elab_Calls): In the caseof the AAMP target, set elaboration entities to 1 rather thanincrementing.2011-11-04 Ed Schonberg <schonberg@adacore.com>* sem_ch10.adb (Install_Limited_With_Unit): To establish theproper entities on the ancestors of a child unit that appearin a limited_with clause, follow the unit links because theunits are not analyzed and scope information is incomplete.2011-11-04 Eric Botcazou <ebotcazou@adacore.com>* exp_ch4.adb (Expand_N_Selected_Component): Refine codesetting the Atomic_Sync_Required flag to detect one more case.* exp_util.adb (Activate_Atomic_Synchronization): Refine codesetting the Atomic_Sync_Required flag to exclude more cases,depending on the parent of the node to be examined.2011-11-04 Bob Duff <duff@adacore.com>* g-excact.adb: Minor: use named notation.2011-11-04 Ed Schonberg <schonberg@adacore.com>* sem_ch5.adb: Improve error messages for illegal iterators.2011-11-04 Hristian Kirtchev <kirtchev@adacore.com>* exp_alfa.adb: Add with and use clauses for Exp_Ch8 andSem_Util.(Expand_Alfa): Alphabetize cases on first choice. Addprocessing for object renaming declarations, identifiers andexpanded names.(Expand_Alfa_N_In): Remove useless return.(Expand_Alfa_N_Object_Renaming_Declaration): New routine.(Expand_Potential_Renaming): New routine.* exp_ch8.adb (Evaluate_Name): Moved to the top level.(Expand_N_Object_Declaration): Alphabetize local variables. MoveEvaluate_Name out to the top level.* exp_ch8.ads (Evaluate_Name): Moved from body to package spec.* exp_util.adb (Remove_Side_Effects): Add processing forfunctions with side effects in Alfa mode.2011-11-04 Hristian Kirtchev <kirtchev@adacore.com>* gnat_rm.texi: Add entries forrestrictions No_Relative_Delay, No_Requeue_Statements andNo_Stream_Optimizations.2011-11-04 Ed Schonberg <schonberg@adacore.com>* sem_ch4.adb: Set type of entity in prefixed call, forcompleteness in a generic context.2011-11-04 Yannick Moy <moy@adacore.com>* sem_prag.adb: Minor refactoring (renaming of a parameter).2011-11-04 Robert Dewar <dewar@adacore.com>* atree.ads: Minor reformatting.2011-11-04 Robert Dewar <dewar@adacore.com>* checks.adb (Atomic_Synchronization_Disabled): Check -gnatd.dand -gnatd.e here* exp_ch2.adb (Expand_Entity_Reference): UseActivate_Atomic_Synchronization* exp_ch4.adb (Expand_N_Explicit_Dereference): UseActivate_Atomic_Synchronization (Expand_N_Indexed_Compoonent):Activate_Atomic_Synchronization (Expand_N_Selected_Component):Use Activate_Atomic_Synchronization* exp_util.ads, exp_util.adb (Activate_Atomic_Synchronization): Newprocedure.* sinfo.ads, sinfo.adb (Atomic_Sync_Required): Can now apply toN_Selected_Component node2011-11-04 Robert Dewar <dewar@adacore.com>* sem_prag.adb, atree.ads, prj-env.adb, prj-env.ads: Minor reformatting.2011-11-04 Yannick Moy <moy@adacore.com>* atree.adb, atree.ads (Set_Original_Node): New set procedure.* sem_ch13.adb (Analyze_Aspect_Specifications/Pre_Post_Aspects):In ASIS mode, no splitting of aspects between conjuncts.(Analyze_Aspect_Specifications/Aspect_Test_Case): Make pragmaexpressions refer to the original aspect expressions throughthe Original_Node link. This is used in semantic analysis forASIS mode, so that the original expression also gets analyzed.* sem_prag.adb (Preanalyze_TC_Args,Check_Precondition_Postcondition,Analyze_Pragma/Pragma_Test_Case): In ASIS mode, for a pragmagenerated from a source aspect, also analyze the original aspectexpression.(Check_Expr_Is_Static_Expression): New proceduresimilar to existing procedure Check_Arg_Is_Static_Expression,except called on expression inside pragma.2011-11-04 Tristan Gingold <gingold@adacore.com>* prj-env.adb, prj-env.ads (Find_Name_In_Path): New function, fromFind_Project.Try_Path_Name.(Find_Project): Use Find_Name_In_Path to implement Try_Path_Name.2011-11-04 Eric Botcazou <ebotcazou@adacore.com>* s-atocou.ads (Atomic_Counter): Remove redundant pragma Volatile.2011-11-04 Pascal Obry <obry@adacore.com>* projects.texi: Add short description for qualifiers aggregateand aggregate library.2011-11-04 Matthew Heaney <heaney@adacore.com>* Makefile.rtl, impunit.adb: Added a-cogeso.ad[sb]* a-cgaaso.adb: Replaced implementation with instantiationof Generic_Sort.* a-cogeso.ad[sb] This is the new Ada 2012 unitAda.Containers.Generic_Sort2011-11-04 Robert Dewar <dewar@adacore.com>* exp_ch2.adb (Expand_Entity_Reference): Do not setAtomic_Sync_Required for the case of a prefix of an attribute.* exp_ch4.adb (Expand_N_Explicit_Dereference): May requireatomic synchronization(Expand_N_Indexed_Component): Ditto.(Expand_B_Selected_Component): Ditto.* sem_prag.adb (Process_Suppress_Unsuppress):Disable/Enable_Atomic_Synchronization can now occur for arraytypes with pragma Atomic_Components.* sinfo.ads, sinfo.adb (Atomic_Sync_Required): Can now occur onN_Explicit_Dereference nodes and on N_Indexed_Component nodes.2011-11-04 Gary Dismukes <dismukes@adacore.com>* gnat_ugn.texi: Editorial corrections for gnattest section.2011-11-04 Robert Dewar <dewar@adacore.com>* sem_prag.adb: Minor reformatting.* gnat_rm.texi: Update documentation for pragma Warnings (Off,"***") usage.* exp_ch2.adb (Expand_Entity_Reference): Only setAtomic_Sync_Required on entities that are variables. Doesn'tmake any sense on anything else.2011-11-04 Robert Dewar <dewar@adacore.com>* exp_ch2.adb (Expand_Entity_Reference): Extend handling ofatomic sync to type case.* sem_prag.adb (Process_Suppress_Unsuppress): Atomic Sync canapply to types.2011-11-04 Robert Dewar <dewar@adacore.com>* sem_warn.adb (Warn_On_Useless_Assignment): More accurate testfor call vs assign.* gcc-interface/Make-lang.in: Update dependencies.2011-11-04 Robert Dewar <dewar@adacore.com>* sem_prag.adb: Detect more cases of Long_Float inconsistencies atcompile time.2011-11-04 Matthew Heaney <heaney@adacore.com>* Makefile.rtl, impunit.adb: Added a-sfecin.ads,* a-sfhcin.ads, a-sflcin.ads, a-sbecin.ad[sb], a-sbhcin.ad[sb],a-sblcin.ad[sb], a-suecin.ad[sb], a-suhcin.ad[sb], a-sulcin.ad[sb]* a-sfecin.ads, a-sfhcin.ads, a-sflcin.ads, a-sbecin.ad[sb],a-sbhcin.ad[sb], a-sblcin.ad[sb], a-suecin.ad[sb], a-suhcin.ad[sb],a-sulcin.ad[sb]: New files.2011-11-04 Geert Bosch <bosch@adacore.com>* i-forbla-unimplemented.ads, s-gecola.adb, s-gecola.ads,s-gerebl.adb, s-gerebl.ads, i-forbla.adb, i-forbla.ads,i-forlap.ads, i-forbla-darwin.adb, s-gecobl.adb, s-gecobl.ads,s-gerela.adb, s-gerela.ads: Remove partial interface to BLAS/LAPACK.* gcc-interface/Makefile.in: Remove libgnala and related objects.2011-11-04 Matthew Heaney <heaney@adacore.com>* a-cdlili.ad[sb], a-cidlli.ad[sb], a-coorse.ad[sb], a-ciorse.ad[sb],a-coorma.ad[sb], a-ciorma.ad[sb], a-coormu.ad[sb], a-ciormu.ad[sb],a-cohama.ad[sb], a-cihama.ad[sb], a-cohase.ad[sb], a-cihase.ad[sb],a-convec.ad[sb], a-coinve.ad[sb] (Assign, Copy): New operationsadded to package.2011-11-04 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Do not assertthat the type of the parameters isn't dummy in type_annotate_only mode.2011-11-04 Robert Dewar <dewar@adacore.com>* sem_ch12.adb: Minor reformatting2011-11-04 Gary Dismukes <dismukes@adacore.com>* bindgen.adb (Gen_Elab_Calls): In the case of the AAMP target,initialize elaboration entities to zero when specs are processed.2011-10-28 Iain Sandoe <iains@gcc.gnu.org>Eric Botcazou <ebotcazou@adacore.com>PR target/50678* init.c (__gnat_error_handler) [Darwin]: Apply a work-around to thebug filed as radar #10302855 (inconsistent unwind data for sigtramp).2011-10-28 Eric Botcazou <ebotcazou@adacore.com>PR ada/50842* gcc-interface/Makefile.in (SYMDEPS): Delete.(LIBICONV): New variable.(LIBICONV_DEP): Likewise.(LIBS): Add $(LIBICONV).(LIBDEPS): Add $(LIBICONV_DEP).(EXTRA_GNATTOOLS_OBJS): Merge into...(TOOLS_LIBS): ...this. Add $(LIBICONV).2011-10-26 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (elaborate_expression_1): Add EXPR_PUBLIC_P localvariable. Always create the elaboration variable, if any, as constant.2011-10-26 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Try tomake a packable type for fields of union types as well.<is_type>: Use RECORD_OR_UNION_TYPE_P predicate.(gnat_to_gnu_component_type): Try to make a packable type for fieldsof union types as well.(make_packable_type): Use RECORD_OR_UNION_TYPE_P predicate.(maybe_pad_type): Try to make a packable type for fields of union typesas well.(gnat_to_gnu_field): Likewise.(is_variable_size): Use RECORD_OR_UNION_TYPE_P predicate.(set_rm_size): Likewise.(rm_size): Likewise.* gcc-interface/misc.c (gnat_type_max_size): Likewise.* gcc-interface/trans.c (add_decl_expr): Likewise.* gcc-interface/utils.c (finish_record_type): Likewise.* gcc-interface/utils2.c (build_simple_component_ref): Likewise.2011-10-26 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_field): Always check componentsdeclared as atomic. Move around conditionally executed code.2011-10-24 Robert Dewar <dewar@adacore.com>* sem.adb (Initialize): Fix bug that blew up if called a second time.2011-10-24 Robert Dewar <dewar@adacore.com>* tb-alvxw.c, tracebak.c, expect.c, initflt.c, tb-alvms.c,tb-ivms.c, tb-gcc.c: Update headers to GPL 3.2011-10-24 Robert Dewar <dewar@adacore.com>* sem_prag.adb (Analyze_Pragma, case Debug): Give proper pragmaname in error msg.2011-10-24 Hristian Kirtchev <kirtchev@adacore.com>* gnat_rm.texi: Add an entry for restriction No_Finalization.2011-10-24 Ed Schonberg <schonberg@adacore.com>* sem_ch12.adb (Insert_Freeze_Node_For_Instance): If thecurrent instance is within the one that contains the generic,the freeze node for the current one must appear in the currentdeclarative part. Ditto if the current instance is within anotherpackage instance. In both of these cases the freeze node of theprevious instance is not relevant.2011-10-24 Gary Dismukes <dismukes@adacore.com>* switch-m.adb (Normalize_Compiler_Switches): Add recognitionof AAMP-specific switches -univ and -aamp_target.2011-10-24 Robert Dewar <dewar@adacore.com>* a-tienau.adb (Put): Deal properly with limited line length.2011-10-24 Robert Dewar <dewar@adacore.com>* sem_warn.adb, sem_ch12.adb: Minor reformatting.2011-10-24 Tristan Gingold <gingold@adacore.com>* gcc-interface/Makefile.in: Use GNU ld switches to generate map fileson AIX.2011-10-24 Ed Schonberg <schonberg@adacore.com>* sem_ch12.adb (Earlier): make available globally. If bothnodes have the same sloc, the freeze node that does not comefrom source is the later one.(True_Parent): Make available globally.(Previous_Instance): Subsidiary ofInsert_Freeze_Node_For_Instance, to check whether the genericparent of the current instance is declared within a previousinstance in the same unit or declarative part, in which case thefreeze nodes of both instances must appear in order to preventelaboration problems in gigi.* sem_ch12.adb (Insert_Freeze_Node_For_Instance): A stub is afreeze point, and the freeze node of a preceding instantiationmust be inserted before it.2011-10-24 Robert Dewar <dewar@adacore.com>* checks.ads, checks.adb: Add handling of Synchronization_Check* debug.adb: Add doc for -gnatd.d and -gnatd.e (disable/enableatomic sync).* exp_ch2.adb (Expand_Entity_Reference): Set Atomic_Sync_Requiredflag Minor code reorganization.* opt.ads (Warn_On_Atomic_Synchronization): New switch.* par-prag.adb: Add dummy entries for pragmaDisable/Enable_Atomic_Synchronization.* sem_prag.adb (Process_Suppress_Unsuppress): Handlecase of Atomic_Synchronization specially (not suppressedby All_Checks, cannot be set from Source).(Pragma Disable/Enable_Atomic_Synchronization): Add processing.* sinfo.ads, sinfo.adb: Add Atomic_Sync_Required flag* snames.ads-tmpl: Add entry for Atomic_Synchronization Addentry for pragma Disable/Enable_Atomic_Synchronization* switch-c.adb: The -gnatp switch does not disableAtomic_Synchronization Add -gnatep switch to disableAtomic_Synchronization.* types.ads: Add entry for Synchronization_Check* usage.adb: Add line for -gnated switch* warnsw.adb: Settings for Warn_On_Atomic_Synchronization2011-10-24 Geert Bosch <bosch@adacore.com>* s-gearop.adb (Back_Substitute): Avoid overflow if matrix bounds startat Integer'First.2011-10-24 Robert Dewar <dewar@adacore.com>* sem_ch12.adb, s-gearop.adb: Minor reformatting.2011-10-24 Robert Dewar <dewar@adacore.com>* warnsw.adb: Add some missing warnings to Set_GNAT_Mode_Warnings.* warnsw.ads: Add comments to Set_GNAT_Mode_Warnings.2011-10-24 Emmanuel Briot <briot@adacore.com>* prj-proc.adb (Process_Expression_Variable_Decl): No specialhandling for Project_Path unless it is an attribute.2011-10-24 Javier Miranda <miranda@adacore.com>* sem_ch12.adb (Check_Hidden_Primitives): New subprogram.(Install_Hidden_Primitives): New subprogram.(Restore_Hidden_Primitives): New subprogram.(Analyze_Formal_Package_Declaration,Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):Invoke Check_Hidden_Primitives after every call toAnalyze_Associations, and invoke Restore_Hidden_Primitives torestore their visibility after processing the instantiation.(Instantiate_Package_Body): Install visible primitives beforeanalyzing the instantiation and uninstall them to restore theirvisibility when the instantiation has been analyzed.* sem_util.ads, sem_util.adb (Add_Suffix): New subprogram(Remove_Suffix): New subprogram* sem_ch3.adb (Derive_Subprogram): When handlinga derived subprogram for the instantiation of a formal derivedtagged type, inherit the dispatching attributes from the actualsubprogram (not from the parent type).2011-10-24 Vasiliy Fofanov <fofanov@adacore.com>* gnat_ugn.texi: Document explicit use of XDECGNAT library.2011-10-24 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch3.adb (Build_Assignment): Add local constant N_Loc andupdate its uses.(Build_Discriminant_Assignments): Add local variable D_Loc and updateits uses.(Build_Init_Statements): Add local variables Comp_Loc, Decl_Loc andVar_Loc and update their uses.(Build_Record_Init_Proc): Code reformatting.(Increment_Counter): Add formal parameter Loc.(Make_Counter): Add formal parameter Loc.2011-10-24 Eric Botcazou <ebotcazou@adacore.com>* sem_disp.adb (Covers_Some_Interface): Fix typo.2011-10-24 Matthew Heaney <heaney@adacore.com>* a-cuprqu.adb, a-cbprqu.adb (Dequeue_Only_High_Priority): Fix senseof predicate.2011-10-24 Yannick Moy <moy@adacore.com>* sem_ch13.adb (Analyze_Aspect_Specifications/Aspect_Test_Case):Translate arguments in positional notation into pragma argumentassociation arguments for the generated pragma.2011-10-24 Arnaud Charlet <charlet@adacore.com>* exp_ch5.adb: Fix minor typo.2011-10-24 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (Is_Visible_Component): Refine predicate forthe case of a component reference in an instance body, when theenclosing type is private.2011-10-24 Sergey Rybin <rybin@adacore.com frybin>* gnat_ugn.texi: For gnatelim, move the note about using the GNATdriver for getting the project support into gnatelim section.2011-10-24 Robert Dewar <dewar@adacore.com>* gnat_rm.texi: Minor correction to documentation on address clause.2011-10-24 Hristian Kirtchev <kirtchev@adacore.com>* s-finmas.adb (Attach): Synchronize and call the unprotected version.(Attach_Unprotected): New routine.(Delete_Finalize_Address): Removed.(Delete_Finalize_Address_Unprotected): New routine.(Detach): Synchronize and call the unprotected version.(Detach_Unprotected): Remove locking.(Finalize): Add various comment on synchronization. Lock the criticalregion and call the unprotected versions of routines.(Finalize_Address): Removed.(Finalize_Address_Unprotected): New routine.(Set_Finalize_Address): Synchronize and callthe unprotected version.(Set_Finalize_Address_Unprotected): New routine.(Set_Heterogeneous_Finalize_Address): Removed.(Set_Heterogeneous_Finalize_Address_Unprotected): New routine.(Set_Is_Heterogeneous): Add comment on synchronization andlocking.* s-finmas.ads: Flag Finalization_Started is no longer atomicbecause synchronization uses task locking / unlocking.(Attach): Add comment on usage.(Attach_Unprotected): New routine.(Delete_Finalize_Address): Renamed toDelete_Finalize_Address_Unprotected.(Detach): Add comment on usage.(Detach_Unprotected): New routine.(Finalize_Address): Renamed to Finalize_Address_Unprotected.(Set_Finalize_Address): Add comment on usage.(Set_Finalize_Address_Unprotected): New routine.(Set_Heterogeneous_Finalize_Address): Renamed toSet_Heterogeneous_Finalize_Address_Unprotected.* s-stposu.adb (Allocate_Any_Controlled): Add local variableAllocation_Locked. Add various comments on synchronization. Lockthe critical region and call the unprotected version ofroutines.(Deallocate_Any_Controlled): Add various comments onsynchronization. Lock the critical region and call the unprotectedversion of routines.2011-10-24 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (Set_Fixed_Range): The bounds of a fixed point typeare universal and must carry the corresponding type.* sem_eval.adb (Check_Non_Static_Context): If the type of theexpression is universal real, as may be the case for a fixed pointexpression with constant operands in the context of a conversion,there is nothing to check.* s-finmas.adb: Minor reformatting2011-10-23 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (create_concat_name): Add explicit cast.2011-10-20 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/Make-lang.in (GNATLIBFLAGS, GNATLIBCFLAGS, THREAD_KIND,TRACE): Reintroduce.(ada/tracebak.o, ada/targext.o, ada/cio.o, ada/init.o,ada/initialize.o, ada/raise.o): Reintroduce explicit compilation rules.2011-10-20 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (lhs_or_actual_p): New predicate.(unchecked_conversion_nop): Use it.(gnat_to_gnu): Likewise.2011-10-20 Eric Botcazou <ebotcazou@adacore.com>* back_end.adb (Call_Back_End): Pass the maximum logical line numberinstead of the maximum physical line number to gigi.* gcc-interface/trans.c (Sloc_to_locus): Cope with line zero.2011-10-16 Tom Tromey <tromey@redhat.com>Dodji Seketeli <dodji@redhat.com>* gcc-interface/trans.c (gigi, Sloc_to_locus): Adjust to use the newpublic ordinary map interface.2011-10-16 Tristan Gingold <gingold@adacore.com>* link.c (_AIX): Add support for GNU ld.2011-10-16 Fedor Rybin <frybin@adacore.com>* gnat_ugn.texi: Fixing gnattest example names in the doc.Adding explanation to additional tests usage.2011-10-16 Robert Dewar <dewar@adacore.com>* exp_ch6.adb, sem_ch6.adb: Minor reformatting.2011-10-16 Eric Botcazou <ebotcazou@adacore.com>* a-convec.adb: Fix minor inconsistencies.2011-10-16 Matthew Heaney <heaney@adacore.com>* a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (packageImplementation): Specify pragma Implementation_Defined.2011-10-15 Nicolas Roche <roche@adacore.com>* gcc-interface/lang-specs.h: Ensure -mrtp switch is passed when usingeither rtp-smp or ravenscar-cert-rtp runtimes.2011-10-15 Bob Duff <duff@adacore.com>* exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call):Do not create a pool formal on unless RE_Root_Storage_Pool_Ptris available.(Expand_N_Extended_Return_Statement): Do not create a renaming of thebuild-in-place pool parameter unless RE_Root_Storage_Pool_Ptr isavailable.(Make_Build_In_Place_Call_In_Allocator): Add the user-definedpool only if RE_Root_Storage_Pool_Ptr is available.(Make_Build_In_Place_Call_In_Object_Declaration): Do not add apool actual unless RE_Root_Storage_Pool_Ptr is available.* sem_ch6.adb (Create_Extra_Formals): Add build-in-place poolformal only if RE_Root_Storage_Pool_Ptr is available.2011-10-15 Matthew Heaney <heaney@adacore.com>* a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (Queuetype): Specify Priority aspect for protected type.2011-10-14 Ed Schonberg <schonberg@adacore.com>* exp_disp.adb (Check_Premature_Freezing): If an untagged typeis a generic actual, it is a subtype of a type that was frozenby the instantiation, and even if not marked frozen it does notaffect the construction of the dispatch table.2011-10-14 Robert Dewar <dewar@adacore.com>* make.adb, mlib-utl.adb, sem_util.adb, sem_ch4.adb: Minor codereformatting.* s-rident.ads: Add missing Compiler_Unit pragma.2011-10-14 Gary Dismukes <dismukes@adacore.com>* sem_res.adb: Minor reformatting.2011-10-14 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call):Code and comment reformatting. Use BIP_Task_Masterwhen creating a _master.(BIP_Formal_Suffix): Code reformatting. Correct the case forBIP_Task_Master.(Make_Build_In_Place_Call_In_Object_Declaration): UseBIP_Task_Master when creating a reference to the enclosingfunction's _master formal.(Move_Activation_Chain): Use BIP_Task_Master when creating a referenceto the _master.* exp_ch6.ads: Change BIP_Master to BIP_Task_Master.(Needs_BIP_Finalization_Master): Alphabetized.* sem_ch6.adb (Create_Extra_Formals): Update the usage ofBIP_Task_Master.2011-10-14 Ed Schonberg <schonberg@adacore.com>* par-ch6.adb (P_Return_Object_Declaration): In Ada 2012 mode,reject an aliased keyword on the object declaration of an extendedreturn statement. In older versions of the language indicatethat this is illegal in the standard.2011-10-14 Pascal Obry <obry@adacore.com>* sem_util.adb, sem_ch4.adb: Minor reformatting.2011-10-14 Ed Schonberg <schonberg@adacore.com>* sem_ch13.adb: Recognize properly procedure calls that aretransformed into code statements.2011-10-14 Vincent Celier <celier@adacore.com>* projects.texi: Minor fix in project example.2011-10-14 Ed Schonberg <schonberg@adacore.com>* sem_util.adb: Return objects are aliased if their type isimmutably limited as per AI05-0053.2011-10-14 Gary Dismukes <dismukes@adacore.com>* exp_ch4.adb (Expand_N_Op_And): Remove Short_Circuit_And_Orexpansion code (moved to sem_res) (Expand_N_Op_Or): RemoveShort_Circuit_And_Or expansion code (moved to sem_res).* sem_res.adb (Resolve_Logical_Op): Add code to rewrite Boolean"and" and "or" operators as short-circuit "and then" and "orelse", when pragma Short_Circuit_And_Or is active.2011-10-13 Robert Dewar <dewar@adacore.com>* sem_ch9.adb, sem_util.adb, sem_util.ads, exp_ch6.adb, sem_ch4.adb,sem_ch6.adb, exp_ch3.adb: Minor reformatting.2011-10-13 Arnaud Charlet <charlet@adacore.com>* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add a-ngcoar.o.2011-10-13 Jerome Guitton <guitton@adacore.com>* sysdep.c (__gnat_get_task_options): Re-enable VX_SPE_TASK on vThreads2011-10-13 Eric Botcazou <ebotcazou@adacore.com>* a-convec.ads (Cursor): Minor reformatting.* a-convec.adb (Next): Fix minor inconsistencies.(Previous): Likewise.2011-10-13 Ed Schonberg <schonberg@adacore.com>* sem_util.ads, sem_util.adb (Available_Full_View_Of_Component):New predicate to determine whether some operations on an arraytype are available when the full view of its component may differfrom the view of the point of the array declaration.* sem_ch4.adb (Find_Equality_Types): UseAvailable_Full_View_Of_Component.* sem_type.adb (Valid_Boolean_Arg, Valid_Comparison_Arg): Ditto2011-10-13 Ed Schonberg <schonberg@adacore.com>* sem_ch9.adb: Analyze aspects while discriminants of protectedtype are visible.2011-10-13 Geert Bosch <bosch@adacore.com>* Makefile.rtl (GNATRTL_TASKING_OBJECTS): Adda-nlcoar.o, a-nllcar.o, a-nucoar.o and s-gearop.o, as these nolonger depend on an external library.* gcc-interface/Makefile.in (GNATRTL_LINEARALGEBRA_OBJS): Removea-nlcoar.o, a-nllcar.o, a-nucoar.o and s-gearop.o.Update dependencies.* gcc-interface/Make-lang.in: Update dependencies.2011-10-13 Cyrille Comar <comar@adacore.com>* gnat_ugn.texi: Minor editing.2011-10-13 Vincent Celier <celier@adacore.com>* projects.texi: Add documentation on packages and attributesthat are inherited from a project being extended into theextended project.2011-10-13 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch3.adb (Build_Master): Rewritten.(Expand_N_Full_Type_Declaration): Reformat the declarativeregion. Update the call to Build_Master_Renaming.(Expand_Previous_Access_Type): Rewritten.* exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call):Add local constant Result_Subt and update related usage.(Expand_N_Extended_Return_Statement): Add local constantResult_Subt and update related usage.* exp_ch9.adb (Build_Activation_Chain): Rewritten to use thenew context detection mechanism.(Build_Class_Wide_Master):Use Insert_Action to add the renaming into the tree.(Build_Master_Entity): Rewritten to use the new context detectionmechanism.(Build_Master_Renaming): Add formal parameter Ins_Nodand related usage. Use Insert_Action to add the renaming into thetree.(Find_Enclosing_Context): New subsidiary routine. Ratherthan relying on enclosing scopes, this routine looks at thetree structure to figure out the proper context for a _masteror a _chain. This approach eliminates the issues with transientscopes which have not been converted into blocks.* exp_ch9.ads (Build_Master_Entity): Change parameter profileto better reflect the new usage. Update the related comment.(Build_Master_Renaming): Add formal parameter Ins_Nod. Updatethe comment on usage.* sem_ch3.adb (Access_Definition): Update the calls toBuild_Master_Entity and Build_Master_Renaming.* sem_ch6.adb (Create_Extra_Formals): Add local variableFull_Subt. Code reformatting.* sem_util.adb (Is_Iterator): Alphabetized.(Is_LHS): Alphabetized.(Is_Limited_Class_Wide_Type): New routine.* sem_util.ads (Is_Limited_Class_Wide_Type): New routine.2011-10-13 Geert Bosch <bosch@adacore.com>* a-ngrear.adb (Solve): Make generic and move toSystem.Generic_Array_Operations.* s-gearop.ads (Matrix_Vector_Solution, Matrix_Matrix_Solution):New generic solvers to compute a vector resp. matrix Y suchthat A * Y = X, approximately.* s-gearop.adb (Matrix_Vector_Solution, Matrix_Matrix_Solution):Implement using Forward_Eliminate and Back_Substitute* a-ngcoar.adb: Reimplement in pure Ada to remove dependencieson BLAS and LAPACK.* a-ngcoar.ads ("abs"): Fix return type to be real.2011-10-13 Eric Botcazou <ebotcazou@adacore.com>PR ada/50589* s-linux-alpha.ads: Do not "with" Interfaces.C.* s-linux-sparc.ads: Likewise.2011-10-13 Geert Bosch <bosch@adacore.com>* s-gearop.ads (Forward_Eliminate): Add "abs" formal functionreturning a Real.* s-gearop.adb (Forward_Eliminate): Remove local "abs" functionand use formal.* a-ngrear.adb (Forward_Eliminate): Adjust instantiation fornew profile.2011-10-13 Geert Bosch <bosch@adacore.com>* a-ngrear.adb, s-gearop.adb, s-gearop.ads (Sqrt): Make generic andmove to System.Generic_Array_Operations.2011-10-13 Geert Bosch <bosch@adacore.com>* a-ngrear.adb ("abs"): Adjust for modified L2_Norm generic* s-gearop.ads (L2_Norm): Change profile to be suitable forComplex_Vector* s-gearop.adb (L2_Norm): Reimplement using direct definition,not inner product2011-10-13 Robert Dewar <dewar@adacore.com>* exp_ch5.adb, sem_ch3.adb, impunit.adb, impunit.ads, sem_type.adb,prj-proc.adb, exp_ch9.adb, s-regpat.adb, sem_ch10.adb, sem_prag.adb,sem_ch12.adb, freeze.adb, sem_attr.adb, sem_attr.ads, gnatlink.adb,par-ch6.adb, exp_ch6.adb, sem_ch4.adb, sem_ch6.adb, sem_ch8.adb,par-util.adb, sem_ch13.adb, lib-xref.adb, g-trasym.adb, g-trasym.ads,exp_aggr.adb, s-taprop-posix.adb: Minor reformatting.2011-10-13 Geert Bosch <bosch@adacore.com>* s-gearop.adb: Minor comment additions.2011-10-13 Fedor Rybin <frybin@adacore.com>* gnat_ugn.texi: Add gnattest section.2011-10-13 Ed Schonberg <schonberg@adacore.com>* freeze.adb: Do not create body of renaming if declaration haserrors.2011-10-13 Olivier Hainque <hainque@adacore.com>* init.c (__gnat_error_handler - vxworks case): Restrict sigtramp callsfurther, to the ppc+kernel case only.2011-10-13 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch4.adb (Expand_N_Allocator): Comment reformatting.* exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call):Do not create a pool formal on .NET/JVM.(Expand_N_Extended_Return_Statement): Alphabetize localvariables. Do not create a renaming of the build-in-place poolparameter on .NET/JVM. (Make_Build_In_Place_Call_In_Allocator):Add the user-defined pool only on non-VM targets.(Make_Build_In_Place_Call_In_Object_Declaration): Alphabetizelocal variables. Do not add a pool actual on .NET/JVM.* sem_ch6.adb: Add with and use clause for Targparm.(Create_Extra_Formals): Add build-in-place pool formal only onnon-VM targets.* rtsfind.ads: Alphabetize entries.2011-10-13 Sergey Rybin <rybin@adacore.com>* gnat_ugn.texi: Minor correction.2011-10-13 Ed Schonberg <schonberg@adacore.com>* sem_ch8.adb: Minor error message improvement.2011-10-13 Robert Dewar <dewar@adacore.com>* a-cbprqu.adb, a-ciorma.adb, exp_ch3.adb: Minor reformatting.2011-10-13 Gary Dismukes <dismukes@adacore.com>* exp_ch5.adb (Expand_N_Loop_Statement): For the transformationof a for loop for an enumeration type with an enumeration repclause, which involves moving the original loop parameter intoa nested block, the loop parameter's entity must be removed fromthe entity list of the loop scope.2011-10-13 Bob Duff <duff@adacore.com>* exp_ch6.ads (BIP_Storage_Pool): New "extra implicit parameter"that gets passed in the same cases where BIP_Alloc_Form is passed(caller-unknown-size results). BIP_Storage_Pool is used whenBIP_Alloc_Form = User_Storage_Pool. In that case, a pointerto the user-defined storage pool is passed at the call site,and this pool is used in callee to allocate the result.* exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call): Newversion of Add_Alloc_Form_Actual_To_Build_In_Place_Call. Passesthe additional BIP_Storage_Pool actual.(Expand_N_Extended_Return_Statement): Allocate the functionresult using the user-defined storage pool, if BIP_Alloc_Form =User_Storage_Pool.* sem_ch6.adb: Add the "extra formal" for BIP_Storage_Pool.* exp_ch4.adb: Don't overwrite storage pool set byExpand_N_Extended_Return_Statement.* s-stopoo.ads, rtsfind.ads (Root_Storage_Pool_Ptr): New type,for use in build-in-place function calls within allocatorswhere the access type has a user-defined storage pool.2011-10-13 Sergey Rybin <rybin@adacore.com>* gnat_ugn.texi, vms_data.ads: Add an option to control enumerationliteral casing.2011-10-13 Nicolas Roche <roche@adacore.com>* gnatlink.adb: Ensure that -mrtp is passed when runtime name endswith 'rtp'.2011-10-13 Ed Schonberg <schonberg@adacore.com>* sem_prag.adb (Analyze_Pragma, case Unchecked_Union): Take intoaccount that an unchecked union type can be limited.2011-10-13 Olivier Hainque <hainque@adacore.com>* init.c (__gnat_error_handler) <VxWorks version>: Add comments onthe use of the signal trampoline for PPC in the sjlj case as well.Add legitimate casts, preventing compile time warnings on the(sighandler *) profile.2011-10-13 Yannick Moy <moy@adacore.com>* sem_aggr.adb (Resolve_Aggr_Expr): Always perform semantic analysisin Alfa mode.2011-10-13 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (OK_For_Limited_Init_In_05): Conditional and caseexpressions are legal limited return values if each one of theirdependent expressions are legal.2011-10-13 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (Analyze_Procedure_Call_Statement): In Ada 2012 mode,if the prefix of the call is a qualified expression, rewrite asa code statement.* sem_ch13.adb (Analyze_Code_Statement): In Ada 2012 mode, thecode statement is legal if it is a rewriting of a procedure call.2011-10-13 Ed Schonberg <schonberg@adacore.com>* exp_aggr.adb (Flatten): If a component association has a box,assume that aggregate is not static.(Safe_Aggregate): If a component association in a non-limitedaggregate has a box, assume that it cannot be expanded in place.2011-10-13 Vincent Celier <celier@adacore.com>* prj-conf.adb (Get_Or_Create_Configuration_File): CallProcess_Project_Tree_Phase_1 with Packages_To_Check.(Process_Project_And_Apply_Config): Ditto* prj-part.ads, prj-part.adb, prj-pars.ads, prj-pars.adb (Parse):Remove default for argument Packages_To_Check.* prj-proc.adb (Recursive_Process): New argumentPackages_To_Check.(Process): Ditto.(Process_Project_Tree_Phase_1): Ditto.(Recursive_Project.Process_Aggregated_Projects): CallPrj.Part.Parse and Process_Project_Tree_Phase_1 withPackages_To_Check.* prj-proc.ads (Process): New argument Packages_To_Check(Process_Project_Tree_Phase_1): Ditto2011-10-13 Arnaud Charlet <charlet@adacore.com>* gcc-interface/Makefile.in: Fix typo.2011-10-13 Ed Schonberg <schonberg@adacore.com>* sem_ch12.adb (Analyze_Formal_{Floating_Type,Signed_Integer_Type, Decimal_Fixed_Point_Type, Discrete_Type}):Use sloc of defining identifier of farmal type declaration,as sloc of generated internal entity, to prevent misplacedreferences in ali.2011-10-13 Ed Schonberg <schonberg@adacore.com>* sem_intr.adb (Check_Intrinsic_Operator): Check that typeis fully defined before checking that it is a numeric type.2011-10-13 Ed Schonberg <schonberg@adacore.com>* sem_aggr.adb (Resolve_Record_Aggregate): If a componentassociation for component X has a box, then X is covered in theaggregate even if there is not default value for X in the typedeclaration, and X has to be default-initialized.2011-10-13 Ed Schonberg <schonberg@adacore.com>* sem_attr.adb (Check_Enum_Image, Analyze_Attribute case 'Value): Markliterals as referenced only if reference is in current source unit.2011-10-13 Matthew Heaney <heaney@adacore.com>* a-csquin.ads (Enque, Dequeue): Mark interface operations as entries.2011-10-13 Olivier Hainque <hainque@adacore.com>* sigtramp.h: New file. Prototype and spec of the signaltrampoline to be called by an established handler to providedwarf call frame info before the real signal processing code.* sigtramp-ppcvxw.c: New file. Implementation of the signaltrampoline for ppc-vxworks.* init.c (vxworks section): Use it for ppc.2011-10-13 Thomas Quinot <quinot@adacore.com>* par-ch2.adb, par.adb, par-util.adb, par-ch3.adb(Check_Future_Identifier): New subprogram,factors duplicated code from Par.Ch2.P_Identifier andPar.Ch3.P_Defining_Identifier.2011-10-13 Thomas Quinot <quinot@adacore.com>* s-taprop-posix.adb (Initialize): Always raise Storage_Errorif we fail to initialize CV attributes or CV.2011-10-13 Thomas Quinot <quinot@adacore.com>* s-tasren.adb (Timed_Selective_Wait, caseAccept_Alternative_Selected): Use Defer_Abort_Nestable, sincewe know abortion is already deferred.2011-10-13 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch3.adb (Build_Class_Wide_Master): Moved to exp_ch9.(Build_Master_Renaming (function)): Removed.(Build_Master_Renaming (procedure)): Moved to exp_ch9.(Expand_Full_Type_Declaration): Alphabetizevariables. Reformatting of code and comments. Rewrite thesection on processing of anonymous access-to-task types inrecord components.* exp_ch3.ads (Build_Class_Wide_Master): Moved to exp_ch9.(Build_Master_Renaming): Moved to exp_ch9.* exp_ch9.adb (Build_Class_Wide_Master): Moved from exp_ch3.(Build_Master_Entity): Add formal parameterUse_Current. Reformatting of code and comments.(Build_Master_Renaming): Moved from exp_ch3.* exp_ch9.ads (Build_Class_Wide_Master): Moved fromexp_ch3. Update comment on usage.(Build_Master_Entity):Add formal parameter Use_Current. Update comment on usage.(Build_Master_Renaming): Moved from exp_ch3.* sem_ch3.adb (Access_Definition): Remove redundant code tocreate a _master and a renaming.2011-10-13 Ed Schonberg <schonberg@adacore.com>* lib-xref.adb: Do no emit reference to overridden operation,if it is internally generated.2011-10-13 Vincent Celier <celier@adacore.com>* bindgen.adb: Remove any processing related to g-trasym* Makefile.rtl: Add g-trasym.o to GNATRTL_NONTASKING_OBJS* mlib-prj.adb: Remove any processing related to g-trasym.2011-10-12 Eric Botcazou <ebotcazou@adacore.com>* sem_util.adb (Denotes_Same_Prefix): Fix fatal warning.* gcc-interface/Make-lang.in (WARN_ADAFLAGS): New.(ALL_ADAFLAGS): Include WARN_ADAFLAGS.(ADA_FLAGS_TO_PASS): Likewise.(COMMON_FLAGS_TO_PASS): New.(ADA_TOOLS_FLAGS_TO_PASS): Use COMMON_FLAGS_TO_PASS. In the regularnative case, also use FLAGS_TO_PASS and ADA_FLAGS_TO_PASS.(gnatlib): Use COMMON_FLAGS_TO_PASS.(ada.install-common): Likewise.(install-gnatlib): Likewise.(install-gnatlib-obj): Likewise.(gnattools): Use ADA_TOOLS_FLAGS_TO_PASS for gnattools1 as well.(gnat-cross): Delete.(gnatboot): Likewise.(gnatboot2): Likewise.(gnatboot3): Likewise.(gnatstage1): Likewise.(gnatstage2): Likewise.* gcc-interface/Makefile.in (SOME_ADAFLAGS): Likewise.(MOST_ADAFLAGS): Likewise.(LOOSE_CFLAGS): Likewise.(gnat-cross): Likewise.(GNATLIBFLAGS): Add -W -Wall.(GNATLIBCFLAGS_FOR_C): Likewise.* gcc-interface/lang.opt: Remove C-specific warnings. Add doc lines.* gcc-interface/misc.c (gnat_handle_option): Remove obsolete cases.2011-10-12 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (Attribute_to_gnu): Use remove_conversions.(push_range_check_info): Likewise.(gnat_to_gnu) <N_Code_Statement>: Likewise.* gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Likewise.(gnat_invariant_expr): Likewise.* gcc-interface/utils.c (compute_related_constant): Likewise.(max_size): Fix handling of SAVE_EXPR.(remove_conversions): Fix formatting.2011-10-12 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/ada-tree.h (DECL_LOOP_PARM_P): New flag.(DECL_INDUCTION_VAR): New macro.(SET_DECL_INDUCTION_VAR): Likewise.* gcc-interface/gigi.h (convert_to_index_type): Declare.(gnat_invariant_expr): Likewise.* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: If this is a loopparameter, set DECL_LOOP_PARM_P on it.* gcc-interface/misc.c (gnat_print_decl) <VAR_DECL>: If DECL_LOOP_PARM_Pis set, print DECL_INDUCTION_VAR instead of DECL_RENAMED_OBJECT.* gcc-interface/trans.c (gnu_loop_label_stack): Delete.(struct range_check_info_d): New type.(struct loop_info_d): Likewise.(gnu_loop_stack): New stack.(Identifier_to_gnu): Set TREE_READONLY flag on the first dereferencebuilt for a by-double-ref read-only parameter. If DECL_LOOP_PARM_Pis set, do not test DECL_RENAMED_OBJECT.(push_range_check_info): New function.(Loop_Statement_to_gnu): Push a new struct loop_info_d instead of justthe label. Reference the label and the iteration variable from it.Build the special induction variable in the unsigned version of thesize type, if it is larger than the base type. And attach it to theiteration variable if the latter isn't by-ref. In the iteration schemecase, initialize the invariant conditions in front of the loop ifdeemed profitable. Use gnu_loop_stack.(gnat_to_gnu) <N_Exit_Statement>: Use gnu_loop_stack.<N_Raise_Constraint_Error>: Always process the reason. In the rangecheck and related cases, and if loop unswitching is enabled, computeinvariant conditions and push this information onto the stack.Do not translate again the condition if it has been already translated.* gcc-interface/utils.c (record_global_renaming_pointer): Assert thatDECL_LOOP_PARM_P isn't set.(convert_to_index_type): New function.* gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Use it in orderto convert the index from the base index type to sizetype.(gnat_invariant_expr): New function.2011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>* gcc-interface/utils.c (def_builtin_1): Delete old interface withtwo parallel arrays to hold standard builtin declarations, andreplace it with a function based interface that can supportcreating builtins on the fly in the future.* gcc-interface/trans.c (Exception_Handler_to_gnu_zcx): Ditto.(gnat_to_gnu): Ditto.2011-10-07 Eric Botcazou <ebotcazou@adacore.com>PR lto/50492* gcc-interface/gigi.h (gnat_pushdecl): Adjust comment.* gcc-interface/utils.c (global_context): New variable.(gnat_pushdecl): Initialize it and set it as the DECL_CONTEXT of DECLsthat are either public external or at top level. Use "No" macro.(end_subprog_body): Call decl_function_context.(rest_of_subprog_body_compilation): Likewise.2011-10-07 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/gigi.h (gnat_useless_type_conversion): Declare.(rest_of_subprog_body_compilation): Likewise.* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: For renaming,test for useless conversions by means of gnat_useless_type_conversion.* gcc-interface/trans.c: Include bitmap.h and cgraph.h.(language_function): Add named_ret_val and other_ret_val.(f_named_ret_val): New macro.(f_other_ret_val): Likewise.(gigi): Call rest_of_subprog_body_compilation.(struct nrv_data): New structure.(is_nrv_p): New predicate.(prune_nrv_r): New helper function.(prune_nrv_in_block): New function.(finalize_nrv_r): New helper function.(finalize_nrv): New function.(return_value_ok_for_nrv_p): New predicate.(build_return_expr): If optimization is enabled, record candidates forthe Named Return Value optimization.(build_function_stub): Call rest_of_subprog_body_compilation.(Subprogram_Body_to_gnu): If optimization is enabled and there arecandidates, finalize the Named Return Value optimization.Call rest_of_subprog_body_compilation.(call_to_gnu): At the end, if a return value is needed, simplify theresult before wrapping it up in a COMPOUND_EXPR.* gcc-interface/utils.c (end_subprog_body): Split into...(rest_of_subprog_body_compilation): ...this. New function.(gnat_useless_type_conversion): Likewise.2011-10-06 Thomas Quinot <quinot@adacore.com>* einfo.ads, exp_attr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb,exp_ch9.adb, exp_ch9.ads, exp_strm.adb, exp_util.adb, freeze.adb,g-debpoo.ads, opt.ads, par-ch12.adb, par-ch2.adb, par-ch3.adb,par-ch5.adb, par-ch6.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,sem_ch10.adb, sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,sem_ch6.adb, sem_intr.adb, sem_res.ads, sem_type.adb, sem_util.adb,s-regpat.adb, s-tpopde-vms.ads: Minor reformatting.* s-osinte-freebsd.ads: Fix for tasking failures on FreeBSD.2011-10-06 Ed Schonberg <schonberg@adacore.com>* a-cihase.adb, a-ciorma.adb: Avoid accessibility checks in containerreferences.2011-10-06 Matthew Heaney <heaney@adacore.com>* a-cuprqu.ads, a-cuprqu.adb, a-cbprqu.ads, a-cbprqu.adb(Dequeue_Only_High_Priority): Protected procedure now implemented.2011-10-06 Vincent Celier <celier@adacore.com>* g-trasym.adb: Replace old implementation with the defaultimplementation that returns list of addresses as "0x...".* g-trasym.ads: Update the list of platforms with the fullcapability. Indicate that there is a default implementationfor other platforms.* g-trasym-unimplemented.ads, g-trasym-unimplemented.adb: Remove.* gcc-interface/Makefile.in: Remove g-trasym-unimplemented, as thereis now a default implementation for all platforms without the fullcapability.2011-10-06 Robert Dewar <dewar@adacore.com>* a-ciorse.adb, a-cihase.adb, a-cihase.ads, a-coorse.adb,a-cborse.adb, a-comutr.adb, a-ciorma.adb, a-cbmutr.adb,a-cbmutr.ads, a-cbhase.adb, a-cbhase.ads: Minor reformatting and codereorganization (use conditional expressions).2011-10-06 Robert Dewar <dewar@adacore.com>* sem_res.adb (Resolve_Arithmetic_Op): Fix bad warning forfloating divide by zero.2011-10-06 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb: Limited interfaces that are not immutably limitedare OK in return statements.2011-09-30 Iain Sandoe <iains@gcc.gnu.org>* gcc-interface/Makefile.in (Darwin): Partial reversion of previouschange to powerpc section.2011-09-29 Iain Sandoe <iains@gcc.gnu.org>* gcc-interface/Makefile.in (Darwin): Factor LIBGNAT_TARGET_PAIRSacross the port.2011-09-27 Ed Schonberg <schonberg@adacore.com>* a-cbhase.adb, a-cbhase.ads, a-cborse.adb, a-cborse.ads,a-cihase.adb, a-cihase.ads, a-ciorse.adb, a-ciorse.ads,a-coorse.adb, a-coorse.ads: Add iterator machinery to bounded sets andindefinite sets.* a-coorma.ads: Minor reformmating.* einfo.ads: Improve the comment describing theDirectly_Designated_Type function.* a-ciorma.adb, a-ciorma.ads: Add iterator machinery to indefiniteordered maps.* gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Updatedependencies.2011-09-27 Robert Dewar <dewar@adacore.com>* a-comutr.ads: Minor reformatting.2011-09-27 Ed Schonberg <schonberg@adacore.com>* a-cimutr.adb, a-cimutr.ads, a-cbmutr.adb, a-cbmutr.ads: Add childreniterators to multiway trees.2011-09-27 Yannick Moy <moy@adacore.com>* debug.adb (d.D): New option for strict Alfa mode.* opt.ads (Strict_Alfa_Mode): New flag to interpret compilerpermissions as strictly as possible.* sem_ch3.adb (Signed_Integer_Type_Declaration): In non-strictAlfa mode, now, interpret ranges of base types like GNAT does; instrict mode, simply change the range of the implicit base Itype.* gnat1drv.adb: Update comments. Set Strict_Alfa_Mode.2011-09-27 Robert Dewar <dewar@adacore.com>* exp_ch9.adb: Minor comment fixes.2011-09-27 Ed Schonberg <schonberg@adacore.com>* a-comutr.adb, a-comutr.ads: Add children iterators on multiwaytrees.2011-09-27 Eric Botcazou <ebotcazou@adacore.com>* checks.adb (Apply_Scalar_Range_Check): Use Designated_Typeinstead of Directly_Designated_Type in the indirect array case.2011-09-27 Robert Dewar <dewar@adacore.com>* exp_util.adb, exp_aggr.adb: Minor reformatting.2011-09-27 Ed Schonberg <schonberg@adacore.com>* sinfo.ads, par-ch3.adb: Minor comment update: aspect specificationon subtype declarations.* exp_aggr.adb: Minor comment update.2011-09-27 Eric Botcazou <ebotcazou@adacore.com>* exp_util.adb (Safe_Prefixed_Reference): Remove always-falsetest in the N_Explicit_Dereference case. Fold double logicalnegation in the special loop case and conditionalize it onVariable_Ref being true.2011-09-27 Ed Schonberg <schonberg@adacore.com>* sem_ch4.adb (Analyze_Selected_Component): If the prefix is asingle protected object and the selector is a discriminant or anentry family, this is a non-overloaded candidate interpretation,and possible primitive operations of the type must not beexamined.2011-09-27 Arnaud Charlet <charlet@adacore.com>* s-taspri-posix-noaltstack.ads (Lock): Mark fields aliased.2011-09-27 Pascal Obry <obry@adacore.com>* s-osinte-hpux.ads, s-osinte-aix.ads, s-osinte-solaris-posix.ads,s-osinte-irix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads:Add dummy definitions for pthread_rwlock_tand pthread_rwlockattr_t on all POSIX platforms.* s-taprop-irix.adb, s-taprop-posix.adb (Initialize_Lock): Fix lockreference.(Finalize_Lock): Likewise.(Write_Lock): Likewise.(Unlock): Likewise.2011-09-27 Tristan Gingold <gingold@adacore.com>* s-tassta.adb (Task_Wrapper): Increase Guard_Page_Size value forwindows 64.2011-09-27 Pascal Obry <obry@adacore.com>* s-osinte-hpux.ads, s-taprop-vxworks.adb, s-taspri-vxworks.ads,s-taprop-tru64.adb, s-osinte-aix.ads, s-taspri-posix-noaltstack.ads,s-taspri-mingw.ads, s-taprop-vms.adb, s-tpoben.adb, s-tpoben.ads,s-taprop-mingw.adb, s-taprob.adb, s-taprob.ads,s-osinte-solaris-posix.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,s-osinte-irix.ads, s-taprop-irix.adb, s-osinte-darwin.ads,s-taspri-dummy.ads, s-taspri-posix.ads, s-taprop.ads,s-taspri-vms.ads, s-osinte-freebsd.ads, s-taprop-hpux-dce.adb,s-taspri-hpux-dce.ads, s-taspri-tru64.ads, s-taprop-dummy.adb,s-taprop-posix.adb: Revert previous changes.(Lock): Now a record containing the two possible lock(mutex and read/write) defined in OS_Interface.* s-taprop-linux.adb (Finalize_Protection): Use r/w lock for'R' locking policy.(Initialize_Protection): Likewise.(Lock): Likewise.(Lock_Read_Only): Likewise.(Unlock): Likewise.2011-09-27 Pascal Obry <obry@adacore.com>* s-taspri-posix-noaltstack.ads (RW_Lock): This type is now defined asOS_Interface.pthread_rwlock_t.2011-09-27 Robert Dewar <dewar@adacore.com>* exp_ch9.adb, a-cimutr.adb, a-cimutr.ads, gnat1drv.adb, a-comutr.adb,a-comutr.ads, exp_dist.adb, a-cbmutr.adb, a-cbmutr.ads,sem_ch5.adb, sem_util.adb: Minor reformatting.2011-09-27 Pascal Obry <obry@adacore.com>* s-taprop.ads (Initialize_Lock)[RW_Lock]: New spec for r/w lock.(Finalize_Lock)[RW_Lock]: Likewise.(Write_Lock)[RW_Lock]: Likewise.(Unlock)[RW_Lock]: Likewise.(Read_Lock): Define L as RW_Lock (instead of Lock).* s-taprop-linux.adb (Initialize_Lock)[RW_Lock]: Newroutine for r/w lock.(Finalize_Lock)[RW_Lock]: Likewise.(Write_Lock)[RW_Lock]: Likewise.(Unlock)[RW_Lock]: Likewise.(Read_Lock): Define L as RW_Lock (instead of Lock).* s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb,s-taprop-mingw.adb, s-taprop-solaris.adb, s-taprop-irix.adb,s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-posix.adb(Initialize_Lock)[RW_Lock]: Same implementation as correspondingroutine for standard lock.(Finalize_Lock)[RW_Lock]: Likewise.(Write_Lock)[RW_Lock]: Likewise.(Unlock)[RW_Lock]: Likewise.(Read_Lock): Define L as RW_Lock (instead of Lock).* s-taprob.ads, s-tpoben.ads (Protection): Add RWL (RW_Lock)in the record definition.* s-taprob.adb, s-taproben.adb (Finalize_Protection): Use r/wlock for 'R' locking policy.(Initialize_Protection): Likewise.(Lock): Likewise.(Lock_Read_Only): Likewise.(Unlock): Likewise.* s-taspri-posix.ads (RW_Lock): New type defined asOS_Interface.pthread_rwlock_t.* s-taspri-vxworks.ads, s-taspri-posix-noaltstack.ads,s-taspri-mingw.ads, s-taspri-solaris.ads, s-taspri-dummy.ads,s-taspri-posix.ads, s-taspri-vms.ads, s-taspri-hpux-dce.ads,s-taspri-tru64.ads (RW_Lock): New type defined as alias to Lock.2011-09-27 Pascal Obry <obry@adacore.com>* exp_ch9.adb, s-taspri-posix.ads: Minor reformatting.2011-09-27 Pascal Obry <obry@adacore.com>* s-osinte-aix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads,s-osinte-hpux.ads, s-osinte-irix.ads,s-osinte-solaris-posix.ads (pthread_rwlock_t): New definition alias ofpthread_mutex_t.(pthread_rwlockattr_t): New definition alias of pthread_mutexattr_t.* s-osinte-linux.ads (pthread_rwlock_t, pthread_rwlockattr_t,pthread_rwlockattr_init, pthread_rwlockattr_destroy,pthread_rwlockattr_setkind_np, pthread_rwlock_init,pthread_rwlock_destroy, pthread_rwlock_rdlock,pthread_rwlock_wrlock, pthread_rwlock_unlock): New.2011-09-27 Pascal Obry <obry@adacore.com>* rtsfind.ads: Add RE_Lock_Read_Only into rtsfind circuitry.(RE_Id): Add RE_Lock_Read_Only.(RE_Unit_Table): Likewise.* sem_prag.adb (Process_Convention): Change Pragma_Locking_Policyto lift restriction on first character. Handle now theName_Concurrent_Readers_Locking where policy character is set to'R'.* snames.ads-tmpl (Name_Concurrent_Readers_Locking): Newconstant.* exp_ch9.adb (Build_Protected_Subprogram_Body): Generate aread only lock for function in protected object.* s-taprob.ads (Lock_Read_Only): Remove obsolete comment asthis routine is now used.2011-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>* s-atocou-x86.adb (Decrement): Use %;.(Increment): Likewise.2011-09-26 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils2.c (build_allocator): Set TREE_THIS_NOTRAP on thedereference of the pointer to the storage area. Remove useless typeconversions and factor out common code.2011-09-26 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils.c (maybe_unconstrained_array): Declare TYPE localvariable and use it throughout.<UNCONSTRAINED_ARRAY_TYPE>: Add 'break' at the end.<RECORD_TYPE>: Do not unconditionally convert to the unpadded type as afirst step. Also convert to the unpadded type as a last step.2011-09-26 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/gigi.h (create_subprog_decl): Replace TREE_CHAIN withDECL_CHAIN in comment.* gcc-interface/trans.c (gigi): Likewise.(Attribute_to_gnu): Likewise.(build_function_stub): Likewise.(gnat_to_gnu): Likewise.* gcc-interface/utils.c (create_subprog_decl): Likewise.(convert_vms_descriptor64): Likewise.(convert_vms_descriptor32): Likewise.2011-09-26 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (assoc_to_constructor): Minor tweaks.* gcc-interface/utils2.c (build_simple_component_ref): Fix formattingissues. Use COMPLETE_TYPE_P in assertion. Also set TREE_READONLY ifthe type of the record is TYPE_READONLY.2011-09-26 Eric Botcazou <ebotcazou@adacore.com>Robert Dewar <dewar@adacore.com>* sem_ch6.adb (Set_Formal_Mode): Set Can_Never_Be_Null on an IN or INOUT formal parameter which is of an null-exclusion access subtype.2011-09-26 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/ada-tree.h (DECL_CAN_NEVER_BE_NULL_P): New macro.* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Set the flag.(gnat_to_gnu_param): Likewise.* gcc-interface/utils.c (convert) <UNCONSTRAINED_ARRAY_REF>: Invokemaybe_unconstrained_array instead of doing the work manually.(maybe_unconstrained_array): Propagate the TREE_THIS_NOTRAP flag.* gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: If operandis a DECL with the flag, set TREE_THIS_NOTRAP on the reference.(gnat_stabilize_reference_1): Propagate the TREE_THIS_NOTRAP flag.(gnat_stabilize_reference): Likewise.2011-09-26 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/ada-tree.h (TYPE_NULL_BOUNDS): New macro.(SET_TYPE_NULL_BOUNDS): Likewise.* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Set againTREE_THIS_NOTRAP on the INDIRECT_REF node built for the template.* gcc-interface/trans.c (Identifier_to_gnu): Return initializers of fatpointer types.* gcc-interface/utils.c (create_var_decl_1): If the object is external,check that the initializer is a valid constant expression for use ininitializing a static variable. Add missing guard.(update_pointer_to): Adjust TYPE_NULL_BOUNDS if set.(convert_to_fat_pointer): In the null fat pointer case, build a validpointer for the bounds.* gcc-interface/utils2.c (compare_fat_pointers): New function.(build_binary_op) <EQ_EXPR>: Call it to compare fat pointers.2011-09-25 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/ada-tree.h (TREE_THIS_NOTRAP): Redefine.* gcc-interface/trans.c (Identifier_to_gnu): Factor out common code inthe by-ref case. Do not set TREE_READONLY on a renamed object. SetTREE_THIS_NOTRAP on UNCONSTRAINED_ARRAY_REF nodes.(Attribute_to_gnu) <Attr_Length>: Expand the use of the parameter cacheto the indirect case.* gcc-interface/utils.c (convert) <UNCONSTRAINED_ARRAY_REF>: Preservethe TREE_THIS_NOTRAP flag.2011-09-25 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (Loop_Statement_to_gnu): In the case of aniteration scheme, always generate the do-while form if optimizationis enabled. Use more straightforward test at the end.2011-09-25 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Subtype>: UseXNEW instead of xmalloc. Do not build useless pointer type.<E_Anonymous_Access_Subprogram_Type>: Use XNEW instead of xmalloc.* gcc-interface/trans.c (gnat_to_gnu) <N_Raise_Constraint_Error>: Tidy.* gcc-interface/utils2.c (build_unary_op): Remove local variable.2011-09-25 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not promotethe alignment if this doesn't prevent BLKmode access to the object.2011-09-24 Iain Sandoe <iains@gcc.gnu.org>* gcc-interface/Makefile.in (darwin): Do not issue the'-flat_namespace' linker flag during Ada build.* mlib-tgt-specific-darwin.adb: Remove '-flat_namespace' flag from thedefault shared library options.2011-09-19 Alexandre Oliva <aoliva@redhat.com>* gcc-interface/decl.c (annotate_value): Look up expression forinsertion in the cache at the end.2011-09-19 Arnaud Charlet <charlet@adacore.com>* gcc-interface/Make-lang.in: Update dependencies.2011-09-19 Steve Baird <baird@adacore.com>* snames.ads-tmpl: Move declaration of Name_Annotate into range ofconfiguration pragma names so that Is_Configuration_Pragma_Namewill return True for Name_Annotate. Make corresponding change inPragma_Id enumeration type. This is needed to allow an Annotatepragma to occur in a configuration pragma file (typically,a gnat.adc file).* gnat_ugn.texi: Add Annotate to the list of configuration pragmas.* gnat_rm.texi: Note that pragma Annotate may be used as aconfiguration pragma.2011-09-19 Ed Schonberg <schonberg@adacore.com>* a-cbmutr.adb, a-cbmutr.ads, a-cimutr.adb, a-cimutr.ads,a-comutr.adb, a-comutr.ads: Add iterator machinery for multiway trees.2011-09-19 Yannick Moy <moy@adacore.com>* exp_alfa.adb, exp_alfa.ads (Expand_Alfa_N_In): New functionfor expansion of set membership.(Expand_Alfa): Call expansion for N_In and N_Not_In nodes.* exp_ch4.adb, exp_ch4.ads (Expand_Set_Membership): Make procedurevisible for use in Alfa expansion.* sem_ch5.adb (Analyze_Iterator_Specification): Introduce loopvariable in Alfa mode.2011-09-19 Thomas Quinot <quinot@adacore.com>* s-osinte-darwin.ads: Change SIGADAABRT on Darwin to SIGABRT.2011-09-19 Thomas Quinot <quinot@adacore.com>* exp_ch9.adb: Minor reformatting.2011-09-19 Hristian Kirtchev <kirtchev@adacore.com>* freeze.adb (Build_Renamed_Body): Generic subprogramsinstantiations cannot be poperly inlined by the compiler, donot set the Body_To_Inline attribute in such cases.* sem_ch12.adb (Analyze_Subprogram_Instantiation): Inherit allinlining-related flags from the generic subprogram declaration.2011-09-19 Thomas Quinot <quinot@adacore.com>* exp_dist.adb, rtsfind.ads, sem_util.adb, sem_util.ads(Build_Stub_Type): Remove, instead copy components fromSystem.Partition_Interface.RACW_Stub_Type.(RPC_Receiver_Decl): Remainder of code from old Build_Stub_Type routine.(Copy_Component_List): New subprogram.2011-09-19 Yannick Moy <moy@adacore.com>* lib-xref.adb (Generate_Reference): Ignore references toconstants in Standard.2011-09-19 Robert Dewar <dewar@adacore.com>* err_vars.ads, errout.ads: Minor reformatting.2011-09-19 Robert Dewar <dewar@adacore.com>* aspects.ads (Impl_Defined_Aspects): New array* lib-writ.adb (No_Dependences): New name for No_Dependence* restrict.adb (No_Dependences): New name for No_Dependence(Check_Restriction_No_Specification_Of_Aspect): Newprocedure.(Set_Restriction_No_Specification_Of_Aspect): New procedure(Restricted_Profile_Result): New variable(No_Specification_Of_Aspects): New variable(No_Specification_Of_Aspect_Warning): New variable* restrict.ads (No_Dependences): New name for No_Dependence(Check_Restriction_No_Specification_Of_Aspect): New procedure(Set_Restriction_No_Specification_Of_Aspect): New procedure* s-rident.ads: Add restrictionNo_Implementation_Aspect_Specifications, this is also added tothe No_Implementation_Extensions profile.* sem_ch13.adb (Analyze_Aspect_Specifications): CheckNo_Implementation_Defined_Aspects(Analyze_Aspect_Specifications): Check No_Specification_Of_Aspect* sem_prag.adb (Analyze_Aspect_Specifications): CheckNo_Implementation_Aspects(Analyze_Aspect_Specifications): Check No_Specification_Of_Aspect* snames.ads-tmpl (Name_No_Specification_Of_Aspect): New name2011-09-19 Yannick Moy <moy@adacore.com>* lib-xref.adb (Generate_Reference): Take into account multiplerenamings for Alfa refs.2011-09-19 Thomas Quinot <quinot@adacore.com>* g-socthi-mingw.adb: Minor reformatting.2011-09-19 Yannick Moy <moy@adacore.com>* gnat1drv.adb (Adjust_Global_Switches): Set tagged typeexpansion to False in mode Alfa2011-09-19 Pascal Obry <obry@adacore.com>* mingw32.h: Remove obsolete code needed for old versionsof MingW.2011-09-19 Robert Dewar <dewar@adacore.com>* errout.ads: Minor reformatting.2011-09-19 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (Analyze_Expression_Function): When the expressionfunction is transformed into a declaration and a body, insertbody at the end of the declarative part, to prevent prematurefreeze actions, and preserve original specification in thesubprogram declaration.2011-09-19 Vincent Celier <celier@adacore.com>* projects.texi: Minor editing.2011-09-19 Robert Dewar <dewar@adacore.com>* sem_aggr.adb, lib-writ.ads, s-restri.ads, sem_ch6.adb,exp_aggr.adb: Minor reformatting.2011-09-19 Yannick Moy <moy@adacore.com>* lib-xref.adb (Generate_Reference): Change entity referencedto underlying object if any, or else reference to the HEAP.2011-09-15 Arnaud Charlet <charlet@adacore.com>* gcc-interface/Make-lang.in: Update dependencies.2011-09-15 Robert Dewar <dewar@adacore.com>* tree_io.ads: Minor reformatting.* a-intnam.ads: Fix bad header.2011-09-15 Thomas Quinot <quinot@adacore.com>* a-exexpr-gcc.adb: Minor reformatting.2011-09-15 Yannick Moy <moy@adacore.com>* sem_ch6.adb: Propagate information that an expression function comesfrom source (otherwise references to this entity are not stored).2011-09-15 Robert Dewar <dewar@adacore.com>* a-cdlili.adb, a-coinve.adb, a-stzunb-shared.ads, a-suezst.adb,a-suenco.adb, a-stwiun-shared.ads, a-cobove.adb, a-convec.adb,a-btgbso.adb, a-cbdlli.adb, a-suewst.adb: Minor reformatting.2011-09-15 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (Analyze_Expression_Function): Code cleanup:if the expression function is not a completion, create anew specification for the generated declaration, and keep theoriginal specification in the generated body. Shorter code alsoensures that proper warnings are generated for unused formalsin all cases.2011-09-15 Sergey Rybin <rybin@adacore.com>* tree_io.ads: Update ASIS_Version_Number because of the changesin the tree structures for expression functions.2011-09-15 Arnaud Charlet <charlet@adacore.com>* s-osinte-aix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads,s-osinte-hpux.ads, s-osinte-lynxos.ads, s-osinte-solaris-posix.ads,s-taprop-posix.adb (CLOCK_MONOTONIC): New constant.(CLOCK_REALTIME): Fix wrong value on some OSes.* s-taprop-posix.adb (Monotonic_Clock): Use CLOCK_MONOTONIC.2011-09-11 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils.c (maybe_unconstrained_array): In the referenceto unconstrained array case, deal with each branch of a COND_EXPR.* gcc-interface/utils2.c (build_allocator): Deal with each branch ofa COND_EXPR in the initializer, if present.2011-09-11 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (maybe_pad_type): Do not try to change the formof an addressable type.* gcc-interface/trans.c (gnat_gimplify_expr) <VIEW_CONVERT_EXPR>: New.Deal with those cases for which creating a temporary is mandatory.2011-09-11 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (call_to_gnu): Use local variable. Make surethis is a real formal parameter before testing whether it is by ref.2011-09-11 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/gigi.h (build_call_0_expr): Delete.(build_call_1_expr): Likewise.(build_call_2_expr): Likewise.(build_call_n_expr): New prototype.* gcc-interface/decl.c (gnat_to_gnu_entity): Use build_call_n_expr.* gcc-interface/trans.c (establish_gnat_vms_condition_handler): Ditto.(Handled_Sequence_Of_Statements_to_gnu): Likewise.(Exception_Handler_to_gnu_zcx): Likewise.(gnat_to_gnu): Likewise.(build_binary_op_trapv): Likewise.* gcc-interface/utils2.c (build_call_0_expr): Delete.(build_call_1_expr): Likewise.(build_call_2_expr): Likewise.(build_call_n_expr): New function.(build_call_raise): Use build_call_n_expr.(build_call_raise_range): Likewise.(build_call_raise_column): Likewise.(build_call_alloc_dealloc_proc): Likewise.(maybe_wrap_malloc): Likewise.(maybe_wrap_free): Likewise.2011-09-11 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (build_return_expr): Use void_type_node forMODIFY_EXPR.* gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Assert thatthe result type is null if ENABLE_CHECKING. Set operation_type at theend unconditionally if not set in the previous cases.Use build2 and void_type_node for MODIFY_EXPR.(build_allocator): Use NULL_TREE for MODIFY_EXPR.2011-09-08 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils.c (unchecked_convert): Use a field of the rightprecision when converting to or from an integral type whose precisionis not equal to its size.2011-09-08 Iain Sandoe <iains@gcc.gnu.org>* traceback.c (Darwin) USE_GCC_UNWINDER for Darwin versions >= 8.2011-09-07 Iain Sandoe <iains@gcc.gnu.org>* gcc-interface/Makefile.in (darwin): Provide powerpc64 systemimplementation.* system-darwin-ppc64.ads: New file.2011-09-06 Iain Sandoe <iains@gcc.gnu.org>* gcc-interface/Makefile.in (gnatlib-shared-darwin): Removereference to "-lm".2011-09-06 Iain Sandoe <iains@gcc.gnu.org>* gcc-interface/Makefile.in (darwin, SO_OPTS): Provide architecturesize switches to the link phase for shared libs.2011-09-06 Iain Sandoe <iains@gcc.gnu.org>* gcc-interface/Makefile.in (x86_64 darwin arch): AdjustLIBGNAT_TARGET_PAIRS for x86 and x86_64 variants.2011-09-06 Arnaud Charlet <charlet@adacore.com>* gcc-interface/Makefile.in, gcc-interface/Make-lang.in(gnattools, regnattools, cross-gnattools, canadian-gnattools,gnatlib, gnatlib-sjlj, gnatlib-zcx, gnatlib-shared, gnatlib_and_tools):New targets.(TOOLS_FLAGS_TO_PASS): New.(../stamp-tools): Reintroduce, to avoid merge conflicts.2011-09-06 Robert Dewar <dewar@adacore.com>* sem_ch10.adb, impunit.ads, impunit.adb (Not_Impl_Defined_Unit): Newname for Is_RM_Defined_Unit. Also several fixes to this unit.2011-09-06 Robert Dewar <dewar@adacore.com>* impunit.ads, impunit.adb (Is_RM_Defined_Unit): New function.* s-rident.ads: New restriction No_Implementation_Units(this restriction is also part of the profileNo_Implementation_Extensions)* sem_ch10.adb (Analyze_With_Clause): Add check forNo_Implementation_Units restriction.2011-09-06 Jerome Guitton <guitton@adacore.com>* sysdep.c (__gnat_get_task_options): Disable VX_SPE_TASKon vThreads.2011-09-06 Thomas Quinot <quinot@adacore.com>* s-solita.adb: Minor reformatting.2011-09-06 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (Analyze_Subprogram_Body_Helper): The body thatis a rewriting of an expression function does not freeze previousentities.2011-09-06 Robert Dewar <dewar@adacore.com>* impunit.adb (Is_Known_Unit): Fix bad handling of Ada 2012 case2011-09-06 Tristan Gingold <gingold@adacore.com>* gcc-interface/Makefile.in: Handle e500v2-wrs-vxworksae likepowerpc-wrs-vxworksae.2011-09-06 Thomas Quinot <quinot@adacore.com>* s-os_lib.ads (Spawn): Minor documentation clarification,Success is True for a zero exit status.2011-09-06 Ed Schonberg <schonberg@adacore.com>* sem_ch5.adb: Add message for common iterator error.2011-09-06 Ed Schonberg <schonberg@adacore.com>* exp_ch3.adb (Build_Initialization_Call): If the target is aselected component discriminated by a current instance, replacethe constraint with a reference to the target object, regardlessof whether the context is an init_proc.2011-09-06 Robert Dewar <dewar@adacore.com>* exp_attr.adb: Descriptor_Size is never static.2011-09-06 Robert Dewar <dewar@adacore.com>* gnat_ugn.texi: Add documentation for LSLOC metric in gnatmetric2011-09-06 Hristian Kirtchev <kirtchev@adacore.com>* gnat_rm.texi: Clarify that attribute Descriptor_Size isnon-static.2011-09-06 Ed Schonberg <schonberg@adacore.com>* sem_res.adb (Resolve): An expression that is the body of anexpression function does not freeze.2011-09-06 Matthew Heaney <heaney@adacore.com>* a-csquin.ads, a-cusyqu.adb, a-cbprqu.adb, a-cbsyqu.adb,a-cuprqu.adb: Changed copyright notice to indicate currentyear only.2011-09-06 Vincent Celier <celier@adacore.com>* prj.adb: Minor spelling error fix in comment* sem_res.adb: Minor reformatting2011-09-06 Pascal Obry <obry@adacore.com>* sysdep.c (winflush_nt): Removed as not needed anymore.(winflush_95): Likewise.(winflush_init): Likewise.(winflush_function): Likewise.(getc_immediate_common): Remove call to winflush_function.2011-09-06 Hristian Kirtchev <kirtchev@adacore.com>* exp_attr.adb (Expand_N_Attribute_Reference): Rewrite theprocessing for Descriptor_Size.* gnat_rm.texi: Rephrase the wording for attribute Descriptor_Sizeto account for its broader usage.* sem_attr.adb (Analyze_Attribute): Change the error detectioncircuitry for Descriptor_Size as the attribute is now applicableto all types.2011-09-06 Robert Dewar <dewar@adacore.com>* sem_attr.adb, prj-nmsc.adb, exp_aggr.adb: Minor reformatting.2011-09-06 Ed Schonberg <schonberg@adacore.com>* lib-xref.adb (OK_To_Set_Referenced): A reference to a formalin a parameter association must not set the Referenced flag onthe formal.* prj-nmsc.adb (Check_File_Naming_Schemes): Remove useless formal2011-09-06 Hristian Kirtchev <kirtchev@adacore.com>* gnat_rm.texi: Add a section on attribute Descriptor_Size2011-09-06 Arnaud Charlet <charlet@adacore.com>* gcc-interface/Makefile.in (common-tools, gnatmake-re,gnatlink-re): Speed up by using -j0.2011-09-06 Yannick Moy <moy@adacore.com>* sem_ch13.adb (Analyze_Aspect_Specifications): CallSet_Corresponding_Aspect when creating pragma from aspect.(Add_Predicates): Use new field Corresponding_Aspect.* sem_prag.adb (Analyze_Pragma): Make Pname hold source aspectname when present, for the purpose of issuing error messages;remove local procedure Error_Pragma_Arg_Alternate_Name.* sinfo.adb, sinfo.ads (Corresponding_Aspect): New field inN_Pragma node.(From_Dynamic_Predicate, From_Static_Predicate): Remove fields fromN_Pragma node.2011-09-06 Robert Dewar <dewar@adacore.com>* checks.adb, s-except.ads, g-socket.adb: Minor reformatting.2011-09-06 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch6.adb (Build_Heap_Allocator): Add newlocal variable Desig_Typ. Code and comment reformatting. Addmachinery to ensure that the allocation uses a fat pointer whenthe type of the return object is a constrained array and thefunction return type is an unconstrained array.2011-09-06 Vincent Celier <celier@adacore.com>* make.adb, prj-part.adb, prj-nmsc.adb: Remove unused formalparameters in subprograms.2011-09-06 Arnaud Charlet <charlet@adacore.com>* s-taprop-mingw.adb (Finalize_TCB): Fix typo.2011-09-06 Thomas Quinot <quinot@adacore.com>* s-taprop-vxworks.adb, s-tpoaal.adb, s-tpopsp-vxworks.adb(System.Tasking.Primitive_Operations.Specific.Delete): Removesubprogram.(System.Tasking.Primitive_Operations.Specific.Set): If argumentis null, destroy task specific data, to make API consistent withother platforms, and thus compatible with the shared versionof s-tpoaal.adb.(System.Tasking.Primitive_Operations.ATCB_Allocation.Free_ATCB):Document the above assumption.2011-09-06 Ed Schonberg <schonberg@adacore.com>* exp_ch6.adb (Expand_Inlined_Call): Fix use of uninitializedvariable for type of return value when return type isunconstrained and context is an assignment.2011-09-06 Ed Schonberg <schonberg@adacore.com>* sem_ch8.adb (Check_Class_Wide_Actual): Do not generate body ofclass-wide operation if expansion is not enabled.2011-09-06 Eric Botcazou <ebotcazou@adacore.com>* checks.adb (Apply_Scalar_Range_Check): Deal with accesstype prefix.2011-09-06 Yannick Moy <moy@adacore.com>* sem_ch13.adb (Analyze_Aspect_Specifications, caseAspect_Invariant): Do not issue error at this point on illegalpragma placement, as this is checked later on when analyzingthe corresponding pragma.* sem_prag.adb (Error_Pragma_Arg_Alternate_Name): New proceduresimilar to Error_Pragma_Arg, except the source name of theaspect/pragma to use in warnings may be equal to parameterAlt_Name (Analyze_Pragma, case Pragma_Invariant): refine errormessage to distinguish source name of pragma/aspect, and whetherthe illegality resides in the type being public, or being privatewithout a public declaration2011-09-06 Thomas Quinot <quinot@adacore.com>* g-socket.adb (Check_For_Fd_Set): On Windows, no need for bitmapsize check (fd_set is implemented differently on that platform).2011-09-06 Thomas Quinot <quinot@adacore.com>* s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb,s-tpoaal.adb, s-taprop-mingw.adb, s-taprop-linux.adb,s-taprop-solaris.adb, s-taprop-irix.adb, s-taprop.ads,s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-posix.adb(ATCB_Allocation): New subpackage ofSystem.Tasking.Primitive_Operations, shared across all targetswith full tasking runtime.(ATCB_Allocation.New_ATCB): Moved there (from target specifics-taprop bodies).(ATCB_Allocation.Free_ATCB): New subprogram. Deallocate an ATCB,taking care of establishing a local temporary ATCB if the onebeing deallocated is Self, to avoid a reference to the freedATCB in Abort_Undefer.2011-09-06 Thomas Quinot <quinot@adacore.com>* s-tassta.adb, s-taskin.ads (Free_Task): If the task is notterminated, mark it for deallocation upon termination.(Terminate_Task): Call Free_Task again if the task is markedfor automatic deallocation upon termination.2011-09-06 Robert Dewar <dewar@adacore.com>* a-cbprqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cusyqu.ads,a-intnam-aix.ads, a-intnam-darwin.ads, a-intnam-dummy.ads,a-intnam-freebsd.ads, a-intnam-hpux.ads, a-intnam-irix.ads,a-intnam-linux.ads, a-intnam-lynxos.ads, a-intnam-mingw.ads,a-intnam-solaris.ads, a-intnam-tru64.ads,a-intnam-vms.ads, a-intnam-vxworks.ads, a-intnam.ads, interfac.ads,cstand.adb, s-maccod.ads: Mark all entities as Implementation_Defined* einfo.ads, einfo.adb (Is_Implementation_Defined): New flag* par-prag.adb: Add dummy entry for pragma Implementation_Defined* s-rident.ads: Add new restriction No_Implementation_IdentifiersAdd new profile No_Implementation_Extensions* sem_prag.adb: Implement pragma Implementation_Defined Implementprofile No_Implementation_Extensions* sem_util.adb: Minor reformatting (Set_Entity_With_Style_Check):Check violation of restriction No_Implementation_Identifiers* snames.ads-tmpl: Add entries for pragma Implementation_DefinedAdd entry for Name_No_Implementation_Extensions2011-09-06 Robert Dewar <dewar@adacore.com>* impunit.ads: Minor reformatting.2011-09-06 Robert Dewar <dewar@adacore.com>* ali.adb, sem_ch13.adb, lib-xref.adb: Minor reformatting.2011-09-06 Pascal Obry <obry@adacore.com>* s-osinte-linux.ads, s-oscons-tmplt.c: Use oscons to define sigset_ttypes.2011-09-06 Robert Dewar <dewar@adacore.com>* g-socket.adb: Minor reformatting2011-09-06 Javier Miranda <miranda@adacore.com>* ali.adb (Scan_ALI): Add missing support to load references ofentities imported from other languages.* ali.ads (Xref_Record): Adding new fields to store the language andname of an imported entity.* lib-xref.adb (Output_Import_Export_Info): Fix typoin comment.2011-09-06 Ed Schonberg <schonberg@adacore.com>* sem_prag.adb (Analyze_Pragma, case Type_Invariant): A type invariantis allowed on a full type declaration if it is the completion ofa private declarations.* sem_ch13.adb (Analyze_Aspect_Specifications): An invariantaspect is allowed on a full type declaration in the private partof a package.2011-09-06 Robert Dewar <dewar@adacore.com>* sem_ch8.ads: Minor reformatting2011-09-06 Thomas Quinot <quinot@adacore.com>* s-oscons-tmplt.c, g-socket.adb (GNAT.Sockets.Clear,Set,Is_Set):Guard against socket values that are not in [0;FD_SETSIZE[2011-09-06 Robert Dewar <dewar@adacore.com>* s-osinte-linux.ads, a-iteint.ads, exp_ch6.adb, s-solita.adb: Minorreformatting.2011-09-06 Arnaud Charlet <charlet@adacore.com>* s-linux-alpha.ads: Minor reformatting* s-oscons-tmplt.c: Fix generated comments in s-oscons template.Use sizeof instead of corresponding C defines in s-oscons template.2011-09-06 Vadim Godunko <godunko@adacore.com>* a-convec.ads, a-iteint.ads: Minor reformatting.2011-09-06 Vincent Celier <celier@adacore.com>* projects.texi: Add menus and @node lines.2011-09-06 Ed Schonberg <schonberg@adacore.com>* exp_ch6.adb (Expand_Inlined_Call): Handle properly the casewhere the return type is an unconstrained array and the contextis an assignment. Optimize the case when the target of theassignment is a selected component.2011-09-06 Arnaud Charlet <charlet@adacore.com>* s-solita.adb: Update comments.2011-09-06 Pascal Obry <obry@adacore.com>* s-linux.ads, s-linux-alpha.ads, s-linux-hppa.ads, s-linux-mipsel.ads,s-linux-sparc.ads: Remove hard coded and now wrong definitions.* s-oscons-tmplt.c: Add support for generating pthread relatedtypes size on GNU/Linux as done for Darwin.* s-osinte-linux.ads: Use s-oscons to define the pthread types.2011-09-06 Robert Dewar <dewar@adacore.com>* exp_ch6.adb: Fix minor typo.2011-09-06 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch7.adb: Remove with and use clauses for Get_Targ.(Alignment_Of): Moved to the body of Nearest_Multiple_Rounded_Up.(Double_Size_Of): Alphabetized. Update the comment on usage.(Make_Finalize_Address_Stmts): Update comments and reformat code.(Nearest_Multiple_Rounded_Up): New routine.(Size_Of): Update comment on usage. The generated expression nowaccounts for alignment gaps by rounding the size of the type to thenearest multiple rounded up of the type's alignment.2011-09-06 Robert Dewar <dewar@adacore.com>* exp_ch7.adb, g-comlin.adb: Minor reformatting.2011-09-06 Steve Baird <baird@adacore.com>* exp_ch4.adb (Expand_Allocator_Expression): Look throughderived subprograms in checking for presence of anExtra_Accessibility_Of_Result formal parameter.* exp_ch6.adb (Expand_Call): Look through derived subprograms inchecking for presence of an Extra_Accessibility_Of_Result formalparameter.(Expand_Call.Add_Actual_Parameter): Fix a bug in thecase where the Parameter_Associatiations attribute is already set,but set to an empty list.(Needs_Result_Accessibility_Level):Unconditionally return False. This is a temporarychange, disabling the Extra_Accessibility_Of_Resultmechanism.(Expand_Simple_Function_Return): Check forExtra_Accessibility_Of_Result parameter's presence instead oftesting Ada_Version when generating a runtime accessibilitycheck which makes use of the parameter.2011-09-06 Ed Schonberg <schonberg@adacore.com>* exp_ch4.adb (Expand_N_Case_Expression): Actions created for theexpression in a given case alternative must be attached to thestatement list of the ccrresponding case statement alternativeThey cannot be propagated ahead of the case statement, becausethe validity of the expression that generated the action mayhold only for that alternative.2011-09-06 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch7.adb: Remove with and use clauses for Get_Targ.(Alignment_Of): Remove the code for strict alignment targets.(Double_Alignment_Of): Removed.(Double_Size_Of): New routine.(Make_Finalize_Address_Stmts): Change thecalculation of the dope's size. Update relevant comments.(Size_Of): New routine.2011-09-06 Steve Baird <baird@adacore.com>* einfo.ads (Extra_Accessibility): Update associated comment to usethe term "present" correctly ("present" just means that it is notan error to query the value of the attribute - it does not implythat the value must be non-null).(Extra_Constrained): Ditto.(Is_Visible_Formal): Ditto.(Extra_Accessibility_Of_Result) Ditto; also add Inline pragma.(Set_Extra_Accessibility_Of_Result): Add Inline pragma.* exp_ch4.adb (Expand_Allocator_Expression): Improve a comment.* exp_ch6.adb (Expand_Call): The callee may require anExtra_Accessibility_Of_Result actual parameter even if Ada_Version< Ada_2012. This can occur if the callee is exported from a Gnatruntimes unit. Also improve a comment.2011-09-06 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch7.adb: Add with and use clauses for Get_Targ.(Alignment_Of): Rename formal parameter Some_Typto Typ, update related comment. Use the allocator alignment onstrict alignment targets such as SPARC.(Double_Alignment_Of): Rename formal parameter Some_Typ to Typ, updaterelated comment.2011-09-06 Gary Dismukes <dismukes@adacore.com>* sem_ch9.adb (Check_Interfaces): TestIs_Limited_Type rather than Is_Limited_Record when checking thatthe partial view of a synchronized full view must be limited.2011-09-06 Emmanuel Briot <briot@adacore.com>* g-comlin.adb (Free): Fix memory leak.2011-09-06 Robert Dewar <dewar@adacore.com>* sem_util.adb, exp_ch6.adb: Minor reformatting and code reorganization.2011-09-06 Steve Baird <baird@adacore.com>* einfo.ads (Extra_Accessibility_Of_Result): New function; in the(Ada2012) cases described in AI05-0234 where the accessibilitylevel of a function result is "determined by the point ofcall", an implicit parameter representing that accessibilitylevel is passed in. Extra_Accessibilty_Of_Result yields thisadditional formal parameter. Extra_Accessibility_Of_Resultis analogous to the existing Extra_Accessibilityfunction used in the implementation of access parameters.(Set_Extra_Accessibility_Of_Result): New procedure; setsExtra_Accessibility_Of_Result attribute.* einfo.adb (Extra_Accessibility_Of_Result): New function.(Set_Extra_Accessibility_Of_Result): New procedure.(Write_Field19_Name): Display Extra_Accessibilty_Of_Result attribute.* sem_util.adb (Dynamic_Accessibility_Level): Set Etype ofan accessibility level literal to Natural; introduce a nestedfunction, Make_Level_Literal, to do this.* exp_ch6.ads (Needs_Result_Accessibility_Level): New function;determines whether a given function (or access-to-functiontype) needs to have an implicitly-declared accessibility-levelparameter added to its profile.(Add_Extra_Actual_To_Call): Export an existing procedure which waspreviously declared in the body of Exp_Ch6.* exp_ch6.adb (Add_Extra_Actual_To_Call): Export declaration by movingit to exp_ch6.ads.(Has_Unconstrained_Access_Discriminants): New Function; apredicate on subtype entities which returns True if the givensubtype is unconstrained and has one or more access discriminants.(Expand_Call): When expanding a call to a function which takes anExtra_Accessibility_Of_Result parameter, pass in the appropriateactual parameter value. In the case of a function call which isused to initialize an allocator, this may not be possible becausethe Etype of the allocator may not have been set yet. In thiscase, we defer passing in the parameter and handle it later inExpand_Allocator_Expression.(Expand_Simple_Function_Return): When returning from a function whichreturns an unconstrained subtype having at least one accessdiscriminant, generate the accessibility check needed to ensure thatthe function result will not outlive any objects designated by itsdiscriminants.(Needs_Result_Accessibility_Level): New function; see exp_ch6.adsdescription.* exp_ch4.adb (Expand_Allocator_Expression): When a function callis used to initialize an allocator, we may need to pass in "theaccessibility level determined by the point of call" (AI05-0234)to the function. Expand_Call, where such actual parameters areusually generated, is too early in this case because the Etype ofthe allocator (which is used in determining the level to be passedin) may not have been set yet when Expand_Call executes. Instead,we generate code to pass in the appropriate actual parameterin Expand_Allocator_Expression.* sem_ch6.adb (Create_Extra_Formals): Createthe new Extra_Accessibility_Of_Result formal ifNeeds_Result_Accessibility_Level returns True. This includes theintroduction of a nested procedure, Check_Against_Result_Level.2011-09-06 Arnaud Charlet <charlet@adacore.com>* gcc-interface/Makefile.in (X86_TARGET_PAIRS): Remove duplicatedeclaration.2011-09-05 Hristian Kirtchev <kirtchev@adacore.com>* s-finmas.adb (Set_Finalize_Address): Explain the reasonfor the synchronization. Move the test for null froms-stposu.Allocate_Any_Controlled to this routine since the checkneeds to be protected too.(Set_Heterogeneous_Finalize_Address): Explain the reason for thesynchronization code.* s-finmas.ads (Set_Heterogeneous_Finalize_Address): Add commentexplaining the context in which this routine is used.* s-stposu.adb (Allocate_Any_Controlled): Move the test for nullto s-finmas.Set_Finalize_Address.2011-09-05 Ed Schonberg <schonberg@adacore.com>* einfo.ads: Document that itypes have no parent field.2011-09-05 Robert Dewar <dewar@adacore.com>* rtsfind.adb (Check_CRT): Check for overloaded entity* rtsfind.ads: Document that entities to be found by rtsfindcannot be overloaded* s-taenca.adb, s-tasren.adb, s-tpobop.adb, s-tpoben.ads, s-tpoben.adb(Lock_Entries_With_Status): New name for Lock_Entries with twoarguments (changed to meet rtsfind no overloading rule).2011-09-05 Hristian Kirtchev <kirtchev@adacore.com>* s-finmas.adb (Set_Finalize_Address (Address,Finalize_Address_Ptr)): Renamed to Set_Heterogeneous_Finalize_Address.(Set_Finalize_Address (in out Finalization_Master,Finalize_Address_Ptr): Add synchronization code.* s-finmas.ads (Set_Finalize_Address (Address,Finalize_Address_Ptr)): Renamed to Set_Heterogeneous_Finalize_Address.* s-stposu.adb (Allocate_Any_Controlled): Update the call toSet_Finalize_Address for the heterogeneous case.2011-09-05 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb: Undo previous change, not suitable after all.2011-09-05 Robert Dewar <dewar@adacore.com>* einfo.ads: Minor comment clarification.2011-09-05 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch6.adb (Move_Activation_Chain): Rewritten. The routineno longer needs to search through the entities of the returnstatement scope to find the _chain.* sem_ch5.adb: Add with and use clauses for Exp_Ch6 and Sem_Ch6.(Analyze_Block_Statement): Add local variableIs_BIP_Return_Statement. Add machinery to install all entitiesproduced by the expansion of the return object declaration.(Install_Return_Entities): New routine.* sem_ch6.ads, sem_ch6.adb (Install_Entity): Moved from body to spec.2011-09-05 Ed Schonberg <schonberg@adacore.com>* sem_ch10.adb (Analyze_Context): Apply simple fixup if contextof subunit is incomplete.(Analyze_Proper_Body): If parent spec is not available, do notattempt analysis.2011-09-05 Ed Schonberg <schonberg@adacore.com>* sem_disp.adb (Find_Controlling_Arg): Add checks forinterface type conversions, that are expanded into dereferences.2011-09-05 Hristian Kirtchev <kirtchev@adacore.com>* sem_ch6.adb (Analyze_Subprogram_Body_Helper):Examine the parameter and return profile of a subprogram and swapany incomplete types coming from a limited context with theircorresponding non-limited views.(Exchange_Limited_Views): New routine.2011-09-05 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (Prepare_Private_Subtype_Completion): Set parentof internal entity to the subtype declaration, so that whenentities are subsequently exchanged in a package body, the treeremains properly formatted for ASIS.2011-09-05 Johannes Kanig <kanig@adacore.com>* g-comlin.adb (Set_Usage): Additional optional argument to set helpmessage.(Display_Help): display the user given help message, if available.2011-09-05 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (OK_For_Limited_Init_In_05): The expressionis legal if the original node is an identifier that is aparameterless function call.2011-09-05 Pascal Obry <obry@adacore.com>* prj-nmsc.adb: Minor reformatting.Add support for standalone aggregate library.(Check_Stand_Alone_Library): Handle standalone aggregate library.* projects.texi: Fix documentation for aggregate library projects.2011-09-05 Robert Dewar <dewar@adacore.com>* sem_ch6.adb: Minor reformatting.2011-09-05 Matthew Gingell <gingell@adacore.com>* s-tassta.adb (Task_Wrapper): Ensure that we don't try to write thestack guard page on PPC Linux. This patch ensures the 64K guard page atthe bottom of the stack is not overwritten.2011-09-05 Thomas Quinot <quinot@adacore.com>* exp_intr.adb, s-tasini.adb: Minor reformatting.2011-09-05 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (Access_Definition): If an access type declarationappears in a child unit, the scope of whatever anonymous typemay be generated is the child unit itself.2011-09-05 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (Analyze_Expression_Function): Do not setComes_From_Source on rewritten body.(Analyze_Subprogram_Body_Helper): Check that the original node forthe body comes from source, when determining whether expansionof a protected operation is needed.2011-09-05 Ed Schonberg <schonberg@adacore.com>* exp_aggr.adb (Replace_Type): If the target of the assignment isa selected component and the right-hand side is a self-referentialaccess, the proper prefix of the rewritten attribute is a copyof the left-hand side, not of its prefix.2011-09-05 Robert Dewar <dewar@adacore.com>* sem_ch5.adb: Minor reformatting.* sem_ch3.adb: Minor code clean up.2011-09-05 Jose Ruiz <ruiz@adacore.com>* exp_ch9.adb (Make_Initialize_Protection): The fact thatrestriction No_Dynamic_Attachment is in effect or not shouldnot influence the default priority associated to a protectedobject. With this change, when the restriction is in effect (asis the case for the Ravenscar profile) the default priority ofa protected object with an interrupt handler is in the range ofinterrupt priorities (Default_Interrupt_Priority) as requiredby D.3(10).2011-09-05 Arnaud Charlet <charlet@adacore.com>* a-iteint.ads: Fix header.2011-09-05 Vincent Celier <celier@adacore.com>* prj-conf.adb (Do_Autoconf): Make sure Obj_Dir always endswith a directory separator to avoid output such as:"/path/to/objauto.cgpr" has been deleted.2011-09-05 Robert Dewar <dewar@adacore.com>* sem_ch3.adb: Minor reformatting.2011-09-05 Ed Schonberg <schonberg@adacore.com>* sem_ch5.adb: Better error message.2011-09-05 Hristian Kirtchev <kirtchev@adacore.com>* exp_aggr.adb: Add with and use clause for Exp_Ch6.(Expand_Array_Aggregate): Detect a special case of an aggregatewhich contains tasks in the context of an unexpanded returnstatement of a build-in-place function.* exp_ch6.adb: Add with and use clause for Exp_Aggr.(Expand_N_Extended_Return_Statement): Detect a delayed aggregatewhich contains tasks and expand it now that the original simplereturn statement has been rewritten.* exp_ch9.adb (Build_Activation_Chain_Entity): Codereformatting. Do not create a chain for an extended returnstatement if one is already available.(Has_Activation_Chain): New routine.2011-09-05 Marc Sango <sango@adacore.com>* sem_ch3.adb (Analyze_Object_Declaration): Removethe wrong test and add the correct test to detect the violationof illegal use of unconstrained string type in SPARK mode.2011-09-05 Ed Schonberg <schonberg@adacore.com>* sem_ch5.adb (Analyze_Iteration_Specification): Improve errormessage on an iterator over an array.2011-09-05 Robert Dewar <dewar@adacore.com>* lib-xref-alfa.adb: Minor reformatting.2011-09-05 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, sem_res.adb, par.adb, par-ch6.adb, g-comlin.adb,exp_ch6.adb, lib-xref-alfa.adb: Minor reformatting.2011-09-05 Gary Dismukes <dismukes@adacore.com>* exp_ch7.adb, exp_ch6.adb: Minor reformatting.2011-09-05 Johannes Kanig <kanig@adacore.com>* lib-xref-alfa.adb: Update comments.2011-09-05 Thomas Quinot <quinot@adacore.com>* sem_res.adb: Minor reformatting2011-09-05 Ed Schonberg <schonberg@adacore.com>* exp_ch6.adb (Build_In_Place_Formal): If extra formals are notpresent, create them now. Needed in case the return type wasa limited view in the function declaration.(Make_Build_In_Place_Call_In_Allocator): If return type containstasks, build the activation chain for it. Pass a reference tothe Master_Id in call to Add_Task_Actuals_To_Build_In_Place call.* exp_ch7.adb (Make_Set_Finalize_Address_Call): Clean up interfacewith build_in_place calls.* sem_ch9.adb (Analyze_Task_Type_Declaration): If partial view wasincomplete, inatialize its Corresponding_Record_Type component.* sem_ch10.adb (Build_Chain): Initialize Private_Dependents fieldof limited views.2011-09-05 Johannes Kanig <kanig@adacore.com>* lib-xref-alfa.adb (Is_Alfa_Reference): Filter constants from effectinformation.2011-09-05 Ed Schonberg <schonberg@adacore.com>* par-ch6.adb (P_Subprogram): In Ada2012 mode, if the subprogramappears within a package specification and the token after "IS"is not a parenthesis, assume that this is an unparenthesizedexpression function, even if the token appears in a line byitself.* par.adb: Clarify use of Labl field of scope stack in errorrecovery.2011-09-05 Bob Duff <duff@adacore.com>* sem_res.adb (Resolve_Intrinsic_Operator): Use uncheckedconversions instead of normal type conversions in all cases where atype conversion would be illegal. In particular, use uncheckedconversions when the operand types are private.2011-09-05 Johannes Kanig <kanig@adacore.com>* lib-xref-alfa.adb (Is_Alfa_Reference): Never declare effects onobjects of task type or protected type.2011-09-05 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (Analyze_Expression_Function): If the expressionfunction comes from source, indicate that so does its rewriting,so it is compatible with any subsequent expansion of thesubprogram body (e.g. when it is a protected operation).* sem_ch4.adb: minor reformatting2011-09-05 Hristian Kirtchev <kirtchev@adacore.com>* lib.adb (Check_Same_Extended_Unit): Comment rewriting. UseGet_Source_Unit rather than Get_Code_Unit as instantiation unfoldingmay lead to wrong ancestor package in the case of instantiated subunitbodies. If a subunit is instantiated, follow the chain of instantiationsrather than the stub structure.2011-09-02 Robert Dewar <dewar@adacore.com>* sem_ch4.adb, sem_ch6.adb: Minor reformatting.* gcc-interface/Make-lang.in: Update dependencies.2011-09-02 Marc Sango <sango@adacore.com>* sem_ch3.adb (Analyze_Object_Declaration): Changecomment and add additional check to differentiate constant oftype string from others unconstrained type.2011-09-02 Ed Schonberg <schonberg@adacore.com>* sinfo.ads, sinfo.adb: New semantic attribute Premature_Use,present in incomplete type declarations to refine the errormessage the full declaration is in the same unit.* sem_ch4.adb (Analyze_Selected_Component): If the prefix is ofan incomplete type, set the Premature_Use for additional message.* sem_ch3.adb (Find_Type_Name): If partial view is incompleteand Premature_Use is set, place additional information at thepoint of premature use.2011-09-02 Bob Duff <duff@adacore.com>* sem_ch6.adb: (Check_Post_State): Suppress warning"postcondition refers only to pre-state" when the expression has notyet been analyzed, because it causes false alarms. This can happen whenthe postcondition contains a quantified expression, because those areanalyzed later. This is a temporary/partial fix.(Process_Post_Conditions): Minor: change wording of warning.2011-09-02 Marc Sango <sango@adacore.com>* sem_ch3.adb (Analyze_Object_Declaration): Detect the violation ofillegal use of unconstrained string type in SPARK mode.* sem_res.adb (Analyze_Operator_Symbol): Set theright place where the string operand of concatenation should beviolate in SPARK mode.2011-09-02 Robert Dewar <dewar@adacore.com>* sem_prag.adb, sem_util.adb, sem_ch6.adb, prj-nmsc.adb,exp_ch3.adb: Minor reformatting.2011-09-02 Vincent Celier <celier@adacore.com>* prj-conf.adb (Add_Default_GNAT_Naming_Scheme): Declare "gcc"as the compiler driver so Is_Compilable returns True for sources.* prj-nmsc.adb (Override_Kind): When Kind is Sep, set the sourcefor the body.2011-09-02 Ed Schonberg <schonberg@adacore.com>* sem_prag.adb (Analyze_PPC_In_Decl_Part): for a class-widecondition, a reference to a controlling formal must be interpretedas having the class-wide type (or an access to such) so that theinherited condition can be properly applied to any overridingoperation (see ARM12 6.6.1 (7)).2011-09-02 Tristan Gingold <gingold@adacore.com>* init.c (__gnat_is_vms_v7): Fix case and add prototypefor LIB$GETSYI.2011-09-02 Javier Miranda <miranda@adacore.com>* exp_ch3.adb (Expand_N_Object_Declaration): Do not copy theinitializing expression of a class-wide interface object declarationif its type is limited.2011-09-02 Johannes Kanig <kanig@adacore.com>* sem_util.adb (Unique_Name): To obtain a unique name for enumerationliterals, take into account the type name; the type is *not*the scope for an enumeration literal.2011-09-02 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (Check_Overriding_Indicator): add special checkto reject an overriding indicator on a user-defined Adjustsubprogram for a limited controlled type.2011-09-02 Ed Schonberg <schonberg@adacore.com>* sem_res.adb (Resolve_Actuals): add missing call to Resolvefor an actual that is a function call returning an unconstrainedlimited controlled type.2011-09-02 Tristan Gingold <gingold@adacore.com>* g-socthi-vms.adb (c_sendmsg, c_recvmsg): Use unpacked msg if on vms 72011-09-02 Johannes Kanig <kanig@adacore.com>* alfa.ads (Name_Of_Heap_Variable): Change value of the HEAP variablefrom "HEAP" to __HEAP Change comment that refers to that variable* put_alfa.adb: Change comment that refers to that variable2011-09-02 Robert Dewar <dewar@adacore.com>* exp_ch4.adb, exp_ch6.adb, prj-nmsc.adb: Minor reformatting.2011-09-02 Hristian Kirtchev <kirtchev@adacore.com>* exp_util.adb (Extract_Renamed_Object): Renamed toFind_Renamed_Object. This routine has been reimplemented and now usestree traversal to locate a renamed object.(Is_Aliased): Replace call to Extract_Renamed_Object withFind_Renamed_Object.2011-09-02 Tristan Gingold <gingold@adacore.com>* init.c: (__gnat_is_vms_v7): New function.2011-09-02 Olivier Hainque <hainque@adacore.com>* tracebak.c (STOP_FRAME, ppc elf/vxworks case): Stop on framesthat have a misaligned backchain, necessarily bogus.2011-09-02 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Do not createTSS routine Finalize_Address when compiling in Alfa mode.(Expand_Freeze_Record_Type): Do not create TSS routineFinalize_Address when compiling in Alfa mode.* exp_ch4.adb (Expand_Allocator_Expression): Do not produce acall to Set_Finalize_Address in Alfa mode because Finalize_Address isnot built.(Expand_N_Allocator): Do not produce a call toSet_Finalize_Address in Alfa mode because Finalize_Address is not built.* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Do notproduce a call to primitive Set_Finalize_Address in Alfa mode becauseFinalize_Address is not built.* exp_ch7.adb (Build_Finalization_Master): Do not createfinalization masters in Afa mode since they are not needed.(Build_Finalizer): Do not create scope and library-levelfinalizers in Alfa mode since they are not needed.* exp_util.adb (Build_Allocate_Deallocate_Proc): Do not expand"new" and "free" when applied to controlled objects in Alfa mode sincethis is not needed.2011-09-02 Vincent Celier <celier@adacore.com>* prj-nmsc.db: (Check_Stand_Alone_Library): For SALs, allowonly library names with the syntax of Ada identifiers, to avoid errorswhen compiling the binder generated files.* projects.texi: Document restriction on SAL library names2011-09-02 Thomas Quinot <quinot@adacore.com>* a-chtgbo.adb: Minor comment fix.2011-09-02 Robert Dewar <dewar@adacore.com>* lib-xref.adb: Minor reformatting2011-09-02 Vincent Celier <celier@adacore.com>* bindusg.adb, clean.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,gnatls.adb, gnatname.adb, gnatxref.adb, gprep.adb, makeusg.adb: Add--version and --help in usage.* switch.ads, switch.adb (Display_Usage_Version_And_Help): New procedure2011-09-02 Bob Duff <duff@adacore.com>* lib-xref.adb: (Hash): Avoid use of 'Mod attribute, because oldcompilers don't understand it.2011-09-02 Gary Dismukes <dismukes@adacore.com>* exp_attr.adb (Expand_N_Attribute_Reference): Pass theunderlying subtype rather than its base type on the call toBuild_Record_Or_Elementary_Input_Function, so that anyconstraints on a discriminated subtype will be available fordoing the check required by AI05-0192.* exp_strm.adb (Build_Record_Or_Elementary_Input_Function):If the prefix subtype of the 'Input attribute is a constraineddiscriminated subtype, then check each constrained discriminant valueagainst the corresponding value read from the stream.2011-09-02 Yannick Moy <moy@adacore.com>* usage.adb, warnsw.adb, sem_ch6.adb, opt.ads: Disable by defaultwarnings on suspicious contracts, and enable them with -gnatwa.2011-09-02 Robert Dewar <dewar@adacore.com>* exp_util.adb, exp_ch9.adb, sem_attr.adb, sem_ch6.adb: Minorreformatting.2011-09-02 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch9.adb (Install_Private_Data_Declarations): Add guardswhich ensure that restriction No_Dynamic_Attachment has not beenviolated.(Make_Initialize_Protection): Protected types with attach orinterrupt handlers must not violate restriction No_Dynamic_Attachment.* exp_util.adb (Corresponding_Runtime_Package): Add a guardwhich ensures that restriction No_Dynamic_Attachment has not beenviolated.* sem_attr.adb: (Eval_Attribute): TransformVAX_Float_Type'First and 'Last into references tothe temporaries which store the corresponding bounds. Thetransformation is needed since the back end cannot evaluate'First and 'Last on VAX.(Is_VAX_Float): New routine.2011-09-02 Ed Schonberg <schonberg@adacore.com>* sem_ch12.adb (Analyze_Subprogram_Instantiation): If thegeneric unit is not intrinsic and has an explicit convention,the instance inherits it.2011-09-02 Robert Dewar <dewar@adacore.com>* prj-dect.adb, prj-env.adb, prj-nmsc.adb, prj-proc.adb, prj-tree.adb,prj.adb, prj.ads, sem_ch5.adb: Minor reformatting.2011-09-02 Thomas Quinot <quinot@adacore.com>* sem_attr.adb (Analyze_Attribute, case Unrestriced_Access):Guard against a prefix that is an N_Has_Entity but has noassociated entity.2011-09-02 Yannick Moy <moy@adacore.com>* lib-xref-alfa.adb (Is_Alfa_Reference): Ignore IN parameters in Alfareferences.2011-09-02 Yannick Moy <moy@adacore.com>* opt.ads (Warn_On_Suspicious_Contract): New warning flag.* sem_ch3.adb (Analyze_Declarations): Call checker for suspiciouscontracts.* sem_ch6.adb, sem_ch6.ads (Check_Subprogram_Contract): Newprocedure looking for suspicious postconditions.* usage.adb (Usage): New options -gnatw.t and -gnatw.T.* warnsw.adb (Set_Dot_Warning_Switch): Take into account newoptions -gnatw.t and -gnatw.T.2011-09-02 Pascal Obry <obry@adacore.com>* prj.adb: Minor code refactoring. Move check for null project inProject_Changed.* projects.texi: Fix minor typos.2011-09-02 Ed Schonberg <schonberg@adacore.com>* sem_ch5.adb (Analyze_Iterator_Specification): If the domainof iteration is an expression, its value must be captured in arenaming declaration, so that modification of the elements ispropagated to the original container.2011-09-02 Pascal Obry <obry@adacore.com>* prj-proc.adb, prj.adb, makeutl.adb, makeutl.ads, prj-dect.adb,prj-nmsc.adb, prj-util.adb, prj-conf.adb, prj-env.adb,prj-tree.adb: Minor reformatting and style fixes.2011-09-02 Robert Dewar <dewar@adacore.com>* s-rident.ads: Add new restriction No_Implicit_Aliasing* sem_attr.adb: (Analyze_Access_Attribute): Deal withNo_Implicit_Aliasing(Analyze_Attribute, case Address): ditto(Analyze_Attribute, case Unrestricted_Access): ditto* sem_util.ads, sem_util.adb: (Is_Aliased_View): HandleNo_Implicit_Aliasing restriction.* gnat_rm.texi: Add documentation for No_Implicit_Aliasing2011-09-02 Ed Schonberg <schonberg@adacore.com>* exp_util.adb: (Possible_Bit_Aligned_Object): If the objectis an unchecked conversion, apply test to its expression.2011-09-02 Javier Miranda <miranda@adacore.com>* sem_ch3.adb (Check_Abstract_Overriding): Whentraversing the chain of aliased subprograms avoid reporting aredundant error on the current entity.2011-09-02 Sergey Rybin <rybin@adacore.com>* gnat_ugn.texi: Minor clean up.2011-09-02 Bob Duff <duff@adacore.com>* s-htable.adb (Set_If_Not_Present): Use renaminginstead of ":=", because the type Key is limited in the generic (evenif not in the instances).2011-09-02 Robert Dewar <dewar@adacore.com>* exp_util.adb, sem_ch10.adb, sem_attr.adb, s-htable.adb,g-comlin.adb, g-comlin.ads, lib-xref-alfa.adb, lib-xref.adb: Minorreformatting.2011-09-02 Hristian Kirtchev <kirtchev@adacore.com>* sem_ch3.adb: (Set_Anonymous_Type): Associate the itype of aninherited component with the enclosing derived type. Code reformatting.2011-09-02 Gary Dismukes <dismukes@adacore.com>* checks.adb: (Determine_Range): Add test of OK1 to prevent the earlyreturn done when overflow checks are enabled, since comparisons againstLor and Hir should not be done when OK1 is False.2011-09-02 Gary Dismukes <dismukes@adacore.com>* exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call):Add new formal Master_Exp. When present, add that expression to thecall as an extra actual.(Make_Build_In_Place_Call_In_Object_Declaration): Add variableFmaster_Actual and in the case of a BIP call initializing a returnobject of an enclosing BIP function set it to anew reference to the implicit finalization masterformal of the enclosing function. Fmaster_Actual isthen passed to the new formal Master_Exp on the call toAdd_Finalization_Master_Actual_To_Build_ In_Place_Call. Moveinitializations of Enclosing_Func to its declaration.2011-09-02 Thomas Quinot <quinot@adacore.com>* csets.ads: Minor reformatting2011-09-02 Hristian Kirtchev <kirtchev@adacore.com>* exp_aggr.adb: (Get_Constraint_Association): Add code to retrievethe full view of a private type coming from an instantiation.* exp_ch4.adb: (Current_Anonymous_Master): Reimplement the searchloop to iterate over the declarations rather than use theFirst_Entity / Next_Entity scheme.2011-09-02 Ed Schonberg <schonberg@adacore.com>* sem_attr.adb: (Analyze_Attribute, case 'Range): when expandingX'range (N) into X'First (N) .. X'Last (N), do not share thedimension indicator N, if present. Even though it is a staticconstant, its source location may be modified when printingexpanded code under -gnatDL, and node sharing will lead to chaosin Sprint on large files, by generating a sloc value that doesnot correspond to any source file.2011-09-02 Bob Duff <duff@adacore.com>* einfo.adb: (Has_Xref_Entry): Do not callImplementation_Base_Type. Lib.Xref has beenrewritten to avoid the need for it, and it was costly.* s-htable.ads,s-htable.adb: (Present,Set_If_Not_Present): Newfunctions in support of efficient xref.* lib-xref-alfa.adb: Misc changes related to Key component oftype Xref_Entry.* lib-xref.adb: (Add_Entry,etc): Speed improvement.(New_Entry): Call Implementation_Base_Type, because Has_Xref_Entryno longer does. This is the one place where it is needed.2011-09-02 Johannes Kanig <kanig@adacore.com>* g-comlin.adb (Getopt): New optional argument Concatenate to havesimilar interface as the other Getopt function.2011-09-02 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch4.adb: (Expand_Allocator_Expression): Do not generatea call to Set_Finalize_Address if there is no allocator available.* exp_util.adb: (Build_Allocate_Deallocate_Proc): Account fora case of allocator expansion where the allocator is not expanded butneeds a custom allocate routine. Code reformatting.(Is_Finalizable_Transient): Remove local variables Has_Rens andRen_Obj. Code reformatting.(Is_Renamed): Renamed to Is_Aliased. Add code to detect aliasingthrough the use of 'reference.* sem_ch4.adb: (Analyze_Allocator): Detect allocators generatedas part of build-in-place expansion. They are intentionally marked ascoming from source, but their parents are not.2011-09-02 Ed Schonberg <schonberg@adacore.com>* sem_ch10.adb (Analyze_With_Clause): If the library unitis the generated subprogram declaration for a child unit bodythat acts as spec, use the original body in the with_clause,to prevent binding errors.2011-09-02 Vincent Celier <celier@adacore.com>* gnat_ugn.texi: Adapt documentation of -gnateInnn to new VMSqualifier /MULTI_UNIT_INDEX=2011-09-02 Johannes Kanig <kanig@adacore.com>* g-comlin.adb (Getopt): Return when switch is dealt with automatically,instead of calling the callback function2011-09-02 Robert Dewar <dewar@adacore.com>* prj-proc.adb, prj.ads, sem_util.adb, s-taprop-linux.adb,prj-nmsc.adb, prj-util.ads, prj-env.adb: Minor reformatting.2011-09-02 Vincent Celier <celier@adacore.com>* prj-nmsc.adb: (Find_Sources): When the list of sources isexplicitly declared in an extending project, do not warn if a sourcefor an inherited naming exception is not found.2011-09-02 Gary Dismukes <dismukes@adacore.com>* exp_ch6.adb: (Is_Build_In_Place_Function_Call): Return False ifexpansion is inactive.2011-09-02 Ed Schonberg <schonberg@adacore.com>* sem_util.adb (Note_Possible_Modification): If the entitybeing modified is the renaming generated for an Ada2012 iteratorelement, the enclosing container or array is modified as well.2011-09-02 Jose Ruiz <ruiz@adacore.com>* s-taprop-linux.adb (Initialize_Lock, Initialize_TCB,Initialize): Define and initialize themutex attributes and condition variable attributes locally.2011-09-02 Vincent Celier <celier@adacore.com>* prj-nmsc.adb (Check_File): Mark as Locally_Removed a namingexception replaced in an extending project.(Check_Object): No error when the other source is locally removed.2011-09-02 Yannick Moy <moy@adacore.com>* exp_ch6.adb (Is_Build_In_Place_Function_Call): in Alfa mode, allowunresolved calls.2011-08-31 Arnaud Charlet <charlet@adacore.com>* gcc-interface/Makefile.in: Clean up handling of x86 and x86-64run-time files.* gcc-interface/Make-lang.in: Update dependencies.2011-09-01 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, s-taprop-linux.adb, gnatls.adb: Minor reformatting.2011-09-01 Jose Ruiz <ruiz@adacore.com>* adaint.h (__gnat_cpu_free): Fix the name of this profile.* adaint.c (__gnat_cpu_alloc, __gnat_cpu_alloc_size, __gnat_cpu_free,__gnat_cpu_zero, __gnat_cpu_set): Create version of these subprogramsspecific for systems where their glibc version does not define theroutines to handle dynamically allocated CPU sets.2011-09-01 Vincent Celier <celier@adacore.com>* prj-proc.adb, prj.ads, prj-nmsc.adb, prj-util.adb, prj-util.ads,prj-env.adb: Implement inheritance of naming exceptions in extendingprojects.2011-09-01 Romain Berrendonner <berrendo@adacore.com>* gnatls.adb: Display simple message instead of content ofgnatlic.adl.2011-09-01 Hristian Kirtchev <kirtchev@adacore.com>* sem_ch3.adb: (Build_Derived_Record_Type) Remove the kludgy update ofaccess discriminant and anonymous access component scopes.(Inherit_Component): Reuse the itype of an access discriminantor anonymous access component by copying it in order to set the properscope. This is done only when the parent and the derived typeare in different scopes.(Set_Anonymous_Etype): New routine.2011-09-01 Robert Dewar <dewar@adacore.com>* a-convec.adb: Minor reformatting throughout.2011-09-01 Jose Ruiz <ruiz@adacore.com>* adaint.c, adaint.h (__gnat_cpu_alloc, __gnat_cpu_alloc_size,__gnat_cpu_set_free): Create these wrappers around the CPU_ALLOC,CPU_ALLOC_SIZE and CPU_FREE linux macros.(__gnat_cpu_zero, __gnat_cpu_set): Use the CPU_ZERO_S andCPU_SET_S respectively because we are now using dynamically allocatedCPU sets which are more portable across different glibc versions.* s-osinte-linux.ads (cpu_set_t_ptr, CPU_ALLOC, CPU_ALLOC_SIZE,CPU_FREE): Add this type and subprograms to be able to create cpu_set_tmasks dynamically according to the number of processors in the targetplatform.(CPU_ZERO, CPU_SET): They are now mapped to the CPU_ZERO_S and CPU_SET_Srespectively, so we need to pass the size of the masks asparameters.* s-taprop-linux.adb (Create_Task, Set_Task_Affinity): Use dynamicallycreated cpu_set_t maskswith the number of processors available in the target platform,instead of static bit arrays. It enhances portability becauseit uses the information from the target platform.* sem_ch8.adb: (Attribute_Renaming): When checking whether weare using a restricted run-time library, use the flagConfigurable_Run_Time_Mode instead of Restricted_Profile.2011-09-01 Vincent Celier <celier@adacore.com>* ug_words: Add /MULTI_UNIT_INDEX= -> -gnateI* vms_data.ads: Add new VMS qualifier equivalent for -gnateInnn2011-09-01 Nicolas Roche <roche@adacore.com>* adaint.c (__gnat_tmp_name): Don't use tmpnam function from the systemon VxWorks in kernel mode.2011-09-01 Jose Ruiz <ruiz@adacore.com>* s-taprop-linux.adb (Create_Task, Set_Task_Affinity): Use the linuxmacros for handling CPU sets (CPU_ZERO, CPU_SET) instead of modifyingdirectly the bit array.* s-osinte-linux.ads (CPU_ZERO, CPU_SET): Import these wrappers aroundthe linux macros with the same name.* adaint.h, adaint.c (__gnat_cpu_zero, __gnat_cpu_set): Create thesewrappers around the CPU_ZERO and CPU_SET linux macros.2011-09-01 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch7.adb (Find_Insertion_List): Removed.(Process_Transient_Objects): Insert the declarations of the hookaccess type and the hook object before the associated transient object.2011-09-01 Jose Ruiz <ruiz@adacore.com>* sem_ch8.adb (Attribute_Renaming): Add missing check to avoid loadingpackage System.Aux_Dec when using restricted run-time libraries whichdo not have this package.2011-09-01 Tristan Gingold <gingold@adacore.com>* s-vaflop-vms-alpha.adb: Remove pragma optimize, useless.2011-09-01 Bob Duff <duff@adacore.com>* sem_attr.adb (Analyze_Access_Attribute): Do not callKill_Current_Values for P'Unrestricted_Access, where P is library level2011-09-01 Thomas Quinot <quinot@adacore.com>* exp_ch5.adb: Minor reformatting* gnat_ugn.texi: Fix minor typos.* gcc-interface/Make-lang.in: Update dependencies.2011-09-01 Robert Dewar <dewar@adacore.com>* inline.adb, sem_aggr.adb: Minor reformatting.2011-09-01 Ed Schonberg <schonberg@adacore.com>* a-convec.adb: Proper handling of cursors for Ada2012 iterators.2011-09-01 Robert Dewar <dewar@adacore.com>* prj-proc.adb, exp_ch6.adb, prj-env.adb: Minor reformatting.2011-09-01 Bob Duff <duff@adacore.com>* sem_aggr.adb (Resolve_Aggregate): Need to treat "in instancebody" the same as "in inlined body", because visibility shouldn'tapply there.2011-09-01 Eric Botcazou <ebotcazou@adacore.com>* inline.adb (Add_Inlined_Body): Refine previous change.2011-09-01 Gary Dismukes <dismukes@adacore.com>* exp_ch6.ads (Needs_BIP_Alloc_Form): New utility function.* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):Test for case where callinitializes an object of a return statement before testing fora constrained call, to ensure that all such cases get handledby simply passing on the caller's parameters. Also, in thatcase call Needs_BIP_Alloc_Form to determine whether to pass onthe BIP_Alloc_Form parameter of the enclosing function ratherthan testing Is_Constrained. Add similar tests for the returnof a BIP call to later processing to ensure consistent handling.(Needs_BIP_Alloc_Form): New utility function.* sem_ch6.adb: (Create_Extra_Formals): Replace test for addinga BIP_Alloc_Form formal with call to new utility functionNeeds_BIP_Alloc_Form.2011-09-01 Pascal Obry <obry@adacore.com>* prj-part.adb: Minor reformatting.2011-09-01 Vincent Celier <celier@adacore.com>* prj-env.adb (Create_Mapping_File.Process): Encode the upperhalf character in the unit name.2011-09-01 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch4.adb: Minor code and comment reformatting.2011-09-01 Thomas Quinot <quinot@adacore.com>* exp_ch6.adb (Expand_Inlined_Call): Remove redundant testsfor Is_Limited_Type and Is_Tagged_Type in condition checkingfor by-reference type.* inline.adb (Add_Inlined_Body): Only exclude init_procs. Othersubprograms may have a completion because of a previousInline_Always clause, but the enclosing package must be markedinlined for the subprogram body to become visible to the backend.2011-09-01 Thomas Quinot <quinot@adacore.com>* sem_aux.adb, exp_ch4.adb: Minor reformatting2011-09-01 Pascal Obry <obry@adacore.com>* prj-proc.adb, prj.ads, sinput-p.adb: Minor reformatting.2011-09-01 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Generate references tothe formals of a subprogram stub that acts as a spec.2011-09-01 Ed Schonberg <schonberg@adacore.com>* exp_ch6.adb (Expand_Inlined_Call): If an actual is a by_referencetype, declare a renaming for it, not an object declaration.2011-09-01 Yannick Moy <moy@adacore.com>* ali-util.adb, ali-util.ads (Read_Withed_ALIs): Add parameterIgnore_Errors to ignore failures to read ALI files when True.2011-09-01 Javier Miranda <miranda@adacore.com>* exp_ch3.adb (Expand_N_Object_Declaration): Handle non-defaultconstructor calls associated with non-tagged record types.2011-09-01 Robert Dewar <dewar@adacore.com>* g-socthi-vms.adb: Minor reformatting.2011-09-01 Nicolas Roche <roche@adacore.com>* sysdep.c: Don't use macro functions for stdio functions on VxWorksin order to avoid impact of imcompatible changes.* cstreams.c: Likewise* cio.c: Likewise* aux-io.c: Likewise2011-09-01 Yannick Moy <moy@adacore.com>* lib-writ.adb (Write_With_Lines): Always output complete informationon "with" line in Alfa mode, as this is required by formal verificationback-end.2011-09-01 Tristan Gingold <gingold@adacore.com>* g-socthi-vms.adb: Add comments.2011-09-01 Pascal Obry <obry@adacore.com>* prj.ads: Minor reformatting.2011-09-01 Vincent Celier <celier@adacore.com>* prj-env.adb (Create_Config_Pragmas_File.Check): Put all namingexceptions in the config pragmas file.2011-09-01 Tristan Gingold <gingold@adacore.com>* gnat_ugn.texi: Document GNAT_STACK_SIZE on IVMS.2011-09-01 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch7.adb (Find_Insertion_List): New routine.(Process_Transient_Objects): Add code to handle the abnormalfinalization of a controlled transient associated with a subprogramcall. Since transients are cleaned up right after the associatedcontext, an exception raised during a subprogram call may bypass thefinalization code.2011-09-01 Robert Dewar <dewar@adacore.com>* exp_ch6.adb (Expand_Call): Check actual for aliased parameter isaliased.2011-09-01 Robert Dewar <dewar@adacore.com>* exp_ch4.adb, a-exexda.adb: Minor reformatting.2011-09-01 Robert Dewar <dewar@adacore.com>* s-taskin.ads, s-tassta.adb, sem_ch13.adb: Minor reformatting.2011-09-01 Thomas Quinot <quinot@adacore.com>* Makefile.rtl: Move s-oscons.o from GNATRTL_TASKING_OBJS toGNATRTL_NONTASKING_OBJS.2011-09-01 Robert Dewar <dewar@adacore.com>* einfo.ads (Is_Aliased): Fix existing documentation and add note onpossibility of this flag being set for formals in Ada 2012 mode.* par-ch6.adb (P_Formal_Part): Handle aliased for parameters for Ada2012.* sem_ch6.adb (Process_Formals): Handle aliased parameters in Ada 2012mode.* sinfo.adb (Aliased_Present): Allowed in N_Parameter_Specification forAda 2012.* sinfo.ads (Aliased_Present): Allowed in N_Parameter_Specification forAda 2012.2011-09-01 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch4.adb (Find_Insertion_Node): New routine. Determines the properinsertion node in a tree of nested Expression_With_Actions nodes.(Process_Transient_Object): In the case where a complex if statementhas been converted into nested Expression_With_Actions nodes, the"hook" object and the associated access type must be inserted beforethe top most Expression_With_Actions.2011-09-01 Robert Dewar <dewar@adacore.com>* a-cbprqu.adb, a-cbprqu.ads, a-cuprqu.adb, a-cuprqu.ads,a-cbsyqu.adb, a-cbsyqu.ads: Minor reformatting.2011-09-01 Ed Schonberg <schonberg@adacore.com>* sem_attr.adb: Conditionalize aliasing predicates to Ada2012.2011-09-01 Jose Ruiz <ruiz@adacore.com>* aspects.ads (Aspect_Id, Aspect_Argument, Aspect_Names): Add the CPUaspect.* aspects.adb (Canonical_Aspect): Add entry for the CPU aspect.* sem_ch13.adb (Analyze_Aspect_Specifications): Analyze the CPU aspectin a similar way as we do for the Priority or Dispatching_Domain aspect.* s-mudido-affinity.adb (Dispatching_Domain_Tasks,Dispatching_Domains_Frozen): Move this local data to packageSystem.Tasking because with the CPU aspect we need to have accessto this data when creating the task in System.Tasking.Stages.Create_Task* s-taskin.ads (Dispatching_Domain_Tasks, Dispatching_Domains_Frozen):Move these variables from the body ofSystem.Multiprocessors.Dispatching_Domains because with the CPU aspectwe need to have access to this data when creating the task inSystem.Tasking.Stages.Create_Task.* s-taskin.adb (Initialize): Signal the allocation of the environmenttask to a CPU, if any, so that we know whether the CPU can betransferred to a different dispatching domain.* s-tassta.adb (Create_Task): Check whether the CPU to which this taskis being allocated belongs to the dispatching domain where the tasklives. Signal the allocation of the task to a CPU, if any, so that weknow whether the CPU can be transferred to a different dispatchingdomain.2011-09-01 Ed Schonberg <schonberg@adacore.com>* exp_attr.adb, sem_attr.adb, snames.ads-tmpl: Implementation ofattributes Same_Storage and Overlaps_Storage.2011-09-01 Hristian Kirtchev <kirtchev@adacore.com>* exp_strm.adb: Remove with and use clause for Opt.(Build_Array_Input_Function): Remove the version-dependent generationof the return statement. The Ada 2005 tree is now the default.2011-09-01 Yannick Moy <moy@adacore.com>* put_alfa.adb: Unconditionnally write files in Alfa section, so thatit is never empty when compiling in Alfa mode.2011-09-01 Robert Dewar <dewar@adacore.com>* sem_aggr.adb, sem_ch3.adb, a-direct.adb, s-taprop-vxworks.adb,comperr.adb, exp_ch9.adb, exp_pakd.adb, sem_ch12.adb, freeze.adb,s-taprop-mingw.adb, s-taprop-linux.adb, s-taprop-solaris.adb,gnat1drv.adb, a-rbtgbo.adb, exp_dist.adb: Minor reformatting2011-09-01 Matthew Heaney <heaney@adacore.com>* Makefile.rtl, impunit.adb: Add a-csquin.ads, a-cusyqu.ad[sb],a-cuprqu.ad[sb], a-cbsyqu.ad[sb], a-cbprqu.ad[sb]* a-csquin.ads: New Ada 2012 unit that specifies the queue interface* a-cusyqu.ads, a-cusyqu.adb: New Ada 2012 unit that specifies theunbounded queue container.* a-cbsyqu.ads, a-cbsyqu.adb: New Ada 2012 unit that specifies thebounded queue container.* a-cuprqu.ads, a-cuprqu.adb: New Ada 2012 unit that specifies theunbounded priority queue container.* a-cbprqu.ads, a-cbprqu.adb: New Ada 2012 unit that specifies thebounded priority queue container.2011-08-31 Pascal Obry <obry@adacore.com>* a-direct.adb: Do not try to create an UNC path on Windows.(Create_Path): Skip leading computer name in UNC path if any.2011-08-31 Hristian Kirtchev <kirtchev@adacore.com>* exp_strm.adb (Build_Record_Or_Elementary_Input_Function): Remove theversion-dependent generation of the return statement. The Ada 2005 treeis now the default.2011-08-31 Thomas Quinot <quinot@adacore.com>* rtsfind.ads, exp_dist.adb (Find_Numeric_Representation): Predefinedtypes Stream_Element_Offset and Storage_Offset have a different nativetype depending on whether the platform is 32 or 64 bits. Whenexchanging them, always convert to 64 bits.2011-08-31 Yannick Moy <moy@adacore.com>* debug.adb: Reserve debug option -gnatd.E for passing gnatprove option--force-alfa to gnat2why.2011-08-31 Ed Schonberg <schonberg@adacore.com>* sem_ch12.adb (Save_References): If the node has aspects, savereferences within the corresponding expressions in a separate step,because the aspects are not directly in the tree for the declarationto which they belong.2011-08-31 Arnaud Charlet <charlet@adacore.com>* freeze.adb (Freeze_Record_Type): Omit test on variable size componentin CodePeer mode, since representation clauses are partially ignored.* gcc-interface/Make-lang.in: Update dependencies.2011-08-31 Jose Ruiz <ruiz@adacore.com>* s-taprop-vxworks.adb, s-taprop-mingw.adb, s-taprop-linux.adb,s-taprop-solaris.adb (Create_Task): Not_A_Specific_CPU can be assignedto any dispatching domain.2011-08-31 Thomas Quinot <quinot@adacore.com>* exp_ch4.adb: Minor reformatting.2011-08-31 Bob Duff <duff@adacore.com>* sem_ch6.adb (Get_Generic_Parent_Type): Don't query Subtype_Indicationon nodes for which it is not defined.(Is_Non_Overriding_Operation): Exit the loop when we find a genericparent type.2011-08-31 Bob Duff <duff@adacore.com>* sem_ch3.adb (Process_Full_View): Disable legality check ifIn_Instance, to avoid spurious errors.* sem_ch12.adb (Validate_Derived_Type_Instance): Disable legality checkif In_Instance, to avoid spurious errors.2011-08-31 Pascal Obry <obry@adacore.com>* a-direct.adb: Use Dir_Seps everywhere to properly handle alldirectory speparators.(Compose): Use Dir_Seps to handle both forms.(Create_Path): Use Dir_Seps instead of explicit check, no semanticchanges.(Extension): Use Dir_Seps to handle both forms.2011-08-31 Pascal Obry <obry@adacore.com>* prj-conf.adb: Minor reformatting.2011-08-31 Jose Ruiz <ruiz@adacore.com>* aspects.ads (Aspect_Id, Aspect_Argument, Aspect_Names): Add thedispatching domain aspect.* aspects.adb (Canonical_Aspect): Add entry for the dispatching domainaspect.* sem_ch13.adb (Analyze_Aspect_Specifications): Analyze theDispatching_Domain aspect in a similar way as we do for the Priorityaspect.* exp_ch9.adb (Expand_N_Task_Type_Declaration): Add theDispatching_Domain component if a Dispatching_Domain pragma or aspectis present.(Make_Task_Create_Call): Add the Dispatching_Domain when creating a task* par-prag.adb (Prag): Add Pragma_Dispatching_Domain as a known pragma.* sem_prag.adb (Analyze_Pragma): Check the correctness of a pragmaDispatching_Domain and add it to the task definition.(Sig_Flags): Add Pragma_Dispatching_Domain.* rtsfind.ads, rtsfind.adb (RTU_Id, RE_Id, Get_Unit_Name): Add thesupport to find the types Dispatching_Domain andDispatching_Domain_Access.* sinfo.ads, sinfo.adb (Has_Pragma_Dispatching_Domain,Set_Has_Pragma_Dispatching_Domain): Add these subprograms to set andquery the availability of a pragma Dispatching_Domain.* snames.ads-tmpl (Name_uDispatching_Domain): Add this name required bythe expander to pass the Dispatching_Domain when creating a task.(Name_Dispatching_Domain): Add this new name for a pragma.(Pragma_Id): Add the new Pragma_Dispatching_Domain.* s-tassta.ads, s-tassta.adb (Create_Task): Set the domain to which thetask has been allocated at creation time.* s-tarest.adb (Create_Restricted_Task): The dispatching domain usingRavenscar is always null.* s-taskin.ads, s-taskin.adb (Initialize_ATCB): Set the domain to whichthe task has been allocated at creation time.* s-tporft.adb (Register_Foreign_Thread): A foreign task will not havea specific dispatching domain.* s-taprop-linux.adb, s-taprop-solaris.adb, s-taprop-vxworks.adb,s-taprop-mingw.adb (Create_Task): Check whether both Dispatching_Domainand CPU are specified for the task, and the CPU value is not containedwithin the range of processors for the domain.2011-08-31 Vincent Celier <celier@adacore.com>* make.adb (Original_Gcc) : New constant String_Access.(Gnatmake): For VM targets, do not use VM version of the compiler if--GCC= has been specified.2011-08-31 Thomas Quinot <quinot@adacore.com>* sem_ch5.adb: Minor reformatting.2011-08-31 Ed Schonberg <schonberg@adacore.com>* exp_pakd.adb (Convert_To_PAT_Type): If prefix is a function call, donot reanalyze it.2011-08-31 Bob Duff <duff@adacore.com>* exp_ch4.adb (Expand_N_Selected_Component): Use the full type, in casethe access type is private; we don't care about privacy in expansion.2011-08-31 Ed Schonberg <schonberg@adacore.com>* sem_aggr.adb (Resolve_Aggregate): In an instance, ignore aggregatesubcomponents tnat may be limited, because they originate in viewconflicts. If the original aggregate is legal and the actuals arelegal, the aggregate itself is legal.2011-08-31 Matthew Heaney <heaney@adacore.com>* a-rbtgbo.adb (Clear_Tree): Assert representation invariant for lockstatus.2011-08-31 Ed Schonberg <schonberg@adacore.com>* sem_ch5.adb: Set kind of loop parameter properly, to preserve allerrors in B tests.2011-08-31 Jose Ruiz <ruiz@adacore.com>* sem_ch13.adb (Analyze_Aspect_Specifications): For the Priority andInterrupt_Priority aspects, force the analysis of the aspect expression(when building the equivalent pragma). Otherwise, its analysis is donetoo late, after the task or protected object has been created.* sem_ch9.adb (Analyze_Single_Protected_Declaration,Analyze_Single_Task_Declaration): Remove the code to move the aspectsto the object declaration because they are needed in the typedeclaration.2011-08-31 Robert Dewar <dewar@adacore.com>* exp_ch5.adb, exp_ch7.ads, sem_ch5.adb, put_scos.adb, s-rannum.adb,a-rbtgbo.adb, exp_intr.adb, a-cbdlli.adb, a-cbdlli.ads: Minorreformatting.2011-08-31 Hristian Kirtchev <kirtchev@adacore.com>* exp_util.adb (Find_Protection_Type): Do not look for fields _objectif the corresponding type is malformed due to restriction violations.2011-08-31 Robert Dewar <dewar@adacore.com>* s-ransee.ads, s-ransee.adb: Minor reformatting.2011-08-31 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch4.adb (Expand_N_Allocator): Correct faulty condition whichwould cause the generation of Set_Finalize_Address if the target is aVM and the designated type is not derived from [Limited_]Controlled.2011-08-31 Arnaud Charlet <charlet@adacore.com>* comperr.adb, comperr.ads, gnat1drv.adb (Delete_SCIL_Files): Newsubprogram.(Compiler_Abort, Gnat1drv): Call Delete_SCIL_Files in codepeer mode incase of a compilation error.2011-08-31 Hristian Kirtchev <kirtchev@adacore.com>* init.c (__gnat_error_handler): Standardize the stack overflow orerroneous memory access message.* seh_init.c (__gnat_SEH_error_handler): Standardize the stack overflowor erroneous memory access message.2011-08-31 Robert Dewar <dewar@adacore.com>* sem_ch4.adb: Minor reformatting.* sem_ch6.adb: Minor code reorganization (use Ekind_In).2011-08-31 Thomas Quinot <quinot@adacore.com>* scos.ads: Minor documentation clarification.* put_scos.adb: Do not generate SCO unit header line for a unit thathas no SCO lines.2011-08-31 Robert Dewar <dewar@adacore.com>* a-rbtgbo.adb, alfa_test.adb: Minor reformatting.2011-08-31 Tristan Gingold <gingold@adacore.com>* exp_ch7.ads, exp_ch7.adb (Finalization_Exception_Data): New type tohold variables between these following subprograms.(Build_Exception_Handler, Build_Object_Declarations,Build_Raise_Statement): Use the above type as parameter.Make the above adjustments.* exp_intr.adb (Expand_Unc_Deallocation): Adjust.2011-08-31 Pascal Obry <obry@adacore.com>* projects.texi: Minor reformatting.2011-08-31 Tristan Gingold <gingold@adacore.com>* s-ransee.ads, s-ransee.adb: Add system.random_seed unit.* s-rannum.adb (Reset): Use Get_Seed from s-ransee.2011-08-31 Ed Schonberg <schonberg@adacore.com>* exp_ch5.adb: Minor code cleanup.* sem_ch5.adb (Analyze_Iteration_Scheme): Set ekind of loop variable toprevent cascaded errors.(Analyze_Loop_Statement): In semantics-only mode, introduce loopvariable of an iterator specification in current scope.* sem_ch6.adb (Analyze_Return_Statement, Find_what_It_Apples_To): Skippostconditions on the stack, as they contain no return statements.2011-08-31 Yannick Moy <moy@adacore.com>* exp_alfa.adb (Expand_Alfa_N_Package_Declaration,Expand_Alfa_N_Subprogram_Body): Remove useless procedures which simplycall Qualify_Entity_Names.(Expand_Alfa): call Qualify_Entity_Names in more cases* lib-xref-alfa.adb: Take into account system package.* sem_prag.adb Take into account restrictions in Alfa mode, contrary toCodePeer mode in which we are interested in finding bugs even ifcompiler cannot compile source.* sem_util.adb, sem_util.ads (Unique_Entity): Take into account case ofdeferred constant.2011-08-31 Gary Dismukes <dismukes@adacore.com>* sem_ch3.adb (Constrain_Concurrent): Retrieve Base_Type of the subtypedenoted by the subtype mark to ensure getting the concurrent type inthe case where the subtype mark denotes a private subtype of aconcurrent type (needed when using -gnatc).(Process_Subtype): For the processing specific to type kinds, case onthe Base_Type kind of the Subtype_Mark_Id, to handle cases where thesubtype denotes a private subtype whose base type is nonprivate (neededfor subtypes of private fulfilled by task types when compiling with-gnatc).2011-08-31 Gary Dismukes <dismukes@adacore.com>* sem_disp.adb (Check_Dispatching_Operation): Bypass registration oflate primitives that override interface operations when the fullexpander is not active, to avoid blowups in Register_Primitive whentypes don't have associated secondary dispatch tables.2011-08-31 Yannick Moy <moy@adacore.com>* alfa_test.adb: Code clean up.2011-08-31 Marc Sango <sango@adacore.com>* restrict.adb (Check_SPARK_Restriction): Change Comes_From_Source (N)by Comes_From_Source (Original_Node (N)) in order to treat also thenodes which have been rewritten.* sem_ch4.adb (Analyze_Explicit_Dereference, Analyze_Slice): Guard theexplicit dereference and slice violation in spark mode on the nodescoming only from the source code.2011-08-31 Robert Dewar <dewar@adacore.com>* exp_ch5.adb, exp_alfa.ads, prj.ads, sem_attr.adb,lib-xref-alfa.adb: Minor reformatting.2011-08-31 Matthew Heaney <heaney@adacore.com>* a-crbltr.ads (Tree_Type): Default-initialize the Nodes component.2011-08-31 Javier Miranda <miranda@adacore.com>* sem_ch4.adb (Try_Object_Operation): Addition of one formal to searchonly for class-wide subprograms conflicting with entities of concurrenttagged types.2011-08-31 Matthew Heaney <heaney@adacore.com>* a-rbtgbo.adb (Generic_Allocate): Initialize pointer components ofnode to null value.2011-08-31 Hristian Kirtchev <kirtchev@adacore.com>* sem_ch12.adb (Insert_Freeze_Node_For_Instance): Provide a moregeneral description of the routine.2011-08-31 Ed Schonberg <schonberg@adacore.com>* a-cbdlli.adb, a-cbdlli.ads: Add iterator machinery to boundeddoubly-linked lists.2011-08-31 Gary Dismukes <dismukes@adacore.com>* exp_ch5.adb (Expand_N_Assignment_Statement): When a discriminantcheck is needed for a left-hand side that is a dereference, and thebase type is private without discriminants (whereas the full type doeshave discriminants), an extra retrieval of the underlying type may beneeded in the case where the subtype is a record subtype whose basetype is private. Update comments.2011-08-31 Javier Miranda <miranda@adacore.com>* sem_ch4.adb (Try_Object_Operation): When a dispatching primitive isfound check if there is a class-wide subprogram covering the primitive.2011-08-31 Yannick Moy <moy@adacore.com>* sem_res.adb: Further cases where full expansion test is needed,rather than expansion test.2011-08-31 Pascal Obry <obry@adacore.com>* prj-attr.adb: Fix Source_File_Switches attribute kind (must be a list)2011-08-31 Ed Schonberg <schonberg@adacore.com>* exp_ch5.adb: Handle iterators over derived container types.2011-08-31 Hristian Kirtchev <kirtchev@adacore.com>* einfo.ads, einfo.adb: Add new flag Has_Anonymous_Master.(Has_Anonymous_Master): New routine.(Set_Has_Anonymous_Master): New routine.(Write_Entity_Flags): Add an entry for Has_Anonymous_Master.* exp_ch4.adb: Add with and use clause for Sem_Ch8.(Current_Anonymous_Master): New routine.(Current_Unit_First_Declaration): Removed.(Current_Unit_Scope): Removed.(Expand_N_Allocator): Anonymous access-to-controlled types now chaintheir objects on a per-unit heterogeneous finalization master.2011-08-31 Matthew Heaney <heaney@adacore.com>* a-cbhama.adb, a-cbhase.adb (Insert): Check for zero-length bucketsarray.2011-08-31 Jose Ruiz <ruiz@adacore.com>* s-taprop-linux.adb (Create_Task): Avoid changing the affinity maskwhen not needed.2011-08-31 Gary Dismukes <dismukes@adacore.com>* sem_disp.adb (Propagate_Tag): Return without propagating in the casewhere the actual is an unexpanded call to 'Input.2011-08-31 Yannick Moy <moy@adacore.com>* sem_ch4.adb: Code clean up.2011-08-31 Yannick Moy <moy@adacore.com>* exp_alfa.adb, exp_alfa.ads: Minor correction of copyright notice.2011-08-31 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch7.adb (Build_Array_Deep_Procs): Do not generate Deep_Finalizeand TSS primitive Finalize_Address if finalization is suppressed.(Build_Record_Deep_Procs): Do not generate Deep_Finalize and TSSprimitive Finalize_Address if finalization is suppressed.2011-08-31 Jose Ruiz <ruiz@adacore.com>* s-mudido-affinity.adb, s-taprop-linux.adb, s-taprop-mingw.adb,s-taprop-solaris.adb, s-taprop-vxworks.adb (Set_Task_Affinity): Makesure that the underlying task has already been created before tryingto change its affinity.(Set_CPU): Use the term processor instead of CPU, as we do inAssign_Task.2011-08-31 Vincent Celier <celier@adacore.com>* prj-attr.adb: New Compiler attribute Source_File_Switches.* prj-nmsc.adb (Process_Compiler): Process attributeSource_File_Switches.* prj.ads (Language_Config): New name list componentName_Source_File_Switches.* snames.ads-tmpl (Name_Source_File_Switches): New standard name.2011-08-31 Ed Schonberg <schonberg@adacore.com>* sem_attr.adb (Analyze_Attribute, case 'Old): If prefix may be adiscriminated component of an actual, expand at once to preventouf-of-order references with generated subtypes.2011-08-31 Yannick Moy <moy@adacore.com>* lib-xref-alfa.adb (Add_Alfa_Xrefs): Do not take into account readreference to operator in Alfa xrefs.2011-08-31 Hristian Kirtchev <kirtchev@adacore.com>* sem_ch12.adb (Freeze_Subprogram_Body): Add code to handle the casewhere the parent instance was frozen before the current instance due tothe presence of a source body. Update calls to Insert_After_Last_Decl.(Insert_After_Last_Decl): Renamed to Insert_Freeze_Node_For_Instance.Update the comment which illustrates the purpose of the routine.Package instances are now frozen by source bodies which appear afterthe instance. This ensures that entities coming from within theinstance are available for use in the said bodies.(Install_Body): Add code to handle the case where the parent instancewas frozen before the current instance due to the presence of a sourcebody. Update calls to Insert_After_Last_Decl.2011-08-31 Jose Ruiz <ruiz@adacore.com>* s-taprop-linux.adb (Set_Task_Affinity): Avoid the use of anonymousaccess types.* affinity.c (__gnat_set_affinity_mask): Declare index variable.2011-08-31 Yannick Moy <moy@adacore.com>* sem_ch8.adb (Analyze_Subprogram_Renaming): Refine expander test infull-expander test.* alfa.adb, alfa.ads, alfa_test.adb, ali.adb, debug.adb, errout.adb,errout.ads, erroutc.adb, expander.adb, exp_ch4.adb, exp_ch7.adb,freeze.adb, get_alfa.adb, get_alfa.ads, gnat1drv.adb, lib-writ.adb,lib-writ.ads, lib-xref.adb, lib-xref.ads, lib-xref-alfa.adb, opt.adb,opt.ads, put_alfa.adb, put_alfa.ads, restrict.adb, sem_ch12.adb,sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,sem_prag.adb, sem_res.adb, sem_util.adb: Minor reformatting, renamingALFA in Alfa (we dropped acronym).* einfo.adb (Primitive_Operations): Correctly return list of primitiveoperations in a case where it returned previously No_Elist.2011-08-31 Robert Dewar <dewar@adacore.com>* s-taprop-vxworks.adb, sem_ch5.adb, s-taprop-tru64.adb, exp_alfa.adb,s-taprop-vms.adb, bindgen.adb, s-mudido.adb, s-mudido.ads,sem_res.adb, expander.adb, s-taprop-mingw.adb, s-taprop-linux.adb,s-taprop-solaris.adb, s-mudido-affinity.adb, vms_conv.adb,s-taprop-irix.adb, s-taprop.ads, s-taskin.adb, s-taskin.ads,s-taprop-hpux-dce.adb, a-chtgbo.adb, s-taprop-posix.adb: Minorreformatting.2011-08-31 Hristian Kirtchev <kirtchev@adacore.com>* sem_ch12 (Check_Private_View): Revert previous change.* sem_res.adb (Conversion_Check): Do not emit the error message if theconversion is in a generic instance.2011-08-31 Matthew Heaney <heaney@adacore.com>* a-cbhase.adb (Symmetric_Difference): Dereference correct node array.* a-chtgbo.adb (Free): Allow 0 as index value.2011-08-31 Matthew Heaney <heaney@adacore.com>* a-cborma.adb (Insert): Add comment to explain why no elementassignment.2011-08-31 Gary Dismukes <dismukes@adacore.com>* sem_util.adb (Find_Body_Discriminal): Test whether the scope of thespec discriminant is already a concurrent type, in which case just useit, otherwise fetch the Corresponding_Concurrent_Type as before.2011-08-30 Eric Botcazou <ebotcazou@adacore.com>* system-irix-n64.ads, system-linux-armeb.ads, system-linux-armel.ads,system-linux-mips.ads, system-linux-mipsel.ads,system-linux-mips64el.ads, system-linux-ppc64.ads,system-linux-sparcv9.ads, system-rtems.ads: Remove GCC_ZCX_Support.2011-08-30 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/ada-tree.h (TYPE_EXTRA_SUBTYPE_P): Add internal check.* gcc-interface/utils2.c (build_binary_op): Tighten condition.(build_unary_op): Likewise.2011-08-30 Eric Botcazou <ebotcazou@adacore.com>* raise-gcc.c: Do not include coretypes.h and tm.h.(setup_to_install): Remove test for compiler macro.* targext.c: Document use for the library.* gcc-interface/Makefile.in: Fix comment on the use of IN_GCC.2011-08-30 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not convertthe expression to the nominal type if the latter is a record type witha variant part and the type of the former is a record type without one.2011-08-30 Yannick Moy <moy@adacore.com>* exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit duringexpansion in Alfa mode.* exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public* exp_alfa.adb, exp_alfa.ads: New package defining light expansion forAlfa mode.* gnat1drv.adb (Adjust_Global_Switches): Update Comment.* sem_res.adb: Ditto.* gcc-interface/Make-lang.in: Update dependencies.2011-08-30 Thomas Quinot <quinot@adacore.com>* g-socket.ads: Minor documentation adjustment.2011-08-30 Robert Dewar <dewar@adacore.com>* exp_ch9.adb, s-tassta.adb, s-secsta.adb: Minor reformatting.2011-08-30 Yannick Moy <moy@adacore.com>* exp_ch6_light.adb, exp_ch6_light.ads, exp_attr_light.adb,exp_attr_light.ads, exp_ch7_light.adb, exp_ch7_light.ads,exp_light.adb, exp_light.ads, exp_prag.adb, expander.adb,gnat1drv.adb, exp_ch11.adb, exp_ch6.adb, exp_ch6.ads, exp_aggr.adb:Revert change which introduced files for "light"expansion, to be replaced by a single file for Alfa expansion.2011-08-30 Robert Dewar <dewar@adacore.com>* opt.ads, s-soflin.adb, exp_ch9.adb, sem_res.adb: Update comment.Minor code reorg/reformatting.2011-08-30 Yannick Moy <moy@adacore.com>* opt.adb, opt.ads (Full_Expander_Active): New function defines acommon shorthand for (Expander_Active and not ALFA_Mode) that can beused for testing full expansion, that is active expansion not in thereduced mode for Alfa* exp_ch4.adb, exp_ch9.adb, exp_disp.adb, sem_ch10.adb, sem_ch12.adb,sem_ch6.adb, sem_ch9.adb, sem_res.adb: Use newly defined "flag" insteadof the verbose (Expander_Active and not ALFA_Mode)2011-08-30 Tristan Gingold <gingold@adacore.com>* s-parame-vms-alpha.ads, s-parame-hpux.ads, s-tassta.adb,s-tarest.adb, s-parame-vms-ia64.ads, s-soflin.adb, s-secsta.adb,s-secsta.ads, s-parame.ads, s-parame-vxworks.ads, s-parame-ae653.ads:Renames Ratio to Percentage, and Sec_Stack_Ratio to Sec_Stack_Percentage2011-08-30 Gary Dismukes <dismukes@adacore.com>* sem_res.adb (Valid_Conversion): Revise test for implicit anonymousaccess conversions to check that the conversion is a rewritten node,rather than just having Comes_From_Source set to False, which wasn'tsufficient.2011-08-30 Robert Dewar <dewar@adacore.com>* exp_ch9.adb, sem_ch9.adb, sem_ch6.adb, exp_disp.adb,g-socket.ads: Minor reformatting.2011-08-30 Thomas Quinot <quinot@adacore.com>* sem_util.adb: Minor reformatting.2011-08-30 Tristan Gingold <gingold@adacore.com>* raise-gcc.c: Never catch exception if _UA_FORCE_UNWIND flag is set,to be compliant with the ABI.2011-08-30 Hristian Kirtchev <kirtchev@adacore.com>* sem_ch12.adb (Check_Private_View): Exchange the private and full viewof a designated type when the related access type is an actual in aninstance. This ensures that the full view of designated type isavailable when inside the body of the instance.2011-08-30 Ed Schonberg <schonberg@adacore.com>* sem_util.adb (May_Be_Lvalue): To determine whether a reference may bein a position to be modified, a slice is treated like an indexedcomponent.2011-08-30 Thomas Quinot <quinot@adacore.com>* s-oscons-tmplt.c, g-socket.ads: Adjust maximum allowed value forfield tv_sec in struct timeval.2011-08-30 Yannick Moy <moy@adacore.com>* exp_ch9.adb, exp_disp.adb, sem_ch9.adb, sem_res.adb: Protect severalblocks of code doing full expansion, previously only guarded byExpander_Active, by anding the test that ALFA_Mode is not set2011-08-30 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (Analyze_Return_Type): If the return type is incomplete,add the function to the list of private dependents, for subsequentlegality check on Taft amendment types.* sem_ch12.adb (Analyze_Formal_Incomplete_Type): InitializePrivate_Dependents, as for other incomplete types.* sem_util.adb (Wrong_Type): Avoid cascaded errors when aTaft-amendment type is used as the return type of a function.2011-08-30 Javier Miranda <miranda@adacore.com>* sem_ch3.adb (Check_Abstract_Overriding): Code cleanup: replace codewhich emits an error by a call to a new routine which report the error.* exp_ch9.adb (Build_Wrapper_Spec): Build the wrapper even if theentity does not cover an existing interface.* errout.ads, errout.adb (Error_Msg_PT): New routine. Used to factorizecode.* sem_ch6.adb (Check_Conformance): Add specific error for wrappers ofprotected procedures or entries whose mode is not conformant.(Check_Synchronized_Overriding): Code cleanup: replace code which emitsan error by a call to a new routine which report the error.2011-08-30 Robert Dewar <dewar@adacore.com>* gnat_rm.texi: Minor change.* exp_attr_light.adb: Minor reformatting.2011-08-30 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb: Patch inheritance of aspects inComplete_Private_Subtype, to avoid infinite loop.2011-08-30 Javier Miranda <miranda@adacore.com>* sem_ch3.adb (Add_Internal_Interface_Entities): If serious errors havebeen reported and a subprogram covering an interface primitive is notfound then skip generating the internal entity. Done to avoid crashingthe frontend.(Check_Abstract_Overriding): Change text of error of wrong formal ofprotected subprogram or entry. Done for consistency to emit exactly thesame error reported by Check_Synchronized_Overriding. In addition, theerror is restricted to protected types (bug found working on AI05-0090)2011-08-30 Yannick Moy <moy@adacore.com>* exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit duringexpansion in Alfa mode.* exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public.* exp_light.adb, exp_light.ads: New package defining light expansion.* expander.adb (Expand): Call light expansion in Alfa mode* exp_ch6_light.adb, exp_ch6_light.ads: Light expansion of chapter 6constructs.* exp_ch7_light.adb, exp_ch7_light.ads: Light expansion of chapter 7constructs.* exp_attr_light.adb, exp_attr_light.ads: Light expansion of attributes* gnat1drv.adb (Adjust_Global_Switches): Comment2011-08-30 Yannick Moy <moy@adacore.com>* lib-xref-alfa.adb: Minor refactoring.2011-08-30 Yannick Moy <moy@adacore.com>* exp_ch9.adb (Expand_Entry_Barrier): Do not perform expansion in Alfamode.* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not performexpansion in Alfa mode.* sem_ch9.adb (Analyze_Entry_Body): Do not perform expansion in Alfamode.2011-08-30 Robert Dewar <dewar@adacore.com>* debug_a.adb: Update comment.2011-08-30 Robert Dewar <dewar@adacore.com>* exp_ch5.adb, sem_ch3.adb, sem_ch5.adb, einfo.adb, checks.adb,sem_util.adb, sem_util.ads, sem_res.adb, s-stposu.adb, sem_attr.adb,exp_ch4.adb, exp_ch6.adb, lib-xref-alfa.adb,sem_ch8.adb, sem_disp.adb, exp_ch3.adb: Minor reformatting2011-08-30 Robert Dewar <dewar@adacore.com>* gnat_rm.texi: Add section on C.6(16) implementation advice for pragmavolatile.2011-08-30 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch3.adb (Expand_Freeze_Array_Type): Correct the call toBuild_Finalization_Master by supplying an insertion node and enclosingscope. In its old version, the call did not generate a finalizationmaster.(Expand_Freeze_Record_Type): Add local variable Has_AACC. Add code torecognize anonymous access-to-controlled components. Rewrite themachinery which creates finalization masters to service anonymousaccess-to-controlled components of a record type. In its current state,only one heterogeneous master is necessary to handle multiple anonymouscomponents.(Freeze_Type): Comment reformatting.* rtsfind.ads: Add RE_Set_Is_Heterogeneous to tables RE_Id andRE_Unit_Table.* s-stposu.adb (Allocate_Any_Controlled): Rewrite the machinery whichassociates TSS primitive Finalize_Address with either the master itselfor with the internal hash table depending on the mode of operation ofthe master.2011-08-30 Javier Miranda <miranda@adacore.com>* exp_ch3.adb (Make_Eq_If): If the etype of the _parent component is aninterface type then do not generate code to compare this component.Required since they have no components and their equality operator isabstract.2011-08-30 Steve Baird <baird@adacore.com>* sem_util.ads (Deepest_Type_Access_Level): New function; for the typeof a saooaaat (i.e, a stand-alone object of an anonymous access type),returns the (static) accessibility level of the object. Otherwise, thesame as Type_Access_Level.(Dynamic_Accessibility_Level): New function; given an expression whichcould occur as the rhs of an assignment to a saooaaat (i.e., anexpression of an access-to-object type), return the new value for thesaooaaat's associated Extra_Accessibility object.(Effective_Extra_Accessibility): New function; same asEinfo.Extra_Accessibility except that object renames are looked through.* sem_util.adb(Deepest_Type_Access_Level): New function; see sem_util.ads description.(Dynamic_Accessibility_Level): New function; see sem_util.adsdescription.(Effective_Extra_Accessibility): New function; see sem_util.adsdescription.* einfo.ads (Is_Local_Anonymous_Access): Update comments.(Extra_Accessibility): Update comments.(Init_Object_Size_Align): New procedure; same as Init_Size_Alignexcept RM_Size field (which is only for types) is unaffected.* einfo.adb(Extra_Accessibility): Expand domain to allow objects, not just formals.(Set_Extra_Accessibility): Expand domain to allow objects, not justformals.(Init_Size): Add assertion that we are not trashing theExtra_Accessibility attribute of an object.(Init_Size_Align): Add assertion that we are not trashing theExtra_Accessibility attribute of an object.(Init_Object_Size_Align): New procedure; see einfo.ads description.* sem_ch3.adb (Find_Type_Of_Object): Set Is_Local_Anonymous_Accessdifferently for the type of a (non-library-level) saooaaat dependingwhether Ada_Version < Ada_2012. This is the only point where Ada_Versionis queried in this set of changes - everything else (in particular,setting of the Extra_Accessibility attribute in exp_ch3.adb) isdriven off of the setting of the Is_Local_Anonymous_Access attribute.The special treatment of library-level saooaaats is an optimization,not required for correctnesss. This is based on the observation that theAda2012 rules (static and dynamic) for saooaaats turn out to beequivalent to the Ada2005 rules in the case of a library-level saooaaat.* exp_ch3.adb(Expand_N_Object_Declaration): If Is_Local_Anonymous_Access isfalse for the type of a saooaaat, declare and initialize itsaccessibility level object and set the Extra_Accessibility attributeof the saooaaat to refer to this object.* checks.adb (Apply_Accessibility_Check): Add Ada 2012 saooaaat support.* exp_ch4.adb (Expand_N_In): Replace some Extra_Accessibility calls withcalls to Effective_Extra_Accessibility in order to supportrenames of saooaaats.(Expand_N_Type_Conversion): Add new local function,Has_Extra_Accessibility, and call it when determining whether anaccessibility check is needed.It returns True iff Present (Effective_Extra_Accessibility (Id)) wouldevaluate to True (without raising an exception).* exp_ch5.adb(Expand_N_Assignment_Statement): When assigning to an Ada2012saooaaat, update its associated Extra_Accessibility object (ifit has one). This includes an accessibility check.* exp_ch6.adb (Add_Call_By_Copy_Code): When parameter copy-back updatesa saooaaat, update its Extra_Accessibility object too (if ithas one).(Expand_Call): Replace a couple of calls to Type_Access_Levelwith calls to Dynamic_Access_Level to handle cases wherepassing a literal (any literal) is incorrect.* sem_attr.adb (Resolve_Attribute): Handle the static accessibilitychecks associated with "Saooaat := Some_Object'Access;"; this mustbe rejected if Some_Object is declared in a more nested scopethan Saooaat.* sem_ch5.adb (Analyze_Assignment): Force accessibility checking for anassignment to a saooaaat even if Is_Local_Anonymous_Accessreturns False for its type (indicating a 2012-style saooaaat).* sem_ch8.adb(Analyze_Object_Renaming): Replace a call to Init_Size_Align(which is only appropriate for objects, not types) with a callof Init_Object_Size_Align in order to avoid trashing theExtra_Accessibility attribute of a rename (the two attributesshare storage).* sem_res.adb(Valid_Conversion) Replace six calls to Type_Access_Level withcalls to Deepest_Type_Access_Level. This is a bit tricky. For anAda2012 non-library-level saooaaat, the former returns library levelwhile the latter returns the (static) accessibility level of thesaooaaat. A type conversion to the anonymous type of a saooaaatcan only occur as part of an assignment to the saooaaat, so weknow that such a conversion must be in a lhs context, so Deepestyields the result that we need. If such a conversion could occur,say, as the operand of an equality operator, then this might notbe right. Also add a test so that static accessibilty checks areperformed for converting to a saooaaat's type even ifIs_Local_Anonymous_Access yields False for the type.2011-08-30 Javier Miranda <miranda@adacore.com>* sem_disp.adb (Check_Dispatching_Operation): Complete condition thatcontrols generation of a warning associated with late declaration ofdispatching functions. Required to avoid generating spuriouswarnings.2011-08-30 Gary Dismukes <dismukes@adacore.com>* sem_ch6.adb (Check_Return_Subtype_Indication): Issue error if thereturn object has an anonymous access type and the function's type isa named access type.* sem_ch8.adb (Analyze_Object_Renaming): Suppress error about renamingconversions on implicit conversions, since such conversions can occurfor anonymous access cases due to expansion. Issue error for attemptto rename an anonymous expression as an object of a named access type.* sem_res.ads (Valid_Conversion): Add defaulted parameter Report_Errs,to indicate whether this function should report errors on invalidconversions.* sem_res.adb (Resolve): For Ada 2012, in the case where the type ofthe expression is of an anonymous access type and the expected type isa named general access type, rewrite the expression as a typeconversion, unless this is an expression of a membership test.(Valid_Conversion.Error_Msg_N): New procedure that conditions thecalling of Error_Msg_N on new formal Report_Errs.(Valid_Conversion.Error_Msg_NE): New procedure that conditions thecalling of Error_Msg_NE on new formal Report_Errs.(Valid_Conversion): Move declaration of this function to the packagespec, to allow calls from membership test processing. For Ada 2012,enforce legality restrictions on implicit conversions of anonymousaccess values to general access types, disallowing such conversions incases where the expression has a dynamic accessibility level (accessparameters, stand-alone anonymous access objects, or a component of adereference of one of the first two cases).* sem_type.adb (Covers): For Ada 2012, allow an anonymous access typein the context of a named general access expected type.* exp_ch4.adb Add with and use of Exp_Ch2.(Expand_N_In): Add processing for membership tests applied toexpressions of an anonymous access type. First, Valid_Conversion iscalled to check whether the test is statically False, and then theconversion is expanded to test that the expression's accessibilitylevel is no deeper than that of the tested type. In the case ofanonymous access-to-tagged types, a tagged membership test is appliedas well.(Tagged_Membership): Extend to handle access type cases, applying thetest to the designated types.* exp_ch6.adb (Expand_Call): When creating an extra actual for anaccessibility level, and the actual is a 'Access applied to a currentinstance, pass the accessibility level of the type of the currentinstance rather than applying Object_Access_Level to the prefix. Add a??? comment, since this level isn't quite right either (will eventuallyneed to pass an implicit level parameter to init procs).2011-08-30 Bob Duff <duff@adacore.com>* s-taskin.ads: Minor comment fix.2011-08-30 Ed Schonberg <schonberg@adacore.com>* sem_res.adb (Check_Parameterless_Call): If the node is a selectedcomponent and the selector is a dispatching operation, check if it isa prefixed call before rewriting as a parameterless function call.2011-08-29 Jakub Jelinek <jakub@redhat.com>* gcc-interface/Makefile.in (../stamp-gnatlib1-$(RTSDIR)): Copytsystem.h into $(RTSDIR) instead of rts.2011-08-29 Robert Dewar <dewar@adacore.com>* sem_ch10.adb, a-coorse.adb, exp_dist.adb, exp_ch3.adb: Minorreformatting.* gcc-interface/Make-lang.in: Update dependencies.2011-08-29 Yannick Moy <moy@adacore.com>* alfa.ads (Name_Of_Heap_Variable): New constant name.* lib-xref-alfa.adb, lib-xref.adb, lib-xref.ads (Drefs): New globaltable to hold dereferences.(Add_ALFA_Xrefs): Take into account dereferences as specialreads/writes to the variable "HEAP".(Enclosing_Subprogram_Or_Package): Move subprogram here.(Generate_Dereference): New procedure to store a read/write dereferencewin the table Drefs.* put_alfa.adb (Put_ALFA): Use different default than (0,0) used forthe special "HEAP" var.* sem_ch4.adb (Analyze_Explicit_Dereference): Store read dereferencein ALFA mode.* sem_util.adb (Note_Possible_Modification): Store write dereferencein ALFA mode.2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch3.adb (Freeze_Type): Generate an accessibility check whichensures that the level of the subpool access type is not deeper thanthat of the pool object.* sem_util.adb (Object_Access_Level): Expand to handle definingidentifiers.* sem_res.adb (Resolve_Allocator): Add a guard to avoid examining thesubpool handle name of a rewritten allocator.2011-08-29 Robert Dewar <dewar@adacore.com>* impunit.adb, exp_ch4.adb, s-finmas.adb: Minor reformatting.2011-08-29 Thomas Quinot <quinot@adacore.com>* exp_dist.adb (TC_Rec_Add_Process_Element): For a choice with multiplevalues, we generate multiple triples of parameters in the TypeCode.Bump Choice_Index for each such triple so that a subsequent defaultchoice is associated with the correct index in the typecode.2011-08-29 Ed Schonberg <schonberg@adacore.com>* a-cdlili.adb (Iterate): Initialize properly an iterator over a nullcontainer.(First, Last): Handle properly an iterator over a null container.2011-08-29 Bob Duff <duff@adacore.com>* sem_ch10.adb (Analyze_With_Clause,Install_Withed_Unit): Abandonprocessing if we run across a node with no Scope. This can happen ifwe're with-ing an library-level instance, and that instance got errorsthat caused "instantiation abandoned".* sem_util.adb (Unit_Declaration_Node): Make it more robust, by raisingan exception instead of using Assert, so it won't go into an infiniteloop, even when assertions are turned off.2011-08-29 Ed Schonberg <schonberg@adacore.com>* a-coorse.adb: Proper handling of empty ordered sets.2011-08-29 Johannes Kanig <kanig@adacore.com>* debug.adb: Add comments.2011-08-29 Thomas Quinot <quinot@adacore.com>* a-except.adb, a-except-2005.adb: Minor comment rewording andreformatting.2011-08-29 Yannick Moy <moy@adacore.com>* sem_ch3.adb (Array_Type_Declaration): Remove insertion ofdeclaration for Itypes in Alfa mode.2011-08-29 Robert Dewar <dewar@adacore.com>* a-cdlili.ads, a-coinve.ads, a-coorma.adb, a-coorma.ads, s-tassta.adb,a-cborma.adb, a-cborma.ads, a-cohama.ads, a-coorse.ads, a-cbhama.ads,a-cborse.ads, a-cobove.adb, a-cobove.ads, a-cbhase.ads: Minorreformatting.2011-08-29 Tristan Gingold <gingold@adacore.com>* exp_ch7.adb, exp_ch7.ads (Build_Exception_Handler): Move its spec topackage spec.* exp_intr.adb (Expand_Unc_Deallocation): Use Build_Exception_Handler.* a-except.adb, a-except-2005.adb (Rcheck_22): Do not defer abortswhile raising PE.2011-08-29 Robert Dewar <dewar@adacore.com>* a-cbhama.adb, a-cbhama.ads: Minor reformatting.2011-08-29 Javier Miranda <miranda@adacore.com>* sem_ch8.adb (Analyze_Subprogram_Renaming): Complete support forrenamings of formal subprograms when the actual for a formal type isclass-wide.2011-08-29 Matthew Heaney <heaney@adacore.com>* a-cbhama.ads, a-cbhase.ads (Move): Clear Source following assignmentto Target.2011-08-29 Matthew Heaney <heaney@adacore.com>* a-cborma.ads, a-cborse.ads (Cursor): Default-initialize allcomponents of record type.* a-cborma.adb, a-cborse.adb (Move): Clear Source following assignmentwto Target.2011-08-29 Ed Schonberg <schonberg@adacore.com>* a-cbhama.adb, a-cbhama.ads, a-cborma.adb, a-cborma.ads, a-cobove.adb,a-cobove.ads, a-coorma.adb, a-coorma.ads: Add iterator machinery tocontainer packages.2011-08-29 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, sem_util.adb, gnat1drv.adb, s-parint.ads: Minorreformatting.2011-08-29 Matthew Heaney <heaney@adacore.com>* a-cbhama.ads, a-cbhase.ads (Cursor): Default-initialize allcomponents of record type.2011-08-29 Bob Duff <duff@adacore.com>* s-tassta.adb (Task_Wrapper): Handle and ignore exceptions propagatedby the termination handler.2011-08-29 Yannick Moy <moy@adacore.com>* sem_ch3.adb (Array_Type_Declaration): Create declarations for Itypescreated in Alfa mode, instead of inserting artificial declarations ofnon-Itypes in the tree.* sem_util.adb, sem_util.ads (Itype_Has_Declaration): New function toknow if an Itype has a corresponding declaration, as defined initypes.ads.2011-08-29 Yannick Moy <moy@adacore.com>* gnat1drv.adb: Minor rewrite.2011-08-29 Bob Duff <duff@adacore.com>* s-tasuti.adb (Make_Passive): Work around race condition inMake_Independent, which can cause Wait_Count to be zero. So instead ofasserting that Wait_Count > 0, and then decrementing it, decrement itonly if Wait_Count > 0.* s-taskin.ads (Wait_Count, Alive_Count, Awake_Count): All of theseshould be nonnegative, so declare them Natural instead of Integer.2011-08-29 Robert Dewar <dewar@adacore.com>* exp_ch5.adb, sem_ch3.adb, a-cihama.adb, a-cihama.ads, exp_ch7.adb,sem_ch5.adb, a-ciorse.adb, a-ciorse.ads, sem_ch12.adb, a-cidlli.adb,a-cidlli.ads, sem_util.adb, sem_res.adb, gnat1drv.adb, a-except.adb,a-except.ads, a-except-2005.ads, sem_ch4.adb, exp_disp.adb,exp_aggr.adb, sem_ch13.adb, par-ch3.adb: Minor reformatting.2011-08-29 Tristan Gingold <gingold@adacore.com>* s-auxdec-vms-alpha.adb: Add comments, remove some HT before labels.2011-08-29 Vadim Godunko <godunko@adacore.com>* s-parint.ads: Minor comment clarification.2011-08-29 Vincent Celier <celier@adacore.com>* prj.adb (Initialize): Make sure that new reserved words after Ada 95may be used as identifiers.2011-08-29 Ed Schonberg <schonberg@adacore.com>* a-coinho.ads: Minor reformating.2011-08-29 Ed Schonberg <schonberg@adacore.com>* exp_ch5.adb (Expand_Iterator_Loop): Handle properly a loop over acontainer of a derived type.2011-08-29 Ed Schonberg <schonberg@adacore.com>* a-cidlli.adb, a-cidlli.ads, a-cihama.adb, a-cihama.ads,a-ciorse.adb, a-ciorse.ads: Add iterator machinery to containers.2011-08-29 Pascal Obry <obry@adacore.com>* exp_disp.adb: Minor comment fix.(Make_Disp_Asynchronous_Select_Body): Properly initialize out parametersto avoid warnings when compiling with -Wall.(Make_Disp_Conditional_Select_Body): Likewise.(Make_Disp_Timed_Select_Body): Likewise.2011-08-29 Ed Schonberg <schonberg@adacore.com>* sem_ch12.adb (Analyze_Formal_Subprogram_Declaration): If default isan entity name, generate reference for it.2011-08-29 Ed Schonberg <schonberg@adacore.com>* exp_ch5.adb (Expand_Iterator_Loop): Uniform handling of "X of S"iterator form.* sem_util.adb (Is_Iterator, Is_Reversible_Iterator): Yield True forthe class-wide type.* sem_ch5.adb: Move some rewriting to the expander, where it belongs.2011-08-29 Ed Schonberg <schonberg@adacore.com>* sem_ch8.adb (Check_Constrained_Object): Do not create an actualsubtype for an object whose type is an unconstrained union.2011-08-29 Ed Schonberg <schonberg@adacore.com>* par-ch3.adb (P_Array_Type_Definiation, P_Component_Items): "aliased"is allowed in a component definition, by AI95-406.2011-08-29 Matthew Heaney <heaney@adacore.com>* a-chtgbo.adb (Generic_Iteration): Use correct overloading of Next.2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>* a-except-2005.adb: Alphabetize all routines.(Triggered_By_Abort): New routine.* a-except-2005.ads (Triggered_By_Abort): New routine.* a-except.adb Alphabetize all routines.(Triggered_By_Abort): New routine.* a-except.ads (Triggered_By_Abort): New routine.* exp_ch7.adb: Update all comments involving the detection of aborts infinalization code.(Build_Object_Declarations): Do not generate code to detect thepresence of an abort at the start of finalization code, use a runtimeroutine istead.* rtsfind.ads: Add RE_Triggered_By_Abort to tables RE_Id andRE_Unit_Table.* sem_res.adb (Resolve_Allocator): Emit a warning when attempting toallocate a task on a subpool.* s-stposu.adb: Add library-level flag Finalize_Address_Table_In_Use.The flag disables all actions related to the maintenance ofFinalize_Address_Table when subpools are not in use.(Allocate_Any_Controlled): Signal the machinery that subpools are inuse.(Deallocate_Any_Controlled): Do not call Delete_Finalize_Address whichperforms costly task locking when subpools are not in use.2011-08-29 Yannick Moy <moy@adacore.com>* gnat1drv.adb (Adjust_Global_Switches): Restore expansion of taggedtypes and dispatching calls in Alfa mode.* lib-xref-alfa.adb (Collect_ALFA): Rewrite computation ofcorrespondance between body and spec scopes, to reuse utility functions(Traverse_Declarations_Or_Statements): Protect access to body for stubby testing the presence of the library unit for the body* sem_ch6.adb (Set_Actual_Subtypes): take into account that in Alfamode the expansion of accept statements is skipped* sem_util.adb, sem_util.ads (Unique_Entity): New function returningthe unique entity corresponding to the one returned byUnique_Defining_Entity applied to the enclosing declaration of theargument.2011-08-29 Bob Duff <duff@adacore.com>* treepr.ads: Improve debugging facilities. pn(x) no longer crashes ingdb when x is not a node (it can be a node list, name_id, etc). pp isan alias for pn. ppp is an alias for pt.2011-08-29 Javier Miranda <miranda@adacore.com>* exp_aggr.adb (Expand_Record_Aggregate): Use the top-level enclosingaggregate to take a consistent decision on the need to convert intoassignments aggregates that initialize constant objects.2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch4.adb (Expand_Allocator_Expression): Add a call toBuild_Allocate_Deallocate_Proc in order to handle allocation ofnon-controlled objects on subpools.* impunit.adb: Remove s-finmas and s-spsufi since they were never meantto be end-user visible.* s-finmas.adb: Add with and use clause for System.HTable.Add an instantiation of Simple_HTable which provides a mapping betweenthe address of a controlled object and the correspondingFinalize_Address used to clean up the object. The table is used when amaster is operating in heterogeneous mode.(Attach): Explain why the input node is not verified on being alreadyattached.(Delete_Finalize_Address): New routine.(Detach): Add pragma Assert which ensures that a node is alreadyattached.(Finalize): Add local variable Cleanup. Rewrite the iteration schemesince nodes are no longer removed on traversal. Explain why nodedetachment is undesirable in this case.(Get_Finalize_Address): New routine.(Hash): New routine.(Is_Empty_List): Removed.(pm): Renamed to Print_Master. Add output for discriminantIs_Homogeneous.Comment reformatting.(Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine.* s-finmas.ads: Various comments additions / improvements.Type Finalization_Master has a discriminant which determines the mode ofoperation.(Delete_Finalize_Address): New routine.(Get_Finalize_Address): New routine.(pm): Renamed to Print_Master.(Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine.* s-stposu.adb: Add with clause for System.Address_Image; Add with anduse clause for System.IO.(Allocate_Any_Controlled): Add machinery to set TSS primitiveFinalize_Address depending on the mode of allocation and the mode ofthe master.(Deallocate_Any_Controlled): Remove the relation pair object -Finalize_Address regardless of the master mode. Add comment explainingthe reason.(Detach): Ensure that fields Prev and Next are null after detachment.(Finalize_Pool): Remove local variable Next_Ptr. Rewrite the iterationscheme to check whether the list of subpools is empty. There is nolonger need to store the next subpool or advance the current pointer.(Is_Empty_List): New routine.(Print_Pool): New routine.(Print_Subpool): New routine.* s-stposu.ads: Various comments additions / improvements.Field Master of type Root_Subpool is now a heterogeneous collection.(Print_Pool): New routine.(Print_Subpool): New routine.2011-08-29 Ed Schonberg <schonberg@adacore.com>* exp_ch5.adb (Expand_N_Iterator_Loop): Implement Ada2012 loop iteratorforms, using aspects of container types.* sem_ch3.adb (Find_Type_Name): Preserve Has_Delayed_Aspects andHas_Implicit_Dereference flags, that may be set on the partial view.* sem_ch4.adb (Process_Overloaded_Indexed_Component): Prefix may be acontainer type with an indexing aspect.(Analyze_Quantified_Expression): Analyze construct with expansiondisabled, because it will be rewritten as a loop during expansion.(Try_Container_Indexing): The prefix itself may be a container typewith an indexing aspect, as with a vector of vectors.* sem_ch5.adb (Analyze_Iteration_Scheme): In a generic context, analyzethe original doamin of iteration, for name capture.(Analyze_Iterator_Specification): If the domain is an expression thatneeds finalization, create a separate declaration for it.For an iterator with "of" retrieve default iterator info from aspect ofcontainer type. For "in" iterator, retrieve type of Iterate function.* sem_ch13.adb (Check_Iterator_Function): Fix typo.(Check_Aspect_At_End_Of_Declaration): Make type unfrozen beforeanalysis, to prevent spurious errors about late attributes.* sprint.adb: Handle quantified expression with either loop or iteratorspecification.* a-convec.ads, a-convec.adb: Iterate function returns a reversibleiterator.2011-08-29 Vincent Celier <celier@adacore.com>* make.adb (Scan_Make_Arg): Take any option as is in packages Compiler,Binder or Linker of the main project file.2011-08-29 Ed Schonberg <schonberg@adacore.com>* inline.adb (Add_Scopes_To_Clean): Exclude any entity within a genericunit.2011-08-29 Yannick Moy <moy@adacore.com>* exp_ch9.adb: Partial revert of previous change for Alfa mode2011-08-29 Yannick Moy <moy@adacore.com>* exp_ch11.adb: Minor expansion of comment.2011-08-29 Yannick Moy <moy@adacore.com>* lib-xref-alfa.adb (Add_ALFA_Scope): Treat generic entities.2011-08-29 Ed Schonberg <schonberg@adacore.com>* sem_res.adb (Resolve_Arithmetic_Op): If the node has a universalinterpretation, set the type before resolving the operands, becauselegality checks on an exponention operand need to know the type of thecontext.2011-08-29 Ed Schonberg <schonberg@adacore.com>* sem_ch12.adb (Analyze_Package_Instantiation): Do not set delayedcleanups on a master if the instance is within a generic unit.Complement to the corresponding fix to inline.adb for K520-030.2011-08-29 Tristan Gingold <gingold@adacore.com>* exp_ch7.adb (Build_Raise_Statement): Raise PE instead of the currentoccurrence.* exp_intr.adb: Minor comment fix.2011-08-29 Bob Duff <duff@adacore.com>* sem_ch13.adb (Analyze_Aspect_Specifications): Fix cases whereDelay_Required was used as an uninitialized variable.2011-08-29 Robert Dewar <dewar@adacore.com>* a-cdlili.adb, a-cdlili.ads, a-coinve.adb, a-coinve.ads,sem_util.adb, sem_util.ads, a-cohama.adb, a-cohama.ads, a-coorse.adb,a-coorse.ads, aspects.ads, sem_ch8.adb: Minor reformatting.2011-08-29 Thomas Quinot <quinot@adacore.com>* system-freebsd-x86_64.ads (Backend_Overflow_Checks): Set true True.Remove unused variables.2011-08-29 Ed Schonberg <schonberg@adacore.com>* sem_res.adb: Remove Build_Explicit_Dereference.* sem_util.adb, sem_util.ads (Build_Explicit_Dereference): Moved herefrom sem_res.adb, used in analysis of additional constructs.(Is_Iterator, Is_Reversible_Iterator): New predicates for Ada2012expansion of iterators.(Is_Object_Reference): Recognize variables rewritten as explicitdereferences in Ada2012.* snames.ads-tmpl: Add Has_Element, Forward_Iterator,Reversible_Iterator names, for expansion of Ada2012 iterators.* aspects.ads, aspects.adb (Find_Aspect): Utility.* a-cdlili.ads, a-cdlili.adb: Add new iterator machinery to doublylinked list container.* a-coinve.ads, a-coinve.adb: Ditto for indefinite vector containers.* a-coorse.ads, a-coorse.adb: Ditto for ordered sets.2011-08-29 Ed Schonberg <schonberg@adacore.com>* a-cohama.adb, a-cohama.ads: Add iterator primitives to hashed mapcontainers.2011-08-29 Vincent Celier <celier@adacore.com>* make.adb (Gnatmake): Get the maximum number of simultaneouscompilation processes after the Builder switches has been scanned, asthere may include -jnn.2011-08-29 Matthew Heaney <heaney@adacore.com>* a-chtgbo.adb (Generic_Equal): Use correct overloading of Next.2011-08-29 Tristan Gingold <gingold@adacore.com>* gnatcmd.adb (GNATCmd): On OpenVMS, truncate the length ofGNAT_DRIVER_COMMAND_LINE to 255.2011-08-29 Pascal Obry <obry@adacore.com>* freeze.adb, sem_ch8.adb, a-convec.adb, a-convec.ads: Minorreformatting and style fix (class attribute casing).2011-08-29 Yannick Moy <moy@adacore.com>* exp_ch11.adb: Yet another case where expansion should be commonbetween CodePeer and Alfa.2011-08-29 Yannick Moy <moy@adacore.com>* exp_ch9.adb: Partial revert of previous change for Alfa mode.2011-08-29 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (Matches_Limited_With_View): The limited views of anincomplete type and its completion match.2011-08-29 Yannick Moy <moy@adacore.com>* exp_ch13.adb: Adjust previous change.2011-08-29 Robert Dewar <dewar@adacore.com>* sem_prag.adb, prj.adb, sem_util.adb, sem_res.adb, gnat1drv.adb,exp_ch4.adb, sem_ch8.adb: Minor code reorganizationMinor reformatting.2011-08-29 Emmanuel Briot <briot@adacore.com>* make.adb, prj.adb, prj.ads (Compute_All_Imported_Projects): Alsoinitialize aggregated projects.2011-08-29 Ed Schonberg <schonberg@adacore.com>* sem_ch8.adb (Find_Renamed_Entity): Within an instance, use scopedepth of candidates to resolve a potentially spurious ambiguity betweentwo visible subprograms.2011-08-29 Yannick Moy <moy@adacore.com>* sem_prag.adb (Analyze_Pragma): Allow Test_Case pragma withoutRequires/Ensures.* sem_util.adb (Get_Ensures_From_Test_Case_Pragma,Get_Requires_From_Test_Case_Pragma): Allow Test_Case pragma withoutRequires/Ensures.2011-08-29 Arnaud Charlet <charlet@adacore.com>* gnat1drv.adb (Adjust_Global_Switches): Improve previous change.Add comment.2011-08-29 Thomas Quinot <quinot@adacore.com>* sem_res.adb: Minor reformatting.2011-08-29 Johannes Kanig <kanig@adacore.com>* exp_ch4.adb (Expand_Quantified_Expression): Do not expand in ALFAmode.* gnat1drv.adb (Adjust_Global_Switches): SetUse_Expressions_With_Actions to False in ALFA mode.* sem_res.adb (Resolve_Quantified_Expression): Simpler treatment inALFA mode.2011-08-29 Yannick Moy <moy@adacore.com>* exp_ch13.adb (Expand_N_Freeze_Entity): Do nothing in Alfa mode.* exp_ch9.adb: Do not expand tasking constructs in Alfa mode.* gnat1drv.adb (Adjust_Global_Switches): Suppress the expansion oftagged types and dispatching calls in Alfa mode.2011-08-29 Javier Miranda <miranda@adacore.com>* sem_ch3.adb (Process_Discriminants): Add missing check to ensure thatwe do not report an error on an Empty node.2011-08-29 Geert Bosch <bosch@adacore.com>* Makefile.rtl (GNATRTL_NONTASKING_OBJECTS): Add a-nllrar.o,a-nlrear.o and a-nurear.o.2011-08-29 Robert Dewar <dewar@adacore.com>* freeze.adb: Minor code reorganization.Minor reformatting.* sem_util.adb, errout.adb, exp_ch11.adb, a-ngrear.adb, s-gearop.adb,sem_ch6.adb: Minor reformatting2011-08-29 Tristan Gingold <gingold@adacore.com>* s-except.ads, s-except.adb: Provide dummy body.2011-08-29 Yannick Moy <moy@adacore.com>* sem_warn.adb (Within_Postcondition): Take into account the case ofan Ensures component in a Test_Case.2011-08-29 Tristan Gingold <gingold@adacore.com>* s-excdeb.ads, s-excdeb.adb: New files, created from s-except.* rtsfind.ads (RTU_Id): Replaces System_Exceptions bySystem_Exceptions_Debug(RE_Unit_Table): Search RE_Local_Raise in System_Exceptions_Debug* a-except.adb: With and use System.Exceptions_Debug instead ofSystem.Exceptions.* a-except-2005.adb: Likewise.* s-assert.adb: Likewise.* s-except.adb, s-except.ads: Move debugging hooks to s-excdeb.* Makefile.rtl: Add s-excdeb. Adjust compilation rule.* gcc-interfaces/Makefile.in, gcc-interface/Make-lang.in: Adds-excdeb. Update dependencies.(GNATRTL_LINEARALGEBRA_OBJS): Remove a-nlrear.o a-nurear.o a-nllrar.oas these no longer need external libraries.2011-08-29 Ed Schonberg <schonberg@adacore.com>* sem_res.adb (Resolve_Op_Expon): Additional check to reject anexponentiation operator on universal values in a context that requiresa fixed-point type.2011-08-29 Tristan Gingold <gingold@adacore.com>* raise-gcc.c (personnality_routine): Fix thinko. Set Ada occurrencebefore calling notify_handled_exception.* a-exextr.adb: Fix comment.2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch4.adb (Expand_Allocator_Expression): Add code to set attributeFinalize_Address of the access type's finalization master.(Expand_N_Allocator): Add code to set attribute Finalize_Address of theaccess type's finalization master. Add a guard to preventAssociated_Storage_Pool from being set on .NET/JVM.* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add code to setattribute Finalize_Address of the access type's finalization master.* exp_ch7.adb (Make_Finalize_Address_Call): New routine.* exp_ch7.ads (Make_Finalize_Address_Call): New routine.* rtsfind.ads: Add RE_Set_Finalize_Address to tables RE_Id andRE_Unit_Table.* s-finmas.adb: Add with clause for System.Address_Image. Add with anduse clause for System.IO(Detach): Relax the assertion, to be reinstated later.(Finalize): Rewrite the iteration loop to avoid pointer comparison.Relax the assertion on Finalize_Address, to be reinstated later.(Is_Empty_List): New routine.(pm): New debug routine.(Set_Finalize_Address): New routine.* s-finmas.ads (pm): New debug routine.(Set_Finalize_Address): New routine.* s-stposu.adb (Allocate_Any_Controlled): Code reformatting.2011-08-29 Tristan Gingold <gingold@adacore.com>* a-exexpr-gcc.adb (GCC_Exception_Access, GNAT_GCC_Exception_Access):Remove convention C.2011-08-29 Tristan Gingold <gingold@adacore.com>* s-taprop-vms.adb (Get_Exc_Stack_Addr): Remove.(Initialize_TCB): Remove Exc_Stack_Ptr initialization.(Finalize_TCB): Remove its finalization.(Initialize): Remove assignment of GET_Exc_Stack_Addr* s-soflin.adb (NT_Exc_Stack): Remove(Get_Exc_Stack_Addr_NT): Likewise.(Get_Exc_Stack_Addr_Soft): Likewise.* s-soflin.ads (Get_Exc_Stack_Addr_NT): Remove.(Get_Exc_Stack_Addr): Likewise.(Get_Exc_Stack_Addr_Soft): Likewise* s-taspri-vms.ads (Exc_Stack_T): Remove.(Exc_Stack_Ptr_T): Likewise.(Private_Data): Remove Exc_Stack_Ptr component.2011-08-29 Tristan Gingold <gingold@adacore.com>* raise-gcc.c (get_ip_from_context): New function. Factorize code.2011-08-29 Tristan Gingold <gingold@adacore.com>* gnat_ugn.texi: Fix aix and x86-solaris info for run-time.2011-08-29 Geert Bosch <bosch@adacore.com>* s-gearop.ads (Back_Substitute, Diagonal, Forward_Eliminate,L2_Norm, Swap_Column): New generic subprograms* s-gearop.adb (Back_Substitute, Diagonal, Forward_Eliminate,L2_Norm, Swap_Column): Implement new subprograms in order toeliminate dependency on BLAS and LAPACK libraries inAda.Numerics.Generic_Real_Arrays and eventually also the complexversion. Forward_Eliminate/Back_Substitute can be used to put amatrix in row echelon or reduced row echelon form using partialpivoting.* a-ngrear.adb: (Back_Substitute, Diagonal, Forward_Eleminate,Swap_Column): Instantiate from System.Generic_Array_Operations.("*", "abs"): Implement by instantiation from Generic_Array_Operations.(Sqrt): Local function for simple computation of square root withoutadding dependencies on Generic_Elementary_Functions.(Swap): New subprogram to exchange floating point numbers.(Inverse): Reimplement using Jordan-Gauss elimination.(Jacobi): New procedure implementing Jacobi's method for computationof eigensystems, based on Rutishauser's implementation.(L2_Norm): Implement directly using the inner product.(Sort_Eigensystem): Sort eigenvalue/eigenvector pairs in order ofdecreasing eigenvalue as required by the Ada RM.(Swap_Column): New helper procedure for Sort_Eigensystem.Remove with of System.Generic_Real_BLAS and System.Generic_Real_LAPACK.Add with of Ada.Containers.Generic_Anonymous_Array_Sort, forSort_Eigensystems.2011-08-29 Thomas Quinot <quinot@adacore.com>* put_scos.adb (Put_SCOs): Do not emit a newline for an emptystatements line.2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>* s-finmas.adb (Finalize): Check Finalize_Address of the master ratherthan the current node.* s-finmas.ads: Move field Finalize_Address from type FM_Node toFinalization_Master. The list headers have two fields instead of three.This should fix alignment issue but subpool allocations are nowunusable. Alphabetize subprograms.* s-stposu.adb (Allocate_Any_Controlled): Use the offset rather thanthe size of the header when converting the beginning of the object toa FM_Node. Set the master's Finalize_Address attribute if not alreadyset.(Deallocate_Any_Controlled): Use the offset rather than the size of theheader when converting the beginning of the object to a FM_Node.2011-08-29 Gary Dismukes <dismukes@adacore.com>* exp_ch11.adb (Expand_N_Raise_Statement): Don't suppress expansion ofreraise when compiling for CodePeer.2011-08-29 Arnaud Charlet <charlet@adacore.com>* a-iteint.ads, Makefile.rtl: Add missing compilation of a-iteint.ads,now needed by a-convec.adb. Fix warning.2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>* exp_util.adb (Build_Allocate_Deallocate_Proc): Add a guard for theprocessing of TSS routine Finalize_Address when compiling inCodePeer_Mode.2011-08-29 Thomas Quinot <quinot@adacore.com>* a-strunb.ads, einfo.ads, g-comlin.ads, sem_ch6.adb,sem_warn.adb: Minor reformatting.2011-08-29 Emmanuel Briot <briot@adacore.com>* prj-conf.adb (Get_Config_Switches): Also collect the list oflanguages from aggregated projects.2011-08-29 Yannick Moy <moy@adacore.com>* lib-xref-alfa.adb, lib-xref.ads (Traverse_Declarations_Or_Statements,Traverse_Handled_Statement_Sequence, Traverse_Package_Body,Traverse_Package_Declaration, Traverse_Subprogram_Body,Traverse_Compilation_Unit): Add a parameter Inside_Stubs so that bodiesfor stubs are traversed too when parameter is set(Traverse_All_Compilation_Units): Traverse without going inside stubs(Traverse_Declarations_Or_Statements): Do the special traversing forstubs when required.* sem_util.adb, sem_util.ads (Get_Body_From_Stub): New function toreturn subprogram or package body from stub.(Is_Subprogram_Stub_Without_Prior_Declaration): New function to detectstubs without prior subprogram decl.2011-08-29 Vasiliy Fofanov <fofanov@adacore.com>* gnat_ugn.texi: Fix typo.2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>* s-stposu.adb (Allocate_Any_Controlled): Reimplement the mechanismwhich accounts for size vs alignment issues and calculates the size ofthe list header.(Deallocate_Any_Controlled): Ditto.(Nearest_Multiple_Rounded_Up): New routine.2011-08-29 Tristan Gingold <gingold@adacore.com>* a-exstat.adb (String_To_EO): Do no set Cleanup_Flag.* a-exexda.adb (Set_Exception_C_Msg): Ditto.(Set_Exception_Msg): Ditto.* a-exexpr-gcc.adb (Setup_Current_Excep): Ditto. Do not setPrivate_Data.* a-except.adb, a-except-2005.adb (Save_Occurrence_No_Private): Remove.Use Save_Occurrence instead of Save_Occurrence_No_Private.(Raise_With_Msg): Remove Cleanup_Flag.* a-except.ads, a-except-2005.ads (Exception_Occurrence): RemoveClean_Flag and Private_Data components.2011-08-29 Yannick Moy <moy@adacore.com>* freeze.adb (Freeze_Record_Type): Ignore packing in Alfa mode, likein CodePeer mode.* sem_ch3.adb (Signed_Integer_Type_Declaration): Correct the generationof an explicitly declared type, so that the base types of the originaltype and this generated type are the same, and a "type" (not a subtypelike previously).* errout.adb (Special_Msg_Delete): Do not issue messages "Size toosmall" in Alfa mode, like in CodePeer mode.* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore repclauses in Alfa mode.2011-08-29 Javier Miranda <miranda@adacore.com>* exp_ch6.ads, exp_ch6.adb (Is_Null_Procedure): Move the spec of thisfunction to the package spec.* sem_ch6.adb (Find_Corresponding_Spec, New_Overloaded_Entity): Forinternally generated bodies of null procedures locate the internallygenerated spec enforcing mode conformance.(Is_Interface_Conformant): Ensure that the controlling formal of theprimitives match.2011-08-29 Ed Schonberg <schonberg@adacore.com>* sem_prag.adb (Analyze_Pragma, case Inline): In an instance, do notreject the pragma if it appears to apply to a formal subprogram.2011-08-29 Ed Schonberg <schonberg@adacore.com>* exp_ch4.adb (Expand_Allocator_Expression): Use consistent name forinner expression, to prevent double evaluation.2011-08-29 Tristan Gingold <gingold@adacore.com>* a-exexpr.adb (Propagate_Exception): Remove all the parameters asthey were unused.* a-exexpr-gcc.adb (Propagate_Exception): Ditto.* a-except-2005.adb (Propagate_Exception): Adjust spec.(Raise_Current_Excep): Adjust call.(Raise_From_Signal_Handler): Call now simply call Raise_Current_Excep.2011-08-29 Thomas Quinot <quinot@adacore.com>* exp_disp.adb: Minor reformatting.2011-08-29 Tristan Gingold <gingold@adacore.com>* a-exexpr.adb (Setup_Exception): Removed.* a-exexpr-gcc.adb (Setup_Exception): Removed.* a-except.adb (Exception_Propagation): Removed.* a-except-2005.adb (Setup_Exception): Removed.(Reraise): Remove call to Setup_Exception.(Reraise_Occurrence): Ditto.(Reraise_Occurrence_Always): Ditto.(Reraise_Occurrence_No_Defer): Ditto.(Transfer_Occurrence): Ditto.* a-exexda.adb (Set_Exception_C_Msg): Remove call to Setup_Exception.(Set_Exception_Msg): Ditto.2011-08-29 Robert Dewar <dewar@adacore.com>* a-convec.adb, exp_disp.adb: Minor reformatting.2011-08-29 Tristan Gingold <gingold@adacore.com>* a-exexpr-gcc.adb (GNAT_GCC_Exception_Access): Set to convention C.2011-08-29 Gary Dismukes <dismukes@adacore.com>* exp_ch3.adb (Build_Record_Init_Proc.Build_Init_Procedure): SetException_Handlers to No_List instead of Empty_List in the case wherethere are no handlers.2011-08-29 Tristan Gingold <gingold@adacore.com>* gcc-interface/gigi.h (enum standard_datatypes): AddADT_reraise_zcx_decl(reraise_zcx_decl): New macro.* gcc-interface/trans.c (gnu_incoming_exc_ptr): New variable.(gigi): Set reraise_zcx_decl.(Exception_Handler_to_gnu_zcx): Save and restore gnu_incoming_exc_ptr.(gnat_to_gnu): Handle N_Raise_Statement.2011-08-29 Robert Dewar <dewar@adacore.com>* sem_ch6.adb, exp_ch3.adb, s-stposu.adb, a-undesu.ads,a-undesu.adb: Minor reformatting.2011-08-29 Ed Schonberg <schonberg@adacore.com>* exp_disp.adb (Check_Premature_Freezing): When building a dispatchtable, accept an unfrozen untagged component if it is an actual for aformal incomplete type.* a-convec.ads, a-convec.adb: Instantiate Ada.Iterator_Interfaces toprovide new iterator forms over vectors.Introduce type Iterator in package body to implement operations ofReversible_Iterator interface.* a-iteint.ads: Make package pure so it is usable with new containerpackages, that are categorized Remote_Types.2011-08-29 Robert Dewar <dewar@adacore.com>* a-exexpr-gcc.adb, a-synbar.adb, sem_ch13.adb: Minor reformatting.2011-08-29 Bob Duff <duff@adacore.com>* sem_aggr.adb (Resolve_Aggr_Expr): Call this routine even in the caseof <>, because this is the routine that checks for dimensionalityerrors (for example, for a two-dimensional array, (others => <>) shouldbe (others => (others => <>)).2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>* impunit.adb: Add new run-time units.* freeze.adb, exp_ch7.ads, exp_ch7.adb, exp_util.ads, exp_util.adb,s-stposu.ads, s-stposu.adb: Code clean up.Handle protected class-wide or task class-wide typesHandle C/C++/CIL/Java types.* s-spsufi.adb, s-spsufi.ads: New files.2011-08-29 Yannick Moy <moy@adacore.com>* sem_ch13.adb (Analyze_Aspect_Specifications): Reject test-case onlibrary-level subprogram.* sem_prag.adb (Check_Test_Case): Stricter rules for test-caseplacement.(Analyze_Pragma): Change name "Normal" for "Nominal" in test-casecomponent.* snames.ads-tmpl: Change name "Normal" for "Nominal" in test-casecomponent.* gnat_rm.texi: Update doc for Test_Case pragma.2011-08-29 Tristan Gingold <gingold@adacore.com>* a-exexpr-gcc.adb (Unwind_Exception): Remove default value, made itconvention C.(GCC_Exception_Access): New type.(Unwind_DeleteException): New imported procedure(Foreign_Exception): Import it.(GNAT_GCC_Exception): Simply have the occurrence inside.(To_GCC_Exception): New function.(To_GNAT_GCC_Exception): New function.(GNAT_GCC_Exception_Cleanup): New procedure..(Propagate_GCC_Exception): New procedure.(Reraise_GCC_Exception): New procedure.(Setup_Current_Excep): New procedure.(CleanupUnwind_Handler): Change type of UW_Exception parameter.(Unwind_RaiseException): Ditto.(Unwind_ForcedUnwind): Ditto.(Remove): Removed.(Begin_Handler): Change type of parameter.(End_Handler): Ditto. Now delete the exception if still present.(Setup_Key): Removed.(Is_Setup_And_Not_Propagated): Removed.(Set_Setup_And_Not_Propagated): Ditto.(Clear_Setup_And_Not_Propagated): Ditto.(Save_Occurrence_And_Private): Ditto.(EID_For): Add 'not null' constraint on parameter.(Setup_Exception): Does nothing.(Propagate_Exception): Simplified.* exp_ch11.adb (Expand_N_Raise_Statement): In back-end exception model,re-raise is not expanded anymore.* s-except.ads (Foreign_Exception): New exception - placeholder fornon Ada exceptions.* raise-gcc.c (__gnat_setup_current_excep): Declare(CXX_EXCEPTION_CLASS): Define (not yet used)(GNAT_EXCEPTION_CLASS): Define.(is_handled_by): Handle foreign exceptions.(PERSONALITY_FUNCTION): Call __gnat_setup_current_excep.2011-08-29 Jose Ruiz <ruiz@adacore.com>* a-synbar.adb (Synchronous_Barrier): Some additional clarification.2011-08-29 Thomas Quinot <quinot@adacore.com>* a-synbar-posix.adb: Minor reformatting.2011-08-29 Jose Ruiz <ruiz@adacore.com>* a-exetim-posix.adb, a-exetim-mingw.adb, a-exetim-mingw.ads,a-exetim-default.ads (Interrupt_Clocks_Supported,Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add thesedefinitions to be compliant with AI-0171. The target systems do notsupport separate account for the execution time of interrupt handlers.2011-08-29 Jose Ruiz <ruiz@adacore.com>* a-synbar.adb (Wait): Change the order of evaluation of the conditionsin the barrier to put first the easiest to evaluate (and the one whichwill be True more often). More efficient.2011-08-29 Eric Botcazou <ebotcazou@adacore.com>* s-atocou-x86.adb: Fix constraint in machine code insertion.2011-08-29 Bob Duff <duff@adacore.com>* aspects.ads, aspects.adb: Add new aspects for various pragmas andattributes that are now aspects, as specified by AI05-0229-1.* sem_ch13.adb (Analyze_Aspect_Specifications,Check_Aspect_At_Freeze_Point): Analyze the new aspects. Turn them intopragmas or attribute references, as appropriate.2011-08-29 Robert Dewar <dewar@adacore.com>* a-synbar.ads, a-synbar.adb, a-synbar-posix.adb,a-synbar-posix.ads: Minor reformatting.2011-08-29 Yannick Moy <moy@adacore.com>* snames.ads-tmpl: Add name Force.2011-08-29 Pascal Obry <obry@adacore.com>* prj-nmsc.adb: Minor reformatting.2011-08-29 Jose Ruiz <ruiz@adacore.com>* a-exetim.ads (Interrupt_Clocks_Supported,Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add thesedefinitions to be compliant with AI-0171.2011-08-29 Robert Dewar <dewar@adacore.com>* a-ngelfu.adb: Add comments.2011-08-29 Geert Bosch <bosch@adacore.com>* a-ngelfu.adb (Tan): Do not raise Constraint_Error if the argument isthe closest machine number to Pi / 2.0.2011-08-29 Jose Ruiz <ruiz@adacore.com>* impunit.adb (Non_Imp_File_Names_12): Add a-synbar for new Ada 2012package Ada.Synchronous_Barriers.* a-synbar.ads, a-synbar.adb, a-synbar-posix.ads, a-synbar-posix.adb:Add new specs and bodies for Ada.Synchronous_Barriers. There is adefault implementation using protected objects and another onea-synbar-posix using POSIX barriers as the underlying support.* gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for Linux (x86,x86_64, ia64) and MIPS IRIX): Use the a-synbar-posix implementation ofAda.Synchronous_Barriers which uses POSIX barriers (more efficient).Clean up dependencies.* Makefile.rtl (GNATRTL_TASKING_OBJS): Add a-synbar.o2011-08-29 Robert Dewar <dewar@adacore.com>* sem_ch7.adb, make.adb, sem_res.adb, exp_intr.adb,exp_dist.adb: Minor code reorganization.Minor reformatting.2011-08-29 Thomas Quinot <quinot@adacore.com>* sem_cat.adb (Validate_RACW_Primitive): The return type of an RACWprimitive operation must support external streaming if it is not acontrolling access result.2011-08-29 Thomas Quinot <quinot@adacore.com>* sinfo.ads, sem_ch7.adb: Minor reformatting.2011-08-29 Bob Duff <duff@adacore.com>* sem_ch4.adb (Analyze_Allocator): Check No_Nested_Finalizationrestriction on allocators, as required by AI05-0013-1.* restrict.ads: Minor comment fix.2011-08-29 Tristan Gingold <gingold@adacore.com>* a-exexpr.adb, a-except-2005.ads (Jmpbuf_Address): Move to a-exexpr.adb(To_Jmpbuf_Address): Ditto(builtin_longjmp): Ditto2011-08-29 Thomas Quinot <quinot@adacore.com>* sem_res.adb: Minor reformatting.2011-08-29 Vincent Celier <celier@adacore.com>* make.adb (Gnatmake): Move special processing for VM targets after thecall to Get_Target_Parameters.2011-08-29 Thomas Quinot <quinot@adacore.com>* sem_ch12.adb, par-ch12.adb: Minor reformatting.2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>* sem_res.adb (Resolve_Allocator): Implement Ada2012-B052. Detect caseswhere an anonymous access discriminant of a limited designated typeappears in a non-immutably limited discriminated type and issue anerror message. Add local variable Desig_T and replace all occurrencesof Designated_Type.2011-08-29 Jose Ruiz <ruiz@adacore.com>* a-rttiev.adb (Set_Handler): Update comment to indicate that ourimplementation is compliant to RM D.15(15/2) after the modificationimposed by AI05-0094-1 (binding interpretation).2011-08-29 Robert Dewar <dewar@adacore.com>* exp_ch9.adb, s-tasren.adb, exp_sel.adb, exp_sel.ads, exp_ch11.adb,s-interr-hwint.adb, s-tpobop.adb, sem_ch13.adb: Minor reformatting.2011-08-29 Thomas Quinot <quinot@adacore.com>* par-endh.adb (Check_End): For an END where it is mandatory to repeatthe scope name, do not report a missing label as a style violation (itwill be diagnosed as an illegality).* exp_dist.adb (Add_Params_For_Variant_Components): Fix handling ofvariant records: Get_Enum_Lit_From_Pos already returns a usageoccurrence of the literal, no need to use New_Occurrence_Of. Set Etypeon Expr in Integer_Literal case so that it can be used byBuild_To_Any_Call.2011-08-29 Tristan Gingold <gingold@adacore.com>* exp_sel.ads (Build_Abort_BLock_Handler): New function spec.Adjust comment.* exp_sel.adb (Build_Abort_Block): Use Build_Abort_Block_Handler.(Build_Abort_Block_Handler): New function to build an Abort_Signalexception handler.* exp_ch9.adb (Expand_N_Asynchronous_Select): CallBuild_Abort_Block_Handler to build the exception handler. Do notundefer aborts for the Abort_Signal exception handler if back-endexception mechanism.* exp_ch11.adb (Expand_Exception_Handlers): Do not undefer aborts ifback_end exceptions for all others and abort_signal.* s-except.ads (ZCX_By_Default): New constant.* a-except-2005.adb (Raise_Exception): Do not defer abort if ZCX.(Raise_Exception_Always): Ditto.(Raise_From_Signal_Handler): Ditto.(Raise_With_Location_And_Msg): Ditto.(Raise_With_Msg): Ditto.(Reraise): Ditto.(Reraise_Occurence): Ditto.(Reraise_Occurrence_Always): Ditto.* s-tasren.adb (Exceptional_Complete_Rendezvous): Defer aborts if ZCX.* s-tpobop.adb: (Exceptional_Complete_Body): Undefer abort if ZCX.2011-08-29 Thomas Quinot <quinot@adacore.com>* sem_util.ads (Get_Enum_Lit_From_Pos): Clarify documentation.2011-08-29 Robert Dewar <dewar@adacore.com>* snames.adb-tmpl, sem_ch13.adb: Minor reformattingMinor code reorganization.2011-08-29 Bob Duff <duff@adacore.com>* usage.adb (-gnatwy): Fix documentation: this switch applies to Ada2012, not just Ada 2005.2011-08-29 Vincent Celier <celier@adacore.com>* gnat_ugn.texi: Indicate that when the compiler is called by gnatmakewith a project file or with gprbuid, if -gnatep= is specified, thebuilder may need to be invoked with -x.2011-08-29 Tristan Gingold <gingold@adacore.com>* a-exexpr-gcc.adb: Minor comment fix.2011-08-29 Robert Dewar <dewar@adacore.com>* sem_ch8.adb: Minor reformatting.2011-08-29 Bob Duff <duff@adacore.com>* par-ch2.adb (P_Identifier): Warn that "some" is reserved in Ada 2012.* par-ch4.adb (P_Quantified_Expression): Remove unnecessary code fortreating "some" as unreserved in earlier Ada versions. This is nowhandled in Snames.Is_Keyword_Name. Parse "for some" using Tok_Some,rather than Name_Some, since Tok_Some is now recognized as reserved.* scans.adb (Initialize_Ada_Keywords): Handle Tok_Some like any otherreserved word.* scans.ads: Minor comment fixes.* snames.adb-tmpl (Is_Keyword_Name): Handle Ada 2012 reserved words asfor other language versions.* scn.adb (Scan_Reserved_Identifier): Remove unnecessary code fortreating "some" as unreserved in earlier Ada versions. This is nowhandled in Snames.Is_Keyword_Name.* par-ch3.adb (P_Defining_Identifier): Warn that "some" is reserved inAda 2012.(P_Subtype_Mark_Resync): Remove unnecessary code for treating "some" asunreserved in earlier Ada versions. This is now handled inSnames.Is_Keyword_Name.* snames.ads-tmpl (Ada_2012_Reserved_Words): Handle Ada 2012 reservedwords as for other language versions.* gnat_ugn.texi (-gnatwy): Fix documentation: this switch applies toAda 2012, not just Ada 2005.2011-08-29 Ed Schonberg <schonberg@adacore.com>* sem_ch13.adb: Additional semantic checks for aspects involved initerators.2011-08-29 Matthew Heaney <heaney@adacore.com>* a-comutr.ads, a-comutr.adb, a-cimutr.ads, a-cimutr.adb,a-cbmutr.ads, a-cbmutr.adb (Find_In_Subtree): Remove superfluousContainer parameter.(Ancestor_Find): ditto.2011-08-29 Thomas Quinot <quinot@adacore.com>* par-endh.adb: Minor reformatting.2011-08-29 Tristan Gingold <gingold@adacore.com>* a-exexpr-gcc.adb (Unwind_Action) Rewrite as an integer with constants.(GNAT_GCC_Exception): Remove N_Cleanups_To_Trigger component.(Adjust_N_CLeanups_For): Remove.(CleanupUnwind_Handler): Call Unhandled_Exception_Terminate when end ofstack is reached.(Propgate_Exception): Adjust.* raise-gcc.c: Add a few static/const.(Adjust_N_Cleanups_For): Remove declaration.(PERSONALITY_FUNCTION): Remove code dealing with N_Cleanups_To_Trigger.2011-08-29 Ed Schonberg <schonberg@adacore.com>* sem_ch8.adb: Use type of function return when rewriting as objectdeclaration.2011-08-29 Gary Dismukes <dismukes@adacore.com>* sem_type.adb: Minor reformatting.2011-08-29 Robert Dewar <dewar@adacore.com>* makeutl.adb: Minor reformatting.2011-08-29 Ed Schonberg <schonberg@adacore.com>* sem_ch8.adb (Analyze_Object_Renaming): If the renamed object is afunction call of a limited type, the expansion of the renaming iscomplicated by the presence of various temporaries and subtypes thatcapture constraints of the renamed object.Rewrite node as an object declaration, whose expansion is simpler.Given that the object is limited there is no copy involved and noperformance hit.2011-08-29 Robert Dewar <dewar@adacore.com>* exp_ch5.adb, sinfo.ads, make.adb, s-pooglo.adb, sem_ch12.adb,freeze.adb, sem_ch6.adb, par-ch12.adb: Minor reformatting.2011-08-29 Tristan Gingold <gingold@adacore.com>* system-darwin-x86.ads, system-linux-s390x.ads, system-linux-alpha.ads,system-tru64.ads, system-irix-n32.ads, system-vxworks-arm.ads,system-linux-hppa.ads, system-linux-s390.ads,system-solaris-sparcv9.ads, system-mingw.ads, system-linux-ia64.ads,system-vms_64.ads, system-vxworks-sparcv9.ads, system-linux-ppc.ads,system-aix64.ads, system-lynxos-ppc.ads, system-linux-sh4.ads,system-solaris-x86.ads, system-linux-x86_64.ads, system-linux-x86.ads,system-vxworks-ppc.ads, system-hpux.ads, system-darwin-ppc.ads,system-solaris-sparc.ads, system-lynxos-x86.ads,system-vxworks-m68k.ads, system-hpux-ia64.ads, system-irix-o32.ads,system-solaris-x86_64.ads, system-mingw-x86_64.ads,system-vxworks-mips.ads, system-linux-sparc.ads, system-vms-ia64.ads,system-freebsd-x86.ads, system-aix.ads, system-darwin-x86_64.ads,system-vxworks-x86.ads: Remove GCC_ZCX_Support.* s-taprop-posix.adb, s-taprop-irix.adb, s-taprop-vxworks.adb,s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-solaris.adb: Ditto.* opt.ads: Adjust comment.* targparm.ads, targparm.adb: Remove GCC_ZCX_Support_On_Target.* gnat1drv.adb: Do not check for GCC_ZCX_Support_On_Target.* system.ads: Move GCC_ZCX_Support to obsolete entries.2011-08-29 Emmanuel Briot <briot@adacore.com>* makeutl.adb (Do_Complete): Resolve symbolic links when a relativefile name is specified on the gnatmake or gprbuild command line, andbefore we search for that file in the project.2011-08-29 Ed Schonberg <schonberg@adacore.com>* sem_type.adb (Within_Instance): New predicate in Collect_Interps,used to determine whether a possible interpretation for an overloadableentity is declared within the current instantiation and should beincluded in the candidate set.2011-08-29 Vasiliy Fofanov <fofanov@adacore.com>* gnat_rm.texi, gnat_ugn.texi: Clean ups.2011-08-29 Ed Schonberg <schonberg@adacore.com>* sem_res.adb (Resolve_Actuals): Use base type to determine whether anaccess subtype is access_to_subprogram, when applying checks forRM 3.10.2 (27).2011-08-29 Matthew Heaney <heaney@adacore.com>* a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Splice_Subtree): Only checkfor sibling when common parent.2011-08-29 Thomas Quinot <quinot@adacore.com>* get_scos.adb: Literals of Pragma_Id are pragma names prefixed with"pragma_".2011-08-29 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Enable freeze actionsfor the return type when in ASIS mode.2011-08-29 Vincent Celier <celier@adacore.com>* make.adb (Gnatmake): Get the default search dirs, then the targetparameters after getting the Builder switches, as the Builder switchesmay include --RTS= and that could change the default search dirs.2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch7.adb (Make_Adjust_Call): Rewrite to mimic the structure ofMake_Final_Call. Move the processing for class-wide types before theprocessing for derivations from [Limited_]Controlled.(Make_Final_Call): Move the processing for class-wide types before theprocessing for derivations from [Limited_]Controlled.* s-stposu.adb (Allocate_Any_Controlled): Correct the membership check.Add code to account for alignments larger than the list header. Add acomment illustrating the structure of the allocated object + padding +header.(Deallocate_Any_Controlled): Add code to account for alignments largerthan the list header.2011-08-29 Ed Schonberg <schonberg@adacore.com>* sinfo.ads, sinfo.adb: New node kindN_Formal_Incomplete_Type_Definition, related flags.par-ch12.adb (P_Formal_Type_Declaration, G_Formal_Type_Definition):Parse formal incomplete types.* sem.adb (Analyze): Formal_Incomplete_Type_Definitions are handled insem_ch12.* sem_ch7.adb (Analyze_Package_Specification, Unit_Requires_Body):Formal incomplete types do not need completion.* sem_ch12.adb (Analyze_Formal_Incomplete_Type,Validate_Incomplete_Type_Instance): New procedures to handle formalincomplete types.* freeze.adb (Freeze_Entity): Do not freeze the subtype of an actualthat corresponds to a formal incomplete type.* sprint.adb: Handle formal incomplete type declarations.* exp_util.adb (Insert_Actions): An incomplete_type_definition is notan insertion point.2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>* a-fihema.ads, a-fihema.adb: Unit removed.* a-undesu.ads, a-undesu.adb: New unit implementingAda.Unchecked_Deallocate_Subpool.* einfo.adb: Remove Associated_Collection from the node usage.Add Finalization_Master to the node usage.(Associated_Collection): Removed.(Finalization_Master): New routine.(Set_Associated_Collection): Removed.(Set_Finalization_Master): New routine.(Write_Field23_Name): Remove Associated_Collection from the output. AddFinalization_Master to the output.* einfo.ads: Remove attribute Associated_Collection and its uses inentities.Add new attribute Finalization_Master along with its uses in entitites.(Associated_Collection): Removed along with its pragma import.(Finalization_Master): New routine along with a pragma import.(Set_Associated_Collection): Removed along with its pragma import.(Set_Finalization_Master): New routine along with a pragma import.* exp_ch3.adb (Expand_Freeze_Array_Type): Replace call toBuild_Finalization_Collection with Build_Finalization_Master.(Expand_Freeze_Record_Type): Move the generation of Finalize_Addressbefore the bodies of the predefined routines. Add comment explainingthis. Replace call to Build_Finalization_Collection withBuild_Finalization_Master.(Freeze_Type): Replace call to Build_Finalization_Collection withBuild_Finalization_Master.(Make_Finalize_Address_Body): Comment reformatting.(Make_Predefined_Primitive_Specs): Code reformatting.(Stream_Operation_OK): Update comment mentioning finalizationcollections. Replace RE_Finalization_Collection withRE_Finalization_Master.* exp_ch4.adb (Complete_Controlled_Allocation): Replace call toAssociated_Collection with Finalization_Master. Replace call toBuild_Finalization_Collection with Build_Finalization_Master.(Expand_Allocator_Expression): Replace call to Associated_Collectionwith Finalization_Master. Replace call to Set_Associated_Collection withSet_Finalization_Master. Remove the generation ofSet_Finalize_Address_Ptr.(Expand_N_Allocator): Replace call to Associated_Collection withFinalization_Master. Remove the generation of Set_Finalize_Address_Ptr.* exp_ch6.adb (Add_Collection_Actual_To_Build_In_Place_Call): Renamed toAdd_Finalization_Master_Actual_To_Build_In_Place_Call. Update thecomment on usage. Replace call to Needs_BIP_Collection withNeeds_BIP_Finalization_Master Remplace BIP_Collection withBIP_Finalization_Master. Update all comments which mention finalizationcollections. Replace Associated_Collection withFinalization_Master. Replace Build_Finalization_Collection withBuild_Finalization_Master.(BIP_Formal_Suffix): Update BIP_Collection's case.(Build_Heap_Allocator): Update the related comment. Rename localvariable Collect to Fin_Mas_Id and update its occurrences. Updatecomments which mention finalization collections. ReplaceSet_Associated_Collection with Set_Finalization_Master.(Expand_Call): Update the code which detects a special piece of librarycode for .NET/JVM.(Make_Build_In_Place_Call_In_Allocator): Replace the call toAdd_Collection_Actual_To_Build_In_Place_Call withAdd_Finalization_Master_Actual_To_Build_In_Place_Call. Remove the codewhich generates a call to Make_Set_Finalize_Address_Ptr_Call.(Make_Build_In_Place_Call_In_Anonymous_Context): Replace call toAdd_Collection_Actual_To_Build_In_Place_Call withAdd_Finalization_Master_Actual_To_Build_In_Place_Call.(Make_Build_In_Place_Call_In_Assignment): Replace call toAdd_Collection_Actual_To_Build_In_Place_Call withAdd_Finalization_Master_Actual_To_Build_In_Place_Call.(Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master.* exp_ch6.ads: Rename BIP_Collection to BIP_Finalization_Master.(Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master.* exp_ch7.adb (Build_BIP_Cleanup_Stmts): Update comment on usage.Rename local variable Collect to Fin_Mas_Id and update its occurrences.Replace call to Set_Associated_Collection with Set_Finalization_Master.(Build_Finalization_Collection): Renamed to Build_Finalization_Master.Replace the call to Associated_Collection with Finalization_Master.Rename local variable Coll_Id to Fin_Mas_Id and update its occurrences.Update the way finalization master names are generated. Update theretrieval of the correct access type which will carry the pool andmaster attributes.(Make_Final_Call): Reimplement the way [Deep_]Finalize is retrieved.(Make_Finalize_Address_Body): Abstract types do not needFinalize_Address. Code reformatting.(Make_Finalize_Address_Stmts): Update comment on usage.(Make_Set_Finalize_Address_Ptr_Call): Removed.(Process_Declarations): Update comments.* exp_ch7.ads (Build_Finalization_Collection): Renamed toBuild_Finalization_Master. Update associated comment.(Make_Set_Finalize_Address_Ptr_Call): Removed.* exp_ch13.adb: Update comments which mention finalization collections.(Expand_N_Free_Statement): Replace the call to Associated_Collectionwith Finalization_Master.* exp_util.adb (Build_Allocate_Deallocate_Proc): Reimplemented tocreate calls to routines Allocate_Any_Controlled andDeallocate_Any_Controlled.(Find_Finalize_Address): New routine.(Is_Allocate_Deallocate_Proc): Update the RTE entities used in thecomparison.(Requires_Cleanup_Actions): Update the comment on freeze nodeinspection.* exp_util.ads: Remove comment on generated code forBuild_Allocate_Deallocate_Proc. The code is now quite complex and itis better to simply look in the body.* freeze.adb (Freeze_All): Update the comment of finalizationcollections. Replace the call to Associated_Collection withFinalization_Master. Replace the call to Build_Finalization_Collectionwith Build_Finalization_Master.* impunit.adb: Add a-undesu and s-stposu to the list of units.* Makefile.rtl: Add files a-undesu, s-finmas and s-stposu. Remove filea-fihema.* rtsfind.adb (Get_Unit_Name): Remove the processing for children ofAda.Finalization. Add processing for children of System.Storage_Pools.* rtsfind.ads: Remove the naming of second level children ofAda.Finalization.Remove Ada_Finalization_Heap_Management from the list of units.Remove subtype Ada_Finalization_Child.Remove the following subprogram entities:RE_AllocateRE_DeallocateRE_Finalization_CollectionRE_Finalization_Collection_PtrRE_Set_Finalize_Address_PtrAdd the naming of second level children of System.Storage_Pools.Add System_Finalization_Masters and System_Storage_Pools_Subpools tothe list of units.Add subtype System_Storage_Pools_Child.Add the following subprogram entities to System.Finalization_Masters:RE_Finalization_MasterRE_Finalization_Master_PtrAdd the following subprogram entities to System.Storage_Pools.Subpools:RE_Allocate_Any_ControlledRE_Deallocate_Any_ControlledRE_Root_Storage_Pool_With_SubpoolsRE_Root_SubpoolRE_Subpool_HandleMove the following subprogram entities fromAda.Finalization.Heap_Management to System.Finalization_Masters:RE_Add_Offset_To_AddressRE_AttachRE_Base_PoolRE_Detach* sem_ch3.adb (Access_Type_Declaration): Replace the call toSet_Associated_Collection with Set_Finalization_Master.* sem_ch6.adb (Create_Extra_Formals): Update the way extra formalBIP_Finalization_Master is created.* s-finmas.adb: New unit System.Finalization_Masters.* s-finmas.ads: New unit System.Finalization_Masters.* s-stopoo.ads, s-stopoo.adb: Minor code reformatting.* s-stposu.ads, s-stposu.adb: New unit implementingSystem.Storage_Pools.Subpools.2011-08-29 Bob Duff <duff@adacore.com>* tbuild.adb: Add assertion.2011-08-29 Thomas Quinot <quinot@adacore.com>* s-pooglo.adb: Minor reformatting.2011-08-29 Ed Schonberg <schonberg@adacore.com>* exp_ch5.adb (Expand_N_Assignment_Statement): if the left-hand side isan indexed component of a packed array whose element type is a recordwith a representation clause different from that of the right-handside, generate a temporary to minimuze the number of bit-fieldoperations generated.2011-08-29 Ed Schonberg <schonberg@adacore.com>* exp_util.adb (Insert_Actions): Use clauses can be part of lists ofdeclarations, and thus are likely insertion points for actions.2011-08-29 Bob Duff <duff@adacore.com>* einfo.ads: Minor comment fix.2011-08-29 Robert Dewar <dewar@adacore.com>* frontend.adb, gnat1drv.adb: Minor reformatting.2011-08-29 Tristan Gingold <gingold@adacore.com>* s-pooglo.adb (Allocate, Deallocate): Take into account the alignment.* a-fihema.adb (Allocate, Deallocate): Ditto. Possibly add paddingspace in front of the header.2011-08-29 Johannes Kanig <kanig@adacore.com>* frontend.adb (Frontend): Exit after creating Standard package when-gnatd.H is present.* gnat1drv.adb (Gnat1drv): Call Backend right away when -gnatd.H ispresent.2011-08-29 Robert Dewar <dewar@adacore.com>* exp_ch9.adb, mlib-prj.adb, prj.adb, prj.ads, ttypes.ads, sem_ch4.adb,makeutl.adb, makeutl.ads, atree.ads, snames.adb-tmpl,snames.ads-tmpl: Minor reformatting.2011-08-29 Philippe Gil <gil@adacore.com>* prj.adb (Reset_Units_In_Table): New procedure.Reset units to avoid access to freed memory.2011-08-29 Thomas Quinot <quinot@adacore.com>* get_scos.adb: When reading a P statement SCO without a pragma name(from an older ALI file), ensure that the Pragma_Name component is setto Unknown_Pragma (not left uninitialized).2011-08-29 Vincent Celier <celier@adacore.com>* makeutl.adb (Get_Directories): New procedure moved from Buildgpr andmodified to compute correctly the object path of a SAL project that isextending another library project.(Write_Path_File): New procedure.* makeutl.ads (Directories): New table moved from Buildgpr(Get_Directories): New procedure moved from Buildgpr(Write_Path_File): New procedure* mlib-prj.adb (Build_Library): Use Makeutl.Get_Directories to set thepaths before binding SALs, instead of Set_Ada_Paths.* prj-env.adb (Set_Path_File_Var): Procedure has been moved to packagePrj.* prj.adb (Set_Path_File_Var): New procedure moved from Prj.Env(Current_Source_Path_File_Of): New function(Set_Current_Object_Path_File_Of): New procedure(Current_Source_Object_File_Of): New function(Set_Current_Object_Path_File_Of): New procedure* prj.ads (Set_Path_File_Var): New procedure moved from Prj.Env(Current_Source_Path_File_Of): New function(Set_Current_Object_Path_File_Of): New procedure(Current_Source_Object_File_Of): New function(Set_Current_Object_Path_File_Of): New procedure2011-08-29 Ed Schonberg <schonberg@adacore.com>* exp_ch5.adb (Expand_N_Assignment_Statement): For an assignment to apacked entity, use a bit-field assignment only if there is no change ofrepresentation.2011-08-29 Thomas Quinot <quinot@adacore.com>* rtsfind.ads, exp_ch3.adb (In_Runtime): Minor code improvement, useIs_RTU instead of using Chars comparisons.2011-08-29 Thomas Quinot <quinot@adacore.com>* exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do not create atemporary object if the actual is constrained, and the discriminantsread from the stream don't match.2011-08-29 Tristan Gingold <gingold@adacore.com>* sem_attr.adb, exp_attr.adb: Add handling ofAttribute_System_Allocator_Alignment* snames.ads-tmpl: Add Name_System_Allocator_Alignment andAttribute_System_Allocator_Alignment.* ttypes.ads, get_targ.ads: Add Get_System_Allocator_Alignment.* gcc-interface/targtyps.c, gcc-interface/utils2.c,gcc-interface/gigi.h: Renames get_target_default_allocator_alignment toget_target_system_allocator_alignment.2011-08-29 Arnaud Charlet <charlet@adacore.com>* gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Updatedependencies.2011-08-29 Arnaud Charlet <charlet@adacore.com>* exp_ch3.adb (In_Runtime): Fix typo.2011-08-29 Bob Duff <duff@adacore.com>* sem_ch4.adb (Analyze_Allocator): Analyze the subpool specification.2011-08-29 Ed Schonberg <schonberg@adacore.com>* exp_ch3.adb (Expand_N_Object_Declaration): If the entity is taggedand a separate tag assignment is generated, ensure that the tagassignment is analyzed.2011-08-29 Ed Schonberg <schonberg@adacore.com>* atree.ads, atree.adb (Copy_Separate_List): New function that appliesCopy_Separate_Tree to a list of nodes. Used to create disjoint copiesof statement lists that may contain local declarations.* exp_ch9.adb (Expand_N_Timed_Entry_Call): Use Copy_Separate_List toduplicate the triggering statements needed for the expansion of thisconstruct, when the trigger is a dispatching call to a synchronizedprimitive.2011-08-29 Arnaud Charlet <charlet@adacore.com>* gnat_rm.texi: Add doc for 'Elab_Subp_Body.* bindgen.adb: Add comments.* snames.adb-tmpl (Is_Attribute_Name): Only recognize 'Elab_Subp_Bodyin CodePeer mode.2011-08-29 Robert Dewar <dewar@adacore.com>* exp_attr.adb: Minor reformatting.Minor code reorganization and commenting.* par_sco.adb, checks.adb, sem_attr.adb, get_scos.adb: Minorreformatting.2011-08-29 Thomas Quinot <quinot@adacore.com>* get_scos.adb: Ignore chaining indicators not currently supportedby Ada.2011-08-29 Arnaud Charlet <charlet@adacore.com>* system.ads: Minor editing.2011-08-29 Arnaud Charlet <charlet@adacore.com>* bindgen.adb (Gen_Elab_Calls): Generate calls to subp'Elab_Subp_Body inCodePeer mode.* sem_attr.ads, sem_attr.adb, exp_Attr.adb, sem_ch6.adb: Add handling ofAttribute_Elab_Subp_Body.* snames.ads-tmpl (Attribute_Elab_Subp_Body, Name_Elab_Subp_Body): New.* sem_util.adb: Update comments.2011-08-29 Thomas Quinot <quinot@adacore.com>* par_sco.adb, scos.adb, scos.ads, put_scos.adb, get_scos.adb: Recordpragma name for each SCO statement corresponding to a pragma.2011-08-29 Arnaud Charlet <charlet@adacore.com>* opt.ads: Minor editing.2011-08-29 Yannick Moy <moy@adacore.com>* gnat1drv.adb (Adjust_Global_Switches): Remove options for ALFA modethat only made sense for CodePeer mode.2011-08-29 Jose Ruiz <ruiz@adacore.com>* targparm.ads (Support_64_Bit_Divides_On_Target): Remove this flagwhich is no longer used.* targparm.adb (S64, S64_Str, Get_Target_Parameters): Remove thehandling of the 64-bit division check.* exp_ch4.adb (Expand_N_Op_Divide): Remove the check for 64-bitdivision available.* system*.ads (Support_64_Bit_Divides): Remove this flag which is nolonger used.2011-08-29 Thomas Quinot <quinot@adacore.com>* get_scos.adb: Minor reformatting.2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>* exp_util.adb (Process_Statements_For_Controlled_Objects): Whenever astatement list is wrapped in a block, the block is explicitly analyzedin order to properly redecorate the entities and create a servicingfinalizer.2011-08-29 Tristan Gingold <gingold@adacore.com>* sinfo.ads, sinfo.adb (Zero_Cost_Handling): Remove.(Set_Zero_Cost_Handling): Remove.2011-08-29 Thomas Quinot <quinot@adacore.com>* par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Minor reformatting2011-08-29 Geert Bosch <bosch@adacore.com>* s-vaflop-vms-alpha.adb (Neg_F): Use subtraction instead of negationinstruction, as the latter may produce -0.0, which is not a valid VAXF float number.(Neg_G): Likewise for VAX F float.2011-08-29 Robert Dewar <dewar@adacore.com>* exp_util.adb: Minor reformatting.2011-08-29 Yannick Moy <moy@adacore.com>* sem_ch3.adb: Minor comment update.2011-08-29 Thomas Quinot <quinot@adacore.com>* checks.adb (Apply_Type_Conversion_Checks): Use the Underlying_Type ofthe operand type.2011-08-29 Thomas Quinot <quinot@adacore.com>* par_sco.adb (Traverse_Declarations_Or_Statements): Do not flushcurrent statement sequence on a generic instantiation or a subprogramdeclaration.2011-08-29 Robert Dewar <dewar@adacore.com>* sem_type.adb, einfo.ads, freeze.adb, exp_ch4.adb, sem_ch13.adb:Minor reformatting.2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>* exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)):Correct the check which involves the freeze node of a controlled oraccess-to-controlled type.2011-08-29 Geert Bosch <bosch@adacore.com>* sem_warn.adb (Check_Code_Statement): Remove check for consecutive Asmstatements.* s-vaflop-vms-alpha.adb: Remove bogus Volatile => True arguments fromAsm statements.2011-08-29 Yannick Moy <moy@adacore.com>* sem_ch3.adb (Array_Type_Declaration): Insert a subtype declarationfor every index type and component type that is not a subtype_mark.(Process_Subtype): Set Etype of subtype.2011-08-29 Robert Dewar <dewar@adacore.com>* a-cbmutr.adb, a-cimutr.adb, a-comutr.adb, prj-nmsc.adb: Minor codereorganization. Minor reformatting.2011-08-29 Steve Baird <baird@adacore.com>* exp_ch4.adb (Expand_N_Op_Expon): Suppress N_Op_Expon node expansionfor CodePeer and ALFA modes.2011-08-29 Ed Schonberg <schonberg@adacore.com>* sem_type.adb (Collect_Interps): Within an instance, collect a homonymthat comes from an enclosing scope if it is not the renaming of anactual, to handle properly a spurious ambiguity in an instance.2011-08-29 Eric Botcazou <ebotcazou@adacore.com>* sem_ch13.adb (Alignment_Check_For_Esize_Change): Rename to...(Alignment_Check_For_Size_Change): ...this. Add SIZE parameter anduse it instead of the Esize of the first parameter.(Analyze_Attribute_Definition_Clause) <Object_Size>: Adjust call toabove change.<Size>: Likewise. Call it for composite types on the RM size.2011-08-29 Yannick Moy <moy@adacore.com>* exp_ch4.adb (Expand_N_Op_Not): Do not expand not on array.* sem_util.adb (Unique_Name): Correct behaviour for names ofcompilation units.2011-08-29 Yannick Moy <moy@adacore.com>* sem_prag.adb (Check_Precondition_Postcondition): In formalverification mode, analyze pragma expression for correctness, forpre/post on library-level subprogram, as it is not expanded later.2011-08-29 Yannick Moy <moy@adacore.com>* exp_aggr.adb (Expand_Array_Aggregate): Do not expand array aggregatesin formal verification.2011-08-29 Thomas Quinot <quinot@adacore.com>* sem_util.adb: Minor reformatting.* freeze.adb, sem_ch13.adb: Fix comment: Bit_Order is an attribute,there's no pragma.* par_sco.ads, par_sco.adb: Update comments.2011-08-29 Yannick Moy <moy@adacore.com>* einfo.adb, einfo.ads: Remove flag Is_Postcondition_Proc andassociated getter/setter.* sem_ch6.adb: Remove reference to Is_Postcondition_Proc.2011-08-29 Vincent Celier <celier@adacore.com>* prj-attr.adb: New Compiler attribute Dependency_Kind and Language_Kind* prj-conf.adb: Add_Default_GNAT_Naming_Scheme: Add a package Compilerwith declarations for Language_Kind and Dependency_Kind for Ada.* prj-nmsc.adb (Check_Unit_Name): New name of procedure Check_Ada_Name(Process_Compiler): Take into account the new attributes Dependency_Kindand Language_Kind.(Check_Configuration): Check if language kind is unit based, not if thelanguage name is Ada.(Process_Exceptions_Unit_Based): Ditto(Add_Language): Remove default additions of language and dependency kind* prj.ads: Minor comment change* snames.ads-tmpl: New standard names Dependency_Kind and Language_Kind2011-08-29 Johannes Kanig <kanig@adacore.com>* debug.adb: Update comments.2011-08-24 Joseph Myers <joseph@codesourcery.com>* gcc-interface/Make-lang.in (CFLAGS-ada/tracebak.o)(CFLAGS-ada/targext.o, CFLAGS-ada/cio.o, CFLAGS-ada/init.o)(CFLAGS-ada/initialize.o, CFLAGS-ada/raise.o): New.(ada/tracebak.o, ada/targext.o, ada/cio.o, ada/init.o)(ada/initialize.o, ada/raise.o): Remove explicit compilation rules.2011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>* gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): New.(GNATLIBCFLAGS_FOR_C): ReplaceTARGET_LIBGCC2_CFLAGS by PICFLAG_FOR_TARGET.(gnatlib-shared-default, gnatlib-shared-dual-win32)(gnatlib-shared-win32, gnatlib-shared-darwin, gnatlib-shared)(gnatlib-sjlj, gnatlib-zcx): Likewise.2011-08-07 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/Makefile.in (raise-gcc.o): Fix previous change.* gcc-interface/gigi.h (enumerate_modes): Fix formatting.* gcc-interface/trans.c (Subprogram_Body_to_gnu): Revert latest change.2011-08-05 Nicolas Roche <roche@adacore.com>* gcc-interface/Makefile.in: Don't use directly ../xgcc to build sharedlibgnat. Use rather the value of GCC_FOR_TARGET. Fix issue withcanadian cross.* gcc-interface/Make-lang.in: Add support for canadian cross setting.2011-08-05 Matthew Heaney <heaney@adacore.com>* a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Child_Count, Child_Depth):subprogram bodies declared out-of-order.2011-08-05 Yannick Moy <moy@adacore.com>* sem_util.adb (Unique_Name): only prefix with "standard" the names ofentities directly in package Standard, otherwise skip the standardprefix.2011-08-05 Robert Dewar <dewar@adacore.com>* a-cbmutr.adb: Minor reformatting(Allocate_Node): refactor node allocation algorithm2011-08-05 Robert Dewar <dewar@adacore.com>* opt.ads, opt.adb (Debug_Pragmas_Disabled): New switch.* sem_prag.adb (Analyze_Pragma, case Debug_Policy): Implement Disablemode.(Analyze_Pragma, case Check_Policy): Ditto.* sem_prag.ads (Check_Disabled): New function* snames.ads-tmpl: Add Name_Disable.2011-08-05 Robert Dewar <dewar@adacore.com>* gnat_rm.texi: Document implementation-defined policy DISABLE forpragmas Assertion_Policy, Check_Policy, Debug_Policy.2011-08-05 Ed Schonberg <schonberg@adacore.com>* sem_prag.adb (Analyze_Pragma, case Inline): reject an Inline pragmathat appears in a generic formal part and applies to a formalsubprogram.2011-08-05 Robert Dewar <dewar@adacore.com>* a-cbmutr.ads: Minor reformatting.2011-08-05 Matthew Heaney <heaney@adacore.com>* a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Read): do not use T'Validto check count, check sign of value instead.* a-comutr.adb, a-cimutr.adb (Write): return immediately if tree empty(Copy_Subtree): allocate copy of source element(Equal_Subtree): compare elements, not access objects2011-08-05 Vincent Celier <celier@adacore.com>* gnat_ugn.texi: Fix VMS alternative.2011-08-05 Thomas Quinot <quinot@adacore.com>* sem_ch11.adb: Add comment.2011-08-05 Robert Dewar <dewar@adacore.com>* exp_util.adb: Minor comment fix.2011-08-05 Robert Dewar <dewar@adacore.com>* scng.adb (Error_Unterminated_String): Improve flag position whencomma present.2011-08-05 Matthew Heaney <heaney@adacore.com>* Makefile.rtl, impunit.adb: Added a-cbmutr.ad[sb] (bounded multiwaytree containers).* a-cbmutr.ads, a-cbmutr.adb: This is the new Ada 2012 unit for boundedmultiway tree containers.2011-08-05 Robert Dewar <dewar@adacore.com>* styleg.adb (Check_Comment): Implement comment spacing of 1 or 2* stylesw.adb: Implement -gnatyC to control comment spacing* stylesw.ads (Style_Check_Comments_Spacing): New switch (set by-gnatyc/C).* usage.adb: Add line for -gnatyC.2011-08-05 Robert Dewar <dewar@adacore.com>* gnat_ugn.texi: Document -gnatyC.* vms_data.ads: Implement COMMENTS1/COMMENTS2 (retaining COMMENTS as asynonym for COMMENTS2).2011-08-05 Robert Dewar <dewar@adacore.com>* par_sco.adb, sem_ch3.adb, scos.ads, a-iteint.ads, sem_ch12.adb,a-cimutr.adb, a-cimutr.ads, sem_util.ads, sem_res.adb, a-fihema.adb,sem_ch4.adb, lib-xref-alfa.adb, exp_disp.adb, a-comutr.adb,a-comutr.ads, lib-xref.adb: Minor reformatting.2011-08-05 Robert Dewar <dewar@adacore.com>* sem_ch11.adb (Analyze_Raise_Statement): Kill assignment to formalwarning if there is an exception handler present.2011-08-05 Pascal Obry <obry@adacore.com>* a-iteint.ads: Fix copyright year.2011-08-05 Thomas Quinot <quinot@adacore.com>* par_sco.adb (Traverse_Declarations_Or_Statements): Do not generate astatement SCO for a USE clause or a representation clause.2011-08-05 Yannick Moy <moy@adacore.com>* lib-xref-alfa.adb (Collect_ALFA): generate the proper relationbetween body and spec for stub.(Detect_And_Add_ALFA_Scope): take into account subprogram stub* lib-xref.adb (Enclosing_Subprogram_Or_Package): in the case of apragma precondition or postcondition, for which the enclosingsubprogram or package in the AST is not the desired one, return empty.2011-08-05 Thomas Quinot <quinot@adacore.com>* g-expect.adb: Minor reformatting.2011-08-05 Bob Duff <duff@adacore.com>* a-fihema.adb: Comment out OS_Lib.2011-08-05 Matthew Heaney <heaney@adacore.com>* Makefile.rtl, impunit.adb: Added a-c[oi]mutr.ad[sb](unbounded multiway tree containers) and a-iteint.ads.* a-comutr.ads, a-comutr.adb:This is the new Ada 2012 unit for unbounded multiway tree containers* a-cimutr.ads, a-cimutr.adbThis is the new Ada 2012 unit for indefinite multiway tree containers* a-iteint.ads: New file.2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>* gcc-interface/Makefile.in (raise-gcc.o): Search $(srcdir)/../libgcc.2011-08-05 Bob Duff <duff@adacore.com>* sinfo.ads, sinfo.adb (Subpool_Handle_Name): New attribute forsubpools.* par-ch4.adb (P_Allocator): Parse new subpool specification syntax.2011-08-05 Ed Schonberg <schonberg@adacore.com>* sem_ch4.adb (Try_Container_Indexing): New procedure to implement thegeneral indexing aspects of Ada2012. Called when analyzing indexedcomponents when other interpretations fail.* sem_ch8.adb (Find_Direct_Name): check for implicit dereference onlyin an expression context where overloading is meaningful. This excludesthe occurrence in an aspect specification (efficiency only).* sem_attr.adb (Analyze_Attribute): indicate that the attributesrelated to iterators can be set by an attribute specification, butcannot be queried.* sem_ch13.adb (Analyze_Aspect_Specifications): handleConstant_Indexing and Variable_Indexing.(Check_Indexing_Functions): New procedure to perform legality checks.Additional semantic checks at end of declarations.2011-08-05 Sergey Rybin <rybin@adacore.com>* tree_io.ads: Update ASIS_Version_Number because of the change of theorder of calling Tree_Write/Tree_Read routines made for aspects.2011-08-05 Bob Duff <duff@adacore.com>* a-fihema.adb (Finalize): Fix race condition.2011-08-05 Yannick Moy <moy@adacore.com>* sem_ch12.adb (Analyze_Package_Instantiation,Need_Subprogram_Instance_Body): do not generate instance bodies in ALFAmode.2011-08-05 Ed Schonberg <schonberg@adacore.com>* sem_type.adb (Specific_Type): in an instance, the type-specificoperand of an equality check that involves null may have a privatetype. Use full view to determine legality of construct.2011-08-05 Vincent Celier <celier@adacore.com>* gnatcmd.adb (Get_Closure): Do not crash when it is not possible todelete or close the file when the call to gnatmake was successful.2011-08-05 Yannick Moy <moy@adacore.com>* gnat1drv.adb (Adjust_Global_Switches): in ALFA mode, setGlobal_Discard_Names.2011-08-05 Ed Schonberg <schonberg@adacore.com>* sinfo.ads: comments on use of entity field for aspect specifications.2011-08-05 Ed Schonberg <schonberg@adacore.com>* sem_ch12.adb (Reset_Entity): If the entity field of the associatednode is not itself an entity but a selected component, it is arewritten parameterless call to an en enclosing synchronized operation,and this expansion will be performed again in the instance, so there isno global information to preserve.2011-08-05 Javier Miranda <miranda@adacore.com>* exp_disp.adb (Set_All_DT_Position): Cleanup code and improve supportfor renamings of predefined primitives.(In_Predef_Prims_DT): New subprogram.2011-08-05 Ed Schonberg <schonberg@adacore.com>* sem_util.adb, sem_util.ads (Check_Implicit_Dereference): If apossible interpretation of name is a reference type, add aninterpretation that is the designated type of the referencediscriminant of that type.* sem_res.adb (resolve): If the interpretation imposed by context is animplicit dereference, rewrite the node as the deference of thereference discriminant.* sem_ch3.adb (Analyze_Subtype_Declaration, Build_Derived_Record_Type,Build_Discriminated_Subtype): Inherit Has_Implicit_Dereference fromparent type or base type.* sem_ch4.adb (Process_Indexed_Component,Process_Overloaded_Indexed_Component, Indicate_Name_And_Type,Analyze_Overloaded_Selected_Component, Analyze_Selected_Component):Check for implicit dereference.(List_Operand_Interps): Indicate when an implicit dereference isambiguous.* sem_ch8.adb (Find_Direct_Name): Check for implicit dereference.2011-08-05 Thomas Quinot <quinot@adacore.com>* scos.ads: Update documentation of SCO table. Pragma statements can nowbe marked as disabled (using 'p' instead of 'P' as the statement kind).* par_sco.ads, par_sco.adb: Implement the above change.(Process_Decisions_Defer): Generate a P decision for the first parameterof a dyadic pragma Debug.* sem_prag.adb (Analyze_Pragma, case Debug): Mark pragma as enabled ifnecessary.* put_scos.adb: Code simplification based on above change.2011-08-05 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, gnatcmd.adb, switch-c.adb, exp_attr.adb, make.adb,bindgen.adb, einfo.adb, sem_ch12.adb, sem_attr.adb, a-fihema.adb,a-fihema.ads, sem_elab.adb, sem_elab.ads, aspects.adb, opt.ads,prj-conf.adb, sem_ch13.adb, s-ficobl.ads: Minor reformatting2011-08-05 Bob Duff <duff@adacore.com>* a-stunau.ads, g-spipat.adb: Update comments.2011-08-05 Bob Duff <duff@adacore.com>* a-fihema.ads: Minor comment fix.* a-fihema.adb (Allocate, Deallocate): Assert that the alignment iscorrect.(Attach, Detach): Remove some unnecessary code.(Finalize): Remove Node_Ptr_To_Address, replace with a constant.2011-08-05 Bob Duff <duff@adacore.com>* a-fihema.ads, a-fihema.adb (Finalization_Collection): Avoid heapallocation for Objects component. This simplifies the code somewhat. Itis also a little more efficient in the not-so-unusual case where thereare no controlled objects allocated.Make Finalization_Started flag atomic.(Finalize): Avoid unnecessary detachment of items from the list.(pcol): Minor cleanup.2011-08-05 Ed Schonberg <schonberg@adacore.com>* sem_ch12.adb (Analyze_Formal_Package_Declaration): reject a formalpackage whose name is the same as that of the generic unit, or itsultimate prefix.2011-08-05 Bob Duff <duff@adacore.com>* a-fihema.adb, a-fihema.ads: Minor comment improvements.* sem_ch3.adb, exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb:Minor comment fixes.2011-08-05 Arnaud Charlet <charlet@adacore.com>* make.adb (Linking_Phase): No longer need to set source search pathbefore calling gnatlink in CodePeer mode.* gnatlink.adb (Gnatlink): No longer pass -gnat83/95/05/12 switch togcc in CodePeer mode, since the binder generated file no longer has a'with Main'.* switch.ads, switch.adb (Is_Language_Switch): Removed.* switch-c.adb: Update comment.2011-08-05 Thomas Quinot <quinot@adacore.com>* exp_strm.adb, bindgen.adb, s-ficobl.ads: Minor reformatting.2011-08-05 Nicolas Roche <roche@adacore.com>* gnat_ugn.texi: Fix minor syntax error issue.2011-08-05 Vincent Celier <celier@adacore.com>* gnatcmd.adb (Get_Closure): Do not crash when it is not possible todelete or close the file when the call to gnatmake returns a nonsuccessful return code.2011-08-05 Ed Schonberg <schonberg@adacore.com>* exp_ch4.adb (Expand_N_Type_Conversion): When expanding a predicatecheck, indicate that the copy of the original node does not come fromsource, to prevent an infinite recursion of the expansion.2011-08-05 Johannes Kanig <kanig@adacore.com>* debug.adb: document switch -gnatd.G for gnat2why, which deactivatesVC generation for subprogram bodies.2011-08-05 Yannick Moy <moy@adacore.com>* einfo.ads: Typo.* sem_ch3.adb (Signed_Integer_Type_Declaration): in ALFA mode, definethe base type with the smallest allowed base type.2011-08-05 Sergey Rybin <rybin@adacore.com>* tree_gen.adb, tree_in.adb, aspects.adb: Fix tree read-write foraspects.2011-08-05 Ed Schonberg <schonberg@adacore.com>* sem_ch12.ads: minor comment updates.2011-08-05 Ed Schonberg <schonberg@adacore.com>* sem_ch12.adb (Analyze_Formal_Package_Declaration): in aninstantiation and a formal package the compiler generates a packagerenaming declaration so that the generic name within the declarationis interpreted as a renaming of the instance. At the end of a formalpackage declaration, this renaming must become invisible.2011-08-05 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch7.adb (Is_Init_Call): Reimplemented to avoid charactercomparison and rely on concrete entities instead.2011-08-05 Ed Schonberg <schonberg@adacore.com>* einfo.ads, einfo.adb (Has_Implicit_Dereference): new flag on typesand discriminants, to indicate that the type has an access discriminantthat supports implicit dereference.* snames.ads-tmpl: Add names of aspects and attributes related toAda2012 iterators: constant_indexing, default_iterator,iterator_element, implicit_dereference, variable_indexing.* aspects.ads, aspects.adb: entries for iterator-related aspects.* sem_ch13.adb (Analyze_aspect_specifications): dummy entries foriterator-related aspects.* sem_attr.adb, exp_attr.adb Dummy entries for iterator-related aspects.2011-08-05 Sergey Rybin <rybin@adacore.com>* gnat_ugn.texi, vms_data.ads: Extend the subsection about couplingmetrics in gnatmetric to cover new kinds of coupling mentrics.2011-08-05 Steve Baird <baird@adacore.com>* bindgen.adb (Gen_CodePeer_Wrapper): Call Ada_Main_Program insteadof calling the user-defined main subprogram.(Gen_Main): Declare Ada_Main_Program and (if CodePeer_Modeis set) Call_Main_Subprogram ahead of, as opposed toinside of, Main.(Gen_Output_File_Ada): Remove CodePeer_Mode-conditionalgeneration of a "with" of the user-defined main subprogram.Remove CodePeer_Mode-conditional call to Gen_CodePeer_Wrapper(which is now called from Gen_Main instead).2011-08-05 Emmanuel Briot <briot@adacore.com>* projects.texi: Added reference to the Makefile package.2011-08-05 Thomas Quinot <quinot@adacore.com>* exp_ch7.adb: Minor comment rewording.2011-08-05 Ed Falis <falis@adacore.com>* env.c: Fix comment.2011-08-05 Hristian Kirtchev <kirtchev@adacore.com>* sem_elab.adb (Is_Finalization_Procedure): Reimplemented to avoidcharacter comparison and rely on concrete entities instead.2011-08-05 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb: (Check_Private_Overriding): better error message,suggested by AI95-0068.2011-08-05 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch7.adb (Find_Last_Init): Use Next_Suitable_Statement to retrievethe two potential initialization calls. This accounts for anyaccess-before-elaboration checks which may precede the initializationcalls.(Next_Suitable_Statement): New routine. Returns the next real statementafter the input node while skipping generated checks.* sem_elab.adb (Check_A_Call): New formal parameter In_Init_Proc alongwith comment on usage.Do not generate Elaborate_All when the trigger is a finalization callcoming from a type init proc.(Check_Elab_Call): Propagate the initialization procedure context tosubsequent calls to Check_A_Call.(Check_Internal_Call_Continue): Propagate the initialization procedurecontext to subsequent calls to Check_Elab_Call.(Is_Finalization_Procedure): New routine. Returns True if the inputentity denotes a [Deep_]Finalize routine.* sem_elab.ads (Check_Elab_Call): New formal parameter In_Init_Procalong with comment on usage.2011-08-05 Vadim Godunko <godunko@adacore.com>* s-atocou.ads: Add list of supported platforms.2011-08-05 Yannick Moy <moy@adacore.com>* sem_prag.adb, restrict.adb: Correct style for or'ing Boolean variables* opt.ads (Disable_ALI_File): new Boolean flag* lib-writ.adb (Write_ALI): when Disable_ALI_File is set, do nothing2011-08-05 Ed Falis <falis@adacore.com>* env.c (__gnat_environ): Fix includes for RTPs and VTHREADS so thatenviron is properly defined.2011-08-05 Vincent Celier <celier@adacore.com>* make.adb (Compilation_Phase): Exit immediately when all objects havebeen found up to date, to avoid multiple exit messages.* prj-nmsc.adb (Add_Source): Allow duplicate source file names in thesame project for languages with no compiler.* gnat_ugn.texi: Document compiler switch -gnateI and gnatmake switch-eI.2011-08-05 Robert Dewar <dewar@adacore.com>* exp_ch7.ads, sem_type.adb, make.adb, sem_prag.adb, sem_util.adb,sem_util.ads, sem_attr.adb, restrict.ads, sem_ch6.adb, prj-conf.adb,prj-conf.ads, s-atocou.ads, s-atocou.adb, s-atocou-x86.adb,s-atocou-builtin.adb: Minor reformatting.2011-08-05 Yannick Moy <moy@adacore.com>* exp_ch7.adb (Establish_Transient_Scope): in formal verification mode,if the node to wrap is a pragma check, this node and enclosedexpression are not expanded, so do not apply any transformations here.* exp_prag.adb (Expand_Pragma_Check): document the need to avoidintroducing transient scopes.2011-08-05 Jose Ruiz <ruiz@adacore.com>* adaint.c (__gnat_set_writable, __gnat_set_readable,__gnat_set_executable, __gnat_set_non_writable, __gnat_set_non_readable,__gnat_copy_attribs): On VxWorks 6.x and later, the required chmodroutine is available, so we use the default implementation of thesefunctions.* s-os_lib.ads (Copy_File, Copy_Time_Stamps): Document that there issupport for copying attributes on VxWorks 6.2011-08-05 Yannick Moy <moy@adacore.com>* debug.adb: Remove use of -gnatd.D.* gnat1drv.adb (Adjust_Global_Switches): adjust switches for ALFA mode* opt.ads: Simplify variables for ALFA mode, to keep one only* restrict.adb, sem_prag.adb: Adapt treatment done for CodePeer modeto ALFA mode.2011-08-05 Vincent Celier <celier@adacore.com>* prj-conf.adb (Do_Autoconf): Look also for --RTS inBuilder'Default_Switches.2011-08-05 Vincent Celier <celier@adacore.com>* makeusg.adb: Add lines for --create-map-file switches.2011-08-05 Ed Schonberg <schonberg@adacore.com>* freeze.adb (Freeze_Entity): For a subprogram, if a type in theprofile is incomplete and the full view is available, replace it withthe full view.* sem_ch6.adb (Possible_Freeze): if a type in the profile isincomplete, freezing the subprogram is delayed until the full view isfrozen.* sem_type.adb (Disambiguate): an ambiguity between a user-definedfixed-point multiplication operator and the predefined operator isresolved in favor of the user-defined one.2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>* init.c [__alpha__ && __osf__] (__gnat_error_handler): UseCONST_CAST.2011-08-04 Ed Schonberg <schonberg@adacore.com>* sem_util.ads, sem_unit.adb (Type_Without_Stream_Operation): determinewhether a type lacks user-defined Read or Write operations, or has acomponent that lacks them.* sem_attr.adb (Check_Stream_Attribute): if restrictionNo_Default_Stream_Attributes is active, verify that all subcomponenttypes of the target have user-defined stream operations, and reporterror otherwise.* exp_ch3.adb (Stream_Operqtion_OK): use Type_Without_Stream_Operation.* exp_strm.adb: Build_Elementary_Input_Call,Build_Elementary_Write_Call): remove checks for restrictionNo_Default_Stream_Attributes, now checked in semantics.2011-08-04 Vincent Celier <celier@adacore.com>* prj-conf.ads, prj-conf.adb (Do_Autoconf): If there is no --RTSswitches on the command line, look for all valid --RTS switches in theBuilder switches and for each language use the first runtime name foundto invoke gprconfig.(Get_Or_Create_Configuration_File): Warn if --RTS is specified on thecommand line and there is no auto-configuration.(Runtime_Name_Set_For): New function.2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch7.adb (Build_Object_Declarations): Do not generate theelaborate initialization expression for variable Abort when processinga package body or a declaration.(Create_Finalizer): Propagate the package context when creating theexception-related variables.* exp_ch7.ads (Build_Object_Declarations): New formal parameterFor_Package along with usage comment.2011-08-04 Arnaud Charlet <charlet@adacore.com>* gcc-interface/Makefile.in: Clean up targets.Enable new package for atomic counters and copy-on-write implementationof unbounded strings on x86 platforms.* gcc-interface/Make-lang.in: Update dependencies.2011-08-04 Robert Dewar <dewar@adacore.com>* exp_ch7.adb: Minor reformatting.2011-08-04 Robert Dewar <dewar@adacore.com>* exp_strm.adb: Minor reformatting.2011-08-04 Vadim Godunko <godunko@adacore.com>* s-atocou.adb: Replace by dummy version and use on targets where atomicoperations are not supported.* s-atocou-builtin.adb: Renamed from s-atocou.adb.* s-atocou-x86.adb: New file.* Makefile.rtl: Add s-atocou.o file2011-08-04 Arnaud Charlet <charlet@adacore.com>* make.adb (Compile): Move setting of CodePeer_Mode to ...(Compilation_Phase): ... here.(Scan_Make_Arg): Now bind and link by default in CodePeer mode.2011-08-04 Thomas Quinot <quinot@adacore.com>* Make-generated.in: Fix minor typo in comment.2011-08-04 Thomas Quinot <quinot@adacore.com>* gnatls.adb: Use Prj.Env.Initialize_Default_Project_Path to retrievethe project path.2011-08-04 Robert Dewar <dewar@adacore.com>* a-coinho.adb: Minor reformatting.2011-08-04 Robert Dewar <dewar@adacore.com>* a-coinho.ads: Minor reformatting.2011-08-04 Vadim Godunko <godunko@adacore.com>* s-atocou.ads, s-atocou.adb: New files.* a-strunb-shared.ads, a-strunb-shared.adb, a-stwiun-shared.ads,a-stwiun-shared.adb, a-stzunb-shared.ads, a-stzunb-shared.adb: Removedirect use of GCC's atomic builtins and replace them by use of newatomic counter package.2011-08-04 Ed Schonberg <schonberg@adacore.com>* exp_strm.adb: better error message for No_Default_Stream_Attributes.2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>* a-tags.adb (Unregister_Tag): Replace the complex address arithmeticwith a call to Get_External_Tag.* exp_ch7.adb (Build_Cleanup_Statements): Update the comment onsubprogram usage. Remove the guard against package declarations andbodies since Build_Cleanup_Statements is no longer invoked in thatcontext.(Build_Components): Initialize Tagged_Type_Stmts when the contextcontains at least one library-level tagged type.(Build_Finalizer): New local variables Has_Tagged_Types andTagged_Type_Stmts along with associated comments on usage. Update thelogic to include tagged type processing.(Create_Finalizer): Insert all library-level tagged type unregistrationcode before the jump block circuitry.(Expand_N_Package_Body): Remove the call to Build_Cleanup_Statements.(Expand_N_Package_Declaration): Remove the call toBuild_Cleanup_Statements.(Process_Tagged_Type_Declaration): New routine. Generate a call tounregister the external tag of a tagged type.(Processing_Actions): Reimplemented to handle tagged types.(Process_Declarations): Detect the declaration of a library-leveltagged type and carry out the appropriate actions.(Unregister_Tagged_Types): Removed. The machinery has been directlymerged with Build_Finalizer.2011-08-04 Robert Dewar <dewar@adacore.com>* bindgen.ads, gnatlink.adb, sem_ch4.adb, gnatbind.adb, put_alfa.adb,gnatls.adb, exp_ch3.adb: Minor reformatting.2011-08-04 Marc Sango <sango@adacore.com>* sem_attr.adb (Analyze_Attribute): Replace the message"invisible attribute of}" of the spark restriction violation inattribute reference by the simple message "invisible attribute of type".Indeed, the node value Error_Msg_Node_1 used is in conflit with thetwo insertion characters: '&' and '}'.2011-08-04 Vadim Godunko <godunko@adacore.com>* impunit.adb (Non_Imp_File_Names_12): Add "a-coinho".* a-coinho.ads, a-coinho.adb: New file.* Makefile.rtl: Add Ada.Containers.Indefinite_Holders.2011-08-04 Nicolas Roche <roche@adacore.com>* alfa_test.adb: Not all ali files are containing alfa information evenif compiled with -gnatd.F. So suppress warning about missing ALFAinformation.2011-08-04 Yannick Moy <moy@adacore.com>* lib-xref-alfa.adb (Add_ALFA_Scope): use non-empty unique name forscope.* put_alfa.adb: Check that scope name is not empty.2011-08-04 Ed Schonberg <schonberg@adacore.com>* exp_ch3.adb (Stream_Operation_Ok): new predicateNeeds_Elementary_Stream_Operation, to determine whether user-definedRead and Write attributes are available for the elementary componentsof the given type. If only the predefined attributes are available,then when restriction No_Default_Stream_Attributes is active thepredefined stream attributes for the composite type cannot be created.2011-08-04 Robert Dewar <dewar@adacore.com>* bindgen.adb: Fix obsolete comments and names from Ada/C days.Put routines in alpha order2011-08-04 Jose Ruiz <ruiz@adacore.com>* gcc-interface/Makefile.in: Remove xenomai specific versions of system.* gcc-interface/Make-lang.in: Update dependencies.2011-08-04 Arnaud Charlet <charlet@adacore.com>* gcc-interface/lang.opt: Add AdaWhy language, simimlar to Ada.* gcc-interface/lang-specs.h: Add handling of AdaWhy specs (callsgnat1why).2011-08-04 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, make.adb, a-cohata.ads, sem_prag.adb, makeutl.adb,lib-xref-alfa.adb: Minor reformatting.2011-08-04 Marc Sango <sango@adacore.com>* sem_ch12.adb (Analyze_Generic_Package_Declaration,Analyze_Generic_Subprogram_Declaration, Analyze_Package_Instantiation,Analyze_Subprogram_Instantiation): Check absence of generic in SPARKmode.2011-08-04 Tristan Gingold <gingold@adacore.com>* bindgen.adb (Gen_Adainit_C): Remove.(Gen_Adafinal_C): Ditto.(Gen_Elab_Externals_C): Ditto.(Gen_Elab_Calls_C): Ditto.(Gen_Elab_Order_C): Ditto.(Gen_Elab_Defs_C): Ditto.(Gen_Finalize_Library_C): Ditto.(Gen_Finalize_Library_Defs_C): Ditto.(Gen_Main_C): Ditto.(Gen_Output_File_C): Ditto.(Gen_Restrictions_C): Ditto.(Gen_Versions_C): Ditto.(Write_Info_Ada_C): Ditto.(Gen_Object_Files_Options): Call WBI instead of Write_Info_Ada_C(Gen_Output_File): Do not force Ada_Bind_File anymore.Always call Gen_Output_File_Ada.* gnatlink.adb (Begin_Info): Now a constant.(End_Info): Ditto.(Ada_Bind_File): Remove(Process_Args): Do not handle -A/-C. Remove not Ada_Bind_File cases.* switch-b.adb (Scan_Binder_Switches): Do not handle -C.* gnatbind.adb (Gnatbind): Remove not Ada_Bind_File cases.* opt.ads (Ada_Bind_File): Remove.2011-08-04 Thomas Quinot <quinot@adacore.com>* projects.texi: Document target-specific directory in default projectpath for gnatmake.2011-08-04 Thomas Quinot <quinot@adacore.com>* gnatls.adb, prj-env.adb: Add $prefix/share/gpr to default projectpath in all cases .2011-08-04 Yannick Moy <moy@adacore.com>* sem_ch3.adb, sem_ch5.adb, sem_util.adb, sem_ch4.adb, sem_ch8.adb,opt.ads, lib-xref.ads: Code clean up.2011-08-04 Yannick Moy <moy@adacore.com>* gnat_rm.texi: Update description of Test_Case* gnat_ugn.texi: Typo.2011-08-04 Ed Falis <falis@adacore.com>* adaint.c (__gnat_get_number_of_cpus): fix typo in last checkin.2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch4.adb (Suitable_Element): Skip field _parent on .NET/JVM whenit is of type Root_Controlled. This action eliminates fields Prev andNext from type equality.2011-08-04 Yannick Moy <moy@adacore.com>* lib-xref-alfa.adb: Correct typo.2011-08-04 Matthew Heaney <heaney@adacore.com>* a-cohata.ads (Hash_Table_Type): default-initialize the Nodescomponent.2011-08-04 Yannick Moy <moy@adacore.com>* sem_prag.adb (Check_Arg_Is_String_Literal): remove useless procedure(Analyze_Pragma): allow static string expression for name of Test_Case,instead of simply string literals.* sem_util.adb (Get_Name_From_Test_Case_Pragma): adapt to static stringexpressions.2011-08-04 Vincent Celier <celier@adacore.com>* makeutl.adb (Complete_Mains.Find_File_Add_Extension): Use canonicalcase suffixes to find truncated main sources.2011-08-04 Tristan Gingold <gingold@adacore.com>* impunit.adb (Non_Imp_File_Names_95): Add g-tastus.s-stusta.adb (Compute_All_Task): Use Put_Line instead of Put.(Compute_Current_Task): Ditto.2011-08-04 Tristan Gingold <gingold@adacore.com>* gnat_ugn.texi: Mention GNAT.Task_Stack_Usage.2011-08-04 Yannick Moy <moy@adacore.com>* lib-xref-alfa.adb (Is_Global_Constant): new function that detectslibrary-level constant.(Add_ALFA_Xrefs): ignore global constants in ALFA xref.* sem_res.adb (Resolve_Actuals): do not add cross-reference to Formalused as selector of parameter association, in ALFA mode.2011-08-04 Robert Dewar <dewar@adacore.com>* exp_ch5.adb, exp_ch7.adb, exp_util.adb, bindgen.adb, sem_prag.adb,s-tassta.adb, exp_ch4.adb, exp_disp.adb, s-stausa.adb: Minorreformatting.2011-08-04 Arnaud Charlet <charlet@adacore.com>* make.adb (Linking_Phase): Set source search path before callinggnatlink in CodePeer mode.2011-08-04 Javier Miranda <miranda@adacore.com>* exp_ch7.adb (Expand_N_Package_Body, Expand_N_Package_Declaration):Remove code which takes care of building TSDs.* rtsfind.ads (RE_Check_Interface_Conversion): New entity.* exp_ch4.adb (Apply_Accessibility_Check): Add support for generatingthe accessibility check in VM targets.* exp_disp.adb (Make_VM_TSD): Spec moved to exp_disp.ads(Building_Static_DT): Now returns false for VM targets.(Build_VM_TSDs): Removed.(Expand_Interface_Conversion): Generate missing runtime check forconversions to interface types whose target type is unknown at compiletime.(Make_VM_TSD): Add missing code to disable the generation of calls toCheck_TSD if the tagged type is not defined at library level, or nothas a representation clause specifying its external tag, or -gnatdQ isactive.* exp_disp.ads (Build_VM_TSDs): Removed.(Make_VM_TSDs): Spec relocated from exp_disp.adb* sem_disp.adb (Check_Dispatching_Operation): No code required toregister primitives in the dispatch tables in VM targets.* exp_ch3.adb (Expand_N_Object_Declaration): Remove wrong expansion ofinitialization of class-wide interface objects in VM targets.(Expand_Freeze_Record_Type): For VM targets call Make_VM_TSD (insteadof Make_DT).2011-08-04 Jerome Lambourg <lambourg@adacore.com>* gnatlink.adb (Gnatlink): Correct missleading error message displayedwhen dotnet-ld cannot be found.2011-08-04 Arnaud Charlet <charlet@adacore.com>* bindgen.adb: Simplify significantly generation of binder body file inCodePeer mode.* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Prevent assert failurewhen compiling binder generated file in CodePeer mode (xxx'Elab_Specnot expanded).2011-08-04 Yannick Moy <moy@adacore.com>* sem_prag.adb, sem.ads: Code cleanup.2011-08-04 Tristan Gingold <gingold@adacore.com>* s-tassta.adb (Task_Wrapper): Rewrite the dynamic stack usage part.* s-stausa.adb, s-stausa.ads: Major rewrite. Now provides accurateresults if possible.* s-stusta.adb (Print): Adjust after changes in s-stausa.* gnat_ugn.texi: Update dynamic stack usage section.2011-08-04 Steve Baird <baird@adacore.com>* bindgen.adb (Gen_CodePeer_Wrapper): new procedure.Generate (if CodePeer_Mode is set) a "wrapper" subprogram whichcontains only a call to the user-defined main subprogram.(Gen_Main_Ada) - If CodePeer_Mode is set, thencall the "wrapper" subprogram instead of directlycalling the user-defined main subprogram.2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch5.adb (Expand_N_Case_Statement): Check the statements of allalternatives of a case statement for controlled objects. Rename localvariable A to Dead_Alt.(Expand_N_If_Statement): Check the then and else statements of an ifstatement for controlled objects. Check the then statements of allelsif parts of an if statement for controlled objects.(Expand_N_Loop_Statement): Check the statements of a loop for controlledobjects.* exp_ch7.adb (Process_Transient_Objects): Rewrite the condition whichdetects a loop associated with the expansion of an array object.Augment the processing of the loop statements to account for a possiblewrap done by Process_Statements_For_Controlled_Objects.* exp_ch9.adb (Expand_N_Asynchronous_Select): Check the triggeringstatements and abortable part of an asynchronous select for controlledobjects.(Expand_N_Conditional_Entry_Call): Check the else statements of aconditional entry call for controlled objects.(Expand_N_Selective_Accept): Check the alternatives of a selectiveaccept for controlled objects.(Expand_N_Timed_Entry_Call): Check the entry call and delayalternatives of a timed entry call for controlled objects.* exp_ch11.adb (Expand_Exception_Handlers): Check the statements of anexception handler for controlled objects.* exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)):Add formal parameter Nested_Constructs along with its associatedcomment.(Requires_Cleanup_Actions (Node_Id)): Update all calls toRequires_Cleanup_Actions.(Process_Statements_For_Controlled_Objects): New routine.* exp_util.ads (Process_Statements_For_Controlled_Objects): Newroutine. Inspect a node which contains a non-handled sequence ofstatements for controlled objects. If such an object is found, thestatements are wrapped in a block.2011-08-04 Bob Duff <duff@adacore.com>* sem_type.adb (Covers): If T2 is a subtype of a class-wide type, weneed to compare with Class_Wide_Type (T2), in order to get at theoriginal class-wide type node.* sem_type.ads (Covers): Improve the comment.* einfo.ads (Class_Wide_Type): Improve the comment.* exp_intr.adb (Expand_Unc_Deallocation): Remove unnecessary setting ofthe type of the Deref.2011-08-04 Yannick Moy <moy@adacore.com>* gnat_rm.texi: Document that Test_Case pragma can only appear onseparate declarations.* sem_prag.adb (procedure Check_Identifier_Is_One_Of): new procedure tocheck identifier of pragma argument.(Chain_TC): check that no other test case associated to the same entityshare the same name.(Check_Test_Case): disallow test case inside subprogram body(Analyze_Pragma): correct call to check identifier and not argument* sem_util.adb, sem_util.ads (Get_Name_From_Test_Case_Pragma): newfunction gets name from test case pragma.2011-08-04 Yannick Moy <moy@adacore.com>* gnat_rm.texi: Document new pragma and aspect.* aspects.adb, aspects.ads (Aspect_Id): new value Aspect_Test_Case(No_Duplicates_Allowed): new constant array defining whether duplicatesaspects of each kind can appear on the same declaration.* einfo.adb, einfo.ads (Spec_PPC_List): replace field with Contractfield, which points to a node holding the previous Spec_PPC_List.* exp_ch9.adb, sem_ch6.adb, sem_prag.adb: Reach to Spec_PPC_Listthrough the indirection with Contract.* exp_util.adb (Insert_Actions): raise Program_Error on N_Contract node* par-prag.adb (Prag): do nothing on Test_Case pragma* sem.adb (Analyze): abort on N_Contract, on which Analyze should notbe called directly.* sem_attr.adb (Analyze_Attribute): allow attribute 'Result incomponent Ensures of Test_Case.* sem_ch12.adb, sem_ch6.adb, sem_ch9.adb(Analyze_Generic_Subprogram_Declaration,Analyze_Subprogram_Instantiation,Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body_Helper,Analyze_Subprogram_Specification, Analyze_Entry_Declaration):insert contract in subprogram node at point of definition* sem_ch13.adb(Aspect_Loop): do not raise error on duplicate Test_Case aspect(Analyze_Aspect_Specifications): analyze Test_Case aspect and createcorresponding pragma(Check_Aspect_At_Freeze_Point): raise Program_Error on Test_Case aspect* sem_ch3.adb (Analyze_Declarations): insert analysis of test-cases,similar to the analysis of pre/post(Derive_Subprogram): insert contract in subprogram node at point ofderivation.* sem_prag.adb, sem_prag.ads(Check_Arg_Is_String_Literal, Check_Identifier):new checking procedures to be called in treatment of pragmas(Check_Test_Case): new procedure to check that a Test_Case aspect orpragma is well-formed. This does not check currently that 'Result isused only in the Ensures component of a Test_Case.(Analyze_Pragma): add case for Test_Case(Analyze_TC_In_Decl_Part): pre-analyze the Requires and Ensurescomponents of a Test_Case.(Preanalyze_TC_Args): new procedure to preanalyze the booleanexpressions in the 3rd (and 4th if present) arguments of a Test_Casepragma, treated as spec expressions.(Sig_Flags): add value -1 for Test_Case.* sem_util.adb, sem_util.ads (Get_Ensures_From_Test_Case_Pragma,Get_Requires_From_Test_Case_Pragma): getters for both expressioncomponents of a Test_Case.* sinfo.adb, sinfo.ads (N_Contract): new kind of node used asindirection between an entry or [generic] subprogram entity and itspre/post + test-cases.(Spec_PPC_List, Spec_TC_List, Set_Spec_PPC_List, Set_Spec_TC_List):get/set for fields of an N_Contract node.* snames.ads-tmpl (Name_Test_Case, Name_Ensures, Name_Mode,Name_Normal, Name_Requires, Name_Robustness, Pragma_Test_Case): newnames and pragma for Test_Case.* sprint.adb (Sprint_Node): raise Program_Error on N_Contract node2011-08-04 Vincent Celier <celier@adacore.com>* gnat_ugn.texi: Improve documentation of gnatmake switch--source-info-file=.2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch7.adb (Make_Final_Call): Add local variable Atyp (assertiontype). Initialize Atyp to the appropriate type which is later checkedfor completion. Rewrite the assertion associated with private typecompletion.2011-08-04 Ed Falis <falis@adacore.com>* adaint.c: Add call to vxCpuConfiguredGet for VxWorks SMP toinitialize the number of CPUs.2011-08-04 Ed Schonberg <schonberg@adacore.com>* sem_type.adb (Disambiguate): New subsidiary routineIn_Same_Declaration_List, to implement AI05-0020: a user-definedequality on an anonymous access type whose designated type is privatedoes not lead to an ambiguity with the universal access equalityoperator in the body or child units of the defining package. The sameis true for a multiplication operator on a private type completed witha fixed-point-type.2011-08-04 Javier Miranda <miranda@adacore.com>* opt.ads (Init_Or_Norm_Scalars_Config): Removed.(Normalize_Scalars_Config): Removed.* opt.adb(Register_Opt_Config_Switches): Remove registering config values ofInit_Or_Norm_Scalars_Config and Normalize_Scalars_Config.(Restore_Opt_Config_Switches): Remove code which restores the values ofInit_Or_Norm_Scalars and Normalize_Scalars. Recalculate value ofInit_Or_Norm_Scalars.(Save_Opt_Config_Switches): Remove code which saves values ofInit_Or_Norm_Scalars and Normalize_Scalars.(Set_Opt_Config_Switches): Remove code which restores config values ofInit_Or_Norm_Scalars and Normalize_Scalars. Recalculate value ofInit_Or_Norm_Scalars.2011-08-04 Yannick Moy <moy@adacore.com>* frontend.adb (Frontend): remove previous patch to avoid fullqualification in ALFA mode.* lib-xref-alfa.adb (Add_ALFA_Xrefs): use unique name for variables.* sem_util.adb, sem_util.ads (Unique_Name): new function to define aunique name for an entity, which could be used to identify the entityacross compilation units.2011-08-04 Thomas Quinot <quinot@adacore.com>* prj-env.adb(Initialize_Default_Project_Path): Add target specific directory($prefix/$target/lib/gnat) in front of project path in all cases(making gnatmake's behaviour consistent with gprbuild).* gnatcmd.adb, make.adb, prj-makr.adb, clean.adb:Pass target name from Sdefault to project subsystem.* gnatls.adb: Show new target specific default project directory.2011-08-04 Johannes Kanig <kanig@adacore.com>* cstand.adb: Add Information to Identifier in Standard(Identifer_For): Set Entity to the corresponding entity2011-08-04 Sergey Rybin <rybin@adacore.com>* gnat_ugn.texi: Update doc on gnatcheck.2011-08-04 Yannick Moy <moy@adacore.com>* lib-xref-alfa.adb (Add_ALFA_Xrefs): correct definition of ranges ofxrefs in a scope.2011-08-04 Yannick Moy <moy@adacore.com>* exp_prag.adb (Expand_Pragma_Check): in ALFA mode, return withoutperforming expansion.* sem_ch6.adb (Analyze_Subprogram_Body_Helper,Analyze_Generic_Subprogram_Body): protect call to Process_PCCs so thatit is not called in ALFA mode.2011-08-04 Emmanuel Briot <briot@adacore.com>* make.adb, osint.adb, osint.ads (Reset_Command_Line_Files): not usedafter all, so removed.2011-08-04 Sergey Rybin <rybin@adacore.com>* vms_data.ads: Add missing VMS qualifiers.2011-08-04 Emmanuel Briot <briot@adacore.com>* make.adb, makeutl.adb, osint.adb, osint.ads (Check_Mains): rebuildthe list of files on the command line after processing it throughComplete_Mains.2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch7.adb (Build_Raise_Statement): Remove the specializedprocessing for .NET/JVM. These targets can now benefit fromRaise_From_Controlled_Operation and they share the same processing withstandard targets.(Establish_Transient_Scope): Remove the restriction for .NET/JVM.These targets need transient scopes in order to properly finalize shortlived controlled objects.(Make_Handler_For_Ctrl_Operation): Remove the specialized processing forNET/JVM. These targets can now benefit fromRaise_From_Controlled_Operation and they share the same processing withstandard targets.2011-08-04 Geert Bosch <bosch@adacore.com>* tracebak.c (STOP_FRAME): Stop at any next pointer outside the stack2011-08-04 Ed Schonberg <schonberg@adacore.com>* exp_aggr.adb (Has_Visible_Private_Ancestor): subsidiary routine toExpand_Record_Aggregate, to determine whether aggregate must beexpanded into assignments. This is the case if the ancestor part isprivate, regarless of the setting of the flag Has_Private_Ancestor.2011-08-04 Ed Falis <falis@adacore.com>* vxaddr2line.adb: Add support for e500v2 and for Linux hosts2011-08-04 Bob Duff <duff@adacore.com>* sinfo.ads: Fix comment.2011-08-04 Steve Baird <baird@adacore.com>* bindgen.adb (Get_Ada_Main_Name): If CodePeer_Mode is set, thenchoose a package name in much the same way as isdone for JGNAT when VM_Target /= No_VM, except thata slightly more distinctive prefix string is used.2011-08-04 Emmanuel Briot <briot@adacore.com>* makeutl.adb (Complete_Mains): no longer accept unit names on thegnatmake command line.This behavior was never documented (and was supported only because ofan early bug in the code). This case might lead to ambiguous cases(between unit names and truncated base names without suffixes).2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>* a-tags.ads, a-tags.adb (Unregister_Tag): New routine.Remove the external tag of a tagged type from the internal hash table.* exp_ch7.adb (Build_Cleanup_Statements): Update the comment on theexpanded usage of the routine. Strenghten the check for Is_Master. Addprocessing for tagged types.(Build_Finalizer): Create all the necessary lists used in finalizercreation when the processed context is a package that may containtagged types.(Expand_Cleanup_Actions): Rename the call to Has_Controlled_Objects toRequires_Cleanup_Actions.(Expand_N_Package_Body): Package bodies may need clean up codedepending on whether they contain tagged types.(Expand_N_Package_Declaration): Package declarations may need clean upcode depending on whether they contain tagged types.(Unregister_Tagged_Types): New routine. Search through a list ofdeclarations or statements, looking for non-abstract Ada tagged types.For each such type, generate code to unregister the external tag.* exp_util.adb (Has_Controlled_Objects (Node_Id)): Renamed toRequires_Cleanup_Actions.(Requires_Cleanup_Actions (List_Id, Boolean)): New routine. Searchthrough a list of declarations or statements looking for non-abstractAda tagged types or controlled objects.* exp_util.ads (Has_Controlled_Objects (Node_Id)): Renamed toRequires_Cleanup_Actions.(Has_Controlled_Objects (List_Id, Boolean)): Removed.* rtsfind.ads: Add entry RE_Unregister_Tag to tables RE_Id andRE_Unit_Table.2011-08-04 Vincent Celier <celier@adacore.com>* prj-env.adb (For_All_Source_Dirs.For_Project): Check if project Prjhas Ada sources, not project Project, because if the root projectProject has no sources of its own, all projects will be deemed withoutsources.2011-08-04 Gary Dismukes <dismukes@adacore.com>* bindgen.adb (Gen_Adainit_Ada): Move the generation of the declarationof the No_Param_Proc acc-to-subp type used for initialization of__gnat_finalize_library_objects so that it's declared at library levelrather than nested inside of the adainit routine.2011-08-04 Javier Miranda <miranda@adacore.com>* exp_disp.adb (Make_DT): Generate code to check the external tag ONLYif the tagged type has a representation clause which specifies itsexternal tag.2011-08-04 Ed Schonberg <schonberg@adacore.com>* einfo.ads, einfo.adb (Has_Private_Ancestor): now a flag on types.Remove previous procedure with that name.* sem_ch3.adb (Build_Derived_Record_Type): set Has_Private_Ancestorwhen appropriate.* sem_aggr.adb (Resolve_Extension_Aggregate): if the ancestor part is asubtype mark, the ancestor cannot have unknown discriminants.(Resolve_Record_Aggregate): if the type has invisible componentsbecause of a private ancestor, the aggregate is illegal.2011-08-04 Vincent Celier <celier@adacore.com>* switch-m.adb (Normalize_Compiler_Switches): Recognize and take intoaccount switches -gnat2005, -gnat12 and -gnat2012.2011-08-04 Bob Duff <duff@adacore.com>* s-tasdeb.ads: Minor comment fix.2011-08-04 Arnaud Charlet <charlet@adacore.com>* gnatlink.adb (Gnatlink): Pass -gnat83/95/05/12 switch to gcc inCodePeer mode.* switch.ads, switch.adb (Is_Language_Switch): New function.2011-08-04 Vincent Celier <celier@adacore.com>* switch-c.adb: Minor comment addition.2011-08-04 Vincent Celier <celier@adacore.com>* vms_conv.adb (Process_Argument): Fail graciously when qualifierending with '=' is followed by a space (missing file name).2011-08-04 Pascal Obry <obry@adacore.com>* g-regist.ads: Fix size of HKEY on x86_64-windows.2011-08-04 Ed Schonberg <schonberg@adacore.com>* sem_ch12.adb (Analyze_Associations): New routineCheck_Overloaded_Formal_Subprogram to reject a formal package whenthere is a named association or a box initialisation for an overloadedformal subprogram of the corresponding generic.2011-08-04 Yannick Moy <moy@adacore.com>* alfa.ads (ALFA_Xref_Record): add component for type of entity* get_alfa.adb, put_alfa.adb: Read and write new component ofcross-reference.* lib-xref-alfa.adb (Collect_ALFA): generate new component.2011-08-04 Pascal Obry <obry@adacore.com>* urealp.adb: Minor reformatting.2011-08-04 Tristan Gingold <gingold@adacore.com>* exp_ch7.adb (build_finalizer.process_declarations.processing_actions):Handle the case when Cleanup_Protected_Object returns Empty.2011-08-04 Yannick Moy <moy@adacore.com>* frontend.adb (Frontend): only qualify names in non-ALFA mode2011-08-04 Ed Schonberg <schonberg@adacore.com>* sem_ch4.adb (Try_Class_Wide_Operation): if the context is a procedurecall, ignore functions.2011-08-04 Geert Bosch <bosch@adacore.com>* urealp.adb (Equivalent_Decimal_Exponent): Avoid the use of floatingpoint.2011-08-04 Emmanuel Briot <briot@adacore.com>* makeutl.adb (Compute_Builder_Switches): no longer accept a unit nameas an index for Builder'Switches. This conforms to the documentation.* make.adb (Insert_Project_Sources): avoid duplicate code2011-08-04 Emmanuel Briot <briot@adacore.com>* makeutl.adb (Complete_Mains): if the user has passed a relative filename on the command line (for instance "../dummy"), never assume it canbe a unit name.2011-08-04 Tristan Gingold <gingold@adacore.com>* bindgen.adb: Remove code the reference or create theBreak_Start/__gnat_break_start procedure.* s-stalib.adb (Break_Start): Removed.2011-08-04 Emmanuel Briot <briot@adacore.com>* make.adb, makeutl.adb, makeutl.ads (Compute_Builder_Switches): nowshared with gprbuild.2011-08-04 Yannick Moy <moy@adacore.com>* par-ch4.adb (P_Primary): preferentially issue an error message abouta missing parenthesis arount a conditional or case expression in Ada2012 mode, if we detect that the alignment is not correct for astatement.2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch7.adb (Process_Declarations): Do not consider the result of atag-to-class-wide conversion as needing finalization actions.* exp_util.adb (Has_Controlled_Objects): Do not consider the result ofa tag-to-class-wide conversion as needing finalization actions.(Is_Finalizable_Transient): The result of a tag-to-class-wideconversion does not need finalization actions.(Is_Tag_To_CW_Conversion): New routine.* exp_util.ads (Is_Tag_To_CW_Conversion): New routine. Determineswhether an object is the result of a tag-to-class-wide conversion.2011-08-04 Yannick Moy <moy@adacore.com>* sem_ch13.adb (Analyze_Aspect_Specifications): correct order in whichthe left-hand-side and right-hand-side of a conjunct are inserted whentranslating a pre- or postcondition* sem_ch6.adb: Correct typo in comment2011-08-04 Ed Schonberg <schonberg@adacore.com>* gnat_rm.texi: Ravenscar does not prohibit dependence onUnchecked_Conversion and Unchecked_Deallocation.2011-08-04 Thomas Quinot <quinot@adacore.com>* make.adb: Minor reformatting.2011-08-04 Emmanuel Briot <briot@adacore.com>* prj.adb, prj.ads, makeutl.adb (Complete_Mains): search for thesources in the project and its imported projects, but not in the wholetree.2011-08-04 Emmanuel Briot <briot@adacore.com>* make.adb: Remove debug trace.2011-08-04 Vincent Celier <celier@adacore.com>* makeutl.adb (Do_Complete): Get the absolute path name of a relativepath in canonical form, to be able to compare path names on platformssuch as Windows or Darwin.2011-08-04 Thomas Quinot <quinot@adacore.com>* par_sco.adb (Traverse_Declarations_Or_Statements.Set_Statement_Entry):For a pragma (statement with C1 = 'P'), record the sloc of the pragma.* scos.ads: Update documentation accordingly.* put_scos.adb (Output_SCO_Line): Omit statement SCOs for disabledpragmas.2011-08-04 Ed Schonberg <schonberg@adacore.com>* sem_attr.adb (Bad_Attribute_For_Predicate): flag illegal use ofattribute only if prefix type is scalar.2011-08-04 Emmanuel Briot <briot@adacore.com>* make.adb, makeutl.adb, prj-env.adb (Check_Mains): put back supportin gnatmake for specifying mains on the command line that do not belongto the main project. These mains must currently all belong to the sameproject, though.(Ultimate_Extension_Of): removed, since duplicatedUltimate_Extending_Project.2011-08-04 Arnaud Charlet <charlet@adacore.com>* make.adb (Do_Codepeer_Globalize_Step): Removed. Use CodePeer_Modeinstead.(CodePeer_Mode_String): New.(Linking_Phase, Binding_Phase): Call gnatlink with -P switch inCodePeer mode.(Scan_Make_Arg): Do not disable binding/linking phase in CodePeer mode.* bindgen.adb (Gen_Elab_Calls_Ada): Ignore subprograms in CodePeermode, since no useful elaboration subprogram is needed by CodePeer.* gnatlink.adb (Gnatlink): Add support for -P switch (CodePeer mode).In this mode, compile binder file with -gnatC and do stop after thisstep.2011-08-04 Vincent Celier <celier@adacore.com>* exp_ch7.adb: Minor comment fix.2011-08-04 Robert Dewar <dewar@adacore.com>* exp_ch7.adb, make.adb, sem_ch10.adb, bindgen.adb, sem_res.adb,exp_ch4.adb, makeutl.adb: Minor reformatting.2011-08-04 Emmanuel Briot <briot@adacore.com>* make.adb, makeutl.adb, makeutl.ads (Make): major refactoring.Create several new subprograms to move code out of Make. This makes thecode more readable, removes code duplication, and is a preparation workfor adding support for aggregate projects.2011-08-04 Tristan Gingold <gingold@adacore.com>* s-po32gl.ads, s-po32gl.adb: New files.* exp_ch7.ads (Get_Global_Pool_For_Access_Type): New function.* exp_ch7.adb (Get_Global_Pool_For_Access_Type): New function.(Build_Finalization_Collection): Use it.* exp_ch4.adb (Complete_Controlled_Allocation): Ditto.* rtsfind.ads: System_Pool_32_Global, Re_Global_Pool_32_Object: Newliterals.* gcc-interface/Makefile.in: Use s-po32gl.o on VMS.* gcc-interface/Make-lang.in: Update dependencies.2011-08-04 Emmanuel Briot <briot@adacore.com>* makeutl.adb (Complete_Mains): add support for specs with no suffix onthe command line.2011-08-04 Emmanuel Briot <briot@adacore.com>* make.adb, makeutl.adb (Complete_Mains): if a main specified on thecommand line is not a file name, also check whether it could be a unitname.2011-08-04 Eric Botcazou <ebotcazou@adacore.com>* bindgen.adb (Gen_Finalize_Library_Ada): Factor out code to generatethe header of the finalization routine.If the unit has no finalizer but is a body whose spec has one, thengenerate the decrement of the elaboration entity only.If the unit has a finalizer and is a spec, then do not generate thedecrement of the elaboration entity.(Gen_Finalize_Library_C): Likewise.2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch7.adb (Alignment_Of): New subsidiary routine.(Bounds_Size_Expression): Removed.(Double_Alignment_Of): New subsidiary routine.(Make_Finalize_Address_Stmts): New local variable Index_Typ. Accountfor a hole in the dope vector of unconstrained arrays due to differentindex and element alignments.2011-08-04 Ed Schonberg <schonberg@adacore.com>* sem_res.adb (Resolve_Allocator): diagnose task allocator that willraise program_error because body has not been seen yet.2011-08-04 Ed Schonberg <schonberg@adacore.com>* sem_ch10.adb (Analyze_With_Clause): Protect against child unit withan unresolved name.2011-08-04 Vincent Celier <celier@adacore.com>* makeutl.adb (Do_Complete): Check absolute paths in canonical forms2011-08-04 Yannick Moy <moy@adacore.com>* alfa.adb, alfa.ads (Unique_Defining_Entity): move function from here* sem_util.adb, sem_util.ads (Unique_Defining_Entity): ...to here2011-08-04 Thomas Quinot <quinot@adacore.com>* sem_ch12.adb (Analyze_Package_Instantiation): Do not omit body forinstantiation in RCI.2011-08-04 Emmanuel Briot <briot@adacore.com>* make.adb: Share more code with gprbuild2011-08-04 Emmanuel Briot <briot@adacore.com>* projects.texi: Added documentation for the IDE'Gnat project fileattribute.2011-08-04 Nicolas Roche <roche@adacore.com>* gnat_rm.texi: Minor editing.2011-08-04 Javier Miranda <miranda@adacore.com>* bindgen.adb (Gen_Adafinal_Ada): Do not differentiate the main caseand the library case for VM targets.(Gen_Adainit_Ada): Likewise.2011-08-04 Robert Dewar <dewar@adacore.com>* g-altive.ads: Minor comment updates.* prj-nmsc.adb: Minor reformatting.2011-08-04 Javier Miranda <miranda@adacore.com>* opt.ads(Normalize_Scalars_Config): Value of the configuration switch set bypragma Normalize_Scalars when it appears in the gnat.adc file.(Normalize_Scalars): New field for record Config_Switches_Type. Usedto save and restore settings of this pragma.* opt.adb(Register_Opt_Config_Switches, Save_Opt_Config_Switches,Restore_Opt_Config_Switches): Add missing support for Normalize_Scalars.2011-08-04 Vincent Celier <celier@adacore.com>* gnat_ugn.texi: Document gnatlink options -M and -M=mapfile2011-08-04 Arnaud Charlet <charlet@adacore.com>* makeutl.adb: Minor reformatting.2011-08-04 Olivier Hainque <hainque@adacore.com>* g-altive.ads: Update comments to reflect that only the softbinding is available today.2011-08-04 Robert Dewar <dewar@adacore.com>* bindgen.adb, einfo.adb, sem_ch12.adb, s-tasren.adb, sem_res.adb,makeutl.adb, prj-nmsc.adb, opt.ads, prj-env.adb: Minor reformatting* gcc-interface/Make-lang.in: Update dependencies.2011-08-04 Arnaud Charlet <charlet@adacore.com>* prj-env.adb: Remove local debug traces.2011-08-04 Yannick Moy <moy@adacore.com>* checks.adb (Apply_Float_Conversion_Check): correct a typo where Lo_OKwas used instead of Hi_OK, which could cause a read of an uninitializedvalue later on. Detected while working on the new warning.* exp_ch9.adb (Expand_N_Entry_Declaration): remove useless assignmentto local variable.* sem_ch5.adb (Analyze_Assignment): set the last assignment componentin more cases, in order to detect more unreferenced values.* sem_util.adb, sem_util.ads (Get_Enclosing_Object): return enclosingobject for expression, if any.2011-08-04 Eric Botcazou <ebotcazou@adacore.com>* exp_intr.adb (Expand_Binary_Operator_Call): Look at the RM size ofthe operand types instead of the Esize.2011-08-04 Steve Baird <baird@adacore.com>* switch-b.adb (Scan_Binder_Switches): Add -P binder switch, used toenable CodePeer_Mode.* bindusg.adb (Display): Add help message describing -P binder switch.* gnat_ugn.texi: Document -P binder switch.* bindgen.adb (Gen_Main_Ada): If CodePeer_Mode is set, then call theuser-defined main program directly.(Gen_Output_File_Ada): If CodePeer_Mode is set, generate a with of theuser-defined main program in the context clause of the package body.2011-08-04 Yannick Moy <moy@adacore.com>* alfa.adb, alfa.ads (Get_Entity_For_Decl): remove function, partialduplicate of Defining_Entity(Get_Unique_Entity_For_Decl): rename function intoUnique_Defining_Entity* einfo.adb, einfo.ads (Is_In_ALFA, Body_Is_In_ALFA): remove flags(Formal_Proof_On): remove synthesized flag* cstand.adb, sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_res.adb, sem_util.adb,sem_util.ads, stand.ads: Remove treatment associated to entities in ALFA* sem_prag.adb (Analyze_Pragma): remove special treatment for pragmaAnnotate (Formal_Proof)2011-08-04 Emmanuel Briot <briot@adacore.com>* prj-env.adb (Create_Config_Pragmas_File): fix handling of multi-unitsource files with non-standard naming schemes, in imported projects2011-08-04 Emmanuel Briot <briot@adacore.com>* makeutl.adb (Complete_Mains): when a multi-unit source file isspecified on the gprbuild command line, we need to compile all unitswithin that file, not just the first one we findFix error message for mains that are not found.2011-08-04 Thomas Quinot <quinot@adacore.com>* sem_ch6.adb: Update comment.* sem_ch12.adb: Minor reformatting.2011-08-04 Bob Duff <duff@adacore.com>* s-tasren.adb (Task_Do_Or_Queue): Previous code was readingAcceptor.Terminate_Alternative without locking Acceptor, which causes arace condition whose symptom is to fail to lock Parent. That, in turn,causes Parent.Awake_Count to be accessed without locking Parent, whichcauses another race condition whose symptom is that Parent.Awake_Countcan be off by 1 (either too high or too low). The solution is to lockParent unconditionally, and then lock Acceptor, before readingAcceptor.Terminate_Alternative.2011-08-04 Arnaud Charlet <charlet@adacore.com>* debug.adb: Update comment.2011-08-04 Robert Dewar <dewar@adacore.com>* par_sco.adb, exp_util.adb, make.adb, a-tags.adb, sem_prag.adb,sem_util.adb, sem_attr.adb, exp_ch4.adb, g-comlin.adb, g-comlin.ads,exp_ch6.adb: Minor reformatting.2011-08-04 Gary Dismukes <dismukes@adacore.com>* gnat_ugn.texi: Add sentence about the case of compile-time-detectedchecks for -gnateE.2011-08-04 Ed Schonberg <schonberg@adacore.com>* gnat_rm.texi: update Ravenscar desription to reflect Ada2012 RM.2011-08-04 Thomas Quinot <quinot@adacore.com>* sinfo.ads: Minor reformatting.2011-08-04 Emmanuel Briot <briot@adacore.com>* makeutl.adb, makeutl.ads, prj-nmsc.adb (Complete_Mains): report erroreven if there is no location.2011-08-04 Ed Schonberg <schonberg@adacore.com>* sem_res.adb, sem_ch4.adb: move check for restrictionNo_Task_Hierarchy to resolve_allocator.2011-08-04 Thomas Quinot <quinot@adacore.com>* sinfo.adb, sinfo.ads, sem_prag.adb, sem_ch12.adb (Pragma_Enabled):This flag of N_Pragma nodes is not used, remove it as well as all ofthe associated circuitry.2011-08-04 Javier Miranda <miranda@adacore.com>* exp_disp.adb (Make_DT): Switch -gnatdQ disables the generation of theruntime check on duplicated externa tags* debug.adb Document switch -gnatdQ.2011-08-04 Gary Dismukes <dismukes@adacore.com>* a-fihema.ads: Minor typo fix.2011-08-04 Yannick Moy <moy@adacore.com>* sem_ch10.adb: Minor comment update.2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>* einfo.adb: Update the node field usage to reflect the renaming ofReturn_Flag to Return_ Flag_Or_Transient_Decl.(Return_Flag): Renamed to Return_Flag_Or_Transient_Decl.(Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl.(Write_Field15_Name): Change Return_Flag toReturn_Flag_Or_Transient_Decl.* einfo.ads: Rename node field Return_Flag toReturn_Flag_Or_Transient_Decl. Update the associated comment and alloccurrences in entities.(Return_Flag): Renamed to Return_Flag_Or_Transient_Decl. Updateassociated Inline pragma.(Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl. Updateassociated Inline pragma.* exp_ch4.ads, exp_ch4.adb (Expand_N_Expression_With_Actions): Newroutine.* exp_ch6.adb (Expand_N_Extended_Return_Statement): Update the calls toReturn_Flag and Set_Return_Flag.* exp_ch7.adb (Process_Declarations): Add code to recognize hookobjects generated for controlled transients declared inside anException_With_Actions. Update the calls to Return_Flag.(Process_Object_Declaration): Add code to add a null guard for hookobjects generated for controlled transients declared inside anException_With_Actions. Update related comment.* exp_util.adb (Has_Controlled_Objects): Add code to recognize hookobjects generated for controlled transients declared inside anException_With_Actions. Update the calls to Return_Flag.* expander.adb (Expand): Add new case for N_Expression_With_Actions.2011-08-04 Ed Schonberg <schonberg@adacore.com>* sem_util.adb:(Wrong_Type): Improve error message on a one-elementpositional aggregate.2011-08-04 Vincent Celier <celier@adacore.com>* par_sco.adb (Process_Decisions.Output_Header): Check and record pragmaSLOC only for pragmas.2011-08-04 Emmanuel Briot <briot@adacore.com>* projects.texi: Minor typo fix.2011-08-04 Emmanuel Briot <briot@adacore.com>* prj-nmsc.adb (Check_File): Minor change to traces, to help debuggingon case-sensitive file systems.2011-08-04 Thomas Quinot <quinot@adacore.com>* put_scos.adb (Put_SCOs): Do not emit decision SCO for an X decisionnested in a disabled pragma.* scos.ads, scos.adb, par_sco.ads, par_sco.adb: Record sloc ofenclosing pragma, if any, for X decisions.2011-08-04 Thomas Quinot <quinot@adacore.com>* sem_prag.adb: Minor reformatting.2011-08-04 Vincent Celier <celier@adacore.com>* a-tags.adb (Check_TSD): Avoid concatenation of strings, as it is notallowed in no run time mode.2011-08-04 Vincent Celier <celier@adacore.com>* make.adb (Check): When -gnatc is used, check for the source fileinside the ALI file with a canonical case file name.2011-08-04 Emmanuel Briot <briot@adacore.com>* g-comlin.adb, g-comlin.ads (Add_Switch): Put back support foroverriding the separator.2011-08-04 Robert Dewar <dewar@adacore.com>* sem_aggr.adb, par_sco.adb, sem_type.adb, exp_util.adb, exp_ch9.adb,prj-nmsc.adb, sem_ch13.adb, exp_strm.adb: Minor reformatting.2011-08-04 Robert Dewar <dewar@adacore.com>* gnat_rm.texi: Minor documentation fix for pragma Annotate.2011-08-04 Yannick Moy <moy@adacore.com>* sem_attr.adb (Analyze_Attribute): add check during pre-analysis that'Result only appears in postcondition of function.2011-08-04 Thomas Quinot <quinot@adacore.com>* a-tags.adb (Check_TSD): When raising PROGRAM_ERROR for a duplicatedexternal tag, include the value of the external tag in the exceptionmessage.2011-08-04 Yannick Moy <moy@adacore.com>* sem_attr.adb (Result): modify error message for misplaced 'Result2011-08-04 Sergey Rybin <rybin@adacore.com>* gnat_rm.texi (pragma Annotate): Fix syntax description to make itclear that the second argument must be an identifier.2011-08-04 Thomas Quinot <quinot@adacore.com>* exp_ch9.adb (Build_Barrier_Function): When compiling with-fpreserve-control-flow, insert an IF statement on the barriercondition to ensure that a conditional branch instruction is generated.2011-08-04 Emmanuel Briot <briot@adacore.com>* prj-part.adb, prj.adb, prj.ads, prj-tree.ads(Processing_Flags.Ignore_Missing_With): new flag.2011-08-04 Emmanuel Briot <briot@adacore.com>* prj-nmsc.adb (Find_Sources, Path_Name_Of): Fix handling ofSource_List_File on case-insensitive systems where the file is actuallyon a case-sensitive file system (NFS,...).2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>* sem_ch6.adb (Analyze_Function_Return): In a rare case where afunction return contains a controlled [extension] aggregate and thereturn statement is not part of a handled sequence of statements, wrapthe return in a block. This ensures that all controlled temporariesgenerated during aggregate resolution will be picked up by thefinalization machinery.2011-08-04 Ed Schonberg <schonberg@adacore.com>* sem_aggr.adb (Resolve_Aggregate): If aggregate has box-initializedcomponents, freeze type before resolution, to ensure that defaultinitializations are present for all components.* sem_res.adb (Resolve_Actuals): the designated object of anaccces-to-constant type is a legal actual in a call to aninitialization procedure.2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>* exp_util.adb (Extract_Renamed_Object): Add N_Type_Conversion andN_Unchecked_Type_Conversion to the possible containers of a renamedtransient variable.2011-08-04 Yannick Moy <moy@adacore.com>* par-ch13.adb (Aspect_Specifications_Present): recognize"with Identifier'Class =>" as an aspect, so that a meaningful warningis issued in Strict mode.* par.adb: Fix typos in comments.2011-08-04 Yannick Moy <moy@adacore.com>* sem_attr.adb (Result): modify error message to take into account Postaspect when compiling Ada 2012 (or newer) code.2011-08-04 Nicolas Roche <roche@adacore.com>* env.c (__gnat_clearenv): Avoid use of dynamic size array in order toremove need for GCC exceptions.2011-08-04 Vincent Celier <celier@adacore.com>* makeutl.adb (Do_Complete): Call Debug_Output with the name of theproject, not the source file name.* prj.adb (Find_Sources.Look_For_Sources): If the source has beenexcluded, continue looking. This excluded source will only be returnedif there is no other source with the same base name that is not locallyremoved.2011-08-04 Ed Schonberg <schonberg@adacore.com>* sem_res.adb (Resolve_Intrinsic_Operator): if the result type isprivate and one of the operands is a real literal, use a qualifiedexpression rather than a conversion which is not meaningful to theback-end.2011-08-04 Yannick Moy <moy@adacore.com>* sem_ch13.adb (Aspect_Loop): when an aspect X and its classwisecorresponding aspect X'Class are allowed, proceed with analysis of theaspect instead of skipping it.2011-08-04 Tristan Gingold <gingold@adacore.com>* s-flocon.adb, s-flocon.ads: Add a body for s-flocon.adsThis will allow to have an Ada implementation for the subprogram.2011-08-04 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (Analyze_Full_Type_Declaration): If the declaration is acompletion and aspects are present, apply them to the entity for thetype which is currently the partial view, but which is the one thatwill be frozen.* sem_ch13.adb (Analyze_Aspect_Specifications): if the predicateapplies to a partial view, indicate that the full view has predicatesand delayed aspects.(Replace_Type_Reference): Handle properly predicates that apply to thefull view of a private completion.2011-08-04 Eric Botcazou <ebotcazou@adacore.com>* layout.adb (Layout_Type): For composite types, do not set Esize.* freeze.adb (Set_Small_Size): Remove test on alignment and do notset Esize.(Size_Known): Look at the RM size of components instead of the Esize.(Freeze_Record_Type): Look at the RM size instead of the Esize toissue warning and activate Implicit_Packing.(Freeze_Entity): Likewise. Do not issue a warning for alias/atomicif the Esize is not known.* sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Size>: Set Esizefor elementary types only.(Analyze_Record_Representation_Clause): Look at the RM size insteadof the Esize to issue errors.* gcc-interface/decl.c (gnat_to_gnu_entity): Do not set Esize if itis not known.<E_Record_Type>: Look at the RM size instead of the Esize. Removeobsolete block.Look at the RM size instead of the Esize for types if the latter isnot known.(gnat_to_gnu_field): Use Known_Esize instead of Known_Static_Esize.2011-08-04 Ed Schonberg <schonberg@adacore.com>* sem_type.adb: proper handling of equality not involving anonymousaccess types.2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch7.adb (Create_Finalizer): Remove local variables Spec_Nod andVis_Decls. When creating a library-level finalizer for a package spec,both the declaration and body of the finalizer are inserted either inthe visible or private declarations of the package spec.2011-08-04 Javier Miranda <miranda@adacore.com>* sem_ch3.adb (Derive_Subprograms): Complete assertion to request theuse of the full-view of a type when invoking Is_Ancestor.* sem_type.adb (Is_Ancestor): For consistency, when the traversal ofthe full-view of private parents is requested, then use also thefull-view of the parent of the first derivation.2011-08-04 Tristan Gingold <gingold@adacore.com>* s-taprop-vxworks.adb (Enter_Task): Use System.Float_Control.Resetinstead of the locally imported procedure.* s-taprop-mingw.adb (Enter_Task): Ditto.* s-valrea.adb (Scan_Real): Ditto.* s-imgrea.adb (Set_Image_Real): Ditto.* s-flocon.ads: Make the package pure.2011-08-04 Thomas Quinot <quinot@adacore.com>* sinfo.ads, sinfo.adb (Debug_Statement, Set_Debug_Statement): Remove.* tbuild.ads, tbuild.adb (Make_Pragma): Adjust accordingly.* sinfo-cn.ads, sinfo-cn.adb (Change_Name_To_Procedure_Call_Statement):New subprogram, moved here from...* par.adb, par-ch5.adb (P_Statement_Name): ... here.* par-prag.adb (Par.Prag, case Pragma_Debug): Do not perform anyrewriting of the last argument into a procedure call statement here...* sem_prag.adb (Analyze_Pragma, case Pragma_Debug): ...do it thereinstead.2011-08-04 Thomas Quinot <quinot@adacore.com>* par_sco.adb: Minor reformatting.2011-08-04 Robert Dewar <dewar@adacore.com>* erroutc.adb: Minor reformatting.2011-08-04 Thomas Quinot <quinot@adacore.com>* par_sco.adb: Comment update.2011-08-04 Tristan Gingold <gingold@adacore.com>* s-flocon.ads: New file.* g-flocon.ads: Now a renaming of s-flocon.* Makefile.rtl: Add s-flocon.o2011-08-04 Javier Miranda <miranda@adacore.com>* exp_strm.adb (Build_Array_Input_Function): if the array type isconstrained, do not attempt to build a subtype of it.2011-08-04 Yannick Moy <moy@adacore.com>* errout.ads Change comments: remove 'R'M as an example where quotesare needed; add ALFA as another case where quotes are not needed* erroutc.adb (Set_Msg_Insertion_Reserved_Word): add ALFA as anothercase where quotes are not needed.* sem_ch11.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_prag.adb, sem_res.adb:Remove all occurrences of 'A'L'F'A2011-08-04 Ed Schonberg <schonberg@adacore.com>* sem_ch13.adb: check legality of invariant pragma.2011-08-04 Eric Botcazou <ebotcazou@adacore.com>* bindgen.adb: Add comments.2011-08-04 Yannick Moy <moy@adacore.com>* einfo.adb, einfo.ads: Free Flag254 and make Formal_Proof_On asynthesized flag.* sem_prag.adb (Analyze_Pragma): record the pragma Annotate(Formal_Proof, On/Off) in the Rep_Item list of the current subprogram.2011-08-04 Robert Dewar <dewar@adacore.com>* exp_ch7.adb, exp_ch6.adb, sem_ch3.adb, layout.adb, sem_ch5.adb,osint-c.ads, sem_util.ads, gnat1drv.adb, targparm.ads, sem_ch6.adb,sem_ch13.adb, s-pooloc.adb: Minor reformatting.2011-08-04 Thomas Quinot <quinot@adacore.com>* s-pooloc.ads, s-pooglo.ads: Minor reformatting2011-08-04 Thomas Quinot <quinot@adacore.com>PR ada/47880* s-pooloc.adb (Deallocate): Fix the case of deallocating the onlyallocated object.2011-08-04 Robert Dewar <dewar@adacore.com>* einfo.ads, exp_ch4.adb: Minor reformatting.2011-08-04 Jerome Lambourg <lambourg@adacore.com>* back_end.ads (Gen_Or_Update_Object_File): Add more comments.2011-08-04 Ed Schonberg <schonberg@adacore.com>* exp_ch4.adb (Expand_Composite_Equality): code cleanup: use componenttype in all cases to compute list of primitive operations, because fullview may be an itype that is not attached to the list of declarations.2011-08-04 Eric Botcazou <ebotcazou@adacore.com>* bindgen.adb (Gen_Adafinal_Ada): Generate an early return if thelibrary has already been finalized.(Gen_Adafinal_C): Likewise.(Gen_Adainit_Ada): Generate an early return if the library hasalready been elaborated.(Gen_Adainit_C): Likewise.(Gen_Output_File_Ada): Generate an elaboration flag.(Gen_Output_File_C): Likewise.2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch4.adb (Expand_Allocator_Expression): Disable the generation ofSet_Finalize_Address_Ptr for CodePeer because Finalize_Address was notbuilt in the first place.(Expand_N_Allocator): Disable the generation of Set_Finalize_Address_Ptrfor CodePeer because Finalize_Address was not built to begin with.* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Ditto.2011-08-04 Pascal Obry <obry@adacore.com>* adaint.c (__gnat_tmp_name): Use current process id to create tempfilenames, this ensures unicity of filenames across processes.2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>* bindgen.adb (Gen_Finalize_Library_Ada): Rename generated routineRaise_Controlled to Raise_From_Controlled_Operation. Update thesignature of Raise_From_Controlled_Operation by adding flag From_Abort.Add False as the actual to From_Abort in the generated call toRaise_From_Controlled_Operation.2011-08-04 Jerome Lambourg <lambourg@adacore.com>* osint-c.ads, osint-c.adb (Set_Library_Info_Name): Move to declarationso that the ali file name can be retrieved from outside of this package.* back_end.ads, back_end.adb (Gen_Or_Update_Object_File): New methoddoing nothing in the general case, but used to update the object filetimestamp if directly generated by the backend.* gnat1drv.adb (Gnat1drv): Make sure the object file's timestamp is setto a later time than the ali file one.2011-08-04 Yannick Moy <moy@adacore.com>* einfo.adb, einfo.ads (Formal_Proof_On): new flag set on subprogramentities whose body contains an Annotate pragma which forces formalproof on this body.* sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,sem_ch6.adb, sem_ch9.adb, sem_res.adb: Adapt call toMark_Non_ALFA_Subprogram to pass in a message and node.* sem_prag.adb (Analyze_Pragma): add treatment of pragma Annotate(Forma_Proof, On) which sets the flag Formal_Proof_On in thesurrounding subprogram.* sem_util.adb, sem_util.ads (Mark_Non_ALFA_Subprogram,Mark_Non_ALFA_Subprogram_Unconditional): if the subprogram being markedas not in ALFA is annotated with Formal_Proof being On, then an erroris issued based on the additional parameters for message and node.* snames.ads-tmpl (Name_Formal_Proof): new name for annotation.* gcc-interface/Make-lang.in: Update dependencies.2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Do not generateFinalize_Address when CodePeer is enabled.2011-08-04 Pascal Obry <obry@adacore.com>* adaint.c (__gnat_tmp_name): Use _tempnam() instead of tempnam() asthe latter returns a pointer to a static buffer which is deallocatedat the end of the routine.2011-08-04 Yannick Moy <moy@adacore.com>* sem_ch3.adb (Array_Type_Declaration): move test for type in ALFAafter index creation; mark unconstrained base array type generated asbeing in/not in ALFA as well(Make_Index): mark subtype created as in/not in ALFA* sem_ch5.adb (Analyze_Iteration_Scheme): mark entity for iteratingover a loop as in/not in ALFA, depending on its type and form of loopiteration.2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch7.adb (Build_Object_Declarations): Initialize flag Abortdirectly to False on .NET and JVM.2011-08-04 Yannick Moy <moy@adacore.com>* sem_ch3.adb (Constrain_Enumeration, Constrain_Integer): removeconstraint that subtype must come from source code to be in ALFA, sothat anonymous subtypes can be in ALFA too.2011-08-04 Yannick Moy <moy@adacore.com>* sem_ch3.adb (Analyze_Object_Declaration): remove obsolete addition ofreference for ALFA mode.* lib-xref-alfa.adb, lib-xref.ads (Traverse_Compilation_Unit): makeprocedure public so as to use it from formal verification back-end.2011-08-04 Jerome Lambourg <lambourg@adacore.com>* g-comlin.adb (For_Each_Simple_Switch.Is_In_Config): Remove theinvalid checks of the Parameter, making Remove_Switch not workingcorrectly.2011-08-04 Arnaud Charlet <charlet@adacore.com>* targparm.ads: Update header: no run-time exception is needed on thisfile.2011-08-04 Vincent Celier <celier@adacore.com>* a-fihema.adb: Use System.IO instead of GNAT.IO2011-08-04 Thomas Quinot <quinot@adacore.com>* sem_ch3.adb (Access_Definition): Anonymous access to subprogram typesare forbidden in Compiler_Unit mode.2011-08-04 Robert Dewar <dewar@adacore.com>* sem_util.adb: Minor reformatting.2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>* bindgen.adb (Gen_Finalize_Library_Ada): Update the import string forlibrary-level finalizers.(Gen_Finalize_Library_C): Update the import string for library-levelfinalizers.(Gen_Finalize_Library_Defs_C): Update the definition name of alibrary-level finalizer.* exp_ch7.adb: Remove with and use clauses for Stringt.(Create_Finalizer): Remove local variables Conv_Name, Prag_Decl,Spec_Decl. Add local variable Body_Id. The names of library-levelfinalizers are now manually fully qualified and are no longer external.A single name is now capable of servicing .NET, JVM and non-VM targets.Pragma Export is no longer required to provide visibility for the name.(Create_Finalizer_String): Removed.(New_Finalizer_Name): New routine which mimics New_..._Name.2011-08-04 Eric Botcazou <ebotcazou@adacore.com>* sem_elab.adb (Check_Internal_Call_Continue): Change the type of theelaboration counter to Standard_Short_Integer.* sem_util.adb (Build_Elaboration_Entity): Likewise.* bindgen.adb (Gen_Elab_Externals_Ada): Adjust to above change.(Gen_Elab_Externals_C): Likewise.2011-08-04 Ed Falis <falis@adacore.com>* system-vxworks-arm.ads, system-vxworks-sparcv9.ads,system-vxworks-ppc.ads, system-vxworks-m68k.ads,system-vxworks-mips.ads, system-vxworks-x86.ads(Always_Compatible_Rep): set to False for all VxWorks targets.2011-08-04 Robert Dewar <dewar@adacore.com>* par_sco.adb, prj-proc.adb, make.adb, bindgen.adb, prj.adb, prj.ads,makeutl.adb, makeutl.ads, prj-nmsc.adb, exp_ch5.adb, exp_ch12.adb,exp_ch7.ads, exp_util.ads, sem_util.ads, g-comlin.ads, exp_ch6.adb,exp_ch6.ads, lib-xref.ads, exp_ch7.adb, exp_util.adb, exp_dist.adb,exp_strm.adb, gnatcmd.adb, freeze.adb, g-comlin.adb, lib-xref-alfa.adb,sem_attr.adb, sem_prag.adb, sem_util.adb, sem_elab.adb, sem_ch8.adb,sem_ch11.adb, sem_eval.adb, sem_ch13.adb, sem_disp.adb, a-fihema.adb:Minor reformatting and code reorganization.2011-08-04 Emmanuel Briot <briot@adacore.com>* projects.texi: Added doc for aggregate projects.2011-08-04 Emmanuel Briot <briot@adacore.com>* prj-proc.adb, prj-nmsc.adb, prj-env.adb (Process_Declarative_Items):Add support for overriding the Project_Path in aggregate projects.2011-08-04 Robert Dewar <dewar@adacore.com>* a-cofove.ads: Minor reformatting.2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Update the commenton the generated code.(Build_Finalize_Statements): Update the comment on the generated code.(Build_Initialize_Statements): Update the comment on the generated code.(Build_Object_Declarations): Add local variable Result. The objectdeclarations are now built in sequence.* rtsfind.ads: Add RE_Exception_Occurrence_Access to tables RE_Id andRE_Unit_Table.2011-08-04 Robert Dewar <dewar@adacore.com>* checks.adb, alfa.adb, alfa.ads: Minor reformatting.2011-08-04 Eric Botcazou <ebotcazou@adacore.com>* einfo.ads (Elaboration_Entity): Document new definition and use.(Elaboration_Entity_Required): Adjust to above change.* exp_attr.adb (Expand_N_Attribute_Reference): Likewise.* exp_ch12.adb: And with and use for Snames.(Expand_N_Generic_Instantiation): Test 'Elaborated attribute.* exp_util.adb (Set_Elaboration_Flag): Likewise.* sem_attr.adb (Analyze_Attribute) <Check_Library_Unit>: Delete.<Check_Unit_Name>: Deal with N_Expanded_Name.<Attribute_Elaborated>: Extend to all unit names.* sem_elab.adb: And with and use for Uintp.(Check_Internal_Call_Continue): Adjust to Elaboration_Entity change.* sem_util.ads (Build_Elaboration_Entity): Adjust comment.* sem_util.adb (Build_Elaboration_Entity): Change type to Integer.* bindgen.adb (Gen_Elab_Externals_Ada): New local subprogram takenfrom Gen_Adainit_Ada.(Gen_Elab_Externals_C): Likewise, but taken from Gen_Adainit_C.(Gen_Adafinal_Ada): Remove redundant test. In the non-main programcase, do not call System.Standard_Library.Adafinal; instead callfinalize_library if needed.(Gen_Adafinal_C): Likewise.(Gen_Adainit_Ada): Do not set SSL.Finalize_Library_Objects in thenon-main program case.(Gen_Adainit_C): Generate a couple of external declarations here.In the main program case, set SSL.Finalize_Library_Objects.(Gen_Elab_Calls_Ada): Adjust to Elaboration_Entity change.(Gen_Elab_Calls_C): Likewise.(Gen_Finalize_Library_Ada): Likewise. Skip SAL interface units.(Gen_Finalize_Library_C): Likewise. Generate a full function.(Gen_Main_C): Put back call to Ada_Final and don't finalize libraryobjects here.(Gen_Output_File_Ada): Generate pragma Linker_Destructor for Ada_Finalif -a is specified. Call Gen_Elab_Externals_Ada. Move around call toGen_Adafinal_Ada.(Gen_Output_File_C): Generate __attribute__((destructor)) for Ada_Finalif -a is specified. Call Gen_Elab_Externals_C. Remove useless coupleof external declarations. Call Gen_Finalize_Library_C.2011-08-04 Emmanuel Briot <briot@adacore.com>* prj.adb, prj.ads, makeutl.adb, makeutl.ads (Complete_Mains,Compute_Compilation_Phases): new subprogram.(Builder_Data, Builder_Project_Tree_Data): new subprogram and typeThe number of mains as well as the various compilation phases thatneed to be run are now project tree specific, since variousaggregated trees might have different requirements. In particular,they do not all require bind or link phases.2011-08-04 Emmanuel Briot <briot@adacore.com>* prj.adb, prj.ads, makeutl.adb, makeutl.ads, prj-env.adb(Project_Tree_Appdata): New type.It is now possible to associate application-specific data to a projecttree. In particular, this is used in the gprbuild builder to avoid anumber of global tables and htables, especially now that there can beseveral project trees loaded at once because of aggregate projects.(Debug_Name): new procedure.* projects.texi: Clarify syntax of "**" for Source_Dirs2011-08-03 Emmanuel Briot <briot@adacore.com>* prj.ads, makeutl.adb, makeutl.ads (Queue.Insert): now also insertsthe "roots" for a main.(Fill_From_Project): add support for aggregate projects. Main unitsin aggregated projects are now automatically added in the list offiles to build (although this fails later on in gprbuild, becausethese files are not using the root proejct tree, so this needsfurther cleanup)* gcc-interface/Make-lang.in: Update dependencies.2011-08-03 Yannick Moy <moy@adacore.com>* sem_ch4.adb (Analyze_Conditional_Expression): only allow booleanconditional expression in ALFA.* sem_res.adb (Resolve_Conditional_Expression): mark non-booleanexpressions as not in ALFA.2011-08-03 Robert Dewar <dewar@adacore.com>* a-cofove.adb: Minor reformatting.2011-08-03 Emmanuel Briot <briot@adacore.com>* make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads(Insert_Project_Sources, Insert_withed_Sources_For): moved from thegprbuild sources.These packages are more logically placed in the Queue package, sincethey manipulate the queue. It is also likely that they can be adaptedfor gnatmake, thus sharing more code.(Finish_Program, Fail_Program): moved from the gprbuild sources, sothat we could move the above.2011-08-03 Emmanuel Briot <briot@adacore.com>* errutil.adb (Finalize): clean up the list of error messages on exit.Calling this subprogram multiple times will no longer show duplicateerror messages on stderr.2011-08-03 Emmanuel Briot <briot@adacore.com>* g-comlin.adb, g-comlin.ads (Set_Command_Line): ignore the parameterGetopt_Switches when we have already define a command lineconfiguration.2011-08-03 Yannick Moy <moy@adacore.com>* sem_ch11.adb (Analyze_Raise_xxx_Error): do not mark such nodes as notin ALFA. Instead, they are considered as assertions to prove.* sem_ch4.adb (Analyze_Conditional_Expression): do not always mark suchnodes as not in ALFA. Instead, include conditional expressions in ALFAif they have no ELSE part, or if they occur in pre- and postconditions,where the Condition cannot have side-effects in ALFA(Analyze_Membership_Op): do not mark such nodes as not in ALFA(Analyze_Type_Conversion): do not always mark such nodes as not in ALFA.Instead, include type conversion between scalar types in ALFA.* sem_ch6.adb (Process_Formals): correctly mark a parameter in ALFAif-and-only-if its type is in ALFA.2011-08-03 Thomas Quinot <quinot@adacore.com>* scos.adb, get_scos.adb, put_scos.adbNew code letter for decisions: G (entry guard)* par_sco.adb(Traverse_Subprogram_Body): Rename to...(Traverse_Subprogram_Or_Task_Body): New subrpogram.(Traverse_Protected_Body): New subprogram(Traverse_Declarations_Or_Statements): Add traversal of task bodies,protected bodies and entry bodies.2011-08-03 Yannick Moy <moy@adacore.com>* einfo.adb, einfo.ads (Is_Postcondition_Proc): new flag for procedureentities with get/set subprograms, which is set on procedure entitiesgenerated by the compiler for a postcondition.* sem_ch6.adb (Process_PPCs): set new flag on postcondition procedures* alfa.adb, alfa.ads (Get_Entity_For_Decl): new function returning theentity for a declaration(Get_Unique_Entity_For_Decl): new function returning an entity whichrepresents a declaration, so that matching spec and body have the sameentity.2011-08-03 Robert Dewar <dewar@adacore.com>* a-except-2005.adb, a-cfhama.adb, a-cfhase.adb, a-cfhase.ads,a-cforma.adb, a-cforse.ads, a-cforse.adb: Minor reformatting2011-08-03 Yannick Moy <moy@adacore.com>* lib-xref-alfa.adb (Detect_And_Add_ALFA_Scope): make the subprogramlibrary-level because retriction No_Implicit_Dynamic_Code in thefront-end prevents its definition as a local subprogram(Traverse_Compilation_Unit): extract new procedure from Add_ALFA_File,for reuse in other contexts(Traverse_Declarations_Or_Statements,Traverse_Handled_Statement_Sequence, Traverse_Package_Body,Traverse_Package_Declaration, Traverse_Subprogram_Body): make all theseprocedures take a callback parameter to be called on all declarations* lib-xref.ads(Traverse_All_Compilation_Units): new generic function to traverse acompilation unit and call a callback parameter on all declarations2011-08-03 Javier Miranda <miranda@adacore.com>* sem_prag.adb (Process_Interface_Name): Allow duplicated export namesin Java since they are always enclosed in a namespace thatdifferentiates them, and overloaded entities are supported by the VM.2011-08-03 Ed Schonberg <schonberg@adacore.com>* checks.adb (Determine_Range): If a computed bound of an operation isoutside the range of the base type of the expression, and overflowchecks are enabled, the result is unknown and cannot be used for anysubsequent constant folding.* sem_eval.adb (Compile_Time_Compare): if the bounds of one operand areunknown, so is the result of the comparison.2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>* a-except-2005.adb (Raise_From_Controlled_Operation): Add new formalFrom_Abort. When finalization was triggered by an abort, propagateStandard'Abort_Signal rather than Program_Error.* a-except-2005.ads (Raise_From_Controlled_Operation): Add new formalFrom_Abort.* a-except.adb (Raise_From_Controlled_Operation): Add new formalFrom_Abort. When finalization was triggered by an abort, propagateStandard'Abort_Signal rather than Program_Error.* a-except.ads:(Raise_From_Controlled_Operation): Add new formalFrom_Abort.* exp_ch7.adb:(Build_Adjust_Or_Finalize_Statements): New local variableAbort_Id. Update the calls to Build_Object_Declarations andBuild_Raise_Statement to include Abort_Id.(Build_Adjust_Statements): New local variable Abort_Id. Update thecalls to Build_Object_Declarations and Build_Raise_Statement to includeAbort_Id.(Build_Finalize_Statements): New local variable Abort_Id. Update thecalls to Build_Object_Declarations and Build_Raise_Statement to includeAbort_Id.(Build_Components): Create an entity for Abort_Id when exceptions areallowed on the target.(Build_Finalizer): New local variable Abort_Id.(Build_Initialize_Statements): New local variable Abort_Id. Update thecalls to Build_Object_Declarations and Build_Raise_Statement to includeAbort_Id.(Build_Object_Declarations): Add new formal Abort_Id. Create thedeclaration of flag Abort_Id to preserve the original abort statusbefore finalization code is executed.(Build_Raise_Statement): Add new formal Abort_Id. Pass Abort_Id toruntime routine Raise_From_Controlled_Operation.(Create_Finalizer): Update the call to Build_Raise_Statement to includeAbort_Id. Update the call to Build_Object_Declarations to includeAbort_Id. Update the layout of the finalizer body.(Make_Handler_For_Ctrl_Operation): Add an actual for From_Abort.(Process_Transient_Objects): New local variable Abort_Id. Remove theclunky code to create all flags and objects related toexception propagation and replace it with a call toBuild_Object_Declarations. Update the call to Build_Raise_Statement toinclude Abort_Id.* exp_ch7.ads (Build_Object_Declarations): Moved from body to spec.Add new formal Abort_Id and associated comment on its use.(Build_Raise_Statement): Add new formal Abort_Id and associated commenton its use.* exp_intr.adb (Expand_Unc_Deallocation): New local variable Abort_Id.Remove the clunky code to create all flags and objects related toexception propagation and replace it with a call toBuild_Object_Declarations. Update the call to Build_Raise_Statement.2011-08-03 Eric Botcazou <ebotcazou@adacore.com>* s-tassta.adb: Fix minor typos.2011-08-03 Robert Dewar <dewar@adacore.com>* rtsfind.ads, makeutl.ads, prj.ads, prj.adb, make.adb,lib-writ.adb, makeutl.adb, s-soflin.ads, clean.adb: Minor reformatting.2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch7.adb (Create_Finalizer): Treat freeze nodes in similar fashionto packages. This ensures that the finalizer body will not end upinside the freeze node.(Process_Declarations): Add code to detect whether a freeze node has anested finalization collection.2011-08-03 Pascal Obry <obry@adacore.com>* g-awk.adb, g-awk.ads: Make GNAT.AWK API compatible with Ada 2005.(Current_Session): Return a not null access to Session_Type.(Default_Session): Likewise.2011-08-03 Robert Dewar <dewar@adacore.com>* a-cfdlli.adb, bindgen.adb, exp_ch4.adb, exp_ch13.adb, sem_warn.adb,exp_ch3.adb, exp_ch3.ads: Minor reformatting.2011-08-03 Pascal Obry <obry@adacore.com>* g-awk.ads: Minor comment fix.2011-08-03 Sergey Rybin <rybin@adacore.com>* tree_io.ads (ASIS_Version_Number): Update because of the changes inthe tree structure related to discriminant constraints.Original_Discriminant cannot be used any more for computing thedefining name for the reference to a discriminant.2011-08-03 Ed Schonberg <schonberg@adacore.com>* sem_disp.adb (Is_Tag_Indeterminate): If the return type of thefunction is not visibly tagged, this is not a dispatching call andtherfore is not Tag_Indeterminate, even if the function is marked asdispatching on result.2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch13.adb: Add with and use clauses for Restrict and Rident.(Expand_N_Free_Statement): Add a guard to protect against run-timeswhich do not support controlled types.* exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Add a guard to protectagainst run-times which do not support controlled types.* exp_ch4.adb (Complete_Controlled_Allocation): Add a guard to protectagainst run-times which do not support controlled types.* exp_ch7.adb (Build_Finalization_Collection): Add a guard to protectagainst run-times which do not support controlled types.* exp_util.adb (Needs_Finalization): Code reformatting. Add a guard toprotect against run-times which do not support controlled types.2011-08-03 Eric Botcazou <ebotcazou@adacore.com>* exp_intr.adb: Put back with and use clauses for Exp_Ch11.(Expand_Unc_Deallocation): Expand the AT_END handler at the very end.2011-08-03 Ed Schonberg <schonberg@adacore.com>* exp_ch5.adb (Expand_Iterator_Loop): indicate that the cursor ismodified in the source, to prevent spurious warnings when compilingwith -gnatg.2011-08-03 Thomas Quinot <quinot@adacore.com>* a-except-2005.adb: Minor reformatting.2011-08-03 Ed Schonberg <schonberg@adacore.com>* sem_warn.adb (Check_One_Unit): if the only mention of a withed unitis a renaming declaration in the private part of a package, do not emita warning that the with_clause could be moved because the renaming maybe used in the body or in a child unit.2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):Propagate the Comes_From_Source attribute from the original returnobject to the renaming.2011-08-03 Jose Ruiz <ruiz@adacore.com>* exp_ch7.adb (Build_Raise_Statement): Do not callRaise_From_Controlled_Operation when this routine is not present inthe run-time library.(Cleanup_Protected_Object, Cleanup_Task): For restricted run-timelibraries (Ravenscar), tasks are non-terminating, and protected objectsand tasks can only appear at library level, so we do not wantfinalization of protected objects nor tasks.* exp_intr.adb: Minor clarification in comment.bindgen.adb (Gen_Adainit_Ada, Gen_Main_C, Gen_Output_File_Ada,Gen_Output_File_C): Remove references to finalization of library-levelobjects when using restricted run-time libraries.2011-08-03 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (Build_Discriminant_Constraints): SetOriginal_Discriminant only if the parent type is a generic formal.2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch13.adb: Add with and use clause for Targparm;(Expand_N_Free_Statement): Prevent the generation of a customDeallocate on .NET/JVM targets since this requires pools and addressarithmetic.* exp_ch4.adb (Expand_Allocator_Expression): When compiling for.NET/JVM targets, attach the newly allocated object to the accesstype's finalization collection. Do not generate a call toSet_Finalize_Address_Ptr on .NET/JVM because this routine does notexist in the runtime.(Expand_N_Allocator): When compiling for .NET/JVM targets, do notcreate a custom Allocate for object that do not require initialization.Attach a newly allocated object to the access type's finalizationcollection on .NET/JVM.* exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add special processing forassignment of controlled types on .NET/JVM. The two hidden pointersPrev and Next and stored and later restored after the assignment takesplace.* exp_ch6.adb (Expand_Call): Add local constant Curr_S. Add specializedkludge for .NET/JVM to recognize a particular piece of code coming fromHeap_Management and change the call to Finalize into Deep_Finalize.* exp_ch7.adb (Build_Finalization_Collection): Allow the creation offinalization collections on .NET/JVM only for types derived fromControlled. Separate the association of storage pools with a collectionand only allow it on non-.NET/JVM targets.(Make_Attach_Call): New routine.(Make_Detach_Call): New routine.(Process_Object_Declarations): Suppress the generation ofbuild-in-place return object clean up code on .NET/JVM since it usespools.* exp_ch7.ads (Make_Attach_Call): New routine.(Make_Detach_Call): New routine.* exp_intr.adb Add with and use clause for Targparm.(Expand_Unc_Deallocation): Detach a controlled object from a collectionon .NET/JVM targets.* rtsfind.ads: Add entries RE_Attach, RE_Detach andRE_Root_Controlled_Ptr to tables RE_Id and RE_Unit_Table.* snames.ads-tmpl: Add name Name_Prev. Move Name_Prev to the specialnames used in finalization.2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>* a-fihema.adb: Add with and use clauses for System.Soft_Links.(Attach, Detach): Lock the current task when chaining an object onto acollection.2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>* a-except.adb, a-except-2005.adb (Raise_From_Controlled_Operation):Rewritten to create the message strings when the exception is notraised by an abort during finalization.* a-except.ads, a-except-2005.ads: Add pragma Export for procedureRaise_From_Controlled_Operation and update its associated comment.* a-fihema.ads, a-fihema.adb: New GNAT unit.Ada.Finalization.Heap_Management provides key functionalityassociated with controlled objects on the heap, their creation,finalization and reclamation. Type Finalization_Collection iseffectively a wrapper which sits ontop of a storage pool and performsall necessary bookkeeping for all the objects it contains. Eachaccess-to-controlled or access-to-class-wide type receives a collectionas part of its expansion. The compiler generates buffer code andinvokes Allocate / Deallocate to create and destroy allocatedcontrolled objects.* a-finali.adb ("="): Removed.* a-finali.ads ("="): Removed. Controlled types no longer carry hiddenfields Prev and Next.* ali.adb (Scan_ALI): Add parsing code to process PF / Has_Finalizer.A library unit with at least one controlled object on the library levelhas a special finalizer which is invoked by the binder. To signal this,ali files carry field PF.* ali.ads: New field in type Unit_Record called Has_Finalizer. Addassociated comment on field usage.* a-tags.adb (Get_RC_Offset): Removed.(Needs_Finalization): New routine.* a-tags.ads: Update the structure of the GNAT dispatch tables.Dispatch tables now carry field Needs_Finalization which providesruntime indication whether a type is controlled or has controlledcomponents or both. Remove field RC_Offset.(Get_RC_Offset): Removed along with its associated pragma Export.Since tagged types with controlled components no longer carry hiddenfield _controller, the special mechanism to retrieve its location is nolonger needed.(Needs_Finalization): New routine.* atree.ads, atree.adb (Elist24): New routine.(Set_Elist24): New routine.* atree.h: Add a define clause for Elist24.* bindgen.adb New library-level variable Lib_Final_Built.(Gen_Adafinal_Ada): Reimplemented. Depending on the restrictions or thepresence of a VM target, the routine generates calls to the properlibrary finalization routine.(Gen_Adainit_Ada): Import Finalize_Library_Objects only on non-VMtargets. Set the correct library finalization routine depending onwhether the library has controlled objects or this is a VM compilation.(Gen_Finalize_Library_Ada): New routine. This procedure generates callsto library-level finalizers of compiled units in reverse order ofelaboration. It also produces exception management code and reraises apotential exception after all units have been finalized.(Gen_Finalize_Library_C): New routine. This procedure generates calls tolibrary-level finalizers of compiled units in reverse order ofelaboration.(Gen_Finalize_Library_Defs_C): New routine. This procedure generates thedefinitions of all library-level finalizers available to the compilation(Gen_Main_Ada): Directly call Adafinal which now contails all targetdependent code.(Gen_Main_C): Add new local constant Needs_Library_Finalization. CallSystem.Standard_Library.Adafinal directly. If the library needsfinalization actions, create the sequence of finalization calls.(Gen_Output_File_Ada): Alphabetize local variables and constants.Generate a with clause for System.Soft_Links when compiling for a VM.Remove the code which imports System.Standard_Library.Adafinal asDo_Finalize. Generate the library finalization routine.(Gen_Output_File_C): Add new local constant Needs_Library_Finalization.If the library needs finalization actions, create all the definitionsof library- level finalizers.(Has_Finalizer): New routine. Determines whether at least one compiledunit has a library-level finalizer.Add type Qualification_Mode.(Set_Unit_Name): Add a formal which controls the replacement of a dot.* einfo.adb: New usage of field 15 as Return_Flag.Remove Finalization_Chain_Entity from the usages of field 19.Remove Associated_Final_Chain from the usages of field 23.New usage of field 23 as Associated_Collection.New usage of field 24 as Finalizer.New usage of flag 252 as Is_Processed_Transient.(Associated_Final_Chain): Removed.(Associated_Collection): New routine.(Finalization_Chain_Entity): Removed.(Finalizer): New routine.(Is_Finalizer): New routine.(Is_Processed_Transient): New routine.(Return_Flag): New routine.(Set_Associated_Final_Chain): Removed.(Set_Associated_Collection): New routine.(Set_Finalization_Chain_Entity): Removed.(Set_Finalizer): New routine.(Set_Is_Processed_Transient): New routine.(Set_Return_Flag): New routine.(Write_Entity_Flags): Include Is_Processed_Transient to the list ofdisplayed flags.(Write_Field8_Name): Alphabetize the output.(Write_Field11_Name): Alphabetize the output.(Write_Field12_Name): Alphabetize the output.(Write_Field13_Name): Alphabetize the output.(Write_Field14_Name): Alphabetize the output.(Write_Field15_Name): Alphabetize the output.(Write_Field16_Name): Alphabetize the output.(Write_Field17_Name): Alphabetize the output.(Write_Field18_Name): Alphabetize the output.(Write_Field19_Name): Alphabetize the output. Remove the output ofFinalization_Chain_Entity.(Write_Field20_Name): Alphabetize the output.(Write_Field21_Name): Alphabetize the output.(Write_Field22_Name): Alphabetize the output.(Write_Field23_Name): Alphabetize the output. Remove the output ofAssociated_Final_Chain. Add output for Associated_Collection.(Write_Field24_Name): Alphabetize the output.(Write_Field25_Name): Add output for Finalizer.(Write_Field26_Name): Alphabetize the output.(Write_Field27_Name): Alphabetize the output.(Write_Field28_Name): Alphabetize the output.* einfo.ads: Add new field description for Associated_Collection andits uses in nodes.Remove Associated_Final_Chain and its uses in nodes.Remove Finalization_Chain_Entity and its uses in nodes.Add new field description for Finalizer and its uses in nodes.Add new synthesized attribute Is_Finalizer.Add new flag description for Is_Processed_Transient and its uses innodes.Add new field description for Return_Flag and its uses in nodes.(Associated_Final_Chain): Removed along with its pragma Inline.(Associated_Collection): New routine and pragma Inline.(Finalization_Chain_Entity): Removed along with its pragma Inline.(Finalizer): New routine and pragma Inline.(Is_Finalizer): New routine and pragma Inline.(Is_Processed_Transient): New routine and pragma Inline.(Return_Flag): New routine and pragma Inline.(Set_Associated_Final_Chain): Removed along with its pragma Inline.(Set_Associated_Collection): New routine and pragma Inline.(Set_Finalization_Chain_Entity): Removed along with its pragma Inline.(Set_Finalizer): New routine and pragma Inline.(Set_Is_Processed_Transient): New routine and pragma Inline.(Set_Return_Flag): New routine and pragma Inline.* exp_aggr.adb: Alphabetize subprograms.(Build_Array_Aggr_Code): Remove formal Flist and its associated comment.(Build_Record_Aggr_Code): Remove formals Flist and Obj along with theirassociated comments. Remove local variables External_Final_List andAttach.Rename Ctrl_Stuff_Done to Finalization_Done. Rename local variable A toAncestor. Remove the retrieval of finalization lists. Update the call toMake_Adjust_Call.(Convert_Aggr_In_Allocator): Remove the retrieval of finalizationlists. Update the call to Late_Expansion.(Convert_Aggr_In_Assignment): Update the call to Late_Expansion.(Convert_Aggr_In_Object_Decl): Update the call to Late_Expansion.(Gen_Assign): Remove the retrieval of the finalization list used tobuild the assignment. Update the calls to Make_Init_Call andMake_Adjust_Call.(Gen_Ctrl_Actions_For_Aggr): Renamed to Generate_Finalization_Actions.Remove the mechanism to determine attachment levels and finalizationlist retrieval. Remove the processing for coextensions.(Init_Controller): Removed. Controllers no longer exist.(Late_Expansion): Remove formals Flist and Obj along with theirassociated comments. Update the calls to Build_Record_Aggr_Code andBuild_Array_Aggr_Code.* exp_ch13.adb (Expand_N_Free_Statement): New routine.(Expand_N_Freeze_Entity): Add special processing for finalizers whichappear in entry bodies, protected subprograms and task bodies.* exp_ch13.ads (Expand_N_Free_Statement): New routine.* exp_ch3.adb (Add_Final_Chain): Removed.(Build_Array_Init_Proc): Alphabetize local variables.(Build_Assignment): Alphabetize local variables. Update the call toMaked_Adjust_Call.(Build_Class_Wide_Master): Rename local variables to better reflecttheir role.(Build_Discriminant_Assignments): Code reformatting.(Build_Init_Call_Thru): Code reformatting.(Build_Init_Procedure): Code reformatting. Generate a special versionof Deep_Finalize which is capable of finalizing all initializedcomponents and ignore the rest.(Build_Init_Statements): Rename local variables to better reflect theirrole.Reimplement the mechanism to include the creation and update of an indexvariable called a "counter". It is used as a bookmark for tracinginitialized and non-initialized components.(Build_Initialization_Call): Remove local variable Controller_Typ.Alphabetize all local variables. Remove the initialization of therecord controller and update the call to Make_Init_Call.(Build_Record_Init_Proc): Rename formal Pe to Rec_Ent.New local variable Counter.(Constrain_Array): Alphabetize.(Expand_Freeze_Array_Type): Create a collection instead of afinalization list.(Expand_Freeze_Class_Wide_Type): New routine. Creates TSS primitiveFinalize_Address which is used in conjunction with allocated controlledobjects.(Expand_N_Object_Declaration): Remove the creation of a finalizationlist for anonymous access types. Update the calls to Make_Init_Call andMake_Adjust_Call.(Expand_Freeze_Record_Type): Remove local variable Flist. Remove theretrieval of finalization lists. Remove the expansion of the recordcontroller. Create TSS primitive Finalize_Address used in conjunctionwith controlled objects on the heap. Create finalization collectionsfor access-to-controlled record components.(Expand_Record_Controller): Removed.(Freeze_Type): Remove the freezing of record controllers. Freezing ofclass-wide types now requires additional processing. Createfinalization collections for access-to-controlled types.(Increment_Counter): New routine.(Make_Counter): New routine.(Make_Eq_If): Remove the mention of Name_uController.(Make_Predefined_Primitive_Specs): There is no longer need to skiptypes coming from System.Finalization_Root.(Predef_Deep_Spec): Reimplemented to reflect the new parameter profiles.(Predefined_Primitive_Bodies): There is no longer need to skip typescoming from System.Finalization_Root.(Stream_Operation_OK): Do not generate stream routines fortype Ada.Finalization.Heap_Management.Finalization_Collection.* exp_ch3.ads: Alphabetize subprograms.* exp_ch4.adb: Remove with and use clause for Sem_Ch8.Add with and use clause for Lib.(Complete_Coextension_Finalization): Removed.(Complete_Controlled_Allocation): New routine. Create a finalizationcollection for anonymous access-to-controlled types. Create a customAllocate which interfaces with the back end and the machinery inHeap_Management.(Expand_Allocator_Expression): Add necessary calls toComplete_Controlled_Allocation. Remove the retrieval of finalizationlists. Update the calls to Make_Adjust_Call. Generate a call toAda.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decoratethe associated collection.(Expand_N_Allocator): Remove the processing for dynamic coextensions.Code clean up. Remove the retrieval of finalization lists andattachment levels.Update the call to Make_Init_Call. Generate a call toAda.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decoratethe associated collection.(Get_Allocator_Final_List): Removed. Finalization lists are notavailable.(Suitable_Element): Remove the mention of Name_uController.* exp_ch5.adb: Remove with and use clauses for Ttypes and Uintp.(Make_Tag_Ctrl_Assignment): Rewritten to simply do a finalization ofthe left hand side, carry out the assignment and adjust the left handside.* exp_ch6.adb (Add_Final_List_Actual_To_Build_In_Place_Call): Removed.(Add_Collection_Actual_To_Build_In_Place_Call): New routine.(BIP_Formal_Suffix): Rename BIP_Final_List and BIPfinallist toBIP_Collection and BIPcollection.(Build_Heap_Allocator): New routine used to allocate the return objectof a build-in-place function onto a collection.(Expand_Ctrl_Function_Call): Moved from Exp_Ch7.(Expand_Call): Do not replace direct calls to Deep routines with theiraliases.(Expand_N_Extended_Return_Statement): Give all variables shorter namesand update their occurrences. Add a special return flag to monitor the[ab]normal execution of the function. The flag is set right before thereturn statement.Rewrite the mechanism used to allocate a build-in-place return objecton the heap or on a storage pool.(Is_Direct_Deep_Call): New routine.(Make_Build_In_Place_Call_In_Allocator): Add a collection to abuild-in-place function call instead of a final list. Build a call toSet_Finalize_Address_Ptr to decorate the associated collection.(Make_Build_In_Place_Call_In_Anonymous_Context): Create a temporary inorder to name the build-in-place function call's result for laterfinalization. Add a collection to a build-in-place function callinstead of a final list.(Make_Build_In_Place_Call_In_Assignment): Add a collection to abuild-in-place function call instead of a final list. Remove the codewhich moves one final list and transforms it into the actual in anested build-in-place call.(Make_Build_In_Place_Call_In_Object_Declaration): Add a collection to abuild-in-place function call instead of a final list.(Move_Final_List): Removed.(Needs_BIP_Collection): New routine.(Needs_BIP_Final_List): Removed.* exp_ch6.ads: Replace BIP_Final_List with BIP_Collection inenumeration type BIP_Formal_Kind.Update the related comment.(Needs_BIP_Collection): New routine.(Needs_BIP_Final_List): Removed.* exp_ch7.adb: Add with and use clauses for Elists, Exp_Ch6, Stringtand Ttypes. Remove with and use clauses for Sem_Type. Alphabetize themajority of subprograms in this unit. Add Name_Finalize_Address toarray Name_Of and TSS_Finalize_Address to array Deep_Name_Of.(Build_Adjust_Or_Finalize_Statements): Create the adjust or finalizationstatements for an array type.(Build_Adjust_Statements): Create the adjust statements for a recordtype.(Build_Cleanup_Statements): New routine. A procedure which given anyconstruct containing asynchronous calls, references to _master, or is atask body, a task allocation or a protected body produces the necessaryruntime calls to clean up these constructs.(Build_Exception_Handler): New routine.(Build_Final_List): Removed.(Build_Finalization_Collection): New routine. A core procedure whichcreates a collection to service heap allocated controlled objectsassociated with an access-to-controlled type.(Build_Finalize_Statements): Create the finalization statements for arecord types.(Build_Finalizer): New routine. A core procedure which given anyconstruct with declarations and/or statements detects all objects whichneed any type of clean up (controlled objects, protected objects) andgenerates all necessary code to clean up the said objects in the properorder.(Build_Finalizer_Call): New routine.(Build_Initialize_Statements): Create the initialization statements foran array type. The generated routine contains code to finalize partiallyinitialized arrays.(Build_Object_Declarations): New routine.(Build_Raise_Statement): New routine.(Clean_Simple_Protected_Objects): Removed.(Controller_Component): Removed.(Enclosing_Function): New routine.(Expand_Cleanup_Actions): Create a finalizer for a construct which haseither declarations or statements or both.(Expand_N_Package_Body): Create a finalizer for a non-generic package.(Expand_N_Package_Declaration): Create a finalizer for a non-genericpackage.(Find_Final_List): Removed.(Global_Flist_Ref): Removed.(In_Finalization_Root): Removed.(Insert_Actions_In_Scope_Around): Determine the range of the transientscope in terms of tree nodes. Process all transient variables withinthat range.(Make_Adjust_Call): Rewritten. There is no longer an attach callgenerated after the adjust.(Make_Attach_Call): Removed.(Make_Call): New routine.(Make_Clean): Removed.(Make_Deep_Array_Body): Rewritten to simply invoke the appropriatebuild routines.(Make_Deep_Proc): Rewritten to generate the new profile signature usedin Deep routines.(Make_Deep_Record_Body): Rewritten to simply invoke the appropriatebuild routines.(Make_Final_Call): Modified to simply create a call to eitherDeep_Finalize or Finalize.(Make_Finalize_Address_Body): New routine.(Make_Finalize_Address_Stmts): New routine. A function which producesTSS primitive Finalize_Address used in conjunction with heap allocatedcontrolled objects.(Make_Handler_For_Ctrl_Operation): Add specialized code for .NET/JVM.(Make_Init_Call): Rewritten. There is no longer an attach callgenerated after initialization.(Make_Local_Deep_Finalize): New routine.(Make_Set_Finalize_Address_Ptr_Call): New routine.(Make_Transient_Block): Remove the finalization list retrieval andmanipulation.(Needs_Finalization): Moved to Exp_Util.(Parent_Field_Type): New routine.(Preprocess_Components): New routine.(Process_Transient_Objects): New routine.(Wrap_HSS_In_Block): New routine.(Wrap_Transient_Declaration): Remove finalization list management andcontroller insertion.(Wrap_Transient_Expression): Code reformatting.(Wrap_Transient_Statement): Code reformatting.* exp_ch7.ads (Build_Final_List): Removed.(Build_Finalization_Collection): New routine.(Build_Raise_Statement): New routine.(Controller_Component): Removed.(Expand_Ctrl_Function_Call): Moved to Exp_Ch6.(Find_Final_List): Removed.(In_Finalization_Root): Removed.(Is_Simple_Protected_Type): Update related comment.(Make_Adjust_Call): New parameter profile and associated comments.(Make_Attach_Call): Removed.(Make_Final_Call): New parameter profile and associated comments.(Make_Finalize_Address_Body): New routine.(Make_Init_Call): New parameter profile and associated comments.(Make_Local_Deep_Finalize): New routine.(Make_Set_Finalize_Address_Ptr_Call): New routine.(Needs_Finalization): Moved to Exp_Util.* exp_ch9.adb (Add_Object_Pointer): Code reformatting.(Expand_N_Protected_Body): Remove the handling of finalization lists.(Find_Protection_Type): Moved to Exp_Util.* exp_disp.adb: Remove with and use clauses for Exp_Ch7.(Make_DT): Update sequence of dispatch table initialization. Remove theinitialization of field RC_Offset. Add initialization of field Needs_Finalization.* exp_intr.adb (Expand_Unc_Deallocation): Code reformatting.Reimplement how an object is first finalized, then deallocated.* exp_strm.adb (Build_Record_Or_Elementary_Input_Function):Code reformatting.* exp_tss.ads: Add special suffix for TSS primitive Finalize_Address.Register TSS_Finalize_Address with type TSS_Names.* exp_util.adb (Build_Allocate_Deallocate_Proc): New routine. This coreprocedure provides the interface between an allocation / deallocationand the support machinery in Ada.Finalization.Heap_Management.(Find_Init_Call): Code reformatting.(Find_Init_Call_In_List): Code reformatting.(Find_Protection_Type): Moved from Exp_Ch9.(Find_Prim_Op): Reimplement to add preference of recovered primitive.(Has_Controlled_Coextensions): Removed.(Has_Controlled_Objects): New routine.(In_Library_Level_Package_Body): New routine.(Insert_Action_After): New routine.(Is_Finalizable_Transient): New routine. This predicate determineswhether an object declaration is one of the many variants of controlledtransients.(Is_Null_Access_BIP_Func_Call): New routine.(Is_Non_BIP_Func_Call): New routine.(Is_Related_To_Func_Return): New routine.(Needs_Finalization): Moved from Exp_Ch7.* exp_util.ads (Build_Allocate_Deallocate_Proc): New routine.(Find_Protection_Type): Moved from Exp_Ch9.(Has_Controlled_Coextensions): Removed.(Has_Controlled_Objects): New routine.(In_Library_Level_Package_Body): New routine.(Insert_Action_After): New routine.(Is_Finalizable_Transient): New routine.(Is_Null_Access_BIP_Func_Call): New routine.(Is_Non_BIP_Func_Call): New routine.(Is_Related_To_Func_Return): New routine.(Needs_Finalization): Moved from Exp_ch7.* expander.adb (Expand): Add a case for N_Free_Statement.* freeze.adb (Freeze_All): Replace the generation of a finalizationlist with a collection for access-to-controlled types.(Freeze_Entity): Code reformatting.(Freeze_Record_Type): Remove the freezing of a record controllercomponent.(Freeze_Subprogram): Code reformatting.* inline.adb (Cleanup_Scopes): Remove the reset of the scopefinalization list.* lib-writ.adb (Write_Unit_Information): Output "PF" when a packagehas a library-level finalizer.* lib-writ.ads: Add "PF" to the sequence of unit attributes.* a-filico.ads, a-filico.adb, s-finimp.ads, s-finimp.adb: Removed.* Makefile.rtl: Remove a-filico and s-finimp from the list of objectfiles. Add a-fihema to the list of object files.* par-ch4.adb:Alphabetize the associations in type Is_Parameterless_Attribute.* rtsfind.ads: Ada.Finalization_List.Controller andSystem.Finalization_Implementation are no longer a GNAT unit.Update the range of type Ada_Finalization_Child. Remove the followingrecoverable entities:RE_Attach_To_Final_ListRE_Deep_Tag_AttachRE_Finalize_ListRE_Finalize_OneRE_Finalizable_Ptr_PtrRE_Global_Final_ListRE_Limited_Record_ControllerRE_List_ControllerRE_Move_Final_ListRE_Record_ControllerRE_Simple_List_ControllerAdd the following recoverable entities:RE_Add_Offset_To_AddressRE_AllocateRE_Base_PoolRE_DeallocateRE_Exception_IdentityRE_Finalization_CollectionRE_Finalization_Collection_PtrRE_Needs_FinalizationRE_Save_Library_OccurrenceRE_Set_Finalize_Address_PtrRE_Set_Storage_Pool_PtrRE_Storage_Count* sem_aggr.adb (Resolve_Record_Aggregate): Remove mention ofName_uController.* sem_aux.adb (First_Discriminant): Remove mention of Name_uController.(First_Stored_Discriminant): Remove the mention of Name_uController.* sem_aux.ads: Comment reformatting.* sem_ch10.adb (Build_Chain): Signal the class-wide creation machineryto redecorate an already existing class-wide type.(Decorate_Tagged_Type): New parameter profile and associated comment.Create a "shadow class-wide type" for a shadow entity.* sem_ch11.adb (Analyze_Exception_Handlers): Remove the dubious settingof the final chain along with the associated comment.* sem_ch3.adb (Access_Type_Declaration): Add new local variableFull_Desig and set it to the full view of the designated type.Initialize the finalization collection to empty.(Build_Derived_Record_Type): Alphabetize local variables. Codereformatting.(Collect_Fixed_Components): Remove the mention of Name_uController.(Create_Constrained_Components): Remove the mention of Name_uController.(Make_Class_Wide_Type): Add specialized code to redecorate an existingclass-wide type of a shadow entity.(Process_Full_View): Update the machinery which marks typeLimited_Controlled's entity as limited.* sem_ch4.adb (Analyze_One_Call): Code reformatting.* sem_ch6.adb (Create_Extra_Formals): Do not generate a finalizationlist, instead make a collection build-in-place formal.* sem_ch8.adb (Analyze_Object_Renaming): Look at the available view ofa designated type in order to establish a match between the renamingand the renamed entity.(Find_Selected_Component): Add guard to prevent spurious exceptionsfrom being raised on .NET/JVM.* sem_disp.adb (Check_Dispatching_Operation): Include Finalize_Addressto the list of primitive that need special processing. Update arraysC_Names and D_Names.(Replace_Types): Handle class-wide types.* sem_elab.adb (Check_A_Call): Since Deep_Initialize now has adifferent parameter profile, look at the first formal.* sem_prag.adb: Remove with and use clauses for Exp_Ch7. Add with anduse clauses for Exp_Util.* sem_res.adb: Remove with and use clauses for Elists.(Propagate_Coextensions): Removed.(Resolve_Allocator): Do not propagate the list of coextensions from oneallocator to another.* sem_util.adb (Build_Actual_Subtype_Of_Component): Rename variableDeaccessed_T to Desig_Typ.(Enter_Name): Remove the mention of Name_uController.(Gather_Components): Remove the mention of Name_uController.(Incomplete_Or_Private_View): New routine.(Is_Coextension_Root): Removed.(Is_Fully_Initialized_Type): Remove the mention of Name_uController.* sem_util.ads (Incomplete_Or_Private_View): New routine.(Is_Coextension_Root): Removed.* s-finroo.ads: Remove with clause for Ada.Unchecked_Conversion.Controlled types are now derived from a null tagged record. Removetypes Finalizable_Ptr, Finalizable and Empty_Root_Controlled.* sinfo.adb (Coextensions): Removed.(Set_Coextensions): Removed.* sinfo.ads: Remove Coextensions from the explanation of node fieldsand its uses in nodes.Update the field usage of N_Allocator.(Coextensions): Removed along with its pragma Inline.(Set_Coextensions): Removed along with its pragma Inline.* snames.ads-tmpl: Remove namesName_uCleanName_uControllerName_uFinal_ListName_uLocal_Final_ListName_Finalization_RootName_NextName_PrevAdd namesName_uFinalizerName_Finalize_Address* s-pooglo.adb (Allocate): Add overriding indicator.(Deallocate): Add overriding indicator.(Storage_Size): Add overriding indicator.* s-soflin.adb (Adafinal_NT): Invoke Finalize_Library_Objects ratherthan Finalize_Global_List.(Null_Finalize_Global_List): Removed.(Save_Library_Occurrence): New routine.* s-soflin.ads: Remove variable Finalize_Global_List along with itsinitialization. Add variable Finalize_Library_Objects along with itspragma Export. Add variables Library_Exception andLibrary_Exception_Set along with their pragma Export.(Null_Finalize_Global_List): Removed.(Save_Library_Occurrence): New routine.* s-tassta.adb (Finalize_Global_Tasks): Call Finalize_Library_Objectsrather than Finalize_Global_List.* tbuild.adb (Unchecked_Convert_To): Capture and set the parent fieldof the constructed node.2011-08-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>* link.c: Include "auto-host.h" before system headers.2011-08-03 Vincent Celier <celier@adacore.com>* make.adb (Gnatmake): Add to table Library_Projs only library projectsthat are not extended. Do not check if a library project that isextended should be regenerated. Do not add to table Library_Paths thelibraries that are in extended projects. Link only with libraries thatare in libray projects that are not extended.* prj-nmsc.adb (Check_Library_Attributes): Do not reset flag Libraryfor a library project that is extended.2011-08-03 Gary Dismukes <dismukes@adacore.com>* sem_ch6.adb (Find_Corresponding_Spec): When in an instance, skipconforming subprogram renamings that appear to be completions if theyare not fully conformant.Such renamings are homographs but not completions.* sem_type.adb (Disambiguate): Handle disambiguation of overloadednames in a subprogram renaming that appears in an instance.2011-08-03 Ed Schonberg <schonberg@adacore.com>* exp_util.adb (Expand_Subtype_From_Expr): if the type is limited butnot immutably limited, build actual subtype from expression to provideproper bounds to caller.2011-08-03 Gary Dismukes <dismukes@adacore.com>* sem_ch8.adb: Minor comment correction.2011-08-03 Thomas Quinot <quinot@adacore.com>* exp_strm.adb (Build_Array_Input_Function): In Ada 2005 mode, whenreturning a limited array, use an extended return statement.2011-08-03 Vincent Celier <celier@adacore.com>* make.adb (Initialize): If --subdirs= is used, but no project file isspecified, attempt to create the specify subdir if it does not alreadyexist and use it as the object directory as if -D had been specified.2011-08-03 Arnaud Charlet <charlet@adacore.com>* s-tpopsp-vms.adb: New file.* s-taprop-vms.adb: Put back ATCB_Key, since needed by this file on VMS.* gcc-interfaces/Makefile.in: Use s-taprop-vms.adb on VMS.2011-08-03 Emmanuel Briot <briot@adacore.com>* make.adb, makeutl.adb, makeutl.ads, clean.adb (Makeutl.Queue): newpackage.2011-08-03 Yannick Moy <moy@adacore.com>* cstand.adb (Create_Standard): select Universal_Integer as an ALFA type* sem_ch3.adb (Array_Type_Declaration): detect array types in ALFA* sem_util.adb, sem_util.ads (Has_Static_Array_Bounds): new function todetect that an array has static bounds.2011-08-03 Thomas Quinot <quinot@adacore.com>* exp_dist.adb: Minor reformatting.2011-08-03 Arnaud Charlet <charlet@adacore.com>* s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-vms.adb(ATCB_Key): Removed, not always used.2011-08-03 Emmanuel Briot <briot@adacore.com>* gnatcmd.adb, make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads,clean.adb, prj-conf.adb, prj-env.adb, prj-env.ads (Makeutl): removemost remaining global variables.2011-08-03 Robert Dewar <dewar@adacore.com>* gnatcmd.adb, prj-proc.adb, mlib-prj.adb, prj.adb, makeutl.ads,prj-util.adb, prj-util.ads, prj-conf.adb, prj-env.adb: Minorreformatting.2011-08-03 Javier Miranda <miranda@adacore.com>* exp_util.adb (Is_VM_By_Copy_Actual): Include N_Slide nodes as actualsthat must be passed by copy in VM targets.2011-08-03 Emmanuel Briot <briot@adacore.com>* prj.ads, prj-nmsc.adb (Files_Htable): removed this htable, whichduplicates a similar htable now in the project tree.2011-08-03 Claire Dross <dross@adacore.com>* a-cfdlli.adb, a-cfhama.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb,a-cofove.adb ("=", Length, Is_Empty, Clear, Assign, Copy, Element,Replace_Element, Query_Element, Update_Element, Move, Insert, Prepend,Append, Delete, Delete_First, Delete_Last, Reverse_Element, Swap,Splice, First, First_Element, Last, Last_Element, Next, Previous, Find,Reverse_Find, Contains, Has_Element, Iterate, Reverse_Iterate, Capacity,Reserve_Length, Length, Strict_Equal, Left, Right): Data-structureupdate.2011-08-03 Arnaud Charlet <charlet@adacore.com>* s-taprop-posix.adb, s-taprop-linux.adb, s-taprop-tru64.adb(ATCB_Key): Removed, not always used.* s-tpopsp-posix.adb, s-tpopsp-posix-foreign.adb (ATCB_Key): Moved froms-taprop-posix.adb.* s-tpopsp-tls.adb: New file.* gcc-interface/Makefile.in: Use TLS implementation of s-tpopsp.adb onx86/x64/ia64/powerpc/sparc Linux.2011-08-03 Arnaud Charlet <charlet@adacore.com>* system-aix.ads, system-aix64.ads: Set ZCX_By_Default to True.* gcc-interface/Makefile.in: Switch to ZCX by default on AIX ports.2011-08-03 Thomas Quinot <quinot@adacore.com>* rtsfind.ads, exp_dist.adb, exp_dist.ads(Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call):Fix type selection for mapping integer types to PolyORB types.2011-08-03 Bob Duff <duff@adacore.com>* sem_ch7.adb: Minor comment clarification.2011-08-03 Bob Duff <duff@adacore.com>* sem_ch13.adb (Analyze_Enumeration_Representation_Clause): If we getan error analyzing a choice, skip further processing. Furtherprocessing could cause a crash or cascade errors.2011-08-03 Emmanuel Briot <briot@adacore.com>* gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, mlib-prj.adb,prj.adb, prj.ads, makeutl.adb, makeutl.ads, clean.adb, prj-nmsc.adb,prj-util.adb, prj-util.ads, prj-conf.adb, prj-conf.ads, prj-env.adb,prj-env.ads (Shared_Project_Tree_Data): new typeAn aggregate project and its aggregated trees need to share the commondata structures used for lists of strings, packages,... This makes thecode simpler since otherwise we have to pass the root tree (also usedfor the configuration file data) in addition to the current projecttree. This also avoids ambiguities as to which tree should be used.And finally this saves a bit of memory.(For_Every_Project_Imported): new parameter Tree.Since aggregated projects are using a different tree, we need to letthe caller know which tree to use to manipulate the returned project.2011-08-03 Robert Dewar <dewar@adacore.com>* prj-proc.adb, exp_util.ads, exp_ch9.adb, make.adb, prj-ext.adb,prj-ext.ads, alfa.ads, sem_ch4.adb, makeutl.adb, makeutl.ads,lib-xref-alfa.adb, sem_cat.adb, exp_dist.adb, get_alfa.adb,prj-env.adb, prj-env.ads, prj-tree.adb, alfa.ads: Minor reformatting.2011-08-03 Javier Miranda <miranda@adacore.com>* exp_util.adb, sem_aux.adb, exp_util.ads, sem_aux.ads:Move routine Is_VM_By_Copy_Actual from sem_aux to exp_util.2011-08-03 Bob Duff <duff@adacore.com>* sem_ch8.adb (Is_Primitive_Operator_In_Use): Always check In_Use onthe Base_Type.2011-08-03 Joel Brobecker <brobecker@adacore.com brobecker>* g-sha256.ads, g-sha512.ads, g-sha1.ads, g-sha224.ads, g-sha384.ads,g-sehash.ads: Fix typo. Update header.2011-08-03 Thomas Quinot <quinot@adacore.com>* exp_ch6.adb (Expand_Actuals): Remove Ada_2005 guard on build-in-placeexpansion.2011-08-03 Gary Dismukes <dismukes@adacore.com>* sem_ch4.adb (Analyze_Overloaded_Selected_Component): Considerprefixes of private types along with records, since the selector may bea discriminant.* sem_res.adb (Resolve_Selected_Component): Consider prefixes ofprivate types along with records, since the selector may be adiscriminant.2011-08-03 Emmanuel Briot <briot@adacore.com>* prj-pp.adb (Pretty_Print): Remove trailing blank line.2011-08-03 Javier Miranda <miranda@adacore.com>* sem_aux.adb (Is_VM_By_Copy_Actual): Fix wrong use ofTagged_Type_Expansion.2011-08-03 Yannick Moy <moy@adacore.com>* sem_res.adb (Resolve_Op_Concat_Arg): Do not issue a SPARKviolation when the argument of concatenation is the name of aconstant.2011-08-03 Emmanuel Briot <briot@adacore.com>* prj-proc.adb, prj-ext.adb, prj-ext.ads, prj-env.adb, prj-env.ads,prj-tree.adb, prj-tree.ads (Initialize_And_Copy, Copy): new subprograms(Process_Declarative_Items): new parameter Child_Env.2011-08-03 Yannick Moy <moy@adacore.com>* alfa.ads: Update format of ALFA section in ALI file in order toadd a mapping from bodies to specs when both are present.(ALFA_Scope_Record): Add components for spec file/scope.* get_alfa.adb (Get_ALFA): Read the new file/scope for spec whenpresent.* lib-xref-alfa.adb (Collect_ALFA): After all scopes have beencollected, fill in the spec information when relevant.* put_alfa.adb (Put_ALFA): Write the new file/scope for spec whenpresent.2011-08-03 Eric Botcazou <ebotcazou@adacore.com>* inline.adb (Add_Inlined_Subprogram): Do not consider the enclosingcode unit to decide whether to add internally generated subprograms.2011-08-03 Javier Miranda <miranda@adacore.com>* sem_aux.ads, sem_aux.adb (Is_VM_By_Copy_Actual): New subprogram.* exp_ch9.adb (Build_Simple_Entry_Call): Handle actuals that mustbe handled by copy in VM targets.2011-08-03 Emmanuel Briot <briot@adacore.com>* make.adb, makeutl.adb, makeutl.ads (Make.Switches_Of): Sharecode with Makeutl.Get_Switches.* prj-tree.adb: Update comment.2011-08-03 Thomas Quinot <quinot@adacore.com>* sem_cat.adb (Validate_RCI_Subprogram_Declaration): Reject a remotesubprogram with a limited formal that does not support externalstreaming.2011-08-03 Yannick Moy <moy@adacore.com>* get_alfa.adb (Get_ALFA): add missing Skip_Spaces at start ofcontinuation line* lib-xref-alfa.adb (Add_ALFA_File): split removal of scopes that arenot from current unit in two phases, because it is not possible tochange the table while iterating over its content.* put_alfa.adb (Put_ALFA): reset current file/scope at each new entity2011-08-03 Sergey Rybin <rybin@adacore.com>* vms_data.ads: Add qualifier for gnatmetric --no-static-loop option* gnat_ugn.texi: Update description of complexity metrics (gnatmetric)2011-08-03 Ed Schonberg <schonberg@adacore.com>* sem_res.adb (Resolve_Op_Concat_Arg): if the argument is an aggregateand the component type is composite, this is ambiguous for predefinedconcatenation, but if the node is not overloaded and the entity is a use-defined function its profile can be used to resolve that aggregate.2011-08-03 Robert Dewar <dewar@adacore.com>* exp_ch4.adb: Minor code cleanup.2011-08-03 Thomas Quinot <quinot@adacore.com>* exp_dist.adb: Do not generate distribution stubs if serious errorshave been diagnosed.2011-08-03 Ed Schonberg <schonberg@adacore.com>* sem_ch4.adb (Try_Primitive_Operation): when checking the validity ofthe first formal of a primitive operation, go to the base type tohandle properly an access to a derived type with constraineddiscriminants.* sem_type.adb (Disambiguate): an immediately visible operator hides auser-defined function that is only use-visible.2011-08-03 Robert Dewar <dewar@adacore.com>* sem_aggr.adb, sem_ch3.adb, lib.ads, gnatcmd.adb, prj-proc.adb,make.adb, lib-writ.adb, prj-part.adb, prj-part.ads, prj-ext.adb,fname-uf.adb, prj-ext.ads, prj.adb, prj.ads, sem_attr.adb, alfa.adb,prj-makr.adb, errout.adb, makeutl.adb, makeutl.ads, restrict.ads,sem_ch6.adb, g-pehage.adb, clean.adb, put_alfa.adb, lib-xref-alfa.adb,prj-nmsc.adb, prj-nmsc.ads, sem_ch8.adb, prj-pars.ads, exp_aggr.adb,prj-attr.ads, sem_ch13.adb, get_alfa.adb, prj-env.adb, prj-env.ads,alfa_test.adb, prj-tree.adb, prj-tree.ads, einfo.ads: Minor reformatting2011-08-03 Robert Dewar <dewar@adacore.com>* repinfo.adb (List_Mechanism): Add handling ofConvention_Ada_Pass_By_XXX.* sem_mech.adb (Set_Mechanism): Ditto.* sem_prag.adb (Process_Convention): Add entries forConvention_Ada_Pass_By_XXX.* snames.adb-tmpl, snames.ads-tmpl: Ditto.2011-08-03 Pascal Obry <obry@adacore.com>* makeutl.adb: Minor reformatting.2011-08-03 Vincent Celier <celier@adacore.com>* fname-uf.adb(Get_File_Name) If the file cannot be found when there are no configpragmas file and May_Fail is True, return No_File instead of the filename, to be consistent.2011-08-03 Pascal Obry <obry@adacore.com>* adaint.c (__gnat_is_executable_file_attr): Avoid accessto null pointer.2011-08-03 Javier Miranda <miranda@adacore.com>* sem_ch13.adb(Same_Representation): In VM targets the representation of arrays withaliased components differs from arrays with non-aliased components.2011-08-03 Emmanuel Briot <briot@adacore.com>* prj-proc.adb, prj-attr.adb, prj-attr.ads (Get_Attribute_Index): donot systematically lower case attribute indexes that contain no "."Fix definition of several Naming attributes, which takea unit name as index and therefore should be case insensitive.Minor refactoring (reduce length of variable names).2011-08-03 Emmanuel Briot <briot@adacore.com>* makeutl.adb, makeutl.ads (Get_Switches): new subprogram.2011-08-03 Emmanuel Briot <briot@adacore.com>* gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, prj-part.adb,prj-part.ads, switch-m.adb, switch-m.ads, prj-makr.adb, clean.adb,prj-pars.adb, prj-pars.ads, prj-conf.adb, prj-conf.ads, prj-tree.adb,prj-tree.ads (Prj.Tree.Environment): new type.2011-08-03 Emmanuel Briot <briot@adacore.com>* prj-proc.adb, prj.ads, makeutl.adb, makeutl.ads, prj-conf.adb,prj-tree.adb, prj-tree.ads (Environment): new type.2011-08-03 Emmanuel Briot <briot@adacore.com>* prj-tree.ads: Remove unused variable.2011-08-03 Yannick Moy <moy@adacore.com>* restrict.adb (Restriction_Msg): set "SPARK" all in upper case forissuing messages related to SPARK restriction violation.2011-08-03 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb: guard against error nodes in return statements.2011-08-03 Arnaud Charlet <charlet@adacore.com>* errout.adb (Error_Msg_Internal): the main unit has not been read yet,a warning can only appear on a configuration file, so emit warningwithout further checks.2011-08-03 Arnaud Charlet <charlet@adacore.com>* s-interr.ads: add overriding keyword.2011-08-03 Geert Bosch <bosch@adacore.com>* exp_attr.adb: Fix minor typo.2011-08-03 Ed Schonberg <schonberg@adacore.com>* par-ch4.adb: improve error recovery.2011-08-03 Emmanuel Briot <briot@adacore.com>* prj-part.adb, prj-part.ads, prj-makr.adb, prj-pars.adb, prj-conf.adb,prj-env.adb (Prj.Part.Parse): change parameter Always_Errout_Finalizeto Errout_Handling.2011-08-03 Emmanuel Briot <briot@adacore.com>* prj-dect.adb (Parse_Attribute_Declaration): make sure we can use"external" as an attribute name in aggregate projects.2011-08-03 Jose Ruiz <ruiz@adacore.com>* s-taprop-vxworks.adb: (Create_Task, Initialize): Ada 2012 pragma CPUuses CPU numbers starting 1, while VxWorks uses CPU numbers startingfrom 0, so we need to adjust.2011-08-03 Emmanuel Briot <briot@adacore.com>* prj-proc.adb, prj-ext.adb, prj-ext.ads, makeutl.adb, prj-tree.adb,prj-tree.ads, gnatcmd.adb, clean.adb (External_References): new type.2011-08-03 Yannick Moy <moy@adacore.com>* sem_ch6.adb (New_Overloaded_Entity): only issue error for SPARKrestriction on overloaded entity if the entity is not an operator.2011-08-03 Yannick Moy <moy@adacore.com>* sem_ch7.adb, sem_res.adb, sem_attr.adb, restrict.adb,restrict.ads: Rename remaining Check_Formal_Restriction* intoCheck_SPARK_Restriction*.2011-08-03 Emmanuel Briot <briot@adacore.com>* prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb,prj-nmsc.ads, prj-err.adb (Project_Data): now discriminated on itsqualifier.(Project_Empty): removed(Empty_Project): new parameter QualifierThis is used to have fields specific to aggregate projects, cleanerNew field to store the list of aggregated projects.(Check_Aggregate_Project): removed(Process_Aggregated_Projects, Free): new subprograms.2011-08-03 Olivier Hainque <hainque@adacore.com>* tracebak.c (STOP_FRAME ppc AIX): Stop at null return address as well.2011-08-03 Ed Schonberg <schonberg@adacore.com>* sem_ch8.adb (Analyze_Object_Renaming): if the renamed object is anexplicit dereference of an unconstrained type, create a constrainedsubtype for it, as is done for function calls that return anunconstrained type.2011-08-03 Thomas Quinot <quinot@adacore.com>* g-pehage.adb (Finalize): Avoid possible double-free.2011-08-03 Steve Baird <baird@adacore.com>* exp_attr.adb (Expand_N_Attribute_Reference): Don't expandElab_Spec/Body attrs in CodePeer_Mode.2011-08-03 Javier Miranda <miranda@adacore.com>* exp_aggr.adb (Flatten): Convert to positional form aggregates whoselow bound is not known at compile time but they have no others choice.Done because in this case the bounds can be obtained directly from theaggregate.2011-08-03 Ed Falis <falis@adacore.com>* s-tasinf-vxworks.ads: Update comment to reflect 0 indexing of CPUson VxWorks SMP. Remove unusable constant ANY_CPU.2011-08-03 Emmanuel Briot <briot@adacore.com>* gnatcmd.adb, make.adb, prj-part.adb, prj-part.ads, prj-makr.adb,clean.adb, prj-nmsc.adb, prj-pars.adb, prj-conf.adb, prj-env.adb,prj-env.ads (Prj.Env.Initialize_Default_Project_Path,Prj.Env.Initialize_Empty): new subprograms(Get_Env, Find_Project): remove parameter Target_Name.2011-08-03 Gary Dismukes <dismukes@adacore.com>* sem_ch3.adb (Build_Derived_Record_Type): Test the Derive_Subps formalas a condition for the delayed call to Derived_Subprograms done for thecase of the rewriting of a derived type that constrains thediscriminants of its parent type.Avoids redundant subprogram derivations for private subtype derivations.2011-08-03 Javier Miranda <miranda@adacore.com>* exp_aggr.adb (Init_Hidden_Discriminants): New subprogram ofBuild_Record_Aggr_Code.(Build_Record_Aggr_Code): Add missing support to initialize hiddendiscriminants in extension aggregates.2011-08-03 Emmanuel Briot <briot@adacore.com>* prj-pp.adb (Print): also output project qualifiers, since inparticular "aggregate" is mandatory in an aggregate project.2011-08-03 Emmanuel Briot <briot@adacore.com>* prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb:(Debug_Output): new function.2011-08-03 Eric Botcazou <ebotcazou@adacore.com>* gnat_ugn.texi: Document -Wstack-usage.* gcc-interface/misc.c (enumerate_modes): Add guard for ghost FP modes.2011-08-03 Thomas Quinot <quinot@adacore.com>* sem_prag.adb Issue an error (not a warning) when a C++ type does nothave keyword LIMITED.2011-08-03 Yannick Moy <moy@adacore.com>* alfa.adb, alfa.ads, alfa_test.adb: New files.* ali.adb (Known_ALI_Lines): add 'C' lines (SCO) and 'F' lines (ALFA)(Scan_ALI): do not issue a fatal error if parsing known lines after Xrefsection (does not happen in compiler, only if code directly callsScan_ALI).* get_alfa.adb, get_alfa.ads: New files.* lib-writ.adb, lib-writ.ads (Write_ALI): output ALFA information ifneeded.* lib-xref-alfa.adb: New file.* lib-xref.adb, lib-xref.ads(Xref_Entry): redefine information needed in cross-references for ALFA.Push ALFA treatments in separated local package.(Enclosing_Subpragram_Or_Package): treat specially subprogramidentifiers. Return entity of package body instead of spec. ReturnEmpty for a scope with no location.(Generate_Reference): adapt to new components for ALFA information.Remove the need for D references on definitions.(Is_Local_Reference): moved to ALFA local package(Output_References): extract subfunction as Extract_Source_Name(Output_Local_References): remove procedure, replaced by filtering ofcross-references in package ALFA and printing in Put_ALFA.(Write_Entity_Name): remove procedure* lib.adb, lib.ads (Extract_Source_Name): extract here function toprint exact name of entity as it appears in source file(Unit_Ref_Table): make type public for use in Lib.Xref.ALFA* put_alfa.adb, put_alfa.ads: New files.* xref_lib.adb (Search_Xref): protect read of cross-references againstreading other sections of the ALI file, in gnatxref(Search): protect read of cross-references against reading othersections of the ALI file, in gnatfind.* gcc-interface/Make-lang.in: Update dependencies.2011-08-03 Thomas Quinot <quinot@adacore.com>* sem_ch3.adb: Minor reformatting.2011-08-03 Jose Ruiz <ruiz@adacore.com>* s-inmaop-vxworks.adb (Setup_Interrupt_Mask): Do nothing instead ofraising an exception.2011-08-03 Ed Schonberg <schonberg@adacore.com>* sem_res.adb (Set_String_Literal_Subtype): if index type is an integertype, always use 1 as the lower bound or string, even if lower bound ofcontext is not static, to handle properly null strings in a non-staticcontext.2011-08-03 Bob Duff <duff@adacore.com>* sem_prag.adb (Resolve_Aggregate): An array aggregate with 'others' isalways legal on the right-hand side of an assignment statement; thereis always an applicable index constraint in this case. Therefore, thecheck for Pkind = N_Assignment_Statement is now unconditional -- itdoesn't depend on whether Is_Constrained (Typ).2011-08-03 Robert Dewar <dewar@adacore.com>* exp_ch5.adb, sem_prag.adb, exp_ch4.adb: Minor reformatting.2011-08-03 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (Build_Itype_Reference): do not create an itype referencefor an itype created within a generic unit.2011-08-03 Eric Botcazou <ebotcazou@adacore.com>* gnat_ugn.texi (Switches for gcc): Make it clearer that -fno-inlinesuppresses all inlining.2011-08-03 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, sem_res.adb, exp_ch13.adb, exp_disp.adb,exp_aggr.adb: Minor reformatting.2011-08-03 Thomas Quinot <quinot@adacore.com>* exp_ch5.adb (Expand_N_Assignment_Statement): Do not force inlining oftagged assignment when discriminant checks are suppressed. This isuseless and extremely costly in terms of static stack usage.2011-08-03 Bob Duff <duff@adacore.com>* sem_prag.adb (Get_Base_Subprogram): Do not follow Alias for instancesof generics, because this leads to the wrong entity in the wrong scope,causing (e.g.) pragma Export_Procedure to get an error if the entity isan instance.(Process_Interface_Name): Follow Alias for instances of generics, tocorrect for the above change.2011-08-03 Ed Schonberg <schonberg@adacore.com>* exp_ch4.adb (Expand_N_Selected_Component): If the discriminant valueis an integer literal it is always safe to replace the reference. Inaddition, if the reference appears in the generated code for an objectdeclaration it is necessary to copy because otherwise the referencemight be to the uninitilized value of the discriminant of the objectitself.2011-08-03 Pascal Obry <obry@adacore.com>* adaint.c (__gnat_is_executable_file_attr): Fix Win32 circuitry when noACL used, in this case we want to check for ending .exe, not .exeanywhere in the path.2011-08-03 Sergey Rybin <rybin@adacore.com>* tree_io.ads (ASIS_Version_Number): Update because of the changes inthe tree structure (semantic decoration of references to recorddiscriminants).2011-08-03 Gary Dismukes <dismukes@adacore.com>* sem_aggr.adb (Analyze_Array_Aggregate): When checking the discretechoices of a named array aggregate, bail out when any choices aremarked as Errors_Posted.2011-08-03 Ed Schonberg <schonberg@adacore.com>* exp_ch13.adb (Expand_N_Freeze_Entity): cleanup determination of scopein which entity is frozen, to handle properly loop variables initerators.2011-08-03 Ed Schonberg <schonberg@adacore.com>* sem_res.adb (Set_String_Literal_Subtype): if the lower bound of thesubtype is not static, compute the upper bound using attributes, tohandle properly index types that are not integer types.2011-08-03 Bob Duff <duff@adacore.com>* gnat_rm.texi, gnat_ugn.texi: Fix some dangling URLs.Update copyright notice.2011-08-03 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (Build_Discriminant_Constraints): Only useOriginal_Discriminant if within an instance.* sem_ch4.adb (Analyze_Selected_Component): Ditto.2011-08-03 Thomas Quinot <quinot@adacore.com>* einfo.ads: Minor reformatting.2011-08-03 Ed Schonberg <schonberg@adacore.com>* exp_disp.adb (Check_Premature_Freezing): diagnose the presence of acomposite type with an unfrozen subcomponent, in the profile of aprimitive operation.2011-08-03 Robert Dewar <dewar@adacore.com>* sem_util.ads, exp_aggr.adb, exp_ch3.adb: Minor reformatting.2011-08-03 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (Analyze_Object_Declaration): if a constant object of anunconstrained type with discriminants is initialized with an aggregate,use the constrained subtype of the aggregate as the type of the object,because it is immutable, and this allows the back-end to generate nocode for the object declaration.2011-08-03 Robert Dewar <dewar@adacore.com>* exp_ch4.adb (Optimize_Length_Check): Fix bad handling of case wherecomparison operand is variable, and turns out to be zero or negative.2011-08-03 Javier Miranda <miranda@adacore.com>* exp_intr.adb(Expand_Dispatching_Constructor_Call): Disable expansion ofcode required for native targets. Done to avoid generatingreferences to unavailable runtime entities in VM targets.* exp_ch3.adb(Expand_N_Object_Declaration): Add missing support to handlethe explicit initialization of class-wide interface objects.Fix documentation.2011-08-03 Matthew Heaney <heaney@adacore.com>* a-cobove.adb (Merge): Move source onto target, instead of usingAssign.2011-08-03 Matthew Heaney <heaney@adacore.com>* a-cbdlli.adb (Splice): Move source items from first to last.2011-08-03 Yannick Moy <moy@adacore.com>* sem_util.ads: Add comment.2011-08-03 Javier Miranda <miranda@adacore.com>* exp_aggr.adb(Expand_Record_Aggregate): In VM targets disable the expansion intoassignments of aggregates whose type is not known at compile time.2011-08-03 Ed Schonberg <schonberg@adacore.com>* exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure forprotected entries and task entries, to build the proper renamingdeclaration for entry formals, used in debugging.* exp_ch2.adb (Expand_Entry_Parameter): handle task and entryparameters in the same way.2011-08-02 Robert Dewar <dewar@adacore.com>* a-direct.adb, sinfo.ads, exp_ch9.adb, scng.adb, sem_util.adb,sem_util.ads, restrict.ads, par-prag.adb: Minor reformatting and/orcode reorganization.2011-08-02 Robert Dewar <dewar@adacore.com>* debug.adb: Debug flag d.P to suppress length comparison optimization* exp_ch4.adb (Optimize_Length_Comparison): New routine to optimizecomparison of Length by comparing First/Last instead.2011-08-02 Matthew Heaney <heaney@adacore.com>* a-cobove.ads: Code clean up.2011-08-02 Vincent Celier <celier@adacore.com>* adaint.c (file_names_case_sensitive_cache): New static int.(__gnat_get_file_names_case_sensitive): Cache the return value infile_names_case_sensitive_cache at the first invocation, to avoidmultiple calls to getenv.2011-08-02 Bob Duff <duff@adacore.com>* sem_ch12.adb (Validate_Derived_Type_Instance): Implement AI05-0218-1.2011-08-02 Yannick Moy <moy@adacore.com>* sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem.ads,sem_util.adb, sem_util.ads, sem_res.adb, sem_ch2.adb, sem_ch4.adb,sem_ch6.adb, sem_ch11.adb: Add semantic flag In_Pre_Post_Expression toindicate that we are in a precondition or postcondition. This is used inMark_Non_ALFA_Subprogram (renaming of Mark_Non_ALFA_Subprogram_Body) todecide whether to flag the spec or body of the current subprogram asnot in ALFA.2011-08-02 Fabien Chouteau <chouteau@adacore.com>* impunit.adb: Add Ada.Execution_Time.Interrupts in the Ada2012 packagelist.* a-extiin.ads: New file.2011-08-02 Bob Duff <duff@adacore.com>* a-direct.adb (Rename): Implement AI05-0231-1. In particular, Renamenow raises Name_Error instead of Use_Error in certain cases. The otherparts of this AI were already implemented properly.2011-08-02 Vincent Celier <celier@adacore.com>* link.c: Only import "auto-host.h" when building the gnattools.2011-08-02 Yannick Moy <moy@adacore.com>* sem_util.adb: Inter-unit inlining does not work for a subprogramwhich calls a local subprogram, so extract subprogramfrom Mark_Non_ALFA_Subprogram_Body.2011-08-02 Javier Miranda <miranda@adacore.com>* exp_ch9.adb(Extract_Dispatching_Call): If the type of the dispatching object is anaccess type then return an explicit dereference in the Object out-modeparameter.2011-08-02 Gary Dismukes <dismukes@adacore.com>* sem_ch3.adb (Analyze_Subtype_Declaration): Generate rangecompatibility checks for all indexes of an array subtype, not just thefirst. Reset Has_Dynamic_Range_Check on the subtype before eachpotential check to ensure that Insert_Range_Checks will not elide anyof the dynamic checks.2011-08-02 Yannick Moy <moy@adacore.com>* par-prag.ad (Process_Restrictions_Or_Restriction_Warnings): recognizeSPARK restriction at parsing time.* scng.adb (Scan): Generate a token Tok_SPARK_Hide for a SPARK HIDEdirective only if the SPARK restriction is set for this unit.2011-08-02 Yannick Moy <moy@adacore.com>* sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb, sem_util.ads,sem_res.adb, sem_ch2.adb, sem_ch4.adb, sem_ch6.adb,sem_ch11.adb: Protect call to Current_Subprogram which might be costlywhen repeated. Rename Current_Subprogram_Is_Not_In_ALFA intoMark_Non_ALFA_Subprogram_Body.Split body of Mark_Non_ALFA_Subprogram_Body to get body small andinlined.2011-08-02 Yannick Moy <moy@adacore.com>* sem_res.adb: Protect calls to Matching_Static_Array_Bounds whichmight be costly.2011-08-02 Robert Dewar <dewar@adacore.com>* exp_ch9.adb, exp_sel.adb, restrict.ads, exp_disp.adb, erroutc.ads,exp_ch3.adb: Minor reformatting.2011-08-02 Emmanuel Briot <briot@adacore.com>* adaint.c (__gnat_locate_exec_on_path): only returns executablefiles, not any regular file.(__gnat_locate_file_with_predicate): new subprogram.2011-08-02 Yannick Moy <moy@adacore.com>* sinfo.adb, sinfo.ads: Restrict the use of flagsHas_Dynamic_Length_Check and Has_Dynamic_Range_Check to expressionnodes, plus N_Subtype_Declaration for the 2nd one.2011-08-02 Sergey Rybin <rybin@adacore.com>* gnat_rm.texi: Ramification of pragma Eliminate documentation- fix bugs in the description of Source_Trace;- get rid of UNIT_NAME;2011-08-02 Javier Miranda <miranda@adacore.com>* exp_ch9.adb(Build_Dispatching_Requeue): Adding support for VM targetssince we cannot directly reference the Tag entity.* exp_sel.adb (Build_K): Adding support for VM targets.(Build_S_Assignment): Adding support for VM targets.* exp_disp.adb(Default_Prim_Op_Position): In VM targets do not restrict availabilityof predefined interface primitives to compiling in Ada 2005 mode.(Is_Predefined_Interface_Primitive): In VM targets this service is notrestricted to compiling in Ada 2005 mode.(Make_VM_TSD): Generate code that declares and initializes the OSDrecord. Needed to support dispatching calls through synchronizedinterfaces.* exp_ch3.adb(Make_Predefined_Primitive_Specs): Enable generation of predefinedprimitives associated with synchronized interfaces.(Make_Predefined_Primitive_Bodies): Enable generation of predefinedprimitives associated with synchronized interfaces.2011-08-02 Yannick Moy <moy@adacore.com>* par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence ofstatements hidden in SPARK if preceded by the HIDE directive(Parse_Exception_Handlers): mark each exception handler in a sequence ofexception handlers as hidden in SPARK if preceded by the HIDE directive* par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARKif starting with the HIDE directive* par-ch7.adb (P_Package): mark a package body hidden in SPARK ifstarting with the HIDE directive; mark the declarations in a privatepart as hidden in SPARK if the private part starts with the HIDEdirective* restrict.adb, restrict.ads(Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK(Is_In_Hidden_Part_In_SPARK): new function which returns whether itsargument node belongs to a part which is hidden in SPARK(Check_SPARK_Restriction): do not issue violations on nodes in hiddenparts in SPARK; protect the possibly costly call toIs_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on* scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration* scng.adb (Accumulate_Token_Checksum_GNAT_6_3,Accumulate_Token_Checksum_GNAT_5_03): add case for new tokenTok_SPARK_Hide.(Scan): recognize special comment starting with '#' and followed bySPARK keyword "hide" as a HIDE directive.2011-08-02 Yannick Moy <moy@adacore.com>* types.ads, erroutc.ads: Minor reformatting.2011-08-02 Vincent Celier <celier@adacore.com>* link.c: Add response file support for cross platforms.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_aggr.adb (Resolve_Array_Aggregate): when copying the expressionin an association, set parent field of copy before partial analysis.* sem_res.adb (Resolve_Slice): create reference to itype only whenexpansion is enabled.2011-08-02 Yannick Moy <moy@adacore.com>* einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/setfor new flag denoting which subprogram bodies are in ALFA* restrict.adb, sem_ch7.adb: Update comment* sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,sem_ch9.adb, sem_res.adb: Add calls toCurrent_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.* sem_ch6.adb (Analyze_Function_Return): add calls toCurrent_Subprogram_Body_Is_Not_In_ALFA on return statement in themiddle of the body, and extended return.(Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argumentFalse when missing return.(Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFAto True for subprograms whose spec is in ALFA. Remove later on the flagon the entity used for a subprogram body when there exists a separatedeclaration.* sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA toFalse, otherwise do nothing.2011-08-02 Robert Dewar <dewar@adacore.com>* inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.2011-08-02 Yannick Moy <moy@adacore.com>* sem_ch4.ads: minor formatting.2011-08-02 Yannick Moy <moy@adacore.com>* sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,opt.ads: cleanup of SPARK mode2011-08-02 Yannick Moy <moy@adacore.com>* cstand.adb (Create_Standard): sets Is_In_ALFA component of standardtypes.* einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities(Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA* sem_ch3.adb(Analyze_Object_Declaration): set Is_In_ALFA flag for objects(Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes(Constrain_Integer): set Is_In_ALFA flag for integer subtypes(Enumeration_Type_Declaration): set Is_In_ALFA flag for enumerationtypes.(Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes withnon-static range.* sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag forfunctions whose return type is not in ALFA.(Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogramspecifications.(Process_Formals): unset Is_In_ALFA flag for subprograms if aparameter's type is not in ALFA.* stand.ads (Standard_Type_Is_In_ALFA): array defines which standardtypes are in ALFA.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch6 (Analyze_Expression_Function): treat the function asInline_Always, and introduce a subprogram declaration for it when it isnot a completion.* inline.adb (Add_Inlined_Body): recognize bodies that come fromexpression functions, so that the back-end can determine whether theycan in fact be inlined.* sem_util.adb (Is_Expression_Function): predicate to determine whethera function body comes from an expression function.2011-08-02 Gary Dismukes <dismukes@adacore.com>* sem_ch6.adb (Check_Conformance): Revise the check for nonconformingnull exclusions to test Can_Never_Be_Null on the anonymous access typesof the formals rather than testing the formals themselves. Exclude thischeck in cases where the Old_Formal is marked as a controlling formal,to avoid issuing spurious errors for bodies completing dispatchingoperations (due to the flag not getting set on controlling accessformals in body specs).(Find_Corresponding_Spec): When checking full and subtype conformance ofsubprogram bodies in instances, pass Designated and E in that order, forconsistency with the expected order of the formals (New_Id followed byOld_Id).2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch8.adb: Minor reformatting.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch8.adb (Analyze_Subprogram_Renaming): new procedureCheck_Class_Wide_Actual, to implement AI05-0071, on defaultedprimitive operations of class-wide actuals.2011-08-02 Javier Miranda <miranda@adacore.com>* exp_atag.ads, exp_atag.adb(Build_Common_Dispatching_Select_Statements): Remove argument Locsince its value is implicitly passed in argument Typ.* exp_disp.adb (Make_Disp_Conditional_Select_Body,Make_Disp_Timed_Select_Body): Remove Loc in calls to routineBuild_Common_Dispatching_Select_Statements.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.Minor reformatting.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_res.adb: Minor reformatting.* sem_prag.adb: Minor reformatting.2011-08-02 Javier Miranda <miranda@adacore.com>* exp_atag.adb, exp_atags.ads(Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptrby the tagged type Entity. Required to use this routine in the VMtargets since we do not have available the Tag entity in the VMplatforms.* exp_ch6.adb(Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if packageAda.Tags has not been previously loaded.* exp_ch7.adb(Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invokeBuild_VM_TSDs if package Ada.Tags has not been previously loaded.* sem_aux.adb(Enclosing_Dynamic_Scope): Add missing support to handle the fullview of enclosing scopes. Required to handle enclosing scopes thatare synchronized types whose full view is a task type.* exp_disp.adb(Build_VM_TSDs): Minor code improvement to avoid generating andanalyzing lists with empty nodes.(Make_Disp_Asynchronous_Select_Body): Add support for VM targets.(Make_Disp_Conditional_Select_Body): Add support for VM targets.(Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.(Make_Disp_Timed_Select_Body): Add support for VM targets.(Make_Select_Specific_Data_Table): Add support for VM targets.(Make_VM_TSD): Generate code to initialize the SSD structure ofthe TSD.2011-08-02 Yannick Moy <moy@adacore.com>* lib-writ.adb (Write_ALI): when ALFA mode is set, write localcross-references section in ALI.* lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub(enclosing subprogram), Slc (location of Sub) and Sun (unit number ofSub).(Enclosing_Subprogram_Or_Package): new function to return the enclosingsubprogram or package entity of a node(Is_Local_Reference_Type): new function returns True for referencesselected in local cross-references.(Lt): function extracted from Lt in Output_References(Write_Entity_Name): function extracted from Output_References(Generate_Definition): generate reference with type 'D' for definitionof objects (object declaration and parameter specification), withappropriate locations and units, for use in local cross-references.(Generate_Reference): update fields Sub, Slc and Sun. Keep newly createdreferences of type 'I' for initialization in object definition.(Output_References): move part of function Lt and procedureWrite_Entity_Name outside of the body. Ignore references of types 'D'and 'I' introduced for local cross-references.(Output_Local_References): new procedure to output the localcross-references sections.(Lref_Entity_Status): new array defining whether an entity is a local* sem_ch3.adb (Analyze_Object_Declaration): call Generate_Referencewith 'I' type when initialization expression is present.* get_scos.adb, get_scos.ads: Correct comments and typos2011-08-02 Javier Miranda <miranda@adacore.com>* exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs inthe JVM target.* exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs inthe JVM target.* exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has noTSD support.2011-08-02 Vincent Celier <celier@adacore.com>* prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line(No_Space_Img): New function(Find_Excluded_Sources): When reading from a file, record the file nameand the line number for each excluded source.(Mark_Excluded_Sources): When reporting an error, if the excludedsources were read from a file, include file name and line number inthe error message.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).2011-08-02 Robert Dewar <dewar@adacore.com>* exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting2011-08-02 Javier Miranda <miranda@adacore.com>* exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict thegeneration of TSDs to the DOTNET compiler.* exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict thegeneration of TSDs to the DOTNET compiler.2011-08-02 Javier Miranda <miranda@adacore.com>* exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Datarecord of all the tagged types declared inside library level packagedeclarations, library level package bodies or library level subprograms.* exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSDassociated with a given tagged type.(Build_VM_TSDs): New subprogram.* exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of maincompilation units that are subprograms.* exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of maincompilation units that are package bodies.(Expand_N_Package_Declaration): Generate TSDs of the main compilationunits that are a package declaration or a package instantiation.* exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor codereorganization to improve the error generated by the frontend when thefunction Ada.Tags.Secondary_Tag is not available.* rtsfind.ads (RE_Register_TSD): New runtime entity.* exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.2011-08-02 Javier Miranda <miranda@adacore.com>* exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.2011-08-02 Robert Dewar <dewar@adacore.com>* s-imenne.ads: Minor reformatting.2011-08-02 Robert Dewar <dewar@adacore.com>* a-stunau.ads: Add pragma Suppress_Initialization for Big_String* freeze.adb (Warn_Overlay): Don't warn if initialization suppressed* s-stalib.ads: Add pragma Suppress_Initialization for Big_String2011-08-02 Robert Dewar <dewar@adacore.com>* einfo.ads (Materialize_Entity): Document this is only for renamings* exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generaterequired debug information in the case where we transform the objectdeclaration into a renaming declaration.* exp_ch4.adb (Expand_Concatenate): Generate debug info for resultobject* exp_dbug.ads (Debug_Renaming_Declaration): Document setting ofMaterialize_Entity.2011-08-02 Robert Dewar <dewar@adacore.com>* einfo.ads, einfo.adb (Suppress_Initialization): ReplacesSuppress_Init_Procs.* exp_ch3.adb, exp_disp.adb, freeze.adb: UseSuppress_Initialization/Initialization_Suppressed.* gnat_rm.texi: New documentation for pragma Suppress_Initialization* sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function* sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed* sem_prag.adb: New processing for pragma Suppress_Initialization.2011-08-02 Robert Dewar <dewar@adacore.com>* gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:Minor reformatting.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures canonly have inheritable classwide pre/postconditions.2011-08-02 Javier Miranda <miranda@adacore.com>* a-tags.ads, a-tags.adb (Check_TSD): New subprogram.* rtsfind.ads (RE_Check_TSD): New runtime entity.* exp_disp.adb (Make_DT): Generate call to the new runtime routine thatchecks if the external tag of a type is the same as the external tagof some other declaration.2011-08-02 Thomas Quinot <quinot@adacore.com>* s-taskin.ads: Minor reformatting.2011-08-02 Emmanuel Briot <briot@adacore.com>* g-comlin.adb (Display_Help): swap the order in which it prints theshort help and the general usage.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properlythe aspect declarations and attach them to the generic copy forsubsequent analysis.(Analyze_Subprogram_Instantiation): copy explicitly the aspectdeclarations of the generic tree to the new subprogram declarations.* sem_attr.adb (Check_Precondition_Postcondition): recognizeconditions that apply to a subprogram instance.2011-08-02 Robert Dewar <dewar@adacore.com>* gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (Derived_Type_Declaration): When checking that a untaggedprivate type with a tagged full view is not derived in the immediatescope of the partial view, (RM 7.3 (7)) use the scope of the base type.2011-08-02 Robert Dewar <dewar@adacore.com>* exp_ch4.adb: Minor reformatting.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is anAda2012 iterator, the loop will be rewritten during expansion into awhile loop with a cursor and an element declaration. Do not analyze thebody in this case, because if the container is for indefinite types theactual subtype of the elements will only be determined when the cursordeclaration is analyzed.2011-08-02 Arnaud Charlet <charlet@adacore.com>* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignoresize/alignment related attributes in CodePeer_Mode.2011-08-02 Gary Dismukes <dismukes@adacore.com>* sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call toPrepend_Element, since this can result in the operation getting thewrong slot in the full type's dispatch table if the full type hasinherited operations. The incomplete type's operation will get addedto the proper position in the full type's primitiveslist later in Sem_Disp.Check_Operation_From_Incomplete_Type.(Process_Incomplete_Dependents): Add Is_Primitive test when checking fordispatching operations, since there are cases where nonprimitivesubprograms can get added to the list of incomplete dependents (suchas subprograms in nested packages).* sem_ch6.adb (Process_Formals): First, remove test for being in aprivate part when determining whether to add a primitive with aparameter of a tagged incomplete type to the Private_Dependents list.Such primitives can also occur in the visible part, and should not havebeen excluded from being private dependents.* sem_ch7.adb (Uninstall_Declarations): When checking the rule ofRM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependentslist of a Taft-amendment incomplete type is a primitive before issuingan error that the full type must appear in the same unit. There arecases where nonprimitives can be in the list (such as subprograms innested packages).* sem_disp.adb (Derives_From): Use correct condition for checking thata formal's type is derived from the type of the corresponding formal inthe parent subprogram (the condition was completely wrong). Addchecking that was missing for controlling result types being derivedfrom the result type of the parent operation.2011-08-02 Yannick Moy <moy@adacore.com>* errout.adb (First_Node): minor renaming* restrict.adb (Check_Formal_Restriction): put restriction warning onfirst node.2011-08-02 Yannick Moy <moy@adacore.com>* sem_res.adb (Resolve_Logical_Op): ensure N is a binary operatorbefore accessing operands.* sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes todecide whether an initialization expression respects SPARK rules, asthe plain node is the expanded one. This allows for more valid warningsto be issued.* gnat_rm.texi: Minor update.2011-08-02 Arnaud Charlet <charlet@adacore.com>* sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revertprevious change.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, sem_ch4.adb: Minor reformatting.2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the originalloop statements and the element renaming declaration with a block whenthe element type is controlled.2011-08-02 Yannick Moy <moy@adacore.com>* sinfo.ads: Minor formatting.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_aggr.adb (Add_Association): if the association has a box and noexpression, use the Sloc of the aggregate itself for the newassociation.* errout.adb (First_Node): Exclude nodes with no Sloc, and always usethe Original_Node.2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.When a container is provided via a function call, generate a renamingof the function result. This avoids the creation of a transient scopeand the premature finalization of the container.* exp_ch7.adb (Is_Container_Cursor): Removed.(Wrap_Transient_Declaration): Remove the supression of the finalizationof the list controller when the declaration denotes a container cursor,it is not needed.2011-08-02 Yannick Moy <moy@adacore.com>* restrict.adb (Check_Formal_Restriction): only issue a warning if thenode is from source, instead of the original node being from source.* sem_aggr.adb(Resolve_Array_Aggregate): refine the check for a static expression, torecognize also static ranges* sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,Array_Type_Declaration): postpone the test for the type being a subtypemark after the type has been resolved, so that component-selection andexpanded-name are discriminated.(Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schmto distinguish the case of an iteration scheme, so that an error isissed on a non-static range in SPARK except in an iteration scheme.* sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index withIn_Iter_Schm = True.* sem_ch6.adb (Analyze_Subprogram_Specification): refine the check foruser-defined operators so that they are allowed in renaming* sem_ch8.adb(Find_Selected_Component): refine the check for prefixing of operatorsso that they are allowed in renaming. Move the checks for restrictionson selector name after analysis discriminated betweencomponent-selection and expanded-name.* sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning onconcatenation argument of string type if it is static.* sem_util.adb, sem_util.ads(Check_Later_Vs_Basic_Declarations): add a new functionIs_Later_Declarative_Item to decice which declarations are allowed aslater items, in the two different modes Ada 83 and SPARK. In the SPARKmode, add that renamings are considered as later items.(Enclosing_Package): new function to return the enclosing package(Enter_Name): correct the rule for homonyms in SPARK(Is_SPARK_Initialization_Expr): default to returning True on nodes notfrom source (result of expansion) to avoid issuing wrong warnings.2011-08-02 Ed Schonberg <schonberg@adacore.com>* errout.adb: On anything but an expression First_Node returns itsargument.2011-08-02 Pascal Obry <obry@adacore.com>* prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.Set the associated loop as the related expression of internallygenerated cursors.* exp_ch7.adb (Is_Container_Cursor): New routine.(Wrap_Transient_Declaration): Supress the finalization of the listcontroller when the declaration denotes a container cursor.2011-08-02 Yannick Moy <moy@adacore.com>* opt.ads (SPARK_Mode): update comment, SPARK_Mode only set throughcommand line now.* par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that theexpression is a simple expression. This check cannot be performed inthe semantics, so just drop it.(P_Index_Or_Discriminant_Constraint): move check that the index ordiscriminant is a subtype mark to Analyze_Subtype_Declaration in thesemantics. Other cases were previously checked in the semantics.* par-ch4.adb (P_Name): move checks that a selector name is notcharacter literal or an operator symbol to Find_Selected_Component inthe semantics* par-ch5.adb (Parse_Decls_Begin_End): move check that basicdeclarations are not placed after later declarations in a separateprocedure in Sem_Util (possibly not the best choice?), to be used bothduring parsing, for Ada 83 mode, and during semantic analysis, forSPARK mode.* par-endh.adb (Check_End): move check that end label is not missingto Process_End_Label in the semantics* par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): removethe special case for SPARK restriction* par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End* restrict.adb, restrict.ads (Check_Formal_Restriction): add aparameter Force to issue the error message even on internal node (usedfor generated end label). Call Check_Restriction to check when an errormust be issued. In SPARK mode, issue an error message even if therestriction is not set.(Check_Restriction): new procedure with an additional out parameter toinform the caller that a message has been issued* sem_aggr.adb: Minor modification of message* sem_attr.adb (Analyze_Attribute): call Check_Formal_Restrictioninstead of issuing an error message directly* sem_ch3.adb (Analyze_Declarations): move here the check that basicdeclarations are not placed after later declarations, by callingCheck_Later_Vs_Basic_Declarations(Analyze_Subtype_Declaration): move here the check that an index ordiscriminant constraint must be a subtype mark. Change the check thata subtype of String must start at one so that it works on subtype marks.* sem_ch4.adb (Analyze_Call): move here the check that a namedassociation cannot follow a positional one in a call* sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restrictioninstead of issuing an error message directly* sem_ch8.adb (Find_Selected_Component): move here the check that aselector name is not a character literal or an operator symbol. Movehere the check that the prefix of an expanded name cannot be asubprogram or a loop statement.* sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): newprocedure called from parsing and semantics to check that basicdeclarations are not placed after later declarations(Process_End_Label): move here the check that end label is not missing2011-08-02 Arnaud Charlet <charlet@adacore.com>* sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enumrepresentation clause in codepeer mode, since it confuses CodePeer anddoes not bring useful info.2011-08-02 Ed Falis <falis@adacore.com>* init.c: initialize fp hw on MILS.2011-08-02 Ed Schonberg <schonberg@adacore.com>* errout.adb (First_Node): for bodies, return the node itself (smalloptimization). For other nodes, do not check source_unit if the nodecomes from Standard.2011-08-02 Robert Dewar <dewar@adacore.com>* exp_ch3.adb: Minor comment additions.* sem_ch13.adb: Minor reformatting.2011-08-02 Pascal Obry <obry@adacore.com>* make.adb, makeutl.adb: Removes some superfluous directory separator.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_attr.adb: Minor reformatting.2011-08-02 Robert Dewar <dewar@adacore.com>* einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value(Has_Default_Component_Value): Removed* einfo.ads Comment updates(Has_Default_Aspect): Replaces Has_Default_Value(Has_Default_Component_Value): Removed* exp_ch13.adb(Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects* exp_ch3.adb(Build_Array_Init_Proc): Handle Default_[Component_]Value aspects(Get_Simple_Init_Val): Handle Default_Value aspect(Needs_Simple_Initialization): Handle Default_Value aspect* exp_ch3.ads: Needs_Simple_Initialization* freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect* par-prag.adb (Pragma_Default[_Component]Value) Removed* sem_ch13.adb(Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects* sem_prag.adb (Pragma_Default[_Component]Value) Removed* snames.ads-tmpl (Pragma_Default[_Component]Value) Removed2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch5.adb (Analyze_Iterator_Specification): use base type to locatepackage containing iteration primitives.exp_ch5.adb (Expand_Iterator_Loop): ditto.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with"of", pre-analyze expression in case it is a function call withfinalization actions that must be placed ahead of the loop.* exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are presenton an Ada2012 iterator, insert them ahead of the rewritten loop.2011-08-02 Geert Bosch <bosch@adacore.com>* cstand.adb (Create_Float_Types): Only consider C's long double forLong_Long_Float, in addition to double.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:Minor reformatting.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_attr.adb: handle properly 'Result when it is a prefix of anindexed component.2011-08-02 Javier Miranda <miranda@adacore.com>* einfo.ads, einfo.adb(Original_Access_Type): Move this attribute to Node26 since there wasan undocumented use of Node21 in E_Access_Subprogram_Type entitieswhich causes conflicts and breaks the generation of the .NET compiler.(Interface_Name): Add missing documentation on JGNAT only uses ofthis attribute.2011-08-02 Geert Bosch <bosch@adacore.com>* cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist(Find_Back_End_Float_Type): Likewise(Create_Back_End_Float_Types): Likewise(Create_Float_Types): Likewise(Register_Float_Type): Likewise* sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead ofNlist and split out type selection in new local Find_Base_Type function.* sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead ofNlist* stand.ads (Predefined_Float_Types): Use Elist instead of Nlist2011-08-02 Robert Dewar <dewar@adacore.com>* inline.adb: Minor code reorganization (put Get_Code_Unit_Entity inalpha order).* opt.ads: Minor comment change.* sem_ch12.adb: Minor code reorganization.2011-08-02 Gary Dismukes <dismukes@adacore.com>* sem_ch3.adb (Complete_Private_Subtype): Don't append the privatesubtype's list of rep items to the list on the full subtype in the casewhere the lists are the same.2011-08-02 Geert Bosch <bosch@adacore.com>* switch-c.adb (Free): New deallocation procedure to avoid implicitlyusing the one from System.Strings, which also deallocates all strings.2011-08-02 Geert Bosch <bosch@adacore.com>* gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): Newfunction.* gcc-interface/Make-lang.in: Update dependencies.2011-08-02 Olivier Hainque <hainque@adacore.com>* gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the functionend_locus.2011-08-02 Javier Miranda <miranda@adacore.com>* sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formalsassociated with anonymous access to subprograms.2011-08-02 Geert Bosch <bosch@adacore.com>* opt.ads(Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.(Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.* prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads(Add_Symbol_Definition): Move to switch-c.adb(Process_Command_Line_Symbol_Definitions): Adjust references to above.* prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.(Add_Symbol_Definition): Move to switch-c.adb.* sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.* sem_warn.adb(Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):Move to warnsw.adb.* sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):Move to warnsw.adb.* switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.(Add_Symbol_Definition): Moved from Prepcomp.* switch-c.ads: Update copyright notice. Use String_List instead ofArgument_List, removing dependency on System.OS_Lib.2011-08-02 Yannick Moy <moy@adacore.com>* sem_ch3.adb (Analyze_Object_Declaration): issue an error in formalmode on initialization expression which does not respect SPARKrestrictions.* sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determinesif the tree referenced by its argument represents an initializationexpression in SPARK, suitable for initializing an object in an objectdeclaration.2011-08-02 Javier Miranda <miranda@adacore.com>* exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link theinternally generated access to subprogram with its associated protectedsubprogram type.* einfo.ads, einfo.adb (Original_Access_Type): New attribute.2011-08-02 Geert Bosch <bosch@adacore.com>* cstand.adb (Register_Float_Type): Print information about type toregister, if the Debug_Flag_Dot_B is set.* debug.adb (Debug_Flag_Dot_B): Document d.b debug option.* rtsfind.ads (RE_Max_Base_Digits): New run time entity.* sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarationswith a requested precision of more than Max_Digits digits and no morethan Max_Base_Digits digits, if a range specification is present and thePredefined_Float_Types list has a suitable type to derive from.* sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in thecase of type completion with pragma Import* sem_prag.adb(Process_Import_Predefined_Type): Processing to complete a typewith pragma Import. Currently supports floating point types only.(Set_Convention_From_Pragma): Do nothing without underlying type.(Process_Convention): Guard against absence of underlying type,which may happen when importing incomplete types.(Process_Import_Or_Interface): Handle case of importing predefinedtypes. Tweak error message.2011-08-02 Eric Botcazou <ebotcazou@adacore.com>* inline.adb (Add_Inlined_Body): Adjust check for library-level inlinedfunctions to previous change. Reorganize code slightly.2011-08-02 Geert Bosch <bosch@adacore.com>* back_end.ads (Register_Type_Proc): New call back procedure type forallowing the back end to provide information about available types.(Register_Back_End_Types): New procedure to register back end types.* back_end.adb (Register_Back_End_Types): Call the back end to enumerateavailable types.* cstand.adb (Back_End_Float_Types): New list for floating point typessupported by the back end.(Build_Float_Type): Add extra parameter for Float_Rep_Kind.(Copy_Float_Type): New procedure to make new copies of predefined types.(Register_Float_Type): New call back procedure to populate the BEFT list(Find_Back_End_Float_Type): New procedure to find a BEFT by name(Create_Back_End_Float_Types): New procedure to populate the BEFT list.(Create_Float_Types): New procedure to create entities for floatingpoint types predefined in Standard, and put these and any remainingBEFTs on the Predefined_Float_Types list.* stand.ads (Predefined_Float_Types): New list for predefined floatingpoint types that do not have declarations in package Standard.2011-08-02 Eric Botcazou <ebotcazou@adacore.com>* inline.adb (Get_Code_Unit_Entity): New local function. Returns theentity node for the unit containing the parameter.(Add_Inlined_Body): Use it to find the unit containing the subprogram.(Add_Inlined_Subprogram): Likewise.* gcc-interface/Make-lang.in: Update dependencies.2011-08-02 Thomas Quinot <quinot@adacore.com>* s-stusta.adb (Print): Make sure Pos is always initialized to asuitable value.2011-08-02 Geert Bosch <bosch@adacore.com>* a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.2011-08-02 Eric Botcazou <ebotcazou@adacore.com>* sem_type.adb (Covers): Move trivial case to the top and reuse thecomputed value of Base_Type.2011-08-02 Yannick Moy <moy@adacore.com>* restrict.adb (Check_Restriction): issue an error for any use ofclass-wide, even if the No_Dispatch restriction is not set.* sem_aggr.adb: Correct typos in comments and messages in formal mode* sem_ch3.adb (Process_Full_View): issue an error in formal mode is,when completing a private extension, the type named in the private partis not the same as that named in the visible part.* sem_res.adb (Resolve_Call): issue an error in formal mode on the useof an inherited primitive operations of a tagged type or type extensionthat returns the tagged type.* sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): newfunction which returns True for an implicit operation inherited by thederived type declaration for the argument type.(Is_SPARK_Object_Reference): move to appropriate place in alphabeticorder.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch5.adb (Pre_Analyze_Range): new procedure extracted fromProcess_Bounds, to perform analysis with expansion of a range or anexpression that is the iteration scheme for a loop.(Analyze_Iterator_Specification): If domain of iteration is given by afunction call with a controlled result, as is the case if call returnsa predefined container, ensure that finalization actions are properlygenerated.* par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.2011-08-02 Javier Miranda <miranda@adacore.com>* sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.* gcc-interface/Make-lang.in: Update dependencies.2011-08-02 Javier Miranda <miranda@adacore.com>* sem_util.ads, sem_util.adb (Is_Variable): Add a new formal todetermine if the analysis is performed using N or Original_Node (N).* exp_util.adb (Side_Effect_Free): Code cleanup since the newfunctionality of routine Is_Variable avoids code duplication.* checks.adb (Determine_Range): Handle temporaries generated byRemove_Side_Effects.2011-08-02 Javier Miranda <miranda@adacore.com>* exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis andexpansion of the condition. Required since the previous analysis wasdone with expansion disabled (see Resolve_Quantified_Expression) andhence checks were not inserted and record comparisons have not beenexpanded.2011-08-02 Ed Falis <falis@adacore.com>* s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:Update header.2011-08-02 Bob Duff <duff@adacore.com>* opt.ads: Minor comment fix.2011-08-02 Bob Duff <duff@adacore.com>* sem_ch12.adb (Analyze_Package_Instantiation,Analyze_Subprogram_Instantiation): Turn off style checking whileanalyzing an instance. Whatever style checks that apply to the genericunit should apply, so it makes no sense to apply them in an instance.This was causing trouble when compiling an instance of a runtimeunit that violates the -gnatyO switch.* stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing fromone of the two case statements, causing spurious errors.2011-08-02 Robert Dewar <dewar@adacore.com>* uname.adb: Minor reformatting.* gnatcmd.adb: Minor reformatting.* exp_attr.adb: Minor reformatting.2011-08-02 Ed Schonberg <schonberg@adacore.com>* exp_ch5.adb (Expand_N_Assignment_Statement): under restrictionNo_Dispatching_Calls, do not look for the Assign primitive, becausepredefined primitives are not created in this case.2011-08-02 Bob Duff <duff@adacore.com>* stylesw.ads: Minor comment fixes.2011-08-02 Robert Dewar <dewar@adacore.com>* freeze.adb (Add_To_Result): New procedure.2011-08-02 Jose Ruiz <ruiz@adacore.com>* exp_attr.adb (Find_Stream_Subprogram): When using a configurable runtime, if the specific run-time routines for handling streams of stringsare not available, use the default mechanism.2011-08-02 Arnaud Charlet <charlet@adacore.com>* s-regpat.ads: Fix typo.2011-08-02 Vincent Celier <celier@adacore.com>* prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config isnot null, call it to create the in memory config project file withoutparsing an existing default config project file.2011-08-02 Eric Botcazou <ebotcazou@adacore.com>* atree.adb (Allocate_Initialize_Node): Remove useless temporaries.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_elim.adb: an abstract subprogram does not need an eliminatepragma for its descendant to be eliminable.2011-08-02 Ed Falis <falis@adacore.com>* init.c: revert to handling before previous checkin for VxWorks* s-intman-vxworks.adb: delete unnecessary declarations related tousing Ada interrupt facilities for handling signals.Delete Initialize_Interrupts. Use __gnat_install_handler instead.* s-intman-vxworks.ads: Import __gnat_install_handler asInitialize_Interrupts.* s-taprop-vxworks.adb: Delete Signal_Mask.(Abort_Handler): change construction of mask to unblock exceptionsignals.2011-08-02 Jerome Guitton <guitton@adacore.com>* a-except-2005.adb (Raise_From_Signal_Handler): CallDebug_Raise_Exception before propagation starts.2011-08-02 Eric Botcazou <ebotcazou@adacore.com>* exp_ch6.adb (Expand_Call): Guard restriction checks with a callto Restriction_Check_Required.* sem_ch3.adb (Analyze_Object_Declaration): Likewise.* sem_res.adb (Resolve_Call): Likewise.* sem_attr.adb (Check_Stream_Attribute): Likewise.2011-08-02 Bob Duff <duff@adacore.com>* stylesw.ads: Update comment.* style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.* errout.ads: Remove obsolete comment.2011-08-02 Javier Miranda <miranda@adacore.com>* einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.(Set_Is_Safe_To_Reevaluate): new procedure.* sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that noassignment is allowed on safe-to-reevaluate variables.(Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate thetemporary created to remove side effects in expressions that usethe secondary stack as safe-to-reevaluate.* exp_util.adb (Side_Effect_Free): Add missing code to handle wellvariables that are not true constants.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,sem_res.adb, sem_ch6.adb: Minor reformatting.2011-08-02 Jerome Guitton <guitton@adacore.com>* a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Donot set Overridden_Operation if subprogram is an initializationprocedure.2011-08-02 Yannick Moy <moy@adacore.com>* par-ch6.adb: Correct obsolete name in comments* restrict.adb, restrict.ads (Check_Formal_Restriction): new functionwhich takes two message arguments (existing function takes one), withsecond message used for continuation.* sem_ch5.adb (Analyze_Block_Statement): in formal mode, only rejectblock statements that originate from a source block statement, notgenerated block statements* sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, forsymmetry with procedure case* sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): newfunction to issue an error in formal mode if a package specificationcontains more than one tagged type or type extension.* sem_res.adb (Resolve_Actuals): in formal mode, check that actualparameters matching formals of tagged types are objects (or ancestortype conversions of objects), not general expressions. Issue an erroron view conversions that are not involving ancestor conversion of anextended type.(Resolve_Type_Conversion): in formal mode, issue an error on theoperand of an ancestor type conversion which is not an object* sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of theprocedure so that it works also for actuals of function calls(Is_Actual_Tagged_Parameter): new function which determines if itsargument is an actual parameter of a formal of tagged type in asubprogram call(Is_SPARK_Object_Reference): new function which determines if the treereferenced by its argument represents an object in SPARK2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch3.adb: Minor reformattingMinor comment additionMinor error msg text change2011-08-02 Javier Miranda <miranda@adacore.com>* sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): Newfunction. Used to be more precise when we generate a variable plus oneassignment to remove side effects in the evaluation of the Boundexpressions.(Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodesof the bound expression to force its re-analysis and thus expand theassociated transient scope (if required). Code cleanup replacing theprevious code that declared the constant entity by an invocation toroutine Force_Evaluation which centralizes this work in the frontend.2011-08-02 Robert Dewar <dewar@adacore.com>* einfo.adb (Is_Base_Type): Improve efficiency by using a flag table(Base_Type): Now uses improved Is_Base_Type function* einfo.ads (Base_Type): Inline this function2011-08-02 Robert Dewar <dewar@adacore.com>* sem_prag.adb (Analyze_Pragma): Defend against infinite recursion(Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas2011-08-02 Arnaud Charlet <charlet@adacore.com>* gcc-interface/Make-lang.in: Update dependencies.* gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorkstargets.2011-08-02 Yannick Moy <moy@adacore.com>* par-ch3.adb (P_Delta_Constraint): issue an error in formal mode onnon-simple expression used in delta constraint(P_Index_Or_Discriminant_Constraint): issue an error in formal mode onindex constraint which is not a subtype mark* par.adb: With and use Restrict* sem_ch3.adb (Analyze_Component_Declaration): issue an error in formalmode on component type which is not a subtype mark and defaultexpression on component(Analyze_Subtype_Declaration): issue an error in formal mode on subtypeof string which does not have a lower index bound equal to 1(Array_Type_Declaration): issue an error in formal mode on index orcomponent type which is not a subtype mark, and on aliased keyword oncomponent(Derived_Type_Declaration): issue an error in formal mode on interface,limited or abstract type(Record_Type_Declaration): issue an error in formal mode on interface(Record_Type_Definition): issue an error in formal mode on tagged typesand type extensions not declared in the specification of a library unitpackage; on null non-tagged record; on variant part2011-08-02 Vincent Celier <celier@adacore.com>* prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dirnot declared for qualified library project when Library_Name is notdeclared, but Library_Dir is.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generatedpragmas (affects aspects [Component_]Default_Value(Check_Aspect_At_Freeze_Point): For Component_Default_Value, usecomponent type for the resolution2011-08-02 Eric Botcazou <ebotcazou@adacore.com>* einfo.adb (Base_Type): Tune implementation for speed.2011-08-02 Robert Dewar <dewar@adacore.com>* freeze.adb: Minor reformatting.2011-08-02 Thomas Quinot <quinot@adacore.com>* scos.ads: Update comments.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (Build_Derived_Type): Inherit the convention from thebase type, because the parent may be a subtype of a private type whoseconvention is established in a private part.2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the returnstatement in a block when the expansion of the return expression hascreated a finalization chain.* freeze.adb (Freeze_Expression): Alphabetize all choices associatedwith the parent node.Add N_Extended_Return_Statement to handle the case where a transientobject declaration appears in the Return_Object_Declarations list ofan extended return statement.2011-08-02 Matthew Gingell <gingell@adacore.com>* adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possiblyunused parameter 'name'.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_elim.adb (Set_Eliminated): If the overridden operation is aninherited operation, check whether its alias, which is the sourceoperastion that it renames, has been marked eliminated.2011-08-02 Javier Miranda <miranda@adacore.com>* exp_util.adb (Safe_Prefixed_Reference): Do not consider safe anin-mode parameter whose type is an access type since it can be used tomodify its designated object. Enforce code that handles as safe anaccess type that is not access-to-constant but it is the result of aprevious removal of side-effects.(Remove_Side_Effects): Minor code reorganization of cases which requireno action. Done to incorporate documentation on new cases uncoveredworking in this ticket: no action needed if this routine was invokedtoo early and the nodes are not yet decorated.* sem_res.adb (Resolve_Slice): Minor code cleanup replacling two callsto routine Remove_Side_Effects by calls to Force_Evaluation since theywere issued with actuals that are implicitly provided byForce_Evaluation.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, sem_res.adb: Minor reformatting.2011-08-02 Yannick Moy <moy@adacore.com>* sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedureto issue an error in formal mode on attribute not supported in this mode(Analyze_Attribute): issue errors on standard attributes not supportedin formal mode.* sem_ch3.adb (Modular_Type_Declaration): remove obsolete part ofcomment, and issue error in formal mode on modulus which is not a powerof 2.(Process_Range_Expr_In_Decl): issue error in formal mode on non-staticrange.* sem_ch8.adb (Find_Type): issue error in formal mode on 'Base insubtype mark.* sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unaryoperator on modular type (except 'not').2011-08-02 Robert Dewar <dewar@adacore.com>* gnat_rm.texi: Minor reformatting.2011-08-02 Arnaud Charlet <charlet@adacore.com>* s-osinte-linux.ads: Minor comment update and reformatting.* i-cexten.ads: Make this unit pure, as for its parent.Will allow its usage in more contexts if needed.2011-08-02 Robert Dewar <dewar@adacore.com>* s-utf_32.ads: Minor comment fix.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_res.adb (Resolve_Actuals): if the subprogram is a primitiveoperation of a tagged synchronized type, handle the case where thecontrolling argument is overloaded.2011-08-02 Yannick Moy <moy@adacore.com>* gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:Replace pragma SPARK_95 with pragma Restrictions (SPARK)* par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): setSPARK mode and formal verification mode on processing SPARK restriction* s-rident.ads (Restriction_Id): add SPARK restriction in those notrequiring consistency checking.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_res.adb: Minor reformatting.2011-08-02 Robert Dewar <dewar@adacore.com>* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,a-cforse.ads: Remove unneeded with of Ada.ContainersRemove commented out pragma Inline'sMove specifications of new subprograms to the actual specs2011-08-02 Yannick Moy <moy@adacore.com>* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,a-cforse.ads: Update comments.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_attr.adb: add attribute name when 'Result has the wrong prefix.2011-08-02 Robert Dewar <dewar@adacore.com>* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,a-cforse.ads, a-cofove.ads: Minor reformatting.2011-08-02 Claire Dross <dross@adacore.com>* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,a-cofove.ads: Add comments.2011-08-02 Yannick Moy <moy@adacore.com>* gnat_rm.texi: Document formal containers.2011-08-02 Emmanuel Briot <briot@adacore.com>* g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when thereare empty sections.2011-08-02 Robert Dewar <dewar@adacore.com>* mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minorreformatting.2011-08-02 Robert Dewar <dewar@adacore.com>* aspects.adb: New aspects Default_Value and Default_Component_ValueNew format of Aspect_Names table checks for omitted entries* aspects.ads: Remove mention of Aspect_Cancel and add documentation onhandling of boolean aspects for derived types.New aspects Default_Value and Default_Component_ValueNew format of Aspect_Names table checks for omitted entries* einfo.ads, einfo.adb (Has_Default_Component_Value): New flag(Has_Default_Value): New flag(Has_Default_Component_Value): New flag(Has_Default_Value): New flag* par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Namestable.* par-prag.adb: New pragmas Default_Value and Default_Component_Value* sem_ch13.adb (Analyze_Aspect_Specifications): New aspectsDefault_Value and Default_Component_Value* sem_prag.adb: New pragmas Default_Value and Default_Component_ValueNew aspects Default_Value and Default_Component_Value* snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value* sprint.adb: Print N_Aspect_Specification node when called from gdb2011-08-02 Vincent Celier <celier@adacore.com>* prj-nmsc.adb (Check_Library_Attributes): For virtual library project,inherit library kind.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.Minor reformatting.2011-08-02 Robert Dewar <dewar@adacore.com>* i-cstrin.ads: Updates to make Interfaces.C.Strings match RM2011-08-02 Yannick Moy <moy@adacore.com>* sem_aggr.adb (Resolve_Aggregate): Fix thinko.2011-08-02 Robert Dewar <dewar@adacore.com>* impunit.adb: Add comment.2011-08-02 Yannick Moy <moy@adacore.com>* sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checksqualification of aggregates in formal mode(Is_Top_Level_Aggregate): returns True for an aggregate not contained inanother aggregate(Resolve_Aggregate): complete the test that an aggregate is adequatelyqualified in formal mode2011-08-02 Pascal Obry <obry@adacore.com>* make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.* mlib-prj.adb: Supress warning when compiling binder generated file.(Build_Library): Supress all warnings when compiling the bindergenerated file.2011-08-02 Yannick Moy <moy@adacore.com>* errout.adb, errout.ads (Check_Formal_Restriction): move procedurefrom here...* restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here* sem_aggr.adb, sem_ch5.adb, sem_util.adb:Add with/use clauses to make Check_Formal_Restriction visible2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch12.adb (Check_Generic_Actuals): handle properly actualin-parameters when type of the generic formal is private in the genericspec and non-private in the body.2011-08-02 Claire Dross <dross@adacore.com>* a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,a-cofove.adb, a-cofove.ads: New files implementing formal containers.* impunit.adb, Makefile.rtl: Take new files into account.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.2011-08-02 Yannick Moy <moy@adacore.com>* sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check informal mode* sem_util.adb (Matching_Static_Array_Bounds): proper detection ofmatching static array bounds, taking into account the special case ofstring literals* sem_ch3.adb: Typo in comment.2011-08-02 Yannick Moy <moy@adacore.com>* errout.adb, errout.ads (Check_Formal_Restriction): new procedurewhich issues an error in formal mode if its argument node is originallyfrom source* sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a typehas a discriminant specification so that it does not include the caseof derived types(Derived_Type_Declaration): move here the test that a derived type has adiscriminant specification* sem_aggr.adb (Resolve_Record_Aggregate): test the presence of thefirst element of a component association before accessing its choices(presence of component association is not enough)* exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogramdeclaration is a library item before accessing the next element in alist, as library items are not member of lists* sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: useCheck_Formal_Restriction whenever possible.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itypereference when needed.2011-08-02 Bob Duff <duff@adacore.com>* gnat_ugn.texi: Fix typo.2011-08-02 Vincent Celier <celier@adacore.com>* make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension ofarchive file name. Do not use the full path name of archives for OpenVMS.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch12.adb, sem_ch11.adb: New calling sequence forAnalyze_Aspect_Specifications* sem_ch13.adb(Analyze_Aspect_Specifications): New handling for boolean aspects* sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence* sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New callingsequence for Analyze_Aspect_Specifications* sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely* sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used2011-08-02 Robert Dewar <dewar@adacore.com>* freeze.adb (Freeze_Entity): Remove handling of delayed booleanaspects, since these no longer exist.2011-08-02 Robert Dewar <dewar@adacore.com>* par-ch13.adb (Aspect_Specifications_Present): Always return false onsemicolon, do not try to see if there are aspects following it.* par-ch3.adb (P_Declarative_Items): Better message for unexpectedaspect spec.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch8.adb, aspects.ads: Minor reformatting.2011-08-02 Eric Botcazou <ebotcazou@adacore.com>* sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.* sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedureextracted from...(Analyze_Aspect_Specifications): ...here. Call above procedure.2011-08-02 Yannick Moy <moy@adacore.com>* exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formalmode on subprogram declaration outside of package specification, unlessit is followed by a pragma Import* sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,Access_Type_Declaration): issue error in formal mode on access type(Analyze_Incomplete_Type_Decl): issue error in formal mode onincomplete type(Analyze_Object_Declaration): issue error in formal mode on objectdeclaration which does not respect SPARK restrictions(Analyze_Subtype_Declaration): issue error in formal mode on subtypedeclaration which does not respect SPARK restrictions(Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issueerror in formal mode on digits or delta constraint(Decimal_Fixed_Point_Type_Declaration): issue error in formal mode ondecimal fixed point type(Derived_Type_Declaration): issue error in formal mode on derived typeother than type extensions of tagged record types* sem_ch6.adb (Process_Formals): remove check in formal mode, redundantwith check on access definition* sem_ch9.adb (Analyze_Protected_Definition): issue error in formalmode on protected definition.(Analyze_Task_Definition): issue error in formal mode on task definition2011-08-02 Robert Dewar <dewar@adacore.com>* make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.2011-08-02 Javier Miranda <miranda@adacore.com>* sem_ch6.adb (Can_Override_Operator): New function.(Verify_Overriding_Indicator): Add missing code to check overridingindicator in operators. Fixes regression.(Check_Overriding_Indicator): Minor reformating after replacing thecode that evaluates if the subprogram can override an operator byinvocations to the above new function.* einfo.adb(Write_Field26_Name): Add missing code to ensure that, followingthe documentation in einfo.ads, this field is not shown as attribute"Static_Initialization" on non-dispatching functions.2011-08-02 Jose Ruiz <ruiz@adacore.com>* sem_res.adb (Resolve_Call): A call toAda.Real_Time.Timing_Events.Set_Handler violates restrictionNo_Relative_Delay (AI-0211) only when it sets a relative timing event,i.e., when the second parameter is of type Time_Span.2011-08-02 Vincent Celier <celier@adacore.com>* make.adb (Gnatmake): use <library dir>/lib<library name>.a to linkwith an archive instead of -L<library dir> -l<library name>.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,mark the base types In_Use in addition to making the operationsuse_visible.2011-08-02 Ed Falis <falis@adacore.com>* init.c: add and setup __gnat_signal_mask for the exception signals* s-inmaop-vxworks.adb: new file.* s-intman-vxworks.adb: remove unnecessary initializations andsimplify remaining* s-intman-vxworks.ads: remove unnecessary variable* s-taprop-vxworks.adb: simplify signal initialization2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch8.adb: Minor code reorganization, comment updates.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util* sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Movedhere from Sem_Res.(Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression(Matching_Static_Array_Bounds): Moved here from Sem_Res2011-08-02 Ed Schonberg <schonberg@adacore.com>* atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.* par_ch8.adb (P_Use_Type): initialize Used_Operations for node.* sinfo.ads, sinfo.adb (Used_Operations): new attribute ofuse_type_clauses, to handle more efficiently use_type and use_all_typeconstructs.* sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle theAda2012 Use_All_Type clause.(Use_Class_Wide_Operations): new procedure.2011-08-02 Robert Dewar <dewar@adacore.com>* exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterizedexpression to expression function.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch4.adb: transform simple Ada2012 membership into equality onlyif types are compatible.2011-08-02 Yannick Moy <moy@adacore.com>* sem_res.adb (Matching_Static_Array_Bounds): new function whichreturns True if its argument array types have same dimension and samestatic bounds at each index.(Resolve_Actuals): issue an error in formal mode on actuals passed asOUT or IN OUT paramaters which are not view conversions in SPARK.(Resolve_Arithmetic_Op): issue an error in formal mode onmultiplication or division with operands of fixed point types which arenot qualified or explicitly converted.(Resolve_Comparison_Op): issue an error in formal mode on comparisons ofBoolean or array type (except String) operands.(Resolve_Equality_Op): issue an error in formal mode on equalityoperators for array types other than String with non-matching staticbounds.(Resolve_Logical_Op): issue an error in formal mode on logical operatorsfor array types with non-matching static bounds. Factorize the code inMatching_Static_Array_Bounds.(Resolve_Qualified_Expression): issue an error in formal mode onqualified expressions for array types with non-matching static bounds.(Resolve_Type_Conversion): issue an error in formal mode on typeconversion for array types with non-matching static bounds2011-08-02 Robert Dewar <dewar@adacore.com>* par-ch10.adb: Minor code reorganization (use Nkind_In).2011-08-02 Ed Schonberg <schonberg@adacore.com>* par-ch9.adb: save location of entry for proper error message.2011-08-02 Javier Miranda <miranda@adacore.com>* sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal(Use_Full_View) which permits this routine to climb through theancestors using the full-view of private parents.* sem_util.adb (Collect_Interfaces_Info, Implements_Interface): SetUse_Full_View to true in calls to Is_Ancestor.* sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View totrue in call to Is_Ancestor.* exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): SetUse_Full_View to true in call to Is_Ancestor.* exp_ch7.adb (Controller_Component): Set Use_Full_View to true incall to Is_Ancestor.* exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): SetUse_Full_View to true in calls to Is_Ancestor.* exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,Make_Select_Specific_Data_Table, Register_Primitive,Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.* exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_Viewto true in call to Is_Ancestor.* exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): SetUse_Full_View to true in calls to Is_Ancestor.* exp_cg.adb(Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.(Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.2011-08-02 Robert Dewar <dewar@adacore.com>* gnat_rm.texi: Minor reformatting.* sem_prag.adb: Minor reformatting.2011-08-02 Tristan Gingold <gingold@adacore.com>* vms_data.ads: Add VMS qualifier for -gnateP.2011-08-02 Robert Dewar <dewar@adacore.com>* par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty* par-ch7.adb (P_Package): Proper placement of aspects for packagedecl/instantiation.* par-endh.adb (Check_End): Ad Is_Sloc parameter(End_Statements): Add Is_Sloc parameterr* par.adb (P_Aspect_Specification): New meaning of Decl = Empty(Check_End): Ad Is_Sloc parameter(End_Statements): Add Is_Sloc parameterr2011-08-02 Vincent Celier <celier@adacore.com>* ug_words: Add VMS qualifier equivalent to -gnateP:/SYMBOL_PREPROCESSING.2011-08-02 Jose Ruiz <ruiz@adacore.com>* gnat-style.texi: For hexadecimal numeric literals the typicalgrouping of digits is 4 to represent 2 bytes.A procedure spec which is split into several lines is indented twocharacters.2011-08-02 Yannick Moy <moy@adacore.com>* exp_aggr.adb (Is_Others_Aggregate): move function to other unit.* sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here(Resolve_Aggregate): issue errors in formal modes when aggregate is notproperly qualified(Resolve_Array_Aggregate): issue errors in formal modes on non-staticchoice in array aggregate(Resolve_Extension_Aggregate): issue errors in formal modes on subtypemark as ancestor(Resolve_Record_Aggregate): issue errors in formal modes on mixedpositional and named aggregate for record, or others in recordaggregate, or multiple choice in record aggregate* sem_res.adb (Resolve_Logical_Op): issue errors in formal mode whenarray operands to logical operations AND, OR and XOR do not have thesame static lower and higher bounds* sem_ch5.adb, sinfo.ads: Correct typos in comments2011-08-01 Robert Dewar <dewar@adacore.com>* sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):Replaces Last_Source_Node_In_Sequence.* err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K* errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but storesparens and blank in string (this was inconsistently implemented).* errout.ads(Set_Error_Msg_Lang): Takes arg with no parens, but stores parens andblank in string (this was inconsistently implemented).* gnat1drv.adb(Set_Global_Switches): Set formal mode switches appropriately* opt.ads, opt.adb: Formal mode is now global switches, more consistent* par-prag.adb(Analyze_Pragma, case SPARK_95): Set opt switches appropriately andcall Set_Error_Msg_Lang to set "spark" as language name.* par.adb: Remove unnecessary call to set formal language for errout* sem_prag.adb (P_Pragma, case SPARK_95): Set opt switchesappropriately and call Set_Error_Msg_Lang to set "spark" as languagename.* sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure andcalls to it, moved after resolution so that types are known* sem_res.adb (Resolve_Op_Concat): issue an error in formal mode ifresult of concatenation is not of type String(Resolve_Op_Concat_Arg): issue an error in formal mode if an operand ofconcatenation is not properly restricted* gnat_rm.texi: Add doc on pragma Spark_95.* gcc-interface/Makefile.in: Remove obsolete target pairs forInterfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.* gcc-interface/Make-lang.in: Update dependencies.2011-08-01 Javier Miranda <miranda@adacore.com>* sem_disp.adb (Override_Dispatching_Operation): Enforce strictness ofcondition that detects if the overridden operation must replace anexisting entity.2011-08-01 Javier Miranda <miranda@adacore.com>* exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expandedcode declarations inserted by Insert_Actions in each alternative of theN_Case_Expression node.2011-08-01 Robert Dewar <dewar@adacore.com>* sem_ch6.adb: Minor code reorganization.* sem_util.adb: Minor reformatting.2011-08-01 Pascal Obry <obry@adacore.com>* prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.* gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.2011-08-01 Yannick Moy <moy@adacore.com>* par-ch4.adb (P_Name): issue a syntax error in SPARK mode on characterliteral or operator symbol which is prefixed* sem_attr.adb (Analyze_Access_Attribute): issue an error in formalmode on access attributes.* sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to checkthat concatenation operands are properly restricted in formal mode(Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedureAnalyze_Concatenation_Operand. Issue an error in formal mode if theresult of the concatenation has a type different from String.(Analyze_Conditional_Expression, Analyze_Explicit_Dereference,Analyze_Quantified_Expression, Analyze_Slice,Analyze_Null): issue an error in formal mode on unsupported constructs* sem_ch5.adb(Analyze_Block_Statement): only issue error on source block statement* sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): newfunction which returns the last node in a list of nodes for whichComes_From_Source returns True, if any* sem_ch6.adb (Check_Missing_Return): minor refactoring to useLast_Source_Node_In_Sequence* sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formalmode on unsupported constructs* sem_ch9.adb Do not return after issuing error in formal mode, as therest of the actions may be needed later on since the error is marked asnot serious.* sinfo.ads: Typos in comments.2011-08-01 Pascal Obry <obry@adacore.com>* projects.texi: Minor editing.2011-08-01 Yannick Moy <moy@adacore.com>* err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables forinsertion character ~~* errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures(Set_Error_Msg_Lang): new procedure which fixes the language for usewith insertion character ~~(Set_Msg_Text): treat insertion character ~~* par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls toFormal_Error_Msg_... procedures by equivalent Error_Msg_...procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Makeerrors related to the formal language restriction not serious(insertion character |).* par.adb (Par): set formal language for error messages if needed* sem_ch6.adb (Check_Missing_Return): take into account possiblegenerated statements at the end of the function* snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable andenumeration value to define a new pragma SPARK_95* opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,SPARK_Version): new type and variables to store the SPARK version(none by default).(SPARK_Mode): return True when SPARK_Version is set* par-prag.adb: Correct indentation(Prag): take Pragma_SPARK_95 into account* sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95into account.2011-08-01 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting2011-08-01 Pascal Obry <obry@adacore.com>* prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. PassTarget_Name to Get_Path call.(Parse_Single_Project): Likewise.(Post_Parse_Context_Clause): Likewise.* prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.Call Initialise_Project_Path with the proper Target_Name.(Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnatsearch path.(Get_Path): Add Target_Name parameter. Call Initialise_Project_Pathwith the proper Target_Name.* prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name toPart.Parse routine.(Parse_Project_And_Apply_Config): Likewise.* prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.This is fine as this part of the code is supporting only nativecompilation.* prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. Thisis fine as this part of the code is supporting only native compilation.2011-08-01 Yannick Moy <moy@adacore.com>* sem_util.adb (Enter_Name): issue error in formal mode on declarationof homonym, unless the homonym is one of the cases allowed in SPARK* par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode forpackage declaration occurring after a body.2011-08-01 Robert Dewar <dewar@adacore.com>* checks.adb, exp_ch4.adb: Minor reformatting.2011-08-01 Javier Miranda <miranda@adacore.com>* einfo.ads (Access_Disp_Table): Fix documentation.(Dispatch_Table_Wrappers): Fix documentation.2011-08-01 Pascal Obry <obry@adacore.com>* prj-env.adb, prj-env.ads: Minor reformatting.2011-08-01 Yannick Moy <moy@adacore.com>* sem_util.ads, sem_util.adb, par.adb, par_util.adb(Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): moveprocedures out of these packages.* errout.ads, errout.adb(Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): moveprocedures in of this package(Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE* par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK modeon misplaced later vs initial declarations, like in Ada 83* sem_attr.adb (Processing for Analyze_Attribute): issue error informal mode on attribute of private type whose full type declarationis not visible* sem_ch3.adb (Analyze_Declarations): issue error in formal mode on apackage declaration inside a package specification(Analyze_Full_Type_Declaration): issue error in formal mode oncontrolled type or discriminant type* sem_ch6.adb (Analyze_Subprogram_Specification): only issue error onuser-defined operator means that it should come from the source(New_Overloaded_Entity): issue error in formal mode on overloadedentity.* sem_ch6.ads, sem_ch13.ads: typos in comments.2011-08-01 Thomas Quinot <quinot@adacore.com>* atree.adb: Minor reformatting.* checks.adb: Minor reformatting.2011-08-01 Vincent Celier <celier@adacore.com>* s-parame-vms-ia64.ads: Fix typo in commentMinor reformatting* s-parame-vms-restrict.ads: Removed, unused.2011-08-01 Javier Miranda <miranda@adacore.com>* exp_ch3.adb(Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.* sem_ch3.adb(Constrain_Index): Remove side effects in the evaluation of the bounds.* sem_ch3.ads, sem_ch3.adb(Is_Constant_Bound): New extended version of the subprogram that waspreviously located inside function Exp_Ch3.Is_Variable_Size_Array.Moved here since it is shared by routines of sem_ch3 and exp_ch3.* sem_aux.ads (Constant_Value): Fix typo in comment.* checks.adb (Generate_Index_Checks): New implementation which, forarray objects with constant bounds, generates the runtime checkreferencing the bounds of the array type. For other cases this routineprovides its previous behavior obtaining such values from the arrayobject.* sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with itsparent type.* atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy sincewe cannot have semantic interpretations of the new node.2011-08-01 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (Fully_Conformant_Expressions): handle quantifiedexpressions.2011-08-01 Arnaud Charlet <charlet@adacore.com>* sem_ch8.adb: Minor code editing.* s-vxwext.adb: Remove trailing space.* freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header forconsistency with other files.2011-08-01 Thomas Quinot <quinot@adacore.com>* s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.2011-08-01 Ed Schonberg <schonberg@adacore.com>* par-ch10.adb: reject parameterized expressions as compilation unit.* sem_ch4.adb: handle properly conditional expression with overloadedthen_clause and no else_clause.2011-08-01 Tristan Gingold <gingold@adacore.com>* s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Addresslike done by System.Aux_DEC.* env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.2011-08-01 Yannick Moy <moy@adacore.com>* par-endh.adb (Check_End): issue a syntax error in SPARK mode formissing label at end of declaration (subprogram or package)* par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixingof positional and named parameter association* par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper onError_Msg_SP which adds a prefix to the error message giving the nameof the formal language analyzed* sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode foraccess result type in subprogram, unconstrained array as result type,.(Analyze_Subprogram_Declaration): issue an error in formal mode for nullprocedure* sem_ch8.adb: Code clean up.2011-08-01 Javier Miranda <miranda@adacore.com>* sem_ch7.adb (Uninstall_Declarations): Remove useless code.* einfo.ads (Access_Disp_Table): Fix documentation.(Dispatch_Table_Wrappers): Fix documentation.* einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertionsto enforce the documentation of this attribute.(Set_Is_Interface): Cleanup the assertion.* exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locatethe Underlying_Type entity before reading attribute Access_Disp_Table.* exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):Locate the Underlying_Type before reading attribute Access_Disp_Table.* exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locatethe Underlying_Type entity before reading attribute Access_Disp_Table.* exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):Locate the Underlying_Type entity before reading attributeAccess_Disp_Table.2011-08-01 Ed Schonberg <schonberg@adacore.com>* s-poosiz.ads: Additional overriding indicators.2011-08-01 Yannick Moy <moy@adacore.com>* sem_ch5.adb (Analyze_Exit_Statement): add return after error informal mode.(Analyze_Iteration_Scheme): issue error in formal mode when loopparameter specification does not include a subtype mark.* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error informal mode on abstract subprogram.(Analyze_Subprogram_Specification): issue error in formal mode onuser-defined operator.(Process_Formals): issue error in formal mode on access parameter anddefault expression.* sem_ch9.adb (Analyze_Abort_Statement,Analyze_Accept_Statement, Analyze_Asynchronous_Select,Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,Analyze_Delay_Until, Analyze_Entry_Call_Alternative,Analyze_Requeue, Analyze_Selective_Accept,Analyze_Timed_Entry_Call): issue error in formal mode on such constructs* sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):issue error in formal mode on user-defined raise statement.2011-08-01 Thomas Quinot <quinot@adacore.com>* sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about adeclaration being hidden when overriding an implicit inheritedsubprogram.* par-ch10.adb (P_Compilation_Unit): In syntax check only mode(-gnats), do not complain about a source file that contains only apragma No_Body.2011-08-01 Ed Schonberg <schonberg@adacore.com>* sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loopvariable if already set.2011-08-01 Arnaud Charlet <charlet@adacore.com>* g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,s-osinte-mingw.ads: Update to GPLv3 run-time license.Use GNAT instead of GNARL.2011-08-01 Bob Duff <duff@adacore.com>* a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minorreformatting.2011-08-01 Yannick Moy <moy@adacore.com>* debug.adb (d.D) reverve flag for the SPARK mode(d.E) reverve flag for SPARK generation mode(d.F) reverve flag for Why generation mode* opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): Newfunctions which return True when the corresponding modes are set(Formal_Language): return "spark" or "alfa" when in formal verificationmode.* sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper onError_Msg to prefix the error message with a tag giving the formallanguage(Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the errormessage with a tag giving the formal language* sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode onblock statement(Analyze_Case_Statement): issue error in formal mode on case statementwith a single "others" case alternative(Analyze_Exit_Statement): issue errors in formal mode on exitstatements which do not respect SPARK restrictions(Analyze_Goto_Statement): issue error in formal mode on goto statement(Check_Unreachable_Code): always issue an error (not a warning) informal mode on unreachable code (concerns both code after an infiniteloop and after an unconditional jump, both not allowed in SPARK)* sem_ch6.adb (Analyze_Return_Statement): add call toSet_Return_Present for a procedure containing a return statement(already done for functions in Analyze_Function_Return)(Analyze_Function_Return): issue error in formal mode on extendedreturn or if return is not last statement in function(Check_Missing_Return): issue error in formal mode if function doesnot end with return or if procedure contains a return* sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): newfunction to detect if there is an inner scope of its parameter S whichis a loop.2011-08-01 Thomas Quinot <quinot@adacore.com>* sem_ch6.ads: Minor reformatting.2011-08-01 Javier Miranda <miranda@adacore.com>* sem_util.adb (Abstract_Interface_List): Complete condition whenprocessing private type declarations to avoid reading unavailableattribute.(Is_Synchronized_Tagged_Type): Complete condition when processingprivate extension declaration nodes to avoid reading unavailableattribute.2011-08-01 Thomas Quinot <quinot@adacore.com>* sem_ch3.adb: Minor reformatting.2011-08-01 Thomas Quinot <quinot@adacore.com>* s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packagesfor VMS, instead parametrize the common implementation withSystem.Parameters declarations.2011-08-01 Eric Botcazou <ebotcazou@adacore.com>* gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.2011-08-01 Tristan Gingold <gingold@adacore.com>* seh_init.c: Fix SEH handler installation on win64.2011-08-01 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, preventdouble analysis of an anonymous access to subprogram, because it canlead to improper sharing of profiles and a back-end crash.2011-08-01 Robert Dewar <dewar@adacore.com>* make.adb, sem_ch4.adb: Minor reformatting.* gcc-interface/Make-lang.in: Update dependencies.* sem_util.adb, exp_ch5.adb: Minor reformatting.2011-08-01 Arnaud Charlet <charlet@adacore.com>* gnat_rm.texi: Fix definition of Long_Integer.2011-08-01 Ed Schonberg <schonberg@adacore.com>* exp_aggr.adb: check limit size of static aggregate unconditionally,to prevent storage exhaustion.* exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope beingfinalized is a function body, insert the cleanup code before the finalreturn statement, to prevent spurious warnings.* s-pooglo.ads: add overriding indicator.2011-08-01 Ed Schonberg <schonberg@adacore.com>* sem_ch4.adb (Operator_Check): improve error message when both awith_clause and a use_clause are needed to make operator usage legal.* sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate todetermine whether a compilation unit is visible within an other,either through a with_clause in the current unit, or a with_clause inits library unit or one one of its parents.2011-08-01 Ed Schonberg <schonberg@adacore.com>* exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iteratorover an arbitrary expression of an array or container type.* lib-xref.adb: clarify comment.2011-08-01 Bob Duff <duff@adacore.com>* einfo.ads: Minor reformatting.* debug.adb: Minor comment improvement.2011-08-01 Javier Miranda <miranda@adacore.com>* sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do notconsider hidden subprograms as valid candidates.2011-08-01 Arnaud Charlet <charlet@adacore.com>* make.adb (Compile): Strip -mxxx switches in CodePeer mode.2011-08-01 Vasiliy Fofanov <fofanov@adacore.com>* gnat_ugn.texi: Fix typo.2011-08-01 Robert Dewar <dewar@adacore.com>* i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,lib-xref.adb: Minor reformatting2011-08-01 Gary Dismukes <dismukes@adacore.com>* exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test ofwhen to generate a call to Move_Final_List.(Has_Controlled_Parts): Remove this function.2011-08-01 Geert Bosch <bosch@adacore.com>* par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra"," in choice list.2011-08-01 Thomas Quinot <quinot@adacore.com>* exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error forexplicit raise of a predefined exception as Comes_From_Source if theoriginal N_Raise_Statement comes from source.2011-08-01 Robert Dewar <dewar@adacore.com>* sinfo.ads: Add comment.* sem_ch6.adb: Minor reformatting.2011-08-01 Robert Dewar <dewar@adacore.com>* freeze.adb (Freeze_Entity): Refine check for bad component sizeclause to avoid rejecting confirming clause when atomic/aliased present.2011-08-01 Ed Schonberg <schonberg@adacore.com>* sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS tobetter determine whether an entity reference is a write.* sem_util.adb (Is_LHS): refine predicate to handle assignment to asubcomponent.* lib-xref.adb (Output_References): Do no suppress a read reference atthe same location as an immediately preceeding modify-reference, tohandle properly in-out actuals.2011-08-01 Tristan Gingold <gingold@adacore.com>* env.c (__gnat_setenv) [VMS]: Refine previous change.2011-08-01 Quentin Ochem <ochem@adacore.com>* i-cstrin.adb (New_String): Changed implementation, now uses only theheap to compute the result.2011-08-01 Robert Dewar <dewar@adacore.com>* atree.ads: Minor reformatting.2011-08-01 Emmanuel Briot <briot@adacore.com>* g-expect.adb (Get_Command_Output): Fix memory leak.2011-08-01 Geert Bosch <bosch@adacore.com>* cstand.adb (P_Float_Type): New procedure to print the definition ofpredefined fpt types.(P_Mixed_Name): New procedure to print a name using mixed case(Print_Standard): Use P_Float_Type for printing floating point types* einfo.adb (Machine_Emax_Value): Add preliminary support for quadprecision IEEE float.2011-08-01 Thomas Quinot <quinot@adacore.com>* sem_ch3.adb: Minor reformatting.2011-08-01 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (Analyze_Parameterized_Expression): If the expression isthe completion of a generic function, insert the new body rather thanrewriting the original.2011-08-01 Yannick Moy <moy@adacore.com>* sinfo.ads, errout.ads: Typos in comments.2011-08-01 Robert Dewar <dewar@adacore.com>* par-endh.adb: Minor reformatting.2011-08-01 Robert Dewar <dewar@adacore.com>* aspects.ads, aspects.adb: Add aspects for library unit pragmas(Pre_Post_Aspects): New subtype.* par-ch12.adb (P_Generic): New syntax for aspects in packages* par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter* par-ch7.adb (P_Package): Remove Decl parameter(P_Package): Handle new syntax for aspects (before IS)* par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handlenew aspect syntax(P_Task_Definition): Remove Decl parameter, handle new aspect syntax* par.adb (P_Aspect_Specifications): Add Semicolon parameter(P_Package): Remove Decl parameter* sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unitaspects* sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspectspecs* sem_util.ads, sem_util.adb (Static_Boolean): New function* sinfo.ads: Document new syntax for aspects in packages etc.* sprint.adb: Handle new syntax of aspects before IS in package2011-08-01 Thomas Quinot <quinot@adacore.com>* atree.ads: Minor reformatting.* sem_prag.adb: Minor reformatting.2011-08-01 Robert Dewar <dewar@adacore.com>* exp_util.adb (Insert_Actions): Fix error in handling Actions forcase expr alternative.2011-08-01 Ed Schonberg <schonberg@adacore.com>* sem_ch12.adb: Fix typo.2011-08-01 Geert Bosch <bosch@adacore.com>* sem_prag.adb (Check_No_Link_Name): New procedure.(Process_Import_Or_Interface): Use Check_No_Link_Name.* cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)instead of Standard_Long_Long_Float_Size global. Preparation foreventual removal of per type constants.* exp_util.ads (Get_Stream_Size): New function returning the streamsize value of subtype E.* exp_util.adb (Get_Stream_Size): Implement new function.* exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Sizefunction.* exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size* einfo.adb:(Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats2011-08-01 Geert Bosch <bosch@adacore.com>* cstand.adb: Fix comments.* sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicitcount of arguments.2011-08-01 Robert Dewar <dewar@adacore.com>* exp_ch4.adb, sem_cat.adb: Minor reformatting.2011-08-01 Geert Bosch <bosch@adacore.com>* atree.ads: Fix comment.2011-08-01 Robert Dewar <dewar@adacore.com>* aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.* par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.* par.adb: Add with for Namet.Sp.* par-tchk.adb: Minor reformatting.2011-08-01 Vincent Celier <celier@adacore.com>* mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb(Build_Dynamic_Library): Use new function Init_Proc_Name to get the nameof the init procedure of a SAL.* mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):New procedure.2011-08-01 Thomas Quinot <quinot@adacore.com>* exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minorreformatting.2011-08-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* adaint.c (__gnat_file_time_name_attr): Get rid of warning.2011-08-01 Thomas Quinot <quinot@adacore.com>* sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make functionconformant with its spec (return True only for types that havean overriding Initialize primitive operation that prevents them fromhaving preelaborable initialization).* sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborableinitialization for controlled types in Ada 2005 or later mode.2011-08-01 Robert Dewar <dewar@adacore.com>* aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,Postcondition.(Same_Aspect): New function.* sem_ch13.adb (Analyze_Aspect_Specifications): Add aspectType_Invariant, Precondition, Postcondition.* snames.ads-tmpl: Add Name_Type_Invariant.2011-08-01 Robert Dewar <dewar@adacore.com>* freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Pointhere.(Freeze_All_Ent): Fix error in handling inherited aspects.* sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that isalready analyzed, but don't skip entire processing of a declaration,that's wrong in some cases of declarations being rewritten.(Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.Don't delay for integer, string literalsTreat predicates in usual manner for delay, remove special case code,not needed.(Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point(Build_Predicate_Function): Update saved expression in aspect(Build_Invariant_Procedure): Update saved expression in aspect* exp_ch4.adb (Expand_N_Selected_Component): Only do the optimizationof replacement of discriminant references if the reference is simple.2011-08-01 Robert Dewar <dewar@adacore.com>* aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.* sem_ch13.adb (Analyze_Aspect_Specification): Add processing forStatic_Predicate and Dynamic_Predicate.(Build_Predicate_Function): Add processing for Static_Predicateand Dynamic_Predicate.* sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag(From_Static_Predicate): New flag* snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate2011-08-01 Robert Dewar <dewar@adacore.com>* usage.adb: Documentation cleanup for Ada version modes in usage.* expander.adb: Minor reformatting.2011-08-01 Robert Dewar <dewar@adacore.com>* atree.ads: Minor comment fix.* a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,a-witeio.ads, sem_prag.adb: Minor reformatting.2011-08-01 Doug Rupp <rupp@adacore.com>* env.c (__gnat_setenv) [VMS]: Force 32bit on item list structurepointers. Use descrip.h header file for convenience. Add somecomments.2011-08-01 Robert Dewar <dewar@adacore.com>* freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point(Freeze_All): Call Check_Aspect_At_End_Of_Declarations* sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):New procedure.(Check_Aspect_At_End_Of_Declarations): New procedure(Analye_Aspect_Specification): Minor changes for above procedures* sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspectspecification node as well.2011-08-01 Pascal Obry <obry@adacore.com>* adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on specialWindows files. Use GetFilesAttributes() in this case to check for fileexistence instead of returning with an error code.2011-08-01 Vincent Celier <celier@adacore.com>* a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation whenHigh is above Source length.2011-08-01 Robert Dewar <dewar@adacore.com>* a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.2011-08-01 Robert Dewar <dewar@adacore.com>* aspects.ads (Boolean_Aspects): New subtype.* exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspectsfor derived types in cases where the parent type and derived type haveaspects.* freeze.adb (Freeze_Entity): Fix problems in handling derived typewith aspects when parent type also has aspects.(Freeze_Entity): Deal with delay of boolean aspects (must evaluateboolean expression at this point).* sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects inaccordance with final decision on the Ada 2012 feature.* sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.2011-08-01 Matthew Heaney <heaney@adacore.com>* a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.2011-08-01 Pascal Obry <obry@adacore.com>* a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:Fix Replace_Slice when High is above current string size.(Replace_Slice): Fix DL computation when High is above currentstring length.2011-08-01 Gary Dismukes <dismukes@adacore.com>* gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.2011-08-01 Matthew Heaney <heaney@adacore.com>* a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left childof node.2011-08-01 Pascal Obry <obry@adacore.com>* a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minorreformatting.2011-08-01 Ed Schonberg <schonberg@adacore.com>* sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly namedaccess to protected subprograms in generic bodies.* sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is aprotected type, indicate that the convention of the subprogram isConvention_Protected, because it may be used in subsequent declarationswithin the protected declaration.2011-08-01 Vincent Celier <celier@adacore.com>* mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"and "final" procedures when the name of the library is "ada", to avoidduplicate symbols "adainit" and "adafinal" in executables.2011-08-01 Ed Schonberg <schonberg@adacore.com>* sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly aquantified expression that appears within a postcondition and uses theAda2012 'Result attribute.2011-07-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>* init.c (__gnat_error_handler): Cast reason to int.(__gnat_install_handler): Explain sa_sigaction use.2011-07-24 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If thesubprogram has copy-in copy-out parameters, try to promote the mode ofthe return type if it is passed in registers.2011-07-24 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark theleft operand as addressable.2011-07-24 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/gigi.h (build_function_stub): Remove.(build_return_expr): Likewise.(convert_vms_descriptor): Declare.* gcc-interface/utils.c (convert_vms_descriptor): Make global.(build_function_stub): Move to...* gcc-interface/utils2.c (build_return_expr): Move to...* gcc-interface/trans.c (build_function_stub): ...here.(build_return_expr): ...here.(Subprogram_Body_to_gnu): Add local variable for language_function.Disconnect the parameter attributes cache, if any, once done with it.Call end_subprog_body only after setting the end_locus.Build the stub associated with the function, if any, at the very end.(gnat_to_gnu) <N_Return_Statement>: Remove couple of useless localvariables and streamline control flow.2011-07-23 Arnaud Charlet <charlet@adacore.com>PR ada/49819* gcc-interface/Makefile.in (powerpc-linux): Remove reference tog-trasym-dwarf.adb.2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>PR bootstrap/49794* init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):Assign to act.sa_sigaction.* tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Castcurrent->return_address to char * before arithmetic.2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>* init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.Correct argument types.Extract code from reason.(__gnat_install_handler): Assign to act.sa_sigaction.2011-07-21 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...(GNAT1_OBJS): ...here.2011-07-15 Eric Botcazou <ebotcazou@adacore.com>PR ada/48711* g-socthi-mingw.adb (Fill): Fix formatting.* gcc-interface/gigi.h: Move around comment.2011-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>PR ada/46350* s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.2011-07-14 Florian Weimer <fw@deneb.enyo.de>PR ada/48711* g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.2011-07-13 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bitrange comparison if Pmode is SImode.2011-07-12 Laurent GUERBY <laurent@guerby.net>Eric Botcazou <ebotcazou@adacore.com>* adadecode.c: Wrap up in extern "C" block.* adadecode.h: Likewise.* adaint.c: Likewise. Remove 'const' keyword.* adaint.h: Likewise.* argv.c: Likewise.* atree.h: Likewise.* cio.c: Likewise.* cstreams.c: Likewise.* env.c: Likewise.* exit.c: Likewise.* fe.h: Likewise.* final.c: Likewise.* init.c: Likewise.* initialize.c: Likewise.* link.c: Likewise.* namet.h: Likewise.* nlists.h: Likewise.* raise.c: Likewise.* raise.h: Likewise.* repinfo.h: Likewise.* seh_init.c: Likewise.* targext.c: Likewise.* tracebak.c: Likewise.* uintp.h: Likewise.* urealp.h: Likewise.* xeinfo.adb: Wrap up generated C code in extern "C" block.* xsinfo.adb: Likewise.* xsnamest.adb: Likewise.* gcc-interface/gadaint.h: Wrap up in extern "C" block.* gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.* gcc-interface/misc.c: Likewise.* gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.(GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o andada/targext.o here...(GNAT_ADA_OBJS): ...and not here.(GNAT1_ADA_OBJS): Add ada/b_gnat1.o.(GNATBIND_OBJS): Reorder.2011-07-07 Richard Henderson <rth@redhat.com>* gcc-interface/misc.c (gnat_init_gcc_eh): Don't calldwarf2out_frame_init.2011-07-07 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/misc.c (gnat_init): Tweak previous change.2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>PR target/39150* gcc-interface/Makefile.in: Handle x86_64-solaris2.2011-07-06 Richard Guenther <rguenther@suse.de>* gcc-interface/misc.c (gnat_init): Merge calls tobuild_common_tree_nodes and build_common_tree_nodes_2.Re-initialize boolean_false_node.2011-07-02 Eric Botcazou <ebotcazou@adacore.com>Olivier Hainque <hainque@adacore.com>Nicolas Setton <setton@adacore.com>* gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL onthe type according to the ARTIFICIAL_P parameter.(create_type_decl): Likewise.(create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.2011-07-01 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.(gnatbind): Likewise.2011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>* gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).2011-06-18 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPElocal variable throughout. Remove useless call to Base_Type.(gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.Take it also into account for the volatileness of the field. Set theTREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings.2011-06-18 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAPon a dereference built for a by-ref object if it has an address clause.2011-06-18 Eric Botcazou <ebotcazou@adacore.com>* einfo.ads (Address_Taken): Document use for the second argument ofAsm_Input and Asm_Output attributes.* sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the secondargument is an entity name, then set Address_Taken on it.<Attribute_Asm_Output>: Likewise.* gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle theAttr_Asm_Input and Attr_Asm_Output attributes explicitly.(gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up inmemory and is a CONST_DECL, retrieve its corresponding VAR_DECL.2011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>PR middle-end/46500* gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.2011-06-14 Joseph Myers <joseph@codesourcery.com>* gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.(ada/utils.o): Update dependencies.* gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add../../../libcpp/libcpp.a.* gcc-interface/utils.c: Include common/common-target.h.(process_attributes): Use targetm_common.have_named_sections.2011-06-07 Richard Guenther <rguenther@suse.de>* gcc-interface/misc.c (gnat_init): Do not set size_type_node or callset_sizetype.2011-06-06 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils2.c (gnat_stabilize_reference): Propagate theTREE_THIS_NOTRAP flag.2011-06-06 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:Fix thinko.2011-06-06 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (Identifier_to_gnu): Also handle deferredconstants whose full view has discriminants specially.2011-06-06 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils.c: Include diagnostic.h.(gnat_write_global_declarations): Output debug information for allglobal type declarations before finalizing the compilation unit.* gcc-interface/Make-lang.in (ada/utils.o): Add dependency.2011-05-25 Jakub Jelinek <jakub@redhat.com>* gcc-interface/utils.c (def_fn_type): Remove extra va_end.2011-05-25 Kai Tietz <ktietz@redhat.com>* adaint.c (__gnat_to_canonical_file_list_next): Use arrayinitialization instead of const/none-const pointer assignment.2011-05-24 Joseph Myers <joseph@codesourcery.com>* gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include$(EXTRA_GNAT1_OBJS).(GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).(EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.(gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.* gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Uselibcommon-target.a instead of prefix.o.2011-05-21 Joseph Myers <joseph@codesourcery.com>PR ada/49097* gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).2011-05-20 Joseph Myers <joseph@codesourcery.com>* gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.* gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.ainstead of version.o.2011-05-18 Kai Tietz <ktietz@redhat.com>* gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Useboolean_false_node instead of integer_zero_node.(convert_with_check): Likewise.* gcc-interface/decl.c (choices_to_gnu): Likewise.2011-05-12 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (call_to_gnu): In the by-reference case, if thetype of the parameter is an unconstrained array, convert the actual tothe type of the formal in the In Out and Out cases as well.2011-05-11 Nathan Froyd <froydnj@codesourcery.com>* gcc-interface/utils.c (def_fn_type): Don't call build_function_type;call build_function_type_array or build_varargs_function_type_arrayinstead.(create_subprog_type): Don't call build_function_type; callbuild_function_type_vec instead.2011-05-11 Nathan Froyd <froydnj@codesourcery.com>* gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.(TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.(TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.2011-05-07 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.* gcc-interface/gigi.h (global_bindings_p): Adjust prototype.* gcc-interface/utils.c (global_bindings_p): Return bool and simplify.2011-05-05 Nathan Froyd <froydnj@codesourcery.com>* gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.2011-05-05 Nathan Froyd <froydnj@codesourcery.com>* gcc-interface/decl.c (intrin_arglists_compatible_p): Use iteratorsinstead of accessing TYPE_ARG_TYPES directly.* gcc-interface/utils.c (handle_nonnull_attribute): Likewise.2011-05-05 Eric Botcazou <ebotcazou@adacore.com>PR ada/48844* gcc-interface/gigi.h (get_variant_part): Declare.* gcc-interface/decl.c (get_variant_part): Make global.* gcc-interface/utils2.c (find_common_type): Do not return T1 if thetypes have the same constant size, are record types and T1 has avariant part while T2 doesn't.2011-05-05 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils.c (begin_subprog_body): Do not callget_pending_sizes.(end_subprog_body): Likewise.2011-05-04 Richard Guenther <rguenther@suse.de>* gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument toint_const_binop.(pos_to_constructor): Likewise.2011-05-03 Nathan Froyd <froydnj@codesourcery.com>Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (gigi): Call build_function_type_list insteadof build_function_type. Adjust calls to...(build_raise_check): ...this. Do not take a void_tree parameter.Call build_function_type_list instead of build_function_type.Fix head comment and swap couple of conditional blocks.2011-04-30 Eric Botcazou <ebotcazou@adacore.com>* gnatvsn.ads (Library_Version): Bump to 4.7.(Current_Year): Bump to 2011.2011-04-29 Michael Matz <matz@suse.de>* gcc-interface/misc.c (gnat_handle_option): Setwarn_maybe_uninitialized.2011-04-23 Gerald Pfeifer <gerald@pfeifer.com>* gnat_ugn.texi (Complexity Metrics Control): Update link tothe Watson/McCabe paper.2011-04-23 Jim Meyering <meyering@redhat.com>* gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/2011-04-22 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPEonto the new type.2011-04-22 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAGparameter.* gcc-interface/utils.c (create_subprog_decl): Likewise. SetDECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: AddARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.<all>: Do not set flags on the reused DECL node coming from an alias.Set DECL_IGNORED_P on the DECL node built for subprograms if theydon't need debug info here...* gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.(gigi): Adjust calls to create_subprog_decl.(build_raise_check): Likewise.(establish_gnat_vms_condition_handler): Likewise.(Compilation_Unit_to_gnu): Likewise.(gnat_to_gnu): Likewise.2011-04-21 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.(NO_REORDER_ADAFLAGS): New variable.(EXTRA_GNATTOOLS): Always define.(../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.Clean up and adjust list of files compiled with special options.* gcc-interface/Make-lang.in: Likewise.(ada/decl.o): Cosmetical change.(ada/misc.o): Remove dependency on $(PLUGIN_H).2011-04-20 Jim Meyering <meyering@redhat.com>* initialize.c (__gnat_initialize): Remove useless if-before-free.2011-04-17 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with$(CFLAGS) on the link line.2011-04-17 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare thepadded type built for the return type if it is unconstrained.2011-04-14 Nathan Froyd <froydnj@codesourcery.com>* gcc-interface/utils.c (gnat_poplevel): Use block_chainon.2011-04-12 Nathan Froyd <froydnj@codesourcery.com>* gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMONbefore calling TREE_CHAIN.* gcc-interface/misc.c (gnat_init_ts): New function.(LANG_HOOKS_INIT_TS): Define.2011-04-12 Martin Jambor <mjambor@suse.cz>* gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_nodeinstead of cgraph_node.2011-04-08 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimumalignment on fields of the RETURN type built for the Copy-In Copy-Outmechanism.2011-04-08 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (Identifier_to_gnu): Do not return initializersof aggregate types that contain a placeholder.2011-04-08 Nathan Froyd <froydnj@codesourcery.com>* gcc-interface/utils.c (handle_sentinel_attribute): Don't useTYPE_ARG_TYPES.(handle_type_generic_attribute): Likewise.2011-04-04 Eric Botcazou <ebotcazou@adacore.com>PR ada/47163* s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.2011-04-04 Kai Tietz <ktietz@redhat.com>PR ada/47163* s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targetsto flag value.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils2.c (build_allocator): In the unconstrained arraytype case, do not strip a padding type around the array type.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils.c (update_pointer_to): Finalize named pointertypes.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.* gcc-interface/misc.c (gnat_handle_option): Remove special handlingcode for -feliminate-unused-debug-types.(gnat_post_options): Likewise.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificialdeclaration of a pointer type, then set DECL_ORIGINAL_TYPE to adistinct copy.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity): Do not force theDECL_ARTIFICIAL flag on enumeration types.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not makefat pointer types artificial unconditionally.<E_Array_Subtype>: Attach the base array type as a parallel type if itisn't artificial.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/gigi.h (get_dummy_type): Declare.(build_dummy_unc_pointer_types): Likewise.(finish_fat_pointer_type): Likewise.* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummyfat pointer type has been built, complete it in place.<E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fatand thin pointers. Remove useless variable.(finish_fat_pointer_type): Make global and move to...* gcc-interface/utils.c (finish_fat_pointer_type): ...here.(get_dummy_type): New function.(build_dummy_unc_pointer_types): Likewise.(gnat_pushdecl): Propage the name to the anonymous variants only.(update_pointer_to): Only adjust the pointer types in the unconstrainedarray case.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set itif this is a Taft amendment type and the full declaration is available.* gcc-interface/trans.c (process_type): Likewise.If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.(process_freeze_entity): Likewise.* gcc-interface/utils.c (dummy_global): New static variable.(gnat_write_global_declarations): If there are types declared as usedat the global level, insert them in the global hash table.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.* gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificialdeclaration of an array type, then set DECL_ORIGINAL_TYPE to a distinctcopy.(record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIALflag of the type accordingly.* gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Deferfinalizing types when updating the pointers to the designated type.<all>: Finalize the deferred types even if we didn't defer processingof incomplete types in this invocation.2011-04-01 Olivier Hainque <hainque@adacore.com>Nicolas Setton <setton@adacore.com>Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/misc.c (gnat_descriptive_type): New function.(LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.2011-03-28 Kai Tietz <ktietz@redhat.com>* gcc-interface/Makefile.in (SO_LIB): Handle multilib build for nativeWindows targets.(EH_MECHANISM): Use GCC exception mechanism for native Windows targets.* system-mingw.ads (System): Change ZCX_By_Default default to True.* raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.2011-03-28 Tristan Gingold <gingold@adacore.com>PR ada/44431* gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.Use ada output of gnatbind.(ada/b_gnatb.adb): Ditto.(ada/b_gnat1.o, ada/b_gnatb.o): New rules.(ada.mostlyclean, ada.stage1)(ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)(ada.stagefeedback): Adjust.* gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.Use ada output of gnatbind.(b_gnatm.adb): Ditto.(b_gnatl.o, b_gnatm.o): New rules.2011-03-26 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECLfor the padded type built to support a specified size or alignment.2011-03-26 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Deferunconditionally to the end of the unit when the designated type islimited_with'ed.<all>: Rename local variable. Attempt to un-defer types only and do itfor limited_with'ed types as well.(finalize_from_with_types): Adjust comment. Rename variable and tidy.* gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNITconsistently and remove redundant call to finalize_from_with_types.2011-03-26 Eric Botcazou <ebotcazou@adacore.com>* inline.adb (Back_End_Cannot_Inline): Lift restriction on calls tosubprograms without a previous spec declared in the same unit.* gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlinedsubprograms at the end of the unit instead of at the beginning.* gcc-interface/utils.c (create_subprog_decl): Check that the entityisn't public for the special handling of non-inline functions nestedinside inline external functions.2011-03-25 Jeff Law <law@redhat.com>* gcc-interface/utils.c (def_fn_type): Add missing va_end.2011-03-24 Eric Botcazou <ebotcazou@adacore.com>* einfo.ads (Size_Depends_On_Discriminant): Adjust description.* layout.adb (Compute_Size_Depends_On_Discriminant): New procedureto compute Set_Size_Depends_On_Discriminant.(Layout_Type): Call it on array types in back-end layout mode.* sem_util.adb (Requires_Transient_Scope): Return true for arraytypes only if the size depends on the value of discriminants.* gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHStype if the RHS is a call to a function that returns an unconstrainedtype with default discriminant.2011-03-24 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case ofnon-conversion to the nominal result type at the end.2011-03-23 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (create_temporary): New function taken from...(create_init_temporary): ...here. Call it.(call_to_gnu): Create the temporary for the return value early, if any.Create it for a function with copy-in/copy-out parameters if there isno target; in other cases of copy-in/copy-out, use another temporary.Push the new binding level lazily. Add and rename local variables.2011-03-23 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (validate_size): Improve comments and tweakerror message.(set_rm_size): Likewise.2011-03-23 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECLfor the padded type built in order to support a specified alignment.Fix incorrect formatting.2011-03-21 Eric Botcazou <ebotcazou@adacore.com>PR bootstrap/48216* gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.2011-03-21 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (components_to_record): Add REORDER parameter,rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameterto the end of the list. Adjust recursive call. Rename local variable.If REORDER is true, reorder components of the record type.(gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument tocomponents_to_record and adjust the parameter list.2011-03-21 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (elaborate_expression_1): When optimization isdisabled, use the variable for bounds of loop iteration scheme.2011-03-21 Kai Tietz <ktietz@redhat.com>PR target/12171* gcc-interface/utils.c (gnat_internal_attribute_table): Add column.2011-03-17 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (elaborate_expression_1): Try harder to findout whether the expression is read-only. Short-circuit placeholdercase and rename a couple of local variables.2011-03-17 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/gigi.h (smaller_form_type_p): Declare.* gcc-interface/trans.c (smaller_form_type_p): Make global and move...* gcc-interface/utils.c (smaller_form_type_p): ...to here.(convert): Deal with conversions from a smaller form type specially.2011-02-14 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/misc.c (gnat_init_options): Do not concatenate -I andits argument, except for the special -I- switch.2011-02-12 Gerald Pfeifer <gerald@pfeifer.com>* gnat_ugn.texi (Compiling Different Versions of Ada): Update link to"Ada Issues".2011-02-08 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.2011-02-03 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead ofGNAT_FORMAL.* gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...* gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPEinstead of GNAT_FORMAL. Protect the expression against multiple uses.Do not generate the check directly, instead instantiate the templatecheck present in the descriptor.(make_descriptor_field): Move around.(build_vms_descriptor32): Build a template check in the POINTER field.(build_vms_descriptor): Remove useless suffixes.* gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.2011-01-26 Eric Botcazou <ebotcazou@adacore.com>PR bootstrap/47467* targext.c: Include target files if IN_RTS is defined.2011-01-26 Richard Guenther <rguenther@suse.de>PR bootstrap/47467* targext.c: Include config.h.* gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)dependency.2011-01-04 Pascal Obry <obry@adacore.com>Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.2011-01-04 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of theend-of-case on the end label and its associated gotos, if any.2011-01-04 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate theexpressions of the parameter cache within the statement group ofthe CICO mechanism.2011-01-04 Olivier Hainque <hainque@adacore.com>Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.(set_end_locus_from_node): New function.(Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR wemake and the function end_locus.(Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locusfor the elaboration subprogram.(set_gnu_expr_location_from_node) <default case>: Use it to attempt toset the end_locus of the expression as well.2011-01-04 Eric Botcazou <ebotcazou@adacore.com>PR ada/47131* gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not makevariables that are referenced in exception handlers volatile.Copyright (C) 2011 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.* gnat_rm.texi: Ramification of pragma Eliminate documentation- fix bugs in the description of Source_Trace;- get rid of UNIT_NAME;2011-08-02 Javier Miranda <miranda@adacore.com>* exp_ch9.adb(Build_Dispatching_Requeue): Adding support for VM targetssince we cannot directly reference the Tag entity.* exp_sel.adb (Build_K): Adding support for VM targets.(Build_S_Assignment): Adding support for VM targets.* exp_disp.adb(Default_Prim_Op_Position): In VM targets do not restrict availabilityof predefined interface primitives to compiling in Ada 2005 mode.(Is_Predefined_Interface_Primitive): In VM targets this service is notrestricted to compiling in Ada 2005 mode.(Make_VM_TSD): Generate code that declares and initializes the OSDrecord. Needed to support dispatching calls through synchronizedinterfaces.* exp_ch3.adb(Make_Predefined_Primitive_Specs): Enable generation of predefinedprimitives associated with synchronized interfaces.(Make_Predefined_Primitive_Bodies): Enable generation of predefinedprimitives associated with synchronized interfaces.2011-08-02 Yannick Moy <moy@adacore.com>* par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence ofstatements hidden in SPARK if preceded by the HIDE directive(Parse_Exception_Handlers): mark each exception handler in a sequence ofexception handlers as hidden in SPARK if preceded by the HIDE directive* par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARKif starting with the HIDE directive* par-ch7.adb (P_Package): mark a package body hidden in SPARK ifstarting with the HIDE directive; mark the declarations in a privatepart as hidden in SPARK if the private part starts with the HIDEdirective* restrict.adb, restrict.ads(Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK(Is_In_Hidden_Part_In_SPARK): new function which returns whether itsargument node belongs to a part which is hidden in SPARK(Check_SPARK_Restriction): do not issue violations on nodes in hiddenparts in SPARK; protect the possibly costly call toIs_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on* scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration* scng.adb (Accumulate_Token_Checksum_GNAT_6_3,Accumulate_Token_Checksum_GNAT_5_03): add case for new tokenTok_SPARK_Hide.(Scan): recognize special comment starting with '#' and followed bySPARK keyword "hide" as a HIDE directive.2011-08-02 Yannick Moy <moy@adacore.com>* types.ads, erroutc.ads: Minor reformatting.2011-08-02 Vincent Celier <celier@adacore.com>* link.c: Add response file support for cross platforms.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_aggr.adb (Resolve_Array_Aggregate): when copying the expressionin an association, set parent field of copy before partial analysis.* sem_res.adb (Resolve_Slice): create reference to itype only whenexpansion is enabled.2011-08-02 Yannick Moy <moy@adacore.com>* einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/setfor new flag denoting which subprogram bodies are in ALFA* restrict.adb, sem_ch7.adb: Update comment* sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,sem_ch9.adb, sem_res.adb: Add calls toCurrent_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.* sem_ch6.adb (Analyze_Function_Return): add calls toCurrent_Subprogram_Body_Is_Not_In_ALFA on return statement in themiddle of the body, and extended return.(Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argumentFalse when missing return.(Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFAto True for subprograms whose spec is in ALFA. Remove later on the flagon the entity used for a subprogram body when there exists a separatedeclaration.* sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA toFalse, otherwise do nothing.2011-08-02 Robert Dewar <dewar@adacore.com>* inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.2011-08-02 Yannick Moy <moy@adacore.com>* sem_ch4.ads: minor formatting.2011-08-02 Yannick Moy <moy@adacore.com>* sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,opt.ads: cleanup of SPARK mode2011-08-02 Yannick Moy <moy@adacore.com>* cstand.adb (Create_Standard): sets Is_In_ALFA component of standardtypes.* einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities(Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA* sem_ch3.adb(Analyze_Object_Declaration): set Is_In_ALFA flag for objects(Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes(Constrain_Integer): set Is_In_ALFA flag for integer subtypes(Enumeration_Type_Declaration): set Is_In_ALFA flag for enumerationtypes.(Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes withnon-static range.* sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag forfunctions whose return type is not in ALFA.(Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogramspecifications.(Process_Formals): unset Is_In_ALFA flag for subprograms if aparameter's type is not in ALFA.* stand.ads (Standard_Type_Is_In_ALFA): array defines which standardtypes are in ALFA.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch6 (Analyze_Expression_Function): treat the function asInline_Always, and introduce a subprogram declaration for it when it isnot a completion.* inline.adb (Add_Inlined_Body): recognize bodies that come fromexpression functions, so that the back-end can determine whether theycan in fact be inlined.* sem_util.adb (Is_Expression_Function): predicate to determine whethera function body comes from an expression function.2011-08-02 Gary Dismukes <dismukes@adacore.com>* sem_ch6.adb (Check_Conformance): Revise the check for nonconformingnull exclusions to test Can_Never_Be_Null on the anonymous access typesof the formals rather than testing the formals themselves. Exclude thischeck in cases where the Old_Formal is marked as a controlling formal,to avoid issuing spurious errors for bodies completing dispatchingoperations (due to the flag not getting set on controlling accessformals in body specs).(Find_Corresponding_Spec): When checking full and subtype conformance ofsubprogram bodies in instances, pass Designated and E in that order, forconsistency with the expected order of the formals (New_Id followed byOld_Id).2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch8.adb: Minor reformatting.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch8.adb (Analyze_Subprogram_Renaming): new procedureCheck_Class_Wide_Actual, to implement AI05-0071, on defaultedprimitive operations of class-wide actuals.2011-08-02 Javier Miranda <miranda@adacore.com>* exp_atag.ads, exp_atag.adb(Build_Common_Dispatching_Select_Statements): Remove argument Locsince its value is implicitly passed in argument Typ.* exp_disp.adb (Make_Disp_Conditional_Select_Body,Make_Disp_Timed_Select_Body): Remove Loc in calls to routineBuild_Common_Dispatching_Select_Statements.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.Minor reformatting.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_res.adb: Minor reformatting.* sem_prag.adb: Minor reformatting.2011-08-02 Javier Miranda <miranda@adacore.com>* exp_atag.adb, exp_atags.ads(Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptrby the tagged type Entity. Required to use this routine in the VMtargets since we do not have available the Tag entity in the VMplatforms.* exp_ch6.adb(Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if packageAda.Tags has not been previously loaded.* exp_ch7.adb(Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invokeBuild_VM_TSDs if package Ada.Tags has not been previously loaded.* sem_aux.adb(Enclosing_Dynamic_Scope): Add missing support to handle the fullview of enclosing scopes. Required to handle enclosing scopes thatare synchronized types whose full view is a task type.* exp_disp.adb(Build_VM_TSDs): Minor code improvement to avoid generating andanalyzing lists with empty nodes.(Make_Disp_Asynchronous_Select_Body): Add support for VM targets.(Make_Disp_Conditional_Select_Body): Add support for VM targets.(Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.(Make_Disp_Timed_Select_Body): Add support for VM targets.(Make_Select_Specific_Data_Table): Add support for VM targets.(Make_VM_TSD): Generate code to initialize the SSD structure ofthe TSD.2011-08-02 Yannick Moy <moy@adacore.com>* lib-writ.adb (Write_ALI): when ALFA mode is set, write localcross-references section in ALI.* lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub(enclosing subprogram), Slc (location of Sub) and Sun (unit number ofSub).(Enclosing_Subprogram_Or_Package): new function to return the enclosingsubprogram or package entity of a node(Is_Local_Reference_Type): new function returns True for referencesselected in local cross-references.(Lt): function extracted from Lt in Output_References(Write_Entity_Name): function extracted from Output_References(Generate_Definition): generate reference with type 'D' for definitionof objects (object declaration and parameter specification), withappropriate locations and units, for use in local cross-references.(Generate_Reference): update fields Sub, Slc and Sun. Keep newly createdreferences of type 'I' for initialization in object definition.(Output_References): move part of function Lt and procedureWrite_Entity_Name outside of the body. Ignore references of types 'D'and 'I' introduced for local cross-references.(Output_Local_References): new procedure to output the localcross-references sections.(Lref_Entity_Status): new array defining whether an entity is a local* sem_ch3.adb (Analyze_Object_Declaration): call Generate_Referencewith 'I' type when initialization expression is present.* get_scos.adb, get_scos.ads: Correct comments and typos2011-08-02 Javier Miranda <miranda@adacore.com>* exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs inthe JVM target.* exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs inthe JVM target.* exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has noTSD support.2011-08-02 Vincent Celier <celier@adacore.com>* prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line(No_Space_Img): New function(Find_Excluded_Sources): When reading from a file, record the file nameand the line number for each excluded source.(Mark_Excluded_Sources): When reporting an error, if the excludedsources were read from a file, include file name and line number inthe error message.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).2011-08-02 Robert Dewar <dewar@adacore.com>* exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting2011-08-02 Javier Miranda <miranda@adacore.com>* exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict thegeneration of TSDs to the DOTNET compiler.* exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict thegeneration of TSDs to the DOTNET compiler.2011-08-02 Javier Miranda <miranda@adacore.com>* exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Datarecord of all the tagged types declared inside library level packagedeclarations, library level package bodies or library level subprograms.* exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSDassociated with a given tagged type.(Build_VM_TSDs): New subprogram.* exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of maincompilation units that are subprograms.* exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of maincompilation units that are package bodies.(Expand_N_Package_Declaration): Generate TSDs of the main compilationunits that are a package declaration or a package instantiation.* exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor codereorganization to improve the error generated by the frontend when thefunction Ada.Tags.Secondary_Tag is not available.* rtsfind.ads (RE_Register_TSD): New runtime entity.* exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.2011-08-02 Javier Miranda <miranda@adacore.com>* exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.2011-08-02 Robert Dewar <dewar@adacore.com>* s-imenne.ads: Minor reformatting.2011-08-02 Robert Dewar <dewar@adacore.com>* a-stunau.ads: Add pragma Suppress_Initialization for Big_String* freeze.adb (Warn_Overlay): Don't warn if initialization suppressed* s-stalib.ads: Add pragma Suppress_Initialization for Big_String2011-08-02 Robert Dewar <dewar@adacore.com>* einfo.ads (Materialize_Entity): Document this is only for renamings* exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generaterequired debug information in the case where we transform the objectdeclaration into a renaming declaration.* exp_ch4.adb (Expand_Concatenate): Generate debug info for resultobject* exp_dbug.ads (Debug_Renaming_Declaration): Document setting ofMaterialize_Entity.2011-08-02 Robert Dewar <dewar@adacore.com>* einfo.ads, einfo.adb (Suppress_Initialization): ReplacesSuppress_Init_Procs.* exp_ch3.adb, exp_disp.adb, freeze.adb: UseSuppress_Initialization/Initialization_Suppressed.* gnat_rm.texi: New documentation for pragma Suppress_Initialization* sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function* sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed* sem_prag.adb: New processing for pragma Suppress_Initialization.2011-08-02 Robert Dewar <dewar@adacore.com>* gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:Minor reformatting.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures canonly have inheritable classwide pre/postconditions.2011-08-02 Javier Miranda <miranda@adacore.com>* a-tags.ads, a-tags.adb (Check_TSD): New subprogram.* rtsfind.ads (RE_Check_TSD): New runtime entity.* exp_disp.adb (Make_DT): Generate call to the new runtime routine thatchecks if the external tag of a type is the same as the external tagof some other declaration.2011-08-02 Thomas Quinot <quinot@adacore.com>* s-taskin.ads: Minor reformatting.2011-08-02 Emmanuel Briot <briot@adacore.com>* g-comlin.adb (Display_Help): swap the order in which it prints theshort help and the general usage.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properlythe aspect declarations and attach them to the generic copy forsubsequent analysis.(Analyze_Subprogram_Instantiation): copy explicitly the aspectdeclarations of the generic tree to the new subprogram declarations.* sem_attr.adb (Check_Precondition_Postcondition): recognizeconditions that apply to a subprogram instance.2011-08-02 Robert Dewar <dewar@adacore.com>* gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (Derived_Type_Declaration): When checking that a untaggedprivate type with a tagged full view is not derived in the immediatescope of the partial view, (RM 7.3 (7)) use the scope of the base type.2011-08-02 Robert Dewar <dewar@adacore.com>* exp_ch4.adb: Minor reformatting.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is anAda2012 iterator, the loop will be rewritten during expansion into awhile loop with a cursor and an element declaration. Do not analyze thebody in this case, because if the container is for indefinite types theactual subtype of the elements will only be determined when the cursordeclaration is analyzed.2011-08-02 Arnaud Charlet <charlet@adacore.com>* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignoresize/alignment related attributes in CodePeer_Mode.2011-08-02 Gary Dismukes <dismukes@adacore.com>* sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call toPrepend_Element, since this can result in the operation getting thewrong slot in the full type's dispatch table if the full type hasinherited operations. The incomplete type's operation will get addedto the proper position in the full type's primitiveslist later in Sem_Disp.Check_Operation_From_Incomplete_Type.(Process_Incomplete_Dependents): Add Is_Primitive test when checking fordispatching operations, since there are cases where nonprimitivesubprograms can get added to the list of incomplete dependents (suchas subprograms in nested packages).* sem_ch6.adb (Process_Formals): First, remove test for being in aprivate part when determining whether to add a primitive with aparameter of a tagged incomplete type to the Private_Dependents list.Such primitives can also occur in the visible part, and should not havebeen excluded from being private dependents.* sem_ch7.adb (Uninstall_Declarations): When checking the rule ofRM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependentslist of a Taft-amendment incomplete type is a primitive before issuingan error that the full type must appear in the same unit. There arecases where nonprimitives can be in the list (such as subprograms innested packages).* sem_disp.adb (Derives_From): Use correct condition for checking thata formal's type is derived from the type of the corresponding formal inthe parent subprogram (the condition was completely wrong). Addchecking that was missing for controlling result types being derivedfrom the result type of the parent operation.2011-08-02 Yannick Moy <moy@adacore.com>* errout.adb (First_Node): minor renaming* restrict.adb (Check_Formal_Restriction): put restriction warning onfirst node.2011-08-02 Yannick Moy <moy@adacore.com>* sem_res.adb (Resolve_Logical_Op): ensure N is a binary operatorbefore accessing operands.* sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes todecide whether an initialization expression respects SPARK rules, asthe plain node is the expanded one. This allows for more valid warningsto be issued.* gnat_rm.texi: Minor update.2011-08-02 Arnaud Charlet <charlet@adacore.com>* sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revertprevious change.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, sem_ch4.adb: Minor reformatting.2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the originalloop statements and the element renaming declaration with a block whenthe element type is controlled.2011-08-02 Yannick Moy <moy@adacore.com>* sinfo.ads: Minor formatting.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_aggr.adb (Add_Association): if the association has a box and noexpression, use the Sloc of the aggregate itself for the newassociation.* errout.adb (First_Node): Exclude nodes with no Sloc, and always usethe Original_Node.2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.When a container is provided via a function call, generate a renamingof the function result. This avoids the creation of a transient scopeand the premature finalization of the container.* exp_ch7.adb (Is_Container_Cursor): Removed.(Wrap_Transient_Declaration): Remove the supression of the finalizationof the list controller when the declaration denotes a container cursor,it is not needed.2011-08-02 Yannick Moy <moy@adacore.com>* restrict.adb (Check_Formal_Restriction): only issue a warning if thenode is from source, instead of the original node being from source.* sem_aggr.adb(Resolve_Array_Aggregate): refine the check for a static expression, torecognize also static ranges* sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,Array_Type_Declaration): postpone the test for the type being a subtypemark after the type has been resolved, so that component-selection andexpanded-name are discriminated.(Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schmto distinguish the case of an iteration scheme, so that an error isissed on a non-static range in SPARK except in an iteration scheme.* sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index withIn_Iter_Schm = True.* sem_ch6.adb (Analyze_Subprogram_Specification): refine the check foruser-defined operators so that they are allowed in renaming* sem_ch8.adb(Find_Selected_Component): refine the check for prefixing of operatorsso that they are allowed in renaming. Move the checks for restrictionson selector name after analysis discriminated betweencomponent-selection and expanded-name.* sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning onconcatenation argument of string type if it is static.* sem_util.adb, sem_util.ads(Check_Later_Vs_Basic_Declarations): add a new functionIs_Later_Declarative_Item to decice which declarations are allowed aslater items, in the two different modes Ada 83 and SPARK. In the SPARKmode, add that renamings are considered as later items.(Enclosing_Package): new function to return the enclosing package(Enter_Name): correct the rule for homonyms in SPARK(Is_SPARK_Initialization_Expr): default to returning True on nodes notfrom source (result of expansion) to avoid issuing wrong warnings.2011-08-02 Ed Schonberg <schonberg@adacore.com>* errout.adb: On anything but an expression First_Node returns itsargument.2011-08-02 Pascal Obry <obry@adacore.com>* prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.Set the associated loop as the related expression of internallygenerated cursors.* exp_ch7.adb (Is_Container_Cursor): New routine.(Wrap_Transient_Declaration): Supress the finalization of the listcontroller when the declaration denotes a container cursor.2011-08-02 Yannick Moy <moy@adacore.com>* opt.ads (SPARK_Mode): update comment, SPARK_Mode only set throughcommand line now.* par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that theexpression is a simple expression. This check cannot be performed inthe semantics, so just drop it.(P_Index_Or_Discriminant_Constraint): move check that the index ordiscriminant is a subtype mark to Analyze_Subtype_Declaration in thesemantics. Other cases were previously checked in the semantics.* par-ch4.adb (P_Name): move checks that a selector name is notcharacter literal or an operator symbol to Find_Selected_Component inthe semantics* par-ch5.adb (Parse_Decls_Begin_End): move check that basicdeclarations are not placed after later declarations in a separateprocedure in Sem_Util (possibly not the best choice?), to be used bothduring parsing, for Ada 83 mode, and during semantic analysis, forSPARK mode.* par-endh.adb (Check_End): move check that end label is not missingto Process_End_Label in the semantics* par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): removethe special case for SPARK restriction* par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End* restrict.adb, restrict.ads (Check_Formal_Restriction): add aparameter Force to issue the error message even on internal node (usedfor generated end label). Call Check_Restriction to check when an errormust be issued. In SPARK mode, issue an error message even if therestriction is not set.(Check_Restriction): new procedure with an additional out parameter toinform the caller that a message has been issued* sem_aggr.adb: Minor modification of message* sem_attr.adb (Analyze_Attribute): call Check_Formal_Restrictioninstead of issuing an error message directly* sem_ch3.adb (Analyze_Declarations): move here the check that basicdeclarations are not placed after later declarations, by callingCheck_Later_Vs_Basic_Declarations(Analyze_Subtype_Declaration): move here the check that an index ordiscriminant constraint must be a subtype mark. Change the check thata subtype of String must start at one so that it works on subtype marks.* sem_ch4.adb (Analyze_Call): move here the check that a namedassociation cannot follow a positional one in a call* sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restrictioninstead of issuing an error message directly* sem_ch8.adb (Find_Selected_Component): move here the check that aselector name is not a character literal or an operator symbol. Movehere the check that the prefix of an expanded name cannot be asubprogram or a loop statement.* sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): newprocedure called from parsing and semantics to check that basicdeclarations are not placed after later declarations(Process_End_Label): move here the check that end label is not missing2011-08-02 Arnaud Charlet <charlet@adacore.com>* sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enumrepresentation clause in codepeer mode, since it confuses CodePeer anddoes not bring useful info.2011-08-02 Ed Falis <falis@adacore.com>* init.c: initialize fp hw on MILS.2011-08-02 Ed Schonberg <schonberg@adacore.com>* errout.adb (First_Node): for bodies, return the node itself (smalloptimization). For other nodes, do not check source_unit if the nodecomes from Standard.2011-08-02 Robert Dewar <dewar@adacore.com>* exp_ch3.adb: Minor comment additions.* sem_ch13.adb: Minor reformatting.2011-08-02 Pascal Obry <obry@adacore.com>* make.adb, makeutl.adb: Removes some superfluous directory separator.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_attr.adb: Minor reformatting.2011-08-02 Robert Dewar <dewar@adacore.com>* einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value(Has_Default_Component_Value): Removed* einfo.ads Comment updates(Has_Default_Aspect): Replaces Has_Default_Value(Has_Default_Component_Value): Removed* exp_ch13.adb(Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects* exp_ch3.adb(Build_Array_Init_Proc): Handle Default_[Component_]Value aspects(Get_Simple_Init_Val): Handle Default_Value aspect(Needs_Simple_Initialization): Handle Default_Value aspect* exp_ch3.ads: Needs_Simple_Initialization* freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect* par-prag.adb (Pragma_Default[_Component]Value) Removed* sem_ch13.adb(Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects* sem_prag.adb (Pragma_Default[_Component]Value) Removed* snames.ads-tmpl (Pragma_Default[_Component]Value) Removed2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch5.adb (Analyze_Iterator_Specification): use base type to locatepackage containing iteration primitives.exp_ch5.adb (Expand_Iterator_Loop): ditto.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with"of", pre-analyze expression in case it is a function call withfinalization actions that must be placed ahead of the loop.* exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are presenton an Ada2012 iterator, insert them ahead of the rewritten loop.2011-08-02 Geert Bosch <bosch@adacore.com>* cstand.adb (Create_Float_Types): Only consider C's long double forLong_Long_Float, in addition to double.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:Minor reformatting.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_attr.adb: handle properly 'Result when it is a prefix of anindexed component.2011-08-02 Javier Miranda <miranda@adacore.com>* einfo.ads, einfo.adb(Original_Access_Type): Move this attribute to Node26 since there wasan undocumented use of Node21 in E_Access_Subprogram_Type entitieswhich causes conflicts and breaks the generation of the .NET compiler.(Interface_Name): Add missing documentation on JGNAT only uses ofthis attribute.2011-08-02 Geert Bosch <bosch@adacore.com>* cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist(Find_Back_End_Float_Type): Likewise(Create_Back_End_Float_Types): Likewise(Create_Float_Types): Likewise(Register_Float_Type): Likewise* sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead ofNlist and split out type selection in new local Find_Base_Type function.* sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead ofNlist* stand.ads (Predefined_Float_Types): Use Elist instead of Nlist2011-08-02 Robert Dewar <dewar@adacore.com>* inline.adb: Minor code reorganization (put Get_Code_Unit_Entity inalpha order).* opt.ads: Minor comment change.* sem_ch12.adb: Minor code reorganization.2011-08-02 Gary Dismukes <dismukes@adacore.com>* sem_ch3.adb (Complete_Private_Subtype): Don't append the privatesubtype's list of rep items to the list on the full subtype in the casewhere the lists are the same.2011-08-02 Geert Bosch <bosch@adacore.com>* switch-c.adb (Free): New deallocation procedure to avoid implicitlyusing the one from System.Strings, which also deallocates all strings.2011-08-02 Geert Bosch <bosch@adacore.com>* gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): Newfunction.* gcc-interface/Make-lang.in: Update dependencies.2011-08-02 Olivier Hainque <hainque@adacore.com>* gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the functionend_locus.2011-08-02 Javier Miranda <miranda@adacore.com>* sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formalsassociated with anonymous access to subprograms.2011-08-02 Geert Bosch <bosch@adacore.com>* opt.ads(Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.(Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.* prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads(Add_Symbol_Definition): Move to switch-c.adb(Process_Command_Line_Symbol_Definitions): Adjust references to above.* prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.(Add_Symbol_Definition): Move to switch-c.adb.* sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.* sem_warn.adb(Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):Move to warnsw.adb.* sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):Move to warnsw.adb.* switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.(Add_Symbol_Definition): Moved from Prepcomp.* switch-c.ads: Update copyright notice. Use String_List instead ofArgument_List, removing dependency on System.OS_Lib.2011-08-02 Yannick Moy <moy@adacore.com>* sem_ch3.adb (Analyze_Object_Declaration): issue an error in formalmode on initialization expression which does not respect SPARKrestrictions.* sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determinesif the tree referenced by its argument represents an initializationexpression in SPARK, suitable for initializing an object in an objectdeclaration.2011-08-02 Javier Miranda <miranda@adacore.com>* exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link theinternally generated access to subprogram with its associated protectedsubprogram type.* einfo.ads, einfo.adb (Original_Access_Type): New attribute.2011-08-02 Geert Bosch <bosch@adacore.com>* cstand.adb (Register_Float_Type): Print information about type toregister, if the Debug_Flag_Dot_B is set.* debug.adb (Debug_Flag_Dot_B): Document d.b debug option.* rtsfind.ads (RE_Max_Base_Digits): New run time entity.* sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarationswith a requested precision of more than Max_Digits digits and no morethan Max_Base_Digits digits, if a range specification is present and thePredefined_Float_Types list has a suitable type to derive from.* sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in thecase of type completion with pragma Import* sem_prag.adb(Process_Import_Predefined_Type): Processing to complete a typewith pragma Import. Currently supports floating point types only.(Set_Convention_From_Pragma): Do nothing without underlying type.(Process_Convention): Guard against absence of underlying type,which may happen when importing incomplete types.(Process_Import_Or_Interface): Handle case of importing predefinedtypes. Tweak error message.2011-08-02 Eric Botcazou <ebotcazou@adacore.com>* inline.adb (Add_Inlined_Body): Adjust check for library-level inlinedfunctions to previous change. Reorganize code slightly.2011-08-02 Geert Bosch <bosch@adacore.com>* back_end.ads (Register_Type_Proc): New call back procedure type forallowing the back end to provide information about available types.(Register_Back_End_Types): New procedure to register back end types.* back_end.adb (Register_Back_End_Types): Call the back end to enumerateavailable types.* cstand.adb (Back_End_Float_Types): New list for floating point typessupported by the back end.(Build_Float_Type): Add extra parameter for Float_Rep_Kind.(Copy_Float_Type): New procedure to make new copies of predefined types.(Register_Float_Type): New call back procedure to populate the BEFT list(Find_Back_End_Float_Type): New procedure to find a BEFT by name(Create_Back_End_Float_Types): New procedure to populate the BEFT list.(Create_Float_Types): New procedure to create entities for floatingpoint types predefined in Standard, and put these and any remainingBEFTs on the Predefined_Float_Types list.* stand.ads (Predefined_Float_Types): New list for predefined floatingpoint types that do not have declarations in package Standard.2011-08-02 Eric Botcazou <ebotcazou@adacore.com>* inline.adb (Get_Code_Unit_Entity): New local function. Returns theentity node for the unit containing the parameter.(Add_Inlined_Body): Use it to find the unit containing the subprogram.(Add_Inlined_Subprogram): Likewise.* gcc-interface/Make-lang.in: Update dependencies.2011-08-02 Thomas Quinot <quinot@adacore.com>* s-stusta.adb (Print): Make sure Pos is always initialized to asuitable value.2011-08-02 Geert Bosch <bosch@adacore.com>* a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.2011-08-02 Eric Botcazou <ebotcazou@adacore.com>* sem_type.adb (Covers): Move trivial case to the top and reuse thecomputed value of Base_Type.2011-08-02 Yannick Moy <moy@adacore.com>* restrict.adb (Check_Restriction): issue an error for any use ofclass-wide, even if the No_Dispatch restriction is not set.* sem_aggr.adb: Correct typos in comments and messages in formal mode* sem_ch3.adb (Process_Full_View): issue an error in formal mode is,when completing a private extension, the type named in the private partis not the same as that named in the visible part.* sem_res.adb (Resolve_Call): issue an error in formal mode on the useof an inherited primitive operations of a tagged type or type extensionthat returns the tagged type.* sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): newfunction which returns True for an implicit operation inherited by thederived type declaration for the argument type.(Is_SPARK_Object_Reference): move to appropriate place in alphabeticorder.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch5.adb (Pre_Analyze_Range): new procedure extracted fromProcess_Bounds, to perform analysis with expansion of a range or anexpression that is the iteration scheme for a loop.(Analyze_Iterator_Specification): If domain of iteration is given by afunction call with a controlled result, as is the case if call returnsa predefined container, ensure that finalization actions are properlygenerated.* par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.2011-08-02 Javier Miranda <miranda@adacore.com>* sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.* gcc-interface/Make-lang.in: Update dependencies.2011-08-02 Javier Miranda <miranda@adacore.com>* sem_util.ads, sem_util.adb (Is_Variable): Add a new formal todetermine if the analysis is performed using N or Original_Node (N).* exp_util.adb (Side_Effect_Free): Code cleanup since the newfunctionality of routine Is_Variable avoids code duplication.* checks.adb (Determine_Range): Handle temporaries generated byRemove_Side_Effects.2011-08-02 Javier Miranda <miranda@adacore.com>* exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis andexpansion of the condition. Required since the previous analysis wasdone with expansion disabled (see Resolve_Quantified_Expression) andhence checks were not inserted and record comparisons have not beenexpanded.2011-08-02 Ed Falis <falis@adacore.com>* s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:Update header.2011-08-02 Bob Duff <duff@adacore.com>* opt.ads: Minor comment fix.2011-08-02 Bob Duff <duff@adacore.com>* sem_ch12.adb (Analyze_Package_Instantiation,Analyze_Subprogram_Instantiation): Turn off style checking whileanalyzing an instance. Whatever style checks that apply to the genericunit should apply, so it makes no sense to apply them in an instance.This was causing trouble when compiling an instance of a runtimeunit that violates the -gnatyO switch.* stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing fromone of the two case statements, causing spurious errors.2011-08-02 Robert Dewar <dewar@adacore.com>* uname.adb: Minor reformatting.* gnatcmd.adb: Minor reformatting.* exp_attr.adb: Minor reformatting.2011-08-02 Ed Schonberg <schonberg@adacore.com>* exp_ch5.adb (Expand_N_Assignment_Statement): under restrictionNo_Dispatching_Calls, do not look for the Assign primitive, becausepredefined primitives are not created in this case.2011-08-02 Bob Duff <duff@adacore.com>* stylesw.ads: Minor comment fixes.2011-08-02 Robert Dewar <dewar@adacore.com>* freeze.adb (Add_To_Result): New procedure.2011-08-02 Jose Ruiz <ruiz@adacore.com>* exp_attr.adb (Find_Stream_Subprogram): When using a configurable runtime, if the specific run-time routines for handling streams of stringsare not available, use the default mechanism.2011-08-02 Arnaud Charlet <charlet@adacore.com>* s-regpat.ads: Fix typo.2011-08-02 Vincent Celier <celier@adacore.com>* prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config isnot null, call it to create the in memory config project file withoutparsing an existing default config project file.2011-08-02 Eric Botcazou <ebotcazou@adacore.com>* atree.adb (Allocate_Initialize_Node): Remove useless temporaries.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_elim.adb: an abstract subprogram does not need an eliminatepragma for its descendant to be eliminable.2011-08-02 Ed Falis <falis@adacore.com>* init.c: revert to handling before previous checkin for VxWorks* s-intman-vxworks.adb: delete unnecessary declarations related tousing Ada interrupt facilities for handling signals.Delete Initialize_Interrupts. Use __gnat_install_handler instead.* s-intman-vxworks.ads: Import __gnat_install_handler asInitialize_Interrupts.* s-taprop-vxworks.adb: Delete Signal_Mask.(Abort_Handler): change construction of mask to unblock exceptionsignals.2011-08-02 Jerome Guitton <guitton@adacore.com>* a-except-2005.adb (Raise_From_Signal_Handler): CallDebug_Raise_Exception before propagation starts.2011-08-02 Eric Botcazou <ebotcazou@adacore.com>* exp_ch6.adb (Expand_Call): Guard restriction checks with a callto Restriction_Check_Required.* sem_ch3.adb (Analyze_Object_Declaration): Likewise.* sem_res.adb (Resolve_Call): Likewise.* sem_attr.adb (Check_Stream_Attribute): Likewise.2011-08-02 Bob Duff <duff@adacore.com>* stylesw.ads: Update comment.* style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.* errout.ads: Remove obsolete comment.2011-08-02 Javier Miranda <miranda@adacore.com>* einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.(Set_Is_Safe_To_Reevaluate): new procedure.* sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that noassignment is allowed on safe-to-reevaluate variables.(Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate thetemporary created to remove side effects in expressions that usethe secondary stack as safe-to-reevaluate.* exp_util.adb (Side_Effect_Free): Add missing code to handle wellvariables that are not true constants.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,sem_res.adb, sem_ch6.adb: Minor reformatting.2011-08-02 Jerome Guitton <guitton@adacore.com>* a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Donot set Overridden_Operation if subprogram is an initializationprocedure.2011-08-02 Yannick Moy <moy@adacore.com>* par-ch6.adb: Correct obsolete name in comments* restrict.adb, restrict.ads (Check_Formal_Restriction): new functionwhich takes two message arguments (existing function takes one), withsecond message used for continuation.* sem_ch5.adb (Analyze_Block_Statement): in formal mode, only rejectblock statements that originate from a source block statement, notgenerated block statements* sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, forsymmetry with procedure case* sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): newfunction to issue an error in formal mode if a package specificationcontains more than one tagged type or type extension.* sem_res.adb (Resolve_Actuals): in formal mode, check that actualparameters matching formals of tagged types are objects (or ancestortype conversions of objects), not general expressions. Issue an erroron view conversions that are not involving ancestor conversion of anextended type.(Resolve_Type_Conversion): in formal mode, issue an error on theoperand of an ancestor type conversion which is not an object* sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of theprocedure so that it works also for actuals of function calls(Is_Actual_Tagged_Parameter): new function which determines if itsargument is an actual parameter of a formal of tagged type in asubprogram call(Is_SPARK_Object_Reference): new function which determines if the treereferenced by its argument represents an object in SPARK2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch3.adb: Minor reformattingMinor comment additionMinor error msg text change2011-08-02 Javier Miranda <miranda@adacore.com>* sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): Newfunction. Used to be more precise when we generate a variable plus oneassignment to remove side effects in the evaluation of the Boundexpressions.(Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodesof the bound expression to force its re-analysis and thus expand theassociated transient scope (if required). Code cleanup replacing theprevious code that declared the constant entity by an invocation toroutine Force_Evaluation which centralizes this work in the frontend.2011-08-02 Robert Dewar <dewar@adacore.com>* einfo.adb (Is_Base_Type): Improve efficiency by using a flag table(Base_Type): Now uses improved Is_Base_Type function* einfo.ads (Base_Type): Inline this function2011-08-02 Robert Dewar <dewar@adacore.com>* sem_prag.adb (Analyze_Pragma): Defend against infinite recursion(Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas2011-08-02 Arnaud Charlet <charlet@adacore.com>* gcc-interface/Make-lang.in: Update dependencies.* gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorkstargets.2011-08-02 Yannick Moy <moy@adacore.com>* par-ch3.adb (P_Delta_Constraint): issue an error in formal mode onnon-simple expression used in delta constraint(P_Index_Or_Discriminant_Constraint): issue an error in formal mode onindex constraint which is not a subtype mark* par.adb: With and use Restrict* sem_ch3.adb (Analyze_Component_Declaration): issue an error in formalmode on component type which is not a subtype mark and defaultexpression on component(Analyze_Subtype_Declaration): issue an error in formal mode on subtypeof string which does not have a lower index bound equal to 1(Array_Type_Declaration): issue an error in formal mode on index orcomponent type which is not a subtype mark, and on aliased keyword oncomponent(Derived_Type_Declaration): issue an error in formal mode on interface,limited or abstract type(Record_Type_Declaration): issue an error in formal mode on interface(Record_Type_Definition): issue an error in formal mode on tagged typesand type extensions not declared in the specification of a library unitpackage; on null non-tagged record; on variant part2011-08-02 Vincent Celier <celier@adacore.com>* prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dirnot declared for qualified library project when Library_Name is notdeclared, but Library_Dir is.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generatedpragmas (affects aspects [Component_]Default_Value(Check_Aspect_At_Freeze_Point): For Component_Default_Value, usecomponent type for the resolution2011-08-02 Eric Botcazou <ebotcazou@adacore.com>* einfo.adb (Base_Type): Tune implementation for speed.2011-08-02 Robert Dewar <dewar@adacore.com>* freeze.adb: Minor reformatting.2011-08-02 Thomas Quinot <quinot@adacore.com>* scos.ads: Update comments.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (Build_Derived_Type): Inherit the convention from thebase type, because the parent may be a subtype of a private type whoseconvention is established in a private part.2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>* exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the returnstatement in a block when the expansion of the return expression hascreated a finalization chain.* freeze.adb (Freeze_Expression): Alphabetize all choices associatedwith the parent node.Add N_Extended_Return_Statement to handle the case where a transientobject declaration appears in the Return_Object_Declarations list ofan extended return statement.2011-08-02 Matthew Gingell <gingell@adacore.com>* adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possiblyunused parameter 'name'.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_elim.adb (Set_Eliminated): If the overridden operation is aninherited operation, check whether its alias, which is the sourceoperastion that it renames, has been marked eliminated.2011-08-02 Javier Miranda <miranda@adacore.com>* exp_util.adb (Safe_Prefixed_Reference): Do not consider safe anin-mode parameter whose type is an access type since it can be used tomodify its designated object. Enforce code that handles as safe anaccess type that is not access-to-constant but it is the result of aprevious removal of side-effects.(Remove_Side_Effects): Minor code reorganization of cases which requireno action. Done to incorporate documentation on new cases uncoveredworking in this ticket: no action needed if this routine was invokedtoo early and the nodes are not yet decorated.* sem_res.adb (Resolve_Slice): Minor code cleanup replacling two callsto routine Remove_Side_Effects by calls to Force_Evaluation since theywere issued with actuals that are implicitly provided byForce_Evaluation.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, sem_res.adb: Minor reformatting.2011-08-02 Yannick Moy <moy@adacore.com>* sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedureto issue an error in formal mode on attribute not supported in this mode(Analyze_Attribute): issue errors on standard attributes not supportedin formal mode.* sem_ch3.adb (Modular_Type_Declaration): remove obsolete part ofcomment, and issue error in formal mode on modulus which is not a powerof 2.(Process_Range_Expr_In_Decl): issue error in formal mode on non-staticrange.* sem_ch8.adb (Find_Type): issue error in formal mode on 'Base insubtype mark.* sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unaryoperator on modular type (except 'not').2011-08-02 Robert Dewar <dewar@adacore.com>* gnat_rm.texi: Minor reformatting.2011-08-02 Arnaud Charlet <charlet@adacore.com>* s-osinte-linux.ads: Minor comment update and reformatting.* i-cexten.ads: Make this unit pure, as for its parent.Will allow its usage in more contexts if needed.2011-08-02 Robert Dewar <dewar@adacore.com>* s-utf_32.ads: Minor comment fix.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_res.adb (Resolve_Actuals): if the subprogram is a primitiveoperation of a tagged synchronized type, handle the case where thecontrolling argument is overloaded.2011-08-02 Yannick Moy <moy@adacore.com>* gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:Replace pragma SPARK_95 with pragma Restrictions (SPARK)* par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): setSPARK mode and formal verification mode on processing SPARK restriction* s-rident.ads (Restriction_Id): add SPARK restriction in those notrequiring consistency checking.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_res.adb: Minor reformatting.2011-08-02 Robert Dewar <dewar@adacore.com>* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,a-cforse.ads: Remove unneeded with of Ada.ContainersRemove commented out pragma Inline'sMove specifications of new subprograms to the actual specs2011-08-02 Yannick Moy <moy@adacore.com>* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,a-cforse.ads: Update comments.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_attr.adb: add attribute name when 'Result has the wrong prefix.2011-08-02 Robert Dewar <dewar@adacore.com>* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,a-cforse.ads, a-cofove.ads: Minor reformatting.2011-08-02 Claire Dross <dross@adacore.com>* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,a-cofove.ads: Add comments.2011-08-02 Yannick Moy <moy@adacore.com>* gnat_rm.texi: Document formal containers.2011-08-02 Emmanuel Briot <briot@adacore.com>* g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when thereare empty sections.2011-08-02 Robert Dewar <dewar@adacore.com>* mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minorreformatting.2011-08-02 Robert Dewar <dewar@adacore.com>* aspects.adb: New aspects Default_Value and Default_Component_ValueNew format of Aspect_Names table checks for omitted entries* aspects.ads: Remove mention of Aspect_Cancel and add documentation onhandling of boolean aspects for derived types.New aspects Default_Value and Default_Component_ValueNew format of Aspect_Names table checks for omitted entries* einfo.ads, einfo.adb (Has_Default_Component_Value): New flag(Has_Default_Value): New flag(Has_Default_Component_Value): New flag(Has_Default_Value): New flag* par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Namestable.* par-prag.adb: New pragmas Default_Value and Default_Component_Value* sem_ch13.adb (Analyze_Aspect_Specifications): New aspectsDefault_Value and Default_Component_Value* sem_prag.adb: New pragmas Default_Value and Default_Component_ValueNew aspects Default_Value and Default_Component_Value* snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value* sprint.adb: Print N_Aspect_Specification node when called from gdb2011-08-02 Vincent Celier <celier@adacore.com>* prj-nmsc.adb (Check_Library_Attributes): For virtual library project,inherit library kind.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.Minor reformatting.2011-08-02 Robert Dewar <dewar@adacore.com>* i-cstrin.ads: Updates to make Interfaces.C.Strings match RM2011-08-02 Yannick Moy <moy@adacore.com>* sem_aggr.adb (Resolve_Aggregate): Fix thinko.2011-08-02 Robert Dewar <dewar@adacore.com>* impunit.adb: Add comment.2011-08-02 Yannick Moy <moy@adacore.com>* sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checksqualification of aggregates in formal mode(Is_Top_Level_Aggregate): returns True for an aggregate not contained inanother aggregate(Resolve_Aggregate): complete the test that an aggregate is adequatelyqualified in formal mode2011-08-02 Pascal Obry <obry@adacore.com>* make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.* mlib-prj.adb: Supress warning when compiling binder generated file.(Build_Library): Supress all warnings when compiling the bindergenerated file.2011-08-02 Yannick Moy <moy@adacore.com>* errout.adb, errout.ads (Check_Formal_Restriction): move procedurefrom here...* restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here* sem_aggr.adb, sem_ch5.adb, sem_util.adb:Add with/use clauses to make Check_Formal_Restriction visible2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch12.adb (Check_Generic_Actuals): handle properly actualin-parameters when type of the generic formal is private in the genericspec and non-private in the body.2011-08-02 Claire Dross <dross@adacore.com>* a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,a-cofove.adb, a-cofove.ads: New files implementing formal containers.* impunit.adb, Makefile.rtl: Take new files into account.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.2011-08-02 Yannick Moy <moy@adacore.com>* sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check informal mode* sem_util.adb (Matching_Static_Array_Bounds): proper detection ofmatching static array bounds, taking into account the special case ofstring literals* sem_ch3.adb: Typo in comment.2011-08-02 Yannick Moy <moy@adacore.com>* errout.adb, errout.ads (Check_Formal_Restriction): new procedurewhich issues an error in formal mode if its argument node is originallyfrom source* sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a typehas a discriminant specification so that it does not include the caseof derived types(Derived_Type_Declaration): move here the test that a derived type has adiscriminant specification* sem_aggr.adb (Resolve_Record_Aggregate): test the presence of thefirst element of a component association before accessing its choices(presence of component association is not enough)* exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogramdeclaration is a library item before accessing the next element in alist, as library items are not member of lists* sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: useCheck_Formal_Restriction whenever possible.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itypereference when needed.2011-08-02 Bob Duff <duff@adacore.com>* gnat_ugn.texi: Fix typo.2011-08-02 Vincent Celier <celier@adacore.com>* make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension ofarchive file name. Do not use the full path name of archives for OpenVMS.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch12.adb, sem_ch11.adb: New calling sequence forAnalyze_Aspect_Specifications* sem_ch13.adb(Analyze_Aspect_Specifications): New handling for boolean aspects* sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence* sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New callingsequence for Analyze_Aspect_Specifications* sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely* sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used2011-08-02 Robert Dewar <dewar@adacore.com>* freeze.adb (Freeze_Entity): Remove handling of delayed booleanaspects, since these no longer exist.2011-08-02 Robert Dewar <dewar@adacore.com>* par-ch13.adb (Aspect_Specifications_Present): Always return false onsemicolon, do not try to see if there are aspects following it.* par-ch3.adb (P_Declarative_Items): Better message for unexpectedaspect spec.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch8.adb, aspects.ads: Minor reformatting.2011-08-02 Eric Botcazou <ebotcazou@adacore.com>* sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.* sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedureextracted from...(Analyze_Aspect_Specifications): ...here. Call above procedure.2011-08-02 Yannick Moy <moy@adacore.com>* exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formalmode on subprogram declaration outside of package specification, unlessit is followed by a pragma Import* sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,Access_Type_Declaration): issue error in formal mode on access type(Analyze_Incomplete_Type_Decl): issue error in formal mode onincomplete type(Analyze_Object_Declaration): issue error in formal mode on objectdeclaration which does not respect SPARK restrictions(Analyze_Subtype_Declaration): issue error in formal mode on subtypedeclaration which does not respect SPARK restrictions(Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issueerror in formal mode on digits or delta constraint(Decimal_Fixed_Point_Type_Declaration): issue error in formal mode ondecimal fixed point type(Derived_Type_Declaration): issue error in formal mode on derived typeother than type extensions of tagged record types* sem_ch6.adb (Process_Formals): remove check in formal mode, redundantwith check on access definition* sem_ch9.adb (Analyze_Protected_Definition): issue error in formalmode on protected definition.(Analyze_Task_Definition): issue error in formal mode on task definition2011-08-02 Robert Dewar <dewar@adacore.com>* make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.2011-08-02 Javier Miranda <miranda@adacore.com>* sem_ch6.adb (Can_Override_Operator): New function.(Verify_Overriding_Indicator): Add missing code to check overridingindicator in operators. Fixes regression.(Check_Overriding_Indicator): Minor reformating after replacing thecode that evaluates if the subprogram can override an operator byinvocations to the above new function.* einfo.adb(Write_Field26_Name): Add missing code to ensure that, followingthe documentation in einfo.ads, this field is not shown as attribute"Static_Initialization" on non-dispatching functions.2011-08-02 Jose Ruiz <ruiz@adacore.com>* sem_res.adb (Resolve_Call): A call toAda.Real_Time.Timing_Events.Set_Handler violates restrictionNo_Relative_Delay (AI-0211) only when it sets a relative timing event,i.e., when the second parameter is of type Time_Span.2011-08-02 Vincent Celier <celier@adacore.com>* make.adb (Gnatmake): use <library dir>/lib<library name>.a to linkwith an archive instead of -L<library dir> -l<library name>.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,mark the base types In_Use in addition to making the operationsuse_visible.2011-08-02 Ed Falis <falis@adacore.com>* init.c: add and setup __gnat_signal_mask for the exception signals* s-inmaop-vxworks.adb: new file.* s-intman-vxworks.adb: remove unnecessary initializations andsimplify remaining* s-intman-vxworks.ads: remove unnecessary variable* s-taprop-vxworks.adb: simplify signal initialization2011-08-02 Robert Dewar <dewar@adacore.com>* sem_ch8.adb: Minor code reorganization, comment updates.2011-08-02 Robert Dewar <dewar@adacore.com>* sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util* sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Movedhere from Sem_Res.(Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression(Matching_Static_Array_Bounds): Moved here from Sem_Res2011-08-02 Ed Schonberg <schonberg@adacore.com>* atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.* par_ch8.adb (P_Use_Type): initialize Used_Operations for node.* sinfo.ads, sinfo.adb (Used_Operations): new attribute ofuse_type_clauses, to handle more efficiently use_type and use_all_typeconstructs.* sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle theAda2012 Use_All_Type clause.(Use_Class_Wide_Operations): new procedure.2011-08-02 Robert Dewar <dewar@adacore.com>* exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterizedexpression to expression function.2011-08-02 Ed Schonberg <schonberg@adacore.com>* sem_ch4.adb: transform simple Ada2012 membership into equality onlyif types are compatible.2011-08-02 Yannick Moy <moy@adacore.com>* sem_res.adb (Matching_Static_Array_Bounds): new function whichreturns True if its argument array types have same dimension and samestatic bounds at each index.(Resolve_Actuals): issue an error in formal mode on actuals passed asOUT or IN OUT paramaters which are not view conversions in SPARK.(Resolve_Arithmetic_Op): issue an error in formal mode onmultiplication or division with operands of fixed point types which arenot qualified or explicitly converted.(Resolve_Comparison_Op): issue an error in formal mode on comparisons ofBoolean or array type (except String) operands.(Resolve_Equality_Op): issue an error in formal mode on equalityoperators for array types other than String with non-matching staticbounds.(Resolve_Logical_Op): issue an error in formal mode on logical operatorsfor array types with non-matching static bounds. Factorize the code inMatching_Static_Array_Bounds.(Resolve_Qualified_Expression): issue an error in formal mode onqualified expressions for array types with non-matching static bounds.(Resolve_Type_Conversion): issue an error in formal mode on typeconversion for array types with non-matching static bounds2011-08-02 Robert Dewar <dewar@adacore.com>* par-ch10.adb: Minor code reorganization (use Nkind_In).2011-08-02 Ed Schonberg <schonberg@adacore.com>* par-ch9.adb: save location of entry for proper error message.2011-08-02 Javier Miranda <miranda@adacore.com>* sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal(Use_Full_View) which permits this routine to climb through theancestors using the full-view of private parents.* sem_util.adb (Collect_Interfaces_Info, Implements_Interface): SetUse_Full_View to true in calls to Is_Ancestor.* sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View totrue in call to Is_Ancestor.* exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): SetUse_Full_View to true in call to Is_Ancestor.* exp_ch7.adb (Controller_Component): Set Use_Full_View to true incall to Is_Ancestor.* exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): SetUse_Full_View to true in calls to Is_Ancestor.* exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,Make_Select_Specific_Data_Table, Register_Primitive,Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.* exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_Viewto true in call to Is_Ancestor.* exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): SetUse_Full_View to true in calls to Is_Ancestor.* exp_cg.adb(Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.(Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.2011-08-02 Robert Dewar <dewar@adacore.com>* gnat_rm.texi: Minor reformatting.* sem_prag.adb: Minor reformatting.2011-08-02 Tristan Gingold <gingold@adacore.com>* vms_data.ads: Add VMS qualifier for -gnateP.2011-08-02 Robert Dewar <dewar@adacore.com>* par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty* par-ch7.adb (P_Package): Proper placement of aspects for packagedecl/instantiation.* par-endh.adb (Check_End): Ad Is_Sloc parameter(End_Statements): Add Is_Sloc parameterr* par.adb (P_Aspect_Specification): New meaning of Decl = Empty(Check_End): Ad Is_Sloc parameter(End_Statements): Add Is_Sloc parameterr2011-08-02 Vincent Celier <celier@adacore.com>* ug_words: Add VMS qualifier equivalent to -gnateP:/SYMBOL_PREPROCESSING.2011-08-02 Jose Ruiz <ruiz@adacore.com>* gnat-style.texi: For hexadecimal numeric literals the typicalgrouping of digits is 4 to represent 2 bytes.A procedure spec which is split into several lines is indented twocharacters.2011-08-02 Yannick Moy <moy@adacore.com>* exp_aggr.adb (Is_Others_Aggregate): move function to other unit.* sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here(Resolve_Aggregate): issue errors in formal modes when aggregate is notproperly qualified(Resolve_Array_Aggregate): issue errors in formal modes on non-staticchoice in array aggregate(Resolve_Extension_Aggregate): issue errors in formal modes on subtypemark as ancestor(Resolve_Record_Aggregate): issue errors in formal modes on mixedpositional and named aggregate for record, or others in recordaggregate, or multiple choice in record aggregate* sem_res.adb (Resolve_Logical_Op): issue errors in formal mode whenarray operands to logical operations AND, OR and XOR do not have thesame static lower and higher bounds* sem_ch5.adb, sinfo.ads: Correct typos in comments2011-08-01 Robert Dewar <dewar@adacore.com>* sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):Replaces Last_Source_Node_In_Sequence.* err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K* errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but storesparens and blank in string (this was inconsistently implemented).* errout.ads(Set_Error_Msg_Lang): Takes arg with no parens, but stores parens andblank in string (this was inconsistently implemented).* gnat1drv.adb(Set_Global_Switches): Set formal mode switches appropriately* opt.ads, opt.adb: Formal mode is now global switches, more consistent* par-prag.adb(Analyze_Pragma, case SPARK_95): Set opt switches appropriately andcall Set_Error_Msg_Lang to set "spark" as language name.* par.adb: Remove unnecessary call to set formal language for errout* sem_prag.adb (P_Pragma, case SPARK_95): Set opt switchesappropriately and call Set_Error_Msg_Lang to set "spark" as languagename.* sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure andcalls to it, moved after resolution so that types are known* sem_res.adb (Resolve_Op_Concat): issue an error in formal mode ifresult of concatenation is not of type String(Resolve_Op_Concat_Arg): issue an error in formal mode if an operand ofconcatenation is not properly restricted* gnat_rm.texi: Add doc on pragma Spark_95.* gcc-interface/Makefile.in: Remove obsolete target pairs forInterfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.* gcc-interface/Make-lang.in: Update dependencies.2011-08-01 Javier Miranda <miranda@adacore.com>* sem_disp.adb (Override_Dispatching_Operation): Enforce strictness ofcondition that detects if the overridden operation must replace anexisting entity.2011-08-01 Javier Miranda <miranda@adacore.com>* exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expandedcode declarations inserted by Insert_Actions in each alternative of theN_Case_Expression node.2011-08-01 Robert Dewar <dewar@adacore.com>* sem_ch6.adb: Minor code reorganization.* sem_util.adb: Minor reformatting.2011-08-01 Pascal Obry <obry@adacore.com>* prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.* gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.2011-08-01 Yannick Moy <moy@adacore.com>* par-ch4.adb (P_Name): issue a syntax error in SPARK mode on characterliteral or operator symbol which is prefixed* sem_attr.adb (Analyze_Access_Attribute): issue an error in formalmode on access attributes.* sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to checkthat concatenation operands are properly restricted in formal mode(Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedureAnalyze_Concatenation_Operand. Issue an error in formal mode if theresult of the concatenation has a type different from String.(Analyze_Conditional_Expression, Analyze_Explicit_Dereference,Analyze_Quantified_Expression, Analyze_Slice,Analyze_Null): issue an error in formal mode on unsupported constructs* sem_ch5.adb(Analyze_Block_Statement): only issue error on source block statement* sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): newfunction which returns the last node in a list of nodes for whichComes_From_Source returns True, if any* sem_ch6.adb (Check_Missing_Return): minor refactoring to useLast_Source_Node_In_Sequence* sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formalmode on unsupported constructs* sem_ch9.adb Do not return after issuing error in formal mode, as therest of the actions may be needed later on since the error is marked asnot serious.* sinfo.ads: Typos in comments.2011-08-01 Pascal Obry <obry@adacore.com>* projects.texi: Minor editing.2011-08-01 Yannick Moy <moy@adacore.com>* err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables forinsertion character ~~* errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures(Set_Error_Msg_Lang): new procedure which fixes the language for usewith insertion character ~~(Set_Msg_Text): treat insertion character ~~* par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls toFormal_Error_Msg_... procedures by equivalent Error_Msg_...procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Makeerrors related to the formal language restriction not serious(insertion character |).* par.adb (Par): set formal language for error messages if needed* sem_ch6.adb (Check_Missing_Return): take into account possiblegenerated statements at the end of the function* snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable andenumeration value to define a new pragma SPARK_95* opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,SPARK_Version): new type and variables to store the SPARK version(none by default).(SPARK_Mode): return True when SPARK_Version is set* par-prag.adb: Correct indentation(Prag): take Pragma_SPARK_95 into account* sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95into account.2011-08-01 Robert Dewar <dewar@adacore.com>* sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting2011-08-01 Pascal Obry <obry@adacore.com>* prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. PassTarget_Name to Get_Path call.(Parse_Single_Project): Likewise.(Post_Parse_Context_Clause): Likewise.* prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.Call Initialise_Project_Path with the proper Target_Name.(Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnatsearch path.(Get_Path): Add Target_Name parameter. Call Initialise_Project_Pathwith the proper Target_Name.* prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name toPart.Parse routine.(Parse_Project_And_Apply_Config): Likewise.* prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.This is fine as this part of the code is supporting only nativecompilation.* prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. Thisis fine as this part of the code is supporting only native compilation.2011-08-01 Yannick Moy <moy@adacore.com>* sem_util.adb (Enter_Name): issue error in formal mode on declarationof homonym, unless the homonym is one of the cases allowed in SPARK* par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode forpackage declaration occurring after a body.2011-08-01 Robert Dewar <dewar@adacore.com>* checks.adb, exp_ch4.adb: Minor reformatting.2011-08-01 Javier Miranda <miranda@adacore.com>* einfo.ads (Access_Disp_Table): Fix documentation.(Dispatch_Table_Wrappers): Fix documentation.2011-08-01 Pascal Obry <obry@adacore.com>* prj-env.adb, prj-env.ads: Minor reformatting.2011-08-01 Yannick Moy <moy@adacore.com>* sem_util.ads, sem_util.adb, par.adb, par_util.adb(Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): moveprocedures out of these packages.* errout.ads, errout.adb(Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): moveprocedures in of this package(Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE* par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK modeon misplaced later vs initial declarations, like in Ada 83* sem_attr.adb (Processing for Analyze_Attribute): issue error informal mode on attribute of private type whose full type declarationis not visible* sem_ch3.adb (Analyze_Declarations): issue error in formal mode on apackage declaration inside a package specification(Analyze_Full_Type_Declaration): issue error in formal mode oncontrolled type or discriminant type* sem_ch6.adb (Analyze_Subprogram_Specification): only issue error onuser-defined operator means that it should come from the source(New_Overloaded_Entity): issue error in formal mode on overloadedentity.* sem_ch6.ads, sem_ch13.ads: typos in comments.2011-08-01 Thomas Quinot <quinot@adacore.com>* atree.adb: Minor reformatting.* checks.adb: Minor reformatting.2011-08-01 Vincent Celier <celier@adacore.com>* s-parame-vms-ia64.ads: Fix typo in commentMinor reformatting* s-parame-vms-restrict.ads: Removed, unused.2011-08-01 Javier Miranda <miranda@adacore.com>* exp_ch3.adb(Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.* sem_ch3.adb(Constrain_Index): Remove side effects in the evaluation of the bounds.* sem_ch3.ads, sem_ch3.adb(Is_Constant_Bound): New extended version of the subprogram that waspreviously located inside function Exp_Ch3.Is_Variable_Size_Array.Moved here since it is shared by routines of sem_ch3 and exp_ch3.* sem_aux.ads (Constant_Value): Fix typo in comment.* checks.adb (Generate_Index_Checks): New implementation which, forarray objects with constant bounds, generates the runtime checkreferencing the bounds of the array type. For other cases this routineprovides its previous behavior obtaining such values from the arrayobject.* sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with itsparent type.* atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy sincewe cannot have semantic interpretations of the new node.2011-08-01 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (Fully_Conformant_Expressions): handle quantifiedexpressions.2011-08-01 Arnaud Charlet <charlet@adacore.com>* sem_ch8.adb: Minor code editing.* s-vxwext.adb: Remove trailing space.* freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header forconsistency with other files.2011-08-01 Thomas Quinot <quinot@adacore.com>* s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.2011-08-01 Ed Schonberg <schonberg@adacore.com>* par-ch10.adb: reject parameterized expressions as compilation unit.* sem_ch4.adb: handle properly conditional expression with overloadedthen_clause and no else_clause.2011-08-01 Tristan Gingold <gingold@adacore.com>* s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Addresslike done by System.Aux_DEC.* env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.2011-08-01 Yannick Moy <moy@adacore.com>* par-endh.adb (Check_End): issue a syntax error in SPARK mode formissing label at end of declaration (subprogram or package)* par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixingof positional and named parameter association* par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper onError_Msg_SP which adds a prefix to the error message giving the nameof the formal language analyzed* sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode foraccess result type in subprogram, unconstrained array as result type,.(Analyze_Subprogram_Declaration): issue an error in formal mode for nullprocedure* sem_ch8.adb: Code clean up.2011-08-01 Javier Miranda <miranda@adacore.com>* sem_ch7.adb (Uninstall_Declarations): Remove useless code.* einfo.ads (Access_Disp_Table): Fix documentation.(Dispatch_Table_Wrappers): Fix documentation.* einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertionsto enforce the documentation of this attribute.(Set_Is_Interface): Cleanup the assertion.* exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locatethe Underlying_Type entity before reading attribute Access_Disp_Table.* exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):Locate the Underlying_Type before reading attribute Access_Disp_Table.* exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locatethe Underlying_Type entity before reading attribute Access_Disp_Table.* exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):Locate the Underlying_Type entity before reading attributeAccess_Disp_Table.2011-08-01 Ed Schonberg <schonberg@adacore.com>* s-poosiz.ads: Additional overriding indicators.2011-08-01 Yannick Moy <moy@adacore.com>* sem_ch5.adb (Analyze_Exit_Statement): add return after error informal mode.(Analyze_Iteration_Scheme): issue error in formal mode when loopparameter specification does not include a subtype mark.* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error informal mode on abstract subprogram.(Analyze_Subprogram_Specification): issue error in formal mode onuser-defined operator.(Process_Formals): issue error in formal mode on access parameter anddefault expression.* sem_ch9.adb (Analyze_Abort_Statement,Analyze_Accept_Statement, Analyze_Asynchronous_Select,Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,Analyze_Delay_Until, Analyze_Entry_Call_Alternative,Analyze_Requeue, Analyze_Selective_Accept,Analyze_Timed_Entry_Call): issue error in formal mode on such constructs* sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):issue error in formal mode on user-defined raise statement.2011-08-01 Thomas Quinot <quinot@adacore.com>* sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about adeclaration being hidden when overriding an implicit inheritedsubprogram.* par-ch10.adb (P_Compilation_Unit): In syntax check only mode(-gnats), do not complain about a source file that contains only apragma No_Body.2011-08-01 Ed Schonberg <schonberg@adacore.com>* sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loopvariable if already set.2011-08-01 Arnaud Charlet <charlet@adacore.com>* g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,s-osinte-mingw.ads: Update to GPLv3 run-time license.Use GNAT instead of GNARL.2011-08-01 Bob Duff <duff@adacore.com>* a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minorreformatting.2011-08-01 Yannick Moy <moy@adacore.com>* debug.adb (d.D) reverve flag for the SPARK mode(d.E) reverve flag for SPARK generation mode(d.F) reverve flag for Why generation mode* opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): Newfunctions which return True when the corresponding modes are set(Formal_Language): return "spark" or "alfa" when in formal verificationmode.* sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper onError_Msg to prefix the error message with a tag giving the formallanguage(Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the errormessage with a tag giving the formal language* sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode onblock statement(Analyze_Case_Statement): issue error in formal mode on case statementwith a single "others" case alternative(Analyze_Exit_Statement): issue errors in formal mode on exitstatements which do not respect SPARK restrictions(Analyze_Goto_Statement): issue error in formal mode on goto statement(Check_Unreachable_Code): always issue an error (not a warning) informal mode on unreachable code (concerns both code after an infiniteloop and after an unconditional jump, both not allowed in SPARK)* sem_ch6.adb (Analyze_Return_Statement): add call toSet_Return_Present for a procedure containing a return statement(already done for functions in Analyze_Function_Return)(Analyze_Function_Return): issue error in formal mode on extendedreturn or if return is not last statement in function(Check_Missing_Return): issue error in formal mode if function doesnot end with return or if procedure contains a return* sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): newfunction to detect if there is an inner scope of its parameter S whichis a loop.2011-08-01 Thomas Quinot <quinot@adacore.com>* sem_ch6.ads: Minor reformatting.2011-08-01 Javier Miranda <miranda@adacore.com>* sem_util.adb (Abstract_Interface_List): Complete condition whenprocessing private type declarations to avoid reading unavailableattribute.(Is_Synchronized_Tagged_Type): Complete condition when processingprivate extension declaration nodes to avoid reading unavailableattribute.2011-08-01 Thomas Quinot <quinot@adacore.com>* sem_ch3.adb: Minor reformatting.2011-08-01 Thomas Quinot <quinot@adacore.com>* s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packagesfor VMS, instead parametrize the common implementation withSystem.Parameters declarations.2011-08-01 Eric Botcazou <ebotcazou@adacore.com>* gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.2011-08-01 Tristan Gingold <gingold@adacore.com>* seh_init.c: Fix SEH handler installation on win64.2011-08-01 Ed Schonberg <schonberg@adacore.com>* sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, preventdouble analysis of an anonymous access to subprogram, because it canlead to improper sharing of profiles and a back-end crash.2011-08-01 Robert Dewar <dewar@adacore.com>* make.adb, sem_ch4.adb: Minor reformatting.* gcc-interface/Make-lang.in: Update dependencies.* sem_util.adb, exp_ch5.adb: Minor reformatting.2011-08-01 Arnaud Charlet <charlet@adacore.com>* gnat_rm.texi: Fix definition of Long_Integer.2011-08-01 Ed Schonberg <schonberg@adacore.com>* exp_aggr.adb: check limit size of static aggregate unconditionally,to prevent storage exhaustion.* exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope beingfinalized is a function body, insert the cleanup code before the finalreturn statement, to prevent spurious warnings.* s-pooglo.ads: add overriding indicator.2011-08-01 Ed Schonberg <schonberg@adacore.com>* sem_ch4.adb (Operator_Check): improve error message when both awith_clause and a use_clause are needed to make operator usage legal.* sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate todetermine whether a compilation unit is visible within an other,either through a with_clause in the current unit, or a with_clause inits library unit or one one of its parents.2011-08-01 Ed Schonberg <schonberg@adacore.com>* exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iteratorover an arbitrary expression of an array or container type.* lib-xref.adb: clarify comment.2011-08-01 Bob Duff <duff@adacore.com>* einfo.ads: Minor reformatting.* debug.adb: Minor comment improvement.2011-08-01 Javier Miranda <miranda@adacore.com>* sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do notconsider hidden subprograms as valid candidates.2011-08-01 Arnaud Charlet <charlet@adacore.com>* make.adb (Compile): Strip -mxxx switches in CodePeer mode.2011-08-01 Vasiliy Fofanov <fofanov@adacore.com>* gnat_ugn.texi: Fix typo.2011-08-01 Robert Dewar <dewar@adacore.com>* i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,lib-xref.adb: Minor reformatting2011-08-01 Gary Dismukes <dismukes@adacore.com>* exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test ofwhen to generate a call to Move_Final_List.(Has_Controlled_Parts): Remove this function.2011-08-01 Geert Bosch <bosch@adacore.com>* par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra"," in choice list.2011-08-01 Thomas Quinot <quinot@adacore.com>* exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error forexplicit raise of a predefined exception as Comes_From_Source if theoriginal N_Raise_Statement comes from source.2011-08-01 Robert Dewar <dewar@adacore.com>* sinfo.ads: Add comment.* sem_ch6.adb: Minor reformatting.2011-08-01 Robert Dewar <dewar@adacore.com>* freeze.adb (Freeze_Entity): Refine check for bad component sizeclause to avoid rejecting confirming clause when atomic/aliased present.2011-08-01 Ed Schonberg <schonberg@adacore.com>* sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS tobetter determine whether an entity reference is a write.* sem_util.adb (Is_LHS): refine predicate to handle assignment to asubcomponent.* lib-xref.adb (Output_References): Do no suppress a read reference atthe same location as an immediately preceeding modify-reference, tohandle properly in-out actuals.2011-08-01 Tristan Gingold <gingold@adacore.com>* env.c (__gnat_setenv) [VMS]: Refine previous change.2011-08-01 Quentin Ochem <ochem@adacore.com>* i-cstrin.adb (New_String): Changed implementation, now uses only theheap to compute the result.2011-08-01 Robert Dewar <dewar@adacore.com>* atree.ads: Minor reformatting.2011-08-01 Emmanuel Briot <briot@adacore.com>* g-expect.adb (Get_Command_Output): Fix memory leak.2011-08-01 Geert Bosch <bosch@adacore.com>* cstand.adb (P_Float_Type): New procedure to print the definition ofpredefined fpt types.(P_Mixed_Name): New procedure to print a name using mixed case(Print_Standard): Use P_Float_Type for printing floating point types* einfo.adb (Machine_Emax_Value): Add preliminary support for quadprecision IEEE float.2011-08-01 Thomas Quinot <quinot@adacore.com>* sem_ch3.adb: Minor reformatting.2011-08-01 Ed Schonberg <schonberg@adacore.com>* sem_ch6.adb (Analyze_Parameterized_Expression): If the expression isthe completion of a generic function, insert the new body rather thanrewriting the original.2011-08-01 Yannick Moy <moy@adacore.com>* sinfo.ads, errout.ads: Typos in comments.2011-08-01 Robert Dewar <dewar@adacore.com>* par-endh.adb: Minor reformatting.2011-08-01 Robert Dewar <dewar@adacore.com>* aspects.ads, aspects.adb: Add aspects for library unit pragmas(Pre_Post_Aspects): New subtype.* par-ch12.adb (P_Generic): New syntax for aspects in packages* par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter* par-ch7.adb (P_Package): Remove Decl parameter(P_Package): Handle new syntax for aspects (before IS)* par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handlenew aspect syntax(P_Task_Definition): Remove Decl parameter, handle new aspect syntax* par.adb (P_Aspect_Specifications): Add Semicolon parameter(P_Package): Remove Decl parameter* sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unitaspects* sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspectspecs* sem_util.ads, sem_util.adb (Static_Boolean): New function* sinfo.ads: Document new syntax for aspects in packages etc.* sprint.adb: Handle new syntax of aspects before IS in package2011-08-01 Thomas Quinot <quinot@adacore.com>* atree.ads: Minor reformatting.* sem_prag.adb: Minor reformatting.2011-08-01 Robert Dewar <dewar@adacore.com>* exp_util.adb (Insert_Actions): Fix error in handling Actions forcase expr alternative.2011-08-01 Ed Schonberg <schonberg@adacore.com>* sem_ch12.adb: Fix typo.2011-08-01 Geert Bosch <bosch@adacore.com>* sem_prag.adb (Check_No_Link_Name): New procedure.(Process_Import_Or_Interface): Use Check_No_Link_Name.* cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)instead of Standard_Long_Long_Float_Size global. Preparation foreventual removal of per type constants.* exp_util.ads (Get_Stream_Size): New function returning the streamsize value of subtype E.* exp_util.adb (Get_Stream_Size): Implement new function.* exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Sizefunction.* exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size* einfo.adb:(Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats2011-08-01 Geert Bosch <bosch@adacore.com>* cstand.adb: Fix comments.* sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicitcount of arguments.2011-08-01 Robert Dewar <dewar@adacore.com>* exp_ch4.adb, sem_cat.adb: Minor reformatting.2011-08-01 Geert Bosch <bosch@adacore.com>* atree.ads: Fix comment.2011-08-01 Robert Dewar <dewar@adacore.com>* aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.* par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.* par.adb: Add with for Namet.Sp.* par-tchk.adb: Minor reformatting.2011-08-01 Vincent Celier <celier@adacore.com>* mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb(Build_Dynamic_Library): Use new function Init_Proc_Name to get the nameof the init procedure of a SAL.* mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):New procedure.2011-08-01 Thomas Quinot <quinot@adacore.com>* exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minorreformatting.2011-08-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>* adaint.c (__gnat_file_time_name_attr): Get rid of warning.2011-08-01 Thomas Quinot <quinot@adacore.com>* sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make functionconformant with its spec (return True only for types that havean overriding Initialize primitive operation that prevents them fromhaving preelaborable initialization).* sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborableinitialization for controlled types in Ada 2005 or later mode.2011-08-01 Robert Dewar <dewar@adacore.com>* aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,Postcondition.(Same_Aspect): New function.* sem_ch13.adb (Analyze_Aspect_Specifications): Add aspectType_Invariant, Precondition, Postcondition.* snames.ads-tmpl: Add Name_Type_Invariant.2011-08-01 Robert Dewar <dewar@adacore.com>* freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Pointhere.(Freeze_All_Ent): Fix error in handling inherited aspects.* sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that isalready analyzed, but don't skip entire processing of a declaration,that's wrong in some cases of declarations being rewritten.(Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.Don't delay for integer, string literalsTreat predicates in usual manner for delay, remove special case code,not needed.(Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point(Build_Predicate_Function): Update saved expression in aspect(Build_Invariant_Procedure): Update saved expression in aspect* exp_ch4.adb (Expand_N_Selected_Component): Only do the optimizationof replacement of discriminant references if the reference is simple.2011-08-01 Robert Dewar <dewar@adacore.com>* aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.* sem_ch13.adb (Analyze_Aspect_Specification): Add processing forStatic_Predicate and Dynamic_Predicate.(Build_Predicate_Function): Add processing for Static_Predicateand Dynamic_Predicate.* sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag(From_Static_Predicate): New flag* snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate2011-08-01 Robert Dewar <dewar@adacore.com>* usage.adb: Documentation cleanup for Ada version modes in usage.* expander.adb: Minor reformatting.2011-08-01 Robert Dewar <dewar@adacore.com>* atree.ads: Minor comment fix.* a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,a-witeio.ads, sem_prag.adb: Minor reformatting.2011-08-01 Doug Rupp <rupp@adacore.com>* env.c (__gnat_setenv) [VMS]: Force 32bit on item list structurepointers. Use descrip.h header file for convenience. Add somecomments.2011-08-01 Robert Dewar <dewar@adacore.com>* freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point(Freeze_All): Call Check_Aspect_At_End_Of_Declarations* sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):New procedure.(Check_Aspect_At_End_Of_Declarations): New procedure(Analye_Aspect_Specification): Minor changes for above procedures* sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspectspecification node as well.2011-08-01 Pascal Obry <obry@adacore.com>* adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on specialWindows files. Use GetFilesAttributes() in this case to check for fileexistence instead of returning with an error code.2011-08-01 Vincent Celier <celier@adacore.com>* a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation whenHigh is above Source length.2011-08-01 Robert Dewar <dewar@adacore.com>* a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.2011-08-01 Robert Dewar <dewar@adacore.com>* aspects.ads (Boolean_Aspects): New subtype.* exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspectsfor derived types in cases where the parent type and derived type haveaspects.* freeze.adb (Freeze_Entity): Fix problems in handling derived typewith aspects when parent type also has aspects.(Freeze_Entity): Deal with delay of boolean aspects (must evaluateboolean expression at this point).* sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects inaccordance with final decision on the Ada 2012 feature.* sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.2011-08-01 Matthew Heaney <heaney@adacore.com>* a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.2011-08-01 Pascal Obry <obry@adacore.com>* a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:Fix Replace_Slice when High is above current string size.(Replace_Slice): Fix DL computation when High is above currentstring length.2011-08-01 Gary Dismukes <dismukes@adacore.com>* gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.2011-08-01 Matthew Heaney <heaney@adacore.com>* a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left childof node.2011-08-01 Pascal Obry <obry@adacore.com>* a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minorreformatting.2011-08-01 Ed Schonberg <schonberg@adacore.com>* sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly namedaccess to protected subprograms in generic bodies.* sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is aprotected type, indicate that the convention of the subprogram isConvention_Protected, because it may be used in subsequent declarationswithin the protected declaration.2011-08-01 Vincent Celier <celier@adacore.com>* mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"and "final" procedures when the name of the library is "ada", to avoidduplicate symbols "adainit" and "adafinal" in executables.2011-08-01 Ed Schonberg <schonberg@adacore.com>* sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly aquantified expression that appears within a postcondition and uses theAda2012 'Result attribute.2011-07-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>* init.c (__gnat_error_handler): Cast reason to int.(__gnat_install_handler): Explain sa_sigaction use.2011-07-24 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If thesubprogram has copy-in copy-out parameters, try to promote the mode ofthe return type if it is passed in registers.2011-07-24 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark theleft operand as addressable.2011-07-24 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/gigi.h (build_function_stub): Remove.(build_return_expr): Likewise.(convert_vms_descriptor): Declare.* gcc-interface/utils.c (convert_vms_descriptor): Make global.(build_function_stub): Move to...* gcc-interface/utils2.c (build_return_expr): Move to...* gcc-interface/trans.c (build_function_stub): ...here.(build_return_expr): ...here.(Subprogram_Body_to_gnu): Add local variable for language_function.Disconnect the parameter attributes cache, if any, once done with it.Call end_subprog_body only after setting the end_locus.Build the stub associated with the function, if any, at the very end.(gnat_to_gnu) <N_Return_Statement>: Remove couple of useless localvariables and streamline control flow.2011-07-23 Arnaud Charlet <charlet@adacore.com>PR ada/49819* gcc-interface/Makefile.in (powerpc-linux): Remove reference tog-trasym-dwarf.adb.2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>PR bootstrap/49794* init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):Assign to act.sa_sigaction.* tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Castcurrent->return_address to char * before arithmetic.2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>* init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.Correct argument types.Extract code from reason.(__gnat_install_handler): Assign to act.sa_sigaction.2011-07-21 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...(GNAT1_OBJS): ...here.2011-07-15 Eric Botcazou <ebotcazou@adacore.com>PR ada/48711* g-socthi-mingw.adb (Fill): Fix formatting.* gcc-interface/gigi.h: Move around comment.2011-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>PR ada/46350* s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.2011-07-14 Florian Weimer <fw@deneb.enyo.de>PR ada/48711* g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.2011-07-13 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bitrange comparison if Pmode is SImode.2011-07-12 Laurent GUERBY <laurent@guerby.net>Eric Botcazou <ebotcazou@adacore.com>* adadecode.c: Wrap up in extern "C" block.* adadecode.h: Likewise.* adaint.c: Likewise. Remove 'const' keyword.* adaint.h: Likewise.* argv.c: Likewise.* atree.h: Likewise.* cio.c: Likewise.* cstreams.c: Likewise.* env.c: Likewise.* exit.c: Likewise.* fe.h: Likewise.* final.c: Likewise.* init.c: Likewise.* initialize.c: Likewise.* link.c: Likewise.* namet.h: Likewise.* nlists.h: Likewise.* raise.c: Likewise.* raise.h: Likewise.* repinfo.h: Likewise.* seh_init.c: Likewise.* targext.c: Likewise.* tracebak.c: Likewise.* uintp.h: Likewise.* urealp.h: Likewise.* xeinfo.adb: Wrap up generated C code in extern "C" block.* xsinfo.adb: Likewise.* xsnamest.adb: Likewise.* gcc-interface/gadaint.h: Wrap up in extern "C" block.* gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.* gcc-interface/misc.c: Likewise.* gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.(GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o andada/targext.o here...(GNAT_ADA_OBJS): ...and not here.(GNAT1_ADA_OBJS): Add ada/b_gnat1.o.(GNATBIND_OBJS): Reorder.2011-07-07 Richard Henderson <rth@redhat.com>* gcc-interface/misc.c (gnat_init_gcc_eh): Don't calldwarf2out_frame_init.2011-07-07 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/misc.c (gnat_init): Tweak previous change.2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>PR target/39150* gcc-interface/Makefile.in: Handle x86_64-solaris2.2011-07-06 Richard Guenther <rguenther@suse.de>* gcc-interface/misc.c (gnat_init): Merge calls tobuild_common_tree_nodes and build_common_tree_nodes_2.Re-initialize boolean_false_node.2011-07-02 Eric Botcazou <ebotcazou@adacore.com>Olivier Hainque <hainque@adacore.com>Nicolas Setton <setton@adacore.com>* gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL onthe type according to the ARTIFICIAL_P parameter.(create_type_decl): Likewise.(create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.2011-07-01 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.(gnatbind): Likewise.2011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>* gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).2011-06-18 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPElocal variable throughout. Remove useless call to Base_Type.(gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.Take it also into account for the volatileness of the field. Set theTREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings.2011-06-18 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAPon a dereference built for a by-ref object if it has an address clause.2011-06-18 Eric Botcazou <ebotcazou@adacore.com>* einfo.ads (Address_Taken): Document use for the second argument ofAsm_Input and Asm_Output attributes.* sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the secondargument is an entity name, then set Address_Taken on it.<Attribute_Asm_Output>: Likewise.* gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle theAttr_Asm_Input and Attr_Asm_Output attributes explicitly.(gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up inmemory and is a CONST_DECL, retrieve its corresponding VAR_DECL.2011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>PR middle-end/46500* gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.2011-06-14 Joseph Myers <joseph@codesourcery.com>* gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.(ada/utils.o): Update dependencies.* gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add../../../libcpp/libcpp.a.* gcc-interface/utils.c: Include common/common-target.h.(process_attributes): Use targetm_common.have_named_sections.2011-06-07 Richard Guenther <rguenther@suse.de>* gcc-interface/misc.c (gnat_init): Do not set size_type_node or callset_sizetype.2011-06-06 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils2.c (gnat_stabilize_reference): Propagate theTREE_THIS_NOTRAP flag.2011-06-06 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:Fix thinko.2011-06-06 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (Identifier_to_gnu): Also handle deferredconstants whose full view has discriminants specially.2011-06-06 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils.c: Include diagnostic.h.(gnat_write_global_declarations): Output debug information for allglobal type declarations before finalizing the compilation unit.* gcc-interface/Make-lang.in (ada/utils.o): Add dependency.2011-05-25 Jakub Jelinek <jakub@redhat.com>* gcc-interface/utils.c (def_fn_type): Remove extra va_end.2011-05-25 Kai Tietz <ktietz@redhat.com>* adaint.c (__gnat_to_canonical_file_list_next): Use arrayinitialization instead of const/none-const pointer assignment.2011-05-24 Joseph Myers <joseph@codesourcery.com>* gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include$(EXTRA_GNAT1_OBJS).(GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).(EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.(gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.* gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Uselibcommon-target.a instead of prefix.o.2011-05-21 Joseph Myers <joseph@codesourcery.com>PR ada/49097* gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).2011-05-20 Joseph Myers <joseph@codesourcery.com>* gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.* gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.ainstead of version.o.2011-05-18 Kai Tietz <ktietz@redhat.com>* gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Useboolean_false_node instead of integer_zero_node.(convert_with_check): Likewise.* gcc-interface/decl.c (choices_to_gnu): Likewise.2011-05-12 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (call_to_gnu): In the by-reference case, if thetype of the parameter is an unconstrained array, convert the actual tothe type of the formal in the In Out and Out cases as well.2011-05-11 Nathan Froyd <froydnj@codesourcery.com>* gcc-interface/utils.c (def_fn_type): Don't call build_function_type;call build_function_type_array or build_varargs_function_type_arrayinstead.(create_subprog_type): Don't call build_function_type; callbuild_function_type_vec instead.2011-05-11 Nathan Froyd <froydnj@codesourcery.com>* gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.(TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.(TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.2011-05-07 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.* gcc-interface/gigi.h (global_bindings_p): Adjust prototype.* gcc-interface/utils.c (global_bindings_p): Return bool and simplify.2011-05-05 Nathan Froyd <froydnj@codesourcery.com>* gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.2011-05-05 Nathan Froyd <froydnj@codesourcery.com>* gcc-interface/decl.c (intrin_arglists_compatible_p): Use iteratorsinstead of accessing TYPE_ARG_TYPES directly.* gcc-interface/utils.c (handle_nonnull_attribute): Likewise.2011-05-05 Eric Botcazou <ebotcazou@adacore.com>PR ada/48844* gcc-interface/gigi.h (get_variant_part): Declare.* gcc-interface/decl.c (get_variant_part): Make global.* gcc-interface/utils2.c (find_common_type): Do not return T1 if thetypes have the same constant size, are record types and T1 has avariant part while T2 doesn't.2011-05-05 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils.c (begin_subprog_body): Do not callget_pending_sizes.(end_subprog_body): Likewise.2011-05-04 Richard Guenther <rguenther@suse.de>* gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument toint_const_binop.(pos_to_constructor): Likewise.2011-05-03 Nathan Froyd <froydnj@codesourcery.com>Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (gigi): Call build_function_type_list insteadof build_function_type. Adjust calls to...(build_raise_check): ...this. Do not take a void_tree parameter.Call build_function_type_list instead of build_function_type.Fix head comment and swap couple of conditional blocks.2011-04-30 Eric Botcazou <ebotcazou@adacore.com>* gnatvsn.ads (Library_Version): Bump to 4.7.(Current_Year): Bump to 2011.2011-04-29 Michael Matz <matz@suse.de>* gcc-interface/misc.c (gnat_handle_option): Setwarn_maybe_uninitialized.2011-04-23 Gerald Pfeifer <gerald@pfeifer.com>* gnat_ugn.texi (Complexity Metrics Control): Update link tothe Watson/McCabe paper.2011-04-23 Jim Meyering <meyering@redhat.com>* gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/2011-04-22 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPEonto the new type.2011-04-22 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAGparameter.* gcc-interface/utils.c (create_subprog_decl): Likewise. SetDECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: AddARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.<all>: Do not set flags on the reused DECL node coming from an alias.Set DECL_IGNORED_P on the DECL node built for subprograms if theydon't need debug info here...* gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.(gigi): Adjust calls to create_subprog_decl.(build_raise_check): Likewise.(establish_gnat_vms_condition_handler): Likewise.(Compilation_Unit_to_gnu): Likewise.(gnat_to_gnu): Likewise.2011-04-21 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.(NO_REORDER_ADAFLAGS): New variable.(EXTRA_GNATTOOLS): Always define.(../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.Clean up and adjust list of files compiled with special options.* gcc-interface/Make-lang.in: Likewise.(ada/decl.o): Cosmetical change.(ada/misc.o): Remove dependency on $(PLUGIN_H).2011-04-20 Jim Meyering <meyering@redhat.com>* initialize.c (__gnat_initialize): Remove useless if-before-free.2011-04-17 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with$(CFLAGS) on the link line.2011-04-17 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare thepadded type built for the return type if it is unconstrained.2011-04-14 Nathan Froyd <froydnj@codesourcery.com>* gcc-interface/utils.c (gnat_poplevel): Use block_chainon.2011-04-12 Nathan Froyd <froydnj@codesourcery.com>* gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMONbefore calling TREE_CHAIN.* gcc-interface/misc.c (gnat_init_ts): New function.(LANG_HOOKS_INIT_TS): Define.2011-04-12 Martin Jambor <mjambor@suse.cz>* gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_nodeinstead of cgraph_node.2011-04-08 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimumalignment on fields of the RETURN type built for the Copy-In Copy-Outmechanism.2011-04-08 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (Identifier_to_gnu): Do not return initializersof aggregate types that contain a placeholder.2011-04-08 Nathan Froyd <froydnj@codesourcery.com>* gcc-interface/utils.c (handle_sentinel_attribute): Don't useTYPE_ARG_TYPES.(handle_type_generic_attribute): Likewise.2011-04-04 Eric Botcazou <ebotcazou@adacore.com>PR ada/47163* s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.2011-04-04 Kai Tietz <ktietz@redhat.com>PR ada/47163* s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targetsto flag value.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils2.c (build_allocator): In the unconstrained arraytype case, do not strip a padding type around the array type.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils.c (update_pointer_to): Finalize named pointertypes.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.* gcc-interface/misc.c (gnat_handle_option): Remove special handlingcode for -feliminate-unused-debug-types.(gnat_post_options): Likewise.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificialdeclaration of a pointer type, then set DECL_ORIGINAL_TYPE to adistinct copy.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity): Do not force theDECL_ARTIFICIAL flag on enumeration types.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not makefat pointer types artificial unconditionally.<E_Array_Subtype>: Attach the base array type as a parallel type if itisn't artificial.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/gigi.h (get_dummy_type): Declare.(build_dummy_unc_pointer_types): Likewise.(finish_fat_pointer_type): Likewise.* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummyfat pointer type has been built, complete it in place.<E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fatand thin pointers. Remove useless variable.(finish_fat_pointer_type): Make global and move to...* gcc-interface/utils.c (finish_fat_pointer_type): ...here.(get_dummy_type): New function.(build_dummy_unc_pointer_types): Likewise.(gnat_pushdecl): Propage the name to the anonymous variants only.(update_pointer_to): Only adjust the pointer types in the unconstrainedarray case.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set itif this is a Taft amendment type and the full declaration is available.* gcc-interface/trans.c (process_type): Likewise.If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.(process_freeze_entity): Likewise.* gcc-interface/utils.c (dummy_global): New static variable.(gnat_write_global_declarations): If there are types declared as usedat the global level, insert them in the global hash table.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.* gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificialdeclaration of an array type, then set DECL_ORIGINAL_TYPE to a distinctcopy.(record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIALflag of the type accordingly.* gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.2011-04-02 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Deferfinalizing types when updating the pointers to the designated type.<all>: Finalize the deferred types even if we didn't defer processingof incomplete types in this invocation.2011-04-01 Olivier Hainque <hainque@adacore.com>Nicolas Setton <setton@adacore.com>Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/misc.c (gnat_descriptive_type): New function.(LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.2011-03-28 Kai Tietz <ktietz@redhat.com>* gcc-interface/Makefile.in (SO_LIB): Handle multilib build for nativeWindows targets.(EH_MECHANISM): Use GCC exception mechanism for native Windows targets.* system-mingw.ads (System): Change ZCX_By_Default default to True.* raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.2011-03-28 Tristan Gingold <gingold@adacore.com>PR ada/44431* gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.Use ada output of gnatbind.(ada/b_gnatb.adb): Ditto.(ada/b_gnat1.o, ada/b_gnatb.o): New rules.(ada.mostlyclean, ada.stage1)(ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)(ada.stagefeedback): Adjust.* gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.Use ada output of gnatbind.(b_gnatm.adb): Ditto.(b_gnatl.o, b_gnatm.o): New rules.2011-03-26 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECLfor the padded type built to support a specified size or alignment.2011-03-26 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Deferunconditionally to the end of the unit when the designated type islimited_with'ed.<all>: Rename local variable. Attempt to un-defer types only and do itfor limited_with'ed types as well.(finalize_from_with_types): Adjust comment. Rename variable and tidy.* gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNITconsistently and remove redundant call to finalize_from_with_types.2011-03-26 Eric Botcazou <ebotcazou@adacore.com>* inline.adb (Back_End_Cannot_Inline): Lift restriction on calls tosubprograms without a previous spec declared in the same unit.* gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlinedsubprograms at the end of the unit instead of at the beginning.* gcc-interface/utils.c (create_subprog_decl): Check that the entityisn't public for the special handling of non-inline functions nestedinside inline external functions.2011-03-25 Jeff Law <law@redhat.com>* gcc-interface/utils.c (def_fn_type): Add missing va_end.2011-03-24 Eric Botcazou <ebotcazou@adacore.com>* einfo.ads (Size_Depends_On_Discriminant): Adjust description.* layout.adb (Compute_Size_Depends_On_Discriminant): New procedureto compute Set_Size_Depends_On_Discriminant.(Layout_Type): Call it on array types in back-end layout mode.* sem_util.adb (Requires_Transient_Scope): Return true for arraytypes only if the size depends on the value of discriminants.* gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHStype if the RHS is a call to a function that returns an unconstrainedtype with default discriminant.2011-03-24 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case ofnon-conversion to the nominal result type at the end.2011-03-23 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (create_temporary): New function taken from...(create_init_temporary): ...here. Call it.(call_to_gnu): Create the temporary for the return value early, if any.Create it for a function with copy-in/copy-out parameters if there isno target; in other cases of copy-in/copy-out, use another temporary.Push the new binding level lazily. Add and rename local variables.2011-03-23 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (validate_size): Improve comments and tweakerror message.(set_rm_size): Likewise.2011-03-23 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECLfor the padded type built in order to support a specified alignment.Fix incorrect formatting.2011-03-21 Eric Botcazou <ebotcazou@adacore.com>PR bootstrap/48216* gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.2011-03-21 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (components_to_record): Add REORDER parameter,rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameterto the end of the list. Adjust recursive call. Rename local variable.If REORDER is true, reorder components of the record type.(gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument tocomponents_to_record and adjust the parameter list.2011-03-21 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (elaborate_expression_1): When optimization isdisabled, use the variable for bounds of loop iteration scheme.2011-03-21 Kai Tietz <ktietz@redhat.com>PR target/12171* gcc-interface/utils.c (gnat_internal_attribute_table): Add column.2011-03-17 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c (elaborate_expression_1): Try harder to findout whether the expression is read-only. Short-circuit placeholdercase and rename a couple of local variables.2011-03-17 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/gigi.h (smaller_form_type_p): Declare.* gcc-interface/trans.c (smaller_form_type_p): Make global and move...* gcc-interface/utils.c (smaller_form_type_p): ...to here.(convert): Deal with conversions from a smaller form type specially.2011-02-14 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/misc.c (gnat_init_options): Do not concatenate -I andits argument, except for the special -I- switch.2011-02-12 Gerald Pfeifer <gerald@pfeifer.com>* gnat_ugn.texi (Compiling Different Versions of Ada): Update link to"Ada Issues".2011-02-08 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.2011-02-03 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead ofGNAT_FORMAL.* gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...* gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPEinstead of GNAT_FORMAL. Protect the expression against multiple uses.Do not generate the check directly, instead instantiate the templatecheck present in the descriptor.(make_descriptor_field): Move around.(build_vms_descriptor32): Build a template check in the POINTER field.(build_vms_descriptor): Remove useless suffixes.* gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.2011-01-26 Eric Botcazou <ebotcazou@adacore.com>PR bootstrap/47467* targext.c: Include target files if IN_RTS is defined.2011-01-26 Richard Guenther <rguenther@suse.de>PR bootstrap/47467* targext.c: Include config.h.* gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)dependency.2011-01-04 Pascal Obry <obry@adacore.com>Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.2011-01-04 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of theend-of-case on the end label and its associated gotos, if any.2011-01-04 Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate theexpressions of the parameter cache within the statement group ofthe CICO mechanism.2011-01-04 Olivier Hainque <hainque@adacore.com>Eric Botcazou <ebotcazou@adacore.com>* gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.(set_end_locus_from_node): New function.(Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR wemake and the function end_locus.(Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locusfor the elaboration subprogram.(set_gnu_expr_location_from_node) <default case>: Use it to attempt toset the end_locus of the expression as well.2011-01-04 Eric Botcazou <ebotcazou@adacore.com>PR ada/47131* gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not makevariables that are referenced in exception handlers volatile.Copyright (C) 2011 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
