blob: d6dd46a2e79a6e9c74b3e4e16ef655b501577e8c [file] [log] [blame]
2011-12-23 Pascal Obry <>
* (For_Every_Project_Imported): Add In_Aggregate_Lib
parameter to generic formal procedure.
* prj.adb (For_Every_Project_Imported): Update accordingly.
(Recursive_Check): Likewise. Do not parse imported project for
aggregate library. This is needed as the imported projects are
there 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 with
For_Every_Project_Imported generic procedure.
* prj-nmsc.adb (Tree_Processing_Data): Add In_Aggregate_Lib field.
(Check): Move where it is used. Fix implementation
to not check libraries that are inside aggregate libraries.
(Recursive_Check): Add In_Aggregate_Lib parameter.
2011-12-23 Ed Schonberg <>
* sem_ch7.adb (Analyze_Package_Body, Has_Referencer): A generic
package is a referencer regardless of whether there is a
subsequent subprogram with an Inline pragma.
2011-12-23 Geert Bosch <>
* sem_ch3.adb (Can_Derive_From): Check matching Float_Rep on VMS.
2011-12-23 Pascal Obry <>
* gnatcmd.adb, prj.adb, prj-nmsc.adb: Minor reformatting.
2011-12-22 Hristian Kirtchev <>
* exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Create the objects
associated with exception handling unconditionally.
(Build_Adjust_Statements): Create the objects associated with
exception handling unconditionally.
(Build_Components): Create the objects associated with exception
handling unconditionally.
(Build_Finalize_Statements): Create the objects associated with
exception handling unconditionally.
(Build_Initialize_Statements): Create the objects associated with
exception handling unconditionally.
(Build_Object_Declarations): Set the proper location of the data
record when exception propagation is forbidden.
2011-12-22 Gary Dismukes <>
* a-tienio.adb (Put): Test validity of Item parameters before
applying Image, and raise Constraint_Error for invalid values.
2011-12-22 Bob Duff <>
* (Initialize,Adjust,Finalize): Add overriding indicators.
* (AFCB_Allocate,AFCB_Close,AFCB_Free,Read,Write): Add
overriding indicators.
2011-12-22 Arnaud Charlet <>
* Update header to GPLv3
2011-12-22 Ed Schonberg <>
*, a-cohase.adb: Update to latest RM version. Add
aspect Constant_Reference to set type, and corresponding
*, a-cihama.adb: Update to latest RM version. Add
function Reference to provide a proper element iterator construct
over indefinite maps.
2011-12-22 Ed Schonberg <>
* exp_attr.adb (Expand_N_Attribute, case 'Access): Do not insert
implicit conversion on prefix of Unrestricted_Access when prefix
is an explicit dereference.
2011-12-22 Vincent Pucci <>
* sem_dim.adb: Addressed all ??? comments. Replacement of warnings by
errors using continuation marks.
(Error_Dim_Msg_For_?): Renaming of Error_Dim_For_?.
2011-12-22 Robert Dewar <>
* sem_ch3.adb,, 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 <>
*, sem_ch3.adb (Check_CPP_Type): New subprogram.
(Process_Full_View): Invoke Check_CPP_Type if processing the
full-view of a CPP type.
* sem_prag.adb (Process_Import_Or_Interface): Add missing support
for importing a CPP type that has an incomplete declaration. Move
to new routine Check_CPP_Type the code that verifies that
components of imported CPP types do not have default expressions.
2011-12-21 Vincent Celier <>
* prj-nmsc.adb (Report_No_Sources): Remove argument Lang. Report
no 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 <>
* sem_ch6.adb (Process_Formals): Add defensive code.
2011-12-21 Ed Schonberg <>
* sem_ch7.adb, sem_ch13.adb (Analyze_Package_Specification): Build the
invariant procedure of a type declaration that is a completion and has
aspect specifications.
(Build_Invariant_Procedure): If the procedure is built for a
type declaration that is a completion, analyze body expliitly
because all private declarations have been already analyzed.
2011-12-21 Claire Dross <>
* a-cfdlli.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb,
a-cofove.adb: Minor reformating on formal containers
2011-12-21 Vincent Celier <>
* makeutl.adb (Mains.Complete_Mains.Do_Complete): Remove
any main that is not in the list of restricted languages.
(Insert_Project_Sources.Do_Insert): Only add sources of languages
in the list of restricted languages.
2011-12-21 Ed Schonberg <>
* sem_res.adb (Valid_Conversion): A type conversion is valid when
the target type is an anonymous access type and the operand is a
rewriting of an allocator. The conversion is typically inserted
when the designated type is an interface.
2011-12-21 Ed Schonberg <>
* exp_ch9.adb (Establish_Task_Master): If the enclosing block
has no declarations, create new declarative list for it.
2011-12-21 Matthew Heaney <>
* a-rbtgbk.adb (Generic_Conditional_Insert): Fixed incorrect comment.
2011-12-21 Yannick Moy <>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not
ignore representation attributes in Alfa mode, since formal
verification backend does not depend on actual physical
representation, but code may still refer to attribute values.
2011-12-21 Yannick Moy <>
* par-ch13.adb (P_Aspect_Specifications): Recognize the cases
where a comma between two aspects is missing, or erroneously
replaced by a semicolon, issue an error and proceed with next
* par.adb, Fix typos.
2011-12-21 Ed Schonberg <>
* sem_util.adb (Mark_Coextensions): A coextension for an
object 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 <>
* a-crbtgk.adb (Generic_Conditional_Insert): Fixed incorrect comment.
2011-12-21 Ed Schonberg <>
* sem_ch5.adb (Analyze_Iterator_Specification): If the name
of an element iterator is not an entity name we introduce a
local renaming declaration for it. To prevent spurious warnings
on parameterless function calls that return a container, when
expansion is disabled (either explicitly or because of a previous
errors) the name must be marked as not coming from source.
2011-12-21 Arnaud Charlet <>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Separate
handling in CodePeer mode and only ignore Component_Size
2011-12-21 Robert Dewar <>
* sem_ch6.adb (Process_Formals): Set proper mechanism for
formals whose types have conventions Ada_Pass_By_Copy or
2011-12-21 Arnaud Charlet <>
* gnat1drv.adb (Gnat1Drv): Always delete old scil files in
CodePeer mode.
2011-12-21 Robert Dewar <>
* comperr.adb: Minor reformatting.
2011-12-21 Ed Schonberg <>
* New table Base_Aspect, to indicate that an aspect
is 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 <>
* gnat_ugn.texi,, prj-nmsc.adb, prj-attr.adb, projects.texi, Use Encapsulated instead of Fully Standalone library.
2011-12-21 Pascal Obry <>
* adaint.c (__gnat_is_executable_file_attr) [_WIN32]: Add parentheses
to kill warning.
2011-12-21 Arnaud Charlet <>
* 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 <>
*, a-cdlili.adb,, prj.adb, prj-nmsc.adb,
a-cbdlli.adb,, a-cfdlli.adb: Minor reformatting.
2011-12-21 Vincent Pucci <>
* s-diflio.adb,, s-diinio.adb,, Fix header.
2011-12-21 Thomas Quinot <>
* thread.c, s-oscons-tmplt.c, init.c (pthread_condattr_setclock): For
AIX 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 <>
*, sem_ch8.adb: Minor reformatting.
* sem_prag.adb: Minor comment clarification.
2011-12-21 Vincent Celier <>
* prj-nmsc.adb (Report_No_Sources): New argument Lang for the
language name as a Name_Id. Do not report no sources if language
is 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
* (Add_Restricted_Language): New procedure
(Is_Allowed_Language): New function
2011-12-21 Robert Dewar <>
* exp_ch5.adb, sem_dim.adb,, sem_ch12.adb, prj-conf.adb:
Minor reformatting.
2011-12-21 Claire Dross <>
* (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 <>
* gnat_ugn.texi: Minor reformatting.
2011-12-21 Ed Schonberg <>
* exp_ch5.adb (Expand_Iterator_Loop): The cursor operation
Has_Element is the formal of Iterator_Interfaces, and within
the instantion of this package it is a renaming of some local
function with an unrelated name. Retrieve the operation from
the instance itself, not from the container package.
2011-12-21 Vincent Pucci <>
* exp_ch6.adb (Expand_Call): Expand_Put_Call_With_Dimension_String
replaced by Expand_Put_Call_With_Dimension_Symbol
* sem_ch12.adb (Analyze_Package_Instantiation): New check for
System.Dim_Float_IO and System.Dim_Integer_IO instantiation.
* sem_ch3.adb (Analyze_Declarations): Removed
Remove_Dimension_In_Declaration call.
* sem_dim.adb: Update comments. Redefine the
representation of a Rational. Propagate all changes involving
data structures and types throughout the pakage. Output the
dimension 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. Return
a string with the dimensions of the parameter.
(From_Dimension_To_String_Of_Symbols): Renaming of
* Update comments.
(Is_Dim_IO_Package_Instantiation): New routine.
(Remove_Dimension_In_Declaration): Removed.
* sem_res.adb (Resolve_Op_Expon): Reorganized calls of
Eval_Op_Expon_For_Dimensioned_Type and Eval_Op_Expon.
*, Update comments.
2011-12-21 Pascal Obry <>
* prj-attr.adb, Add Library_Standalone,
Library_Fully_Standalone_Options and
Library_Fully_Standalone_Supported attributes.
* prj-nmsc.adb (Check_Library): Update check to take into
account fully standalone libraries. Such shared libraries can
only depend on static libraries.
(Check_Stand_Alone_Library): Add support for fully standalone libraries.
(Process_Project_Level_Simple_Attributes): Store value for
configuration attribute Library_Fully_Standalone_Supported.
*, makeutl.adb (Standalone): New enumeration type.
(Project_Data): Standalone_Library now of type Standlone.
(Project_Configuration): Add Lib_Fully_Standalone_Supported
(Default_Project_Config): Initialize new Lib_Fully_Standalone_Supported
* 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 for
2011-12-21 Thomas Quinot <>
* gnatls.adb (Gnatls): Call Set_Standard_Error at startup, and then
Set_Standard_Output just before producing normal (non-diagnostic)
* gnatcmd.adb (Gnatcmd): Call Set_Standard_Error at initialization
(and again after parsing project files).
2011-12-21 Vincent Celier <>
* prj-conf.adb (Do_Autoconf): When the object directory does
not exist, create auto.cgpr in the directory where temporary
files are created.
2011-12-20 Ed Schonberg <>
* sem_ch12.adb (Insert_Freeze_Node_For_Instance): Further
refinements on the placement of a freeze node for a package
instantiation, when the generic appears within a previous
instantiation in the same unit.If the current instance is within
the one that contains the generic, the freeze node for the
current one must appear in the current declarative part. Ditto
if the current instance is within another package instance. In
these cases the freeze node of the previous instance is is not
relevant. New predicate Enclosing_Body simplifies the process.
(Freeze_Subprogram_Body): Rename Enclosing_Body to
Enclosing_Package_Body, to prevent confusion with subprogram of
same name elsewhere.
(Install_Body): Recognize enclosing subprogram bodies to determine
whether freeze_node belongs in current declarative list.
2011-12-20 Robert Dewar <>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Allow
attribute definition clause for renaming if generated internally
and generate duplicate clause to apply to renamed object.
(Rep_Item_Too_Late): Only diagnose source level entities
* prj-nmsc.adb: Minor reformatting.
* gcc-interface/ Update dependencies.
2011-12-20 Bob Duff <>
* (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 include
List_Inherited_Aspects in -gnatwa.
2011-12-20 Ed Schonberg <>
* checks.adb (Apply_Type_Conversion_Checks): For a discrete type
with predicates, indicate unconditionally that a range check
is needed.
* exp_ch4.adb (Expand_N_In): When the membership test is rewritten
to incorporate a call to a predicate function, analyze expression
with checks suppressed, to prevent infinite recursion.
2011-12-20 Hristian Kirtchev <>
* exp_ch11.adb (Find_Local_Handler): Guard the
search over individual exception choices in case the list of
handlers contains other (possibly illegal) constructs.
2011-12-20 Gary Dismukes <>
* sem_ch8.adb (Find_Type): Test taggedness
of the Available_Type when checking for an illegal use of an
incomplete type, when the incomplete view is a limited view of
a type. Remove redundant Is_Tagged test.
2011-12-20 Hristian Kirtchev <>
* exp_util.adb: Add with and use clause for Aspects.
(Is_Finalizable_Transient): Objects which denote Ada containers
in the context of iterators are not considered transients. Such
object must live for as long as the loop is around.
(Is_Iterated_Container): New routine.
2011-12-20 Hristian Kirtchev <>
* exp_imgv.adb (Expand_Width_Attribute): Add a
type conversion from the enumeration subtype to its base subtype.
2011-12-20 Hristian Kirtchev <>
* sem_ch4.adb (Operator_Check): Update the call to
* sem_dim.adb: Remove with and use clause for Namet.Sp. Reorganize
all type declarations and datastructures involved. Propagate
all changes involving data structures and types throughout
the pakage. Alphabetize all subprograms. Add ??? comments.
(AD_Hash): Removed.
(Analyze_Aspect_Dimension): Rewritten. This
routine now does all its checks in one pass rather than
two. 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.
* Rewrite the top level description of the
package. Alphabetize subprograms. Add various comments on
subprogram usage. Add ??? comments.
Renamed to Has_Dimension_System.
* sem_res.adb (Resolve_Op_Expon): Update the call to Is_Dimensioned_Type
2011-12-20 Ed Schonberg <>
* sem_ch13.adb (Check_Indexing_Functions): The return type of an
indexing function can be the default element type, and does not
need to be a reference type.
* sem_ch4.adb (Try_Container_Indexing): Ditto.
2011-12-20 Robert Dewar <>
*, sem_cat.adb, sem_ch10.adb: Minor reformatting.
2011-12-20 Bob Duff <>
* s-taprop-mingw.adb (Yield): Do_Yield is no longer Unreferenced.
2011-12-20 Vincent Pucci <>
* impunit.adb: s-dimkio, s-dimmks and s-dmotpr defined as GNAT
Defined Additions to System.
* Makefile.rtl: s-dimkio, s-dimmks and s-dmotpr added.
*,, New files.
2011-12-20 Gary Dismukes <>
* sem_ch4.adb (Traverse_Homonyms): Allow a homonym to match when
within an instance, even if the homonym is marked Is_Hidden at
this point.
2011-12-20 Robert Dewar <>
* sem_ch3.adb, sem_ch5.adb, s-diinio.adb,, sem_dim.adb,, sem_res.adb, s-stposu.adb,, sem_ch4.adb,
s-diflio.adb,, exp_disp.adb, Minor
* Dimension[_Aspects] are GNAT defined.
2011-12-20 Robert Dewar <>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Check
renaming case.
2011-12-20 Thomas Quinot <>
* sem_cat.adb, sem_ch10.adb (Analyze_With_Clause): For a WITH clause on
a child unit that is an illegal instantiation, mark the WITH clause in
(Install_Siblings, Validate_Categorization_Dependency): Guard
against WITH clause marked as in error.
2011-12-20 Hristian Kirtchev <>
* sem_res.adb (Resolve_Allocator): Warning on allocation
of tasks on a subpool and rewrite the allocator into a raise
Program_Error statement.
*, s-stposu.adb: Code reformatting.
(Create_Subpool): Remove formal parameter Storage_Size.
(Default_Subpool_For_Pool): Add the default implementation of this
(Set_Pool_Of_Subpool): Rename formal parameter Pool to To. Update
all the uses of the parameter.
2011-12-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* gcc-interface/ (%86 linux%):
(LIBGNAT_TARGET_PAIRS): Add either depending on multilib.
2011-12-18 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_param): Add comment about double
* gcc-interface/trans.c (Identifier_to_gnu) <by_ref>: Always set the
TREE_READONLY flag on the first dereference of a double dereference.
2011-12-15 Arnaud Charlet <>
*, s-asthan-vms-ia64.adb, s-auxdec-vms-ia64.adb,
s-memory-vms_64.adb,, s-osinte-vms-ia64.adb,, s-tasdeb-vms.adb: New files.
2011-12-15 Vincent Pucci <>
* aspects.adb, Aspect_Dimension and
Aspect_Dimension_System added
* exp_ch6.adb (Expand_Call): Expand_Put_Call_With_Dimension_String
case added
* gcc-interface/ s-llflex, sem_dim added.
* impunit.adb :s-diflio and s-diinio defined as GNAT Defined
Additions to System.
* Makefile.rtl: s-diflio, s-diinio and s-llflex added
* par-prag.adb, sem_prag.adb: Pragma_Dimension removed
* Expon_LLF added
* sem_aggr.adb (Resolve_Aggregate): handles aggregate for
Aspect_Dimension case
* sem_attr.adb (Resolve_Attribute): analyze dimension for
* sem_ch10.adb (Analyze_With_Clause): Avoid the warning messages
due 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 and
Aspect_Dimension_System cases added
* sem_ch2.adb (Analyze_Identifier): analyze dimension for
* sem_ch3.adb (Analyze_Component_Declaration): analyze dimension
for component declaration (Analyze_Object_Declaration): analyze
dimension for object declaration (Analyze_Subtype_Declaration):
analyze dimension for subtype declaration
* sem_ch4.adb (Operator_Check): checks exponent is a rational
for dimensioned operand for a N_Op_Expon
* sem_ch5.adb (Analyze_Assignment): analyze dimension for
assignment (Analyze_Statements): removal of dimensions in all
* sem_ch6.adb (Analyze_Return_Statement): analyze dimension for
return statement
* sem_ch8.adb (Analyze_Object_Renaming): analyze dimension for
object renaming
* sem_dim.adb, (Analyze_Aspect_Dimension):
analyze the expression for aspect dimension and store the
values in a Htable.
(Analyze_Aspect_Dimension_System): analyze
the expression for aspect dimension system and store the new
system in a Table.
(Analyze_Dimension): propagates dimension
(Expand_Put_Call_With_Dimension_String): add the dimension
string 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 the
expression of the declaration.
(Remove_Dimension_In_Statement): removal of dimension in statement
* sem_res.adb (Resolve): analyze dimension if the node
has already been analyzed.
(Resolve_Arithmetic_Op): analyze
dimension 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 dimension
for 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 for
unchecked type conversion
* 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, New GNAT library generic package
for dimensioned float type IO
* s-diinio.adb, New GNAT library generic package
for dimensioned integer type IO
* (Expon_LLF): exponentiation routine for long long
floats operand and exponent
2011-12-15 Robert Dewar <>
* sem_aggr.adb: Minor comment addition.
2011-12-15 Bob Duff <>
* s-tasren.adb (Task_Count): Do not call Yield; E'Count is not a
task dispatching point.
* s-taprop-mingw.adb (Yield): Do not yield if Do_Yield is False.
2011-12-15 Robert Dewar <>
* sigtramp-ppcvxw.c, sigtramp.h: Fix header.
2011-12-15 Javier Miranda <>
* exp_attr.adb (Expand_N_Attribute_Reference): For 'alignment
applied to a class-wide type under VM targets generate code which
invokes the function Get_Alignment to retrieve the value of the
alignment from the TSD.
* (RE_Get_Alignment): New entity.
2011-12-15 Robert Dewar <>
* g-comlin.adb: Fix header.
2011-12-15 Tristan Gingold <>
* gnatls.adb: Fix typo.
2011-12-15 Ed Falis <>
* s-tpopsp-vxworks.adb: Update comment.
2011-12-15 Ed Schonberg <>
* sem_aggr.adb (Resolve_Array_Aggregate, Resolve_Aggr_Expr); If
the component type has predicates, generate corresponding check.
(Resolve_Record_Aggregate, Resolve_Aggr_Expr): Ditto.
2011-12-13 Cesar Strauss <>
Eric Botcazou <>
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 <>
* s-taprop-mingw.adb: Minor reformatting.
2011-12-12 Nicolas Roche <>
* gcc-interface/ Update dependencies.
Add gnattools4 target when building tools in canadian mode
2011-12-12 Javier Miranda <>
* exp_disp.adb (Make_VM_TSD): Complete previous patch.
2011-12-12 Bob Duff <>
* s-tpobop.adb: Use named notation.
*, Minor comment fix.
2011-12-12 Arnaud Charlet <>
* make.adb: Minor comment update.
2011-12-12 Robert Dewar <>
* freeze.adb, s-taprop-mingw.adb, exp_disp.adb, sem_ch13.adb: Minor
2011-12-12 Robert Dewar <>
* sem_ch6.adb, gnatls.adb: Minor reformatting.
2011-12-12 Ed Schonberg <>
* freeze.adb (Freeze_Entity): If a type declared in a generic
context has predicates, generate a freeze node for it.
* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): If expression
has not been analyzed yet, entity has not been frozen, so analyze
it now.
2011-12-12 Javier Miranda <>
* exp_disp.adb (Make_VM_TSD): Generate code to store the value of
'alignment in the TSD.
2011-12-12 Bob Duff <>
* s-taprop-mingw.adb (Yield): Do not delay 1 millisecond in Annex D
2011-12-12 Hristian Kirtchev <>
* exp_ch4.adb (Expand_N_Allocator): Update the master of an
anonymous access-to-controlled type to utilize the heterogeneous
master associated with the current unit.
2011-12-12 Ed Schonberg <>
* sem_ch6.adb (Analyze_Expression_Function): If the function
is not a completion, pre-analyze the expression now to prevent
spurious visibility on later entities. The body is inserted at
the end of the current declaration list or package to prevent
early freezing, but the visibility is established at the point
of definition.
2011-12-12 Bob Duff <>
* sem.adb, Add debugging routines.
2011-12-12 Tristan Gingold <>
* gnatls.adb: (gnatls): Also add the objects dir in search list.
2011-12-12 Robert Dewar <>
* exp_atag.adb,, exp_util.adb, exp_attr.adb,
sem_ch13.adb: Minor reformatting.
2011-12-12 Gary Dismukes <>
* sem_ch7.adb (Uninstall_Declarations): Don't
apply check for incomplete types used as a result type for an
access-to-function type when compiling for Ada 2012 or later.
* sem_ch6.adb (Analyze_Subprogram_Declaration):
Specialize error message for interface subprograms that are
not declared abstract nor null (functions can't be declared as
null). Also, remove "(Ada 2005)" from message.
2011-12-12 Robert Dewar <>
* sem_prag.adb (GNAT_Pragma): Check comes from source.
2011-12-12 Robert Dewar <>
* gnatls.adb: Minor reformatting.
2011-12-12 Javier Miranda <>
* (Alignment): New TSD field.
(Max_Predef_Prims): Value lowered to 15 (or 9 in case of
configurable runtime) Update documentation of predefined
primitives since Alignment has been removed.
* Update documentation of slots of dispatching
* exp_disp.adb (Default_Prim_Op_Position): Update slot
values 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
for Max_Predef_Prims; store the value of 'alignment in the TSD.
*, exp_atag.adb (Build_Get_Alignment): New subprogram
that retrieves the alignment from the TSD
* exp_util.adb (Build_Allocated_Deallocate_Proc): For deallocation
of class-wide types obtain the value of alignment from the TSD.
* exp_attr.adb (Expand_N_Attribute_Reference): For 'alignment
applied to a class-wide type invoke Build_Get_Alignment to
generate code which retrieves the value of the alignment from
the TSD.
* (RE_Alignment): New Ada.Tags entity
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): For tagged
types if the value of the alignment is bigger than the Maximum
alignment then set the value of the alignment to the Maximum
alignment and report a warning.
* exp_ch3.adb (Make_Predefined_Primitive_Specs): Do not generate
spec of _alignment.
(Predefined_Primitive_Bodies): Do not generate body of _alignment.
2011-12-12 Gary Dismukes <>
* freeze.adb (Freeze_Expression): Allow freezing of static
scalar subtypes that are prefixes of an attribute, even if not
yet marked static. Such attributes will get marked as static
later in Eval_Attribute (as called from Resolve_Attribute).
* sem_attr.adb (Eval_Attribute): Remove wrong code that does an
early return for attribute prefixes that are unfrozen source-level
types. This code was incorrectly bypassing folding of unfrozen
static subtype attributes in default expressions (the executable
example in the now-deleted comment was in fact illegal).
2011-12-12 Robert Dewar <>
* a-coinve.adb, sem_res.adb, prj-nmsc.adb, a-cobove.adb, a-convec.adb,
gnatls.adb, sem_ch13.adb, prj-env.adb, Minor reformatting.
2011-12-12 Tristan Gingold <>
* gsocket.h: Adjust previous patch.
2011-12-12 Thomas Quinot <>
* exp_disp.adb: Minor reformatting.
2011-12-12 Tristan Gingold <>
* gnatls.adb (Search_RTS): New procedure.
(Scan_Ls_Arg): Move code that search the RTS.
(Gnatls): search the RTS later.
*, prj-env.adb (Get_Runtime_Path): New function.
2011-12-12 Ed Falis <>
* sysdep.c: Fix treatment of VxWorks task options so that run-times
built with __SPE__ get option VX_SPE_TASK while others get VX_FP_TASK.
2011-12-12 Bob Duff <>
* sem_type.adb,, sem_ch4.adb, treepr.adb,
Minor cleanup and fiddling with debug printouts.
2011-12-12 Vincent Celier <>
* prj-nmsc.adb (Get_Directories): For a non extending project,
always get a declared object and/or exec directory if it already
exists, even when there are no sources, but do not create them.
2011-12-12 Bob Duff <>
* sem_res.adb (Resolve): Deal with the case where an abstract
operator is called with operands of type universal_integer.
2011-12-12 Thomas Quinot <>
* par_sco.adb: Minor fix to dominance marker referencing WHILE
2011-12-12 Tristan Gingold <>
* mlib-tgt-specific-xi.adb: (Get_Target_Prefix): Simplify code.
2011-12-12 Thomas Quinot <>
* par_sco.adb: Adjust dominant marker for branches of CASE
2011-12-12 Thomas Quinot <>
* gsocket.h, s-oscons-tmplt.c: Ensure we do not include any system
header file prior to redefining FD_SETSIZE.
2011-12-12 Ed Schonberg <>
* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): In
a generic context the aspect expressions may not have been
preanalyzed if there was no previous freeze point, so the
expressions must be preanalyzed now, and there is no conformance
to check for visibility changes.
2011-12-12 Matthew Heaney <>
* a-convec.adb, a-coinve.adb, a-cobove.adb (Iterator): Use
subtype Index_Type'Base for Index component (Finalize): Remove
unnecessary access check (First, Last): Cursor return value
depends on iterator index value (Iterate): Use start position as
iterator index value (Next, Previous): Forward to corresponding
cursor-based operation.
* a-cborma.adb (Iterate): Properly initialize iterator object (with 0
as node index).
2011-12-12 Robert Dewar <>
* par_sco.adb,, put_scos.adb, get_scos.adb: Minor reformatting.
2011-12-12 Steve Baird <>
* sem_ch3.adb (Check_Completion): Improve a comment.
2011-12-12 Tristan Gingold <>
* cstand.adb: Minor comment fix.
2011-12-11 Eric Botcazou <>
* gcc-interface/utils2.c (gnat_build_constructor): Test the TREE_STATIC
flag of elements to compute that of the constructor.
2011-12-11 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_param): Set the restrict qualifier
on references built for parameters which aren't specifically by-ref.
2011-12-11 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: If there is an
alignment set on a renaming, assert that the renamed object is aligned
enough as to make it possible to honor it.
2011-12-11 Eric Botcazou <>
* gcc-interface/trans.c (gigi): Initialize the linemap earlier.
2011-12-06 Dave Korn <>
* gcc-interface/ (LIBGNAT_TARGET_PAIRS [windows targets]):
Correctly detect cygwin, which no longer has the '32' suffix, and use
appropriate implementations of the sockets and memory packages.
* sysdep.c (WIN_SETMODE): New define to choose the correct spelling of
setmode/_setmode for MinGW and Cygwin, respectively.
(__gnat_set_binary_mode [windows targets]): Use the above, and enable
the windows version for Cygwin as well as MinGW.
(__gnat_set_text_mode [windows targets]): Likewise.
(__gnat_ttyname [windows targets]): Provide a Cygwin implementation
in 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 <>
* sem_ch4.adb: Minor comment fix.
2011-12-05 Robert Dewar <>
* gnat_ugn.texi: Add documentation for -gnatw.e.
2011-12-05 Bob Duff <>
* treepr.adb (pn): Print something useful for
Elmt_Ids. Add Write_Eol to 'when others' case, so the output
will be seen immediately in gdb.
2011-12-05 Ed Schonberg <>
* lib-writ.adb (Output_Main_Program_Line): A generic subprogram
is never a main program.
2011-12-05 Thomas Quinot <>
* par_sco.adb: Various minor adjustments to dominance markers
2011-12-05 Ed Schonberg <>
* sem_ch6.adb (Analyze_Expression_Function): If the function is
a completion, generate a body reference for its defining entity,
before rewriting the node as a body.
* sem_util.adb (Defining_Entity): Add entry for expression
2011-12-05 Bob Duff <>
* sem_ch3.adb (Derive_Progenitor_Subprograms): Add Ultimate_Alias
to the Comes_From_Source check, to deal properly with the case
of indirect inheritance of "=".
2011-12-05 Thomas Quinot <>
PR ada/51307
* s-oscons-tmplt.c: On HP-UX, CLOCK_REALTIME is an enum literal,
not a macro.
2011-12-05 Thomas Quinot <>
* par_sco.adb,, put_scos.adb, get_scos.adb: Generate dominance
information in SCOs.
2011-12-02 Eric Botcazou <>
Thomas Quinot <>
* gcc-interface/ (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/ Update dependencies.
2011-12-02 Javier Miranda <>
* sem_ch3.adb (Constrain_Access): Undo previous
patch for this routine. Required since the RM rule 3.7.1(7/3)
applies to all access types.
2011-12-02 Bob Duff <>
* sem_ch6.adb: Minor comment fix.
2011-12-02 Joel Sherrill <>
* s-tpopsp-rtems.adb: Use ATCB_Key rather than RTEMS_Ada_Self variable
for consistency with other ports.
* s-osinte-rtems.adb: Add body for dummy implementation of
* Add missing clock and rwlock bindings.
* terminals.c: Add __rtems__ conditionals to account for differences
in termios implementation.
2011-12-02 Robert Dewar <>
* sem_ch3.adb, sem_attr.adb, a-comutr.adb, a-cbmutr.adb, Minor reformatting.
2011-12-02 Hristian Kirtchev <>
* exp_dbug.adb: Comment reformatting.
(Get_External_Name): Use Reset_Buffers to reset the contents of
Name_Buffer and Homonym_Numbers.
(Qualify_All_Entity_Names): Reset the contents of Name_Buffer and
Homonym_Numbers before creating a new qualified name for a particular
(Reset_Buffers): New routine.
2011-12-02 Matthew Heaney <>
* (No_Node): Moved declaration from body to spec
* a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Iterator): Derives
from 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 value
2011-12-02 Robert Dewar <>
* usage.adb: Add lines for -gnatw.n and -gnatw.N
(atomic sync info msgs).
2011-12-02 Steve Baird <>
* sem_ch3.adb (Check_Completion): An Ada 2012
generic formal type doesn't require a completion.
2011-12-02 Eric Botcazou <>
* sem_util.adb (Set_Debug_Info_Needed): Also set the flag on the
packed array type if it is to be set on the array type used to
represent it.
2011-12-02 Robert Dewar <>
* gnat_rm.texi: Eliminate confusing use of type name.
2011-12-02 Thomas Quinot <>
* sem_ch10.adb (Analyze_Compilation_Unit): For a library subprogram
body that acts as spec, do not create a shallow copy of the context
clause for the synthetized spec (instead, use the same list as
in the body).
2011-12-02 Bob Duff <>
* gnat_ugn.texi: Clarify usage of -p binder switch.
2011-12-02 Javier Miranda <>
*, sem_util.adb,, 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.
* (Effectively_Has_Constrained_Partial_View): Complete
* 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 <>
* sem_util.adb (Unique_Name): Reach through Unique_Entity to
get the name of the entity.
(Unique_Entity): Correct case for subprogram stubs.
2011-12-02 Yannick Moy <>
* sem_ch3.adb (Check_Initialization): Do not emit warning on
initialization of limited type object in Alfa mode.
2011-12-02 Robert Dewar <>
* Minor reformatting.
* gnat_ugn.texi: Fix confusion in use of term "type name".
2011-12-02 Robert Dewar <>
* sem_ch6.adb: Minor change in error message.
2011-12-02 Robert Dewar <>
* sem_ch9.adb, prj-part.adb,, sem_ch8.adb: Minor
2011-12-02 Javier Miranda <>
* sem_ch3.adb (Constrain_Access): Enable on Ada 2005 mode the
static check of the rule of general access types whose designated
type has discriminants.
*, sem_util.adb
(Effectively_Has_Constrained_Partial_View): New subprogram.
(In_Generic_Body): New subprogram.
* (Has_Constrained_Partial_View): Adding documentation.
* sem_prag.adb (Inside_Generic_Body): Removed. Replaced by new
subprogram In_Generic_Body.
* exp_attr.adb, checks.adb, sem_attr.adb, exp_ch4.adb,
sem_ch4.adb: In addition, this patch replaces the occurrences of
Has_Constrained_Partial_View by
2011-12-02 Matthew Heaney <>
* a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Iterator): Rename
Position 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 <>
* 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 <>
*, Declare iterator factory function.
* a-ciormu.adb, a-ciormu.adb (Iterator): Declare concrete
Iterator 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 <>
* 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 <>
PR bootstrap/51201
* gcc-interface/ 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 <>
* thread.c, s-oscons-tmplt.c: Generate __gnat_pthread_condattr_setup
only on platforms where this is required, as determined by
2011-11-23 Ed Schonberg <>
* sem_ch9.adb: No check on entry index if error on index.
2011-11-23 Gary Dismukes <>
* sem_ch6.adb (Analyze_Return_Statement): Improve error messages for
return statements nested inside an extended_return_statement.
* gcc-interface/ Update dependencies.
* gcc-interface/ (MISCLIB): Add -lutil for BSD targets.
2011-11-23 Ed Schonberg <>
* freeze.adb (Freeze_All_Ent): An incomplete type is not
frozen by a subprogram body that does not come from source.
2011-11-23 Pascal Obry <>
* s-oscons-tmplt.c: Add PTY_Library constant. It contains
the library for pseudo terminal support.
* Add pseudo-terminal library into a Linker_Options
2011-11-23 Ed Schonberg <>
* sem_ch9.adb: No check on entry family index if generic.
2011-11-23 Thomas Quinot <>
* sem_ch9.adb,, 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 on
System.OS_Constants from shared spec of
System.Tasking.Primitive_Operations to the specific body variants
that really require this dependency.
2011-11-23 Ed Schonberg <>
* sem_ch8.adb (Analyze_Subprogram_Renaming_Declaration):
If the declaration has aspects, analyze them so they can be
properly rejected.
2011-11-23 Hristian Kirtchev <>
* 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. Type
Iterator and Child_Iterator are now derived from Limited_Controlled.
(Finalize): New routine.
(Iterate): Add a renaming of counter Busy and
increment it. Update the return aggregate.
(Iterate_Children): Add a renaming of
counter Busy and increment it. Update the return aggregate.
(Iterate_Subtree): Add a renaming of counter Busy and increment
it. Update the return aggregate.
*, Type List_Access is now a general access
* Type Map_Access is now a general access type.
*, Use type Natural for the two locks
associated with the tree.
* Type Map_Access is now a general access type.
*, Type Vector_Access is now a general
access type.
* exp_ch5.adb (Expand_Iterator_Loop): Do not create a block
to wrap the loop as this is done at an earlier step, during
analysis. The declarations of the iterator and the cursor use
the usual Insert_Action mechanism when added into the tree.
* sem_ch5.adb (Analyze_Loop_Statement): Remove local constant
Loop_Statement and replace all respective uses by N. Add local
constant Loc. Preanalyze the loop iterator to discover whether
it is a container iterator and if it is, wrap the loop in a
block. This ensures that any controlled temporaries produced
by 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 < frybin>
* gnat_ugn.texi, Add documentation for new gnatpp option
that controls casing of type and subtype names.
2011-11-23 Yannick Moy <>
* sem_ch3.adb: Minor addition of comments.
2011-11-23 Thomas Quinot <>
* prj-part.adb (Extension_Withs): New global variable,
contains the head of the list of WITH clauses from the EXTENDS
ALL projects for which virtual packages are being created.
(Look_For_Virtual_Projects_For): When recursing through
an EXTENDS ALL, add the WITH clauses of the extending
project to Extension_Withs. When adding a project to the
Virtual_Hash, record the associated Extension_Withs list.
(Create_Virtual_Extending_Project): Add a copy of the appropriate
Extension_Withs to the virtual project.
2011-11-23 Thomas Quinot <>
* mlib-tgt-specific-vxworks.adb: Minor reformatting.
2011-11-23 Thomas Quinot <>
* (Sdefault.Target_Name): Set to
$(target_noncanonical) instead of $(target) for consistency.
2011-11-23 Matthew Heaney <>
* a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Iterator): Declared
Iterator type as limited (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-11-23 Matthew Heaney <>
*,, (Set_Iterator_Interfaces):
Renamed from Ordered_Set_Iterator_Interfaces.
* a-coorse.adb, a-ciorse.adb, a-cborse.adb (Iterator): Declared
Iterator type as limited (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.
*, a-cohase.adb: Implemented forward iterator.
* a-cihase.adb, a-cbhase.adb (Iterator): Removed unnecessary
node component (First, Next): Forward call to corresponding
cursor-based operation (Iterate): Representation of iterator no
longer has node component
2011-11-23 Hristian Kirtchev <>
* exp_intr.adb (Expand_Unc_Deallocation): Ensure that the
dereference has a proper type before the side effect removal
mechanism kicks in.
* sem_ch3.adb (Analyze_Subtype_Declaration): Handle a rare case
where the base type of the subtype is a private itype created
to act as the partial view of a constrained record type. This
scenario manifests with equivalent class-wide types for records
with unknown discriminants.
2011-11-23 Jerome Guitton <>
* s-osprim-vxworks.adb (Clock): Use Clock_RT_Ada.
2011-11-23 Thomas Quinot <>
* s-oscons-tmplt.c: Fix unbalanced preprocessor directives Minor
2011-11-23 Thomas Quinot <>
* Remove old comments.
2011-11-23 Thomas Quinot <>
* exp_imgv.adb: Minor reformatting.
2011-11-23 Robert Dewar <>
* sem_ch9.adb (Analyze_Entry_Declaration): Check for entry
family bounds out of range.
2011-11-23 Matthew Heaney <>
* a-cohama.adb, a-cihama.adb, a-cbhama.adb (Iterator): Declare
type 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 <>
* exp_util.adb: Revert previous change to remove side-effects in Alfa
mode, which is not the correct thing to do for renamings.
2011-11-23 Thomas Quinot <>
*, s-taprop-vxworks.adb, s-taprop-tru64.adb,,,,, s-taprop-solaris.adb, a-exetim-posix.adb,,, s-oscons-tmplt.c,
s-taprop-irix.adb,, Makefile.rtl,,,,,, 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 the
id of the clock providing Ada.Real_Time.Monotonic_Clock.
* thread.c: New file.
(__gnat_pthread_condattr_setup): New function. For platforms where
CLOCK_RT_Ada is not CLOCK_REALTIME, set appropriate condition
variable attribute.
2011-11-23 Yannick Moy <>
* sem_ch3.adb: Restore the use of Expander_Active instead of
Full_Expander_Active, so that the evaluation is forced in Alfa
mode too. Otherwise, we end up with an unexpected insertion in a
place where it is not supposed to happen, on default parameters
of a call.
2011-11-23 Thomas Quinot <>
* prj-pp.adb, Minor new addition: wrapper procedure "wpr"
for Pretty_Print, for use from within gdb.
2011-11-23 Ed Schonberg <>
* exp_ch5.adb (Expand_Iterator_Loop): Wrap the expanded loop
and the cursor declarations in a block, so that the loop variable
is local to the construct.
2011-11-23 Matthew Heaney <>
*,, (Iterate): Returns
type 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 iteration
2011-11-23 Robert Dewar <>
* errout.adb: Minor reformattin (Finalize): Take templates into
account for warning suppression.
* (Set_Specific_Warning_Off): Add Used parameter.
* erroutc.adb: Minor reformatting (Finalize): Take generic
templates into account for warning suppress.
* (Set_Specific_Warning_Off): Add Used parameter.
* sem_prag.adb: Minor reformatting (Analyze_Pragma,
case Warnings): Provide Used parameter in call to
Set_Specific_Warnings_Off (to deal with generic template case).
2011-11-23 Pascal Obry <>
* sem_prag.adb (Process_Convention): Better error message for
stdcall convention on dispatching calls.
2011-11-23 Gary Dismukes <>
* sem_ch4.adb, sem_ch13.adb: Minor reformatting.
2011-11-23 Javier Miranda <>
* exp_ch6.adb (Expand_Simple_Function_Return): Add missing
implicit type conversion when the returned object is allocated
in the secondary stack and the type of the returned object is
an interface. Done to force generation of displacement of the
"this" pointer.
2011-11-23 Pascal Obry <>
* impunit.adb: Add g-exptty and g-tty units.
2011-11-23 Robert Dewar <>
* exp_imgv.adb: Minor code reorganization (use Make_Temporary).
2011-11-23 Robert Dewar <>
* exp_util.adb, par-ch6.adb, sem_res.adb, par-util.adb: Minor
2011-11-23 Yannick Moy <>
* sem_ch13.adb (Analyze_Aspect_Specifications): Place error on
line of precondition/ postcondition/invariant.
2011-11-23 Pascal Obry <>
*, g-exptty.adb,, g-tty.adb,
terminals.c: New files.
Makefile.rtl: Add these new files.
* gnat_rm.texi: Add documentation for GNAT.Expect.TTY.
* gcc-interface/ Add g-exptty, g-tty, terminals.o
* gcc-interface/ Update dependencies.
2011-11-21 Robert Dewar <>
* exp_imgv.adb (Expand_Width_Attribute): Handle case of Discard_Names.
* sem_attr.adb (Eval_Attribute, case Width): Ditto.
2011-11-21 Thomas Quinot <>
* Minor reformatting.
2011-11-21 Yannick Moy <>
* exp_util.adb: Minor reformatting. Update comments.
2011-11-21 Robert Dewar <>
* exp_prag.adb, exp_util.adb,, sem_res.adb, s-stposu.adb,
sem_attr.adb,, s-taprop-solaris.adb, s-taprop-irix.adb,
sem_ch6.adb: Minor reformatting.
2011-11-21 Arnaud Charlet <>
* s-taprop-irix.adb, s-taprop-solaris.adb (Create_Task): Use
Unrestricted_Access to deal with fact that we properly detect the
error if Access is used.
* gcc-interface/ Update dependencies.
2011-11-21 Yannick Moy <>
* exp_prag.adb (Expand_Pragma_Check): Place error on first character
of expression.
* sem_res.adb (Resolve_Short_Circuit): Place error on first
character of expression.
2011-11-21 Yannick Moy <>
* exp_util.adb (Remove_Side_Effects): Do nothing in Alfa mode.
2011-11-21 Hristian Kirtchev <>
* exp_attr.adb (Expand_N_Attribute_Reference, case
Max_Size_In_Storage_Elements): Account for the size of the
hidden list header which precedes controlled objects allocated
on the heap.
* Add RE_Header_Size_With_Padding to the runtime
* sinfo.adb (Header_Size_Added): New routine.
(Set_Header_Size_Added): New routine.
* Add flag Controlled_Header_Added along with
associated comment.
(Header_Size_Added): New inlined routine.
(Set_Header_Size_Added): New inlined routine.
* s-stposu.adb (Allocate_Any_Controlled): Use
Header_Size_With_Padding to calculate the proper
size of the header.
(Deallocate_Any_Controlled): Use
Header_Size_With_Padding to calculate the proper size
of the header. (Header_Size_With_Padding): New routine.
(Nearest_Multiple_Rounded_Up): Removed along with its uses.
* (Header_Size_With_Padding): New routine.
2011-11-21 Ed Schonberg <>
* aspects.adb: Aspect specifications are allowed on renaming
* par-ch6.adb (P_Subprogram): Parse aspect specifications in a
subprogram renaming declaration
2011-11-21 Tristan Gingold <>
* env.c: Remove unused declaration.
2011-11-21 Pascal Obry <>
* Minor style fix.
2011-11-21 Pascal Obry <>
* adaint.c (__gnat_dup2): When fd are stdout, stdin or stderr and
identical, do nothing on Windows XP.
2011-11-21 Yannick Moy <>
* sem_ch3.adb (Constrain_Index, Process_Range_Expr_In_Decl):
Use Full_Expander_Active instead of Expander_Active to control
the forced evaluation of expressions for the sake of generating
2011-11-21 Thomas Quinot <>
* init.c: On FreeBSD, stack checking failures may raise SIGBUS.
2011-11-21 Tristan Gingold <>
* 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 <>
* gnat_rm.texi: Minor rewording.
2011-11-21 Hristian Kirtchev <>
* exp_imgv.adb (Expand_Width_Attribute): Emit
an error message rather than a warning when pragma Discard_Names
prevents the computation of 'Width. Do not emit an error through
the use of RE_Null.
2011-11-21 Javier Miranda <>
* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add
implicit type conversion when the type of the allocator is an
interface. Done to force generation of displacement of the "this"
pointer when required.
2011-11-21 Ed Schonberg <>
*, sinfo.adb: Corresponding_Spec applies to expression
functions, and is set when the expression is a completion of a
previous declaration.
* sem_ch6.adb (Analyze_Expression_Function): To determine properly
whether an expression function completes a previous declaration,
use Find_Corresponding_Spec, as when analyzing a subprogram body.
2011-11-21 Steve Baird <>
* sem_util.adb (Deepest_Type_Access_Level): Improve comment.
(Type_Access_Level): Improve comment.
2011-11-21 Eric Botcazou <>
* gcc-interface/ (INCLUDES_FOR_SUBDIR): Add $(fsrcdir) by
means of -iquote unconditionally.
2011-11-21 Robert Dewar <>
* sem_ch3.adb, sem_util.adb, sem_res.adb, sem_attr.adb: Minor
2011-11-21 Arnaud Charlet <>
* s-taprop-posix.adb (Create_Task): Use Unrestricted_Access
to deal with fact that we properly detect the error if Access
is used.
2011-11-21 Steve Baird <>
* Update comment describing function
* sem_util.adb (Deepest_Type_Access_Level): Return Int'Last for a
generic formal type.
(Type_Access_Level): Return library level
for a generic formal type.
* sem_attr.adb (Resolve_Attribute): Replace two Type_Access_Level
calls with calls to Deepest_Type_Access_Level.
* sem_ch3.adb (Analyze_Component_Declaration): replace a
Type_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 to
(Resolve_Allocator): Replace a Type_Access_Level call with a call to
(Valid_Conversion.Valid_Array_Conversion): Replace a
Type_Access_Level call with a call to Deepest_Type_Access_Level.
2011-11-21 Robert Dewar <>
* sem_ch3.adb, s-taprop-vms.adb, Minor reformatting.
2011-11-21 Robert Dewar <>
* Minor comment fix.
2011-11-21 Robert Dewar <>
* exp_attr.adb (Expand_N_Attribute_Reference, case First_Bit,
Last_Bit, Position): Handle 2005 case.
2011-11-21 Robert Dewar <>
* s-atocou-builtin.adb (Decrement): Use Unrestricted_Access
to deal with fact that we properly detect the error if Access
is used.
(Increment): Same fix.
* s-taprop-linux.adb (Create_Task): Use Unrestricted_Access
to deal with fact that we properly detect the error if Access
is used.
* sem_util.adb (Is_Volatile_Object): Properly record that A.B is
volatile if the B component is volatile. This affects the check
for passing such a by reference volatile actual to a non-volatile
formal (which should be illegal)
2011-11-21 Robert Dewar <>
* freeze.adb (Freeze_Enumeration_Type): Make sure to set both
size and alignment for foreign convention enumeration types.
* layout.adb (Set_Elem_Alignment): Redo setting of alignment
when size is set.
2011-11-21 Yannick Moy <>
* 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_Active
with reference to Full_Expander_Active, so that expansion of
checks is not performed in Alfa mode
2011-11-21 Tristan Gingold <>
* s-taprop-vms.adb (Create_Task): Use Unrestricted_Access to deal with
fact that we properly detect the error if Access is used.
2011-11-21 Hristian Kirtchev <>
* par-ch4.adb (P_Quantified_Expression): Add an Ada 2012 check.
2011-11-21 Hristian Kirtchev <>
* exp_imgv.adb: Add with and use clause for Errout.
(Expand_Width_Attribute): Emit a warning when in
configurable run-time mode to provide a better diagnostic message.
2011-11-21 Hristian Kirtchev <>
* s-finmas.adb (Finalize): Add comment concerning double finalization.
2011-11-21 Ed Schonberg <>
* sem_ch3.adb (Access_Definition): If the access definition
is itself the return type of an access to function definition
which is ultimately the return type of an access to subprogram
declaration, its scope is the enclosing scope of the ultimate
access to subprogram.
2011-11-21 Steve Baird <>
* sem_res.adb (Valid_Conversion): If a conversion was legal
in the body of a generic, then the corresponding conversion is
legal in the expanded body of an instance of the generic.
2011-11-21 Robert Dewar <>
* sem_ch3.adb: Minor reformatting.
2011-11-21 Robert Dewar <>
* s-utf_32.adb (Is_UTF_32_Line_Terminator): Recognize NEL as
line terminator.
* Add section on Handling of Source Line Terminators.
* (Line_Terminator): Adjust comments.
2011-11-21 Robert Dewar <>
* frontend.adb (Frontend): Capture restrictions from config files
* lib-load.adb (Load_Unit): Save/set/restore restriction pragma
* lib-xref.adb (Generate_Reference): Fix handling of obsolescent
references. This was noticed during debugging, but it is not
known if it causes real bugs.
*, restrict.adb: New routines to save/set/restore
non-partition-wide restrictions.
* Comment changes for new handling of
* sem.adb (Sem): Save/Set/Restore non-partition-wide restrictions
* sem_ch10.adb (Analyze_Compilation_Unit): Remove incomplete
attempt to save/restore non-partition-wide restrictions (now
this 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 <>
* gnat_ugn.texi: Document new handling of restrictions pragmas.
2011-11-21 Pascal Obry <>
* s-taprop-linux.adb (Initialize_Lock): Do not allocate a cond
attribute as not needed.
2011-11-21 Robert Dewar <>
* sem_prag.adb: Minor reformatting.
2011-11-21 Pascal Obry <>
* gnat_rm.texi: Document restriction for stdcall convention on
dispatching calls.
2011-11-21 Pascal Obry <>
* sem_prag.adb (Process_Convention): A dispatching call cannot
have a stdcall calling convention.
2011-11-21 Pascal Obry <>
* s-taprop-linux.adb (Initialize_Lock): Do not allocate a
mutex attribute as not needed.
(Initialize_TCB): Likewise.
(Initialize): Likewise.
2011-11-21 Robert Dewar <>
* sem_ch6.adb (Is_Public_Subprogram_For): New procedure
(Process_PPCs): Invariants only apply to public subprograms.
2011-11-21 Robert Dewar <>
* sem_util.adb,, sem_attr.adb, restrict.adb, Fix for No_Implicit_Aliasing in the renames case.
2011-11-21 Robert Dewar <>
* Use pragma Pure_12 for this unit
* aspects.adb: Add aspect Pure_12
* Add aspect Pure_12
* Add note on Pure_12
* par-prag.adb: Add dummy entry for Pure_12
* sem_prag.adb: Implement Pure_12 pragma
* Add Entry for Pure_12
2011-11-21 Sergey Rybin < frybin>
* 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 <>
* Minor reformatting.
2011-11-21 Robert Dewar <>
* Add comment.
2011-11-21 Gary Dismukes <>
* sem_elab.adb: Minor reformatting
2011-11-21 Robert Dewar <>
* exp_ch6.adb: Minor reformatting.
2011-11-21 Ed Schonberg <>
* sem_ch12.adb (Check_Formal_Package_Instance): If a formal
subprogram of the formal package is covered by an others
association with a box initialization, no check is needed
against the actual in the instantiation of the formal package.
2011-11-21 Robert Dewar <>
* sem_elab.adb (Check_Internal_Call_Continue): Suppress junk
elab warning from within precondition/postcondition etc.
2011-11-21 Ed Schonberg <>
* exp_ch6.adb (Expand_Actuals): In Ada 2012, a function call
with out parameters may generate assignments to force constraint
checks. These checks must be properly placed in the code after the
declaration or statement that contains the call.
2011-11-21 Fedor Rybin <>
* gnat_ugn.texi: Adding info on current gnattest limitations an
support of -X option.
2011-11-21 Robert Dewar <>
* a-cfdlli.adb, a-cbdlli.adb: Minor reformatting.
2011-11-20 Robert Dewar <>
* exp_ch6.adb, exp_util.adb: Minor reformatting
2011-11-20 Eric Botcazou <>
* (Reference): Document that it is OK to set
Is_Known_Non_Null on a temporary initialized to a N_Reference
2011-11-20 Matthew Heaney <>
* a-cbdlli.adb, a-cfdlli.adb (Move): Set Last component to 0
for Source list.
2011-11-20 Eric Botcazou <>
* exp_ch6.adb (Make_Build_In_Place_Call_In_Assignment):
Declare NEW_EXPR local variable and attach the
temporary 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 on
the temporary created to hold the 'Reference of the expression,
if any.
* checks.adb (Install_Null_Excluding_Check): Bail out for the
Get_Current_Excep.all.all idiom generated by the expander.
2011-11-20 Eric Botcazou <>
* 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 the
function returns unconstrained, use finalize_nrv_unc_r as callback.
(return_value_ok_for_nrv_p): Test the alignment of RET_OBJ only if
RET_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 Return
Value optimization.
2011-11-20 Eric Botcazou <>
* gcc-interface/trans.c (Subprogram_Body_to_gnu): Add comment.
(gnat_to_gnu) <N_Return_Statement>: Add 'else' to avoid doing a useless
test. Tweak default case.
<N_Goto_Statement>: Use better formatting.
* gcc-interface/utils2.c (maybe_wrap_malloc): Use INIT_EXPR instead of
MODIFY_EXPR to initialize the storage.
(build_allocator): Likewise.
2011-11-20 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Adjust
call to components_to_record.
(components_to_record): Add FIRST_FREE_POS parameter. For the variant
part, reuse enclosing union even if there is a representation clause
on the Unchecked_Union. If there is a variant part, compute the new
first free position, if any. Adjust call to self. Use a single field
directly only if it hasn't got a representation clause or is placed at
offset zero. Create the variant part at offset 0 if all the fields
down to this level have a rep clause. Do not chain the variant part
immediately and adjust downstream.
Do not test ALL_REP before moving the fields without rep clause to the
previous level. Call create_rep_part to create the REP part and force
a minimum size on it if necessary. Do not chain it immediately.
Create a fake REP part if there are fields without rep clause that need
to 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 <>
PR target/50678
* init.c (__gnat_error_handler) [Darwin]: Move workaround to the
bug filed as radar #10302855 from __gnat_error_handler to...
(__gnat_adjust_context_for_raise) [Darwin]: New function.
2011-11-18 Tristan Gingold <>
Iain Sandoe <>
PR target/49992
* mlib-tgt-specific-darwin.adb (Archive_Indexer_Options): Remove.
* gcc-interface/ (darwin): Remove ranlib special-casing.
2011-11-12 Iain Sandoe <>
* gcc-interface/ (stamp-gnatlib-$(RTSDIR)): Don't link
(./bldtools/oscons/xoscons): New target.
($(RTSDIR)/ Likewise.
(gnatlib): Depend on $(RTSDIR)/
* gcc-interface/ (ada/ Remove as dependency.
* Remove machinery to generate xoscons and
2011-11-10 Eric Botcazou <>
* 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/ (ada/utils2.o): Add toplev.h.
2011-11-07 Olivier Hainque <>
* sigtramp-ppcvxw.c: Add general comments.
(CFI_COMMON_REGS): Remove rule for r1, as in other unwinders. Add
rules for r2 to r13, plus CTR and XER.
(CFA_REG): New, register number used to hold the local CFA.
Make that 15, not 14, with documentation.
(TCR): Undef before definition, preventing conflict with reg number in
VxWorks headers.
2011-11-07 Robert Dewar <>
*, exp_alfa.adb, a-cohama.adb,, sem_ch4.adb,, exp_ch8.adb,, Minor reformatting.
* gcc-interface/ Update dependencies.
2011-11-07 Ed Schonberg <>
* exp_ch6.adb: A tagged type is a legal actual for an aliased
2011-11-07 Pascal Obry <>
* g-socket.adb, Minor reformatting.
2011-11-07 Robert Dewar <>
* sem_res.adb (Resolve_Actuals): Minor error message improvement.
2011-11-07 Robert Dewar <>
* gnat_ugn.texi: Add discussion of default mode handling of
source representation with no -gnatW option given, in particular
noting that NEL (next line) is not recognized in this context.
2011-11-07 Yannick Moy <>
* sem_util.adb (Note_Possible_Modification): In Alfa mode,
generate a reference for a modification even when the modification
does not come from source.
2011-11-07 Ed Schonberg <>
* 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. Use
Find_Aspect rather than iterating over representation
items. Improve error message.
* a-cohama.adb, Update to latest RM, with two versions
of Reference functions.
2011-11-07 Yannick Moy <>
* sem_util.adb (Unique_Entity): For a parameter on a subprogram
body that has a corresponding parameter on the subprogram
declaration, define the unique entity as being the declaration
2011-11-07 Ed Schonberg <>
* sem_ch6.adb (Analyze_Return_Type): In Ada 2012 mode, if the
return type of a function is the class-wide type of an incomplete
type T, T can be a Taft-amendment type and does not have to be
completed in the current private part.
2011-11-07 Ed Schonberg <>
* (Inherited_Aspect): Map that indicates type aspects
that are inherited by default, and apply to the class-wide type
as well.
* aspects.adb (Find_Aspect): If the entity is class-wide and the
aspect is inherited, use the aspect of the specific type.
2011-11-07 Hristian Kirtchev <>
* exp_alfa.adb: Remove with and use clause for
Exp_Ch8. Add with and use clause for Exp_Util.
Remove local constant Disable_Processing_Of_Renamings.
(Expand_Alfa_N_Object_Renaming_Declaration): The expansion of
object renamings has been reenabled.
The expansion of identifier and expanded names has been
reenabled. Perform the substitutions only for entities that
denote an object.
*, 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 guard
to avoid the infinite expansion of an expression in Alfa mode. Add
processing for function calls in Alfa mode.
* (Evaliate_Name): Moved from Exp_Ch8.
2011-11-07 Ed Schonberg <>
* freeze.adb (Freeze_Entity): If the entity is an access to
subprogram whose designated type is itself a subprogram type,
its own return type must be decorated with size information.
2011-11-04 Arnaud Charlet <>
* gcc-interface/ Update dependencies.
2011-11-04 Robert Dewar <>
* sprint.adb (Sprint_Node_Actual, case Qualified_Expression):
Avoid junk semicolon after argument of machine code Asm operand.
2011-11-04 Robert Dewar <>
* exp_ch11.adb (Generate_Push_Pop): Inhibit push/pop nodes in
CodePeer mode or if restriction No_Exception_Handlers is present.
* exp_ch6.adb (Expand_N_Subprogram_Body): (Inhibit push/pop
nodes in CodePeer mode or if restriction No_Exception_Handlers
is present.
2011-11-04 Robert Dewar <>
* s-tassta.adb,, errout.adb, sinput.adb: Minor reformatting.
2011-11-04 Ed Schonberg <>
* sem_ch6.adb (Analyze_Subprogram_Specification): The
specification is legal if it is a function that returns an
abstract type, if it comes from an attribute renaming of a stream
attribute of an abstract type.
2011-11-04 Gary Dismukes <>
* exp_util.adb (Is_Possibly_Unaligned_Object): In case of indexed
components, check whether recursively check whether the prefix
denotes an unaligned object.
2011-11-04 Ed Schonberg <>
* sem_prag.adb (Analyze_Pragma, case Debug): The argument of
the pragma is legal if it is an expanded name that denotes a
procedure that be can called without parameters.
2011-11-04 Eric Botcazou <>
* gnat_ugn.texi (Performance Considerations) <Vectorization
of loops>: New sub-section. <Other Optimization Switches>:
Minor tweak.
2011-11-04 Robert Dewar <>
* gnat_rm.texi: Minor reformatting.
2011-11-04 Matthew Heaney <>
* a-convec.adb, a-coinve.adb, a-cobove.adb (Merge): Raise PE
when Target and Source denote same non-empty object
* a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Merge): Ditto
2011-11-04 Robert Dewar <>
* exp_attr.adb: Minor reformatting.
2011-11-04 Ed Schonberg <>
* exp_ch5.adb (Expand_Assign_Record): Do not generate a
discriminant assignment within an initialization proc if the
record is an unchecked union, as it can only come from the
initialization of an unchecked union component.
2011-11-04 Robert Dewar <>
* gnat_ugn.texi: Minor reformatting.
2011-11-04 Robert Dewar <>
* par-labl.adb (Rewrite_As_Loop): Generate info msg rather than
warning message.
2011-11-04 Robert Dewar <>
* exp_ch4.adb: Minor code reorganization (remove junk obsolete
var Save_Space).
2011-11-04 Hristian Kirtchev <>
* exp_alfa.adb: Add local constant
(Expand_Alfa_N_Object_Renaming_Declaration): Disable
the name evaluation of object renamings for now.
(Expand_Potential_Renaming): Do not perform the substitution
for now.
* exp_util.adb (Remove_Side_Effects): Remove processing for
functions with side effects in Alfa mode.
2011-11-04 Gary Dismukes <>
* bindgen.adb (Gen_Elab_Calls): In the case
of the AAMP target, set elaboration entities to 1 rather than
2011-11-04 Ed Schonberg <>
* sem_ch10.adb (Install_Limited_With_Unit): To establish the
proper entities on the ancestors of a child unit that appear
in a limited_with clause, follow the unit links because the
units are not analyzed and scope information is incomplete.
2011-11-04 Eric Botcazou <>
* exp_ch4.adb (Expand_N_Selected_Component): Refine code
setting the Atomic_Sync_Required flag to detect one more case.
* exp_util.adb (Activate_Atomic_Synchronization): Refine code
setting the Atomic_Sync_Required flag to exclude more cases,
depending on the parent of the node to be examined.
2011-11-04 Bob Duff <>
* g-excact.adb: Minor: use named notation.
2011-11-04 Ed Schonberg <>
* sem_ch5.adb: Improve error messages for illegal iterators.
2011-11-04 Hristian Kirtchev <>
* exp_alfa.adb: Add with and use clauses for Exp_Ch8 and
(Expand_Alfa): Alphabetize cases on first choice. Add
processing for object renaming declarations, identifiers and
expanded 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. Move
Evaluate_Name out to the top level.
* (Evaluate_Name): Moved from body to package spec.
* exp_util.adb (Remove_Side_Effects): Add processing for
functions with side effects in Alfa mode.
2011-11-04 Hristian Kirtchev <>
* gnat_rm.texi: Add entries for
restrictions No_Relative_Delay, No_Requeue_Statements and
2011-11-04 Ed Schonberg <>
* sem_ch4.adb: Set type of entity in prefixed call, for
completeness in a generic context.
2011-11-04 Yannick Moy <>
* sem_prag.adb: Minor refactoring (renaming of a parameter).
2011-11-04 Robert Dewar <>
* Minor reformatting.
2011-11-04 Robert Dewar <>
* checks.adb (Atomic_Synchronization_Disabled): Check -gnatd.d
and -gnatd.e here
* exp_ch2.adb (Expand_Entity_Reference): Use
* exp_ch4.adb (Expand_N_Explicit_Dereference): Use
Activate_Atomic_Synchronization (Expand_N_Indexed_Compoonent):
Activate_Atomic_Synchronization (Expand_N_Selected_Component):
Use Activate_Atomic_Synchronization
*, exp_util.adb (Activate_Atomic_Synchronization): New
*, sinfo.adb (Atomic_Sync_Required): Can now apply to
N_Selected_Component node
2011-11-04 Robert Dewar <>
* sem_prag.adb,, prj-env.adb, Minor reformatting.
2011-11-04 Yannick Moy <>
* atree.adb, (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 pragma
expressions refer to the original aspect expressions through
the Original_Node link. This is used in semantic analysis for
ASIS mode, so that the original expression also gets analyzed.
* sem_prag.adb (Preanalyze_TC_Args,
Analyze_Pragma/Pragma_Test_Case): In ASIS mode, for a pragma
generated from a source aspect, also analyze the original aspect
(Check_Expr_Is_Static_Expression): New procedure
similar to existing procedure Check_Arg_Is_Static_Expression,
except called on expression inside pragma.
2011-11-04 Tristan Gingold <>
* prj-env.adb, (Find_Name_In_Path): New function, from
(Find_Project): Use Find_Name_In_Path to implement Try_Path_Name.
2011-11-04 Eric Botcazou <>
* (Atomic_Counter): Remove redundant pragma Volatile.
2011-11-04 Pascal Obry <>
* projects.texi: Add short description for qualifiers aggregate
and aggregate library.
2011-11-04 Matthew Heaney <>
* Makefile.rtl, impunit.adb: Added[sb]
* a-cgaaso.adb: Replaced implementation with instantiation
of Generic_Sort.
*[sb] This is the new Ada 2012 unit
2011-11-04 Robert Dewar <>
* exp_ch2.adb (Expand_Entity_Reference): Do not set
Atomic_Sync_Required for the case of a prefix of an attribute.
* exp_ch4.adb (Expand_N_Explicit_Dereference): May require
atomic 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 array
types with pragma Atomic_Components.
*, sinfo.adb (Atomic_Sync_Required): Can now occur on
N_Explicit_Dereference nodes and on N_Indexed_Component nodes.
2011-11-04 Gary Dismukes <>
* gnat_ugn.texi: Editorial corrections for gnattest section.
2011-11-04 Robert Dewar <>
* sem_prag.adb: Minor reformatting.
* gnat_rm.texi: Update documentation for pragma Warnings (Off,
"***") usage.
* exp_ch2.adb (Expand_Entity_Reference): Only set
Atomic_Sync_Required on entities that are variables. Doesn't
make any sense on anything else.
2011-11-04 Robert Dewar <>
* exp_ch2.adb (Expand_Entity_Reference): Extend handling of
atomic sync to type case.
* sem_prag.adb (Process_Suppress_Unsuppress): Atomic Sync can
apply to types.
2011-11-04 Robert Dewar <>
* sem_warn.adb (Warn_On_Useless_Assignment): More accurate test
for call vs assign.
* gcc-interface/ Update dependencies.
2011-11-04 Robert Dewar <>
* sem_prag.adb: Detect more cases of Long_Float inconsistencies at
compile time.
2011-11-04 Matthew Heaney <>
* Makefile.rtl, impunit.adb: Added,
*,,,[sb],[sb],[sb],[sb],[sb],[sb]: New files.
2011-11-04 Geert Bosch <>
*, s-gecola.adb,,
s-gerebl.adb,, i-forbla.adb,,, i-forbla-darwin.adb, s-gecobl.adb,,
s-gerela.adb, Remove partial interface to BLAS/LAPACK.
* gcc-interface/ Remove libgnala and related objects.
2011-11-04 Matthew Heaney <>
*[sb],[sb],[sb],[sb],[sb],[sb],[sb],[sb],[sb],[sb],[sb],[sb],[sb],[sb] (Assign, Copy): New operations
added to package.
2011-11-04 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Do not assert
that the type of the parameters isn't dummy in type_annotate_only mode.
2011-11-04 Robert Dewar <>
* sem_ch12.adb: Minor reformatting
2011-11-04 Gary Dismukes <>
* 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 <>
Eric Botcazou <>
PR target/50678
* init.c (__gnat_error_handler) [Darwin]: Apply a work-around to the
bug filed as radar #10302855 (inconsistent unwind data for sigtramp).
2011-10-28 Eric Botcazou <>
PR ada/50842
* gcc-interface/ (SYMDEPS): Delete.
(LIBICONV): New variable.
(LIBICONV_DEP): Likewise.
(TOOLS_LIBS): ...this. Add $(LIBICONV).
2011-10-26 Eric Botcazou <>
* gcc-interface/decl.c (elaborate_expression_1): Add EXPR_PUBLIC_P local
variable. Always create the elaboration variable, if any, as constant.
2011-10-26 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Try to
make 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 fields
of 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 types
as 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 <>
* gcc-interface/decl.c (gnat_to_gnu_field): Always check components
declared as atomic. Move around conditionally executed code.
2011-10-24 Robert Dewar <>
* sem.adb (Initialize): Fix bug that blew up if called a second time.
2011-10-24 Robert Dewar <>
* 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 <>
* sem_prag.adb (Analyze_Pragma, case Debug): Give proper pragma
name in error msg.
2011-10-24 Hristian Kirtchev <>
* gnat_rm.texi: Add an entry for restriction No_Finalization.
2011-10-24 Ed Schonberg <>
* sem_ch12.adb (Insert_Freeze_Node_For_Instance): If the
current instance is within the one that contains the generic,
the freeze node for the current one must appear in the current
declarative part. Ditto if the current instance is within another
package instance. In both of these cases the freeze node of the
previous instance is not relevant.
2011-10-24 Gary Dismukes <>
* switch-m.adb (Normalize_Compiler_Switches): Add recognition
of AAMP-specific switches -univ and -aamp_target.
2011-10-24 Robert Dewar <>
* a-tienau.adb (Put): Deal properly with limited line length.
2011-10-24 Robert Dewar <>
* sem_warn.adb, sem_ch12.adb: Minor reformatting.
2011-10-24 Tristan Gingold <>
* gcc-interface/ Use GNU ld switches to generate map files
on AIX.
2011-10-24 Ed Schonberg <>
* sem_ch12.adb (Earlier): make available globally. If both
nodes have the same sloc, the freeze node that does not come
from source is the later one.
(True_Parent): Make available globally.
(Previous_Instance): Subsidiary of
Insert_Freeze_Node_For_Instance, to check whether the generic
parent of the current instance is declared within a previous
instance in the same unit or declarative part, in which case the
freeze nodes of both instances must appear in order to prevent
elaboration problems in gigi.
* sem_ch12.adb (Insert_Freeze_Node_For_Instance): A stub is a
freeze point, and the freeze node of a preceding instantiation
must be inserted before it.
2011-10-24 Robert Dewar <>
*, checks.adb: Add handling of Synchronization_Check
* debug.adb: Add doc for -gnatd.d and -gnatd.e (disable/enable
atomic sync).
* exp_ch2.adb (Expand_Entity_Reference): Set Atomic_Sync_Required
flag Minor code reorganization.
* (Warn_On_Atomic_Synchronization): New switch.
* par-prag.adb: Add dummy entries for pragma
* sem_prag.adb (Process_Suppress_Unsuppress): Handle
case of Atomic_Synchronization specially (not suppressed
by All_Checks, cannot be set from Source).
(Pragma Disable/Enable_Atomic_Synchronization): Add processing.
*, sinfo.adb: Add Atomic_Sync_Required flag
* Add entry for Atomic_Synchronization Add
entry for pragma Disable/Enable_Atomic_Synchronization
* switch-c.adb: The -gnatp switch does not disable
Atomic_Synchronization Add -gnatep switch to disable
* Add entry for Synchronization_Check
* usage.adb: Add line for -gnated switch
* warnsw.adb: Settings for Warn_On_Atomic_Synchronization
2011-10-24 Geert Bosch <>
* s-gearop.adb (Back_Substitute): Avoid overflow if matrix bounds start
at Integer'First.
2011-10-24 Robert Dewar <>
* sem_ch12.adb, s-gearop.adb: Minor reformatting.
2011-10-24 Robert Dewar <>
* warnsw.adb: Add some missing warnings to Set_GNAT_Mode_Warnings.
* Add comments to Set_GNAT_Mode_Warnings.
2011-10-24 Emmanuel Briot <>
* prj-proc.adb (Process_Expression_Variable_Decl): No special
handling for Project_Path unless it is an attribute.
2011-10-24 Javier Miranda <>
* sem_ch12.adb (Check_Hidden_Primitives): New subprogram.
(Install_Hidden_Primitives): New subprogram.
(Restore_Hidden_Primitives): New subprogram.
Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
Invoke Check_Hidden_Primitives after every call to
Analyze_Associations, and invoke Restore_Hidden_Primitives to
restore their visibility after processing the instantiation.
(Instantiate_Package_Body): Install visible primitives before
analyzing the instantiation and uninstall them to restore their
visibility when the instantiation has been analyzed.
*, sem_util.adb (Add_Suffix): New subprogram
(Remove_Suffix): New subprogram
* sem_ch3.adb (Derive_Subprogram): When handling
a derived subprogram for the instantiation of a formal derived
tagged type, inherit the dispatching attributes from the actual
subprogram (not from the parent type).
2011-10-24 Vasiliy Fofanov <>
* gnat_ugn.texi: Document explicit use of XDECGNAT library.
2011-10-24 Hristian Kirtchev <>
* exp_ch3.adb (Build_Assignment): Add local constant N_Loc and
update its uses.
(Build_Discriminant_Assignments): Add local variable D_Loc and update
its uses.
(Build_Init_Statements): Add local variables Comp_Loc, Decl_Loc and
Var_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 <>
* sem_disp.adb (Covers_Some_Interface): Fix typo.
2011-10-24 Matthew Heaney <>
* a-cuprqu.adb, a-cbprqu.adb (Dequeue_Only_High_Priority): Fix sense
of predicate.
2011-10-24 Yannick Moy <>
* sem_ch13.adb (Analyze_Aspect_Specifications/Aspect_Test_Case):
Translate arguments in positional notation into pragma argument
association arguments for the generated pragma.
2011-10-24 Arnaud Charlet <>
* exp_ch5.adb: Fix minor typo.
2011-10-24 Ed Schonberg <>
* sem_ch3.adb (Is_Visible_Component): Refine predicate for
the case of a component reference in an instance body, when the
enclosing type is private.
2011-10-24 Sergey Rybin < frybin>
* gnat_ugn.texi: For gnatelim, move the note about using the GNAT
driver for getting the project support into gnatelim section.
2011-10-24 Robert Dewar <>
* gnat_rm.texi: Minor correction to documentation on address clause.
2011-10-24 Hristian Kirtchev <>
* 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 critical
region and call the unprotected versions of routines.
(Finalize_Address): Removed.
(Finalize_Address_Unprotected): New routine.
(Set_Finalize_Address): Synchronize and call
the 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 and
* Flag Finalization_Started is no longer atomic
because synchronization uses task locking / unlocking.
(Attach): Add comment on usage.
(Attach_Unprotected): New routine.
(Delete_Finalize_Address): Renamed to
(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 to
* s-stposu.adb (Allocate_Any_Controlled): Add local variable
Allocation_Locked. Add various comments on synchronization. Lock
the critical region and call the unprotected version of
(Deallocate_Any_Controlled): Add various comments on
synchronization. Lock the critical region and call the unprotected
version of routines.
2011-10-24 Ed Schonberg <>
* sem_ch3.adb (Set_Fixed_Range): The bounds of a fixed point type
are universal and must carry the corresponding type.
* sem_eval.adb (Check_Non_Static_Context): If the type of the
expression is universal real, as may be the case for a fixed point
expression with constant operands in the context of a conversion,
there is nothing to check.
* s-finmas.adb: Minor reformatting
2011-10-23 Eric Botcazou <>
* gcc-interface/decl.c (create_concat_name): Add explicit cast.
2011-10-20 Eric Botcazou <>
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 <>
* gcc-interface/trans.c (lhs_or_actual_p): New predicate.
(unchecked_conversion_nop): Use it.
(gnat_to_gnu): Likewise.
2011-10-20 Eric Botcazou <>
* back_end.adb (Call_Back_End): Pass the maximum logical line number
instead of the maximum physical line number to gigi.
* gcc-interface/trans.c (Sloc_to_locus): Cope with line zero.
2011-10-16 Tom Tromey <>
Dodji Seketeli <>
* gcc-interface/trans.c (gigi, Sloc_to_locus): Adjust to use the new
public ordinary map interface.
2011-10-16 Tristan Gingold <>
* link.c (_AIX): Add support for GNU ld.
2011-10-16 Fedor Rybin <>
* gnat_ugn.texi: Fixing gnattest example names in the doc.
Adding explanation to additional tests usage.
2011-10-16 Robert Dewar <>
* exp_ch6.adb, sem_ch6.adb: Minor reformatting.
2011-10-16 Eric Botcazou <>
* a-convec.adb: Fix minor inconsistencies.
2011-10-16 Matthew Heaney <>
*,,, (package
Implementation): Specify pragma Implementation_Defined.
2011-10-15 Nicolas Roche <>
* gcc-interface/lang-specs.h: Ensure -mrtp switch is passed when using
either rtp-smp or ravenscar-cert-rtp runtimes.
2011-10-15 Bob Duff <>
* exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call):
Do not create a pool formal on unless RE_Root_Storage_Pool_Ptr
is available.
(Expand_N_Extended_Return_Statement): Do not create a renaming of the
build-in-place pool parameter unless RE_Root_Storage_Pool_Ptr is
(Make_Build_In_Place_Call_In_Allocator): Add the user-defined
pool only if RE_Root_Storage_Pool_Ptr is available.
(Make_Build_In_Place_Call_In_Object_Declaration): Do not add a
pool actual unless RE_Root_Storage_Pool_Ptr is available.
* sem_ch6.adb (Create_Extra_Formals): Add build-in-place pool
formal only if RE_Root_Storage_Pool_Ptr is available.
2011-10-15 Matthew Heaney <>
*,,, (Queue
type): Specify Priority aspect for protected type.
2011-10-14 Ed Schonberg <>
* exp_disp.adb (Check_Premature_Freezing): If an untagged type
is a generic actual, it is a subtype of a type that was frozen
by the instantiation, and even if not marked frozen it does not
affect the construction of the dispatch table.
2011-10-14 Robert Dewar <>
* make.adb, mlib-utl.adb, sem_util.adb, sem_ch4.adb: Minor code
* Add missing Compiler_Unit pragma.
2011-10-14 Gary Dismukes <>
* sem_res.adb: Minor reformatting.
2011-10-14 Hristian Kirtchev <>
* exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call):
Code and comment reformatting. Use BIP_Task_Master
when creating a _master.
(BIP_Formal_Suffix): Code reformatting. Correct the case for
(Make_Build_In_Place_Call_In_Object_Declaration): Use
BIP_Task_Master when creating a reference to the enclosing
function's _master formal.
(Move_Activation_Chain): Use BIP_Task_Master when creating a reference
to the _master.
* Change BIP_Master to BIP_Task_Master.
(Needs_BIP_Finalization_Master): Alphabetized.
* sem_ch6.adb (Create_Extra_Formals): Update the usage of
2011-10-14 Ed Schonberg <>
* par-ch6.adb (P_Return_Object_Declaration): In Ada 2012 mode,
reject an aliased keyword on the object declaration of an extended
return statement. In older versions of the language indicate
that this is illegal in the standard.
2011-10-14 Pascal Obry <>
* sem_util.adb, sem_ch4.adb: Minor reformatting.
2011-10-14 Ed Schonberg <>
* sem_ch13.adb: Recognize properly procedure calls that are
transformed into code statements.
2011-10-14 Vincent Celier <>
* projects.texi: Minor fix in project example.
2011-10-14 Ed Schonberg <>
* sem_util.adb: Return objects are aliased if their type is
immutably limited as per AI05-0053.
2011-10-14 Gary Dismukes <>
* exp_ch4.adb (Expand_N_Op_And): Remove Short_Circuit_And_Or
expansion code (moved to sem_res) (Expand_N_Op_Or): Remove
Short_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 "or
else", when pragma Short_Circuit_And_Or is active.
2011-10-13 Robert Dewar <>
* sem_ch9.adb, sem_util.adb,, exp_ch6.adb, sem_ch4.adb,
sem_ch6.adb, exp_ch3.adb: Minor reformatting.
2011-10-13 Arnaud Charlet <>
* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add a-ngcoar.o.
2011-10-13 Jerome Guitton <>
* sysdep.c (__gnat_get_task_options): Re-enable VX_SPE_TASK on vThreads
2011-10-13 Eric Botcazou <>
* (Cursor): Minor reformatting.
* a-convec.adb (Next): Fix minor inconsistencies.
(Previous): Likewise.
2011-10-13 Ed Schonberg <>
*, sem_util.adb (Available_Full_View_Of_Component):
New predicate to determine whether some operations on an array
type are available when the full view of its component may differ
from the view of the point of the array declaration.
* sem_ch4.adb (Find_Equality_Types): Use
* sem_type.adb (Valid_Boolean_Arg, Valid_Comparison_Arg): Ditto
2011-10-13 Ed Schonberg <>
* sem_ch9.adb: Analyze aspects while discriminants of protected
type are visible.
2011-10-13 Geert Bosch <>
a-nlcoar.o, a-nllcar.o, a-nucoar.o and s-gearop.o, as these no
longer depend on an external library.
* gcc-interface/ (GNATRTL_LINEARALGEBRA_OBJS): Remove
a-nlcoar.o, a-nllcar.o, a-nucoar.o and s-gearop.o.
Update dependencies.
* gcc-interface/ Update dependencies.
2011-10-13 Cyrille Comar <>
* gnat_ugn.texi: Minor editing.
2011-10-13 Vincent Celier <>
* projects.texi: Add documentation on packages and attributes
that are inherited from a project being extended into the
extended project.
2011-10-13 Hristian Kirtchev <>
* exp_ch3.adb (Build_Master): Rewritten.
(Expand_N_Full_Type_Declaration): Reformat the declarative
region. 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 constant
Result_Subt and update related usage.
* exp_ch9.adb (Build_Activation_Chain): Rewritten to use the
new context detection mechanism.
Use Insert_Action to add the renaming into the tree.
(Build_Master_Entity): Rewritten to use the new context detection
(Build_Master_Renaming): Add formal parameter Ins_Nod
and related usage. Use Insert_Action to add the renaming into the
(Find_Enclosing_Context): New subsidiary routine. Rather
than relying on enclosing scopes, this routine looks at the
tree structure to figure out the proper context for a _master
or a _chain. This approach eliminates the issues with transient
scopes which have not been converted into blocks.
* (Build_Master_Entity): Change parameter profile
to better reflect the new usage. Update the related comment.
(Build_Master_Renaming): Add formal parameter Ins_Nod. Update
the comment on usage.
* sem_ch3.adb (Access_Definition): Update the calls to
Build_Master_Entity and Build_Master_Renaming.
* sem_ch6.adb (Create_Extra_Formals): Add local variable
Full_Subt. Code reformatting.
* sem_util.adb (Is_Iterator): Alphabetized.
(Is_LHS): Alphabetized.
(Is_Limited_Class_Wide_Type): New routine.
* (Is_Limited_Class_Wide_Type): New routine.
2011-10-13 Geert Bosch <>
* a-ngrear.adb (Solve): Make generic and move to
* (Matrix_Vector_Solution, Matrix_Matrix_Solution):
New generic solvers to compute a vector resp. matrix Y such
that 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 dependencies
* ("abs"): Fix return type to be real.
2011-10-13 Eric Botcazou <>
PR ada/50589
* Do not "with" Interfaces.C.
* Likewise.
2011-10-13 Geert Bosch <>
* (Forward_Eliminate): Add "abs" formal function
returning a Real.
* s-gearop.adb (Forward_Eliminate): Remove local "abs" function
and use formal.
* a-ngrear.adb (Forward_Eliminate): Adjust instantiation for
new profile.
2011-10-13 Geert Bosch <>
* a-ngrear.adb, s-gearop.adb, (Sqrt): Make generic and
move to System.Generic_Array_Operations.
2011-10-13 Geert Bosch <>
* a-ngrear.adb ("abs"): Adjust for modified L2_Norm generic
* (L2_Norm): Change profile to be suitable for
* s-gearop.adb (L2_Norm): Reimplement using direct definition,
not inner product
2011-10-13 Robert Dewar <>
* exp_ch5.adb, sem_ch3.adb, impunit.adb,, 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,, 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,,
exp_aggr.adb, s-taprop-posix.adb: Minor reformatting.
2011-10-13 Geert Bosch <>
* s-gearop.adb: Minor comment additions.
2011-10-13 Fedor Rybin <>
* gnat_ugn.texi: Add gnattest section.
2011-10-13 Ed Schonberg <>
* freeze.adb: Do not create body of renaming if declaration has
2011-10-13 Olivier Hainque <>
* init.c (__gnat_error_handler - vxworks case): Restrict sigtramp calls
further, to the ppc+kernel case only.
2011-10-13 Hristian Kirtchev <>
* 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 local
variables. Do not create a renaming of the build-in-place pool
parameter 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): Alphabetize
local 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 on
non-VM targets.
* Alphabetize entries.
2011-10-13 Sergey Rybin <>
* gnat_ugn.texi: Minor correction.
2011-10-13 Ed Schonberg <>
* sem_ch8.adb: Minor error message improvement.
2011-10-13 Robert Dewar <>
* a-cbprqu.adb, a-ciorma.adb, exp_ch3.adb: Minor reformatting.
2011-10-13 Gary Dismukes <>
* exp_ch5.adb (Expand_N_Loop_Statement): For the transformation
of a for loop for an enumeration type with an enumeration rep
clause, which involves moving the original loop parameter into
a nested block, the loop parameter's entity must be removed from
the entity list of the loop scope.
2011-10-13 Bob Duff <>
* (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 when
BIP_Alloc_Form = User_Storage_Pool. In that case, a pointer
to 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): New
version of Add_Alloc_Form_Actual_To_Build_In_Place_Call. Passes
the additional BIP_Storage_Pool actual.
(Expand_N_Extended_Return_Statement): Allocate the function
result using the user-defined storage pool, if BIP_Alloc_Form =
* sem_ch6.adb: Add the "extra formal" for BIP_Storage_Pool.
* exp_ch4.adb: Don't overwrite storage pool set by
*, (Root_Storage_Pool_Ptr): New type,
for use in build-in-place function calls within allocators
where the access type has a user-defined storage pool.
2011-10-13 Sergey Rybin <>
* gnat_ugn.texi, Add an option to control enumeration
literal casing.
2011-10-13 Nicolas Roche <>
* gnatlink.adb: Ensure that -mrtp is passed when runtime name ends
with 'rtp'.
2011-10-13 Ed Schonberg <>
* sem_prag.adb (Analyze_Pragma, case Unchecked_Union): Take into
account that an unchecked union type can be limited.
2011-10-13 Olivier Hainque <>
* init.c (__gnat_error_handler) <VxWorks version>: Add comments on
the 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 <>
* sem_aggr.adb (Resolve_Aggr_Expr): Always perform semantic analysis
in Alfa mode.
2011-10-13 Ed Schonberg <>
* sem_ch3.adb (OK_For_Limited_Init_In_05): Conditional and case
expressions are legal limited return values if each one of their
dependent expressions are legal.
2011-10-13 Ed Schonberg <>
* sem_ch6.adb (Analyze_Procedure_Call_Statement): In Ada 2012 mode,
if the prefix of the call is a qualified expression, rewrite as
a code statement.
* sem_ch13.adb (Analyze_Code_Statement): In Ada 2012 mode, the
code statement is legal if it is a rewriting of a procedure call.
2011-10-13 Ed Schonberg <>
* 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-limited
aggregate has a box, assume that it cannot be expanded in place.
2011-10-13 Vincent Celier <>
* prj-conf.adb (Get_Or_Create_Configuration_File): Call
Process_Project_Tree_Phase_1 with Packages_To_Check.
(Process_Project_And_Apply_Config): Ditto
*, prj-part.adb,, prj-pars.adb (Parse):
Remove default for argument Packages_To_Check.
* prj-proc.adb (Recursive_Process): New argument
(Process): Ditto.
(Process_Project_Tree_Phase_1): Ditto.
(Recursive_Project.Process_Aggregated_Projects): Call
Prj.Part.Parse and Process_Project_Tree_Phase_1 with
* (Process): New argument Packages_To_Check
(Process_Project_Tree_Phase_1): Ditto
2011-10-13 Arnaud Charlet <>
* gcc-interface/ Fix typo.
2011-10-13 Ed Schonberg <>
* 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 misplaced
references in ali.
2011-10-13 Ed Schonberg <>
* sem_intr.adb (Check_Intrinsic_Operator): Check that type
is fully defined before checking that it is a numeric type.
2011-10-13 Ed Schonberg <>
* sem_aggr.adb (Resolve_Record_Aggregate): If a component
association for component X has a box, then X is covered in the
aggregate even if there is not default value for X in the type
declaration, and X has to be default-initialized.
2011-10-13 Ed Schonberg <>
* sem_attr.adb (Check_Enum_Image, Analyze_Attribute case 'Value): Mark
literals as referenced only if reference is in current source unit.
2011-10-13 Matthew Heaney <>
* (Enque, Dequeue): Mark interface operations as entries.
2011-10-13 Olivier Hainque <>
* sigtramp.h: New file. Prototype and spec of the signal
trampoline to be called by an established handler to provide
dwarf call frame info before the real signal processing code.
* sigtramp-ppcvxw.c: New file. Implementation of the signal
trampoline for ppc-vxworks.
* init.c (vxworks section): Use it for ppc.
2011-10-13 Thomas Quinot <>
* par-ch2.adb, par.adb, par-util.adb, par-ch3.adb
(Check_Future_Identifier): New subprogram,
factors duplicated code from Par.Ch2.P_Identifier and
2011-10-13 Thomas Quinot <>
* s-taprop-posix.adb (Initialize): Always raise Storage_Error
if we fail to initialize CV attributes or CV.
2011-10-13 Thomas Quinot <>
* s-tasren.adb (Timed_Selective_Wait, case
Accept_Alternative_Selected): Use Defer_Abort_Nestable, since
we know abortion is already deferred.
2011-10-13 Hristian Kirtchev <>
* 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): Alphabetize
variables. Reformatting of code and comments. Rewrite the
section on processing of anonymous access-to-task types in
record components.
* (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 parameter
Use_Current. Reformatting of code and comments.
(Build_Master_Renaming): Moved from exp_ch3.
* (Build_Class_Wide_Master): Moved from
exp_ch3. Update comment on usage.
Add formal parameter Use_Current. Update comment on usage.
(Build_Master_Renaming): Moved from exp_ch3.
* sem_ch3.adb (Access_Definition): Remove redundant code to
create a _master and a renaming.
2011-10-13 Ed Schonberg <>
* lib-xref.adb: Do no emit reference to overridden operation,
if it is internally generated.
2011-10-13 Vincent Celier <>
* 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 <>
* sem_util.adb (Denotes_Same_Prefix): Fix fatal warning.
* gcc-interface/ (WARN_ADAFLAGS): New.
(ADA_FLAGS_TO_PASS): Likewise.
native 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/ (SOME_ADAFLAGS): Likewise.
(MOST_ADAFLAGS): Likewise.
(LOOSE_CFLAGS): Likewise.
(gnat-cross): 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 <>
* 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 <>
* gcc-interface/ada-tree.h (DECL_LOOP_PARM_P): New flag.
* 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 loop
parameter, set DECL_LOOP_PARM_P on it.
* gcc-interface/misc.c (gnat_print_decl) <VAR_DECL>: If DECL_LOOP_PARM_P
* 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 dereference
built for a by-double-ref read-only parameter. If DECL_LOOP_PARM_P
is 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 just
the label. Reference the label and the iteration variable from it.
Build the special induction variable in the unsigned version of the
size type, if it is larger than the base type. And attach it to the
iteration variable if the latter isn't by-ref. In the iteration scheme
case, initialize the invariant conditions in front of the loop if
deemed 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 range
check and related cases, and if loop unswitching is enabled, compute
invariant 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 that
DECL_LOOP_PARM_P isn't set.
(convert_to_index_type): New function.
* gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Use it in order
to convert the index from the base index type to sizetype.
(gnat_invariant_expr): New function.
2011-10-11 Michael Meissner <>
* gcc-interface/utils.c (def_builtin_1): Delete old interface with
two parallel arrays to hold standard builtin declarations, and
replace it with a function based interface that can support
creating 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 <>
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 DECLs
that 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 <>
* 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 for
the Named Return Value optimization.
(build_function_stub): Call rest_of_subprog_body_compilation.
(Subprogram_Body_to_gnu): If optimization is enabled and there are
candidates, 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 the
result 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 <>
*, exp_attr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb,
exp_ch9.adb,, exp_strm.adb, exp_util.adb, freeze.adb,,, 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_type.adb, sem_util.adb,
s-regpat.adb, Minor reformatting.
* Fix for tasking failures on FreeBSD.
2011-10-06 Ed Schonberg <>
* a-cihase.adb, a-ciorma.adb: Avoid accessibility checks in container
2011-10-06 Matthew Heaney <>
*, a-cuprqu.adb,, a-cbprqu.adb
(Dequeue_Only_High_Priority): Protected procedure now implemented.
2011-10-06 Vincent Celier <>
* g-trasym.adb: Replace old implementation with the default
implementation that returns list of addresses as "0x...".
* Update the list of platforms with the full
capability. Indicate that there is a default implementation
for other platforms.
*, g-trasym-unimplemented.adb: Remove.
* gcc-interface/ Remove g-trasym-unimplemented, as there
is now a default implementation for all platforms without the full
2011-10-06 Robert Dewar <>
* a-ciorse.adb, a-cihase.adb,, a-coorse.adb,
a-cborse.adb, a-comutr.adb, a-ciorma.adb, a-cbmutr.adb,, a-cbhase.adb, Minor reformatting and code
reorganization (use conditional expressions).
2011-10-06 Robert Dewar <>
* sem_res.adb (Resolve_Arithmetic_Op): Fix bad warning for
floating divide by zero.
2011-10-06 Ed Schonberg <>
* sem_ch6.adb: Limited interfaces that are not immutably limited
are OK in return statements.
2011-09-30 Iain Sandoe <>
* gcc-interface/ (Darwin): Partial reversion of previous
change to powerpc section.
2011-09-29 Iain Sandoe <>
* gcc-interface/ (Darwin): Factor LIBGNAT_TARGET_PAIRS
across the port.
2011-09-27 Ed Schonberg <>
* a-cbhase.adb,, a-cborse.adb,,
a-cihase.adb,, a-ciorse.adb,,
a-coorse.adb, Add iterator machinery to bounded sets and
indefinite sets.
* Minor reformmating.
* Improve the comment describing the
Directly_Designated_Type function.
* a-ciorma.adb, Add iterator machinery to indefinite
ordered maps.
* gcc-interface/, gcc-interface/ Update
2011-09-27 Robert Dewar <>
* Minor reformatting.
2011-09-27 Ed Schonberg <>
* a-cimutr.adb,, a-cbmutr.adb, Add children
iterators to multiway trees.
2011-09-27 Yannick Moy <>
* debug.adb (d.D): New option for strict Alfa mode.
* (Strict_Alfa_Mode): New flag to interpret compiler
permissions as strictly as possible.
* sem_ch3.adb (Signed_Integer_Type_Declaration): In non-strict
Alfa mode, now, interpret ranges of base types like GNAT does; in
strict mode, simply change the range of the implicit base Itype.
* gnat1drv.adb: Update comments. Set Strict_Alfa_Mode.
2011-09-27 Robert Dewar <>
* exp_ch9.adb: Minor comment fixes.
2011-09-27 Ed Schonberg <>
* a-comutr.adb, Add children iterators on multiway
2011-09-27 Eric Botcazou <>
* checks.adb (Apply_Scalar_Range_Check): Use Designated_Type
instead of Directly_Designated_Type in the indirect array case.
2011-09-27 Robert Dewar <>
* exp_util.adb, exp_aggr.adb: Minor reformatting.
2011-09-27 Ed Schonberg <>
*, par-ch3.adb: Minor comment update: aspect specification
on subtype declarations.
* exp_aggr.adb: Minor comment update.
2011-09-27 Eric Botcazou <>
* exp_util.adb (Safe_Prefixed_Reference): Remove always-false
test in the N_Explicit_Dereference case. Fold double logical
negation in the special loop case and conditionalize it on
Variable_Ref being true.
2011-09-27 Ed Schonberg <>
* sem_ch4.adb (Analyze_Selected_Component): If the prefix is a
single protected object and the selector is a discriminant or an
entry family, this is a non-overloaded candidate interpretation,
and possible primitive operations of the type must not be
2011-09-27 Arnaud Charlet <>
* (Lock): Mark fields aliased.
2011-09-27 Pascal Obry <>
Add dummy definitions for pthread_rwlock_t
and pthread_rwlockattr_t on all POSIX platforms.
* s-taprop-irix.adb, s-taprop-posix.adb (Initialize_Lock): Fix lock
(Finalize_Lock): Likewise.
(Write_Lock): Likewise.
(Unlock): Likewise.
2011-09-27 Tristan Gingold <>
* s-tassta.adb (Task_Wrapper): Increase Guard_Page_Size value for
windows 64.
2011-09-27 Pascal Obry <>
*, s-taprop-vxworks.adb,,
s-taprop-tru64.adb,,,, s-taprop-vms.adb, s-tpoben.adb,,
s-taprop-mingw.adb, s-taprob.adb,,, s-taprop-solaris.adb,,, s-taprop-irix.adb,,,,,,, s-taprop-hpux-dce.adb,,, 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 <>
* (RW_Lock): This type is now defined as
2011-09-27 Robert Dewar <>
* exp_ch9.adb, a-cimutr.adb,, gnat1drv.adb, a-comutr.adb,, exp_dist.adb, a-cbmutr.adb,,
sem_ch5.adb, sem_util.adb: Minor reformatting.
2011-09-27 Pascal Obry <>
* (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]: New
routine 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 corresponding
routine 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).
*, (Protection): Add RWL (RW_Lock)
in the record definition.
* s-taprob.adb, s-taproben.adb (Finalize_Protection): Use r/w
lock for 'R' locking policy.
(Initialize_Protection): Likewise.
(Lock): Likewise.
(Lock_Read_Only): Likewise.
(Unlock): Likewise.
* (RW_Lock): New type defined as
*,,,,,,,, (RW_Lock): New type defined as alias to Lock.
2011-09-27 Pascal Obry <>
* exp_ch9.adb, Minor reformatting.
2011-09-27 Pascal Obry <>
*,,,,, (pthread_rwlock_t): New definition alias of
(pthread_rwlockattr_t): New definition alias of pthread_mutexattr_t.
* (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 <>
* 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_Policy
to lift restriction on first character. Handle now the
Name_Concurrent_Readers_Locking where policy character is set to
* (Name_Concurrent_Readers_Locking): New
* exp_ch9.adb (Build_Protected_Subprogram_Body): Generate a
read only lock for function in protected object.
* (Lock_Read_Only): Remove obsolete comment as
this 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 <>
* gcc-interface/utils2.c (build_allocator): Set TREE_THIS_NOTRAP on the
dereference of the pointer to the storage area. Remove useless type
conversions and factor out common code.
2011-09-26 Eric Botcazou <>
* gcc-interface/utils.c (maybe_unconstrained_array): Declare TYPE local
variable and use it throughout.
<UNCONSTRAINED_ARRAY_TYPE>: Add 'break' at the end.
<RECORD_TYPE>: Do not unconditionally convert to the unpadded type as a
first step. Also convert to the unpadded type as a last step.
2011-09-26 Eric Botcazou <>
* gcc-interface/gigi.h (create_subprog_decl): Replace TREE_CHAIN with
DECL_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 <>
* gcc-interface/trans.c (assoc_to_constructor): Minor tweaks.
* gcc-interface/utils2.c (build_simple_component_ref): Fix formatting
issues. Use COMPLETE_TYPE_P in assertion. Also set TREE_READONLY if
the type of the record is TYPE_READONLY.
2011-09-26 Eric Botcazou <>
Robert Dewar <>
* sem_ch6.adb (Set_Formal_Mode): Set Can_Never_Be_Null on an IN or IN
OUT formal parameter which is of an null-exclusion access subtype.
2011-09-26 Eric Botcazou <>
* 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>: Invoke
maybe_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 operand
is 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 <>
* gcc-interface/ada-tree.h (TYPE_NULL_BOUNDS): New macro.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Set again
TREE_THIS_NOTRAP on the INDIRECT_REF node built for the template.
* gcc-interface/trans.c (Identifier_to_gnu): Return initializers of fat
pointer 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 in
initializing 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 valid
pointer 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 <>
* gcc-interface/ada-tree.h (TREE_THIS_NOTRAP): Redefine.
* gcc-interface/trans.c (Identifier_to_gnu): Factor out common code in
the by-ref case. Do not set TREE_READONLY on a renamed object. Set
(Attribute_to_gnu) <Attr_Length>: Expand the use of the parameter cache
to the indirect case.
* gcc-interface/utils.c (convert) <UNCONSTRAINED_ARRAY_REF>: Preserve
2011-09-25 Eric Botcazou <>
* gcc-interface/trans.c (Loop_Statement_to_gnu): In the case of an
iteration scheme, always generate the do-while form if optimization
is enabled. Use more straightforward test at the end.
2011-09-25 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Subtype>: Use
XNEW 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 <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not promote
the alignment if this doesn't prevent BLKmode access to the object.
2011-09-24 Iain Sandoe <>
* gcc-interface/ (darwin): Do not issue the
'-flat_namespace' linker flag during Ada build.
* mlib-tgt-specific-darwin.adb: Remove '-flat_namespace' flag from the
default shared library options.
2011-09-19 Alexandre Oliva <>
* gcc-interface/decl.c (annotate_value): Look up expression for
insertion in the cache at the end.
2011-09-19 Arnaud Charlet <>
* gcc-interface/ Update dependencies.
2011-09-19 Steve Baird <>
* Move declaration of Name_Annotate into range of
configuration pragma names so that Is_Configuration_Pragma_Name
will return True for Name_Annotate. Make corresponding change in
Pragma_Id enumeration type. This is needed to allow an Annotate
pragma 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 a
configuration pragma.
2011-09-19 Ed Schonberg <>
* a-cbmutr.adb,, a-cimutr.adb,,
a-comutr.adb, Add iterator machinery for multiway trees.
2011-09-19 Yannick Moy <>
* exp_alfa.adb, (Expand_Alfa_N_In): New function
for expansion of set membership.
(Expand_Alfa): Call expansion for N_In and N_Not_In nodes.
* exp_ch4.adb, (Expand_Set_Membership): Make procedure
visible for use in Alfa expansion.
* sem_ch5.adb (Analyze_Iterator_Specification): Introduce loop
variable in Alfa mode.
2011-09-19 Thomas Quinot <>
* Change SIGADAABRT on Darwin to SIGABRT.
2011-09-19 Thomas Quinot <>
* exp_ch9.adb: Minor reformatting.
2011-09-19 Hristian Kirtchev <>
* freeze.adb (Build_Renamed_Body): Generic subprograms
instantiations cannot be poperly inlined by the compiler, do
not set the Body_To_Inline attribute in such cases.
* sem_ch12.adb (Analyze_Subprogram_Instantiation): Inherit all
inlining-related flags from the generic subprogram declaration.
2011-09-19 Thomas Quinot <>
* exp_dist.adb,, sem_util.adb,
(Build_Stub_Type): Remove, instead copy components from
(RPC_Receiver_Decl): Remainder of code from old Build_Stub_Type routine.
(Copy_Component_List): New subprogram.
2011-09-19 Yannick Moy <>
* lib-xref.adb (Generate_Reference): Ignore references to
constants in Standard.
2011-09-19 Robert Dewar <>
*, Minor reformatting.
2011-09-19 Robert Dewar <>
* (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): New
(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
* (No_Dependences): New name for No_Dependence
(Check_Restriction_No_Specification_Of_Aspect): New procedure
(Set_Restriction_No_Specification_Of_Aspect): New procedure
* Add restriction
No_Implementation_Aspect_Specifications, this is also added to
the No_Implementation_Extensions profile.
* sem_ch13.adb (Analyze_Aspect_Specifications): Check
(Analyze_Aspect_Specifications): Check No_Specification_Of_Aspect
* sem_prag.adb (Analyze_Aspect_Specifications): Check
(Analyze_Aspect_Specifications): Check No_Specification_Of_Aspect
* (Name_No_Specification_Of_Aspect): New name
2011-09-19 Yannick Moy <>
* lib-xref.adb (Generate_Reference): Take into account multiple
renamings for Alfa refs.
2011-09-19 Thomas Quinot <>
* g-socthi-mingw.adb: Minor reformatting.
2011-09-19 Yannick Moy <>
* gnat1drv.adb (Adjust_Global_Switches): Set tagged type
expansion to False in mode Alfa
2011-09-19 Pascal Obry <>
* mingw32.h: Remove obsolete code needed for old versions
of MingW.
2011-09-19 Robert Dewar <>
* Minor reformatting.
2011-09-19 Ed Schonberg <>
* sem_ch6.adb (Analyze_Expression_Function): When the expression
function is transformed into a declaration and a body, insert
body at the end of the declarative part, to prevent premature
freeze actions, and preserve original specification in the
subprogram declaration.
2011-09-19 Vincent Celier <>
* projects.texi: Minor editing.
2011-09-19 Robert Dewar <>
* sem_aggr.adb,,, sem_ch6.adb,
exp_aggr.adb: Minor reformatting.
2011-09-19 Yannick Moy <>
* lib-xref.adb (Generate_Reference): Change entity referenced
to underlying object if any, or else reference to the HEAP.
2011-09-15 Arnaud Charlet <>
* gcc-interface/ Update dependencies.
2011-09-15 Robert Dewar <>
* Minor reformatting.
* Fix bad header.
2011-09-15 Thomas Quinot <>
* a-exexpr-gcc.adb: Minor reformatting.
2011-09-15 Yannick Moy <>
* sem_ch6.adb: Propagate information that an expression function comes
from source (otherwise references to this entity are not stored).
2011-09-15 Robert Dewar <>
* a-cdlili.adb, a-coinve.adb,, a-suezst.adb,
a-suenco.adb,, a-cobove.adb, a-convec.adb,
a-btgbso.adb, a-cbdlli.adb, a-suewst.adb: Minor reformatting.
2011-09-15 Ed Schonberg <>
* sem_ch6.adb (Analyze_Expression_Function): Code cleanup:
if the expression function is not a completion, create a
new specification for the generated declaration, and keep the
original specification in the generated body. Shorter code also
ensures that proper warnings are generated for unused formals
in all cases.
2011-09-15 Sergey Rybin <>
* Update ASIS_Version_Number because of the changes
in the tree structures for expression functions.
2011-09-15 Arnaud Charlet <>
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 <>
* gcc-interface/utils.c (maybe_unconstrained_array): In the reference
to unconstrained array case, deal with each branch of a COND_EXPR.
* gcc-interface/utils2.c (build_allocator): Deal with each branch of
a COND_EXPR in the initializer, if present.
2011-09-11 Eric Botcazou <>
* gcc-interface/decl.c (maybe_pad_type): Do not try to change the form
of 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 <>
* gcc-interface/trans.c (call_to_gnu): Use local variable. Make sure
this is a real formal parameter before testing whether it is by ref.
2011-09-11 Eric Botcazou <>
* 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 <>
* gcc-interface/trans.c (build_return_expr): Use void_type_node for
* gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Assert that
the result type is null if ENABLE_CHECKING. Set operation_type at the
end 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 <>
* gcc-interface/utils.c (unchecked_convert): Use a field of the right
precision when converting to or from an integral type whose precision
is not equal to its size.
2011-09-08 Iain Sandoe <>
* traceback.c (Darwin) USE_GCC_UNWINDER for Darwin versions >= 8.
2011-09-07 Iain Sandoe <>
* gcc-interface/ (darwin): Provide powerpc64 system
* New file.
2011-09-06 Iain Sandoe <>
* gcc-interface/ (gnatlib-shared-darwin): Remove
reference to "-lm".
2011-09-06 Iain Sandoe <>
* gcc-interface/ (darwin, SO_OPTS): Provide architecture
size switches to the link phase for shared libs.
2011-09-06 Iain Sandoe <>
* gcc-interface/ (x86_64 darwin arch): Adjust
LIBGNAT_TARGET_PAIRS for x86 and x86_64 variants.
2011-09-06 Arnaud Charlet <>
* gcc-interface/, gcc-interface/
(gnattools, regnattools, cross-gnattools, canadian-gnattools,
gnatlib, gnatlib-sjlj, gnatlib-zcx, gnatlib-shared, gnatlib_and_tools):
New targets.
(../stamp-tools): Reintroduce, to avoid merge conflicts.
2011-09-06 Robert Dewar <>
* sem_ch10.adb,, impunit.adb (Not_Impl_Defined_Unit): New
name for Is_RM_Defined_Unit. Also several fixes to this unit.
2011-09-06 Robert Dewar <>
*, impunit.adb (Is_RM_Defined_Unit): New function.
* New restriction No_Implementation_Units
(this restriction is also part of the profile
* sem_ch10.adb (Analyze_With_Clause): Add check for
No_Implementation_Units restriction.
2011-09-06 Jerome Guitton <>
* sysdep.c (__gnat_get_task_options): Disable VX_SPE_TASK
on vThreads.
2011-09-06 Thomas Quinot <>
* s-solita.adb: Minor reformatting.
2011-09-06 Ed Schonberg <>
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): The body that
is a rewriting of an expression function does not freeze previous
2011-09-06 Robert Dewar <>
* impunit.adb (Is_Known_Unit): Fix bad handling of Ada 2012 case
2011-09-06 Tristan Gingold <>
* gcc-interface/ Handle e500v2-wrs-vxworksae like
2011-09-06 Thomas Quinot <>
* (Spawn): Minor documentation clarification,
Success is True for a zero exit status.
2011-09-06 Ed Schonberg <>
* sem_ch5.adb: Add message for common iterator error.
2011-09-06 Ed Schonberg <>
* exp_ch3.adb (Build_Initialization_Call): If the target is a
selected component discriminated by a current instance, replace
the constraint with a reference to the target object, regardless
of whether the context is an init_proc.
2011-09-06 Robert Dewar <>
* exp_attr.adb: Descriptor_Size is never static.
2011-09-06 Robert Dewar <>
* gnat_ugn.texi: Add documentation for LSLOC metric in gnatmetric
2011-09-06 Hristian Kirtchev <>
* gnat_rm.texi: Clarify that attribute Descriptor_Size is
2011-09-06 Ed Schonberg <>
* sem_res.adb (Resolve): An expression that is the body of an
expression function does not freeze.
2011-09-06 Matthew Heaney <>
*, a-cusyqu.adb, a-cbprqu.adb, a-cbsyqu.adb,
a-cuprqu.adb: Changed copyright notice to indicate current
year only.
2011-09-06 Vincent Celier <>
* prj.adb: Minor spelling error fix in comment
* sem_res.adb: Minor reformatting
2011-09-06 Pascal Obry <>
* 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 <>
* exp_attr.adb (Expand_N_Attribute_Reference): Rewrite the
processing for Descriptor_Size.
* gnat_rm.texi: Rephrase the wording for attribute Descriptor_Size
to account for its broader usage.
* sem_attr.adb (Analyze_Attribute): Change the error detection
circuitry for Descriptor_Size as the attribute is now applicable
to all types.
2011-09-06 Robert Dewar <>
* sem_attr.adb, prj-nmsc.adb, exp_aggr.adb: Minor reformatting.
2011-09-06 Ed Schonberg <>
* lib-xref.adb (OK_To_Set_Referenced): A reference to a formal
in a parameter association must not set the Referenced flag on
the formal.
* prj-nmsc.adb (Check_File_Naming_Schemes): Remove useless formal
2011-09-06 Hristian Kirtchev <>
* gnat_rm.texi: Add a section on attribute Descriptor_Size
2011-09-06 Arnaud Charlet <>
* gcc-interface/ (common-tools, gnatmake-re,
gnatlink-re): Speed up by using -j0.
2011-09-06 Yannick Moy <>
* sem_ch13.adb (Analyze_Aspect_Specifications): Call
Set_Corresponding_Aspect when creating pragma from aspect.
(Add_Predicates): Use new field Corresponding_Aspect.
* sem_prag.adb (Analyze_Pragma): Make Pname hold source aspect
name when present, for the purpose of issuing error messages;
remove local procedure Error_Pragma_Arg_Alternate_Name.
* sinfo.adb, (Corresponding_Aspect): New field in
N_Pragma node.
(From_Dynamic_Predicate, From_Static_Predicate): Remove fields from
N_Pragma node.
2011-09-06 Robert Dewar <>
* checks.adb,, g-socket.adb: Minor reformatting.
2011-09-06 Hristian Kirtchev <>
* exp_ch6.adb (Build_Heap_Allocator): Add new
local variable Desig_Typ. Code and comment reformatting. Add
machinery to ensure that the allocation uses a fat pointer when
the type of the return object is a constrained array and the
function return type is an unconstrained array.
2011-09-06 Vincent Celier <>
* make.adb, prj-part.adb, prj-nmsc.adb: Remove unused formal
parameters in subprograms.
2011-09-06 Arnaud Charlet <>
* s-taprop-mingw.adb (Finalize_TCB): Fix typo.
2011-09-06 Thomas Quinot <>
* s-taprop-vxworks.adb, s-tpoaal.adb, s-tpopsp-vxworks.adb
(System.Tasking.Primitive_Operations.Specific.Delete): Remove
(System.Tasking.Primitive_Operations.Specific.Set): If argument
is null, destroy task specific data, to make API consistent with
other platforms, and thus compatible with the shared version
of s-tpoaal.adb.
Document the above assumption.
2011-09-06 Ed Schonberg <>
* exp_ch6.adb (Expand_Inlined_Call): Fix use of uninitialized
variable for type of return value when return type is
unconstrained and context is an assignment.
2011-09-06 Ed Schonberg <>
* sem_ch8.adb (Check_Class_Wide_Actual): Do not generate body of
class-wide operation if expansion is not enabled.
2011-09-06 Eric Botcazou <>
* checks.adb (Apply_Scalar_Range_Check): Deal with access
type prefix.
2011-09-06 Yannick Moy <>
* sem_ch13.adb (Analyze_Aspect_Specifications, case
Aspect_Invariant): Do not issue error at this point on illegal
pragma placement, as this is checked later on when analyzing
the corresponding pragma.
* sem_prag.adb (Error_Pragma_Arg_Alternate_Name): New procedure
similar to Error_Pragma_Arg, except the source name of the
aspect/pragma to use in warnings may be equal to parameter
Alt_Name (Analyze_Pragma, case Pragma_Invariant): refine error
message to distinguish source name of pragma/aspect, and whether
the illegality resides in the type being public, or being private
without a public declaration
2011-09-06 Thomas Quinot <>
* g-socket.adb (Check_For_Fd_Set): On Windows, no need for bitmap
size check (fd_set is implemented differently on that platform).
2011-09-06 Thomas Quinot <>
* 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-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-posix.adb
(ATCB_Allocation): New subpackage of
System.Tasking.Primitive_Operations, shared across all targets
with full tasking runtime.
(ATCB_Allocation.New_ATCB): Moved there (from target specific
s-taprop bodies).
(ATCB_Allocation.Free_ATCB): New subprogram. Deallocate an ATCB,
taking care of establishing a local temporary ATCB if the one
being deallocated is Self, to avoid a reference to the freed
ATCB in Abort_Undefer.
2011-09-06 Thomas Quinot <>
* s-tassta.adb, (Free_Task): If the task is not
terminated, mark it for deallocation upon termination.
(Terminate_Task): Call Free_Task again if the task is marked
for automatic deallocation upon termination.
2011-09-06 Robert Dewar <>
cstand.adb, Mark all entities as Implementation_Defined
*, einfo.adb (Is_Implementation_Defined): New flag
* par-prag.adb: Add dummy entry for pragma Implementation_Defined
* Add new restriction No_Implementation_Identifiers
Add new profile No_Implementation_Extensions
* sem_prag.adb: Implement pragma Implementation_Defined Implement
profile No_Implementation_Extensions
* sem_util.adb: Minor reformatting (Set_Entity_With_Style_Check):
Check violation of restriction No_Implementation_Identifiers
* Add entries for pragma Implementation_Defined
Add entry for Name_No_Implementation_Extensions
2011-09-06 Robert Dewar <>
* Minor reformatting.
2011-09-06 Robert Dewar <>
* ali.adb, sem_ch13.adb, lib-xref.adb: Minor reformatting.
2011-09-06 Pascal Obry <>
*, s-oscons-tmplt.c: Use oscons to define sigset_t
2011-09-06 Robert Dewar <>
* g-socket.adb: Minor reformatting
2011-09-06 Javier Miranda <>
* ali.adb (Scan_ALI): Add missing support to load references of
entities imported from other languages.
* (Xref_Record): Adding new fields to store the language and
name of an imported entity.
* lib-xref.adb (Output_Import_Export_Info): Fix typo
in comment.
2011-09-06 Ed Schonberg <>
* sem_prag.adb (Analyze_Pragma, case Type_Invariant): A type invariant
is allowed on a full type declaration if it is the completion of
a private declarations.
* sem_ch13.adb (Analyze_Aspect_Specifications): An invariant
aspect is allowed on a full type declaration in the private part
of a package.
2011-09-06 Robert Dewar <>
* Minor reformatting
2011-09-06 Thomas Quinot <>
* 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 <>
*,, exp_ch6.adb, s-solita.adb: Minor
2011-09-06 Arnaud Charlet <>
* 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 <>
*, Minor reformatting.
2011-09-06 Vincent Celier <>
* projects.texi: Add menus and @node lines.
2011-09-06 Ed Schonberg <>
* exp_ch6.adb (Expand_Inlined_Call): Handle properly the case
where the return type is an unconstrained array and the context
is an assignment. Optimize the case when the target of the
assignment is a selected component.
2011-09-06 Arnaud Charlet <>
* s-solita.adb: Update comments.
2011-09-06 Pascal Obry <>
*,,,, Remove hard coded and now wrong definitions.
* s-oscons-tmplt.c: Add support for generating pthread related
types size on GNU/Linux as done for Darwin.
* Use s-oscons to define the pthread types.
2011-09-06 Robert Dewar <>
* exp_ch6.adb: Fix minor typo.
2011-09-06 Hristian Kirtchev <>
* 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 now
accounts for alignment gaps by rounding the size of the type to the
nearest multiple rounded up of the type's alignment.
2011-09-06 Robert Dewar <>
* exp_ch7.adb, g-comlin.adb: Minor reformatting.
2011-09-06 Steve Baird <>
* exp_ch4.adb (Expand_Allocator_Expression): Look through
derived subprograms in checking for presence of an
Extra_Accessibility_Of_Result formal parameter.
* exp_ch6.adb (Expand_Call): Look through derived subprograms in
checking for presence of an Extra_Accessibility_Of_Result formal
(Expand_Call.Add_Actual_Parameter): Fix a bug in the
case where the Parameter_Associatiations attribute is already set,
but set to an empty list.
Unconditionally return False. This is a temporary
change, disabling the Extra_Accessibility_Of_Result
(Expand_Simple_Function_Return): Check for
Extra_Accessibility_Of_Result parameter's presence instead of
testing Ada_Version when generating a runtime accessibility
check which makes use of the parameter.
2011-09-06 Ed Schonberg <>
* exp_ch4.adb (Expand_N_Case_Expression): Actions created for the
expression in a given case alternative must be attached to the
statement list of the ccrresponding case statement alternative
They cannot be propagated ahead of the case statement, because
the validity of the expression that generated the action may
hold only for that alternative.
2011-09-06 Hristian Kirtchev <>
* exp_ch7.adb: Remove with and use clauses for Get_Targ.
(Alignment_Of): Remove the code for strict alignment targets.
(Double_Alignment_Of): Removed.